16f79a50fbad5817b8fc7a07c5657d8249c57a0f7Robert Sloan#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
2d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.text
3d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
4d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
5d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.globl	_sha1_block_data_order
6d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.private_extern _sha1_block_data_order
7d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
8d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.p2align	4
9d9e397b599b13d642138480a28c14db7a136bf0Adam Langley_sha1_block_data_order:
102424d84dd6dbdc0d32a4c80e6810d168f722ce0bRobert Sloan	leaq	_OPENSSL_ia32cap_P(%rip),%r10
11572a4e2e687520da9e518528d7371b794b1decc0Robert Sloan	movl	0(%r10),%r9d
12572a4e2e687520da9e518528d7371b794b1decc0Robert Sloan	movl	4(%r10),%r8d
13572a4e2e687520da9e518528d7371b794b1decc0Robert Sloan	movl	8(%r10),%r10d
14d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	testl	$512,%r8d
15d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	jz	L$ialu
164139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	$268435456,%r8d
174139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	$1073741824,%r9d
184139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	orl	%r9d,%r8d
194139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	cmpl	$1342177280,%r8d
204139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	je	_avx_shortcut
21d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	jmp	_ssse3_shortcut
22d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
23d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.p2align	4
24d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$ialu:
25d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movq	%rsp,%rax
26d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pushq	%rbx
27d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pushq	%rbp
28d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pushq	%r12
29d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pushq	%r13
30d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pushq	%r14
31d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movq	%rdi,%r8
32d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	subq	$72,%rsp
33d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movq	%rsi,%r9
34d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andq	$-64,%rsp
35d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movq	%rdx,%r10
36d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movq	%rax,64(%rsp)
37d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$prologue:
38d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
39d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	0(%r8),%esi
40d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	4(%r8),%edi
41d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	8(%r8),%r11d
42d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	12(%r8),%r12d
43d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	16(%r8),%r13d
44d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	jmp	L$loop
45d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
46d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.p2align	4
47d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$loop:
48d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	0(%r9),%edx
49d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswapl	%edx
50d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	4(%r9),%ebp
51d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%eax
52d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,0(%rsp)
53d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%ecx
54d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswapl	%ebp
55d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%eax
56d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
57d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%edi,%eax
58d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1518500249(%rdx,%r13,1),%r13d
59d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r13d
60d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%eax
61d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%edi
62d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r13d
63d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	8(%r9),%r14d
64d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%eax
65d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,4(%rsp)
66d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%ecx
67d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswapl	%r14d
68d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%eax
69d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
70d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%esi,%eax
71d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1518500249(%rbp,%r12,1),%r12d
72d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r12d
73d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%eax
74d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%esi
75d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r12d
76d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	12(%r9),%edx
77d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%eax
78d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r14d,8(%rsp)
79d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%ecx
80d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswapl	%edx
81d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%eax
82d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
83d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r13d,%eax
84d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1518500249(%r14,%r11,1),%r11d
85d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r11d
86d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%eax
87d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r13d
88d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r11d
89d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	16(%r9),%ebp
90d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%eax
91d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,12(%rsp)
92d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%ecx
93d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswapl	%ebp
94d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%eax
95d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
96d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r12d,%eax
97d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1518500249(%rdx,%rdi,1),%edi
98d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%edi
99d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%eax
100d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r12d
101d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%edi
102d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	20(%r9),%r14d
103d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%eax
104d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,16(%rsp)
105d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%ecx
106d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswapl	%r14d
107d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%eax
108d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
109d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r11d,%eax
110d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1518500249(%rbp,%rsi,1),%esi
111d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%esi
112d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%eax
113d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r11d
114d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%esi
115d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	24(%r9),%edx
116d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%eax
117d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r14d,20(%rsp)
118d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%ecx
119d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswapl	%edx
120d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%eax
121d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
122d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%edi,%eax
123d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1518500249(%r14,%r13,1),%r13d
124d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r13d
125d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%eax
126d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%edi
127d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r13d
128d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	28(%r9),%ebp
129d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%eax
130d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,24(%rsp)
131d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%ecx
132d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswapl	%ebp
133d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%eax
134d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
135d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%esi,%eax
136d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1518500249(%rdx,%r12,1),%r12d
137d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r12d
138d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%eax
139d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%esi
140d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r12d
141d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	32(%r9),%r14d
142d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%eax
143d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,28(%rsp)
144d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%ecx
145d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswapl	%r14d
146d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%eax
147d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
148d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r13d,%eax
149d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1518500249(%rbp,%r11,1),%r11d
150d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r11d
151d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%eax
152d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r13d
153d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r11d
154d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	36(%r9),%edx
155d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%eax
156d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r14d,32(%rsp)
157d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%ecx
158d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswapl	%edx
159d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%eax
160d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
161d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r12d,%eax
162d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1518500249(%r14,%rdi,1),%edi
163d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%edi
164d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%eax
165d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r12d
166d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%edi
167d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	40(%r9),%ebp
168d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%eax
169d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,36(%rsp)
170d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%ecx
171d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswapl	%ebp
172d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%eax
173d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
174d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r11d,%eax
175d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1518500249(%rdx,%rsi,1),%esi
176d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%esi
177d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%eax
178d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r11d
179d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%esi
180d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	44(%r9),%r14d
181d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%eax
182d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,40(%rsp)
183d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%ecx
184d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswapl	%r14d
185d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%eax
186d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
187d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%edi,%eax
188d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1518500249(%rbp,%r13,1),%r13d
189d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r13d
190d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%eax
191d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%edi
192d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r13d
193d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	48(%r9),%edx
194d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%eax
195d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r14d,44(%rsp)
196d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%ecx
197d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswapl	%edx
198d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%eax
199d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
200d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%esi,%eax
201d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1518500249(%r14,%r12,1),%r12d
202d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r12d
203d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%eax
204d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%esi
205d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r12d
206d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	52(%r9),%ebp
207d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%eax
208d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,48(%rsp)
209d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%ecx
210d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswapl	%ebp
211d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%eax
212d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
213d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r13d,%eax
214d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1518500249(%rdx,%r11,1),%r11d
215d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r11d
216d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%eax
217d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r13d
218d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r11d
219d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	56(%r9),%r14d
220d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%eax
221d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,52(%rsp)
222d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%ecx
223d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswapl	%r14d
224d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%eax
225d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
226d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r12d,%eax
227d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1518500249(%rbp,%rdi,1),%edi
228d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%edi
229d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%eax
230d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r12d
231d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%edi
232d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	60(%r9),%edx
233d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%eax
234d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r14d,56(%rsp)
235d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%ecx
236d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswapl	%edx
237d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%eax
238d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
239d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r11d,%eax
240d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1518500249(%r14,%rsi,1),%esi
241d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%esi
242d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%eax
243d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r11d
244d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%esi
245d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	0(%rsp),%ebp
246d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%eax
247d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,60(%rsp)
248d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%ecx
249d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	8(%rsp),%ebp
250d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%eax
251d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
252d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	32(%rsp),%ebp
253d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%edi,%eax
254d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1518500249(%rdx,%r13,1),%r13d
255d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%edi
256d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%eax
257d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r13d
258d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%ebp
259d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r13d
260d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	4(%rsp),%r14d
261d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%eax
262d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,0(%rsp)
263d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%ecx
264d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	12(%rsp),%r14d
265d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%eax
266d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
267d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	36(%rsp),%r14d
268d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%esi,%eax
269d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1518500249(%rbp,%r12,1),%r12d
270d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%esi
271d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%eax
272d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r12d
273d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%r14d
274d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r12d
275d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	8(%rsp),%edx
276d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%eax
277d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r14d,4(%rsp)
278d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%ecx
279d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	16(%rsp),%edx
280d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%eax
281d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
282d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	40(%rsp),%edx
283d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r13d,%eax
284d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1518500249(%r14,%r11,1),%r11d
285d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r13d
286d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%eax
287d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r11d
288d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%edx
289d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r11d
290d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	12(%rsp),%ebp
291d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%eax
292d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,8(%rsp)
293d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%ecx
294d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	20(%rsp),%ebp
295d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%eax
296d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
297d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	44(%rsp),%ebp
298d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r12d,%eax
299d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1518500249(%rdx,%rdi,1),%edi
300d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r12d
301d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%eax
302d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%edi
303d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%ebp
304d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%edi
305d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	16(%rsp),%r14d
306d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%eax
307d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,12(%rsp)
308d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%ecx
309d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	24(%rsp),%r14d
310d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%eax
311d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
312d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	48(%rsp),%r14d
313d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r11d,%eax
314d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1518500249(%rbp,%rsi,1),%esi
315d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r11d
316d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%eax
317d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%esi
318d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%r14d
319d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%esi
320d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	20(%rsp),%edx
321d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%eax
322d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r14d,16(%rsp)
323d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%ecx
324d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	28(%rsp),%edx
325d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%eax
326d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
327d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	52(%rsp),%edx
328d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1859775393(%r14,%r13,1),%r13d
329d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%eax
330d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r13d
331d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%edi
332d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r13d
333d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%edx
334d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	24(%rsp),%ebp
335d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%eax
336d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,20(%rsp)
337d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%ecx
338d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	32(%rsp),%ebp
339d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%eax
340d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
341d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	56(%rsp),%ebp
342d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1859775393(%rdx,%r12,1),%r12d
343d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%eax
344d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r12d
345d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%esi
346d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r12d
347d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%ebp
348d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	28(%rsp),%r14d
349d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%eax
350d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,24(%rsp)
351d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%ecx
352d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	36(%rsp),%r14d
353d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%eax
354d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
355d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	60(%rsp),%r14d
356d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1859775393(%rbp,%r11,1),%r11d
357d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%eax
358d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r11d
359d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r13d
360d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r11d
361d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%r14d
362d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	32(%rsp),%edx
363d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%eax
364d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r14d,28(%rsp)
365d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%ecx
366d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	40(%rsp),%edx
367d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%eax
368d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
369d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	0(%rsp),%edx
370d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1859775393(%r14,%rdi,1),%edi
371d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%eax
372d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%edi
373d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r12d
374d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%edi
375d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%edx
376d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	36(%rsp),%ebp
377d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%eax
378d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,32(%rsp)
379d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%ecx
380d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	44(%rsp),%ebp
381d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%eax
382d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
383d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	4(%rsp),%ebp
384d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1859775393(%rdx,%rsi,1),%esi
385d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%eax
386d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%esi
387d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r11d
388d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%esi
389d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%ebp
390d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	40(%rsp),%r14d
391d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%eax
392d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,36(%rsp)
393d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%ecx
394d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	48(%rsp),%r14d
395d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%eax
396d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
397d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	8(%rsp),%r14d
398d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1859775393(%rbp,%r13,1),%r13d
399d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%eax
400d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r13d
401d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%edi
402d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r13d
403d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%r14d
404d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	44(%rsp),%edx
405d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%eax
406d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r14d,40(%rsp)
407d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%ecx
408d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	52(%rsp),%edx
409d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%eax
410d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
411d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	12(%rsp),%edx
412d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1859775393(%r14,%r12,1),%r12d
413d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%eax
414d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r12d
415d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%esi
416d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r12d
417d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%edx
418d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	48(%rsp),%ebp
419d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%eax
420d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,44(%rsp)
421d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%ecx
422d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	56(%rsp),%ebp
423d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%eax
424d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
425d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	16(%rsp),%ebp
426d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1859775393(%rdx,%r11,1),%r11d
427d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%eax
428d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r11d
429d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r13d
430d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r11d
431d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%ebp
432d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	52(%rsp),%r14d
433d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%eax
434d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,48(%rsp)
435d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%ecx
436d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	60(%rsp),%r14d
437d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%eax
438d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
439d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	20(%rsp),%r14d
440d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1859775393(%rbp,%rdi,1),%edi
441d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%eax
442d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%edi
443d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r12d
444d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%edi
445d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%r14d
446d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	56(%rsp),%edx
447d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%eax
448d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r14d,52(%rsp)
449d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%ecx
450d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	0(%rsp),%edx
451d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%eax
452d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
453d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	24(%rsp),%edx
454d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1859775393(%r14,%rsi,1),%esi
455d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%eax
456d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%esi
457d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r11d
458d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%esi
459d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%edx
460d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	60(%rsp),%ebp
461d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%eax
462d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,56(%rsp)
463d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%ecx
464d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	4(%rsp),%ebp
465d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%eax
466d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
467d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	28(%rsp),%ebp
468d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1859775393(%rdx,%r13,1),%r13d
469d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%eax
470d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r13d
471d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%edi
472d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r13d
473d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%ebp
474d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	0(%rsp),%r14d
475d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%eax
476d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,60(%rsp)
477d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%ecx
478d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	8(%rsp),%r14d
479d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%eax
480d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
481d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	32(%rsp),%r14d
482d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1859775393(%rbp,%r12,1),%r12d
483d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%eax
484d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r12d
485d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%esi
486d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r12d
487d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%r14d
488d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	4(%rsp),%edx
489d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%eax
490d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r14d,0(%rsp)
491d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%ecx
492d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	12(%rsp),%edx
493d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%eax
494d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
495d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	36(%rsp),%edx
496d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1859775393(%r14,%r11,1),%r11d
497d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%eax
498d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r11d
499d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r13d
500d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r11d
501d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%edx
502d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	8(%rsp),%ebp
503d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%eax
504d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,4(%rsp)
505d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%ecx
506d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	16(%rsp),%ebp
507d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%eax
508d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
509d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	40(%rsp),%ebp
510d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1859775393(%rdx,%rdi,1),%edi
511d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%eax
512d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%edi
513d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r12d
514d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%edi
515d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%ebp
516d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	12(%rsp),%r14d
517d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%eax
518d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,8(%rsp)
519d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%ecx
520d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	20(%rsp),%r14d
521d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%eax
522d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
523d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	44(%rsp),%r14d
524d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1859775393(%rbp,%rsi,1),%esi
525d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%eax
526d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%esi
527d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r11d
528d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%esi
529d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%r14d
530d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	16(%rsp),%edx
531d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%eax
532d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r14d,12(%rsp)
533d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%ecx
534d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	24(%rsp),%edx
535d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%eax
536d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
537d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	48(%rsp),%edx
538d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1859775393(%r14,%r13,1),%r13d
539d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%eax
540d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r13d
541d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%edi
542d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r13d
543d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%edx
544d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	20(%rsp),%ebp
545d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%eax
546d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,16(%rsp)
547d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%ecx
548d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	28(%rsp),%ebp
549d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%eax
550d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
551d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	52(%rsp),%ebp
552d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1859775393(%rdx,%r12,1),%r12d
553d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%eax
554d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r12d
555d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%esi
556d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r12d
557d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%ebp
558d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	24(%rsp),%r14d
559d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%eax
560d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,20(%rsp)
561d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%ecx
562d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	32(%rsp),%r14d
563d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%eax
564d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
565d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	56(%rsp),%r14d
566d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1859775393(%rbp,%r11,1),%r11d
567d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%eax
568d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r11d
569d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r13d
570d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r11d
571d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%r14d
572d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	28(%rsp),%edx
573d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%eax
574d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r14d,24(%rsp)
575d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%ecx
576d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	36(%rsp),%edx
577d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%eax
578d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
579d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	60(%rsp),%edx
580d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1859775393(%r14,%rdi,1),%edi
581d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%eax
582d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%edi
583d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r12d
584d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%edi
585d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%edx
586d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	32(%rsp),%ebp
587d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%eax
588d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,28(%rsp)
589d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%ecx
590d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	40(%rsp),%ebp
591d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%eax
592d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
593d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	0(%rsp),%ebp
594d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	1859775393(%rdx,%rsi,1),%esi
595d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%eax
596d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%esi
597d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r11d
598d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%esi
599d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%ebp
600d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	36(%rsp),%r14d
601d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%eax
602d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,32(%rsp)
603d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%ebx
604d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	44(%rsp),%r14d
605d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r11d,%eax
606d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%ecx
607d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	4(%rsp),%r14d
608d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-1894007588(%rbp,%r13,1),%r13d
609d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%ebx
610d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
611d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r13d
612d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%r14d
613d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%edi,%ebx
614d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r13d
615d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%edi
616d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%r13d
617d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	40(%rsp),%edx
618d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%eax
619d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r14d,36(%rsp)
620d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%ebx
621d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	48(%rsp),%edx
622d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%edi,%eax
623d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%ecx
624d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	8(%rsp),%edx
625d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-1894007588(%r14,%r12,1),%r12d
626d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%ebx
627d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
628d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r12d
629d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%edx
630d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%esi,%ebx
631d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r12d
632d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%esi
633d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%r12d
634d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	44(%rsp),%ebp
635d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%eax
636d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,40(%rsp)
637d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%ebx
638d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	52(%rsp),%ebp
639d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%esi,%eax
640d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%ecx
641d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	12(%rsp),%ebp
642d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-1894007588(%rdx,%r11,1),%r11d
643d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%ebx
644d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
645d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r11d
646d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%ebp
647d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r13d,%ebx
648d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r11d
649d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r13d
650d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%r11d
651d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	48(%rsp),%r14d
652d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%eax
653d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,44(%rsp)
654d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%ebx
655d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	56(%rsp),%r14d
656d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r13d,%eax
657d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%ecx
658d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	16(%rsp),%r14d
659d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-1894007588(%rbp,%rdi,1),%edi
660d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%ebx
661d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
662d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%edi
663d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%r14d
664d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r12d,%ebx
665d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%edi
666d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r12d
667d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%edi
668d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	52(%rsp),%edx
669d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%eax
670d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r14d,48(%rsp)
671d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%ebx
672d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	60(%rsp),%edx
673d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r12d,%eax
674d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%ecx
675d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	20(%rsp),%edx
676d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-1894007588(%r14,%rsi,1),%esi
677d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%ebx
678d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
679d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%esi
680d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%edx
681d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r11d,%ebx
682d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%esi
683d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r11d
684d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%esi
685d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	56(%rsp),%ebp
686d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%eax
687d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,52(%rsp)
688d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%ebx
689d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	0(%rsp),%ebp
690d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r11d,%eax
691d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%ecx
692d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	24(%rsp),%ebp
693d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-1894007588(%rdx,%r13,1),%r13d
694d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%ebx
695d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
696d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r13d
697d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%ebp
698d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%edi,%ebx
699d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r13d
700d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%edi
701d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%r13d
702d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	60(%rsp),%r14d
703d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%eax
704d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,56(%rsp)
705d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%ebx
706d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	4(%rsp),%r14d
707d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%edi,%eax
708d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%ecx
709d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	28(%rsp),%r14d
710d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-1894007588(%rbp,%r12,1),%r12d
711d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%ebx
712d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
713d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r12d
714d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%r14d
715d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%esi,%ebx
716d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r12d
717d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%esi
718d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%r12d
719d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	0(%rsp),%edx
720d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%eax
721d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r14d,60(%rsp)
722d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%ebx
723d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	8(%rsp),%edx
724d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%esi,%eax
725d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%ecx
726d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	32(%rsp),%edx
727d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-1894007588(%r14,%r11,1),%r11d
728d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%ebx
729d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
730d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r11d
731d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%edx
732d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r13d,%ebx
733d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r11d
734d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r13d
735d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%r11d
736d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	4(%rsp),%ebp
737d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%eax
738d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,0(%rsp)
739d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%ebx
740d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	12(%rsp),%ebp
741d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r13d,%eax
742d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%ecx
743d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	36(%rsp),%ebp
744d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-1894007588(%rdx,%rdi,1),%edi
745d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%ebx
746d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
747d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%edi
748d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%ebp
749d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r12d,%ebx
750d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%edi
751d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r12d
752d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%edi
753d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	8(%rsp),%r14d
754d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%eax
755d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,4(%rsp)
756d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%ebx
757d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	16(%rsp),%r14d
758d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r12d,%eax
759d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%ecx
760d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	40(%rsp),%r14d
761d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-1894007588(%rbp,%rsi,1),%esi
762d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%ebx
763d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
764d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%esi
765d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%r14d
766d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r11d,%ebx
767d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%esi
768d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r11d
769d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%esi
770d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	12(%rsp),%edx
771d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%eax
772d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r14d,8(%rsp)
773d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%ebx
774d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	20(%rsp),%edx
775d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r11d,%eax
776d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%ecx
777d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	44(%rsp),%edx
778d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-1894007588(%r14,%r13,1),%r13d
779d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%ebx
780d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
781d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r13d
782d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%edx
783d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%edi,%ebx
784d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r13d
785d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%edi
786d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%r13d
787d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	16(%rsp),%ebp
788d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%eax
789d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,12(%rsp)
790d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%ebx
791d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	24(%rsp),%ebp
792d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%edi,%eax
793d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%ecx
794d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	48(%rsp),%ebp
795d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-1894007588(%rdx,%r12,1),%r12d
796d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%ebx
797d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
798d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r12d
799d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%ebp
800d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%esi,%ebx
801d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r12d
802d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%esi
803d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%r12d
804d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	20(%rsp),%r14d
805d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%eax
806d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,16(%rsp)
807d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%ebx
808d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	28(%rsp),%r14d
809d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%esi,%eax
810d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%ecx
811d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	52(%rsp),%r14d
812d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-1894007588(%rbp,%r11,1),%r11d
813d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%ebx
814d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
815d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r11d
816d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%r14d
817d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r13d,%ebx
818d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r11d
819d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r13d
820d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%r11d
821d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	24(%rsp),%edx
822d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%eax
823d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r14d,20(%rsp)
824d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%ebx
825d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	32(%rsp),%edx
826d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r13d,%eax
827d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%ecx
828d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	56(%rsp),%edx
829d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-1894007588(%r14,%rdi,1),%edi
830d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%ebx
831d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
832d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%edi
833d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%edx
834d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r12d,%ebx
835d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%edi
836d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r12d
837d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%edi
838d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	28(%rsp),%ebp
839d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%eax
840d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,24(%rsp)
841d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%ebx
842d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	36(%rsp),%ebp
843d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r12d,%eax
844d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%ecx
845d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	60(%rsp),%ebp
846d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-1894007588(%rdx,%rsi,1),%esi
847d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%ebx
848d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
849d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%esi
850d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%ebp
851d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r11d,%ebx
852d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%esi
853d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r11d
854d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%esi
855d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	32(%rsp),%r14d
856d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%eax
857d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,28(%rsp)
858d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%ebx
859d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	40(%rsp),%r14d
860d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r11d,%eax
861d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%ecx
862d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	0(%rsp),%r14d
863d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-1894007588(%rbp,%r13,1),%r13d
864d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%ebx
865d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
866d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r13d
867d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%r14d
868d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%edi,%ebx
869d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r13d
870d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%edi
871d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%r13d
872d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	36(%rsp),%edx
873d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%eax
874d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r14d,32(%rsp)
875d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%ebx
876d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	44(%rsp),%edx
877d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%edi,%eax
878d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%ecx
879d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	4(%rsp),%edx
880d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-1894007588(%r14,%r12,1),%r12d
881d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%ebx
882d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
883d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r12d
884d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%edx
885d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%esi,%ebx
886d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r12d
887d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%esi
888d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%r12d
889d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	40(%rsp),%ebp
890d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%eax
891d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,36(%rsp)
892d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%ebx
893d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	48(%rsp),%ebp
894d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%esi,%eax
895d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%ecx
896d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	8(%rsp),%ebp
897d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-1894007588(%rdx,%r11,1),%r11d
898d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%ebx
899d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
900d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r11d
901d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%ebp
902d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r13d,%ebx
903d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r11d
904d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r13d
905d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%r11d
906d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	44(%rsp),%r14d
907d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%eax
908d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,40(%rsp)
909d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%ebx
910d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	52(%rsp),%r14d
911d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r13d,%eax
912d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%ecx
913d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	12(%rsp),%r14d
914d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-1894007588(%rbp,%rdi,1),%edi
915d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%ebx
916d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
917d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%edi
918d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%r14d
919d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r12d,%ebx
920d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%edi
921d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r12d
922d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%edi
923d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	48(%rsp),%edx
924d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%eax
925d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r14d,44(%rsp)
926d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%ebx
927d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	56(%rsp),%edx
928d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r12d,%eax
929d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%ecx
930d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	16(%rsp),%edx
931d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-1894007588(%r14,%rsi,1),%esi
932d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%ebx
933d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
934d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%esi
935d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%edx
936d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%r11d,%ebx
937d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%esi
938d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r11d
939d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%esi
940d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	52(%rsp),%ebp
941d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%eax
942d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,48(%rsp)
943d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%ecx
944d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	60(%rsp),%ebp
945d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%eax
946d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
947d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	20(%rsp),%ebp
948d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-899497514(%rdx,%r13,1),%r13d
949d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%eax
950d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r13d
951d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%edi
952d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r13d
953d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%ebp
954d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	56(%rsp),%r14d
955d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%eax
956d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,52(%rsp)
957d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%ecx
958d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	0(%rsp),%r14d
959d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%eax
960d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
961d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	24(%rsp),%r14d
962d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-899497514(%rbp,%r12,1),%r12d
963d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%eax
964d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r12d
965d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%esi
966d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r12d
967d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%r14d
968d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	60(%rsp),%edx
969d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%eax
970d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r14d,56(%rsp)
971d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%ecx
972d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	4(%rsp),%edx
973d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%eax
974d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
975d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	28(%rsp),%edx
976d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-899497514(%r14,%r11,1),%r11d
977d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%eax
978d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r11d
979d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r13d
980d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r11d
981d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%edx
982d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	0(%rsp),%ebp
983d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%eax
984d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,60(%rsp)
985d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%ecx
986d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	8(%rsp),%ebp
987d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%eax
988d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
989d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	32(%rsp),%ebp
990d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-899497514(%rdx,%rdi,1),%edi
991d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%eax
992d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%edi
993d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r12d
994d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%edi
995d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%ebp
996d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	4(%rsp),%r14d
997d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%eax
998d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,0(%rsp)
999d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%ecx
1000d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	12(%rsp),%r14d
1001d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%eax
1002d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1003d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	36(%rsp),%r14d
1004d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-899497514(%rbp,%rsi,1),%esi
1005d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%eax
1006d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%esi
1007d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r11d
1008d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%esi
1009d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%r14d
1010d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	8(%rsp),%edx
1011d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%eax
1012d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r14d,4(%rsp)
1013d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%ecx
1014d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	16(%rsp),%edx
1015d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%eax
1016d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1017d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	40(%rsp),%edx
1018d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-899497514(%r14,%r13,1),%r13d
1019d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%eax
1020d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r13d
1021d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%edi
1022d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r13d
1023d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%edx
1024d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	12(%rsp),%ebp
1025d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%eax
1026d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,8(%rsp)
1027d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%ecx
1028d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	20(%rsp),%ebp
1029d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%eax
1030d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1031d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	44(%rsp),%ebp
1032d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-899497514(%rdx,%r12,1),%r12d
1033d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%eax
1034d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r12d
1035d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%esi
1036d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r12d
1037d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%ebp
1038d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	16(%rsp),%r14d
1039d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%eax
1040d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,12(%rsp)
1041d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%ecx
1042d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	24(%rsp),%r14d
1043d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%eax
1044d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1045d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	48(%rsp),%r14d
1046d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-899497514(%rbp,%r11,1),%r11d
1047d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%eax
1048d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r11d
1049d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r13d
1050d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r11d
1051d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%r14d
1052d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	20(%rsp),%edx
1053d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%eax
1054d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r14d,16(%rsp)
1055d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%ecx
1056d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	28(%rsp),%edx
1057d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%eax
1058d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1059d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	52(%rsp),%edx
1060d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-899497514(%r14,%rdi,1),%edi
1061d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%eax
1062d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%edi
1063d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r12d
1064d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%edi
1065d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%edx
1066d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	24(%rsp),%ebp
1067d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%eax
1068d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,20(%rsp)
1069d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%ecx
1070d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	32(%rsp),%ebp
1071d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%eax
1072d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1073d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	56(%rsp),%ebp
1074d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-899497514(%rdx,%rsi,1),%esi
1075d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%eax
1076d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%esi
1077d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r11d
1078d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%esi
1079d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%ebp
1080d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	28(%rsp),%r14d
1081d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%eax
1082d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,24(%rsp)
1083d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%ecx
1084d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	36(%rsp),%r14d
1085d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%eax
1086d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1087d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	60(%rsp),%r14d
1088d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-899497514(%rbp,%r13,1),%r13d
1089d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%eax
1090d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r13d
1091d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%edi
1092d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r13d
1093d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%r14d
1094d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	32(%rsp),%edx
1095d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%eax
1096d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r14d,28(%rsp)
1097d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%ecx
1098d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	40(%rsp),%edx
1099d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%eax
1100d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1101d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	0(%rsp),%edx
1102d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-899497514(%r14,%r12,1),%r12d
1103d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%eax
1104d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r12d
1105d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%esi
1106d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r12d
1107d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%edx
1108d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	36(%rsp),%ebp
1109d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%eax
1110d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1111d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%ecx
1112d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	44(%rsp),%ebp
1113d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%eax
1114d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1115d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	4(%rsp),%ebp
1116d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-899497514(%rdx,%r11,1),%r11d
1117d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%eax
1118d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r11d
1119d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r13d
1120d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r11d
1121d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%ebp
1122d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	40(%rsp),%r14d
1123d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%eax
1124d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1125d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%ecx
1126d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	48(%rsp),%r14d
1127d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%eax
1128d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1129d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	8(%rsp),%r14d
1130d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-899497514(%rbp,%rdi,1),%edi
1131d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%eax
1132d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%edi
1133d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r12d
1134d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%edi
1135d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%r14d
1136d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	44(%rsp),%edx
1137d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%eax
1138d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1139d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%ecx
1140d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	52(%rsp),%edx
1141d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%eax
1142d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1143d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	12(%rsp),%edx
1144d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-899497514(%r14,%rsi,1),%esi
1145d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%eax
1146d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%esi
1147d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r11d
1148d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%esi
1149d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%edx
1150d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	48(%rsp),%ebp
1151d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%eax
1152d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1153d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%ecx
1154d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	56(%rsp),%ebp
1155d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%eax
1156d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1157d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	16(%rsp),%ebp
1158d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-899497514(%rdx,%r13,1),%r13d
1159d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%eax
1160d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r13d
1161d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%edi
1162d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r13d
1163d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%ebp
1164d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	52(%rsp),%r14d
1165d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%eax
1166d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1167d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%ecx
1168d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	60(%rsp),%r14d
1169d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r11d,%eax
1170d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1171d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	20(%rsp),%r14d
1172d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-899497514(%rbp,%r12,1),%r12d
1173d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%eax
1174d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r12d
1175d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%esi
1176d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r12d
1177d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%r14d
1178d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	56(%rsp),%edx
1179d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,%eax
1180d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1181d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%ecx
1182d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	0(%rsp),%edx
1183d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edi,%eax
1184d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1185d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	24(%rsp),%edx
1186d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-899497514(%r14,%r11,1),%r11d
1187d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%eax
1188d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%r11d
1189d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r13d
1190d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%r11d
1191d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%edx
1192d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	60(%rsp),%ebp
1193d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,%eax
1194d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1195d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%ecx
1196d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	4(%rsp),%ebp
1197d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%esi,%eax
1198d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1199d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	28(%rsp),%ebp
1200d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-899497514(%rdx,%rdi,1),%edi
1201d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%eax
1202d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%edi
1203d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r12d
1204d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%edi
1205d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$1,%ebp
1206d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,%eax
1207d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,%ecx
1208d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r13d,%eax
1209d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leal	-899497514(%rbp,%rsi,1),%esi
1210d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1211d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%r12d,%eax
1212d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%esi
1213d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$30,%r11d
1214d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%esi
1215d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	0(%r8),%esi
1216d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	4(%r8),%edi
1217d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	8(%r8),%r11d
1218d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	12(%r8),%r12d
1219d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	16(%r8),%r13d
1220d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,0(%r8)
1221d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edi,4(%r8)
1222d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r11d,8(%r8)
1223d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r12d,12(%r8)
1224d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%r13d,16(%r8)
1225d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1226d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	subq	$1,%r10
1227d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leaq	64(%r9),%r9
1228d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	jnz	L$loop
1229d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1230d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movq	64(%rsp),%rsi
1231d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movq	-40(%rsi),%r14
1232d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movq	-32(%rsi),%r13
1233d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movq	-24(%rsi),%r12
1234d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movq	-16(%rsi),%rbp
1235d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movq	-8(%rsi),%rbx
1236d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leaq	(%rsi),%rsp
1237d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$epilogue:
1238d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	.byte	0xf3,0xc3
1239d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1240d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1241d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.p2align	4
1242d9e397b599b13d642138480a28c14db7a136bf0Adam Langleysha1_block_data_order_ssse3:
1243d9e397b599b13d642138480a28c14db7a136bf0Adam Langley_ssse3_shortcut:
1244a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	movq	%rsp,%r11
1245d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pushq	%rbx
1246d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pushq	%rbp
1247d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pushq	%r12
1248d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pushq	%r13
1249d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pushq	%r14
1250d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	leaq	-64(%rsp),%rsp
1251d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andq	$-64,%rsp
1252d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movq	%rdi,%r8
1253d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movq	%rsi,%r9
1254d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movq	%rdx,%r10
1255d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1256d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shlq	$6,%r10
1257d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addq	%r9,%r10
1258a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	leaq	K_XX_XX+64(%rip),%r14
1259d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1260d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	0(%r8),%eax
1261d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	4(%r8),%ebx
1262d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	8(%r8),%ecx
1263d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	12(%r8),%edx
1264d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebx,%esi
1265d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	16(%r8),%ebp
1266d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ecx,%edi
1267d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%edi
1268d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%edi,%esi
1269d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1270a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	movdqa	64(%r14),%xmm6
1271a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	movdqa	-64(%r14),%xmm9
1272d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqu	0(%r9),%xmm0
1273d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqu	16(%r9),%xmm1
1274d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqu	32(%r9),%xmm2
1275d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqu	48(%r9),%xmm3
1276d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte	102,15,56,0,198
1277d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte	102,15,56,0,206
1278d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte	102,15,56,0,214
1279d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addq	$64,%r9
1280d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm9,%xmm0
1281d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte	102,15,56,0,222
1282d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm9,%xmm1
1283d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm9,%xmm2
1284d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm0,0(%rsp)
1285d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psubd	%xmm9,%xmm0
1286d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm1,16(%rsp)
1287d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psubd	%xmm9,%xmm1
1288d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm2,32(%rsp)
1289d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psubd	%xmm9,%xmm2
1290d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	jmp	L$oop_ssse3
1291d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.p2align	4
1292d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$oop_ssse3:
1293d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$2,%ebx
1294d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	$238,%xmm0,%xmm4
1295d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%esi
1296d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm3,%xmm8
1297d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm3,%xmm9
1298d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%eax,%edi
1299d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	0(%rsp),%ebp
1300d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	punpcklqdq	%xmm1,%xmm4
1301d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%ebx
1302d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%eax
1303d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ebp
1304d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrldq	$4,%xmm8
1305d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%ebx,%edi
1306d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%ebx
1307d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm0,%xmm4
1308d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%ebp
1309d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%eax
1310d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm2,%xmm8
1311d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%edi
1312d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,%esi
1313d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	4(%rsp),%edx
1314d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm8,%xmm4
1315d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%eax
1316d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebp
1317d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm9,48(%rsp)
1318d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%edx
1319d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%eax,%esi
1320d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm4,%xmm10
1321d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%eax
1322d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebp,%edx
1323d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebp
1324d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm4,%xmm8
1325d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%esi
1326d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslldq	$12,%xmm10
1327d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm4,%xmm4
1328d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,%edi
1329d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	8(%rsp),%ecx
1330d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	$31,%xmm8
1331d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%ebp
1332d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%edx
1333d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ecx
1334d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm10,%xmm9
1335d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%ebp,%edi
1336d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%ebp
1337d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	$30,%xmm10
1338d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edx,%ecx
1339d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%edx
1340d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	por	%xmm8,%xmm4
1341d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%edi
1342d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ecx,%esi
1343d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	12(%rsp),%ebx
1344d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslld	$2,%xmm9
1345d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm10,%xmm4
1346d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edx
1347a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	movdqa	-64(%r14),%xmm10
1348d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1349d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ebx
1350d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%edx,%esi
1351d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm9,%xmm4
1352d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edx
1353d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%ebx
1354d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ecx
1355d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	$238,%xmm1,%xmm5
1356d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%esi
1357d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm4,%xmm9
1358d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm4,%xmm10
1359d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebx,%edi
1360d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	16(%rsp),%eax
1361d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	punpcklqdq	%xmm2,%xmm5
1362d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%ecx
1363d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebx
1364d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%eax
1365d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrldq	$4,%xmm9
1366d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%ecx,%edi
1367d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%ecx
1368d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm1,%xmm5
1369d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%eax
1370d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebx
1371d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm3,%xmm9
1372d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%edi
1373d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%eax,%esi
1374d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	20(%rsp),%ebp
1375d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm9,%xmm5
1376d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%ebx
1377d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%eax
1378d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm10,0(%rsp)
1379d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ebp
1380d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%ebx,%esi
1381d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm5,%xmm8
1382d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%ebx
1383d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%ebp
1384d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%eax
1385d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm5,%xmm9
1386d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%esi
1387d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslldq	$12,%xmm8
1388d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm5,%xmm5
1389d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,%edi
1390d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	24(%rsp),%edx
1391d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	$31,%xmm9
1392d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%eax
1393d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebp
1394d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%edx
1395d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm8,%xmm10
1396d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%eax,%edi
1397d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%eax
1398d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	$30,%xmm8
1399d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebp,%edx
1400d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebp
1401d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	por	%xmm9,%xmm5
1402d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%edi
1403d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,%esi
1404d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	28(%rsp),%ecx
1405d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslld	$2,%xmm10
1406d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm8,%xmm5
1407d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%ebp
1408a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	movdqa	-32(%r14),%xmm8
1409d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%edx
1410d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ecx
1411d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%ebp,%esi
1412d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm10,%xmm5
1413d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%ebp
1414d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edx,%ecx
1415d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%edx
1416d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	$238,%xmm2,%xmm6
1417d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%esi
1418d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm5,%xmm10
1419d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm5,%xmm8
1420d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ecx,%edi
1421d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	32(%rsp),%ebx
1422d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	punpcklqdq	%xmm3,%xmm6
1423d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edx
1424d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1425d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ebx
1426d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrldq	$4,%xmm10
1427d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%edx,%edi
1428d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edx
1429d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm2,%xmm6
1430d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%ebx
1431d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ecx
1432d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm4,%xmm10
1433d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edi
1434d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebx,%esi
1435d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	36(%rsp),%eax
1436d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm10,%xmm6
1437d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%ecx
1438d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebx
1439d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm8,16(%rsp)
1440d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%eax
1441d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%ecx,%esi
1442d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm6,%xmm9
1443d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%ecx
1444d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%eax
1445d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebx
1446d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm6,%xmm10
1447d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%esi
1448d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslldq	$12,%xmm9
1449d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm6,%xmm6
1450d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%eax,%edi
1451d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	40(%rsp),%ebp
1452d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	$31,%xmm10
1453d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%ebx
1454d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%eax
1455d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ebp
1456d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm9,%xmm8
1457d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%ebx,%edi
1458d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%ebx
1459d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	$30,%xmm9
1460d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%ebp
1461d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%eax
1462d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	por	%xmm10,%xmm6
1463d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%edi
1464d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,%esi
1465d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	44(%rsp),%edx
1466d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslld	$2,%xmm8
1467d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm9,%xmm6
1468d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%eax
1469a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	movdqa	-32(%r14),%xmm9
1470d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebp
1471d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%edx
1472d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%eax,%esi
1473d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm8,%xmm6
1474d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%eax
1475d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebp,%edx
1476d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebp
1477d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	$238,%xmm3,%xmm7
1478d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%esi
1479d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm6,%xmm8
1480d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm6,%xmm9
1481d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,%edi
1482d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	48(%rsp),%ecx
1483d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	punpcklqdq	%xmm4,%xmm7
1484d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%ebp
1485d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%edx
1486d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ecx
1487d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrldq	$4,%xmm8
1488d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%ebp,%edi
1489d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%ebp
1490d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm3,%xmm7
1491d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edx,%ecx
1492d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%edx
1493d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm5,%xmm8
1494d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%edi
1495d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ecx,%esi
1496d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	52(%rsp),%ebx
1497d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm8,%xmm7
1498d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edx
1499d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1500d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm9,32(%rsp)
1501d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ebx
1502d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%edx,%esi
1503d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm7,%xmm10
1504d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edx
1505d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%ebx
1506d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ecx
1507d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm7,%xmm8
1508d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%esi
1509d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslldq	$12,%xmm10
1510d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm7,%xmm7
1511d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebx,%edi
1512d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	56(%rsp),%eax
1513d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	$31,%xmm8
1514d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%ecx
1515d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebx
1516d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%eax
1517d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm10,%xmm9
1518d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%ecx,%edi
1519d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%ecx
1520d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	$30,%xmm10
1521d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%eax
1522d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebx
1523d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	por	%xmm8,%xmm7
1524d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%edi
1525d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%eax,%esi
1526d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	60(%rsp),%ebp
1527d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslld	$2,%xmm9
1528d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm10,%xmm7
1529d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%ebx
1530a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	movdqa	-32(%r14),%xmm10
1531d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%eax
1532d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ebp
1533d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%ebx,%esi
1534d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm9,%xmm7
1535d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	$238,%xmm6,%xmm9
1536d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%ebx
1537d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%ebp
1538d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%eax
1539d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm4,%xmm0
1540d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%esi
1541d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,%edi
1542d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	0(%rsp),%edx
1543d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	punpcklqdq	%xmm7,%xmm9
1544d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%eax
1545d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebp
1546d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm1,%xmm0
1547d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%edx
1548d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%eax,%edi
1549d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm10,%xmm8
1550d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%eax
1551d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm7,%xmm10
1552d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebp,%edx
1553d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm9,%xmm0
1554d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebp
1555d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%edi
1556d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,%esi
1557d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	4(%rsp),%ecx
1558d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm0,%xmm9
1559d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%ebp
1560d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%edx
1561d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm10,48(%rsp)
1562d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ecx
1563d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%ebp,%esi
1564d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%ebp
1565d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslld	$2,%xmm0
1566d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edx,%ecx
1567d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%edx
1568d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	$30,%xmm9
1569d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%esi
1570d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ecx,%edi
1571d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	8(%rsp),%ebx
1572d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	por	%xmm9,%xmm0
1573d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edx
1574d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1575d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	$238,%xmm7,%xmm10
1576d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ebx
1577d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%edx,%edi
1578d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edx
1579d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%ebx
1580d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	12(%rsp),%eax
1581d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edi
1582d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebx,%esi
1583d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebx
1584d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%eax
1585d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%esi
1586d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ecx
1587d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%eax
1588d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm5,%xmm1
1589d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	16(%rsp),%ebp
1590d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%esi
1591d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	punpcklqdq	%xmm0,%xmm10
1592d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%eax,%edi
1593d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%eax
1594d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm2,%xmm1
1595d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ebp
1596d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%edi
1597d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm8,%xmm9
1598d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebx
1599d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm0,%xmm8
1600d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%ebp
1601d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm10,%xmm1
1602d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	20(%rsp),%edx
1603d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%edi
1604d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,%esi
1605d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebp
1606d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm1,%xmm10
1607d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%edx
1608d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%esi
1609d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm8,0(%rsp)
1610d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%eax
1611d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebp,%edx
1612d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	24(%rsp),%ecx
1613d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslld	$2,%xmm1
1614d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%esi
1615d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,%edi
1616d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	$30,%xmm10
1617d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%edx
1618d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ecx
1619d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%edi
1620d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebp
1621d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	por	%xmm10,%xmm1
1622d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edx,%ecx
1623d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	28(%rsp),%ebx
1624d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	$238,%xmm0,%xmm8
1625d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edi
1626d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ecx,%esi
1627d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1628d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ebx
1629d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%esi
1630d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%edx
1631d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%ebx
1632d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm6,%xmm2
1633d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	32(%rsp),%eax
1634d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%esi
1635d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	punpcklqdq	%xmm1,%xmm8
1636d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebx,%edi
1637d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebx
1638d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm3,%xmm2
1639d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%eax
1640d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%edi
1641a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	movdqa	0(%r14),%xmm10
1642d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ecx
1643d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm1,%xmm9
1644d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%eax
1645d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm8,%xmm2
1646d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	36(%rsp),%ebp
1647d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%edi
1648d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%eax,%esi
1649d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%eax
1650d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm2,%xmm8
1651d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ebp
1652d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%esi
1653d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm9,16(%rsp)
1654d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebx
1655d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%ebp
1656d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	40(%rsp),%edx
1657d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslld	$2,%xmm2
1658d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%esi
1659d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,%edi
1660d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	$30,%xmm8
1661d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebp
1662d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%edx
1663d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%edi
1664d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%eax
1665d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	por	%xmm8,%xmm2
1666d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebp,%edx
1667d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	44(%rsp),%ecx
1668d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	$238,%xmm1,%xmm9
1669d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%edi
1670d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,%esi
1671d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%edx
1672d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ecx
1673d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%esi
1674d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebp
1675d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edx,%ecx
1676d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm7,%xmm3
1677d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	48(%rsp),%ebx
1678d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%esi
1679d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	punpcklqdq	%xmm2,%xmm9
1680d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ecx,%edi
1681d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1682d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm4,%xmm3
1683d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ebx
1684d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edi
1685d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm10,%xmm8
1686d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%edx
1687d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm2,%xmm10
1688d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%ebx
1689d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm9,%xmm3
1690d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	52(%rsp),%eax
1691d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%edi
1692d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebx,%esi
1693d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebx
1694d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm3,%xmm9
1695d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%eax
1696d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%esi
1697d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm10,32(%rsp)
1698d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ecx
1699d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%eax
1700d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	56(%rsp),%ebp
1701d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslld	$2,%xmm3
1702d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%esi
1703d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%eax,%edi
1704d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	$30,%xmm9
1705d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%eax
1706d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ebp
1707d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%edi
1708d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebx
1709d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	por	%xmm9,%xmm3
1710d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%ebp
1711d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	60(%rsp),%edx
1712d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	$238,%xmm2,%xmm10
1713d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%edi
1714d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,%esi
1715d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebp
1716d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%edx
1717d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%esi
1718d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%eax
1719d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebp,%edx
1720d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm0,%xmm4
1721d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	0(%rsp),%ecx
1722d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%esi
1723d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	punpcklqdq	%xmm3,%xmm10
1724d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,%edi
1725d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%edx
1726d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm5,%xmm4
1727d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ecx
1728d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%edi
1729d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm8,%xmm9
1730d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebp
1731d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm3,%xmm8
1732d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edx,%ecx
1733d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm10,%xmm4
1734d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	4(%rsp),%ebx
1735d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edi
1736d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ecx,%esi
1737d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1738d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm4,%xmm10
1739d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ebx
1740d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%esi
1741d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm8,48(%rsp)
1742d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%edx
1743d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%ebx
1744d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	8(%rsp),%eax
1745d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslld	$2,%xmm4
1746d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%esi
1747d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebx,%edi
1748d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	$30,%xmm10
1749d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebx
1750d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%eax
1751d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%edi
1752d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ecx
1753d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	por	%xmm10,%xmm4
1754d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%eax
1755d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	12(%rsp),%ebp
1756d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	$238,%xmm3,%xmm8
1757d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%edi
1758d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%eax,%esi
1759d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%eax
1760d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ebp
1761d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%esi
1762d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebx
1763d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%ebp
1764d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm1,%xmm5
1765d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	16(%rsp),%edx
1766d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%esi
1767d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	punpcklqdq	%xmm4,%xmm8
1768d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,%edi
1769d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebp
1770d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm6,%xmm5
1771d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%edx
1772d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%edi
1773d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm9,%xmm10
1774d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%eax
1775d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm4,%xmm9
1776d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebp,%edx
1777d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm8,%xmm5
1778d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	20(%rsp),%ecx
1779d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%edi
1780d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,%esi
1781d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%edx
1782d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm5,%xmm8
1783d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ecx
1784d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%esi
1785d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm9,0(%rsp)
1786d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebp
1787d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edx,%ecx
1788d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	24(%rsp),%ebx
1789d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslld	$2,%xmm5
1790d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%esi
1791d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ecx,%edi
1792d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	$30,%xmm8
1793d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1794d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ebx
1795d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edi
1796d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%edx
1797d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	por	%xmm8,%xmm5
1798d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%ebx
1799d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	28(%rsp),%eax
1800d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	$238,%xmm4,%xmm9
1801d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ecx
1802d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebx,%esi
1803d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%edi
1804d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebx
1805d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%eax
1806d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%esi
1807d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%ecx
1808d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%eax
1809d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm2,%xmm6
1810d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	32(%rsp),%ebp
1811d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%ecx,%esi
1812d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%ecx
1813d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebx
1814d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	punpcklqdq	%xmm5,%xmm9
1815d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%eax,%edi
1816d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%esi
1817d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm7,%xmm6
1818d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%eax
1819d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ebp
1820d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm10,%xmm8
1821d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%edi
1822d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm5,%xmm10
1823d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%ebx
1824d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm9,%xmm6
1825d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%ebp
1826d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	36(%rsp),%edx
1827d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%ebx,%edi
1828d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%ebx
1829d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%eax
1830d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm6,%xmm9
1831d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,%esi
1832d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%edi
1833d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm10,16(%rsp)
1834d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebp
1835d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%edx
1836d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%esi
1837d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslld	$2,%xmm6
1838d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%eax
1839d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebp,%edx
1840d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	$30,%xmm9
1841d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	40(%rsp),%ecx
1842d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%eax,%esi
1843d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%eax
1844d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	por	%xmm9,%xmm6
1845d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebp
1846d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,%edi
1847d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%esi
1848d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%edx
1849d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	$238,%xmm5,%xmm10
1850d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ecx
1851d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edi
1852d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%ebp
1853d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edx,%ecx
1854d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	44(%rsp),%ebx
1855d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%ebp,%edi
1856d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%ebp
1857d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%edx
1858d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ecx,%esi
1859d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edi
1860d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1861d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ebx
1862d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%esi
1863d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edx
1864d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%ebx
1865d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm3,%xmm7
1866d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	48(%rsp),%eax
1867d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%edx,%esi
1868d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edx
1869d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ecx
1870d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	punpcklqdq	%xmm6,%xmm10
1871d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebx,%edi
1872d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%esi
1873d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm0,%xmm7
1874d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebx
1875d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%eax
1876a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	movdqa	32(%r14),%xmm9
1877d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%edi
1878d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm6,%xmm8
1879d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%ecx
1880d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm10,%xmm7
1881d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%eax
1882d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	52(%rsp),%ebp
1883d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%ecx,%edi
1884d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%ecx
1885d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebx
1886d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm7,%xmm10
1887d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%eax,%esi
1888d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%edi
1889d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm8,32(%rsp)
1890d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%eax
1891d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ebp
1892d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%esi
1893d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslld	$2,%xmm7
1894d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%ebx
1895d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%ebp
1896d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	$30,%xmm10
1897d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	56(%rsp),%edx
1898d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%ebx,%esi
1899d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%ebx
1900d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	por	%xmm10,%xmm7
1901d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%eax
1902d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,%edi
1903d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%esi
1904d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebp
1905d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	$238,%xmm6,%xmm8
1906d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%edx
1907d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%edi
1908d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%eax
1909d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebp,%edx
1910d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	60(%rsp),%ecx
1911d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%eax,%edi
1912d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%eax
1913d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebp
1914d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,%esi
1915d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%edi
1916d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%edx
1917d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ecx
1918d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%esi
1919d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%ebp
1920d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edx,%ecx
1921d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm4,%xmm0
1922d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	0(%rsp),%ebx
1923d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%ebp,%esi
1924d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%ebp
1925d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%edx
1926d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	punpcklqdq	%xmm7,%xmm8
1927d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ecx,%edi
1928d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%esi
1929d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm1,%xmm0
1930d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
1931d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ebx
1932d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm9,%xmm10
1933d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%edi
1934d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm7,%xmm9
1935d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edx
1936d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm8,%xmm0
1937d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%ebx
1938d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	4(%rsp),%eax
1939d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%edx,%edi
1940d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edx
1941d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ecx
1942d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm0,%xmm8
1943d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebx,%esi
1944d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%edi
1945d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm9,48(%rsp)
1946d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebx
1947d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%eax
1948d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%esi
1949d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslld	$2,%xmm0
1950d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%ecx
1951d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%eax
1952d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	$30,%xmm8
1953d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	8(%rsp),%ebp
1954d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%ecx,%esi
1955d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%ecx
1956d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	por	%xmm8,%xmm0
1957d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebx
1958d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%eax,%edi
1959d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%esi
1960d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%eax
1961d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	$238,%xmm7,%xmm9
1962d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ebp
1963d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%edi
1964d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%ebx
1965d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%ebp
1966d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	12(%rsp),%edx
1967d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%ebx,%edi
1968d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%ebx
1969d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%eax
1970d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,%esi
1971d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%edi
1972d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebp
1973d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%edx
1974d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%esi
1975d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%eax
1976d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebp,%edx
1977d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm5,%xmm1
1978d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	16(%rsp),%ecx
1979d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%eax,%esi
1980d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%eax
1981d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebp
1982d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	punpcklqdq	%xmm0,%xmm9
1983d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,%edi
1984d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%esi
1985d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm2,%xmm1
1986d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%edx
1987d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ecx
1988d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm10,%xmm8
1989d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edi
1990d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm0,%xmm10
1991d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%ebp
1992d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm9,%xmm1
1993d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edx,%ecx
1994d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	20(%rsp),%ebx
1995d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%ebp,%edi
1996d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%ebp
1997d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%edx
1998d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm1,%xmm9
1999d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ecx,%esi
2000d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edi
2001d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm10,0(%rsp)
2002d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
2003d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ebx
2004d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%esi
2005d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslld	$2,%xmm1
2006d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edx
2007d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%ebx
2008d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	$30,%xmm9
2009d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	24(%rsp),%eax
2010d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%edx,%esi
2011d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edx
2012d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	por	%xmm9,%xmm1
2013d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ecx
2014d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebx,%edi
2015d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%esi
2016d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebx
2017d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	$238,%xmm0,%xmm10
2018d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%eax
2019d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%edi
2020d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%ecx
2021d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%eax
2022d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	28(%rsp),%ebp
2023d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%ecx,%edi
2024d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%ecx
2025d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebx
2026d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%eax,%esi
2027d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%edi
2028d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%eax
2029d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ebp
2030d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%esi
2031d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%ebx
2032d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%ebp
2033d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm6,%xmm2
2034d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	32(%rsp),%edx
2035d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%ebx,%esi
2036d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%ebx
2037d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%eax
2038d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	punpcklqdq	%xmm1,%xmm10
2039d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,%edi
2040d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%esi
2041d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm3,%xmm2
2042d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebp
2043d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%edx
2044d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm8,%xmm9
2045d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%edi
2046d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm1,%xmm8
2047d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%eax
2048d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm10,%xmm2
2049d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebp,%edx
2050d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	36(%rsp),%ecx
2051d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%eax,%edi
2052d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%eax
2053d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebp
2054d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm2,%xmm10
2055d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,%esi
2056d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%edi
2057d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm8,16(%rsp)
2058d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%edx
2059d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ecx
2060d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%esi
2061d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslld	$2,%xmm2
2062d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%ebp
2063d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edx,%ecx
2064d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	$30,%xmm10
2065d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	40(%rsp),%ebx
2066d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%ebp,%esi
2067d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%ebp
2068d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	por	%xmm10,%xmm2
2069d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%edx
2070d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ecx,%edi
2071d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%esi
2072d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
2073d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	$238,%xmm1,%xmm8
2074d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ebx
2075d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%edi
2076d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edx
2077d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%ebx
2078d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	44(%rsp),%eax
2079d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%edx,%edi
2080d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edx
2081d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ecx
2082d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebx,%esi
2083d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%edi
2084d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebx
2085d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%eax
2086d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%esi
2087d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%eax
2088d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm7,%xmm3
2089d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	48(%rsp),%ebp
2090d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%esi
2091d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	punpcklqdq	%xmm2,%xmm8
2092d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%eax,%edi
2093d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%eax
2094d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm4,%xmm3
2095d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ebp
2096d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%edi
2097d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm9,%xmm10
2098d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebx
2099d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm2,%xmm9
2100d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%ebp
2101d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	%xmm8,%xmm3
2102d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	52(%rsp),%edx
2103d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%edi
2104d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,%esi
2105d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebp
2106d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm3,%xmm8
2107d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%edx
2108d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%esi
2109d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm9,32(%rsp)
2110d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%eax
2111d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebp,%edx
2112d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	56(%rsp),%ecx
2113d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslld	$2,%xmm3
2114d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%esi
2115d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,%edi
2116d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	$30,%xmm8
2117d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%edx
2118d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ecx
2119d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%edi
2120d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebp
2121d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	por	%xmm8,%xmm3
2122d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edx,%ecx
2123d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	60(%rsp),%ebx
2124d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edi
2125d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ecx,%esi
2126d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
2127d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ebx
2128d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%esi
2129d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%edx
2130d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%ebx
2131d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	0(%rsp),%eax
2132d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%esi
2133d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebx,%edi
2134d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebx
2135d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm3,%xmm10
2136d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%eax
2137d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%edi
2138d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm10,48(%rsp)
2139d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ecx
2140d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%eax
2141d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	4(%rsp),%ebp
2142d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%edi
2143d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%eax,%esi
2144d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%eax
2145d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ebp
2146d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%esi
2147d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebx
2148d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%ebp
2149d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	8(%rsp),%edx
2150d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%esi
2151d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,%edi
2152d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebp
2153d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%edx
2154d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%edi
2155d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%eax
2156d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebp,%edx
2157d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	12(%rsp),%ecx
2158d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%edi
2159d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,%esi
2160d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%edx
2161d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ecx
2162d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%esi
2163d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebp
2164d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edx,%ecx
2165d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	cmpq	%r10,%r9
2166d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	je	L$done_ssse3
2167a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	movdqa	64(%r14),%xmm6
2168a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	movdqa	-64(%r14),%xmm9
2169d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqu	0(%r9),%xmm0
2170d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqu	16(%r9),%xmm1
2171d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqu	32(%r9),%xmm2
2172d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqu	48(%r9),%xmm3
2173d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte	102,15,56,0,198
2174d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addq	$64,%r9
2175d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	16(%rsp),%ebx
2176d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%esi
2177d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ecx,%edi
2178d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte	102,15,56,0,206
2179d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
2180d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ebx
2181d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edi
2182d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%edx
2183d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm9,%xmm0
2184d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%ebx
2185d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	20(%rsp),%eax
2186d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%edi
2187d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebx,%esi
2188d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm0,0(%rsp)
2189d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebx
2190d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%eax
2191d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%esi
2192d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ecx
2193d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psubd	%xmm9,%xmm0
2194d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%eax
2195d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	24(%rsp),%ebp
2196d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%esi
2197d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%eax,%edi
2198d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%eax
2199d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ebp
2200d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%edi
2201d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebx
2202d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%ebp
2203d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	28(%rsp),%edx
2204d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%edi
2205d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,%esi
2206d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebp
2207d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%edx
2208d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%esi
2209d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%eax
2210d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebp,%edx
2211d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	32(%rsp),%ecx
2212d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%esi
2213d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,%edi
2214d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte	102,15,56,0,214
2215d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%edx
2216d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ecx
2217d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%edi
2218d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebp
2219d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm9,%xmm1
2220d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edx,%ecx
2221d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	36(%rsp),%ebx
2222d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edi
2223d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ecx,%esi
2224d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm1,16(%rsp)
2225d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
2226d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ebx
2227d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%esi
2228d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%edx
2229d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psubd	%xmm9,%xmm1
2230d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%ebx
2231d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	40(%rsp),%eax
2232d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%esi
2233d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebx,%edi
2234d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebx
2235d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%eax
2236d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%edi
2237d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ecx
2238d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%eax
2239d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	44(%rsp),%ebp
2240d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%edi
2241d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%eax,%esi
2242d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%eax
2243d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ebp
2244d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%esi
2245d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebx
2246d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%ebp
2247d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	48(%rsp),%edx
2248d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%esi
2249d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,%edi
2250d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte	102,15,56,0,222
2251d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebp
2252d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%edx
2253d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%edi
2254d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%eax
2255d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	%xmm9,%xmm2
2256d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebp,%edx
2257d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	52(%rsp),%ecx
2258d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%edi
2259d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,%esi
2260d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	%xmm2,32(%rsp)
2261d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%edx
2262d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ecx
2263d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%esi
2264d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebp
2265d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psubd	%xmm9,%xmm2
2266d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edx,%ecx
2267d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	56(%rsp),%ebx
2268d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%esi
2269d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ecx,%edi
2270d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
2271d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ebx
2272d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edi
2273d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%edx
2274d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%ebx
2275d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	60(%rsp),%eax
2276d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%edi
2277d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebx,%esi
2278d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebx
2279d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%eax
2280d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ecx
2281d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%eax
2282d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	0(%r8),%eax
2283d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	4(%r8),%esi
2284d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	8(%r8),%ecx
2285d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	12(%r8),%edx
2286d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%eax,0(%r8)
2287d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	16(%r8),%ebp
2288d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,4(%r8)
2289d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,%ebx
2290d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ecx,8(%r8)
2291d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ecx,%edi
2292d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,12(%r8)
2293d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%edi
2294d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,16(%r8)
2295d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	andl	%edi,%esi
2296d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	jmp	L$oop_ssse3
2297d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
2298d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.p2align	4
2299d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$done_ssse3:
2300d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	16(%rsp),%ebx
2301d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%esi
2302d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ecx,%edi
2303d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
2304d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ebx
2305d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edi
2306d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%edx
2307d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%ebx
2308d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	20(%rsp),%eax
2309d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%edi
2310d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebx,%esi
2311d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebx
2312d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%eax
2313d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%esi
2314d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ecx
2315d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%eax
2316d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	24(%rsp),%ebp
2317d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%esi
2318d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%eax,%edi
2319d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%eax
2320d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ebp
2321d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%edi
2322d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebx
2323d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%ebp
2324d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	28(%rsp),%edx
2325d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%edi
2326d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,%esi
2327d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebp
2328d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%edx
2329d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%esi
2330d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%eax
2331d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebp,%edx
2332d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	32(%rsp),%ecx
2333d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%esi
2334d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,%edi
2335d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%edx
2336d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ecx
2337d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%edi
2338d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebp
2339d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edx,%ecx
2340d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	36(%rsp),%ebx
2341d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edi
2342d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ecx,%esi
2343d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
2344d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ebx
2345d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%esi
2346d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%edx
2347d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%ebx
2348d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	40(%rsp),%eax
2349d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%esi
2350d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebx,%edi
2351d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebx
2352d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%eax
2353d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%edi
2354d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ecx
2355d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%eax
2356d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	44(%rsp),%ebp
2357d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%edi
2358d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%eax,%esi
2359d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%eax
2360d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ebp
2361d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ecx,%esi
2362d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebx
2363d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%eax,%ebp
2364d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	48(%rsp),%edx
2365d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%esi
2366d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,%edi
2367d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebp
2368d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%edx
2369d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebx,%edi
2370d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%eax
2371d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebp,%edx
2372d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	52(%rsp),%ecx
2373d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%edi
2374d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,%esi
2375d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%edx
2376d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%ecx
2377d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%eax,%esi
2378d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ebp
2379d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edx,%ecx
2380d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	56(%rsp),%ebx
2381d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%esi
2382d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ecx,%edi
2383d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ecx
2384d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%esi,%ebx
2385d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%ebp,%edi
2386d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%edx
2387d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ecx,%ebx
2388d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	60(%rsp),%eax
2389d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xorl	%edx,%edi
2390d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebx,%esi
2391d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	roll	$5,%ebx
2392d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%edi,%eax
2393d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	rorl	$7,%ecx
2394d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	%ebx,%eax
2395d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	0(%r8),%eax
2396d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	4(%r8),%esi
2397d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	8(%r8),%ecx
2398d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%eax,0(%r8)
2399d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	12(%r8),%edx
2400d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%esi,4(%r8)
2401d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	addl	16(%r8),%ebp
2402d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ecx,8(%r8)
2403d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%edx,12(%r8)
2404d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movl	%ebp,16(%r8)
2405a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	movq	-40(%r11),%r14
2406a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	movq	-32(%r11),%r13
2407a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	movq	-24(%r11),%r12
2408a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	movq	-16(%r11),%rbp
2409a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	movq	-8(%r11),%rbx
2410a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	leaq	(%r11),%rsp
2411d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyL$epilogue_ssse3:
2412d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	.byte	0xf3,0xc3
2413d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
24144139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley
24154139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley.p2align	4
24164139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langleysha1_block_data_order_avx:
24174139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley_avx_shortcut:
2418a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	movq	%rsp,%r11
24194139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	pushq	%rbx
24204139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	pushq	%rbp
24214139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	pushq	%r12
24224139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	pushq	%r13
24234139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	pushq	%r14
24244139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	leaq	-64(%rsp),%rsp
24254139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vzeroupper
24264139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andq	$-64,%rsp
24274139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movq	%rdi,%r8
24284139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movq	%rsi,%r9
24294139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movq	%rdx,%r10
24304139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley
24314139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shlq	$6,%r10
24324139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addq	%r9,%r10
2433a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	leaq	K_XX_XX+64(%rip),%r14
24344139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley
24354139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	0(%r8),%eax
24364139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	4(%r8),%ebx
24374139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	8(%r8),%ecx
24384139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	12(%r8),%edx
24394139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebx,%esi
24404139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	16(%r8),%ebp
24414139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ecx,%edi
24424139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%edi
24434139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%edi,%esi
24444139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley
2445a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	vmovdqa	64(%r14),%xmm6
2446a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	vmovdqa	-64(%r14),%xmm11
24474139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqu	0(%r9),%xmm0
24484139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqu	16(%r9),%xmm1
24494139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqu	32(%r9),%xmm2
24504139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqu	48(%r9),%xmm3
24514139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufb	%xmm6,%xmm0,%xmm0
24524139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addq	$64,%r9
24534139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufb	%xmm6,%xmm1,%xmm1
24544139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufb	%xmm6,%xmm2,%xmm2
24554139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufb	%xmm6,%xmm3,%xmm3
24564139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm11,%xmm0,%xmm4
24574139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm11,%xmm1,%xmm5
24584139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm11,%xmm2,%xmm6
24594139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	%xmm4,0(%rsp)
24604139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	%xmm5,16(%rsp)
24614139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	%xmm6,32(%rsp)
24624139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	jmp	L$oop_avx
24634139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley.p2align	4
24644139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam LangleyL$oop_avx:
24654139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$2,%ebx,%ebx
24664139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%esi
24674139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpalignr	$8,%xmm0,%xmm1,%xmm4
24684139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%eax,%edi
24694139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	0(%rsp),%ebp
24704139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm3,%xmm11,%xmm9
24714139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%ebx
24724139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%eax,%eax
24734139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrldq	$4,%xmm3,%xmm8
24744139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ebp
24754139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%ebx,%edi
24764139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm0,%xmm4,%xmm4
24774139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%ebx
24784139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%eax,%ebp
24794139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm2,%xmm8,%xmm8
24804139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%eax,%eax
24814139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%edi
24824139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebp,%esi
24834139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	4(%rsp),%edx
24844139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm8,%xmm4,%xmm4
24854139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%eax
24864139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebp,%ebp
24874139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	%xmm9,48(%rsp)
24884139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%edx
24894139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%eax,%esi
24904139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	$31,%xmm4,%xmm8
24914139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%eax
24924139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebp,%edx
24934139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebp,%ebp
24944139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%esi
24954139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslldq	$12,%xmm4,%xmm10
24964139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm4,%xmm4,%xmm4
24974139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%edx,%edi
24984139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	8(%rsp),%ecx
24994139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%ebp
25004139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%edx,%edx
25014139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	$30,%xmm10,%xmm9
25024139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpor	%xmm8,%xmm4,%xmm4
25034139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ecx
25044139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%ebp,%edi
25054139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%ebp
25064139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edx,%ecx
25074139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslld	$2,%xmm10,%xmm10
25084139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm9,%xmm4,%xmm4
25094139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%edx,%edx
25104139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%edi
25114139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ecx,%esi
25124139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	12(%rsp),%ebx
25134139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm10,%xmm4,%xmm4
25144139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edx
25154139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ecx,%ecx
25164139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ebx
25174139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%edx,%esi
25184139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edx
25194139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ecx,%ebx
25204139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ecx,%ecx
25214139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%esi
25224139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpalignr	$8,%xmm1,%xmm2,%xmm5
25234139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebx,%edi
25244139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	16(%rsp),%eax
25254139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm4,%xmm11,%xmm9
25264139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%ecx
25274139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebx,%ebx
25284139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrldq	$4,%xmm4,%xmm8
25294139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%eax
25304139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%ecx,%edi
25314139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm1,%xmm5,%xmm5
25324139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%ecx
25334139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebx,%eax
25344139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm3,%xmm8,%xmm8
25354139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebx,%ebx
25364139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%edi
25374139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%eax,%esi
25384139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	20(%rsp),%ebp
25394139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm8,%xmm5,%xmm5
25404139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%ebx
25414139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%eax,%eax
25424139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	%xmm9,0(%rsp)
25434139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ebp
25444139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%ebx,%esi
25454139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	$31,%xmm5,%xmm8
25464139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%ebx
25474139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%eax,%ebp
25484139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%eax,%eax
25494139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%esi
25504139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslldq	$12,%xmm5,%xmm10
25514139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm5,%xmm5,%xmm5
25524139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebp,%edi
25534139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	24(%rsp),%edx
25544139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%eax
25554139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebp,%ebp
25564139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	$30,%xmm10,%xmm9
25574139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpor	%xmm8,%xmm5,%xmm5
25584139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%edx
25594139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%eax,%edi
25604139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%eax
25614139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebp,%edx
25624139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslld	$2,%xmm10,%xmm10
25634139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm9,%xmm5,%xmm5
25644139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebp,%ebp
25654139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%edi
25664139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%edx,%esi
25674139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	28(%rsp),%ecx
25684139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm10,%xmm5,%xmm5
25694139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%ebp
25704139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%edx,%edx
2571a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	vmovdqa	-32(%r14),%xmm11
25724139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ecx
25734139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%ebp,%esi
25744139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%ebp
25754139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edx,%ecx
25764139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%edx,%edx
25774139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%esi
25784139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpalignr	$8,%xmm2,%xmm3,%xmm6
25794139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ecx,%edi
25804139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	32(%rsp),%ebx
25814139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm5,%xmm11,%xmm9
25824139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edx
25834139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ecx,%ecx
25844139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrldq	$4,%xmm5,%xmm8
25854139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ebx
25864139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%edx,%edi
25874139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm2,%xmm6,%xmm6
25884139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edx
25894139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ecx,%ebx
25904139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm4,%xmm8,%xmm8
25914139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ecx,%ecx
25924139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edi
25934139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebx,%esi
25944139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	36(%rsp),%eax
25954139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm8,%xmm6,%xmm6
25964139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%ecx
25974139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebx,%ebx
25984139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	%xmm9,16(%rsp)
25994139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%eax
26004139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%ecx,%esi
26014139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	$31,%xmm6,%xmm8
26024139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%ecx
26034139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebx,%eax
26044139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebx,%ebx
26054139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%esi
26064139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslldq	$12,%xmm6,%xmm10
26074139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm6,%xmm6,%xmm6
26084139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%eax,%edi
26094139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	40(%rsp),%ebp
26104139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%ebx
26114139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%eax,%eax
26124139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	$30,%xmm10,%xmm9
26134139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpor	%xmm8,%xmm6,%xmm6
26144139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ebp
26154139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%ebx,%edi
26164139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%ebx
26174139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%eax,%ebp
26184139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslld	$2,%xmm10,%xmm10
26194139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm9,%xmm6,%xmm6
26204139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%eax,%eax
26214139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%edi
26224139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebp,%esi
26234139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	44(%rsp),%edx
26244139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm10,%xmm6,%xmm6
26254139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%eax
26264139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebp,%ebp
26274139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%edx
26284139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%eax,%esi
26294139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%eax
26304139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebp,%edx
26314139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebp,%ebp
26324139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%esi
26334139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpalignr	$8,%xmm3,%xmm4,%xmm7
26344139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%edx,%edi
26354139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	48(%rsp),%ecx
26364139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm6,%xmm11,%xmm9
26374139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%ebp
26384139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%edx,%edx
26394139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrldq	$4,%xmm6,%xmm8
26404139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ecx
26414139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%ebp,%edi
26424139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm3,%xmm7,%xmm7
26434139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%ebp
26444139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edx,%ecx
26454139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm5,%xmm8,%xmm8
26464139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%edx,%edx
26474139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%edi
26484139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ecx,%esi
26494139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	52(%rsp),%ebx
26504139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm8,%xmm7,%xmm7
26514139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edx
26524139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ecx,%ecx
26534139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	%xmm9,32(%rsp)
26544139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ebx
26554139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%edx,%esi
26564139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	$31,%xmm7,%xmm8
26574139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edx
26584139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ecx,%ebx
26594139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ecx,%ecx
26604139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%esi
26614139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslldq	$12,%xmm7,%xmm10
26624139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm7,%xmm7,%xmm7
26634139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebx,%edi
26644139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	56(%rsp),%eax
26654139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%ecx
26664139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebx,%ebx
26674139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	$30,%xmm10,%xmm9
26684139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpor	%xmm8,%xmm7,%xmm7
26694139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%eax
26704139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%ecx,%edi
26714139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%ecx
26724139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebx,%eax
26734139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslld	$2,%xmm10,%xmm10
26744139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm9,%xmm7,%xmm7
26754139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebx,%ebx
26764139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%edi
26774139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%eax,%esi
26784139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	60(%rsp),%ebp
26794139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm10,%xmm7,%xmm7
26804139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%ebx
26814139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%eax,%eax
26824139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ebp
26834139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%ebx,%esi
26844139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%ebx
26854139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%eax,%ebp
26864139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpalignr	$8,%xmm6,%xmm7,%xmm8
26874139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm4,%xmm0,%xmm0
26884139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%eax,%eax
26894139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%esi
26904139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebp,%edi
26914139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	0(%rsp),%edx
26924139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm1,%xmm0,%xmm0
26934139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%eax
26944139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebp,%ebp
26954139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm7,%xmm11,%xmm9
26964139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%edx
26974139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%eax,%edi
26984139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm8,%xmm0,%xmm0
26994139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%eax
27004139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebp,%edx
27014139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebp,%ebp
27024139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%edi
27034139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	$30,%xmm0,%xmm8
27044139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	%xmm9,48(%rsp)
27054139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%edx,%esi
27064139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	4(%rsp),%ecx
27074139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%ebp
27084139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%edx,%edx
27094139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslld	$2,%xmm0,%xmm0
27104139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ecx
27114139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%ebp,%esi
27124139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%ebp
27134139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edx,%ecx
27144139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%edx,%edx
27154139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%esi
27164139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ecx,%edi
27174139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	8(%rsp),%ebx
27184139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpor	%xmm8,%xmm0,%xmm0
27194139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edx
27204139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ecx,%ecx
27214139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ebx
27224139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%edx,%edi
27234139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edx
27244139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ecx,%ebx
27254139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	12(%rsp),%eax
27264139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edi
27274139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebx,%esi
27284139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebx,%ebx
27294139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%eax
27304139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%esi
27314139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ecx,%ecx
27324139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebx,%eax
27334139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpalignr	$8,%xmm7,%xmm0,%xmm8
27344139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm5,%xmm1,%xmm1
27354139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	16(%rsp),%ebp
27364139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%esi
27374139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%eax,%edi
27384139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%eax,%eax
27394139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm2,%xmm1,%xmm1
27404139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ebp
27414139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%edi
27424139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm0,%xmm11,%xmm9
27434139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebx,%ebx
27444139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%eax,%ebp
27454139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm8,%xmm1,%xmm1
27464139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	20(%rsp),%edx
27474139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%edi
27484139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebp,%esi
27494139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebp,%ebp
27504139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	$30,%xmm1,%xmm8
27514139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	%xmm9,0(%rsp)
27524139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%edx
27534139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%esi
27544139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%eax,%eax
27554139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebp,%edx
27564139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslld	$2,%xmm1,%xmm1
27574139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	24(%rsp),%ecx
27584139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%esi
27594139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%edx,%edi
27604139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%edx,%edx
27614139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ecx
27624139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%edi
27634139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebp,%ebp
27644139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edx,%ecx
27654139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpor	%xmm8,%xmm1,%xmm1
27664139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	28(%rsp),%ebx
27674139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edi
27684139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ecx,%esi
27694139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ecx,%ecx
27704139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ebx
27714139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%esi
27724139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%edx,%edx
27734139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ecx,%ebx
27744139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpalignr	$8,%xmm0,%xmm1,%xmm8
27754139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm6,%xmm2,%xmm2
27764139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	32(%rsp),%eax
27774139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%esi
27784139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebx,%edi
27794139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebx,%ebx
27804139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm3,%xmm2,%xmm2
27814139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%eax
27824139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%edi
27834139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm1,%xmm11,%xmm9
2784a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	vmovdqa	0(%r14),%xmm11
27854139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ecx,%ecx
27864139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebx,%eax
27874139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm8,%xmm2,%xmm2
27884139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	36(%rsp),%ebp
27894139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%edi
27904139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%eax,%esi
27914139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%eax,%eax
27924139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	$30,%xmm2,%xmm8
27934139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	%xmm9,16(%rsp)
27944139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ebp
27954139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%esi
27964139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebx,%ebx
27974139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%eax,%ebp
27984139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslld	$2,%xmm2,%xmm2
27994139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	40(%rsp),%edx
28004139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%esi
28014139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebp,%edi
28024139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebp,%ebp
28034139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%edx
28044139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%edi
28054139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%eax,%eax
28064139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebp,%edx
28074139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpor	%xmm8,%xmm2,%xmm2
28084139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	44(%rsp),%ecx
28094139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%edi
28104139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%edx,%esi
28114139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%edx,%edx
28124139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ecx
28134139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%esi
28144139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebp,%ebp
28154139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edx,%ecx
28164139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpalignr	$8,%xmm1,%xmm2,%xmm8
28174139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm7,%xmm3,%xmm3
28184139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	48(%rsp),%ebx
28194139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%esi
28204139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ecx,%edi
28214139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ecx,%ecx
28224139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm4,%xmm3,%xmm3
28234139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ebx
28244139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edi
28254139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm2,%xmm11,%xmm9
28264139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%edx,%edx
28274139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ecx,%ebx
28284139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm8,%xmm3,%xmm3
28294139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	52(%rsp),%eax
28304139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%edi
28314139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebx,%esi
28324139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebx,%ebx
28334139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	$30,%xmm3,%xmm8
28344139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	%xmm9,32(%rsp)
28354139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%eax
28364139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%esi
28374139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ecx,%ecx
28384139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebx,%eax
28394139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslld	$2,%xmm3,%xmm3
28404139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	56(%rsp),%ebp
28414139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%esi
28424139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%eax,%edi
28434139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%eax,%eax
28444139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ebp
28454139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%edi
28464139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebx,%ebx
28474139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%eax,%ebp
28484139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpor	%xmm8,%xmm3,%xmm3
28494139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	60(%rsp),%edx
28504139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%edi
28514139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebp,%esi
28524139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebp,%ebp
28534139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%edx
28544139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%esi
28554139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%eax,%eax
28564139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebp,%edx
28574139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpalignr	$8,%xmm2,%xmm3,%xmm8
28584139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm0,%xmm4,%xmm4
28594139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	0(%rsp),%ecx
28604139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%esi
28614139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%edx,%edi
28624139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%edx,%edx
28634139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm5,%xmm4,%xmm4
28644139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ecx
28654139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%edi
28664139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm3,%xmm11,%xmm9
28674139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebp,%ebp
28684139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edx,%ecx
28694139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm8,%xmm4,%xmm4
28704139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	4(%rsp),%ebx
28714139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edi
28724139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ecx,%esi
28734139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ecx,%ecx
28744139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	$30,%xmm4,%xmm8
28754139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	%xmm9,48(%rsp)
28764139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ebx
28774139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%esi
28784139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%edx,%edx
28794139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ecx,%ebx
28804139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslld	$2,%xmm4,%xmm4
28814139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	8(%rsp),%eax
28824139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%esi
28834139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebx,%edi
28844139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebx,%ebx
28854139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%eax
28864139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%edi
28874139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ecx,%ecx
28884139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebx,%eax
28894139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpor	%xmm8,%xmm4,%xmm4
28904139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	12(%rsp),%ebp
28914139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%edi
28924139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%eax,%esi
28934139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%eax,%eax
28944139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ebp
28954139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%esi
28964139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebx,%ebx
28974139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%eax,%ebp
28984139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpalignr	$8,%xmm3,%xmm4,%xmm8
28994139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm1,%xmm5,%xmm5
29004139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	16(%rsp),%edx
29014139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%esi
29024139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebp,%edi
29034139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebp,%ebp
29044139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm6,%xmm5,%xmm5
29054139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%edx
29064139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%edi
29074139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm4,%xmm11,%xmm9
29084139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%eax,%eax
29094139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebp,%edx
29104139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm8,%xmm5,%xmm5
29114139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	20(%rsp),%ecx
29124139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%edi
29134139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%edx,%esi
29144139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%edx,%edx
29154139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	$30,%xmm5,%xmm8
29164139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	%xmm9,0(%rsp)
29174139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ecx
29184139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%esi
29194139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebp,%ebp
29204139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edx,%ecx
29214139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslld	$2,%xmm5,%xmm5
29224139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	24(%rsp),%ebx
29234139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%esi
29244139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ecx,%edi
29254139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ecx,%ecx
29264139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ebx
29274139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edi
29284139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%edx,%edx
29294139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ecx,%ebx
29304139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpor	%xmm8,%xmm5,%xmm5
29314139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	28(%rsp),%eax
29324139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ecx,%ecx
29334139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebx,%esi
29344139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%edi
29354139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebx,%ebx
29364139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%eax
29374139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%esi
29384139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%ecx
29394139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebx,%eax
29404139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpalignr	$8,%xmm4,%xmm5,%xmm8
29414139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm2,%xmm6,%xmm6
29424139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	32(%rsp),%ebp
29434139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%ecx,%esi
29444139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%ecx
29454139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebx,%ebx
29464139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm7,%xmm6,%xmm6
29474139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%eax,%edi
29484139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%esi
29494139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm5,%xmm11,%xmm9
29504139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%eax,%eax
29514139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ebp
29524139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm8,%xmm6,%xmm6
29534139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%edi
29544139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%ebx
29554139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%eax,%ebp
29564139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	36(%rsp),%edx
29574139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	$30,%xmm6,%xmm8
29584139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	%xmm9,16(%rsp)
29594139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%ebx,%edi
29604139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%ebx
29614139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%eax,%eax
29624139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebp,%esi
29634139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslld	$2,%xmm6,%xmm6
29644139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%edi
29654139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebp,%ebp
29664139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%edx
29674139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%esi
29684139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%eax
29694139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebp,%edx
29704139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	40(%rsp),%ecx
29714139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%eax,%esi
29724139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpor	%xmm8,%xmm6,%xmm6
29734139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%eax
29744139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebp,%ebp
29754139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%edx,%edi
29764139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%esi
29774139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%edx,%edx
29784139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ecx
29794139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edi
29804139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%ebp
29814139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edx,%ecx
29824139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	44(%rsp),%ebx
29834139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%ebp,%edi
29844139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%ebp
29854139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%edx,%edx
29864139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ecx,%esi
29874139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edi
29884139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ecx,%ecx
29894139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ebx
29904139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%esi
29914139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edx
29924139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ecx,%ebx
29934139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpalignr	$8,%xmm5,%xmm6,%xmm8
29944139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm3,%xmm7,%xmm7
29954139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	48(%rsp),%eax
29964139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%edx,%esi
29974139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edx
29984139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ecx,%ecx
29994139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm0,%xmm7,%xmm7
30004139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebx,%edi
30014139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%esi
30024139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm6,%xmm11,%xmm9
3003a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	vmovdqa	32(%r14),%xmm11
30044139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebx,%ebx
30054139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%eax
30064139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm8,%xmm7,%xmm7
30074139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%edi
30084139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%ecx
30094139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebx,%eax
30104139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	52(%rsp),%ebp
30114139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	$30,%xmm7,%xmm8
30124139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	%xmm9,32(%rsp)
30134139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%ecx,%edi
30144139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%ecx
30154139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebx,%ebx
30164139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%eax,%esi
30174139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslld	$2,%xmm7,%xmm7
30184139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%edi
30194139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%eax,%eax
30204139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ebp
30214139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%esi
30224139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%ebx
30234139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%eax,%ebp
30244139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	56(%rsp),%edx
30254139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%ebx,%esi
30264139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpor	%xmm8,%xmm7,%xmm7
30274139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%ebx
30284139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%eax,%eax
30294139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebp,%edi
30304139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%esi
30314139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebp,%ebp
30324139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%edx
30334139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%edi
30344139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%eax
30354139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebp,%edx
30364139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	60(%rsp),%ecx
30374139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%eax,%edi
30384139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%eax
30394139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebp,%ebp
30404139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%edx,%esi
30414139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%edi
30424139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%edx,%edx
30434139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ecx
30444139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%esi
30454139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%ebp
30464139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edx,%ecx
30474139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpalignr	$8,%xmm6,%xmm7,%xmm8
30484139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm4,%xmm0,%xmm0
30494139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	0(%rsp),%ebx
30504139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%ebp,%esi
30514139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%ebp
30524139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%edx,%edx
30534139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm1,%xmm0,%xmm0
30544139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ecx,%edi
30554139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%esi
30564139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm7,%xmm11,%xmm9
30574139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ecx,%ecx
30584139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ebx
30594139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm8,%xmm0,%xmm0
30604139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%edi
30614139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edx
30624139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ecx,%ebx
30634139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	4(%rsp),%eax
30644139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	$30,%xmm0,%xmm8
30654139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	%xmm9,48(%rsp)
30664139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%edx,%edi
30674139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edx
30684139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ecx,%ecx
30694139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebx,%esi
30704139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslld	$2,%xmm0,%xmm0
30714139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%edi
30724139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebx,%ebx
30734139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%eax
30744139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%esi
30754139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%ecx
30764139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebx,%eax
30774139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	8(%rsp),%ebp
30784139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%ecx,%esi
30794139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpor	%xmm8,%xmm0,%xmm0
30804139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%ecx
30814139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebx,%ebx
30824139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%eax,%edi
30834139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%esi
30844139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%eax,%eax
30854139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ebp
30864139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%edi
30874139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%ebx
30884139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%eax,%ebp
30894139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	12(%rsp),%edx
30904139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%ebx,%edi
30914139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%ebx
30924139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%eax,%eax
30934139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebp,%esi
30944139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%edi
30954139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebp,%ebp
30964139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%edx
30974139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%esi
30984139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%eax
30994139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebp,%edx
31004139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpalignr	$8,%xmm7,%xmm0,%xmm8
31014139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm5,%xmm1,%xmm1
31024139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	16(%rsp),%ecx
31034139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%eax,%esi
31044139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%eax
31054139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebp,%ebp
31064139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm2,%xmm1,%xmm1
31074139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%edx,%edi
31084139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%esi
31094139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm0,%xmm11,%xmm9
31104139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%edx,%edx
31114139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ecx
31124139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm8,%xmm1,%xmm1
31134139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edi
31144139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%ebp
31154139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edx,%ecx
31164139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	20(%rsp),%ebx
31174139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	$30,%xmm1,%xmm8
31184139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	%xmm9,0(%rsp)
31194139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%ebp,%edi
31204139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%ebp
31214139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%edx,%edx
31224139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ecx,%esi
31234139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslld	$2,%xmm1,%xmm1
31244139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edi
31254139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ecx,%ecx
31264139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ebx
31274139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%esi
31284139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edx
31294139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ecx,%ebx
31304139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	24(%rsp),%eax
31314139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%edx,%esi
31324139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpor	%xmm8,%xmm1,%xmm1
31334139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edx
31344139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ecx,%ecx
31354139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebx,%edi
31364139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%esi
31374139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebx,%ebx
31384139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%eax
31394139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%edi
31404139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%ecx
31414139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebx,%eax
31424139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	28(%rsp),%ebp
31434139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%ecx,%edi
31444139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%ecx
31454139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebx,%ebx
31464139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%eax,%esi
31474139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%edi
31484139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%eax,%eax
31494139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ebp
31504139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%esi
31514139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%ebx
31524139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%eax,%ebp
31534139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpalignr	$8,%xmm0,%xmm1,%xmm8
31544139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm6,%xmm2,%xmm2
31554139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	32(%rsp),%edx
31564139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%ebx,%esi
31574139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%ebx
31584139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%eax,%eax
31594139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm3,%xmm2,%xmm2
31604139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebp,%edi
31614139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%esi
31624139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm1,%xmm11,%xmm9
31634139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebp,%ebp
31644139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%edx
31654139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm8,%xmm2,%xmm2
31664139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%edi
31674139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%eax
31684139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebp,%edx
31694139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	36(%rsp),%ecx
31704139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	$30,%xmm2,%xmm8
31714139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	%xmm9,16(%rsp)
31724139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%eax,%edi
31734139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%eax
31744139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebp,%ebp
31754139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%edx,%esi
31764139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslld	$2,%xmm2,%xmm2
31774139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%edi
31784139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%edx,%edx
31794139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ecx
31804139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%esi
31814139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%ebp
31824139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edx,%ecx
31834139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	40(%rsp),%ebx
31844139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%ebp,%esi
31854139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpor	%xmm8,%xmm2,%xmm2
31864139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%ebp
31874139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%edx,%edx
31884139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ecx,%edi
31894139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%esi
31904139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ecx,%ecx
31914139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ebx
31924139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%edi
31934139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edx
31944139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ecx,%ebx
31954139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	44(%rsp),%eax
31964139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%edx,%edi
31974139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edx
31984139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ecx,%ecx
31994139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebx,%esi
32004139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%edi
32014139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebx,%ebx
32024139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%eax
32034139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%esi
32044139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebx,%eax
32054139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpalignr	$8,%xmm1,%xmm2,%xmm8
32064139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm7,%xmm3,%xmm3
32074139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	48(%rsp),%ebp
32084139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%esi
32094139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%eax,%edi
32104139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%eax,%eax
32114139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm4,%xmm3,%xmm3
32124139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ebp
32134139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%edi
32144139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm2,%xmm11,%xmm9
32154139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebx,%ebx
32164139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%eax,%ebp
32174139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	%xmm8,%xmm3,%xmm3
32184139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	52(%rsp),%edx
32194139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%edi
32204139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebp,%esi
32214139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebp,%ebp
32224139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	$30,%xmm3,%xmm8
32234139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	%xmm9,32(%rsp)
32244139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%edx
32254139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%esi
32264139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%eax,%eax
32274139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebp,%edx
32284139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslld	$2,%xmm3,%xmm3
32294139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	56(%rsp),%ecx
32304139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%esi
32314139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%edx,%edi
32324139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%edx,%edx
32334139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ecx
32344139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%edi
32354139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebp,%ebp
32364139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edx,%ecx
32374139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpor	%xmm8,%xmm3,%xmm3
32384139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	60(%rsp),%ebx
32394139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edi
32404139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ecx,%esi
32414139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ecx,%ecx
32424139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ebx
32434139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%esi
32444139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%edx,%edx
32454139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ecx,%ebx
32464139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	0(%rsp),%eax
32474139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm3,%xmm11,%xmm9
32484139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%esi
32494139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebx,%edi
32504139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebx,%ebx
32514139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%eax
32524139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	%xmm9,48(%rsp)
32534139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%edi
32544139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ecx,%ecx
32554139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebx,%eax
32564139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	4(%rsp),%ebp
32574139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%edi
32584139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%eax,%esi
32594139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%eax,%eax
32604139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ebp
32614139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%esi
32624139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebx,%ebx
32634139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%eax,%ebp
32644139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	8(%rsp),%edx
32654139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%esi
32664139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebp,%edi
32674139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebp,%ebp
32684139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%edx
32694139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%edi
32704139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%eax,%eax
32714139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebp,%edx
32724139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	12(%rsp),%ecx
32734139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%edi
32744139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%edx,%esi
32754139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%edx,%edx
32764139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ecx
32774139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%esi
32784139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebp,%ebp
32794139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edx,%ecx
32804139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	cmpq	%r10,%r9
32814139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	je	L$done_avx
3282a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	vmovdqa	64(%r14),%xmm6
3283a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	vmovdqa	-64(%r14),%xmm11
32844139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqu	0(%r9),%xmm0
32854139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqu	16(%r9),%xmm1
32864139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqu	32(%r9),%xmm2
32874139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqu	48(%r9),%xmm3
32884139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufb	%xmm6,%xmm0,%xmm0
32894139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addq	$64,%r9
32904139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	16(%rsp),%ebx
32914139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%esi
32924139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufb	%xmm6,%xmm1,%xmm1
32934139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ecx,%edi
32944139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ecx,%ecx
32954139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm11,%xmm0,%xmm4
32964139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ebx
32974139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edi
32984139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%edx,%edx
32994139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ecx,%ebx
33004139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	%xmm4,0(%rsp)
33014139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	20(%rsp),%eax
33024139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%edi
33034139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebx,%esi
33044139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebx,%ebx
33054139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%eax
33064139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%esi
33074139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ecx,%ecx
33084139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebx,%eax
33094139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	24(%rsp),%ebp
33104139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%esi
33114139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%eax,%edi
33124139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%eax,%eax
33134139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ebp
33144139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%edi
33154139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebx,%ebx
33164139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%eax,%ebp
33174139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	28(%rsp),%edx
33184139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%edi
33194139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebp,%esi
33204139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebp,%ebp
33214139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%edx
33224139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%esi
33234139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%eax,%eax
33244139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebp,%edx
33254139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	32(%rsp),%ecx
33264139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%esi
33274139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufb	%xmm6,%xmm2,%xmm2
33284139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%edx,%edi
33294139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%edx,%edx
33304139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm11,%xmm1,%xmm5
33314139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ecx
33324139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%edi
33334139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebp,%ebp
33344139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edx,%ecx
33354139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	%xmm5,16(%rsp)
33364139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	36(%rsp),%ebx
33374139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edi
33384139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ecx,%esi
33394139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ecx,%ecx
33404139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ebx
33414139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%esi
33424139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%edx,%edx
33434139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ecx,%ebx
33444139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	40(%rsp),%eax
33454139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%esi
33464139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebx,%edi
33474139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebx,%ebx
33484139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%eax
33494139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%edi
33504139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ecx,%ecx
33514139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebx,%eax
33524139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	44(%rsp),%ebp
33534139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%edi
33544139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%eax,%esi
33554139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%eax,%eax
33564139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ebp
33574139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%esi
33584139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebx,%ebx
33594139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%eax,%ebp
33604139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	48(%rsp),%edx
33614139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%esi
33624139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufb	%xmm6,%xmm3,%xmm3
33634139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebp,%edi
33644139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebp,%ebp
33654139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	%xmm11,%xmm2,%xmm6
33664139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%edx
33674139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%edi
33684139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%eax,%eax
33694139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebp,%edx
33704139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	%xmm6,32(%rsp)
33714139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	52(%rsp),%ecx
33724139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%edi
33734139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%edx,%esi
33744139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%edx,%edx
33754139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ecx
33764139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%esi
33774139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebp,%ebp
33784139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edx,%ecx
33794139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	56(%rsp),%ebx
33804139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%esi
33814139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ecx,%edi
33824139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ecx,%ecx
33834139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ebx
33844139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edi
33854139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%edx,%edx
33864139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ecx,%ebx
33874139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	60(%rsp),%eax
33884139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%edi
33894139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebx,%esi
33904139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebx,%ebx
33914139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%eax
33924139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ecx,%ecx
33934139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebx,%eax
33944139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	0(%r8),%eax
33954139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	4(%r8),%esi
33964139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	8(%r8),%ecx
33974139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	12(%r8),%edx
33984139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%eax,0(%r8)
33994139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	16(%r8),%ebp
34004139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%esi,4(%r8)
34014139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%esi,%ebx
34024139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ecx,8(%r8)
34034139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ecx,%edi
34044139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%edx,12(%r8)
34054139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%edi
34064139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebp,16(%r8)
34074139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	andl	%edi,%esi
34084139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	jmp	L$oop_avx
34094139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley
34104139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley.p2align	4
34114139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam LangleyL$done_avx:
34124139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	16(%rsp),%ebx
34134139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%esi
34144139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ecx,%edi
34154139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ecx,%ecx
34164139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ebx
34174139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edi
34184139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%edx,%edx
34194139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ecx,%ebx
34204139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	20(%rsp),%eax
34214139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%edi
34224139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebx,%esi
34234139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebx,%ebx
34244139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%eax
34254139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%esi
34264139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ecx,%ecx
34274139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebx,%eax
34284139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	24(%rsp),%ebp
34294139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%esi
34304139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%eax,%edi
34314139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%eax,%eax
34324139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ebp
34334139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%edi
34344139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebx,%ebx
34354139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%eax,%ebp
34364139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	28(%rsp),%edx
34374139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%edi
34384139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebp,%esi
34394139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebp,%ebp
34404139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%edx
34414139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%esi
34424139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%eax,%eax
34434139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebp,%edx
34444139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	32(%rsp),%ecx
34454139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%esi
34464139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%edx,%edi
34474139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%edx,%edx
34484139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ecx
34494139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%edi
34504139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebp,%ebp
34514139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edx,%ecx
34524139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	36(%rsp),%ebx
34534139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edi
34544139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ecx,%esi
34554139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ecx,%ecx
34564139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ebx
34574139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%esi
34584139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%edx,%edx
34594139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ecx,%ebx
34604139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	40(%rsp),%eax
34614139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%esi
34624139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebx,%edi
34634139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebx,%ebx
34644139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%eax
34654139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%edi
34664139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ecx,%ecx
34674139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebx,%eax
34684139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	44(%rsp),%ebp
34694139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%edi
34704139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%eax,%esi
34714139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%eax,%eax
34724139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ebp
34734139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ecx,%esi
34744139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebx,%ebx
34754139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%eax,%ebp
34764139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	48(%rsp),%edx
34774139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%esi
34784139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebp,%edi
34794139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebp,%ebp
34804139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%edx
34814139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebx,%edi
34824139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%eax,%eax
34834139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebp,%edx
34844139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	52(%rsp),%ecx
34854139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%edi
34864139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%edx,%esi
34874139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%edx,%edx
34884139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%ecx
34894139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%eax,%esi
34904139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ebp,%ebp
34914139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edx,%ecx
34924139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	56(%rsp),%ebx
34934139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%esi
34944139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ecx,%edi
34954139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ecx,%ecx
34964139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%esi,%ebx
34974139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%ebp,%edi
34984139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%edx,%edx
34994139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ecx,%ebx
35004139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	60(%rsp),%eax
35014139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xorl	%edx,%edi
35024139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebx,%esi
35034139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shldl	$5,%ebx,%ebx
35044139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%edi,%eax
35054139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrdl	$7,%ecx,%ecx
35064139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	%ebx,%eax
35074139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vzeroupper
35084139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley
35094139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	0(%r8),%eax
35104139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	4(%r8),%esi
35114139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	8(%r8),%ecx
35124139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%eax,0(%r8)
35134139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	12(%r8),%edx
35144139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%esi,4(%r8)
35154139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	addl	16(%r8),%ebp
35164139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ecx,8(%r8)
35174139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%edx,12(%r8)
35184139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movl	%ebp,16(%r8)
3519a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	movq	-40(%r11),%r14
3520a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	movq	-32(%r11),%r13
3521a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	movq	-24(%r11),%r12
3522a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	movq	-16(%r11),%rbp
3523a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	movq	-8(%r11),%rbx
3524a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	leaq	(%r11),%rsp
35254139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam LangleyL$epilogue_avx:
35264139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	.byte	0xf3,0xc3
35274139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley
3528d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.p2align	6
3529d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyK_XX_XX:
3530d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.long	0x5a827999,0x5a827999,0x5a827999,0x5a827999
3531d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.long	0x5a827999,0x5a827999,0x5a827999,0x5a827999
3532d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.long	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
3533d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.long	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
3534d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.long	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
3535d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.long	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
3536d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.long	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
3537d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.long	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
3538d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.long	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
3539d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.long	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
3540d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte	0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
3541d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.byte	83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
3542d9e397b599b13d642138480a28c14db7a136bf0Adam Langley.p2align	6
3543d9e397b599b13d642138480a28c14db7a136bf0Adam Langley#endif
3544