1e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langleydefault	rel
2e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley%define XMMWORD
3e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley%define YMMWORD
4e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley%define ZMMWORD
5e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langleysection	.text code align=64
6d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
7e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley
82424d84dd6dbdc0d32a4c80e6810d168f722ce0bRobert SloanEXTERN	OPENSSL_ia32cap_P
9e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langleyglobal	sha256_block_data_order
10d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
11d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyALIGN	16
12e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langleysha256_block_data_order:
13e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	QWORD[8+rsp],rdi	;WIN64 prologue
14e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	QWORD[16+rsp],rsi
15d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	rax,rsp
16e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley$L$SEH_begin_sha256_block_data_order:
17d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	rdi,rcx
18d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	rsi,rdx
19d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	rdx,r8
20d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
21d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
222424d84dd6dbdc0d32a4c80e6810d168f722ce0bRobert Sloan	lea	r11,[OPENSSL_ia32cap_P]
23e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r9d,DWORD[r11]
24e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r10d,DWORD[4+r11]
25e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r11d,DWORD[8+r11]
264139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r9d,1073741824
274139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r10d,268435968
284139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	or	r10d,r9d
294139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	cmp	r10d,1342177792
304139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	je	NEAR $L$avx_shortcut
31d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	test	r10d,512
32e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	jnz	NEAR $L$ssse3_shortcut
33a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	mov	rax,rsp
34d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	push	rbx
35d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	push	rbp
36d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	push	r12
37d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	push	r13
38d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	push	r14
39d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	push	r15
40d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shl	rdx,4
41d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	sub	rsp,16*4+4*8
42e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rdx,[rdx*4+rsi]
43d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	rsp,-64
44e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	QWORD[((64+0))+rsp],rdi
45e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	QWORD[((64+8))+rsp],rsi
46e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	QWORD[((64+16))+rsp],rdx
47a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	mov	QWORD[((64+24))+rsp],rax
48e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley$L$prologue:
49e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley
50e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	eax,DWORD[rdi]
51e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	ebx,DWORD[4+rdi]
52e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	ecx,DWORD[8+rdi]
53e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	edx,DWORD[12+rdi]
54e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r8d,DWORD[16+rdi]
55e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r9d,DWORD[20+rdi]
56e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r10d,DWORD[24+rdi]
57e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r11d,DWORD[28+rdi]
58572a4e2e687520da9e518528d7371b794b1decc0Robert Sloan
59e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	jmp	NEAR $L$loop
60d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
61d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyALIGN	16
62e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley$L$loop:
63d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,ebx
64e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[K256]
65d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,ecx
66e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r12d,DWORD[rsi]
67d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r8d
68d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,eax
69d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswap	r12d
70d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
71d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,r9d
72d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
73d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r8d
74d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
75d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r10d
76d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
77e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[rsp],r12d
78d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,eax
79d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,r8d
80d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
81d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
82d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r11d
83d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r10d
84d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
85d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
86d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r8d
87d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r15d
88d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
89d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,eax
90e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
91d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,eax
92d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
93d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,ebx
94d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
95d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r11d,ebx
96d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
97d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
98d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
99d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
100d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
101d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r11d,edi
102d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,r12d
103d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,r12d
104d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
105e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[4+rbp]
106d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,r14d
107e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r12d,DWORD[4+rsi]
108d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,edx
109d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,r11d
110d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswap	r12d
111d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
112d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,r8d
113d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
114d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,edx
115d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
116d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r9d
117d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
118e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[4+rsp],r12d
119d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r11d
120d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,edx
121d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
122d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
123d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r10d
124d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r9d
125d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
126d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
127d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,edx
128d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edi
129d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
130d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,r11d
131e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
132d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r11d
133d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
134d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,eax
135d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
136d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r10d,eax
137d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
138d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
139d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
140d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
141d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
142d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r10d,r15d
143d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r12d
144d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,r12d
145d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
146e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[4+rbp]
147d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,r14d
148e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r12d,DWORD[8+rsi]
149d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,ecx
150d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,r10d
151d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswap	r12d
152d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
153d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,edx
154d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
155d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ecx
156d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
157d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r8d
158d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
159e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[8+rsp],r12d
160d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r10d
161d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,ecx
162d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
163d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
164d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r9d
165d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r8d
166d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
167d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
168d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ecx
169d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r15d
170d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
171d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,r10d
172e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
173d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r10d
174d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
175d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r11d
176d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
177d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r9d,r11d
178d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
179d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
180d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
181d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
182d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
183d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r9d,edi
184d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,r12d
185d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,r12d
186d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
187e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[4+rbp]
188d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,r14d
189e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r12d,DWORD[12+rsi]
190d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,ebx
191d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,r9d
192d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswap	r12d
193d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
194d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,ecx
195d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
196d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ebx
197d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
198d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,edx
199d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
200e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[12+rsp],r12d
201d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r9d
202d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,ebx
203d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
204d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
205d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r8d
206d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,edx
207d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
208d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
209d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ebx
210d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edi
211d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
212d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,r9d
213e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
214d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r9d
215d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
216d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r10d
217d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
218d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r8d,r10d
219d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
220d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
221d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
222d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
223d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
224d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r8d,r15d
225d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r12d
226d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,r12d
227d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
228e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[20+rbp]
229d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,r14d
230e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r12d,DWORD[16+rsi]
231d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,eax
232d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,r8d
233d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswap	r12d
234d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
235d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,ebx
236d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
237d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,eax
238d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
239d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,ecx
240d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
241e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[16+rsp],r12d
242d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r8d
243d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,eax
244d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
245d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
246d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edx
247d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,ecx
248d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
249d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
250d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,eax
251d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r15d
252d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
253d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,r8d
254e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
255d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r8d
256d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
257d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r9d
258d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
259d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edx,r9d
260d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
261d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
262d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
263d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
264d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
265d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edx,edi
266d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,r12d
267d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,r12d
268d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
269e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[4+rbp]
270d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,r14d
271e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r12d,DWORD[20+rsi]
272d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r11d
273d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,edx
274d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswap	r12d
275d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
276d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,eax
277d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
278d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r11d
279d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
280d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,ebx
281d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
282e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[20+rsp],r12d
283d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,edx
284d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r11d
285d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
286d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
287d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,ecx
288d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,ebx
289d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
290d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
291d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r11d
292d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edi
293d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
294d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,edx
295e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
296d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,edx
297d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
298d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r8d
299d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
300d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	ecx,r8d
301d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
302d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
303d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
304d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
305d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
306d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	ecx,r15d
307d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,r12d
308d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r12d
309d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
310e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[4+rbp]
311d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r14d
312e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r12d,DWORD[24+rsi]
313d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r10d
314d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,ecx
315d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswap	r12d
316d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
317d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,r11d
318d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
319d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r10d
320d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
321d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,eax
322d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
323e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[24+rsp],r12d
324d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ecx
325d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,r10d
326d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
327d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
328d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,ebx
329d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,eax
330d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
331d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
332d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r10d
333d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r15d
334d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
335d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,ecx
336e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
337d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ecx
338d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
339d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,edx
340d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
341d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	ebx,edx
342d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
343d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
344d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
345d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
346d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
347d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	ebx,edi
348d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,r12d
349d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,r12d
350d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
351e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[4+rbp]
352d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,r14d
353e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r12d,DWORD[28+rsi]
354d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r9d
355d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,ebx
356d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswap	r12d
357d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
358d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,r10d
359d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
360d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r9d
361d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
362d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r11d
363d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
364e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[28+rsp],r12d
365d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ebx
366d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r9d
367d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
368d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
369d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,eax
370d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r11d
371d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
372d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
373d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r9d
374d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edi
375d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
376d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,ebx
377e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
378d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ebx
379d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
380d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,ecx
381d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
382d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	eax,ecx
383d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
384d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
385d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
386d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
387d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
388d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	eax,r15d
389d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,r12d
390d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r12d
391d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
392e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[20+rbp]
393d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r14d
394e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r12d,DWORD[32+rsi]
395d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r8d
396d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,eax
397d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswap	r12d
398d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
399d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,r9d
400d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
401d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r8d
402d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
403d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r10d
404d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
405e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[32+rsp],r12d
406d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,eax
407d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,r8d
408d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
409d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
410d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r11d
411d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r10d
412d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
413d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
414d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r8d
415d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r15d
416d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
417d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,eax
418e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
419d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,eax
420d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
421d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,ebx
422d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
423d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r11d,ebx
424d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
425d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
426d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
427d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
428d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
429d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r11d,edi
430d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,r12d
431d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,r12d
432d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
433e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[4+rbp]
434d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,r14d
435e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r12d,DWORD[36+rsi]
436d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,edx
437d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,r11d
438d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswap	r12d
439d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
440d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,r8d
441d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
442d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,edx
443d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
444d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r9d
445d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
446e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[36+rsp],r12d
447d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r11d
448d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,edx
449d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
450d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
451d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r10d
452d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r9d
453d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
454d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
455d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,edx
456d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edi
457d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
458d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,r11d
459e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
460d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r11d
461d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
462d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,eax
463d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
464d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r10d,eax
465d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
466d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
467d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
468d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
469d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
470d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r10d,r15d
471d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r12d
472d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,r12d
473d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
474e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[4+rbp]
475d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,r14d
476e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r12d,DWORD[40+rsi]
477d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,ecx
478d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,r10d
479d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswap	r12d
480d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
481d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,edx
482d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
483d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ecx
484d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
485d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r8d
486d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
487e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[40+rsp],r12d
488d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r10d
489d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,ecx
490d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
491d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
492d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r9d
493d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r8d
494d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
495d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
496d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ecx
497d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r15d
498d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
499d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,r10d
500e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
501d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r10d
502d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
503d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r11d
504d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
505d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r9d,r11d
506d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
507d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
508d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
509d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
510d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
511d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r9d,edi
512d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,r12d
513d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,r12d
514d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
515e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[4+rbp]
516d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,r14d
517e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r12d,DWORD[44+rsi]
518d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,ebx
519d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,r9d
520d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswap	r12d
521d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
522d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,ecx
523d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
524d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ebx
525d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
526d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,edx
527d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
528e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[44+rsp],r12d
529d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r9d
530d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,ebx
531d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
532d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
533d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r8d
534d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,edx
535d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
536d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
537d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ebx
538d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edi
539d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
540d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,r9d
541e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
542d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r9d
543d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
544d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r10d
545d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
546d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r8d,r10d
547d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
548d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
549d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
550d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
551d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
552d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r8d,r15d
553d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r12d
554d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,r12d
555d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
556e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[20+rbp]
557d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,r14d
558e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r12d,DWORD[48+rsi]
559d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,eax
560d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,r8d
561d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswap	r12d
562d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
563d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,ebx
564d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
565d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,eax
566d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
567d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,ecx
568d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
569e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[48+rsp],r12d
570d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r8d
571d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,eax
572d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
573d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
574d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edx
575d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,ecx
576d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
577d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
578d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,eax
579d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r15d
580d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
581d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,r8d
582e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
583d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r8d
584d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
585d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r9d
586d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
587d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edx,r9d
588d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
589d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
590d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
591d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
592d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
593d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edx,edi
594d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,r12d
595d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,r12d
596d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
597e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[4+rbp]
598d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,r14d
599e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r12d,DWORD[52+rsi]
600d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r11d
601d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,edx
602d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswap	r12d
603d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
604d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,eax
605d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
606d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r11d
607d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
608d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,ebx
609d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
610e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[52+rsp],r12d
611d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,edx
612d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r11d
613d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
614d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
615d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,ecx
616d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,ebx
617d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
618d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
619d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r11d
620d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edi
621d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
622d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,edx
623e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
624d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,edx
625d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
626d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r8d
627d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
628d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	ecx,r8d
629d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
630d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
631d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
632d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
633d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
634d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	ecx,r15d
635d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,r12d
636d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r12d
637d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
638e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[4+rbp]
639d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r14d
640e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r12d,DWORD[56+rsi]
641d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r10d
642d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,ecx
643d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswap	r12d
644d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
645d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,r11d
646d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
647d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r10d
648d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
649d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,eax
650d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
651e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[56+rsp],r12d
652d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ecx
653d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,r10d
654d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
655d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
656d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,ebx
657d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,eax
658d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
659d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
660d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r10d
661d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r15d
662d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
663d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,ecx
664e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
665d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ecx
666d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
667d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,edx
668d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
669d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	ebx,edx
670d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
671d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
672d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
673d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
674d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
675d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	ebx,edi
676d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,r12d
677d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,r12d
678d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
679e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[4+rbp]
680d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,r14d
681e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r12d,DWORD[60+rsi]
682d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r9d
683d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,ebx
684d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	bswap	r12d
685d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
686d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,r10d
687d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
688d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r9d
689d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
690d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r11d
691d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
692e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[60+rsp],r12d
693d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ebx
694d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r9d
695d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
696d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
697d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,eax
698d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r11d
699d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
700d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
701d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r9d
702d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edi
703d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
704d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,ebx
705e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
706d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ebx
707d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
708d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,ecx
709d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
710d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	eax,ecx
711d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
712d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
713d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
714d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
715d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
716d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	eax,r15d
717d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,r12d
718d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r12d
719d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
720e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[20+rbp]
721e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	jmp	NEAR $L$rounds_16_xx
722d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyALIGN	16
723e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley$L$rounds_16_xx:
724e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r13d,DWORD[4+rsp]
725e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r15d,DWORD[56+rsp]
726d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
727d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r13d
728d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,11
729d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r14d
730d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,r15d
731d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r15d,2
732d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
733d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r12d
734d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r12d,3
735d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,7
736d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r14d
737d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r14d,10
738d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
739d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r15d,17
740d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r13d
741d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r14d
742e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[36+rsp]
743d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
744e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rsp]
745d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r8d
746d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r15d
747d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,eax
748d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
749d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,r9d
750d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
751d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r8d
752d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
753d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r10d
754d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
755e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[rsp],r12d
756d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,eax
757d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,r8d
758d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
759d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
760d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r11d
761d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r10d
762d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
763d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
764d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r8d
765d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r15d
766d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
767d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,eax
768e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
769d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,eax
770d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
771d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,ebx
772d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
773d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r11d,ebx
774d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
775d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
776d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
777d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
778d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
779d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r11d,edi
780d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,r12d
781d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,r12d
782d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
783e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[4+rbp]
784e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r13d,DWORD[8+rsp]
785e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	edi,DWORD[60+rsp]
786d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
787d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r13d
788d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,11
789d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,r14d
790d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,edi
791d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	edi,2
792d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
793d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r12d
794d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r12d,3
795d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,7
796d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r14d
797d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r14d,10
798d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
799d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	edi,17
800d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r13d
801d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r14d
802e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[40+rsp]
803d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
804e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[4+rsp]
805d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,edx
806d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edi
807d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,r11d
808d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
809d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,r8d
810d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
811d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,edx
812d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
813d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r9d
814d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
815e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[4+rsp],r12d
816d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r11d
817d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,edx
818d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
819d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
820d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r10d
821d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r9d
822d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
823d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
824d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,edx
825d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edi
826d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
827d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,r11d
828e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
829d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r11d
830d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
831d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,eax
832d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
833d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r10d,eax
834d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
835d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
836d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
837d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
838d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
839d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r10d,r15d
840d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r12d
841d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,r12d
842d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
843e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[4+rbp]
844e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r13d,DWORD[12+rsp]
845e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r15d,DWORD[rsp]
846d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
847d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r13d
848d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,11
849d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,r14d
850d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,r15d
851d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r15d,2
852d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
853d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r12d
854d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r12d,3
855d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,7
856d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r14d
857d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r14d,10
858d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
859d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r15d,17
860d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r13d
861d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r14d
862e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[44+rsp]
863d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
864e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[8+rsp]
865d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,ecx
866d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r15d
867d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,r10d
868d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
869d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,edx
870d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
871d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ecx
872d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
873d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r8d
874d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
875e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[8+rsp],r12d
876d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r10d
877d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,ecx
878d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
879d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
880d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r9d
881d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r8d
882d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
883d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
884d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ecx
885d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r15d
886d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
887d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,r10d
888e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
889d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r10d
890d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
891d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r11d
892d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
893d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r9d,r11d
894d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
895d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
896d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
897d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
898d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
899d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r9d,edi
900d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,r12d
901d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,r12d
902d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
903e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[4+rbp]
904e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r13d,DWORD[16+rsp]
905e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	edi,DWORD[4+rsp]
906d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
907d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r13d
908d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,11
909d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,r14d
910d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,edi
911d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	edi,2
912d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
913d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r12d
914d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r12d,3
915d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,7
916d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r14d
917d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r14d,10
918d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
919d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	edi,17
920d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r13d
921d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r14d
922e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[48+rsp]
923d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
924e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[12+rsp]
925d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,ebx
926d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edi
927d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,r9d
928d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
929d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,ecx
930d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
931d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ebx
932d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
933d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,edx
934d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
935e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[12+rsp],r12d
936d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r9d
937d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,ebx
938d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
939d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
940d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r8d
941d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,edx
942d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
943d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
944d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ebx
945d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edi
946d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
947d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,r9d
948e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
949d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r9d
950d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
951d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r10d
952d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
953d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r8d,r10d
954d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
955d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
956d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
957d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
958d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
959d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r8d,r15d
960d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r12d
961d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,r12d
962d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
963e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[20+rbp]
964e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r13d,DWORD[20+rsp]
965e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r15d,DWORD[8+rsp]
966d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
967d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r13d
968d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,11
969d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,r14d
970d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,r15d
971d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r15d,2
972d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
973d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r12d
974d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r12d,3
975d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,7
976d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r14d
977d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r14d,10
978d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
979d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r15d,17
980d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r13d
981d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r14d
982e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[52+rsp]
983d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
984e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[16+rsp]
985d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,eax
986d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r15d
987d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,r8d
988d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
989d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,ebx
990d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
991d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,eax
992d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
993d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,ecx
994d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
995e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[16+rsp],r12d
996d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r8d
997d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,eax
998d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
999d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
1000d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edx
1001d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,ecx
1002d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1003d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
1004d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,eax
1005d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r15d
1006d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1007d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,r8d
1008e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
1009d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r8d
1010d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1011d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r9d
1012d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
1013d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edx,r9d
1014d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1015d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
1016d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
1017d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
1018d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1019d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edx,edi
1020d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,r12d
1021d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,r12d
1022d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1023e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[4+rbp]
1024e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r13d,DWORD[24+rsp]
1025e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	edi,DWORD[12+rsp]
1026d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1027d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r13d
1028d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,11
1029d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,r14d
1030d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,edi
1031d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	edi,2
1032d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1033d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r12d
1034d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r12d,3
1035d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,7
1036d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r14d
1037d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r14d,10
1038d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1039d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	edi,17
1040d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r13d
1041d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r14d
1042e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[56+rsp]
1043d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1044e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[20+rsp]
1045d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r11d
1046d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edi
1047d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,edx
1048d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
1049d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,eax
1050d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1051d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r11d
1052d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
1053d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,ebx
1054d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1055e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[20+rsp],r12d
1056d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,edx
1057d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r11d
1058d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1059d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
1060d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,ecx
1061d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,ebx
1062d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1063d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
1064d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r11d
1065d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edi
1066d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1067d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,edx
1068e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
1069d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,edx
1070d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1071d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r8d
1072d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
1073d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	ecx,r8d
1074d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1075d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
1076d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
1077d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
1078d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1079d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	ecx,r15d
1080d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,r12d
1081d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r12d
1082d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1083e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[4+rbp]
1084e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r13d,DWORD[28+rsp]
1085e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r15d,DWORD[16+rsp]
1086d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1087d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r13d
1088d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,11
1089d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r14d
1090d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,r15d
1091d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r15d,2
1092d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1093d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r12d
1094d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r12d,3
1095d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,7
1096d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r14d
1097d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r14d,10
1098d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1099d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r15d,17
1100d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r13d
1101d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r14d
1102e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[60+rsp]
1103d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1104e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[24+rsp]
1105d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r10d
1106d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r15d
1107d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,ecx
1108d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
1109d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,r11d
1110d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1111d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r10d
1112d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
1113d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,eax
1114d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1115e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[24+rsp],r12d
1116d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ecx
1117d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,r10d
1118d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1119d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
1120d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,ebx
1121d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,eax
1122d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1123d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
1124d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r10d
1125d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r15d
1126d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1127d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,ecx
1128e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
1129d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ecx
1130d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1131d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,edx
1132d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
1133d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	ebx,edx
1134d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1135d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
1136d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
1137d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
1138d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1139d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	ebx,edi
1140d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,r12d
1141d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,r12d
1142d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1143e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[4+rbp]
1144e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r13d,DWORD[32+rsp]
1145e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	edi,DWORD[20+rsp]
1146d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1147d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r13d
1148d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,11
1149d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,r14d
1150d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,edi
1151d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	edi,2
1152d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1153d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r12d
1154d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r12d,3
1155d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,7
1156d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r14d
1157d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r14d,10
1158d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1159d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	edi,17
1160d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r13d
1161d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r14d
1162e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rsp]
1163d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1164e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[28+rsp]
1165d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r9d
1166d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edi
1167d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,ebx
1168d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
1169d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,r10d
1170d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1171d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r9d
1172d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
1173d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r11d
1174d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1175e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[28+rsp],r12d
1176d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ebx
1177d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r9d
1178d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1179d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
1180d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,eax
1181d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r11d
1182d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1183d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
1184d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r9d
1185d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edi
1186d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1187d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,ebx
1188e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
1189d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ebx
1190d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1191d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,ecx
1192d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
1193d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	eax,ecx
1194d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1195d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
1196d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
1197d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
1198d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1199d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	eax,r15d
1200d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,r12d
1201d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r12d
1202d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1203e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[20+rbp]
1204e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r13d,DWORD[36+rsp]
1205e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r15d,DWORD[24+rsp]
1206d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1207d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r13d
1208d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,11
1209d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r14d
1210d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,r15d
1211d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r15d,2
1212d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1213d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r12d
1214d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r12d,3
1215d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,7
1216d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r14d
1217d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r14d,10
1218d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1219d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r15d,17
1220d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r13d
1221d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r14d
1222e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[4+rsp]
1223d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1224e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[32+rsp]
1225d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r8d
1226d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r15d
1227d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,eax
1228d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
1229d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,r9d
1230d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1231d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r8d
1232d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
1233d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r10d
1234d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1235e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[32+rsp],r12d
1236d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,eax
1237d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,r8d
1238d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1239d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
1240d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r11d
1241d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r10d
1242d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1243d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
1244d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r8d
1245d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r15d
1246d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1247d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,eax
1248e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
1249d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,eax
1250d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1251d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,ebx
1252d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
1253d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r11d,ebx
1254d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1255d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
1256d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
1257d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
1258d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1259d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r11d,edi
1260d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,r12d
1261d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,r12d
1262d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1263e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[4+rbp]
1264e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r13d,DWORD[40+rsp]
1265e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	edi,DWORD[28+rsp]
1266d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1267d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r13d
1268d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,11
1269d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,r14d
1270d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,edi
1271d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	edi,2
1272d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1273d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r12d
1274d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r12d,3
1275d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,7
1276d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r14d
1277d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r14d,10
1278d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1279d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	edi,17
1280d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r13d
1281d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r14d
1282e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[8+rsp]
1283d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1284e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[36+rsp]
1285d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,edx
1286d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edi
1287d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,r11d
1288d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
1289d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,r8d
1290d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1291d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,edx
1292d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
1293d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r9d
1294d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1295e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[36+rsp],r12d
1296d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r11d
1297d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,edx
1298d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1299d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
1300d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r10d
1301d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r9d
1302d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1303d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
1304d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,edx
1305d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edi
1306d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1307d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,r11d
1308e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
1309d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r11d
1310d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1311d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,eax
1312d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
1313d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r10d,eax
1314d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1315d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
1316d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
1317d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
1318d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1319d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r10d,r15d
1320d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r12d
1321d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,r12d
1322d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1323e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[4+rbp]
1324e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r13d,DWORD[44+rsp]
1325e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r15d,DWORD[32+rsp]
1326d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1327d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r13d
1328d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,11
1329d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,r14d
1330d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,r15d
1331d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r15d,2
1332d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1333d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r12d
1334d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r12d,3
1335d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,7
1336d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r14d
1337d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r14d,10
1338d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1339d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r15d,17
1340d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r13d
1341d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r14d
1342e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[12+rsp]
1343d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1344e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[40+rsp]
1345d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,ecx
1346d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r15d
1347d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,r10d
1348d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
1349d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,edx
1350d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1351d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ecx
1352d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
1353d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r8d
1354d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1355e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[40+rsp],r12d
1356d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r10d
1357d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,ecx
1358d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1359d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
1360d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r9d
1361d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r8d
1362d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1363d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
1364d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ecx
1365d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r15d
1366d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1367d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,r10d
1368e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
1369d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r10d
1370d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1371d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r11d
1372d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
1373d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r9d,r11d
1374d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1375d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
1376d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
1377d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
1378d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1379d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r9d,edi
1380d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,r12d
1381d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,r12d
1382d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1383e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[4+rbp]
1384e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r13d,DWORD[48+rsp]
1385e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	edi,DWORD[36+rsp]
1386d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1387d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r13d
1388d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,11
1389d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,r14d
1390d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,edi
1391d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	edi,2
1392d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1393d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r12d
1394d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r12d,3
1395d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,7
1396d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r14d
1397d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r14d,10
1398d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1399d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	edi,17
1400d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r13d
1401d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r14d
1402e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[16+rsp]
1403d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1404e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[44+rsp]
1405d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,ebx
1406d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edi
1407d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,r9d
1408d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
1409d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,ecx
1410d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1411d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ebx
1412d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
1413d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,edx
1414d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1415e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[44+rsp],r12d
1416d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r9d
1417d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,ebx
1418d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1419d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
1420d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r8d
1421d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,edx
1422d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1423d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
1424d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ebx
1425d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edi
1426d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1427d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,r9d
1428e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
1429d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r9d
1430d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1431d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r10d
1432d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
1433d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r8d,r10d
1434d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1435d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
1436d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
1437d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
1438d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1439d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r8d,r15d
1440d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r12d
1441d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,r12d
1442d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1443e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[20+rbp]
1444e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r13d,DWORD[52+rsp]
1445e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r15d,DWORD[40+rsp]
1446d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1447d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r13d
1448d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,11
1449d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,r14d
1450d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,r15d
1451d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r15d,2
1452d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1453d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r12d
1454d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r12d,3
1455d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,7
1456d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r14d
1457d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r14d,10
1458d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1459d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r15d,17
1460d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r13d
1461d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r14d
1462e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[20+rsp]
1463d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1464e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[48+rsp]
1465d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,eax
1466d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r15d
1467d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,r8d
1468d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
1469d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,ebx
1470d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1471d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,eax
1472d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
1473d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,ecx
1474d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1475e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[48+rsp],r12d
1476d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r8d
1477d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,eax
1478d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1479d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
1480d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edx
1481d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,ecx
1482d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1483d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
1484d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,eax
1485d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r15d
1486d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1487d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,r8d
1488e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
1489d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r8d
1490d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1491d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r9d
1492d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
1493d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edx,r9d
1494d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1495d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
1496d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
1497d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
1498d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1499d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edx,edi
1500d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,r12d
1501d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,r12d
1502d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1503e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[4+rbp]
1504e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r13d,DWORD[56+rsp]
1505e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	edi,DWORD[44+rsp]
1506d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1507d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r13d
1508d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,11
1509d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,r14d
1510d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,edi
1511d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	edi,2
1512d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1513d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r12d
1514d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r12d,3
1515d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,7
1516d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r14d
1517d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r14d,10
1518d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1519d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	edi,17
1520d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r13d
1521d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r14d
1522e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[24+rsp]
1523d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1524e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[52+rsp]
1525d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r11d
1526d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edi
1527d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,edx
1528d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
1529d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,eax
1530d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1531d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r11d
1532d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
1533d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,ebx
1534d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1535e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[52+rsp],r12d
1536d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,edx
1537d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r11d
1538d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1539d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
1540d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,ecx
1541d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,ebx
1542d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1543d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
1544d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r11d
1545d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edi
1546d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1547d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,edx
1548e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
1549d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,edx
1550d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1551d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r8d
1552d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
1553d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	ecx,r8d
1554d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1555d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
1556d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
1557d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
1558d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1559d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	ecx,r15d
1560d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,r12d
1561d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r12d
1562d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1563e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[4+rbp]
1564e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r13d,DWORD[60+rsp]
1565e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r15d,DWORD[48+rsp]
1566d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1567d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r13d
1568d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,11
1569d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r14d
1570d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,r15d
1571d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r15d,2
1572d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1573d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r12d
1574d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r12d,3
1575d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,7
1576d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r14d
1577d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r14d,10
1578d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1579d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r15d,17
1580d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r13d
1581d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r14d
1582e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[28+rsp]
1583d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1584e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[56+rsp]
1585d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r10d
1586d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r15d
1587d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,ecx
1588d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
1589d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,r11d
1590d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1591d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r10d
1592d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
1593d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,eax
1594d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1595e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[56+rsp],r12d
1596d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ecx
1597d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,r10d
1598d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1599d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
1600d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,ebx
1601d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,eax
1602d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1603d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
1604d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r10d
1605d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r15d
1606d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1607d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,ecx
1608e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
1609d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ecx
1610d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1611d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,edx
1612d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
1613d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	ebx,edx
1614d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1615d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
1616d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
1617d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
1618d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1619d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	ebx,edi
1620d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,r12d
1621d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,r12d
1622d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1623e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[4+rbp]
1624e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r13d,DWORD[rsp]
1625e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	edi,DWORD[52+rsp]
1626d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1627d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r13d
1628d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,11
1629d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,r14d
1630d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,edi
1631d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	edi,2
1632d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1633d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r12d
1634d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r12d,3
1635d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,7
1636d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r14d
1637d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shr	r14d,10
1638d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1639d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	edi,17
1640d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r13d
1641d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r14d
1642e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[32+rsp]
1643d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1644e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[60+rsp]
1645d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r9d
1646d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edi
1647d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,ebx
1648d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
1649d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,r10d
1650d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1651d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r9d
1652d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
1653d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r11d
1654d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1655e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[60+rsp],r12d
1656d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ebx
1657d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r9d
1658d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1659d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
1660d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,eax
1661d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r11d
1662d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1663d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
1664d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r9d
1665d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,edi
1666d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1667d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,ebx
1668e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r12d,DWORD[rbp]
1669d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ebx
1670d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1671d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,ecx
1672d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
1673d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	eax,ecx
1674d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1675d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
1676d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
1677d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r12d,r13d
1678d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1679d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	eax,r15d
1680d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,r12d
1681d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r12d
1682d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1683e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[20+rbp]
1684e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	cmp	BYTE[3+rbp],0
1685e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	jnz	NEAR $L$rounds_16_xx
1686d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1687e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	rdi,QWORD[((64+0))+rsp]
1688d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r14d
1689e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rsi,[64+rsi]
1690e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley
1691e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	eax,DWORD[rdi]
1692e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	ebx,DWORD[4+rdi]
1693e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	ecx,DWORD[8+rdi]
1694e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	edx,DWORD[12+rdi]
1695e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r8d,DWORD[16+rdi]
1696e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r9d,DWORD[20+rdi]
1697e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r10d,DWORD[24+rdi]
1698e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r11d,DWORD[28+rdi]
1699e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley
1700e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	cmp	rsi,QWORD[((64+16))+rsp]
1701e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley
1702e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[rdi],eax
1703e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[4+rdi],ebx
1704e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[8+rdi],ecx
1705e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[12+rdi],edx
1706e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[16+rdi],r8d
1707e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[20+rdi],r9d
1708e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[24+rdi],r10d
1709e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[28+rdi],r11d
1710e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	jb	NEAR $L$loop
1711e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley
1712e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	rsi,QWORD[((64+24))+rsp]
1713a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	mov	r15,QWORD[((-48))+rsi]
1714a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	mov	r14,QWORD[((-40))+rsi]
1715a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	mov	r13,QWORD[((-32))+rsi]
1716a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	mov	r12,QWORD[((-24))+rsi]
1717a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	mov	rbp,QWORD[((-16))+rsi]
1718a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	mov	rbx,QWORD[((-8))+rsi]
1719a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	lea	rsp,[rsi]
1720e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley$L$epilogue:
1721e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
1722e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	rsi,QWORD[16+rsp]
1723d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	DB	0F3h,0C3h		;repret
1724e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley$L$SEH_end_sha256_block_data_order:
1725d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyALIGN	64
1726d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1727e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam LangleyK256:
1728e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
1729e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
1730e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
1731e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
1732e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
1733e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
1734e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
1735e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
1736e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
1737e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
1738e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
1739e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
1740e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
1741e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
1742e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
1743e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
1744e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
1745e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
1746e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
1747e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
1748e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
1749e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
1750e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
1751e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
1752e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
1753e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
1754e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
1755e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
1756e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
1757e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
1758e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
1759e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
1760e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley
1761e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
1762e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
1763e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x03020100,0x0b0a0908,0xffffffff,0xffffffff
1764e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0x03020100,0x0b0a0908,0xffffffff,0xffffffff
1765e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0xffffffff,0xffffffff,0x03020100,0x0b0a0908
1766e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0xffffffff,0xffffffff,0x03020100,0x0b0a0908
1767d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyDB	83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97
1768d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyDB	110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54
1769d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyDB	52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121
1770d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyDB	32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46
1771d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyDB	111,114,103,62,0
1772d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1773d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyALIGN	64
1774e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langleysha256_block_data_order_ssse3:
1775e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	QWORD[8+rsp],rdi	;WIN64 prologue
1776e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	QWORD[16+rsp],rsi
1777d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	rax,rsp
1778e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley$L$SEH_begin_sha256_block_data_order_ssse3:
1779d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	rdi,rcx
1780d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	rsi,rdx
1781d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	rdx,r8
1782d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1783d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1784e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley$L$ssse3_shortcut:
1785a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	mov	rax,rsp
1786d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	push	rbx
1787d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	push	rbp
1788d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	push	r12
1789d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	push	r13
1790d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	push	r14
1791d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	push	r15
1792d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	shl	rdx,4
1793d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	sub	rsp,160
1794e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rdx,[rdx*4+rsi]
1795d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	rsp,-64
1796e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	QWORD[((64+0))+rsp],rdi
1797e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	QWORD[((64+8))+rsp],rsi
1798e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	QWORD[((64+16))+rsp],rdx
1799a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	mov	QWORD[((64+24))+rsp],rax
1800e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movaps	XMMWORD[(64+32)+rsp],xmm6
1801e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movaps	XMMWORD[(64+48)+rsp],xmm7
1802e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movaps	XMMWORD[(64+64)+rsp],xmm8
1803e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movaps	XMMWORD[(64+80)+rsp],xmm9
1804e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley$L$prologue_ssse3:
1805e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley
1806e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	eax,DWORD[rdi]
1807e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	ebx,DWORD[4+rdi]
1808e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	ecx,DWORD[8+rdi]
1809e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	edx,DWORD[12+rdi]
1810e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r8d,DWORD[16+rdi]
1811e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r9d,DWORD[20+rdi]
1812e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r10d,DWORD[24+rdi]
1813e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r11d,DWORD[28+rdi]
1814e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley
1815e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley
1816e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	jmp	NEAR $L$loop_ssse3
1817d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyALIGN	16
1818e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley$L$loop_ssse3:
1819e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movdqa	xmm7,XMMWORD[((K256+512))]
1820e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movdqu	xmm0,XMMWORD[rsi]
1821e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movdqu	xmm1,XMMWORD[16+rsi]
1822e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movdqu	xmm2,XMMWORD[32+rsi]
1823d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyDB	102,15,56,0,199
1824e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movdqu	xmm3,XMMWORD[48+rsi]
1825e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rbp,[K256]
1826d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyDB	102,15,56,0,207
1827e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movdqa	xmm4,XMMWORD[rbp]
1828e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movdqa	xmm5,XMMWORD[32+rbp]
1829d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyDB	102,15,56,0,215
1830d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	xmm4,xmm0
1831e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movdqa	xmm6,XMMWORD[64+rbp]
1832d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyDB	102,15,56,0,223
1833e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movdqa	xmm7,XMMWORD[96+rbp]
1834d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	xmm5,xmm1
1835d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	xmm6,xmm2
1836d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	xmm7,xmm3
1837e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movdqa	XMMWORD[rsp],xmm4
1838d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r14d,eax
1839e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movdqa	XMMWORD[16+rsp],xmm5
1840d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,ebx
1841e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movdqa	XMMWORD[32+rsp],xmm6
1842d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,ecx
1843e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movdqa	XMMWORD[48+rsp],xmm7
1844d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r8d
1845e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	jmp	NEAR $L$ssse3_00_47
1846d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
1847d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyALIGN	16
1848e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley$L$ssse3_00_47:
1849d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	sub	rbp,-128
1850d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
1851d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	xmm4,xmm1
1852d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	eax,r14d
1853d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r9d
1854d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	xmm7,xmm3
1855d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
1856d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r8d
1857d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r10d
1858d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
1859d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,eax
1860d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyDB	102,15,58,15,224,4
1861d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,r8d
1862d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r8d
1863d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyDB	102,15,58,15,250,4
1864e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r11d,DWORD[rsp]
1865d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,eax
1866d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r10d
1867d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
1868d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	xmm5,xmm4
1869d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,ebx
1870d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,r12d
1871d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	xmm6,xmm4
1872d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
1873d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
1874d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	xmm4,3
1875d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,eax
1876d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,r13d
1877d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,ebx
1878d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	xmm0,xmm7
1879d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
1880d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,r11d
1881d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	xmm6,7
1882d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,edi
1883d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,edx
1884d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	xmm7,xmm3,250
1885d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,r11d
1886d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
1887d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslld	xmm5,14
1888d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r11d,r14d
1889d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r8d
1890d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm4,xmm6
1891d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
1892d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,edx
1893d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r9d
1894d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
1895d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	xmm6,11
1896d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r11d
1897d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm4,xmm5
1898d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,edx
1899d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,edx
1900d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslld	xmm5,11
1901e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r10d,DWORD[4+rsp]
1902d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,r11d
1903d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm4,xmm6
1904d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r9d
1905d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
1906d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	xmm6,xmm7
1907d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,eax
1908d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,r12d
1909d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm4,xmm5
1910d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
1911d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
1912d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r11d
1913d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	xmm7,10
1914d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,r13d
1915d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,eax
1916d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	xmm0,xmm4
1917d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
1918d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r10d
1919d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrlq	xmm6,17
1920d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,r15d
1921d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,ecx
1922d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,r10d
1923d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm7,xmm6
1924d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
1925d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r10d,r14d
1926d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,edx
1927d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
1928d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrlq	xmm6,2
1929d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ecx
1930d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r8d
1931d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm7,xmm6
1932d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
1933d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r10d
1934d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,ecx
1935d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	xmm7,xmm7,128
1936d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ecx
1937e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r9d,DWORD[8+rsp]
1938d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,r10d
1939d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrldq	xmm7,8
1940d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r8d
1941d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
1942d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r11d
1943d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,r12d
1944d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
1945d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	xmm0,xmm7
1946d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
1947d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r10d
1948d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,r13d
1949d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	xmm7,xmm0,80
1950d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r11d
1951d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
1952d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,r9d
1953d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	xmm6,xmm7
1954d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,edi
1955d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,ebx
1956d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	xmm7,10
1957d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,r9d
1958d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
1959d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrlq	xmm6,17
1960d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r9d,r14d
1961d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,ecx
1962d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm7,xmm6
1963d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
1964d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ebx
1965d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,edx
1966d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
1967d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r9d
1968d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrlq	xmm6,2
1969d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,ebx
1970d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ebx
1971e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r8d,DWORD[12+rsp]
1972d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm7,xmm6
1973d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,r9d
1974d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,edx
1975d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
1976d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	xmm7,xmm7,8
1977d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r10d
1978d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,r12d
1979e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movdqa	xmm6,XMMWORD[rbp]
1980d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
1981d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
1982d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslldq	xmm7,8
1983d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r9d
1984d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,r13d
1985d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r10d
1986d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	xmm0,xmm7
1987d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
1988d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r8d
1989d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,r15d
1990d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	xmm6,xmm0
1991d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,eax
1992d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,r8d
1993e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movdqa	XMMWORD[rsp],xmm6
1994d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
1995d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	xmm4,xmm2
1996d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r8d,r14d
1997d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,ebx
1998d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	xmm7,xmm0
1999d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2000d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,eax
2001d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,ecx
2002d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2003d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r8d
2004d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyDB	102,15,58,15,225,4
2005d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,eax
2006d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,eax
2007d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyDB	102,15,58,15,251,4
2008e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	edx,DWORD[16+rsp]
2009d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,r8d
2010d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,ecx
2011d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2012d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	xmm5,xmm4
2013d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r9d
2014d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,r12d
2015d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	xmm6,xmm4
2016d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2017d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
2018d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	xmm4,3
2019d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r8d
2020d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,r13d
2021d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r9d
2022d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	xmm1,xmm7
2023d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2024d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,edx
2025d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	xmm6,7
2026d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,edi
2027d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r11d
2028d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	xmm7,xmm0,250
2029d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,edx
2030d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2031d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslld	xmm5,14
2032d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edx,r14d
2033d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,eax
2034d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm4,xmm6
2035d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2036d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r11d
2037d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,ebx
2038d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2039d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	xmm6,11
2040d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,edx
2041d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm4,xmm5
2042d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,r11d
2043d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r11d
2044d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslld	xmm5,11
2045e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	ecx,DWORD[20+rsp]
2046d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,edx
2047d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm4,xmm6
2048d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,ebx
2049d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2050d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	xmm6,xmm7
2051d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r8d
2052d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r12d
2053d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm4,xmm5
2054d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2055d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
2056d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,edx
2057d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	xmm7,10
2058d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r13d
2059d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r8d
2060d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	xmm1,xmm4
2061d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2062d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,ecx
2063d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrlq	xmm6,17
2064d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r15d
2065d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r10d
2066d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,ecx
2067d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm7,xmm6
2068d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2069d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	ecx,r14d
2070d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r11d
2071d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2072d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrlq	xmm6,2
2073d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r10d
2074d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,eax
2075d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm7,xmm6
2076d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2077d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ecx
2078d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,r10d
2079d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	xmm7,xmm7,128
2080d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r10d
2081e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	ebx,DWORD[24+rsp]
2082d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,ecx
2083d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrldq	xmm7,8
2084d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,eax
2085d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2086d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,edx
2087d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,r12d
2088d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2089d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	xmm1,xmm7
2090d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
2091d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ecx
2092d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,r13d
2093d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	xmm7,xmm1,80
2094d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,edx
2095d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2096d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,ebx
2097d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	xmm6,xmm7
2098d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,edi
2099d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r9d
2100d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	xmm7,10
2101d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,ebx
2102d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2103d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrlq	xmm6,17
2104d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	ebx,r14d
2105d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r10d
2106d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm7,xmm6
2107d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2108d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r9d
2109d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r11d
2110d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2111d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ebx
2112d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrlq	xmm6,2
2113d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,r9d
2114d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r9d
2115e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	eax,DWORD[28+rsp]
2116d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm7,xmm6
2117d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,ebx
2118d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r11d
2119d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2120d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	xmm7,xmm7,8
2121d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,ecx
2122d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r12d
2123e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movdqa	xmm6,XMMWORD[32+rbp]
2124d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2125d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
2126d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslldq	xmm7,8
2127d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ebx
2128d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r13d
2129d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,ecx
2130d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	xmm1,xmm7
2131d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2132d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,eax
2133d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r15d
2134d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	xmm6,xmm1
2135d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r8d
2136d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,eax
2137e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movdqa	XMMWORD[16+rsp],xmm6
2138d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2139d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	xmm4,xmm3
2140d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	eax,r14d
2141d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r9d
2142d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	xmm7,xmm1
2143d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2144d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r8d
2145d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r10d
2146d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2147d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,eax
2148d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyDB	102,15,58,15,226,4
2149d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,r8d
2150d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r8d
2151d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyDB	102,15,58,15,248,4
2152e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r11d,DWORD[32+rsp]
2153d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,eax
2154d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r10d
2155d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2156d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	xmm5,xmm4
2157d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,ebx
2158d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,r12d
2159d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	xmm6,xmm4
2160d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2161d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
2162d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	xmm4,3
2163d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,eax
2164d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,r13d
2165d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,ebx
2166d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	xmm2,xmm7
2167d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2168d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,r11d
2169d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	xmm6,7
2170d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,edi
2171d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,edx
2172d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	xmm7,xmm1,250
2173d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,r11d
2174d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2175d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslld	xmm5,14
2176d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r11d,r14d
2177d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r8d
2178d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm4,xmm6
2179d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2180d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,edx
2181d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r9d
2182d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2183d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	xmm6,11
2184d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r11d
2185d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm4,xmm5
2186d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,edx
2187d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,edx
2188d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslld	xmm5,11
2189e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r10d,DWORD[36+rsp]
2190d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,r11d
2191d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm4,xmm6
2192d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r9d
2193d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2194d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	xmm6,xmm7
2195d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,eax
2196d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,r12d
2197d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm4,xmm5
2198d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2199d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
2200d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r11d
2201d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	xmm7,10
2202d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,r13d
2203d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,eax
2204d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	xmm2,xmm4
2205d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2206d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r10d
2207d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrlq	xmm6,17
2208d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,r15d
2209d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,ecx
2210d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,r10d
2211d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm7,xmm6
2212d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2213d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r10d,r14d
2214d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,edx
2215d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2216d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrlq	xmm6,2
2217d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ecx
2218d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r8d
2219d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm7,xmm6
2220d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2221d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r10d
2222d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,ecx
2223d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	xmm7,xmm7,128
2224d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ecx
2225e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r9d,DWORD[40+rsp]
2226d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,r10d
2227d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrldq	xmm7,8
2228d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r8d
2229d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2230d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r11d
2231d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,r12d
2232d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2233d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	xmm2,xmm7
2234d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
2235d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r10d
2236d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,r13d
2237d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	xmm7,xmm2,80
2238d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r11d
2239d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2240d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,r9d
2241d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	xmm6,xmm7
2242d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,edi
2243d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,ebx
2244d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	xmm7,10
2245d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,r9d
2246d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2247d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrlq	xmm6,17
2248d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r9d,r14d
2249d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,ecx
2250d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm7,xmm6
2251d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2252d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ebx
2253d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,edx
2254d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2255d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r9d
2256d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrlq	xmm6,2
2257d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,ebx
2258d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ebx
2259e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r8d,DWORD[44+rsp]
2260d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm7,xmm6
2261d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,r9d
2262d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,edx
2263d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2264d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	xmm7,xmm7,8
2265d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r10d
2266d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,r12d
2267e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movdqa	xmm6,XMMWORD[64+rbp]
2268d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2269d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
2270d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslldq	xmm7,8
2271d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r9d
2272d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,r13d
2273d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r10d
2274d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	xmm2,xmm7
2275d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2276d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r8d
2277d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,r15d
2278d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	xmm6,xmm2
2279d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,eax
2280d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,r8d
2281e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movdqa	XMMWORD[32+rsp],xmm6
2282d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2283d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	xmm4,xmm0
2284d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r8d,r14d
2285d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,ebx
2286d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	xmm7,xmm2
2287d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2288d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,eax
2289d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,ecx
2290d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2291d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r8d
2292d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyDB	102,15,58,15,227,4
2293d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,eax
2294d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,eax
2295d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyDB	102,15,58,15,249,4
2296e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	edx,DWORD[48+rsp]
2297d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,r8d
2298d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,ecx
2299d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2300d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	xmm5,xmm4
2301d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r9d
2302d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,r12d
2303d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	xmm6,xmm4
2304d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2305d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
2306d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	xmm4,3
2307d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r8d
2308d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,r13d
2309d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r9d
2310d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	xmm3,xmm7
2311d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2312d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,edx
2313d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	xmm6,7
2314d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,edi
2315d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r11d
2316d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	xmm7,xmm2,250
2317d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,edx
2318d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2319d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslld	xmm5,14
2320d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edx,r14d
2321d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,eax
2322d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm4,xmm6
2323d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2324d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r11d
2325d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,ebx
2326d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2327d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	xmm6,11
2328d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,edx
2329d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm4,xmm5
2330d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,r11d
2331d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r11d
2332d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslld	xmm5,11
2333e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	ecx,DWORD[52+rsp]
2334d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,edx
2335d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm4,xmm6
2336d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,ebx
2337d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2338d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	xmm6,xmm7
2339d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r8d
2340d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r12d
2341d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm4,xmm5
2342d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2343d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
2344d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,edx
2345d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	xmm7,10
2346d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r13d
2347d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r8d
2348d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	xmm3,xmm4
2349d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2350d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,ecx
2351d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrlq	xmm6,17
2352d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r15d
2353d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r10d
2354d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,ecx
2355d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm7,xmm6
2356d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2357d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	ecx,r14d
2358d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r11d
2359d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2360d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrlq	xmm6,2
2361d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r10d
2362d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,eax
2363d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm7,xmm6
2364d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2365d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ecx
2366d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,r10d
2367d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	xmm7,xmm7,128
2368d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r10d
2369e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	ebx,DWORD[56+rsp]
2370d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,ecx
2371d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrldq	xmm7,8
2372d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,eax
2373d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2374d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,edx
2375d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,r12d
2376d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2377d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	xmm3,xmm7
2378d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
2379d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ecx
2380d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,r13d
2381d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	xmm7,xmm3,80
2382d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,edx
2383d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2384d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,ebx
2385d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	movdqa	xmm6,xmm7
2386d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,edi
2387d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r9d
2388d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrld	xmm7,10
2389d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,ebx
2390d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2391d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrlq	xmm6,17
2392d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	ebx,r14d
2393d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r10d
2394d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm7,xmm6
2395d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2396d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r9d
2397d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r11d
2398d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2399d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ebx
2400d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	psrlq	xmm6,2
2401d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,r9d
2402d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r9d
2403e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	eax,DWORD[60+rsp]
2404d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pxor	xmm7,xmm6
2405d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,ebx
2406d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r11d
2407d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2408d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pshufd	xmm7,xmm7,8
2409d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,ecx
2410d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r12d
2411e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movdqa	xmm6,XMMWORD[96+rbp]
2412d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2413d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
2414d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pslldq	xmm7,8
2415d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ebx
2416d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r13d
2417d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,ecx
2418d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	xmm3,xmm7
2419d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2420d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,eax
2421d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r15d
2422d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	paddd	xmm6,xmm3
2423d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r8d
2424d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,eax
2425e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movdqa	XMMWORD[48+rsp],xmm6
2426e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	cmp	BYTE[131+rbp],0
2427e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	jne	NEAR $L$ssse3_00_47
2428d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2429d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	eax,r14d
2430d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r9d
2431d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2432d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r8d
2433d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r10d
2434d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2435d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,eax
2436d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,r8d
2437d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r8d
2438e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r11d,DWORD[rsp]
2439d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,eax
2440d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r10d
2441d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2442d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,ebx
2443d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,r12d
2444d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2445d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
2446d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,eax
2447d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,r13d
2448d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,ebx
2449d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2450d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,r11d
2451d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,edi
2452d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,edx
2453d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,r11d
2454d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2455d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r11d,r14d
2456d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r8d
2457d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2458d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,edx
2459d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r9d
2460d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2461d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r11d
2462d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,edx
2463d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,edx
2464e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r10d,DWORD[4+rsp]
2465d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,r11d
2466d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r9d
2467d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2468d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,eax
2469d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,r12d
2470d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2471d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
2472d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r11d
2473d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,r13d
2474d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,eax
2475d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2476d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r10d
2477d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,r15d
2478d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,ecx
2479d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,r10d
2480d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2481d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r10d,r14d
2482d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,edx
2483d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2484d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ecx
2485d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r8d
2486d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2487d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r10d
2488d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,ecx
2489d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ecx
2490e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r9d,DWORD[8+rsp]
2491d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,r10d
2492d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r8d
2493d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2494d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r11d
2495d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,r12d
2496d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2497d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
2498d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r10d
2499d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,r13d
2500d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r11d
2501d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2502d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,r9d
2503d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,edi
2504d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,ebx
2505d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,r9d
2506d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2507d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r9d,r14d
2508d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,ecx
2509d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2510d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ebx
2511d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,edx
2512d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2513d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r9d
2514d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,ebx
2515d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ebx
2516e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r8d,DWORD[12+rsp]
2517d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,r9d
2518d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,edx
2519d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2520d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r10d
2521d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,r12d
2522d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2523d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
2524d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r9d
2525d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,r13d
2526d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r10d
2527d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2528d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r8d
2529d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,r15d
2530d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,eax
2531d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,r8d
2532d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2533d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r8d,r14d
2534d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,ebx
2535d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2536d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,eax
2537d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,ecx
2538d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2539d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r8d
2540d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,eax
2541d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,eax
2542e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	edx,DWORD[16+rsp]
2543d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,r8d
2544d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,ecx
2545d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2546d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r9d
2547d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,r12d
2548d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2549d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
2550d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r8d
2551d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,r13d
2552d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r9d
2553d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2554d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,edx
2555d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,edi
2556d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r11d
2557d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,edx
2558d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2559d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edx,r14d
2560d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,eax
2561d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2562d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r11d
2563d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,ebx
2564d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2565d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,edx
2566d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,r11d
2567d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r11d
2568e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	ecx,DWORD[20+rsp]
2569d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,edx
2570d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,ebx
2571d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2572d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r8d
2573d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r12d
2574d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2575d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
2576d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,edx
2577d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r13d
2578d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r8d
2579d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2580d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,ecx
2581d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r15d
2582d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r10d
2583d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,ecx
2584d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2585d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	ecx,r14d
2586d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r11d
2587d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2588d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r10d
2589d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,eax
2590d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2591d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ecx
2592d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,r10d
2593d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r10d
2594e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	ebx,DWORD[24+rsp]
2595d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,ecx
2596d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,eax
2597d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2598d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,edx
2599d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,r12d
2600d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2601d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
2602d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ecx
2603d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,r13d
2604d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,edx
2605d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2606d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,ebx
2607d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,edi
2608d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r9d
2609d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,ebx
2610d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2611d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	ebx,r14d
2612d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r10d
2613d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2614d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r9d
2615d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r11d
2616d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2617d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ebx
2618d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,r9d
2619d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r9d
2620e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	eax,DWORD[28+rsp]
2621d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,ebx
2622d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r11d
2623d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2624d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,ecx
2625d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r12d
2626d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2627d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
2628d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ebx
2629d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r13d
2630d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,ecx
2631d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2632d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,eax
2633d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r15d
2634d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r8d
2635d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,eax
2636d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2637d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	eax,r14d
2638d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r9d
2639d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2640d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r8d
2641d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r10d
2642d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2643d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,eax
2644d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,r8d
2645d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r8d
2646e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r11d,DWORD[32+rsp]
2647d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,eax
2648d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r10d
2649d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2650d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,ebx
2651d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,r12d
2652d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2653d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
2654d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,eax
2655d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,r13d
2656d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,ebx
2657d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2658d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,r11d
2659d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,edi
2660d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,edx
2661d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,r11d
2662d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2663d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r11d,r14d
2664d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r8d
2665d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2666d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,edx
2667d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r9d
2668d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2669d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r11d
2670d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,edx
2671d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,edx
2672e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r10d,DWORD[36+rsp]
2673d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,r11d
2674d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r9d
2675d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2676d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,eax
2677d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,r12d
2678d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2679d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
2680d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r11d
2681d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,r13d
2682d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,eax
2683d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2684d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r10d
2685d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,r15d
2686d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,ecx
2687d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,r10d
2688d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2689d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r10d,r14d
2690d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,edx
2691d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2692d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ecx
2693d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r8d
2694d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2695d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r10d
2696d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,ecx
2697d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ecx
2698e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r9d,DWORD[40+rsp]
2699d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,r10d
2700d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r8d
2701d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2702d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r11d
2703d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,r12d
2704d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2705d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
2706d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r10d
2707d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,r13d
2708d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r11d
2709d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2710d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,r9d
2711d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,edi
2712d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,ebx
2713d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,r9d
2714d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2715d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r9d,r14d
2716d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,ecx
2717d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2718d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ebx
2719d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,edx
2720d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2721d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r9d
2722d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,ebx
2723d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,ebx
2724e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r8d,DWORD[44+rsp]
2725d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,r9d
2726d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,edx
2727d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2728d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r10d
2729d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,r12d
2730d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2731d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
2732d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r9d
2733d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,r13d
2734d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r10d
2735d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2736d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r8d
2737d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,r15d
2738d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,eax
2739d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,r8d
2740d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2741d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r8d,r14d
2742d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,ebx
2743d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2744d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,eax
2745d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,ecx
2746d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2747d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r8d
2748d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,eax
2749d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,eax
2750e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	edx,DWORD[48+rsp]
2751d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,r8d
2752d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,ecx
2753d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2754d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r9d
2755d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,r12d
2756d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2757d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
2758d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,r8d
2759d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,r13d
2760d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r9d
2761d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2762d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r11d,edx
2763d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	edx,edi
2764d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r11d
2765d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,edx
2766d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2767d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edx,r14d
2768d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,eax
2769d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2770d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r11d
2771d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,ebx
2772d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2773d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,edx
2774d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,r11d
2775d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r11d
2776e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	ecx,DWORD[52+rsp]
2777d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,edx
2778d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,ebx
2779d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2780d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,r8d
2781d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r12d
2782d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2783d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
2784d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,edx
2785d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r13d
2786d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,r8d
2787d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2788d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r10d,ecx
2789d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ecx,r15d
2790d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r10d
2791d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,ecx
2792d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2793d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	ecx,r14d
2794d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r11d
2795d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2796d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r10d
2797d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,eax
2798d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2799d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ecx
2800d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,r10d
2801d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r10d
2802e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	ebx,DWORD[56+rsp]
2803d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r15d,ecx
2804d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,eax
2805d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2806d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,edx
2807d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,r12d
2808d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2809d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	edi,r15d
2810d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ecx
2811d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,r13d
2812d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,edx
2813d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2814d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r9d,ebx
2815d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	ebx,edi
2816d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r9d
2817d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,ebx
2818d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,14
2819d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	ebx,r14d
2820d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r12d,r10d
2821d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,9
2822d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r9d
2823d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r11d
2824d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,5
2825d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ebx
2826d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r12d,r9d
2827d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r13d,r9d
2828e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	eax,DWORD[60+rsp]
2829d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	edi,ebx
2830d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r12d,r11d
2831d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,11
2832d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	edi,ecx
2833d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r12d
2834d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r13d,6
2835d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	and	r15d,edi
2836d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r14d,ebx
2837d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r13d
2838d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	r15d,ecx
2839d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	ror	r14d,2
2840d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r8d,eax
2841d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	eax,r15d
2842d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	r13d,r8d
2843d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	r14d,eax
2844e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	rdi,QWORD[((64+0))+rsp]
2845d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	eax,r14d
2846d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
2847e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	eax,DWORD[rdi]
2848e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rsi,[64+rsi]
2849e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	ebx,DWORD[4+rdi]
2850e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	ecx,DWORD[8+rdi]
2851e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	edx,DWORD[12+rdi]
2852e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r8d,DWORD[16+rdi]
2853e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r9d,DWORD[20+rdi]
2854e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r10d,DWORD[24+rdi]
2855e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	add	r11d,DWORD[28+rdi]
2856e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley
2857e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	cmp	rsi,QWORD[((64+16))+rsp]
2858e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley
2859e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[rdi],eax
2860e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[4+rdi],ebx
2861e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[8+rdi],ecx
2862e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[12+rdi],edx
2863e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[16+rdi],r8d
2864e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[20+rdi],r9d
2865e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[24+rdi],r10d
2866e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	DWORD[28+rdi],r11d
2867e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	jb	NEAR $L$loop_ssse3
2868e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley
2869e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	rsi,QWORD[((64+24))+rsp]
2870e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movaps	xmm6,XMMWORD[((64+32))+rsp]
2871e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movaps	xmm7,XMMWORD[((64+48))+rsp]
2872e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movaps	xmm8,XMMWORD[((64+64))+rsp]
2873e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	movaps	xmm9,XMMWORD[((64+80))+rsp]
2874a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	mov	r15,QWORD[((-48))+rsi]
2875a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	mov	r14,QWORD[((-40))+rsi]
2876a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	mov	r13,QWORD[((-32))+rsi]
2877a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	mov	r12,QWORD[((-24))+rsi]
2878a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	mov	rbp,QWORD[((-16))+rsi]
2879a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	mov	rbx,QWORD[((-8))+rsi]
2880a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	lea	rsp,[rsi]
2881e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley$L$epilogue_ssse3:
2882e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
2883e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	rsi,QWORD[16+rsp]
2884d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	DB	0F3h,0C3h		;repret
2885e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley$L$SEH_end_sha256_block_data_order_ssse3:
28864139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley
28874139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam LangleyALIGN	64
28884139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langleysha256_block_data_order_avx:
28894139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	QWORD[8+rsp],rdi	;WIN64 prologue
28904139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	QWORD[16+rsp],rsi
28914139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	rax,rsp
28924139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley$L$SEH_begin_sha256_block_data_order_avx:
28934139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	rdi,rcx
28944139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	rsi,rdx
28954139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	rdx,r8
28964139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley
28974139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley
28984139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley$L$avx_shortcut:
2899a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	mov	rax,rsp
29004139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	push	rbx
29014139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	push	rbp
29024139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	push	r12
29034139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	push	r13
29044139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	push	r14
29054139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	push	r15
29064139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shl	rdx,4
29074139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	sub	rsp,160
29084139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	lea	rdx,[rdx*4+rsi]
29094139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	rsp,-64
29104139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	QWORD[((64+0))+rsp],rdi
29114139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	QWORD[((64+8))+rsp],rsi
29124139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	QWORD[((64+16))+rsp],rdx
2913a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	mov	QWORD[((64+24))+rsp],rax
29144139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movaps	XMMWORD[(64+32)+rsp],xmm6
29154139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movaps	XMMWORD[(64+48)+rsp],xmm7
29164139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movaps	XMMWORD[(64+64)+rsp],xmm8
29174139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movaps	XMMWORD[(64+80)+rsp],xmm9
29184139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley$L$prologue_avx:
29194139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley
29204139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vzeroupper
29214139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	eax,DWORD[rdi]
29224139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	ebx,DWORD[4+rdi]
29234139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	ecx,DWORD[8+rdi]
29244139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	edx,DWORD[12+rdi]
29254139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r8d,DWORD[16+rdi]
29264139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r9d,DWORD[20+rdi]
29274139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r10d,DWORD[24+rdi]
29284139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r11d,DWORD[28+rdi]
29294139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	xmm8,XMMWORD[((K256+512+32))]
29304139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	xmm9,XMMWORD[((K256+512+64))]
29314139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	jmp	NEAR $L$loop_avx
29324139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam LangleyALIGN	16
29334139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley$L$loop_avx:
29344139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	xmm7,XMMWORD[((K256+512))]
29354139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqu	xmm0,XMMWORD[rsi]
29364139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqu	xmm1,XMMWORD[16+rsi]
29374139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqu	xmm2,XMMWORD[32+rsi]
29384139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqu	xmm3,XMMWORD[48+rsi]
29394139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufb	xmm0,xmm0,xmm7
29404139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	lea	rbp,[K256]
29414139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufb	xmm1,xmm1,xmm7
29424139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufb	xmm2,xmm2,xmm7
29434139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	xmm4,xmm0,XMMWORD[rbp]
29444139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufb	xmm3,xmm3,xmm7
29454139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	xmm5,xmm1,XMMWORD[32+rbp]
29464139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	xmm6,xmm2,XMMWORD[64+rbp]
29474139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	xmm7,xmm3,XMMWORD[96+rbp]
29484139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	XMMWORD[rsp],xmm4
29494139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r14d,eax
29504139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	XMMWORD[16+rsp],xmm5
29514139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	edi,ebx
29524139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	XMMWORD[32+rsp],xmm6
29534139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,ecx
29544139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	XMMWORD[48+rsp],xmm7
29554139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,r8d
29564139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	jmp	NEAR $L$avx_00_47
29574139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley
29584139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam LangleyALIGN	16
29594139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley$L$avx_00_47:
29604139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	sub	rbp,-128
29614139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpalignr	xmm4,xmm1,xmm0,4
29624139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
29634139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	eax,r14d
29644139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,r9d
29654139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpalignr	xmm7,xmm3,xmm2,4
29664139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
29674139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r8d
29684139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r10d
29694139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	xmm6,xmm4,7
29704139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
29714139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,eax
29724139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,r8d
29734139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	xmm0,xmm0,xmm7
29744139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r8d
29754139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r11d,DWORD[rsp]
29764139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r15d,eax
29774139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	xmm7,xmm4,3
29784139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r10d
29794139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
29804139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,ebx
29814139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslld	xmm5,xmm4,14
29824139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r11d,r12d
29834139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
29844139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	edi,r15d
29854139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm4,xmm7,xmm6
29864139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,eax
29874139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r11d,r13d
29884139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,ebx
29894139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufd	xmm7,xmm3,250
29904139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
29914139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	edx,r11d
29924139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r11d,edi
29934139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	xmm6,xmm6,11
29944139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,edx
29954139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,r11d
29964139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
29974139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm4,xmm4,xmm5
29984139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r11d,r14d
29994139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,r8d
30004139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
30014139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslld	xmm5,xmm5,11
30024139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,edx
30034139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r9d
30044139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
30054139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm4,xmm4,xmm6
30064139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r11d
30074139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,edx
30084139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,edx
30094139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	xmm6,xmm7,10
30104139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r10d,DWORD[4+rsp]
30114139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	edi,r11d
30124139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r9d
30134139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm4,xmm4,xmm5
30144139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
30154139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,eax
30164139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r10d,r12d
30174139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrlq	xmm7,xmm7,17
30184139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
30194139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r15d,edi
30204139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r11d
30214139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	xmm0,xmm0,xmm4
30224139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r10d,r13d
30234139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,eax
30244139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
30254139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm6,xmm6,xmm7
30264139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ecx,r10d
30274139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r10d,r15d
30284139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,ecx
30294139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrlq	xmm7,xmm7,2
30304139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,r10d
30314139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
30324139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r10d,r14d
30334139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm6,xmm6,xmm7
30344139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,edx
30354139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
30364139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,ecx
30374139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufb	xmm6,xmm6,xmm8
30384139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r8d
30394139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
30404139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r10d
30414139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	xmm0,xmm0,xmm6
30424139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,ecx
30434139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,ecx
30444139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r9d,DWORD[8+rsp]
30454139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufd	xmm7,xmm0,80
30464139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r15d,r10d
30474139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r8d
30484139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
30494139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	xmm6,xmm7,10
30504139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,r11d
30514139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r9d,r12d
30524139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
30534139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrlq	xmm7,xmm7,17
30544139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	edi,r15d
30554139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r10d
30564139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r9d,r13d
30574139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm6,xmm6,xmm7
30584139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,r11d
30594139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
30604139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ebx,r9d
30614139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrlq	xmm7,xmm7,2
30624139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r9d,edi
30634139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,ebx
30644139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,r9d
30654139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm6,xmm6,xmm7
30664139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
30674139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r9d,r14d
30684139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,ecx
30694139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufb	xmm6,xmm6,xmm9
30704139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
30714139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,ebx
30724139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,edx
30734139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	xmm0,xmm0,xmm6
30744139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
30754139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r9d
30764139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,ebx
30774139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	xmm6,xmm0,XMMWORD[rbp]
30784139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,ebx
30794139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r8d,DWORD[12+rsp]
30804139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	edi,r9d
30814139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,edx
30824139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
30834139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,r10d
30844139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r8d,r12d
30854139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
30864139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r15d,edi
30874139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r9d
30884139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r8d,r13d
30894139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,r10d
30904139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
30914139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	eax,r8d
30924139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r8d,r15d
30934139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,eax
30944139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,r8d
30954139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	XMMWORD[rsp],xmm6
30964139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpalignr	xmm4,xmm2,xmm1,4
30974139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
30984139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r8d,r14d
30994139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,ebx
31004139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpalignr	xmm7,xmm0,xmm3,4
31014139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
31024139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,eax
31034139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,ecx
31044139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	xmm6,xmm4,7
31054139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
31064139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r8d
31074139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,eax
31084139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	xmm1,xmm1,xmm7
31094139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,eax
31104139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	edx,DWORD[16+rsp]
31114139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r15d,r8d
31124139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	xmm7,xmm4,3
31134139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,ecx
31144139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
31154139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,r9d
31164139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslld	xmm5,xmm4,14
31174139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	edx,r12d
31184139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
31194139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	edi,r15d
31204139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm4,xmm7,xmm6
31214139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r8d
31224139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	edx,r13d
31234139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,r9d
31244139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufd	xmm7,xmm0,250
31254139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
31264139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r11d,edx
31274139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	edx,edi
31284139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	xmm6,xmm6,11
31294139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,r11d
31304139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,edx
31314139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
31324139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm4,xmm4,xmm5
31334139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	edx,r14d
31344139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,eax
31354139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
31364139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslld	xmm5,xmm5,11
31374139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r11d
31384139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,ebx
31394139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
31404139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm4,xmm4,xmm6
31414139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,edx
31424139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,r11d
31434139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r11d
31444139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	xmm6,xmm7,10
31454139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ecx,DWORD[20+rsp]
31464139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	edi,edx
31474139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,ebx
31484139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm4,xmm4,xmm5
31494139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
31504139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,r8d
31514139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ecx,r12d
31524139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrlq	xmm7,xmm7,17
31534139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
31544139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r15d,edi
31554139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,edx
31564139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	xmm1,xmm1,xmm4
31574139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ecx,r13d
31584139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,r8d
31594139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
31604139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm6,xmm6,xmm7
31614139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r10d,ecx
31624139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ecx,r15d
31634139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,r10d
31644139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrlq	xmm7,xmm7,2
31654139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,ecx
31664139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
31674139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	ecx,r14d
31684139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm6,xmm6,xmm7
31694139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,r11d
31704139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
31714139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r10d
31724139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufb	xmm6,xmm6,xmm8
31734139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,eax
31744139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
31754139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,ecx
31764139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	xmm1,xmm1,xmm6
31774139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,r10d
31784139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r10d
31794139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ebx,DWORD[24+rsp]
31804139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufd	xmm7,xmm1,80
31814139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r15d,ecx
31824139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,eax
31834139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
31844139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	xmm6,xmm7,10
31854139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,edx
31864139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ebx,r12d
31874139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
31884139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrlq	xmm7,xmm7,17
31894139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	edi,r15d
31904139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,ecx
31914139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ebx,r13d
31924139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm6,xmm6,xmm7
31934139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,edx
31944139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
31954139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r9d,ebx
31964139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrlq	xmm7,xmm7,2
31974139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ebx,edi
31984139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,r9d
31994139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,ebx
32004139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm6,xmm6,xmm7
32014139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
32024139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	ebx,r14d
32034139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,r10d
32044139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufb	xmm6,xmm6,xmm9
32054139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
32064139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r9d
32074139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r11d
32084139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	xmm1,xmm1,xmm6
32094139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
32104139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,ebx
32114139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,r9d
32124139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	xmm6,xmm1,XMMWORD[32+rbp]
32134139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r9d
32144139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	eax,DWORD[28+rsp]
32154139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	edi,ebx
32164139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r11d
32174139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
32184139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,ecx
32194139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	eax,r12d
32204139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
32214139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r15d,edi
32224139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,ebx
32234139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	eax,r13d
32244139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,ecx
32254139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
32264139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r8d,eax
32274139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	eax,r15d
32284139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,r8d
32294139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,eax
32304139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	XMMWORD[16+rsp],xmm6
32314139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpalignr	xmm4,xmm3,xmm2,4
32324139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
32334139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	eax,r14d
32344139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,r9d
32354139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpalignr	xmm7,xmm1,xmm0,4
32364139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
32374139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r8d
32384139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r10d
32394139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	xmm6,xmm4,7
32404139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
32414139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,eax
32424139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,r8d
32434139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	xmm2,xmm2,xmm7
32444139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r8d
32454139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r11d,DWORD[32+rsp]
32464139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r15d,eax
32474139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	xmm7,xmm4,3
32484139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r10d
32494139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
32504139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,ebx
32514139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslld	xmm5,xmm4,14
32524139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r11d,r12d
32534139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
32544139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	edi,r15d
32554139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm4,xmm7,xmm6
32564139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,eax
32574139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r11d,r13d
32584139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,ebx
32594139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufd	xmm7,xmm1,250
32604139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
32614139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	edx,r11d
32624139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r11d,edi
32634139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	xmm6,xmm6,11
32644139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,edx
32654139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,r11d
32664139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
32674139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm4,xmm4,xmm5
32684139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r11d,r14d
32694139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,r8d
32704139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
32714139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslld	xmm5,xmm5,11
32724139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,edx
32734139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r9d
32744139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
32754139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm4,xmm4,xmm6
32764139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r11d
32774139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,edx
32784139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,edx
32794139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	xmm6,xmm7,10
32804139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r10d,DWORD[36+rsp]
32814139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	edi,r11d
32824139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r9d
32834139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm4,xmm4,xmm5
32844139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
32854139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,eax
32864139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r10d,r12d
32874139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrlq	xmm7,xmm7,17
32884139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
32894139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r15d,edi
32904139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r11d
32914139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	xmm2,xmm2,xmm4
32924139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r10d,r13d
32934139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,eax
32944139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
32954139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm6,xmm6,xmm7
32964139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ecx,r10d
32974139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r10d,r15d
32984139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,ecx
32994139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrlq	xmm7,xmm7,2
33004139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,r10d
33014139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
33024139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r10d,r14d
33034139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm6,xmm6,xmm7
33044139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,edx
33054139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
33064139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,ecx
33074139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufb	xmm6,xmm6,xmm8
33084139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r8d
33094139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
33104139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r10d
33114139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	xmm2,xmm2,xmm6
33124139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,ecx
33134139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,ecx
33144139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r9d,DWORD[40+rsp]
33154139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufd	xmm7,xmm2,80
33164139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r15d,r10d
33174139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r8d
33184139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
33194139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	xmm6,xmm7,10
33204139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,r11d
33214139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r9d,r12d
33224139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
33234139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrlq	xmm7,xmm7,17
33244139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	edi,r15d
33254139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r10d
33264139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r9d,r13d
33274139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm6,xmm6,xmm7
33284139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,r11d
33294139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
33304139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ebx,r9d
33314139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrlq	xmm7,xmm7,2
33324139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r9d,edi
33334139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,ebx
33344139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,r9d
33354139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm6,xmm6,xmm7
33364139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
33374139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r9d,r14d
33384139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,ecx
33394139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufb	xmm6,xmm6,xmm9
33404139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
33414139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,ebx
33424139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,edx
33434139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	xmm2,xmm2,xmm6
33444139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
33454139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r9d
33464139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,ebx
33474139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	xmm6,xmm2,XMMWORD[64+rbp]
33484139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,ebx
33494139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r8d,DWORD[44+rsp]
33504139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	edi,r9d
33514139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,edx
33524139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
33534139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,r10d
33544139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r8d,r12d
33554139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
33564139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r15d,edi
33574139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r9d
33584139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r8d,r13d
33594139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,r10d
33604139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
33614139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	eax,r8d
33624139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r8d,r15d
33634139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,eax
33644139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,r8d
33654139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	XMMWORD[32+rsp],xmm6
33664139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpalignr	xmm4,xmm0,xmm3,4
33674139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
33684139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r8d,r14d
33694139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,ebx
33704139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpalignr	xmm7,xmm2,xmm1,4
33714139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
33724139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,eax
33734139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,ecx
33744139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	xmm6,xmm4,7
33754139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
33764139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r8d
33774139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,eax
33784139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	xmm3,xmm3,xmm7
33794139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,eax
33804139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	edx,DWORD[48+rsp]
33814139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r15d,r8d
33824139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	xmm7,xmm4,3
33834139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,ecx
33844139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
33854139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,r9d
33864139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslld	xmm5,xmm4,14
33874139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	edx,r12d
33884139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
33894139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	edi,r15d
33904139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm4,xmm7,xmm6
33914139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r8d
33924139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	edx,r13d
33934139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,r9d
33944139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufd	xmm7,xmm2,250
33954139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
33964139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r11d,edx
33974139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	edx,edi
33984139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	xmm6,xmm6,11
33994139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,r11d
34004139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,edx
34014139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
34024139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm4,xmm4,xmm5
34034139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	edx,r14d
34044139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,eax
34054139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
34064139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpslld	xmm5,xmm5,11
34074139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r11d
34084139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,ebx
34094139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
34104139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm4,xmm4,xmm6
34114139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,edx
34124139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,r11d
34134139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r11d
34144139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	xmm6,xmm7,10
34154139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ecx,DWORD[52+rsp]
34164139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	edi,edx
34174139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,ebx
34184139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm4,xmm4,xmm5
34194139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
34204139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,r8d
34214139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ecx,r12d
34224139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrlq	xmm7,xmm7,17
34234139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
34244139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r15d,edi
34254139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,edx
34264139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	xmm3,xmm3,xmm4
34274139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ecx,r13d
34284139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,r8d
34294139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
34304139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm6,xmm6,xmm7
34314139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r10d,ecx
34324139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ecx,r15d
34334139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,r10d
34344139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrlq	xmm7,xmm7,2
34354139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,ecx
34364139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
34374139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	ecx,r14d
34384139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm6,xmm6,xmm7
34394139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,r11d
34404139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
34414139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r10d
34424139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufb	xmm6,xmm6,xmm8
34434139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,eax
34444139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
34454139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,ecx
34464139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	xmm3,xmm3,xmm6
34474139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,r10d
34484139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r10d
34494139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ebx,DWORD[56+rsp]
34504139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufd	xmm7,xmm3,80
34514139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r15d,ecx
34524139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,eax
34534139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
34544139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrld	xmm6,xmm7,10
34554139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,edx
34564139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ebx,r12d
34574139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
34584139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrlq	xmm7,xmm7,17
34594139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	edi,r15d
34604139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,ecx
34614139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ebx,r13d
34624139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm6,xmm6,xmm7
34634139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,edx
34644139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
34654139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r9d,ebx
34664139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpsrlq	xmm7,xmm7,2
34674139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ebx,edi
34684139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,r9d
34694139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,ebx
34704139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpxor	xmm6,xmm6,xmm7
34714139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
34724139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	ebx,r14d
34734139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,r10d
34744139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpshufb	xmm6,xmm6,xmm9
34754139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
34764139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r9d
34774139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r11d
34784139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	xmm3,xmm3,xmm6
34794139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
34804139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,ebx
34814139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,r9d
34824139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vpaddd	xmm6,xmm3,XMMWORD[96+rbp]
34834139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r9d
34844139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	eax,DWORD[60+rsp]
34854139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	edi,ebx
34864139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r11d
34874139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
34884139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,ecx
34894139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	eax,r12d
34904139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
34914139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r15d,edi
34924139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,ebx
34934139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	eax,r13d
34944139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,ecx
34954139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
34964139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r8d,eax
34974139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	eax,r15d
34984139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,r8d
34994139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,eax
35004139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vmovdqa	XMMWORD[48+rsp],xmm6
35014139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	cmp	BYTE[131+rbp],0
35024139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	jne	NEAR $L$avx_00_47
35034139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
35044139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	eax,r14d
35054139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,r9d
35064139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
35074139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r8d
35084139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r10d
35094139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
35104139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,eax
35114139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,r8d
35124139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r8d
35134139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r11d,DWORD[rsp]
35144139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r15d,eax
35154139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r10d
35164139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
35174139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,ebx
35184139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r11d,r12d
35194139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
35204139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	edi,r15d
35214139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,eax
35224139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r11d,r13d
35234139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,ebx
35244139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
35254139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	edx,r11d
35264139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r11d,edi
35274139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,edx
35284139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,r11d
35294139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
35304139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r11d,r14d
35314139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,r8d
35324139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
35334139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,edx
35344139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r9d
35354139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
35364139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r11d
35374139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,edx
35384139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,edx
35394139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r10d,DWORD[4+rsp]
35404139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	edi,r11d
35414139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r9d
35424139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
35434139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,eax
35444139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r10d,r12d
35454139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
35464139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r15d,edi
35474139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r11d
35484139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r10d,r13d
35494139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,eax
35504139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
35514139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ecx,r10d
35524139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r10d,r15d
35534139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,ecx
35544139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,r10d
35554139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
35564139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r10d,r14d
35574139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,edx
35584139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
35594139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,ecx
35604139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r8d
35614139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
35624139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r10d
35634139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,ecx
35644139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,ecx
35654139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r9d,DWORD[8+rsp]
35664139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r15d,r10d
35674139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r8d
35684139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
35694139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,r11d
35704139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r9d,r12d
35714139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
35724139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	edi,r15d
35734139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r10d
35744139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r9d,r13d
35754139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,r11d
35764139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
35774139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ebx,r9d
35784139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r9d,edi
35794139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,ebx
35804139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,r9d
35814139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
35824139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r9d,r14d
35834139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,ecx
35844139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
35854139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,ebx
35864139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,edx
35874139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
35884139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r9d
35894139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,ebx
35904139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,ebx
35914139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r8d,DWORD[12+rsp]
35924139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	edi,r9d
35934139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,edx
35944139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
35954139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,r10d
35964139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r8d,r12d
35974139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
35984139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r15d,edi
35994139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r9d
36004139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r8d,r13d
36014139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,r10d
36024139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
36034139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	eax,r8d
36044139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r8d,r15d
36054139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,eax
36064139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,r8d
36074139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
36084139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r8d,r14d
36094139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,ebx
36104139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
36114139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,eax
36124139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,ecx
36134139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
36144139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r8d
36154139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,eax
36164139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,eax
36174139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	edx,DWORD[16+rsp]
36184139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r15d,r8d
36194139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,ecx
36204139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
36214139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,r9d
36224139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	edx,r12d
36234139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
36244139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	edi,r15d
36254139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r8d
36264139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	edx,r13d
36274139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,r9d
36284139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
36294139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r11d,edx
36304139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	edx,edi
36314139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,r11d
36324139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,edx
36334139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
36344139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	edx,r14d
36354139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,eax
36364139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
36374139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r11d
36384139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,ebx
36394139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
36404139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,edx
36414139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,r11d
36424139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r11d
36434139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ecx,DWORD[20+rsp]
36444139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	edi,edx
36454139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,ebx
36464139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
36474139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,r8d
36484139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ecx,r12d
36494139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
36504139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r15d,edi
36514139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,edx
36524139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ecx,r13d
36534139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,r8d
36544139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
36554139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r10d,ecx
36564139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ecx,r15d
36574139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,r10d
36584139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,ecx
36594139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
36604139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	ecx,r14d
36614139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,r11d
36624139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
36634139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r10d
36644139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,eax
36654139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
36664139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,ecx
36674139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,r10d
36684139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r10d
36694139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ebx,DWORD[24+rsp]
36704139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r15d,ecx
36714139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,eax
36724139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
36734139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,edx
36744139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ebx,r12d
36754139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
36764139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	edi,r15d
36774139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,ecx
36784139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ebx,r13d
36794139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,edx
36804139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
36814139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r9d,ebx
36824139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ebx,edi
36834139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,r9d
36844139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,ebx
36854139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
36864139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	ebx,r14d
36874139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,r10d
36884139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
36894139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r9d
36904139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r11d
36914139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
36924139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,ebx
36934139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,r9d
36944139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r9d
36954139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	eax,DWORD[28+rsp]
36964139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	edi,ebx
36974139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r11d
36984139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
36994139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,ecx
37004139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	eax,r12d
37014139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
37024139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r15d,edi
37034139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,ebx
37044139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	eax,r13d
37054139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,ecx
37064139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
37074139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r8d,eax
37084139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	eax,r15d
37094139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,r8d
37104139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,eax
37114139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
37124139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	eax,r14d
37134139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,r9d
37144139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
37154139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r8d
37164139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r10d
37174139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
37184139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,eax
37194139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,r8d
37204139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r8d
37214139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r11d,DWORD[32+rsp]
37224139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r15d,eax
37234139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r10d
37244139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
37254139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,ebx
37264139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r11d,r12d
37274139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
37284139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	edi,r15d
37294139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,eax
37304139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r11d,r13d
37314139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,ebx
37324139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
37334139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	edx,r11d
37344139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r11d,edi
37354139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,edx
37364139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,r11d
37374139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
37384139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r11d,r14d
37394139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,r8d
37404139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
37414139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,edx
37424139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r9d
37434139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
37444139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r11d
37454139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,edx
37464139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,edx
37474139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r10d,DWORD[36+rsp]
37484139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	edi,r11d
37494139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r9d
37504139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
37514139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,eax
37524139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r10d,r12d
37534139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
37544139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r15d,edi
37554139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r11d
37564139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r10d,r13d
37574139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,eax
37584139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
37594139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ecx,r10d
37604139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r10d,r15d
37614139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,ecx
37624139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,r10d
37634139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
37644139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r10d,r14d
37654139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,edx
37664139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
37674139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,ecx
37684139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r8d
37694139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
37704139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r10d
37714139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,ecx
37724139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,ecx
37734139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r9d,DWORD[40+rsp]
37744139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r15d,r10d
37754139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r8d
37764139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
37774139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,r11d
37784139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r9d,r12d
37794139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
37804139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	edi,r15d
37814139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r10d
37824139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r9d,r13d
37834139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,r11d
37844139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
37854139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ebx,r9d
37864139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r9d,edi
37874139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,ebx
37884139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,r9d
37894139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
37904139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r9d,r14d
37914139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,ecx
37924139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
37934139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,ebx
37944139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,edx
37954139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
37964139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r9d
37974139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,ebx
37984139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,ebx
37994139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r8d,DWORD[44+rsp]
38004139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	edi,r9d
38014139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,edx
38024139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
38034139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,r10d
38044139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r8d,r12d
38054139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
38064139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r15d,edi
38074139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r9d
38084139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r8d,r13d
38094139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,r10d
38104139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
38114139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	eax,r8d
38124139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r8d,r15d
38134139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,eax
38144139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,r8d
38154139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
38164139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r8d,r14d
38174139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,ebx
38184139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
38194139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,eax
38204139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,ecx
38214139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
38224139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r8d
38234139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,eax
38244139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,eax
38254139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	edx,DWORD[48+rsp]
38264139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r15d,r8d
38274139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,ecx
38284139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
38294139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,r9d
38304139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	edx,r12d
38314139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
38324139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	edi,r15d
38334139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,r8d
38344139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	edx,r13d
38354139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,r9d
38364139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
38374139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r11d,edx
38384139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	edx,edi
38394139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,r11d
38404139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,edx
38414139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
38424139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	edx,r14d
38434139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,eax
38444139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
38454139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r11d
38464139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,ebx
38474139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
38484139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,edx
38494139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,r11d
38504139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r11d
38514139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ecx,DWORD[52+rsp]
38524139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	edi,edx
38534139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,ebx
38544139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
38554139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,r8d
38564139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ecx,r12d
38574139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
38584139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r15d,edi
38594139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,edx
38604139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ecx,r13d
38614139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,r8d
38624139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
38634139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r10d,ecx
38644139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ecx,r15d
38654139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,r10d
38664139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,ecx
38674139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
38684139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	ecx,r14d
38694139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,r11d
38704139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
38714139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r10d
38724139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,eax
38734139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
38744139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,ecx
38754139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,r10d
38764139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r10d
38774139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ebx,DWORD[56+rsp]
38784139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r15d,ecx
38794139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,eax
38804139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
38814139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,edx
38824139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ebx,r12d
38834139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
38844139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	edi,r15d
38854139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,ecx
38864139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ebx,r13d
38874139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,edx
38884139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
38894139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r9d,ebx
38904139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ebx,edi
38914139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,r9d
38924139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,ebx
38934139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,14
38944139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	ebx,r14d
38954139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r12d,r10d
38964139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,9
38974139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r9d
38984139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r11d
38994139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,5
39004139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,ebx
39014139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r12d,r9d
39024139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r13d,r9d
39034139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	eax,DWORD[60+rsp]
39044139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	edi,ebx
39054139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r12d,r11d
39064139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,11
39074139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	edi,ecx
39084139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	eax,r12d
39094139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r13d,r13d,6
39104139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	and	r15d,edi
39114139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r14d,ebx
39124139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	eax,r13d
39134139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	xor	r15d,ecx
39144139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	shrd	r14d,r14d,2
39154139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r8d,eax
39164139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	eax,r15d
39174139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	r13d,r8d
39184139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r14d,eax
39194139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	rdi,QWORD[((64+0))+rsp]
39204139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	eax,r14d
39214139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley
39224139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	eax,DWORD[rdi]
39234139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	lea	rsi,[64+rsi]
39244139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ebx,DWORD[4+rdi]
39254139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	ecx,DWORD[8+rdi]
39264139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	edx,DWORD[12+rdi]
39274139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r8d,DWORD[16+rdi]
39284139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r9d,DWORD[20+rdi]
39294139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r10d,DWORD[24+rdi]
39304139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	add	r11d,DWORD[28+rdi]
39314139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley
39324139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	cmp	rsi,QWORD[((64+16))+rsp]
39334139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley
39344139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	DWORD[rdi],eax
39354139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	DWORD[4+rdi],ebx
39364139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	DWORD[8+rdi],ecx
39374139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	DWORD[12+rdi],edx
39384139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	DWORD[16+rdi],r8d
39394139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	DWORD[20+rdi],r9d
39404139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	DWORD[24+rdi],r10d
39414139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	DWORD[28+rdi],r11d
39424139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	jb	NEAR $L$loop_avx
39434139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley
39444139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	rsi,QWORD[((64+24))+rsp]
39454139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	vzeroupper
39464139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movaps	xmm6,XMMWORD[((64+32))+rsp]
39474139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movaps	xmm7,XMMWORD[((64+48))+rsp]
39484139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movaps	xmm8,XMMWORD[((64+64))+rsp]
39494139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	movaps	xmm9,XMMWORD[((64+80))+rsp]
3950a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	mov	r15,QWORD[((-48))+rsi]
3951a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	mov	r14,QWORD[((-40))+rsi]
3952a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	mov	r13,QWORD[((-32))+rsi]
3953a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	mov	r12,QWORD[((-24))+rsi]
3954a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	mov	rbp,QWORD[((-16))+rsi]
3955a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	mov	rbx,QWORD[((-8))+rsi]
3956a94fe0531b3c196ad078174259af2201b2e3a246Robert Sloan	lea	rsp,[rsi]
39574139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley$L$epilogue_avx:
39584139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
39594139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	mov	rsi,QWORD[16+rsp]
39604139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	DB	0F3h,0C3h		;repret
39614139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley$L$SEH_end_sha256_block_data_order_avx:
3962e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam LangleyEXTERN	__imp_RtlVirtualUnwind
3963d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
3964d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyALIGN	16
3965e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langleyse_handler:
3966d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	push	rsi
3967d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	push	rdi
3968d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	push	rbx
3969d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	push	rbp
3970d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	push	r12
3971d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	push	r13
3972d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	push	r14
3973d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	push	r15
3974d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pushfq
3975d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	sub	rsp,64
3976d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
3977e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	rax,QWORD[120+r8]
3978e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	rbx,QWORD[248+r8]
3979d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
3980e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	rsi,QWORD[8+r9]
3981e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r11,QWORD[56+r9]
3982d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
3983e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r10d,DWORD[r11]
3984e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	r10,[r10*1+rsi]
3985d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	cmp	rbx,r10
3986e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	jb	NEAR $L$in_prologue
3987d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
3988e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	rax,QWORD[152+r8]
3989d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
3990e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r10d,DWORD[4+r11]
3991e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	r10,[r10*1+rsi]
3992d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	cmp	rbx,r10
3993e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	jae	NEAR $L$in_prologue
3994d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	rsi,rax
3995e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	rax,QWORD[((64+24))+rax]
3996e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley
3997e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	rbx,QWORD[((-8))+rax]
3998e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	rbp,QWORD[((-16))+rax]
3999e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r12,QWORD[((-24))+rax]
4000e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r13,QWORD[((-32))+rax]
4001e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r14,QWORD[((-40))+rax]
4002e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r15,QWORD[((-48))+rax]
4003e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	QWORD[144+r8],rbx
4004e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	QWORD[160+r8],rbp
4005e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	QWORD[216+r8],r12
4006e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	QWORD[224+r8],r13
4007e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	QWORD[232+r8],r14
4008e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	QWORD[240+r8],r15
4009e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley
4010e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	r10,[$L$epilogue]
4011d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	cmp	rbx,r10
4012e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	jb	NEAR $L$in_prologue
4013d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
4014e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rsi,[((64+32))+rsi]
4015e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	rdi,[512+r8]
4016d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	ecx,8
4017e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0xa548f3fc
4018d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
4019e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley$L$in_prologue:
4020e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	rdi,QWORD[8+rax]
4021e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	rsi,QWORD[16+rax]
4022e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	QWORD[152+r8],rax
4023e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	QWORD[168+r8],rsi
4024e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	QWORD[176+r8],rdi
4025d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
4026e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	rdi,QWORD[40+r9]
4027d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	rsi,r8
4028d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	ecx,154
4029e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	0xa548f3fc
4030d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
4031d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	rsi,r9
4032d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	xor	rcx,rcx
4033e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	rdx,QWORD[8+rsi]
4034e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r8,QWORD[rsi]
4035e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r9,QWORD[16+rsi]
4036e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	r10,QWORD[40+rsi]
4037e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	r11,[56+rsi]
4038e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	lea	r12,[24+rsi]
4039e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	QWORD[32+rsp],r10
4040e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	QWORD[40+rsp],r11
4041e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	QWORD[48+rsp],r12
4042e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	mov	QWORD[56+rsp],rcx
4043e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	call	QWORD[__imp_RtlVirtualUnwind]
4044d9e397b599b13d642138480a28c14db7a136bf0Adam Langley
4045d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	mov	eax,1
4046d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	add	rsp,64
4047d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	popfq
4048d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pop	r15
4049d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pop	r14
4050d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pop	r13
4051d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pop	r12
4052d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pop	rbp
4053d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pop	rbx
4054d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pop	rdi
4055d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	pop	rsi
4056d9e397b599b13d642138480a28c14db7a136bf0Adam Langley	DB	0F3h,0C3h		;repret
4057e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley
4058e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langleysection	.pdata rdata align=4
4059d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyALIGN	4
4060e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	$L$SEH_begin_sha256_block_data_order wrt ..imagebase
4061e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	$L$SEH_end_sha256_block_data_order wrt ..imagebase
4062e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	$L$SEH_info_sha256_block_data_order wrt ..imagebase
4063e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	$L$SEH_begin_sha256_block_data_order_ssse3 wrt ..imagebase
4064e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	$L$SEH_end_sha256_block_data_order_ssse3 wrt ..imagebase
4065e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	$L$SEH_info_sha256_block_data_order_ssse3 wrt ..imagebase
40664139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	DD	$L$SEH_begin_sha256_block_data_order_avx wrt ..imagebase
40674139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	DD	$L$SEH_end_sha256_block_data_order_avx wrt ..imagebase
40684139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	DD	$L$SEH_info_sha256_block_data_order_avx wrt ..imagebase
4069e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langleysection	.xdata rdata align=8
4070d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyALIGN	8
4071e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley$L$SEH_info_sha256_block_data_order:
4072d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyDB	9,0,0,0
4073e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	se_handler wrt ..imagebase
4074e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	$L$prologue wrt ..imagebase,$L$epilogue wrt ..imagebase
4075e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley$L$SEH_info_sha256_block_data_order_ssse3:
4076d9e397b599b13d642138480a28c14db7a136bf0Adam LangleyDB	9,0,0,0
4077e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	se_handler wrt ..imagebase
4078e9ada863a7b3e81f5d2b1e3bdd2305da902a87f5Adam Langley	DD	$L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 wrt ..imagebase
40794139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley$L$SEH_info_sha256_block_data_order_avx:
40804139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam LangleyDB	9,0,0,0
40814139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	DD	se_handler wrt ..imagebase
40824139edb02e59e7ad48e0a8f4c02e45923bc8a344Adam Langley	DD	$L$prologue_avx wrt ..imagebase,$L$epilogue_avx wrt ..imagebase
4083