1
2# qhasm: int32 a
3
4# qhasm: int32 p
5
6# qhasm: int32 s
7
8# qhasm: int32 t
9
10# qhasm: int32 w
11
12# qhasm: int32 r
13
14# qhasm: int32 v
15
16# qhasm: stack32 arg1
17
18# qhasm: stack32 arg2
19
20# qhasm: stack32 arg3
21
22# qhasm: stack32 arg4
23
24# qhasm: input arg1
25
26# qhasm: input arg2
27
28# qhasm: input arg3
29
30# qhasm: input arg4
31
32# qhasm: int32 eax
33
34# qhasm: int32 ebx
35
36# qhasm: int32 esi
37
38# qhasm: int32 edi
39
40# qhasm: int32 ebp
41
42# qhasm: caller eax
43
44# qhasm: caller ebx
45
46# qhasm: caller esi
47
48# qhasm: caller edi
49
50# qhasm: caller ebp
51
52# qhasm: int32 k
53
54# qhasm: int32 kbits
55
56# qhasm: int32 iv
57
58# qhasm: int32 i
59
60# qhasm: stack32 x_backup
61
62# qhasm: int32 x
63
64# qhasm: stack32 m_backup
65
66# qhasm: int32 m
67
68# qhasm: stack32 out_backup
69
70# qhasm: int32 out
71
72# qhasm: stack32 bytes_backup
73
74# qhasm: int32 bytes
75
76# qhasm: stack32 eax_stack
77
78# qhasm: stack32 ebx_stack
79
80# qhasm: stack32 esi_stack
81
82# qhasm: stack32 edi_stack
83
84# qhasm: stack32 ebp_stack
85
86# qhasm: int32 in0
87
88# qhasm: int32 in1
89
90# qhasm: int32 in2
91
92# qhasm: int32 in3
93
94# qhasm: int32 in4
95
96# qhasm: int32 in5
97
98# qhasm: int32 in6
99
100# qhasm: int32 in7
101
102# qhasm: int32 in8
103
104# qhasm: int32 in9
105
106# qhasm: int32 in10
107
108# qhasm: int32 in11
109
110# qhasm: int32 in12
111
112# qhasm: int32 in13
113
114# qhasm: int32 in14
115
116# qhasm: int32 in15
117
118# qhasm: stack32 x0
119
120# qhasm: stack32 x1
121
122# qhasm: stack32 x2
123
124# qhasm: stack32 x3
125
126# qhasm: stack32 x4
127
128# qhasm: stack32 x5
129
130# qhasm: stack32 x6
131
132# qhasm: stack32 x7
133
134# qhasm: stack32 x8
135
136# qhasm: stack32 x9
137
138# qhasm: stack32 x10
139
140# qhasm: stack32 x11
141
142# qhasm: stack32 x12
143
144# qhasm: stack32 x13
145
146# qhasm: stack32 x14
147
148# qhasm: stack32 x15
149
150# qhasm: stack32 j0
151
152# qhasm: stack32 j1
153
154# qhasm: stack32 j2
155
156# qhasm: stack32 j3
157
158# qhasm: stack32 j4
159
160# qhasm: stack32 j5
161
162# qhasm: stack32 j6
163
164# qhasm: stack32 j7
165
166# qhasm: stack32 j8
167
168# qhasm: stack32 j9
169
170# qhasm: stack32 j10
171
172# qhasm: stack32 j11
173
174# qhasm: stack32 j12
175
176# qhasm: stack32 j13
177
178# qhasm: stack32 j14
179
180# qhasm: stack32 j15
181
182# qhasm: stack512 tmp
183
184# qhasm: stack32 ctarget
185
186# qhasm: enter ECRYPT_keystream_bytes
187.text
188.p2align 5
189.globl _ECRYPT_keystream_bytes
190.globl ECRYPT_keystream_bytes
191_ECRYPT_keystream_bytes:
192ECRYPT_keystream_bytes:
193mov %esp,%eax
194and $31,%eax
195add $256,%eax
196sub %eax,%esp
197
198# qhasm: eax_stack = eax
199# asm 1: movl <eax=int32#1,>eax_stack=stack32#1
200# asm 2: movl <eax=%eax,>eax_stack=0(%esp)
201movl %eax,0(%esp)
202
203# qhasm: ebx_stack = ebx
204# asm 1: movl <ebx=int32#4,>ebx_stack=stack32#2
205# asm 2: movl <ebx=%ebx,>ebx_stack=4(%esp)
206movl %ebx,4(%esp)
207
208# qhasm: esi_stack = esi
209# asm 1: movl <esi=int32#5,>esi_stack=stack32#3
210# asm 2: movl <esi=%esi,>esi_stack=8(%esp)
211movl %esi,8(%esp)
212
213# qhasm: edi_stack = edi
214# asm 1: movl <edi=int32#6,>edi_stack=stack32#4
215# asm 2: movl <edi=%edi,>edi_stack=12(%esp)
216movl %edi,12(%esp)
217
218# qhasm: ebp_stack = ebp
219# asm 1: movl <ebp=int32#7,>ebp_stack=stack32#5
220# asm 2: movl <ebp=%ebp,>ebp_stack=16(%esp)
221movl %ebp,16(%esp)
222
223# qhasm: x = arg1
224# asm 1: movl <arg1=stack32#-1,>x=int32#3
225# asm 2: movl <arg1=4(%esp,%eax),>x=%edx
226movl 4(%esp,%eax),%edx
227
228# qhasm: m = arg2
229# asm 1: movl <arg2=stack32#-2,>m=int32#5
230# asm 2: movl <arg2=8(%esp,%eax),>m=%esi
231movl 8(%esp,%eax),%esi
232
233# qhasm: out = m
234# asm 1: mov  <m=int32#5,>out=int32#6
235# asm 2: mov  <m=%esi,>out=%edi
236mov  %esi,%edi
237
238# qhasm: bytes = arg3
239# asm 1: movl <arg3=stack32#-3,>bytes=int32#4
240# asm 2: movl <arg3=12(%esp,%eax),>bytes=%ebx
241movl 12(%esp,%eax),%ebx
242
243# qhasm:               unsigned>? bytes - 0
244# asm 1: cmp  $0,<bytes=int32#4
245# asm 2: cmp  $0,<bytes=%ebx
246cmp  $0,%ebx
247# comment:fp stack unchanged by jump
248
249# qhasm: goto done if !unsigned>
250jbe ._done
251
252# qhasm: a = 0
253# asm 1: mov  $0,>a=int32#1
254# asm 2: mov  $0,>a=%eax
255mov  $0,%eax
256
257# qhasm: i = bytes
258# asm 1: mov  <bytes=int32#4,>i=int32#2
259# asm 2: mov  <bytes=%ebx,>i=%ecx
260mov  %ebx,%ecx
261
262# qhasm: while (i) { *out++ = a; --i }
263rep stosb
264
265# qhasm: out -= bytes
266# asm 1: sub  <bytes=int32#4,<out=int32#6
267# asm 2: sub  <bytes=%ebx,<out=%edi
268sub  %ebx,%edi
269
270# qhasm: x0 = a
271# asm 1: movl <a=int32#1,>x0=stack32#6
272# asm 2: movl <a=%eax,>x0=20(%esp)
273movl %eax,20(%esp)
274
275# qhasm: x1 = a
276# asm 1: movl <a=int32#1,>x1=stack32#7
277# asm 2: movl <a=%eax,>x1=24(%esp)
278movl %eax,24(%esp)
279
280# qhasm: x2 = a
281# asm 1: movl <a=int32#1,>x2=stack32#8
282# asm 2: movl <a=%eax,>x2=28(%esp)
283movl %eax,28(%esp)
284
285# qhasm: x3 = a
286# asm 1: movl <a=int32#1,>x3=stack32#9
287# asm 2: movl <a=%eax,>x3=32(%esp)
288movl %eax,32(%esp)
289
290# qhasm: x4 = a
291# asm 1: movl <a=int32#1,>x4=stack32#10
292# asm 2: movl <a=%eax,>x4=36(%esp)
293movl %eax,36(%esp)
294
295# qhasm: x5 = a
296# asm 1: movl <a=int32#1,>x5=stack32#11
297# asm 2: movl <a=%eax,>x5=40(%esp)
298movl %eax,40(%esp)
299
300# qhasm: x6 = a
301# asm 1: movl <a=int32#1,>x6=stack32#12
302# asm 2: movl <a=%eax,>x6=44(%esp)
303movl %eax,44(%esp)
304
305# qhasm: x7 = a
306# asm 1: movl <a=int32#1,>x7=stack32#13
307# asm 2: movl <a=%eax,>x7=48(%esp)
308movl %eax,48(%esp)
309
310# qhasm: x8 = a
311# asm 1: movl <a=int32#1,>x8=stack32#14
312# asm 2: movl <a=%eax,>x8=52(%esp)
313movl %eax,52(%esp)
314
315# qhasm: x9 = a
316# asm 1: movl <a=int32#1,>x9=stack32#15
317# asm 2: movl <a=%eax,>x9=56(%esp)
318movl %eax,56(%esp)
319
320# qhasm: x10 = a
321# asm 1: movl <a=int32#1,>x10=stack32#16
322# asm 2: movl <a=%eax,>x10=60(%esp)
323movl %eax,60(%esp)
324
325# qhasm: x11 = a
326# asm 1: movl <a=int32#1,>x11=stack32#17
327# asm 2: movl <a=%eax,>x11=64(%esp)
328movl %eax,64(%esp)
329
330# qhasm: x12 = a
331# asm 1: movl <a=int32#1,>x12=stack32#18
332# asm 2: movl <a=%eax,>x12=68(%esp)
333movl %eax,68(%esp)
334
335# qhasm: x13 = a
336# asm 1: movl <a=int32#1,>x13=stack32#19
337# asm 2: movl <a=%eax,>x13=72(%esp)
338movl %eax,72(%esp)
339
340# qhasm: x14 = a
341# asm 1: movl <a=int32#1,>x14=stack32#20
342# asm 2: movl <a=%eax,>x14=76(%esp)
343movl %eax,76(%esp)
344
345# qhasm: x15 = a
346# asm 1: movl <a=int32#1,>x15=stack32#21
347# asm 2: movl <a=%eax,>x15=80(%esp)
348movl %eax,80(%esp)
349# comment:fp stack unchanged by jump
350
351# qhasm: goto start
352jmp ._start
353
354# qhasm: enter ECRYPT_decrypt_bytes
355.text
356.p2align 5
357.globl _ECRYPT_decrypt_bytes
358.globl ECRYPT_decrypt_bytes
359_ECRYPT_decrypt_bytes:
360ECRYPT_decrypt_bytes:
361mov %esp,%eax
362and $31,%eax
363add $256,%eax
364sub %eax,%esp
365
366# qhasm: eax_stack = eax
367# asm 1: movl <eax=int32#1,>eax_stack=stack32#1
368# asm 2: movl <eax=%eax,>eax_stack=0(%esp)
369movl %eax,0(%esp)
370
371# qhasm: ebx_stack = ebx
372# asm 1: movl <ebx=int32#4,>ebx_stack=stack32#2
373# asm 2: movl <ebx=%ebx,>ebx_stack=4(%esp)
374movl %ebx,4(%esp)
375
376# qhasm: esi_stack = esi
377# asm 1: movl <esi=int32#5,>esi_stack=stack32#3
378# asm 2: movl <esi=%esi,>esi_stack=8(%esp)
379movl %esi,8(%esp)
380
381# qhasm: edi_stack = edi
382# asm 1: movl <edi=int32#6,>edi_stack=stack32#4
383# asm 2: movl <edi=%edi,>edi_stack=12(%esp)
384movl %edi,12(%esp)
385
386# qhasm: ebp_stack = ebp
387# asm 1: movl <ebp=int32#7,>ebp_stack=stack32#5
388# asm 2: movl <ebp=%ebp,>ebp_stack=16(%esp)
389movl %ebp,16(%esp)
390
391# qhasm: x = arg1
392# asm 1: movl <arg1=stack32#-1,>x=int32#3
393# asm 2: movl <arg1=4(%esp,%eax),>x=%edx
394movl 4(%esp,%eax),%edx
395
396# qhasm: m = arg2
397# asm 1: movl <arg2=stack32#-2,>m=int32#5
398# asm 2: movl <arg2=8(%esp,%eax),>m=%esi
399movl 8(%esp,%eax),%esi
400
401# qhasm: out = arg3
402# asm 1: movl <arg3=stack32#-3,>out=int32#6
403# asm 2: movl <arg3=12(%esp,%eax),>out=%edi
404movl 12(%esp,%eax),%edi
405
406# qhasm: bytes = arg4
407# asm 1: movl <arg4=stack32#-4,>bytes=int32#4
408# asm 2: movl <arg4=16(%esp,%eax),>bytes=%ebx
409movl 16(%esp,%eax),%ebx
410
411# qhasm:               unsigned>? bytes - 0
412# asm 1: cmp  $0,<bytes=int32#4
413# asm 2: cmp  $0,<bytes=%ebx
414cmp  $0,%ebx
415# comment:fp stack unchanged by jump
416
417# qhasm: goto done if !unsigned>
418jbe ._done
419# comment:fp stack unchanged by jump
420
421# qhasm: goto start
422jmp ._start
423
424# qhasm: enter ECRYPT_encrypt_bytes
425.text
426.p2align 5
427.globl _ECRYPT_encrypt_bytes
428.globl ECRYPT_encrypt_bytes
429_ECRYPT_encrypt_bytes:
430ECRYPT_encrypt_bytes:
431mov %esp,%eax
432and $31,%eax
433add $256,%eax
434sub %eax,%esp
435
436# qhasm: eax_stack = eax
437# asm 1: movl <eax=int32#1,>eax_stack=stack32#1
438# asm 2: movl <eax=%eax,>eax_stack=0(%esp)
439movl %eax,0(%esp)
440
441# qhasm: ebx_stack = ebx
442# asm 1: movl <ebx=int32#4,>ebx_stack=stack32#2
443# asm 2: movl <ebx=%ebx,>ebx_stack=4(%esp)
444movl %ebx,4(%esp)
445
446# qhasm: esi_stack = esi
447# asm 1: movl <esi=int32#5,>esi_stack=stack32#3
448# asm 2: movl <esi=%esi,>esi_stack=8(%esp)
449movl %esi,8(%esp)
450
451# qhasm: edi_stack = edi
452# asm 1: movl <edi=int32#6,>edi_stack=stack32#4
453# asm 2: movl <edi=%edi,>edi_stack=12(%esp)
454movl %edi,12(%esp)
455
456# qhasm: ebp_stack = ebp
457# asm 1: movl <ebp=int32#7,>ebp_stack=stack32#5
458# asm 2: movl <ebp=%ebp,>ebp_stack=16(%esp)
459movl %ebp,16(%esp)
460
461# qhasm: x = arg1
462# asm 1: movl <arg1=stack32#-1,>x=int32#3
463# asm 2: movl <arg1=4(%esp,%eax),>x=%edx
464movl 4(%esp,%eax),%edx
465
466# qhasm: m = arg2
467# asm 1: movl <arg2=stack32#-2,>m=int32#5
468# asm 2: movl <arg2=8(%esp,%eax),>m=%esi
469movl 8(%esp,%eax),%esi
470
471# qhasm: out = arg3
472# asm 1: movl <arg3=stack32#-3,>out=int32#6
473# asm 2: movl <arg3=12(%esp,%eax),>out=%edi
474movl 12(%esp,%eax),%edi
475
476# qhasm: bytes = arg4
477# asm 1: movl <arg4=stack32#-4,>bytes=int32#4
478# asm 2: movl <arg4=16(%esp,%eax),>bytes=%ebx
479movl 16(%esp,%eax),%ebx
480
481# qhasm:               unsigned>? bytes - 0
482# asm 1: cmp  $0,<bytes=int32#4
483# asm 2: cmp  $0,<bytes=%ebx
484cmp  $0,%ebx
485# comment:fp stack unchanged by jump
486
487# qhasm: goto done if !unsigned>
488jbe ._done
489# comment:fp stack unchanged by fallthrough
490
491# qhasm: start:
492._start:
493
494# qhasm: in0 = *(uint32 *) (x + 0)
495# asm 1: movl 0(<x=int32#3),>in0=int32#1
496# asm 2: movl 0(<x=%edx),>in0=%eax
497movl 0(%edx),%eax
498
499# qhasm: in1 = *(uint32 *) (x + 4)
500# asm 1: movl 4(<x=int32#3),>in1=int32#2
501# asm 2: movl 4(<x=%edx),>in1=%ecx
502movl 4(%edx),%ecx
503
504# qhasm: in2 = *(uint32 *) (x + 8)
505# asm 1: movl 8(<x=int32#3),>in2=int32#7
506# asm 2: movl 8(<x=%edx),>in2=%ebp
507movl 8(%edx),%ebp
508
509# qhasm: j0 = in0
510# asm 1: movl <in0=int32#1,>j0=stack32#22
511# asm 2: movl <in0=%eax,>j0=84(%esp)
512movl %eax,84(%esp)
513
514# qhasm: in3 = *(uint32 *) (x + 12)
515# asm 1: movl 12(<x=int32#3),>in3=int32#1
516# asm 2: movl 12(<x=%edx),>in3=%eax
517movl 12(%edx),%eax
518
519# qhasm: j1 = in1
520# asm 1: movl <in1=int32#2,>j1=stack32#23
521# asm 2: movl <in1=%ecx,>j1=88(%esp)
522movl %ecx,88(%esp)
523
524# qhasm: in4 = *(uint32 *) (x + 16)
525# asm 1: movl 16(<x=int32#3),>in4=int32#2
526# asm 2: movl 16(<x=%edx),>in4=%ecx
527movl 16(%edx),%ecx
528
529# qhasm: j2 = in2
530# asm 1: movl <in2=int32#7,>j2=stack32#24
531# asm 2: movl <in2=%ebp,>j2=92(%esp)
532movl %ebp,92(%esp)
533
534# qhasm: in5 = *(uint32 *) (x + 20)
535# asm 1: movl 20(<x=int32#3),>in5=int32#7
536# asm 2: movl 20(<x=%edx),>in5=%ebp
537movl 20(%edx),%ebp
538
539# qhasm: j3 = in3
540# asm 1: movl <in3=int32#1,>j3=stack32#25
541# asm 2: movl <in3=%eax,>j3=96(%esp)
542movl %eax,96(%esp)
543
544# qhasm: in6 = *(uint32 *) (x + 24)
545# asm 1: movl 24(<x=int32#3),>in6=int32#1
546# asm 2: movl 24(<x=%edx),>in6=%eax
547movl 24(%edx),%eax
548
549# qhasm: j4 = in4
550# asm 1: movl <in4=int32#2,>j4=stack32#26
551# asm 2: movl <in4=%ecx,>j4=100(%esp)
552movl %ecx,100(%esp)
553
554# qhasm: in7 = *(uint32 *) (x + 28)
555# asm 1: movl 28(<x=int32#3),>in7=int32#2
556# asm 2: movl 28(<x=%edx),>in7=%ecx
557movl 28(%edx),%ecx
558
559# qhasm: j5 = in5
560# asm 1: movl <in5=int32#7,>j5=stack32#27
561# asm 2: movl <in5=%ebp,>j5=104(%esp)
562movl %ebp,104(%esp)
563
564# qhasm: in8 = *(uint32 *) (x + 32)
565# asm 1: movl 32(<x=int32#3),>in8=int32#7
566# asm 2: movl 32(<x=%edx),>in8=%ebp
567movl 32(%edx),%ebp
568
569# qhasm: j6 = in6
570# asm 1: movl <in6=int32#1,>j6=stack32#28
571# asm 2: movl <in6=%eax,>j6=108(%esp)
572movl %eax,108(%esp)
573
574# qhasm: in9 = *(uint32 *) (x + 36)
575# asm 1: movl 36(<x=int32#3),>in9=int32#1
576# asm 2: movl 36(<x=%edx),>in9=%eax
577movl 36(%edx),%eax
578
579# qhasm: j7 = in7
580# asm 1: movl <in7=int32#2,>j7=stack32#29
581# asm 2: movl <in7=%ecx,>j7=112(%esp)
582movl %ecx,112(%esp)
583
584# qhasm: in10 = *(uint32 *) (x + 40)
585# asm 1: movl 40(<x=int32#3),>in10=int32#2
586# asm 2: movl 40(<x=%edx),>in10=%ecx
587movl 40(%edx),%ecx
588
589# qhasm: j8 = in8
590# asm 1: movl <in8=int32#7,>j8=stack32#30
591# asm 2: movl <in8=%ebp,>j8=116(%esp)
592movl %ebp,116(%esp)
593
594# qhasm: in11 = *(uint32 *) (x + 44)
595# asm 1: movl 44(<x=int32#3),>in11=int32#7
596# asm 2: movl 44(<x=%edx),>in11=%ebp
597movl 44(%edx),%ebp
598
599# qhasm: j9 = in9
600# asm 1: movl <in9=int32#1,>j9=stack32#31
601# asm 2: movl <in9=%eax,>j9=120(%esp)
602movl %eax,120(%esp)
603
604# qhasm: in12 = *(uint32 *) (x + 48)
605# asm 1: movl 48(<x=int32#3),>in12=int32#1
606# asm 2: movl 48(<x=%edx),>in12=%eax
607movl 48(%edx),%eax
608
609# qhasm: j10 = in10
610# asm 1: movl <in10=int32#2,>j10=stack32#32
611# asm 2: movl <in10=%ecx,>j10=124(%esp)
612movl %ecx,124(%esp)
613
614# qhasm: in13 = *(uint32 *) (x + 52)
615# asm 1: movl 52(<x=int32#3),>in13=int32#2
616# asm 2: movl 52(<x=%edx),>in13=%ecx
617movl 52(%edx),%ecx
618
619# qhasm: j11 = in11
620# asm 1: movl <in11=int32#7,>j11=stack32#33
621# asm 2: movl <in11=%ebp,>j11=128(%esp)
622movl %ebp,128(%esp)
623
624# qhasm: in14 = *(uint32 *) (x + 56)
625# asm 1: movl 56(<x=int32#3),>in14=int32#7
626# asm 2: movl 56(<x=%edx),>in14=%ebp
627movl 56(%edx),%ebp
628
629# qhasm: j12 = in12
630# asm 1: movl <in12=int32#1,>j12=stack32#34
631# asm 2: movl <in12=%eax,>j12=132(%esp)
632movl %eax,132(%esp)
633
634# qhasm: in15 = *(uint32 *) (x + 60)
635# asm 1: movl 60(<x=int32#3),>in15=int32#1
636# asm 2: movl 60(<x=%edx),>in15=%eax
637movl 60(%edx),%eax
638
639# qhasm: j13 = in13
640# asm 1: movl <in13=int32#2,>j13=stack32#35
641# asm 2: movl <in13=%ecx,>j13=136(%esp)
642movl %ecx,136(%esp)
643
644# qhasm: j14 = in14
645# asm 1: movl <in14=int32#7,>j14=stack32#36
646# asm 2: movl <in14=%ebp,>j14=140(%esp)
647movl %ebp,140(%esp)
648
649# qhasm: j15 = in15
650# asm 1: movl <in15=int32#1,>j15=stack32#37
651# asm 2: movl <in15=%eax,>j15=144(%esp)
652movl %eax,144(%esp)
653
654# qhasm: x_backup = x
655# asm 1: movl <x=int32#3,>x_backup=stack32#38
656# asm 2: movl <x=%edx,>x_backup=148(%esp)
657movl %edx,148(%esp)
658
659# qhasm: bytesatleast1:
660._bytesatleast1:
661
662# qhasm:                   unsigned<? bytes - 64
663# asm 1: cmp  $64,<bytes=int32#4
664# asm 2: cmp  $64,<bytes=%ebx
665cmp  $64,%ebx
666# comment:fp stack unchanged by jump
667
668# qhasm:   goto nocopy if !unsigned<
669jae ._nocopy
670
671# qhasm:     ctarget = out
672# asm 1: movl <out=int32#6,>ctarget=stack32#39
673# asm 2: movl <out=%edi,>ctarget=152(%esp)
674movl %edi,152(%esp)
675
676# qhasm:     out = &tmp
677# asm 1: leal <tmp=stack512#1,>out=int32#6
678# asm 2: leal <tmp=192(%esp),>out=%edi
679leal 192(%esp),%edi
680
681# qhasm:     i = bytes
682# asm 1: mov  <bytes=int32#4,>i=int32#2
683# asm 2: mov  <bytes=%ebx,>i=%ecx
684mov  %ebx,%ecx
685
686# qhasm:     while (i) { *out++ = *m++; --i }
687rep movsb
688
689# qhasm:     out = &tmp
690# asm 1: leal <tmp=stack512#1,>out=int32#6
691# asm 2: leal <tmp=192(%esp),>out=%edi
692leal 192(%esp),%edi
693
694# qhasm:     m = &tmp
695# asm 1: leal <tmp=stack512#1,>m=int32#5
696# asm 2: leal <tmp=192(%esp),>m=%esi
697leal 192(%esp),%esi
698# comment:fp stack unchanged by fallthrough
699
700# qhasm:   nocopy:
701._nocopy:
702
703# qhasm:   out_backup = out
704# asm 1: movl <out=int32#6,>out_backup=stack32#40
705# asm 2: movl <out=%edi,>out_backup=156(%esp)
706movl %edi,156(%esp)
707
708# qhasm:   m_backup = m
709# asm 1: movl <m=int32#5,>m_backup=stack32#41
710# asm 2: movl <m=%esi,>m_backup=160(%esp)
711movl %esi,160(%esp)
712
713# qhasm:   bytes_backup = bytes
714# asm 1: movl <bytes=int32#4,>bytes_backup=stack32#42
715# asm 2: movl <bytes=%ebx,>bytes_backup=164(%esp)
716movl %ebx,164(%esp)
717
718# qhasm:   in0 = j0
719# asm 1: movl <j0=stack32#22,>in0=int32#1
720# asm 2: movl <j0=84(%esp),>in0=%eax
721movl 84(%esp),%eax
722
723# qhasm:   in1 = j1
724# asm 1: movl <j1=stack32#23,>in1=int32#2
725# asm 2: movl <j1=88(%esp),>in1=%ecx
726movl 88(%esp),%ecx
727
728# qhasm:   in2 = j2
729# asm 1: movl <j2=stack32#24,>in2=int32#3
730# asm 2: movl <j2=92(%esp),>in2=%edx
731movl 92(%esp),%edx
732
733# qhasm:   in3 = j3
734# asm 1: movl <j3=stack32#25,>in3=int32#4
735# asm 2: movl <j3=96(%esp),>in3=%ebx
736movl 96(%esp),%ebx
737
738# qhasm:   x0 = in0
739# asm 1: movl <in0=int32#1,>x0=stack32#6
740# asm 2: movl <in0=%eax,>x0=20(%esp)
741movl %eax,20(%esp)
742
743# qhasm:   x1 = in1
744# asm 1: movl <in1=int32#2,>x1=stack32#7
745# asm 2: movl <in1=%ecx,>x1=24(%esp)
746movl %ecx,24(%esp)
747
748# qhasm:   x2 = in2
749# asm 1: movl <in2=int32#3,>x2=stack32#8
750# asm 2: movl <in2=%edx,>x2=28(%esp)
751movl %edx,28(%esp)
752
753# qhasm:   x3 = in3
754# asm 1: movl <in3=int32#4,>x3=stack32#9
755# asm 2: movl <in3=%ebx,>x3=32(%esp)
756movl %ebx,32(%esp)
757
758# qhasm:   in4 = j4
759# asm 1: movl <j4=stack32#26,>in4=int32#1
760# asm 2: movl <j4=100(%esp),>in4=%eax
761movl 100(%esp),%eax
762
763# qhasm:   in5 = j5
764# asm 1: movl <j5=stack32#27,>in5=int32#2
765# asm 2: movl <j5=104(%esp),>in5=%ecx
766movl 104(%esp),%ecx
767
768# qhasm:   in6 = j6
769# asm 1: movl <j6=stack32#28,>in6=int32#3
770# asm 2: movl <j6=108(%esp),>in6=%edx
771movl 108(%esp),%edx
772
773# qhasm:   in7 = j7
774# asm 1: movl <j7=stack32#29,>in7=int32#4
775# asm 2: movl <j7=112(%esp),>in7=%ebx
776movl 112(%esp),%ebx
777
778# qhasm:   x4 = in4
779# asm 1: movl <in4=int32#1,>x4=stack32#10
780# asm 2: movl <in4=%eax,>x4=36(%esp)
781movl %eax,36(%esp)
782
783# qhasm:   x5 = in5
784# asm 1: movl <in5=int32#2,>x5=stack32#11
785# asm 2: movl <in5=%ecx,>x5=40(%esp)
786movl %ecx,40(%esp)
787
788# qhasm:   x6 = in6
789# asm 1: movl <in6=int32#3,>x6=stack32#12
790# asm 2: movl <in6=%edx,>x6=44(%esp)
791movl %edx,44(%esp)
792
793# qhasm:   x7 = in7
794# asm 1: movl <in7=int32#4,>x7=stack32#13
795# asm 2: movl <in7=%ebx,>x7=48(%esp)
796movl %ebx,48(%esp)
797
798# qhasm:   in8 = j8
799# asm 1: movl <j8=stack32#30,>in8=int32#1
800# asm 2: movl <j8=116(%esp),>in8=%eax
801movl 116(%esp),%eax
802
803# qhasm:   in9 = j9
804# asm 1: movl <j9=stack32#31,>in9=int32#2
805# asm 2: movl <j9=120(%esp),>in9=%ecx
806movl 120(%esp),%ecx
807
808# qhasm:   in10 = j10
809# asm 1: movl <j10=stack32#32,>in10=int32#3
810# asm 2: movl <j10=124(%esp),>in10=%edx
811movl 124(%esp),%edx
812
813# qhasm:   in11 = j11
814# asm 1: movl <j11=stack32#33,>in11=int32#4
815# asm 2: movl <j11=128(%esp),>in11=%ebx
816movl 128(%esp),%ebx
817
818# qhasm:   x8 = in8
819# asm 1: movl <in8=int32#1,>x8=stack32#14
820# asm 2: movl <in8=%eax,>x8=52(%esp)
821movl %eax,52(%esp)
822
823# qhasm:   x9 = in9
824# asm 1: movl <in9=int32#2,>x9=stack32#15
825# asm 2: movl <in9=%ecx,>x9=56(%esp)
826movl %ecx,56(%esp)
827
828# qhasm:   x10 = in10
829# asm 1: movl <in10=int32#3,>x10=stack32#16
830# asm 2: movl <in10=%edx,>x10=60(%esp)
831movl %edx,60(%esp)
832
833# qhasm:   x11 = in11
834# asm 1: movl <in11=int32#4,>x11=stack32#17
835# asm 2: movl <in11=%ebx,>x11=64(%esp)
836movl %ebx,64(%esp)
837
838# qhasm:   in12 = j12
839# asm 1: movl <j12=stack32#34,>in12=int32#1
840# asm 2: movl <j12=132(%esp),>in12=%eax
841movl 132(%esp),%eax
842
843# qhasm:   in13 = j13
844# asm 1: movl <j13=stack32#35,>in13=int32#2
845# asm 2: movl <j13=136(%esp),>in13=%ecx
846movl 136(%esp),%ecx
847
848# qhasm:   in14 = j14
849# asm 1: movl <j14=stack32#36,>in14=int32#3
850# asm 2: movl <j14=140(%esp),>in14=%edx
851movl 140(%esp),%edx
852
853# qhasm:   in15 = j15
854# asm 1: movl <j15=stack32#37,>in15=int32#4
855# asm 2: movl <j15=144(%esp),>in15=%ebx
856movl 144(%esp),%ebx
857
858# qhasm:   x12 = in12
859# asm 1: movl <in12=int32#1,>x12=stack32#18
860# asm 2: movl <in12=%eax,>x12=68(%esp)
861movl %eax,68(%esp)
862
863# qhasm:   x13 = in13
864# asm 1: movl <in13=int32#2,>x13=stack32#19
865# asm 2: movl <in13=%ecx,>x13=72(%esp)
866movl %ecx,72(%esp)
867
868# qhasm:   x14 = in14
869# asm 1: movl <in14=int32#3,>x14=stack32#20
870# asm 2: movl <in14=%edx,>x14=76(%esp)
871movl %edx,76(%esp)
872
873# qhasm:   x15 = in15
874# asm 1: movl <in15=int32#4,>x15=stack32#21
875# asm 2: movl <in15=%ebx,>x15=80(%esp)
876movl %ebx,80(%esp)
877
878# qhasm:   i = 20
879# asm 1: mov  $20,>i=int32#2
880# asm 2: mov  $20,>i=%ecx
881mov  $20,%ecx
882
883# qhasm: p = x0
884# asm 1: movl <x0=stack32#6,>p=int32#1
885# asm 2: movl <x0=20(%esp),>p=%eax
886movl 20(%esp),%eax
887
888# qhasm: s = x5
889# asm 1: movl <x5=stack32#11,>s=int32#3
890# asm 2: movl <x5=40(%esp),>s=%edx
891.byte 0xf3
892movl 40(%esp),%edx
893
894# qhasm: t = x10
895# asm 1: movl <x10=stack32#16,>t=int32#4
896# asm 2: movl <x10=60(%esp),>t=%ebx
897.byte 0xf3
898movl 60(%esp),%ebx
899
900# qhasm: w = x15
901# asm 1: movl <x15=stack32#21,>w=int32#5
902# asm 2: movl <x15=80(%esp),>w=%esi
903.byte 0xf3
904movl 80(%esp),%esi
905
906# qhasm: mainloop:
907._mainloop:
908
909# qhasm: x0 = p
910# asm 1: movl <p=int32#1,>x0=stack32#6
911# asm 2: movl <p=%eax,>x0=20(%esp)
912movl %eax,20(%esp)
913
914# qhasm: 				x10 = t
915# asm 1: movl <t=int32#4,>x10=stack32#11
916# asm 2: movl <t=%ebx,>x10=40(%esp)
917movl %ebx,40(%esp)
918
919# qhasm: p += x12
920# asm 1: addl <x12=stack32#18,<p=int32#1
921# asm 2: addl <x12=68(%esp),<p=%eax
922addl 68(%esp),%eax
923
924# qhasm: 		x5 = s
925# asm 1: movl <s=int32#3,>x5=stack32#16
926# asm 2: movl <s=%edx,>x5=60(%esp)
927movl %edx,60(%esp)
928
929# qhasm: 				t += x6
930# asm 1: addl <x6=stack32#12,<t=int32#4
931# asm 2: addl <x6=44(%esp),<t=%ebx
932addl 44(%esp),%ebx
933
934# qhasm: 						x15 = w
935# asm 1: movl <w=int32#5,>x15=stack32#21
936# asm 2: movl <w=%esi,>x15=80(%esp)
937movl %esi,80(%esp)
938
939# qhasm: 		r = x1
940# asm 1: movl <x1=stack32#7,>r=int32#6
941# asm 2: movl <x1=24(%esp),>r=%edi
942.byte 0xf3
943movl 24(%esp),%edi
944
945# qhasm: 		r += s
946# asm 1: add  <s=int32#3,<r=int32#6
947# asm 2: add  <s=%edx,<r=%edi
948.byte 0xf3
949add  %edx,%edi
950
951# qhasm: 						v = x11
952# asm 1: movl <x11=stack32#17,>v=int32#7
953# asm 2: movl <x11=64(%esp),>v=%ebp
954movl 64(%esp),%ebp
955
956# qhasm: 						v += w
957# asm 1: add  <w=int32#5,<v=int32#7
958# asm 2: add  <w=%esi,<v=%ebp
959add  %esi,%ebp
960
961# qhasm: p <<<= 7
962# asm 1: rol  $7,<p=int32#1
963# asm 2: rol  $7,<p=%eax
964rol  $7,%eax
965
966# qhasm: p ^= x4
967# asm 1: xorl <x4=stack32#10,<p=int32#1
968# asm 2: xorl <x4=36(%esp),<p=%eax
969xorl 36(%esp),%eax
970
971# qhasm: 				t <<<= 7
972# asm 1: rol  $7,<t=int32#4
973# asm 2: rol  $7,<t=%ebx
974rol  $7,%ebx
975
976# qhasm: 				t ^= x14
977# asm 1: xorl <x14=stack32#20,<t=int32#4
978# asm 2: xorl <x14=76(%esp),<t=%ebx
979xorl 76(%esp),%ebx
980
981# qhasm: 		r <<<= 7
982# asm 1: rol  $7,<r=int32#6
983# asm 2: rol  $7,<r=%edi
984.byte 0xf3
985rol  $7,%edi
986
987# qhasm: 		r ^= x9
988# asm 1: xorl <x9=stack32#15,<r=int32#6
989# asm 2: xorl <x9=56(%esp),<r=%edi
990xorl 56(%esp),%edi
991
992# qhasm: 						v <<<= 7
993# asm 1: rol  $7,<v=int32#7
994# asm 2: rol  $7,<v=%ebp
995.byte 0xf3
996rol  $7,%ebp
997
998# qhasm: 						v ^= x3
999# asm 1: xorl <x3=stack32#9,<v=int32#7
1000# asm 2: xorl <x3=32(%esp),<v=%ebp
1001xorl 32(%esp),%ebp
1002
1003# qhasm: x4 = p
1004# asm 1: movl <p=int32#1,>x4=stack32#9
1005# asm 2: movl <p=%eax,>x4=32(%esp)
1006movl %eax,32(%esp)
1007
1008# qhasm: 				x14 = t
1009# asm 1: movl <t=int32#4,>x14=stack32#10
1010# asm 2: movl <t=%ebx,>x14=36(%esp)
1011movl %ebx,36(%esp)
1012
1013# qhasm: p += x0
1014# asm 1: addl <x0=stack32#6,<p=int32#1
1015# asm 2: addl <x0=20(%esp),<p=%eax
1016addl 20(%esp),%eax
1017
1018# qhasm: 		x9 = r
1019# asm 1: movl <r=int32#6,>x9=stack32#15
1020# asm 2: movl <r=%edi,>x9=56(%esp)
1021movl %edi,56(%esp)
1022
1023# qhasm: 				t += x10
1024# asm 1: addl <x10=stack32#11,<t=int32#4
1025# asm 2: addl <x10=40(%esp),<t=%ebx
1026addl 40(%esp),%ebx
1027
1028# qhasm: 						x3 = v
1029# asm 1: movl <v=int32#7,>x3=stack32#20
1030# asm 2: movl <v=%ebp,>x3=76(%esp)
1031movl %ebp,76(%esp)
1032
1033# qhasm: p <<<= 9
1034# asm 1: rol  $9,<p=int32#1
1035# asm 2: rol  $9,<p=%eax
1036.byte 0xf3
1037rol  $9,%eax
1038
1039# qhasm: p ^= x8
1040# asm 1: xorl <x8=stack32#14,<p=int32#1
1041# asm 2: xorl <x8=52(%esp),<p=%eax
1042xorl 52(%esp),%eax
1043
1044# qhasm: 				t <<<= 9
1045# asm 1: rol  $9,<t=int32#4
1046# asm 2: rol  $9,<t=%ebx
1047rol  $9,%ebx
1048
1049# qhasm: 				t ^= x2
1050# asm 1: xorl <x2=stack32#8,<t=int32#4
1051# asm 2: xorl <x2=28(%esp),<t=%ebx
1052xorl 28(%esp),%ebx
1053
1054# qhasm: 		s += r
1055# asm 1: add  <r=int32#6,<s=int32#3
1056# asm 2: add  <r=%edi,<s=%edx
1057add  %edi,%edx
1058
1059# qhasm: 		s <<<= 9
1060# asm 1: rol  $9,<s=int32#3
1061# asm 2: rol  $9,<s=%edx
1062rol  $9,%edx
1063
1064# qhasm: 		s ^= x13
1065# asm 1: xorl <x13=stack32#19,<s=int32#3
1066# asm 2: xorl <x13=72(%esp),<s=%edx
1067xorl 72(%esp),%edx
1068
1069# qhasm: 						w += v
1070# asm 1: add  <v=int32#7,<w=int32#5
1071# asm 2: add  <v=%ebp,<w=%esi
1072.byte 0xf3
1073add  %ebp,%esi
1074
1075# qhasm: 						w <<<= 9
1076# asm 1: rol  $9,<w=int32#5
1077# asm 2: rol  $9,<w=%esi
1078.byte 0xf3
1079rol  $9,%esi
1080
1081# qhasm: 						w ^= x7
1082# asm 1: xorl <x7=stack32#13,<w=int32#5
1083# asm 2: xorl <x7=48(%esp),<w=%esi
1084.byte 0xf3
1085xorl 48(%esp),%esi
1086
1087# qhasm: x8 = p
1088# asm 1: movl <p=int32#1,>x8=stack32#8
1089# asm 2: movl <p=%eax,>x8=28(%esp)
1090movl %eax,28(%esp)
1091
1092# qhasm: 				x2 = t
1093# asm 1: movl <t=int32#4,>x2=stack32#13
1094# asm 2: movl <t=%ebx,>x2=48(%esp)
1095movl %ebx,48(%esp)
1096
1097# qhasm: p += x4
1098# asm 1: addl <x4=stack32#9,<p=int32#1
1099# asm 2: addl <x4=32(%esp),<p=%eax
1100addl 32(%esp),%eax
1101
1102# qhasm: 		x13 = s
1103# asm 1: movl <s=int32#3,>x13=stack32#14
1104# asm 2: movl <s=%edx,>x13=52(%esp)
1105movl %edx,52(%esp)
1106
1107# qhasm: 				t += x14
1108# asm 1: addl <x14=stack32#10,<t=int32#4
1109# asm 2: addl <x14=36(%esp),<t=%ebx
1110addl 36(%esp),%ebx
1111
1112# qhasm: 						x7 = w
1113# asm 1: movl <w=int32#5,>x7=stack32#19
1114# asm 2: movl <w=%esi,>x7=72(%esp)
1115movl %esi,72(%esp)
1116
1117# qhasm: p <<<= 13
1118# asm 1: rol  $13,<p=int32#1
1119# asm 2: rol  $13,<p=%eax
1120.byte 0xf3
1121rol  $13,%eax
1122
1123# qhasm: p ^= x12
1124# asm 1: xorl <x12=stack32#18,<p=int32#1
1125# asm 2: xorl <x12=68(%esp),<p=%eax
1126xorl 68(%esp),%eax
1127
1128# qhasm: 				t <<<= 13
1129# asm 1: rol  $13,<t=int32#4
1130# asm 2: rol  $13,<t=%ebx
1131rol  $13,%ebx
1132
1133# qhasm: 				t ^= x6
1134# asm 1: xorl <x6=stack32#12,<t=int32#4
1135# asm 2: xorl <x6=44(%esp),<t=%ebx
1136xorl 44(%esp),%ebx
1137
1138# qhasm: 		r += s
1139# asm 1: add  <s=int32#3,<r=int32#6
1140# asm 2: add  <s=%edx,<r=%edi
1141add  %edx,%edi
1142
1143# qhasm: 		r <<<= 13
1144# asm 1: rol  $13,<r=int32#6
1145# asm 2: rol  $13,<r=%edi
1146rol  $13,%edi
1147
1148# qhasm: 		r ^= x1
1149# asm 1: xorl <x1=stack32#7,<r=int32#6
1150# asm 2: xorl <x1=24(%esp),<r=%edi
1151xorl 24(%esp),%edi
1152
1153# qhasm: 						v += w
1154# asm 1: add  <w=int32#5,<v=int32#7
1155# asm 2: add  <w=%esi,<v=%ebp
1156.byte 0xf3
1157add  %esi,%ebp
1158
1159# qhasm: 						v <<<= 13
1160# asm 1: rol  $13,<v=int32#7
1161# asm 2: rol  $13,<v=%ebp
1162.byte 0xf3
1163rol  $13,%ebp
1164
1165# qhasm: 						v ^= x11
1166# asm 1: xorl <x11=stack32#17,<v=int32#7
1167# asm 2: xorl <x11=64(%esp),<v=%ebp
1168.byte 0xf3
1169xorl 64(%esp),%ebp
1170
1171# qhasm: x12 = p
1172# asm 1: movl <p=int32#1,>x12=stack32#7
1173# asm 2: movl <p=%eax,>x12=24(%esp)
1174movl %eax,24(%esp)
1175
1176# qhasm: 				x6 = t
1177# asm 1: movl <t=int32#4,>x6=stack32#12
1178# asm 2: movl <t=%ebx,>x6=44(%esp)
1179movl %ebx,44(%esp)
1180
1181# qhasm: p += x8
1182# asm 1: addl <x8=stack32#8,<p=int32#1
1183# asm 2: addl <x8=28(%esp),<p=%eax
1184addl 28(%esp),%eax
1185
1186# qhasm: 		x1 = r
1187# asm 1: movl <r=int32#6,>x1=stack32#17
1188# asm 2: movl <r=%edi,>x1=64(%esp)
1189movl %edi,64(%esp)
1190
1191# qhasm: 				t += x2
1192# asm 1: addl <x2=stack32#13,<t=int32#4
1193# asm 2: addl <x2=48(%esp),<t=%ebx
1194addl 48(%esp),%ebx
1195
1196# qhasm: 						x11 = v
1197# asm 1: movl <v=int32#7,>x11=stack32#18
1198# asm 2: movl <v=%ebp,>x11=68(%esp)
1199movl %ebp,68(%esp)
1200
1201# qhasm: p <<<= 18
1202# asm 1: rol  $18,<p=int32#1
1203# asm 2: rol  $18,<p=%eax
1204.byte 0xf3
1205rol  $18,%eax
1206
1207# qhasm: p ^= x0
1208# asm 1: xorl <x0=stack32#6,<p=int32#1
1209# asm 2: xorl <x0=20(%esp),<p=%eax
1210xorl 20(%esp),%eax
1211
1212# qhasm: 				t <<<= 18
1213# asm 1: rol  $18,<t=int32#4
1214# asm 2: rol  $18,<t=%ebx
1215.byte 0xf3
1216rol  $18,%ebx
1217
1218# qhasm: 				t ^= x10
1219# asm 1: xorl <x10=stack32#11,<t=int32#4
1220# asm 2: xorl <x10=40(%esp),<t=%ebx
1221xorl 40(%esp),%ebx
1222
1223# qhasm: 		s += r
1224# asm 1: add  <r=int32#6,<s=int32#3
1225# asm 2: add  <r=%edi,<s=%edx
1226add  %edi,%edx
1227
1228# qhasm: 		s <<<= 18
1229# asm 1: rol  $18,<s=int32#3
1230# asm 2: rol  $18,<s=%edx
1231.byte 0xf3
1232rol  $18,%edx
1233
1234# qhasm: 		s ^= x5
1235# asm 1: xorl <x5=stack32#16,<s=int32#3
1236# asm 2: xorl <x5=60(%esp),<s=%edx
1237xorl 60(%esp),%edx
1238
1239# qhasm: 						w += v
1240# asm 1: add  <v=int32#7,<w=int32#5
1241# asm 2: add  <v=%ebp,<w=%esi
1242add  %ebp,%esi
1243
1244# qhasm: 						w <<<= 18
1245# asm 1: rol  $18,<w=int32#5
1246# asm 2: rol  $18,<w=%esi
1247.byte 0xf3
1248rol  $18,%esi
1249
1250# qhasm: 						w ^= x15
1251# asm 1: xorl <x15=stack32#21,<w=int32#5
1252# asm 2: xorl <x15=80(%esp),<w=%esi
1253xorl 80(%esp),%esi
1254
1255# qhasm: x0 = p
1256# asm 1: movl <p=int32#1,>x0=stack32#6
1257# asm 2: movl <p=%eax,>x0=20(%esp)
1258movl %eax,20(%esp)
1259
1260# qhasm: 				x10 = t
1261# asm 1: movl <t=int32#4,>x10=stack32#11
1262# asm 2: movl <t=%ebx,>x10=40(%esp)
1263movl %ebx,40(%esp)
1264
1265# qhasm: p += x3
1266# asm 1: addl <x3=stack32#20,<p=int32#1
1267# asm 2: addl <x3=76(%esp),<p=%eax
1268addl 76(%esp),%eax
1269
1270# qhasm: p <<<= 7
1271# asm 1: rol  $7,<p=int32#1
1272# asm 2: rol  $7,<p=%eax
1273.byte 0xf3
1274rol  $7,%eax
1275
1276# qhasm: 		x5 = s
1277# asm 1: movl <s=int32#3,>x5=stack32#16
1278# asm 2: movl <s=%edx,>x5=60(%esp)
1279movl %edx,60(%esp)
1280
1281# qhasm: 				t += x9
1282# asm 1: addl <x9=stack32#15,<t=int32#4
1283# asm 2: addl <x9=56(%esp),<t=%ebx
1284addl 56(%esp),%ebx
1285
1286# qhasm: 						x15 = w
1287# asm 1: movl <w=int32#5,>x15=stack32#21
1288# asm 2: movl <w=%esi,>x15=80(%esp)
1289movl %esi,80(%esp)
1290
1291# qhasm: 		r = x4
1292# asm 1: movl <x4=stack32#9,>r=int32#6
1293# asm 2: movl <x4=32(%esp),>r=%edi
1294movl 32(%esp),%edi
1295
1296# qhasm: 		r += s
1297# asm 1: add  <s=int32#3,<r=int32#6
1298# asm 2: add  <s=%edx,<r=%edi
1299add  %edx,%edi
1300
1301# qhasm: 						v = x14
1302# asm 1: movl <x14=stack32#10,>v=int32#7
1303# asm 2: movl <x14=36(%esp),>v=%ebp
1304movl 36(%esp),%ebp
1305
1306# qhasm: 						v += w
1307# asm 1: add  <w=int32#5,<v=int32#7
1308# asm 2: add  <w=%esi,<v=%ebp
1309add  %esi,%ebp
1310
1311# qhasm: p ^= x1
1312# asm 1: xorl <x1=stack32#17,<p=int32#1
1313# asm 2: xorl <x1=64(%esp),<p=%eax
1314xorl 64(%esp),%eax
1315
1316# qhasm: 				t <<<= 7
1317# asm 1: rol  $7,<t=int32#4
1318# asm 2: rol  $7,<t=%ebx
1319.byte 0xf3
1320rol  $7,%ebx
1321
1322# qhasm: 				t ^= x11
1323# asm 1: xorl <x11=stack32#18,<t=int32#4
1324# asm 2: xorl <x11=68(%esp),<t=%ebx
1325xorl 68(%esp),%ebx
1326
1327# qhasm: 		r <<<= 7
1328# asm 1: rol  $7,<r=int32#6
1329# asm 2: rol  $7,<r=%edi
1330.byte 0xf3
1331rol  $7,%edi
1332
1333# qhasm: 		r ^= x6
1334# asm 1: xorl <x6=stack32#12,<r=int32#6
1335# asm 2: xorl <x6=44(%esp),<r=%edi
1336xorl 44(%esp),%edi
1337
1338# qhasm: 						v <<<= 7
1339# asm 1: rol  $7,<v=int32#7
1340# asm 2: rol  $7,<v=%ebp
1341.byte 0xf3
1342rol  $7,%ebp
1343
1344# qhasm: 						v ^= x12
1345# asm 1: xorl <x12=stack32#7,<v=int32#7
1346# asm 2: xorl <x12=24(%esp),<v=%ebp
1347xorl 24(%esp),%ebp
1348
1349# qhasm: x1 = p
1350# asm 1: movl <p=int32#1,>x1=stack32#7
1351# asm 2: movl <p=%eax,>x1=24(%esp)
1352movl %eax,24(%esp)
1353
1354# qhasm: 				x11 = t
1355# asm 1: movl <t=int32#4,>x11=stack32#12
1356# asm 2: movl <t=%ebx,>x11=44(%esp)
1357movl %ebx,44(%esp)
1358
1359# qhasm: p += x0
1360# asm 1: addl <x0=stack32#6,<p=int32#1
1361# asm 2: addl <x0=20(%esp),<p=%eax
1362addl 20(%esp),%eax
1363
1364# qhasm: 		x6 = r
1365# asm 1: movl <r=int32#6,>x6=stack32#17
1366# asm 2: movl <r=%edi,>x6=64(%esp)
1367movl %edi,64(%esp)
1368
1369# qhasm: 				t += x10
1370# asm 1: addl <x10=stack32#11,<t=int32#4
1371# asm 2: addl <x10=40(%esp),<t=%ebx
1372addl 40(%esp),%ebx
1373
1374# qhasm: 						x12 = v
1375# asm 1: movl <v=int32#7,>x12=stack32#18
1376# asm 2: movl <v=%ebp,>x12=68(%esp)
1377movl %ebp,68(%esp)
1378
1379# qhasm: p <<<= 9
1380# asm 1: rol  $9,<p=int32#1
1381# asm 2: rol  $9,<p=%eax
1382.byte 0xf3
1383rol  $9,%eax
1384
1385# qhasm: p ^= x2
1386# asm 1: xorl <x2=stack32#13,<p=int32#1
1387# asm 2: xorl <x2=48(%esp),<p=%eax
1388xorl 48(%esp),%eax
1389
1390# qhasm: 				t <<<= 9
1391# asm 1: rol  $9,<t=int32#4
1392# asm 2: rol  $9,<t=%ebx
1393.byte 0xf3
1394rol  $9,%ebx
1395
1396# qhasm: 				t ^= x8
1397# asm 1: xorl <x8=stack32#8,<t=int32#4
1398# asm 2: xorl <x8=28(%esp),<t=%ebx
1399xorl 28(%esp),%ebx
1400
1401# qhasm: 		s += r
1402# asm 1: add  <r=int32#6,<s=int32#3
1403# asm 2: add  <r=%edi,<s=%edx
1404add  %edi,%edx
1405
1406# qhasm: 		s <<<= 9
1407# asm 1: rol  $9,<s=int32#3
1408# asm 2: rol  $9,<s=%edx
1409.byte 0xf3
1410rol  $9,%edx
1411
1412# qhasm: 		s ^= x7
1413# asm 1: xorl <x7=stack32#19,<s=int32#3
1414# asm 2: xorl <x7=72(%esp),<s=%edx
1415xorl 72(%esp),%edx
1416
1417# qhasm: 						w += v
1418# asm 1: add  <v=int32#7,<w=int32#5
1419# asm 2: add  <v=%ebp,<w=%esi
1420add  %ebp,%esi
1421
1422# qhasm: 						w <<<= 9
1423# asm 1: rol  $9,<w=int32#5
1424# asm 2: rol  $9,<w=%esi
1425.byte 0xf3
1426rol  $9,%esi
1427
1428# qhasm: 						w ^= x13
1429# asm 1: xorl <x13=stack32#14,<w=int32#5
1430# asm 2: xorl <x13=52(%esp),<w=%esi
1431xorl 52(%esp),%esi
1432
1433# qhasm: x2 = p
1434# asm 1: movl <p=int32#1,>x2=stack32#8
1435# asm 2: movl <p=%eax,>x2=28(%esp)
1436movl %eax,28(%esp)
1437
1438# qhasm: 				x8 = t
1439# asm 1: movl <t=int32#4,>x8=stack32#13
1440# asm 2: movl <t=%ebx,>x8=48(%esp)
1441movl %ebx,48(%esp)
1442
1443# qhasm: p += x1
1444# asm 1: addl <x1=stack32#7,<p=int32#1
1445# asm 2: addl <x1=24(%esp),<p=%eax
1446addl 24(%esp),%eax
1447
1448# qhasm: 		x7 = s
1449# asm 1: movl <s=int32#3,>x7=stack32#14
1450# asm 2: movl <s=%edx,>x7=52(%esp)
1451movl %edx,52(%esp)
1452
1453# qhasm: 				t += x11
1454# asm 1: addl <x11=stack32#12,<t=int32#4
1455# asm 2: addl <x11=44(%esp),<t=%ebx
1456addl 44(%esp),%ebx
1457
1458# qhasm: 						x13 = w
1459# asm 1: movl <w=int32#5,>x13=stack32#19
1460# asm 2: movl <w=%esi,>x13=72(%esp)
1461movl %esi,72(%esp)
1462
1463# qhasm: p <<<= 13
1464# asm 1: rol  $13,<p=int32#1
1465# asm 2: rol  $13,<p=%eax
1466rol  $13,%eax
1467
1468# qhasm: p ^= x3
1469# asm 1: xorl <x3=stack32#20,<p=int32#1
1470# asm 2: xorl <x3=76(%esp),<p=%eax
1471xorl 76(%esp),%eax
1472
1473# qhasm: 				t <<<= 13
1474# asm 1: rol  $13,<t=int32#4
1475# asm 2: rol  $13,<t=%ebx
1476rol  $13,%ebx
1477
1478# qhasm: 				t ^= x9
1479# asm 1: xorl <x9=stack32#15,<t=int32#4
1480# asm 2: xorl <x9=56(%esp),<t=%ebx
1481xorl 56(%esp),%ebx
1482
1483# qhasm: 		r += s
1484# asm 1: add  <s=int32#3,<r=int32#6
1485# asm 2: add  <s=%edx,<r=%edi
1486add  %edx,%edi
1487
1488# qhasm: 		r <<<= 13
1489# asm 1: rol  $13,<r=int32#6
1490# asm 2: rol  $13,<r=%edi
1491rol  $13,%edi
1492
1493# qhasm: 		r ^= x4
1494# asm 1: xorl <x4=stack32#9,<r=int32#6
1495# asm 2: xorl <x4=32(%esp),<r=%edi
1496xorl 32(%esp),%edi
1497
1498# qhasm: 						v += w
1499# asm 1: add  <w=int32#5,<v=int32#7
1500# asm 2: add  <w=%esi,<v=%ebp
1501add  %esi,%ebp
1502
1503# qhasm: 						v <<<= 13
1504# asm 1: rol  $13,<v=int32#7
1505# asm 2: rol  $13,<v=%ebp
1506rol  $13,%ebp
1507
1508# qhasm: 						v ^= x14
1509# asm 1: xorl <x14=stack32#10,<v=int32#7
1510# asm 2: xorl <x14=36(%esp),<v=%ebp
1511xorl 36(%esp),%ebp
1512
1513# qhasm: x3 = p
1514# asm 1: movl <p=int32#1,>x3=stack32#9
1515# asm 2: movl <p=%eax,>x3=32(%esp)
1516movl %eax,32(%esp)
1517
1518# qhasm: 				x9 = t
1519# asm 1: movl <t=int32#4,>x9=stack32#10
1520# asm 2: movl <t=%ebx,>x9=36(%esp)
1521movl %ebx,36(%esp)
1522
1523# qhasm: p += x2
1524# asm 1: addl <x2=stack32#8,<p=int32#1
1525# asm 2: addl <x2=28(%esp),<p=%eax
1526addl 28(%esp),%eax
1527
1528# qhasm: 		x4 = r
1529# asm 1: movl <r=int32#6,>x4=stack32#15
1530# asm 2: movl <r=%edi,>x4=56(%esp)
1531movl %edi,56(%esp)
1532
1533# qhasm: 				t += x8
1534# asm 1: addl <x8=stack32#13,<t=int32#4
1535# asm 2: addl <x8=48(%esp),<t=%ebx
1536addl 48(%esp),%ebx
1537
1538# qhasm: 						x14 = v
1539# asm 1: movl <v=int32#7,>x14=stack32#20
1540# asm 2: movl <v=%ebp,>x14=76(%esp)
1541movl %ebp,76(%esp)
1542
1543# qhasm: p <<<= 18
1544# asm 1: rol  $18,<p=int32#1
1545# asm 2: rol  $18,<p=%eax
1546.byte 0xf3
1547rol  $18,%eax
1548
1549# qhasm: p ^= x0
1550# asm 1: xorl <x0=stack32#6,<p=int32#1
1551# asm 2: xorl <x0=20(%esp),<p=%eax
1552xorl 20(%esp),%eax
1553
1554# qhasm: 				t <<<= 18
1555# asm 1: rol  $18,<t=int32#4
1556# asm 2: rol  $18,<t=%ebx
1557rol  $18,%ebx
1558
1559# qhasm: 				t ^= x10
1560# asm 1: xorl <x10=stack32#11,<t=int32#4
1561# asm 2: xorl <x10=40(%esp),<t=%ebx
1562xorl 40(%esp),%ebx
1563
1564# qhasm: 		s += r
1565# asm 1: add  <r=int32#6,<s=int32#3
1566# asm 2: add  <r=%edi,<s=%edx
1567add  %edi,%edx
1568
1569# qhasm: 		s <<<= 18
1570# asm 1: rol  $18,<s=int32#3
1571# asm 2: rol  $18,<s=%edx
1572rol  $18,%edx
1573
1574# qhasm: 		s ^= x5
1575# asm 1: xorl <x5=stack32#16,<s=int32#3
1576# asm 2: xorl <x5=60(%esp),<s=%edx
1577xorl 60(%esp),%edx
1578
1579# qhasm: 						w += v
1580# asm 1: add  <v=int32#7,<w=int32#5
1581# asm 2: add  <v=%ebp,<w=%esi
1582.byte 0xf3
1583add  %ebp,%esi
1584
1585# qhasm: 						w <<<= 18
1586# asm 1: rol  $18,<w=int32#5
1587# asm 2: rol  $18,<w=%esi
1588.byte 0xf3
1589rol  $18,%esi
1590
1591# qhasm: 						w ^= x15
1592# asm 1: xorl <x15=stack32#21,<w=int32#5
1593# asm 2: xorl <x15=80(%esp),<w=%esi
1594.byte 0xf3
1595xorl 80(%esp),%esi
1596
1597# qhasm: x0 = p
1598# asm 1: movl <p=int32#1,>x0=stack32#6
1599# asm 2: movl <p=%eax,>x0=20(%esp)
1600movl %eax,20(%esp)
1601
1602# qhasm: 				x10 = t
1603# asm 1: movl <t=int32#4,>x10=stack32#11
1604# asm 2: movl <t=%ebx,>x10=40(%esp)
1605movl %ebx,40(%esp)
1606
1607# qhasm: p += x12
1608# asm 1: addl <x12=stack32#18,<p=int32#1
1609# asm 2: addl <x12=68(%esp),<p=%eax
1610addl 68(%esp),%eax
1611
1612# qhasm: 		x5 = s
1613# asm 1: movl <s=int32#3,>x5=stack32#16
1614# asm 2: movl <s=%edx,>x5=60(%esp)
1615movl %edx,60(%esp)
1616
1617# qhasm: 				t += x6
1618# asm 1: addl <x6=stack32#17,<t=int32#4
1619# asm 2: addl <x6=64(%esp),<t=%ebx
1620addl 64(%esp),%ebx
1621
1622# qhasm: 						x15 = w
1623# asm 1: movl <w=int32#5,>x15=stack32#21
1624# asm 2: movl <w=%esi,>x15=80(%esp)
1625movl %esi,80(%esp)
1626
1627# qhasm: 		r = x1
1628# asm 1: movl <x1=stack32#7,>r=int32#6
1629# asm 2: movl <x1=24(%esp),>r=%edi
1630movl 24(%esp),%edi
1631
1632# qhasm: 		r += s
1633# asm 1: add  <s=int32#3,<r=int32#6
1634# asm 2: add  <s=%edx,<r=%edi
1635add  %edx,%edi
1636
1637# qhasm: 						v = x11
1638# asm 1: movl <x11=stack32#12,>v=int32#7
1639# asm 2: movl <x11=44(%esp),>v=%ebp
1640movl 44(%esp),%ebp
1641
1642# qhasm: 						v += w
1643# asm 1: add  <w=int32#5,<v=int32#7
1644# asm 2: add  <w=%esi,<v=%ebp
1645add  %esi,%ebp
1646
1647# qhasm: p <<<= 7
1648# asm 1: rol  $7,<p=int32#1
1649# asm 2: rol  $7,<p=%eax
1650.byte 0xf3
1651rol  $7,%eax
1652
1653# qhasm: p ^= x4
1654# asm 1: xorl <x4=stack32#15,<p=int32#1
1655# asm 2: xorl <x4=56(%esp),<p=%eax
1656xorl 56(%esp),%eax
1657
1658# qhasm: 				t <<<= 7
1659# asm 1: rol  $7,<t=int32#4
1660# asm 2: rol  $7,<t=%ebx
1661.byte 0xf3
1662rol  $7,%ebx
1663
1664# qhasm: 				t ^= x14
1665# asm 1: xorl <x14=stack32#20,<t=int32#4
1666# asm 2: xorl <x14=76(%esp),<t=%ebx
1667xorl 76(%esp),%ebx
1668
1669# qhasm: 		r <<<= 7
1670# asm 1: rol  $7,<r=int32#6
1671# asm 2: rol  $7,<r=%edi
1672.byte 0xf3
1673rol  $7,%edi
1674
1675# qhasm: 		r ^= x9
1676# asm 1: xorl <x9=stack32#10,<r=int32#6
1677# asm 2: xorl <x9=36(%esp),<r=%edi
1678xorl 36(%esp),%edi
1679
1680# qhasm: 						v <<<= 7
1681# asm 1: rol  $7,<v=int32#7
1682# asm 2: rol  $7,<v=%ebp
1683.byte 0xf3
1684rol  $7,%ebp
1685
1686# qhasm: 						v ^= x3
1687# asm 1: xorl <x3=stack32#9,<v=int32#7
1688# asm 2: xorl <x3=32(%esp),<v=%ebp
1689xorl 32(%esp),%ebp
1690
1691# qhasm: x4 = p
1692# asm 1: movl <p=int32#1,>x4=stack32#9
1693# asm 2: movl <p=%eax,>x4=32(%esp)
1694movl %eax,32(%esp)
1695
1696# qhasm: 				x14 = t
1697# asm 1: movl <t=int32#4,>x14=stack32#10
1698# asm 2: movl <t=%ebx,>x14=36(%esp)
1699movl %ebx,36(%esp)
1700
1701# qhasm: p += x0
1702# asm 1: addl <x0=stack32#6,<p=int32#1
1703# asm 2: addl <x0=20(%esp),<p=%eax
1704addl 20(%esp),%eax
1705
1706# qhasm: 		x9 = r
1707# asm 1: movl <r=int32#6,>x9=stack32#15
1708# asm 2: movl <r=%edi,>x9=56(%esp)
1709movl %edi,56(%esp)
1710
1711# qhasm: 				t += x10
1712# asm 1: addl <x10=stack32#11,<t=int32#4
1713# asm 2: addl <x10=40(%esp),<t=%ebx
1714addl 40(%esp),%ebx
1715
1716# qhasm: 						x3 = v
1717# asm 1: movl <v=int32#7,>x3=stack32#20
1718# asm 2: movl <v=%ebp,>x3=76(%esp)
1719movl %ebp,76(%esp)
1720
1721# qhasm: p <<<= 9
1722# asm 1: rol  $9,<p=int32#1
1723# asm 2: rol  $9,<p=%eax
1724.byte 0xf3
1725rol  $9,%eax
1726
1727# qhasm: p ^= x8
1728# asm 1: xorl <x8=stack32#13,<p=int32#1
1729# asm 2: xorl <x8=48(%esp),<p=%eax
1730xorl 48(%esp),%eax
1731
1732# qhasm: 				t <<<= 9
1733# asm 1: rol  $9,<t=int32#4
1734# asm 2: rol  $9,<t=%ebx
1735rol  $9,%ebx
1736
1737# qhasm: 				t ^= x2
1738# asm 1: xorl <x2=stack32#8,<t=int32#4
1739# asm 2: xorl <x2=28(%esp),<t=%ebx
1740xorl 28(%esp),%ebx
1741
1742# qhasm: 		s += r
1743# asm 1: add  <r=int32#6,<s=int32#3
1744# asm 2: add  <r=%edi,<s=%edx
1745add  %edi,%edx
1746
1747# qhasm: 		s <<<= 9
1748# asm 1: rol  $9,<s=int32#3
1749# asm 2: rol  $9,<s=%edx
1750rol  $9,%edx
1751
1752# qhasm: 		s ^= x13
1753# asm 1: xorl <x13=stack32#19,<s=int32#3
1754# asm 2: xorl <x13=72(%esp),<s=%edx
1755xorl 72(%esp),%edx
1756
1757# qhasm: 						w += v
1758# asm 1: add  <v=int32#7,<w=int32#5
1759# asm 2: add  <v=%ebp,<w=%esi
1760.byte 0xf3
1761add  %ebp,%esi
1762
1763# qhasm: 						w <<<= 9
1764# asm 1: rol  $9,<w=int32#5
1765# asm 2: rol  $9,<w=%esi
1766.byte 0xf3
1767rol  $9,%esi
1768
1769# qhasm: 						w ^= x7
1770# asm 1: xorl <x7=stack32#14,<w=int32#5
1771# asm 2: xorl <x7=52(%esp),<w=%esi
1772.byte 0xf3
1773xorl 52(%esp),%esi
1774
1775# qhasm: x8 = p
1776# asm 1: movl <p=int32#1,>x8=stack32#8
1777# asm 2: movl <p=%eax,>x8=28(%esp)
1778movl %eax,28(%esp)
1779
1780# qhasm: 				x2 = t
1781# asm 1: movl <t=int32#4,>x2=stack32#13
1782# asm 2: movl <t=%ebx,>x2=48(%esp)
1783movl %ebx,48(%esp)
1784
1785# qhasm: p += x4
1786# asm 1: addl <x4=stack32#9,<p=int32#1
1787# asm 2: addl <x4=32(%esp),<p=%eax
1788addl 32(%esp),%eax
1789
1790# qhasm: 		x13 = s
1791# asm 1: movl <s=int32#3,>x13=stack32#14
1792# asm 2: movl <s=%edx,>x13=52(%esp)
1793movl %edx,52(%esp)
1794
1795# qhasm: 				t += x14
1796# asm 1: addl <x14=stack32#10,<t=int32#4
1797# asm 2: addl <x14=36(%esp),<t=%ebx
1798addl 36(%esp),%ebx
1799
1800# qhasm: 						x7 = w
1801# asm 1: movl <w=int32#5,>x7=stack32#19
1802# asm 2: movl <w=%esi,>x7=72(%esp)
1803movl %esi,72(%esp)
1804
1805# qhasm: p <<<= 13
1806# asm 1: rol  $13,<p=int32#1
1807# asm 2: rol  $13,<p=%eax
1808.byte 0xf3
1809rol  $13,%eax
1810
1811# qhasm: p ^= x12
1812# asm 1: xorl <x12=stack32#18,<p=int32#1
1813# asm 2: xorl <x12=68(%esp),<p=%eax
1814xorl 68(%esp),%eax
1815
1816# qhasm: 				t <<<= 13
1817# asm 1: rol  $13,<t=int32#4
1818# asm 2: rol  $13,<t=%ebx
1819.byte 0xf3
1820rol  $13,%ebx
1821
1822# qhasm: 				t ^= x6
1823# asm 1: xorl <x6=stack32#17,<t=int32#4
1824# asm 2: xorl <x6=64(%esp),<t=%ebx
1825xorl 64(%esp),%ebx
1826
1827# qhasm: 		r += s
1828# asm 1: add  <s=int32#3,<r=int32#6
1829# asm 2: add  <s=%edx,<r=%edi
1830add  %edx,%edi
1831
1832# qhasm: 		r <<<= 13
1833# asm 1: rol  $13,<r=int32#6
1834# asm 2: rol  $13,<r=%edi
1835.byte 0xf3
1836rol  $13,%edi
1837
1838# qhasm: 		r ^= x1
1839# asm 1: xorl <x1=stack32#7,<r=int32#6
1840# asm 2: xorl <x1=24(%esp),<r=%edi
1841xorl 24(%esp),%edi
1842
1843# qhasm: 						v += w
1844# asm 1: add  <w=int32#5,<v=int32#7
1845# asm 2: add  <w=%esi,<v=%ebp
1846add  %esi,%ebp
1847
1848# qhasm: 						v <<<= 13
1849# asm 1: rol  $13,<v=int32#7
1850# asm 2: rol  $13,<v=%ebp
1851.byte 0xf3
1852rol  $13,%ebp
1853
1854# qhasm: 						v ^= x11
1855# asm 1: xorl <x11=stack32#12,<v=int32#7
1856# asm 2: xorl <x11=44(%esp),<v=%ebp
1857xorl 44(%esp),%ebp
1858
1859# qhasm: x12 = p
1860# asm 1: movl <p=int32#1,>x12=stack32#7
1861# asm 2: movl <p=%eax,>x12=24(%esp)
1862movl %eax,24(%esp)
1863
1864# qhasm: 				x6 = t
1865# asm 1: movl <t=int32#4,>x6=stack32#12
1866# asm 2: movl <t=%ebx,>x6=44(%esp)
1867movl %ebx,44(%esp)
1868
1869# qhasm: p += x8
1870# asm 1: addl <x8=stack32#8,<p=int32#1
1871# asm 2: addl <x8=28(%esp),<p=%eax
1872addl 28(%esp),%eax
1873
1874# qhasm: 		x1 = r
1875# asm 1: movl <r=int32#6,>x1=stack32#17
1876# asm 2: movl <r=%edi,>x1=64(%esp)
1877movl %edi,64(%esp)
1878
1879# qhasm: 				t += x2
1880# asm 1: addl <x2=stack32#13,<t=int32#4
1881# asm 2: addl <x2=48(%esp),<t=%ebx
1882addl 48(%esp),%ebx
1883
1884# qhasm: 						x11 = v
1885# asm 1: movl <v=int32#7,>x11=stack32#18
1886# asm 2: movl <v=%ebp,>x11=68(%esp)
1887movl %ebp,68(%esp)
1888
1889# qhasm: p <<<= 18
1890# asm 1: rol  $18,<p=int32#1
1891# asm 2: rol  $18,<p=%eax
1892rol  $18,%eax
1893
1894# qhasm: p ^= x0
1895# asm 1: xorl <x0=stack32#6,<p=int32#1
1896# asm 2: xorl <x0=20(%esp),<p=%eax
1897xorl 20(%esp),%eax
1898
1899# qhasm: 				t <<<= 18
1900# asm 1: rol  $18,<t=int32#4
1901# asm 2: rol  $18,<t=%ebx
1902rol  $18,%ebx
1903
1904# qhasm: 				t ^= x10
1905# asm 1: xorl <x10=stack32#11,<t=int32#4
1906# asm 2: xorl <x10=40(%esp),<t=%ebx
1907xorl 40(%esp),%ebx
1908
1909# qhasm: 		s += r
1910# asm 1: add  <r=int32#6,<s=int32#3
1911# asm 2: add  <r=%edi,<s=%edx
1912add  %edi,%edx
1913
1914# qhasm: 		s <<<= 18
1915# asm 1: rol  $18,<s=int32#3
1916# asm 2: rol  $18,<s=%edx
1917rol  $18,%edx
1918
1919# qhasm: 		s ^= x5
1920# asm 1: xorl <x5=stack32#16,<s=int32#3
1921# asm 2: xorl <x5=60(%esp),<s=%edx
1922xorl 60(%esp),%edx
1923
1924# qhasm: 						w += v
1925# asm 1: add  <v=int32#7,<w=int32#5
1926# asm 2: add  <v=%ebp,<w=%esi
1927add  %ebp,%esi
1928
1929# qhasm: 						w <<<= 18
1930# asm 1: rol  $18,<w=int32#5
1931# asm 2: rol  $18,<w=%esi
1932rol  $18,%esi
1933
1934# qhasm: 						w ^= x15
1935# asm 1: xorl <x15=stack32#21,<w=int32#5
1936# asm 2: xorl <x15=80(%esp),<w=%esi
1937xorl 80(%esp),%esi
1938
1939# qhasm: x0 = p
1940# asm 1: movl <p=int32#1,>x0=stack32#6
1941# asm 2: movl <p=%eax,>x0=20(%esp)
1942movl %eax,20(%esp)
1943
1944# qhasm: 				x10 = t
1945# asm 1: movl <t=int32#4,>x10=stack32#16
1946# asm 2: movl <t=%ebx,>x10=60(%esp)
1947movl %ebx,60(%esp)
1948
1949# qhasm: p += x3
1950# asm 1: addl <x3=stack32#20,<p=int32#1
1951# asm 2: addl <x3=76(%esp),<p=%eax
1952addl 76(%esp),%eax
1953
1954# qhasm: p <<<= 7
1955# asm 1: rol  $7,<p=int32#1
1956# asm 2: rol  $7,<p=%eax
1957.byte 0xf3
1958rol  $7,%eax
1959
1960# qhasm: 		x5 = s
1961# asm 1: movl <s=int32#3,>x5=stack32#11
1962# asm 2: movl <s=%edx,>x5=40(%esp)
1963movl %edx,40(%esp)
1964
1965# qhasm: 				t += x9
1966# asm 1: addl <x9=stack32#15,<t=int32#4
1967# asm 2: addl <x9=56(%esp),<t=%ebx
1968addl 56(%esp),%ebx
1969
1970# qhasm: 						x15 = w
1971# asm 1: movl <w=int32#5,>x15=stack32#21
1972# asm 2: movl <w=%esi,>x15=80(%esp)
1973movl %esi,80(%esp)
1974
1975# qhasm: 		r = x4
1976# asm 1: movl <x4=stack32#9,>r=int32#6
1977# asm 2: movl <x4=32(%esp),>r=%edi
1978movl 32(%esp),%edi
1979
1980# qhasm: 		r += s
1981# asm 1: add  <s=int32#3,<r=int32#6
1982# asm 2: add  <s=%edx,<r=%edi
1983add  %edx,%edi
1984
1985# qhasm: 						v = x14
1986# asm 1: movl <x14=stack32#10,>v=int32#7
1987# asm 2: movl <x14=36(%esp),>v=%ebp
1988movl 36(%esp),%ebp
1989
1990# qhasm: 						v += w
1991# asm 1: add  <w=int32#5,<v=int32#7
1992# asm 2: add  <w=%esi,<v=%ebp
1993add  %esi,%ebp
1994
1995# qhasm: p ^= x1
1996# asm 1: xorl <x1=stack32#17,<p=int32#1
1997# asm 2: xorl <x1=64(%esp),<p=%eax
1998xorl 64(%esp),%eax
1999
2000# qhasm: 				t <<<= 7
2001# asm 1: rol  $7,<t=int32#4
2002# asm 2: rol  $7,<t=%ebx
2003.byte 0xf3
2004rol  $7,%ebx
2005
2006# qhasm: 				t ^= x11
2007# asm 1: xorl <x11=stack32#18,<t=int32#4
2008# asm 2: xorl <x11=68(%esp),<t=%ebx
2009xorl 68(%esp),%ebx
2010
2011# qhasm: 		r <<<= 7
2012# asm 1: rol  $7,<r=int32#6
2013# asm 2: rol  $7,<r=%edi
2014.byte 0xf3
2015rol  $7,%edi
2016
2017# qhasm: 		r ^= x6
2018# asm 1: xorl <x6=stack32#12,<r=int32#6
2019# asm 2: xorl <x6=44(%esp),<r=%edi
2020xorl 44(%esp),%edi
2021
2022# qhasm: 						v <<<= 7
2023# asm 1: rol  $7,<v=int32#7
2024# asm 2: rol  $7,<v=%ebp
2025.byte 0xf3
2026rol  $7,%ebp
2027
2028# qhasm: 						v ^= x12
2029# asm 1: xorl <x12=stack32#7,<v=int32#7
2030# asm 2: xorl <x12=24(%esp),<v=%ebp
2031xorl 24(%esp),%ebp
2032
2033# qhasm: x1 = p
2034# asm 1: movl <p=int32#1,>x1=stack32#7
2035# asm 2: movl <p=%eax,>x1=24(%esp)
2036movl %eax,24(%esp)
2037
2038# qhasm: 				x11 = t
2039# asm 1: movl <t=int32#4,>x11=stack32#17
2040# asm 2: movl <t=%ebx,>x11=64(%esp)
2041movl %ebx,64(%esp)
2042
2043# qhasm: p += x0
2044# asm 1: addl <x0=stack32#6,<p=int32#1
2045# asm 2: addl <x0=20(%esp),<p=%eax
2046addl 20(%esp),%eax
2047
2048# qhasm: 		x6 = r
2049# asm 1: movl <r=int32#6,>x6=stack32#12
2050# asm 2: movl <r=%edi,>x6=44(%esp)
2051movl %edi,44(%esp)
2052
2053# qhasm: 				t += x10
2054# asm 1: addl <x10=stack32#16,<t=int32#4
2055# asm 2: addl <x10=60(%esp),<t=%ebx
2056addl 60(%esp),%ebx
2057
2058# qhasm: 						x12 = v
2059# asm 1: movl <v=int32#7,>x12=stack32#18
2060# asm 2: movl <v=%ebp,>x12=68(%esp)
2061movl %ebp,68(%esp)
2062
2063# qhasm: p <<<= 9
2064# asm 1: rol  $9,<p=int32#1
2065# asm 2: rol  $9,<p=%eax
2066.byte 0xf3
2067rol  $9,%eax
2068
2069# qhasm: p ^= x2
2070# asm 1: xorl <x2=stack32#13,<p=int32#1
2071# asm 2: xorl <x2=48(%esp),<p=%eax
2072xorl 48(%esp),%eax
2073
2074# qhasm: 				t <<<= 9
2075# asm 1: rol  $9,<t=int32#4
2076# asm 2: rol  $9,<t=%ebx
2077rol  $9,%ebx
2078
2079# qhasm: 				t ^= x8
2080# asm 1: xorl <x8=stack32#8,<t=int32#4
2081# asm 2: xorl <x8=28(%esp),<t=%ebx
2082xorl 28(%esp),%ebx
2083
2084# qhasm: 		s += r
2085# asm 1: add  <r=int32#6,<s=int32#3
2086# asm 2: add  <r=%edi,<s=%edx
2087add  %edi,%edx
2088
2089# qhasm: 		s <<<= 9
2090# asm 1: rol  $9,<s=int32#3
2091# asm 2: rol  $9,<s=%edx
2092rol  $9,%edx
2093
2094# qhasm: 		s ^= x7
2095# asm 1: xorl <x7=stack32#19,<s=int32#3
2096# asm 2: xorl <x7=72(%esp),<s=%edx
2097.byte 0xf3
2098xorl 72(%esp),%edx
2099
2100# qhasm: 						w += v
2101# asm 1: add  <v=int32#7,<w=int32#5
2102# asm 2: add  <v=%ebp,<w=%esi
2103.byte 0xf3
2104add  %ebp,%esi
2105
2106# qhasm: 						w <<<= 9
2107# asm 1: rol  $9,<w=int32#5
2108# asm 2: rol  $9,<w=%esi
2109.byte 0xf3
2110rol  $9,%esi
2111
2112# qhasm: 						w ^= x13
2113# asm 1: xorl <x13=stack32#14,<w=int32#5
2114# asm 2: xorl <x13=52(%esp),<w=%esi
2115xorl 52(%esp),%esi
2116
2117# qhasm: x2 = p
2118# asm 1: movl <p=int32#1,>x2=stack32#8
2119# asm 2: movl <p=%eax,>x2=28(%esp)
2120movl %eax,28(%esp)
2121
2122# qhasm: 				x8 = t
2123# asm 1: movl <t=int32#4,>x8=stack32#14
2124# asm 2: movl <t=%ebx,>x8=52(%esp)
2125movl %ebx,52(%esp)
2126
2127# qhasm: p += x1
2128# asm 1: addl <x1=stack32#7,<p=int32#1
2129# asm 2: addl <x1=24(%esp),<p=%eax
2130addl 24(%esp),%eax
2131
2132# qhasm: 		x7 = s
2133# asm 1: movl <s=int32#3,>x7=stack32#13
2134# asm 2: movl <s=%edx,>x7=48(%esp)
2135movl %edx,48(%esp)
2136
2137# qhasm: 				t += x11
2138# asm 1: addl <x11=stack32#17,<t=int32#4
2139# asm 2: addl <x11=64(%esp),<t=%ebx
2140addl 64(%esp),%ebx
2141
2142# qhasm: 						x13 = w
2143# asm 1: movl <w=int32#5,>x13=stack32#19
2144# asm 2: movl <w=%esi,>x13=72(%esp)
2145movl %esi,72(%esp)
2146
2147# qhasm: p <<<= 13
2148# asm 1: rol  $13,<p=int32#1
2149# asm 2: rol  $13,<p=%eax
2150.byte 0xf3
2151rol  $13,%eax
2152
2153# qhasm: p ^= x3
2154# asm 1: xorl <x3=stack32#20,<p=int32#1
2155# asm 2: xorl <x3=76(%esp),<p=%eax
2156xorl 76(%esp),%eax
2157
2158# qhasm: 				t <<<= 13
2159# asm 1: rol  $13,<t=int32#4
2160# asm 2: rol  $13,<t=%ebx
2161rol  $13,%ebx
2162
2163# qhasm: 				t ^= x9
2164# asm 1: xorl <x9=stack32#15,<t=int32#4
2165# asm 2: xorl <x9=56(%esp),<t=%ebx
2166xorl 56(%esp),%ebx
2167
2168# qhasm: 		r += s
2169# asm 1: add  <s=int32#3,<r=int32#6
2170# asm 2: add  <s=%edx,<r=%edi
2171add  %edx,%edi
2172
2173# qhasm: 		r <<<= 13
2174# asm 1: rol  $13,<r=int32#6
2175# asm 2: rol  $13,<r=%edi
2176rol  $13,%edi
2177
2178# qhasm: 		r ^= x4
2179# asm 1: xorl <x4=stack32#9,<r=int32#6
2180# asm 2: xorl <x4=32(%esp),<r=%edi
2181xorl 32(%esp),%edi
2182
2183# qhasm: 						v += w
2184# asm 1: add  <w=int32#5,<v=int32#7
2185# asm 2: add  <w=%esi,<v=%ebp
2186.byte 0xf3
2187add  %esi,%ebp
2188
2189# qhasm: 						v <<<= 13
2190# asm 1: rol  $13,<v=int32#7
2191# asm 2: rol  $13,<v=%ebp
2192.byte 0xf3
2193rol  $13,%ebp
2194
2195# qhasm: 						v ^= x14
2196# asm 1: xorl <x14=stack32#10,<v=int32#7
2197# asm 2: xorl <x14=36(%esp),<v=%ebp
2198.byte 0xf3
2199xorl 36(%esp),%ebp
2200
2201# qhasm: x3 = p
2202# asm 1: movl <p=int32#1,>x3=stack32#9
2203# asm 2: movl <p=%eax,>x3=32(%esp)
2204movl %eax,32(%esp)
2205
2206# qhasm: 				x9 = t
2207# asm 1: movl <t=int32#4,>x9=stack32#15
2208# asm 2: movl <t=%ebx,>x9=56(%esp)
2209movl %ebx,56(%esp)
2210
2211# qhasm: p += x2
2212# asm 1: addl <x2=stack32#8,<p=int32#1
2213# asm 2: addl <x2=28(%esp),<p=%eax
2214addl 28(%esp),%eax
2215
2216# qhasm: 		x4 = r
2217# asm 1: movl <r=int32#6,>x4=stack32#10
2218# asm 2: movl <r=%edi,>x4=36(%esp)
2219movl %edi,36(%esp)
2220
2221# qhasm: 				t += x8
2222# asm 1: addl <x8=stack32#14,<t=int32#4
2223# asm 2: addl <x8=52(%esp),<t=%ebx
2224addl 52(%esp),%ebx
2225
2226# qhasm: 						x14 = v
2227# asm 1: movl <v=int32#7,>x14=stack32#20
2228# asm 2: movl <v=%ebp,>x14=76(%esp)
2229movl %ebp,76(%esp)
2230
2231# qhasm: p <<<= 18
2232# asm 1: rol  $18,<p=int32#1
2233# asm 2: rol  $18,<p=%eax
2234.byte 0xf3
2235rol  $18,%eax
2236
2237# qhasm: p ^= x0
2238# asm 1: xorl <x0=stack32#6,<p=int32#1
2239# asm 2: xorl <x0=20(%esp),<p=%eax
2240xorl 20(%esp),%eax
2241
2242# qhasm: 				t <<<= 18
2243# asm 1: rol  $18,<t=int32#4
2244# asm 2: rol  $18,<t=%ebx
2245.byte 0xf3
2246rol  $18,%ebx
2247
2248# qhasm: 				t ^= x10
2249# asm 1: xorl <x10=stack32#16,<t=int32#4
2250# asm 2: xorl <x10=60(%esp),<t=%ebx
2251xorl 60(%esp),%ebx
2252
2253# qhasm: 		s += r
2254# asm 1: add  <r=int32#6,<s=int32#3
2255# asm 2: add  <r=%edi,<s=%edx
2256add  %edi,%edx
2257
2258# qhasm: 		s <<<= 18
2259# asm 1: rol  $18,<s=int32#3
2260# asm 2: rol  $18,<s=%edx
2261.byte 0xf3
2262rol  $18,%edx
2263
2264# qhasm: 		s ^= x5
2265# asm 1: xorl <x5=stack32#11,<s=int32#3
2266# asm 2: xorl <x5=40(%esp),<s=%edx
2267xorl 40(%esp),%edx
2268
2269# qhasm: 						w += v
2270# asm 1: add  <v=int32#7,<w=int32#5
2271# asm 2: add  <v=%ebp,<w=%esi
2272add  %ebp,%esi
2273
2274# qhasm: 						w <<<= 18
2275# asm 1: rol  $18,<w=int32#5
2276# asm 2: rol  $18,<w=%esi
2277rol  $18,%esi
2278
2279# qhasm: 						w ^= x15
2280# asm 1: xorl <x15=stack32#21,<w=int32#5
2281# asm 2: xorl <x15=80(%esp),<w=%esi
2282xorl 80(%esp),%esi
2283
2284# qhasm:                  unsigned>? i -= 4
2285# asm 1: sub  $4,<i=int32#2
2286# asm 2: sub  $4,<i=%ecx
2287sub  $4,%ecx
2288# comment:fp stack unchanged by jump
2289
2290# qhasm: goto mainloop if unsigned>
2291ja ._mainloop
2292
2293# qhasm: x0 = p
2294# asm 1: movl <p=int32#1,>x0=stack32#6
2295# asm 2: movl <p=%eax,>x0=20(%esp)
2296movl %eax,20(%esp)
2297
2298# qhasm: x5 = s
2299# asm 1: movl <s=int32#3,>x5=stack32#11
2300# asm 2: movl <s=%edx,>x5=40(%esp)
2301movl %edx,40(%esp)
2302
2303# qhasm: x10 = t
2304# asm 1: movl <t=int32#4,>x10=stack32#16
2305# asm 2: movl <t=%ebx,>x10=60(%esp)
2306movl %ebx,60(%esp)
2307
2308# qhasm: x15 = w
2309# asm 1: movl <w=int32#5,>x15=stack32#21
2310# asm 2: movl <w=%esi,>x15=80(%esp)
2311movl %esi,80(%esp)
2312
2313# qhasm:   out = out_backup
2314# asm 1: movl <out_backup=stack32#40,>out=int32#6
2315# asm 2: movl <out_backup=156(%esp),>out=%edi
2316movl 156(%esp),%edi
2317
2318# qhasm:   m = m_backup
2319# asm 1: movl <m_backup=stack32#41,>m=int32#5
2320# asm 2: movl <m_backup=160(%esp),>m=%esi
2321movl 160(%esp),%esi
2322
2323# qhasm:   in0 = x0
2324# asm 1: movl <x0=stack32#6,>in0=int32#1
2325# asm 2: movl <x0=20(%esp),>in0=%eax
2326movl 20(%esp),%eax
2327
2328# qhasm:   in1 = x1
2329# asm 1: movl <x1=stack32#7,>in1=int32#2
2330# asm 2: movl <x1=24(%esp),>in1=%ecx
2331movl 24(%esp),%ecx
2332
2333# qhasm:   in0 += j0
2334# asm 1: addl <j0=stack32#22,<in0=int32#1
2335# asm 2: addl <j0=84(%esp),<in0=%eax
2336addl 84(%esp),%eax
2337
2338# qhasm:   in1 += j1
2339# asm 1: addl <j1=stack32#23,<in1=int32#2
2340# asm 2: addl <j1=88(%esp),<in1=%ecx
2341addl 88(%esp),%ecx
2342
2343# qhasm:   in0 ^= *(uint32 *) (m + 0)
2344# asm 1: xorl 0(<m=int32#5),<in0=int32#1
2345# asm 2: xorl 0(<m=%esi),<in0=%eax
2346xorl 0(%esi),%eax
2347
2348# qhasm:   in1 ^= *(uint32 *) (m + 4)
2349# asm 1: xorl 4(<m=int32#5),<in1=int32#2
2350# asm 2: xorl 4(<m=%esi),<in1=%ecx
2351xorl 4(%esi),%ecx
2352
2353# qhasm:   *(uint32 *) (out + 0) = in0
2354# asm 1: movl <in0=int32#1,0(<out=int32#6)
2355# asm 2: movl <in0=%eax,0(<out=%edi)
2356movl %eax,0(%edi)
2357
2358# qhasm:   *(uint32 *) (out + 4) = in1
2359# asm 1: movl <in1=int32#2,4(<out=int32#6)
2360# asm 2: movl <in1=%ecx,4(<out=%edi)
2361movl %ecx,4(%edi)
2362
2363# qhasm:   in2 = x2
2364# asm 1: movl <x2=stack32#8,>in2=int32#7
2365# asm 2: movl <x2=28(%esp),>in2=%ebp
2366movl 28(%esp),%ebp
2367
2368# qhasm:   in3 = x3
2369# asm 1: movl <x3=stack32#9,>in3=int32#1
2370# asm 2: movl <x3=32(%esp),>in3=%eax
2371movl 32(%esp),%eax
2372
2373# qhasm:   in2 += j2
2374# asm 1: addl <j2=stack32#24,<in2=int32#7
2375# asm 2: addl <j2=92(%esp),<in2=%ebp
2376addl 92(%esp),%ebp
2377
2378# qhasm:   in3 += j3
2379# asm 1: addl <j3=stack32#25,<in3=int32#1
2380# asm 2: addl <j3=96(%esp),<in3=%eax
2381addl 96(%esp),%eax
2382
2383# qhasm:   in2 ^= *(uint32 *) (m + 8)
2384# asm 1: xorl 8(<m=int32#5),<in2=int32#7
2385# asm 2: xorl 8(<m=%esi),<in2=%ebp
2386xorl 8(%esi),%ebp
2387
2388# qhasm:   in3 ^= *(uint32 *) (m + 12)
2389# asm 1: xorl 12(<m=int32#5),<in3=int32#1
2390# asm 2: xorl 12(<m=%esi),<in3=%eax
2391xorl 12(%esi),%eax
2392
2393# qhasm:   *(uint32 *) (out + 8) = in2
2394# asm 1: movl <in2=int32#7,8(<out=int32#6)
2395# asm 2: movl <in2=%ebp,8(<out=%edi)
2396movl %ebp,8(%edi)
2397
2398# qhasm:   *(uint32 *) (out + 12) = in3
2399# asm 1: movl <in3=int32#1,12(<out=int32#6)
2400# asm 2: movl <in3=%eax,12(<out=%edi)
2401movl %eax,12(%edi)
2402
2403# qhasm:   in4 = x4
2404# asm 1: movl <x4=stack32#10,>in4=int32#2
2405# asm 2: movl <x4=36(%esp),>in4=%ecx
2406movl 36(%esp),%ecx
2407
2408# qhasm:   in5 = x5
2409# asm 1: movl <x5=stack32#11,>in5=int32#7
2410# asm 2: movl <x5=40(%esp),>in5=%ebp
2411movl 40(%esp),%ebp
2412
2413# qhasm:   in4 += j4
2414# asm 1: addl <j4=stack32#26,<in4=int32#2
2415# asm 2: addl <j4=100(%esp),<in4=%ecx
2416addl 100(%esp),%ecx
2417
2418# qhasm:   in5 += j5
2419# asm 1: addl <j5=stack32#27,<in5=int32#7
2420# asm 2: addl <j5=104(%esp),<in5=%ebp
2421addl 104(%esp),%ebp
2422
2423# qhasm:   in4 ^= *(uint32 *) (m + 16)
2424# asm 1: xorl 16(<m=int32#5),<in4=int32#2
2425# asm 2: xorl 16(<m=%esi),<in4=%ecx
2426xorl 16(%esi),%ecx
2427
2428# qhasm:   in5 ^= *(uint32 *) (m + 20)
2429# asm 1: xorl 20(<m=int32#5),<in5=int32#7
2430# asm 2: xorl 20(<m=%esi),<in5=%ebp
2431xorl 20(%esi),%ebp
2432
2433# qhasm:   *(uint32 *) (out + 16) = in4
2434# asm 1: movl <in4=int32#2,16(<out=int32#6)
2435# asm 2: movl <in4=%ecx,16(<out=%edi)
2436movl %ecx,16(%edi)
2437
2438# qhasm:   *(uint32 *) (out + 20) = in5
2439# asm 1: movl <in5=int32#7,20(<out=int32#6)
2440# asm 2: movl <in5=%ebp,20(<out=%edi)
2441movl %ebp,20(%edi)
2442
2443# qhasm:   in6 = x6
2444# asm 1: movl <x6=stack32#12,>in6=int32#1
2445# asm 2: movl <x6=44(%esp),>in6=%eax
2446movl 44(%esp),%eax
2447
2448# qhasm:   in7 = x7
2449# asm 1: movl <x7=stack32#13,>in7=int32#2
2450# asm 2: movl <x7=48(%esp),>in7=%ecx
2451movl 48(%esp),%ecx
2452
2453# qhasm:   in6 += j6
2454# asm 1: addl <j6=stack32#28,<in6=int32#1
2455# asm 2: addl <j6=108(%esp),<in6=%eax
2456addl 108(%esp),%eax
2457
2458# qhasm:   in7 += j7
2459# asm 1: addl <j7=stack32#29,<in7=int32#2
2460# asm 2: addl <j7=112(%esp),<in7=%ecx
2461addl 112(%esp),%ecx
2462
2463# qhasm:   in6 ^= *(uint32 *) (m + 24)
2464# asm 1: xorl 24(<m=int32#5),<in6=int32#1
2465# asm 2: xorl 24(<m=%esi),<in6=%eax
2466xorl 24(%esi),%eax
2467
2468# qhasm:   in7 ^= *(uint32 *) (m + 28)
2469# asm 1: xorl 28(<m=int32#5),<in7=int32#2
2470# asm 2: xorl 28(<m=%esi),<in7=%ecx
2471xorl 28(%esi),%ecx
2472
2473# qhasm:   *(uint32 *) (out + 24) = in6
2474# asm 1: movl <in6=int32#1,24(<out=int32#6)
2475# asm 2: movl <in6=%eax,24(<out=%edi)
2476movl %eax,24(%edi)
2477
2478# qhasm:   *(uint32 *) (out + 28) = in7
2479# asm 1: movl <in7=int32#2,28(<out=int32#6)
2480# asm 2: movl <in7=%ecx,28(<out=%edi)
2481movl %ecx,28(%edi)
2482
2483# qhasm:   in8 = x8
2484# asm 1: movl <x8=stack32#14,>in8=int32#1
2485# asm 2: movl <x8=52(%esp),>in8=%eax
2486movl 52(%esp),%eax
2487
2488# qhasm:   in9 = x9
2489# asm 1: movl <x9=stack32#15,>in9=int32#2
2490# asm 2: movl <x9=56(%esp),>in9=%ecx
2491movl 56(%esp),%ecx
2492
2493# qhasm:   in8 += j8
2494# asm 1: addl <j8=stack32#30,<in8=int32#1
2495# asm 2: addl <j8=116(%esp),<in8=%eax
2496addl 116(%esp),%eax
2497
2498# qhasm:   in9 += j9
2499# asm 1: addl <j9=stack32#31,<in9=int32#2
2500# asm 2: addl <j9=120(%esp),<in9=%ecx
2501addl 120(%esp),%ecx
2502
2503# qhasm:   in8 ^= *(uint32 *) (m + 32)
2504# asm 1: xorl 32(<m=int32#5),<in8=int32#1
2505# asm 2: xorl 32(<m=%esi),<in8=%eax
2506xorl 32(%esi),%eax
2507
2508# qhasm:   in9 ^= *(uint32 *) (m + 36)
2509# asm 1: xorl 36(<m=int32#5),<in9=int32#2
2510# asm 2: xorl 36(<m=%esi),<in9=%ecx
2511xorl 36(%esi),%ecx
2512
2513# qhasm:   *(uint32 *) (out + 32) = in8
2514# asm 1: movl <in8=int32#1,32(<out=int32#6)
2515# asm 2: movl <in8=%eax,32(<out=%edi)
2516movl %eax,32(%edi)
2517
2518# qhasm:   *(uint32 *) (out + 36) = in9
2519# asm 1: movl <in9=int32#2,36(<out=int32#6)
2520# asm 2: movl <in9=%ecx,36(<out=%edi)
2521movl %ecx,36(%edi)
2522
2523# qhasm:   in10 = x10
2524# asm 1: movl <x10=stack32#16,>in10=int32#2
2525# asm 2: movl <x10=60(%esp),>in10=%ecx
2526movl 60(%esp),%ecx
2527
2528# qhasm:   in11 = x11
2529# asm 1: movl <x11=stack32#17,>in11=int32#7
2530# asm 2: movl <x11=64(%esp),>in11=%ebp
2531movl 64(%esp),%ebp
2532
2533# qhasm:   in10 += j10
2534# asm 1: addl <j10=stack32#32,<in10=int32#2
2535# asm 2: addl <j10=124(%esp),<in10=%ecx
2536addl 124(%esp),%ecx
2537
2538# qhasm:   in11 += j11
2539# asm 1: addl <j11=stack32#33,<in11=int32#7
2540# asm 2: addl <j11=128(%esp),<in11=%ebp
2541addl 128(%esp),%ebp
2542
2543# qhasm:   in10 ^= *(uint32 *) (m + 40)
2544# asm 1: xorl 40(<m=int32#5),<in10=int32#2
2545# asm 2: xorl 40(<m=%esi),<in10=%ecx
2546xorl 40(%esi),%ecx
2547
2548# qhasm:   in11 ^= *(uint32 *) (m + 44)
2549# asm 1: xorl 44(<m=int32#5),<in11=int32#7
2550# asm 2: xorl 44(<m=%esi),<in11=%ebp
2551xorl 44(%esi),%ebp
2552
2553# qhasm:   *(uint32 *) (out + 40) = in10
2554# asm 1: movl <in10=int32#2,40(<out=int32#6)
2555# asm 2: movl <in10=%ecx,40(<out=%edi)
2556movl %ecx,40(%edi)
2557
2558# qhasm:   *(uint32 *) (out + 44) = in11
2559# asm 1: movl <in11=int32#7,44(<out=int32#6)
2560# asm 2: movl <in11=%ebp,44(<out=%edi)
2561movl %ebp,44(%edi)
2562
2563# qhasm:   in12 = x12
2564# asm 1: movl <x12=stack32#18,>in12=int32#1
2565# asm 2: movl <x12=68(%esp),>in12=%eax
2566movl 68(%esp),%eax
2567
2568# qhasm:   in13 = x13
2569# asm 1: movl <x13=stack32#19,>in13=int32#2
2570# asm 2: movl <x13=72(%esp),>in13=%ecx
2571movl 72(%esp),%ecx
2572
2573# qhasm:   in12 += j12
2574# asm 1: addl <j12=stack32#34,<in12=int32#1
2575# asm 2: addl <j12=132(%esp),<in12=%eax
2576addl 132(%esp),%eax
2577
2578# qhasm:   in13 += j13
2579# asm 1: addl <j13=stack32#35,<in13=int32#2
2580# asm 2: addl <j13=136(%esp),<in13=%ecx
2581addl 136(%esp),%ecx
2582
2583# qhasm:   in12 ^= *(uint32 *) (m + 48)
2584# asm 1: xorl 48(<m=int32#5),<in12=int32#1
2585# asm 2: xorl 48(<m=%esi),<in12=%eax
2586xorl 48(%esi),%eax
2587
2588# qhasm:   in13 ^= *(uint32 *) (m + 52)
2589# asm 1: xorl 52(<m=int32#5),<in13=int32#2
2590# asm 2: xorl 52(<m=%esi),<in13=%ecx
2591xorl 52(%esi),%ecx
2592
2593# qhasm:   *(uint32 *) (out + 48) = in12
2594# asm 1: movl <in12=int32#1,48(<out=int32#6)
2595# asm 2: movl <in12=%eax,48(<out=%edi)
2596movl %eax,48(%edi)
2597
2598# qhasm:   *(uint32 *) (out + 52) = in13
2599# asm 1: movl <in13=int32#2,52(<out=int32#6)
2600# asm 2: movl <in13=%ecx,52(<out=%edi)
2601movl %ecx,52(%edi)
2602
2603# qhasm:   in14 = x14
2604# asm 1: movl <x14=stack32#20,>in14=int32#7
2605# asm 2: movl <x14=76(%esp),>in14=%ebp
2606movl 76(%esp),%ebp
2607
2608# qhasm:   in15 = x15
2609# asm 1: movl <x15=stack32#21,>in15=int32#1
2610# asm 2: movl <x15=80(%esp),>in15=%eax
2611movl 80(%esp),%eax
2612
2613# qhasm:   in14 += j14
2614# asm 1: addl <j14=stack32#36,<in14=int32#7
2615# asm 2: addl <j14=140(%esp),<in14=%ebp
2616addl 140(%esp),%ebp
2617
2618# qhasm:   in15 += j15
2619# asm 1: addl <j15=stack32#37,<in15=int32#1
2620# asm 2: addl <j15=144(%esp),<in15=%eax
2621addl 144(%esp),%eax
2622
2623# qhasm:   in14 ^= *(uint32 *) (m + 56)
2624# asm 1: xorl 56(<m=int32#5),<in14=int32#7
2625# asm 2: xorl 56(<m=%esi),<in14=%ebp
2626xorl 56(%esi),%ebp
2627
2628# qhasm:   in15 ^= *(uint32 *) (m + 60)
2629# asm 1: xorl 60(<m=int32#5),<in15=int32#1
2630# asm 2: xorl 60(<m=%esi),<in15=%eax
2631xorl 60(%esi),%eax
2632
2633# qhasm:   *(uint32 *) (out + 56) = in14
2634# asm 1: movl <in14=int32#7,56(<out=int32#6)
2635# asm 2: movl <in14=%ebp,56(<out=%edi)
2636movl %ebp,56(%edi)
2637
2638# qhasm:   *(uint32 *) (out + 60) = in15
2639# asm 1: movl <in15=int32#1,60(<out=int32#6)
2640# asm 2: movl <in15=%eax,60(<out=%edi)
2641movl %eax,60(%edi)
2642
2643# qhasm:   bytes = bytes_backup
2644# asm 1: movl <bytes_backup=stack32#42,>bytes=int32#4
2645# asm 2: movl <bytes_backup=164(%esp),>bytes=%ebx
2646movl 164(%esp),%ebx
2647
2648# qhasm:   in8 = j8
2649# asm 1: movl <j8=stack32#30,>in8=int32#7
2650# asm 2: movl <j8=116(%esp),>in8=%ebp
2651movl 116(%esp),%ebp
2652
2653# qhasm:   in9 = j9
2654# asm 1: movl <j9=stack32#31,>in9=int32#1
2655# asm 2: movl <j9=120(%esp),>in9=%eax
2656movl 120(%esp),%eax
2657
2658# qhasm:   in8 += 1
2659# asm 1: add  $1,<in8=int32#7
2660# asm 2: add  $1,<in8=%ebp
2661add  $1,%ebp
2662
2663# qhasm:   in9 += 0 + carry
2664# asm 1: adc  $0,<in9=int32#1
2665# asm 2: adc  $0,<in9=%eax
2666adc  $0,%eax
2667
2668# qhasm:   j8 = in8
2669# asm 1: movl <in8=int32#7,>j8=stack32#30
2670# asm 2: movl <in8=%ebp,>j8=116(%esp)
2671movl %ebp,116(%esp)
2672
2673# qhasm:   j9 = in9
2674# asm 1: movl <in9=int32#1,>j9=stack32#31
2675# asm 2: movl <in9=%eax,>j9=120(%esp)
2676movl %eax,120(%esp)
2677
2678# qhasm:                          unsigned>? unsigned<? bytes - 64
2679# asm 1: cmp  $64,<bytes=int32#4
2680# asm 2: cmp  $64,<bytes=%ebx
2681cmp  $64,%ebx
2682# comment:fp stack unchanged by jump
2683
2684# qhasm:   goto bytesatleast65 if unsigned>
2685ja ._bytesatleast65
2686# comment:fp stack unchanged by jump
2687
2688# qhasm:     goto bytesatleast64 if !unsigned<
2689jae ._bytesatleast64
2690
2691# qhasm:       m = out
2692# asm 1: mov  <out=int32#6,>m=int32#5
2693# asm 2: mov  <out=%edi,>m=%esi
2694mov  %edi,%esi
2695
2696# qhasm:       out = ctarget
2697# asm 1: movl <ctarget=stack32#39,>out=int32#6
2698# asm 2: movl <ctarget=152(%esp),>out=%edi
2699movl 152(%esp),%edi
2700
2701# qhasm:       i = bytes
2702# asm 1: mov  <bytes=int32#4,>i=int32#2
2703# asm 2: mov  <bytes=%ebx,>i=%ecx
2704mov  %ebx,%ecx
2705
2706# qhasm:       while (i) { *out++ = *m++; --i }
2707rep movsb
2708# comment:fp stack unchanged by fallthrough
2709
2710# qhasm:     bytesatleast64:
2711._bytesatleast64:
2712
2713# qhasm:     x = x_backup
2714# asm 1: movl <x_backup=stack32#38,>x=int32#3
2715# asm 2: movl <x_backup=148(%esp),>x=%edx
2716movl 148(%esp),%edx
2717
2718# qhasm:     in8 = j8
2719# asm 1: movl <j8=stack32#30,>in8=int32#1
2720# asm 2: movl <j8=116(%esp),>in8=%eax
2721movl 116(%esp),%eax
2722
2723# qhasm:     in9 = j9
2724# asm 1: movl <j9=stack32#31,>in9=int32#2
2725# asm 2: movl <j9=120(%esp),>in9=%ecx
2726movl 120(%esp),%ecx
2727
2728# qhasm:     *(uint32 *) (x + 32) = in8
2729# asm 1: movl <in8=int32#1,32(<x=int32#3)
2730# asm 2: movl <in8=%eax,32(<x=%edx)
2731movl %eax,32(%edx)
2732
2733# qhasm:     *(uint32 *) (x + 36) = in9
2734# asm 1: movl <in9=int32#2,36(<x=int32#3)
2735# asm 2: movl <in9=%ecx,36(<x=%edx)
2736movl %ecx,36(%edx)
2737# comment:fp stack unchanged by fallthrough
2738
2739# qhasm:     done:
2740._done:
2741
2742# qhasm:     eax = eax_stack
2743# asm 1: movl <eax_stack=stack32#1,>eax=int32#1
2744# asm 2: movl <eax_stack=0(%esp),>eax=%eax
2745movl 0(%esp),%eax
2746
2747# qhasm:     ebx = ebx_stack
2748# asm 1: movl <ebx_stack=stack32#2,>ebx=int32#4
2749# asm 2: movl <ebx_stack=4(%esp),>ebx=%ebx
2750movl 4(%esp),%ebx
2751
2752# qhasm:     esi = esi_stack
2753# asm 1: movl <esi_stack=stack32#3,>esi=int32#5
2754# asm 2: movl <esi_stack=8(%esp),>esi=%esi
2755movl 8(%esp),%esi
2756
2757# qhasm:     edi = edi_stack
2758# asm 1: movl <edi_stack=stack32#4,>edi=int32#6
2759# asm 2: movl <edi_stack=12(%esp),>edi=%edi
2760movl 12(%esp),%edi
2761
2762# qhasm:     ebp = ebp_stack
2763# asm 1: movl <ebp_stack=stack32#5,>ebp=int32#7
2764# asm 2: movl <ebp_stack=16(%esp),>ebp=%ebp
2765movl 16(%esp),%ebp
2766
2767# qhasm:     leave
2768add %eax,%esp
2769ret
2770
2771# qhasm:   bytesatleast65:
2772._bytesatleast65:
2773
2774# qhasm:   bytes -= 64
2775# asm 1: sub  $64,<bytes=int32#4
2776# asm 2: sub  $64,<bytes=%ebx
2777sub  $64,%ebx
2778
2779# qhasm:   out += 64
2780# asm 1: add  $64,<out=int32#6
2781# asm 2: add  $64,<out=%edi
2782add  $64,%edi
2783
2784# qhasm:   m += 64
2785# asm 1: add  $64,<m=int32#5
2786# asm 2: add  $64,<m=%esi
2787add  $64,%esi
2788# comment:fp stack unchanged by jump
2789
2790# qhasm: goto bytesatleast1
2791jmp ._bytesatleast1
2792
2793# qhasm: enter ECRYPT_init
2794.text
2795.p2align 5
2796.globl _ECRYPT_init
2797.globl ECRYPT_init
2798_ECRYPT_init:
2799ECRYPT_init:
2800mov %esp,%eax
2801and $31,%eax
2802add $256,%eax
2803sub %eax,%esp
2804
2805# qhasm: leave
2806add %eax,%esp
2807ret
2808
2809# qhasm: enter ECRYPT_keysetup
2810.text
2811.p2align 5
2812.globl _ECRYPT_keysetup
2813.globl ECRYPT_keysetup
2814_ECRYPT_keysetup:
2815ECRYPT_keysetup:
2816mov %esp,%eax
2817and $31,%eax
2818add $256,%eax
2819sub %eax,%esp
2820
2821# qhasm:   eax_stack = eax
2822# asm 1: movl <eax=int32#1,>eax_stack=stack32#1
2823# asm 2: movl <eax=%eax,>eax_stack=0(%esp)
2824movl %eax,0(%esp)
2825
2826# qhasm:   ebx_stack = ebx
2827# asm 1: movl <ebx=int32#4,>ebx_stack=stack32#2
2828# asm 2: movl <ebx=%ebx,>ebx_stack=4(%esp)
2829movl %ebx,4(%esp)
2830
2831# qhasm:   esi_stack = esi
2832# asm 1: movl <esi=int32#5,>esi_stack=stack32#3
2833# asm 2: movl <esi=%esi,>esi_stack=8(%esp)
2834movl %esi,8(%esp)
2835
2836# qhasm:   edi_stack = edi
2837# asm 1: movl <edi=int32#6,>edi_stack=stack32#4
2838# asm 2: movl <edi=%edi,>edi_stack=12(%esp)
2839movl %edi,12(%esp)
2840
2841# qhasm:   ebp_stack = ebp
2842# asm 1: movl <ebp=int32#7,>ebp_stack=stack32#5
2843# asm 2: movl <ebp=%ebp,>ebp_stack=16(%esp)
2844movl %ebp,16(%esp)
2845
2846# qhasm:   k = arg2
2847# asm 1: movl <arg2=stack32#-2,>k=int32#2
2848# asm 2: movl <arg2=8(%esp,%eax),>k=%ecx
2849movl 8(%esp,%eax),%ecx
2850
2851# qhasm:   kbits = arg3
2852# asm 1: movl <arg3=stack32#-3,>kbits=int32#3
2853# asm 2: movl <arg3=12(%esp,%eax),>kbits=%edx
2854movl 12(%esp,%eax),%edx
2855
2856# qhasm:   x = arg1
2857# asm 1: movl <arg1=stack32#-1,>x=int32#1
2858# asm 2: movl <arg1=4(%esp,%eax),>x=%eax
2859movl 4(%esp,%eax),%eax
2860
2861# qhasm:   in1 = *(uint32 *) (k + 0)
2862# asm 1: movl 0(<k=int32#2),>in1=int32#4
2863# asm 2: movl 0(<k=%ecx),>in1=%ebx
2864movl 0(%ecx),%ebx
2865
2866# qhasm:   in2 = *(uint32 *) (k + 4)
2867# asm 1: movl 4(<k=int32#2),>in2=int32#5
2868# asm 2: movl 4(<k=%ecx),>in2=%esi
2869movl 4(%ecx),%esi
2870
2871# qhasm:   in3 = *(uint32 *) (k + 8)
2872# asm 1: movl 8(<k=int32#2),>in3=int32#6
2873# asm 2: movl 8(<k=%ecx),>in3=%edi
2874movl 8(%ecx),%edi
2875
2876# qhasm:   in4 = *(uint32 *) (k + 12)
2877# asm 1: movl 12(<k=int32#2),>in4=int32#7
2878# asm 2: movl 12(<k=%ecx),>in4=%ebp
2879movl 12(%ecx),%ebp
2880
2881# qhasm:   *(uint32 *) (x + 4) = in1
2882# asm 1: movl <in1=int32#4,4(<x=int32#1)
2883# asm 2: movl <in1=%ebx,4(<x=%eax)
2884movl %ebx,4(%eax)
2885
2886# qhasm:   *(uint32 *) (x + 8) = in2
2887# asm 1: movl <in2=int32#5,8(<x=int32#1)
2888# asm 2: movl <in2=%esi,8(<x=%eax)
2889movl %esi,8(%eax)
2890
2891# qhasm:   *(uint32 *) (x + 12) = in3
2892# asm 1: movl <in3=int32#6,12(<x=int32#1)
2893# asm 2: movl <in3=%edi,12(<x=%eax)
2894movl %edi,12(%eax)
2895
2896# qhasm:   *(uint32 *) (x + 16) = in4
2897# asm 1: movl <in4=int32#7,16(<x=int32#1)
2898# asm 2: movl <in4=%ebp,16(<x=%eax)
2899movl %ebp,16(%eax)
2900
2901# qhasm:                    unsigned<? kbits - 256
2902# asm 1: cmp  $256,<kbits=int32#3
2903# asm 2: cmp  $256,<kbits=%edx
2904cmp  $256,%edx
2905# comment:fp stack unchanged by jump
2906
2907# qhasm:   goto kbits128 if unsigned<
2908jb ._kbits128
2909
2910# qhasm:   kbits256:
2911._kbits256:
2912
2913# qhasm:     in11 = *(uint32 *) (k + 16)
2914# asm 1: movl 16(<k=int32#2),>in11=int32#3
2915# asm 2: movl 16(<k=%ecx),>in11=%edx
2916movl 16(%ecx),%edx
2917
2918# qhasm:     in12 = *(uint32 *) (k + 20)
2919# asm 1: movl 20(<k=int32#2),>in12=int32#4
2920# asm 2: movl 20(<k=%ecx),>in12=%ebx
2921movl 20(%ecx),%ebx
2922
2923# qhasm:     in13 = *(uint32 *) (k + 24)
2924# asm 1: movl 24(<k=int32#2),>in13=int32#5
2925# asm 2: movl 24(<k=%ecx),>in13=%esi
2926movl 24(%ecx),%esi
2927
2928# qhasm:     in14 = *(uint32 *) (k + 28)
2929# asm 1: movl 28(<k=int32#2),>in14=int32#2
2930# asm 2: movl 28(<k=%ecx),>in14=%ecx
2931movl 28(%ecx),%ecx
2932
2933# qhasm:     *(uint32 *) (x + 44) = in11
2934# asm 1: movl <in11=int32#3,44(<x=int32#1)
2935# asm 2: movl <in11=%edx,44(<x=%eax)
2936movl %edx,44(%eax)
2937
2938# qhasm:     *(uint32 *) (x + 48) = in12
2939# asm 1: movl <in12=int32#4,48(<x=int32#1)
2940# asm 2: movl <in12=%ebx,48(<x=%eax)
2941movl %ebx,48(%eax)
2942
2943# qhasm:     *(uint32 *) (x + 52) = in13
2944# asm 1: movl <in13=int32#5,52(<x=int32#1)
2945# asm 2: movl <in13=%esi,52(<x=%eax)
2946movl %esi,52(%eax)
2947
2948# qhasm:     *(uint32 *) (x + 56) = in14
2949# asm 1: movl <in14=int32#2,56(<x=int32#1)
2950# asm 2: movl <in14=%ecx,56(<x=%eax)
2951movl %ecx,56(%eax)
2952
2953# qhasm:     in0 = 1634760805
2954# asm 1: mov  $1634760805,>in0=int32#2
2955# asm 2: mov  $1634760805,>in0=%ecx
2956mov  $1634760805,%ecx
2957
2958# qhasm:     in5 = 857760878
2959# asm 1: mov  $857760878,>in5=int32#3
2960# asm 2: mov  $857760878,>in5=%edx
2961mov  $857760878,%edx
2962
2963# qhasm:     in10 = 2036477234
2964# asm 1: mov  $2036477234,>in10=int32#4
2965# asm 2: mov  $2036477234,>in10=%ebx
2966mov  $2036477234,%ebx
2967
2968# qhasm:     in15 = 1797285236
2969# asm 1: mov  $1797285236,>in15=int32#5
2970# asm 2: mov  $1797285236,>in15=%esi
2971mov  $1797285236,%esi
2972
2973# qhasm:     *(uint32 *) (x + 0) = in0
2974# asm 1: movl <in0=int32#2,0(<x=int32#1)
2975# asm 2: movl <in0=%ecx,0(<x=%eax)
2976movl %ecx,0(%eax)
2977
2978# qhasm:     *(uint32 *) (x + 20) = in5
2979# asm 1: movl <in5=int32#3,20(<x=int32#1)
2980# asm 2: movl <in5=%edx,20(<x=%eax)
2981movl %edx,20(%eax)
2982
2983# qhasm:     *(uint32 *) (x + 40) = in10
2984# asm 1: movl <in10=int32#4,40(<x=int32#1)
2985# asm 2: movl <in10=%ebx,40(<x=%eax)
2986movl %ebx,40(%eax)
2987
2988# qhasm:     *(uint32 *) (x + 60) = in15
2989# asm 1: movl <in15=int32#5,60(<x=int32#1)
2990# asm 2: movl <in15=%esi,60(<x=%eax)
2991movl %esi,60(%eax)
2992# comment:fp stack unchanged by jump
2993
2994# qhasm:   goto keysetupdone
2995jmp ._keysetupdone
2996
2997# qhasm:   kbits128:
2998._kbits128:
2999
3000# qhasm:     in11 = *(uint32 *) (k + 0)
3001# asm 1: movl 0(<k=int32#2),>in11=int32#3
3002# asm 2: movl 0(<k=%ecx),>in11=%edx
3003movl 0(%ecx),%edx
3004
3005# qhasm:     in12 = *(uint32 *) (k + 4)
3006# asm 1: movl 4(<k=int32#2),>in12=int32#4
3007# asm 2: movl 4(<k=%ecx),>in12=%ebx
3008movl 4(%ecx),%ebx
3009
3010# qhasm:     in13 = *(uint32 *) (k + 8)
3011# asm 1: movl 8(<k=int32#2),>in13=int32#5
3012# asm 2: movl 8(<k=%ecx),>in13=%esi
3013movl 8(%ecx),%esi
3014
3015# qhasm:     in14 = *(uint32 *) (k + 12)
3016# asm 1: movl 12(<k=int32#2),>in14=int32#2
3017# asm 2: movl 12(<k=%ecx),>in14=%ecx
3018movl 12(%ecx),%ecx
3019
3020# qhasm:     *(uint32 *) (x + 44) = in11
3021# asm 1: movl <in11=int32#3,44(<x=int32#1)
3022# asm 2: movl <in11=%edx,44(<x=%eax)
3023movl %edx,44(%eax)
3024
3025# qhasm:     *(uint32 *) (x + 48) = in12
3026# asm 1: movl <in12=int32#4,48(<x=int32#1)
3027# asm 2: movl <in12=%ebx,48(<x=%eax)
3028movl %ebx,48(%eax)
3029
3030# qhasm:     *(uint32 *) (x + 52) = in13
3031# asm 1: movl <in13=int32#5,52(<x=int32#1)
3032# asm 2: movl <in13=%esi,52(<x=%eax)
3033movl %esi,52(%eax)
3034
3035# qhasm:     *(uint32 *) (x + 56) = in14
3036# asm 1: movl <in14=int32#2,56(<x=int32#1)
3037# asm 2: movl <in14=%ecx,56(<x=%eax)
3038movl %ecx,56(%eax)
3039
3040# qhasm:     in0 = 1634760805
3041# asm 1: mov  $1634760805,>in0=int32#2
3042# asm 2: mov  $1634760805,>in0=%ecx
3043mov  $1634760805,%ecx
3044
3045# qhasm:     in5 = 824206446
3046# asm 1: mov  $824206446,>in5=int32#3
3047# asm 2: mov  $824206446,>in5=%edx
3048mov  $824206446,%edx
3049
3050# qhasm:     in10 = 2036477238
3051# asm 1: mov  $2036477238,>in10=int32#4
3052# asm 2: mov  $2036477238,>in10=%ebx
3053mov  $2036477238,%ebx
3054
3055# qhasm:     in15 = 1797285236
3056# asm 1: mov  $1797285236,>in15=int32#5
3057# asm 2: mov  $1797285236,>in15=%esi
3058mov  $1797285236,%esi
3059
3060# qhasm:     *(uint32 *) (x + 0) = in0
3061# asm 1: movl <in0=int32#2,0(<x=int32#1)
3062# asm 2: movl <in0=%ecx,0(<x=%eax)
3063movl %ecx,0(%eax)
3064
3065# qhasm:     *(uint32 *) (x + 20) = in5
3066# asm 1: movl <in5=int32#3,20(<x=int32#1)
3067# asm 2: movl <in5=%edx,20(<x=%eax)
3068movl %edx,20(%eax)
3069
3070# qhasm:     *(uint32 *) (x + 40) = in10
3071# asm 1: movl <in10=int32#4,40(<x=int32#1)
3072# asm 2: movl <in10=%ebx,40(<x=%eax)
3073movl %ebx,40(%eax)
3074
3075# qhasm:     *(uint32 *) (x + 60) = in15
3076# asm 1: movl <in15=int32#5,60(<x=int32#1)
3077# asm 2: movl <in15=%esi,60(<x=%eax)
3078movl %esi,60(%eax)
3079
3080# qhasm:   keysetupdone:
3081._keysetupdone:
3082
3083# qhasm:   eax = eax_stack
3084# asm 1: movl <eax_stack=stack32#1,>eax=int32#1
3085# asm 2: movl <eax_stack=0(%esp),>eax=%eax
3086movl 0(%esp),%eax
3087
3088# qhasm:   ebx = ebx_stack
3089# asm 1: movl <ebx_stack=stack32#2,>ebx=int32#4
3090# asm 2: movl <ebx_stack=4(%esp),>ebx=%ebx
3091movl 4(%esp),%ebx
3092
3093# qhasm:   esi = esi_stack
3094# asm 1: movl <esi_stack=stack32#3,>esi=int32#5
3095# asm 2: movl <esi_stack=8(%esp),>esi=%esi
3096movl 8(%esp),%esi
3097
3098# qhasm:   edi = edi_stack
3099# asm 1: movl <edi_stack=stack32#4,>edi=int32#6
3100# asm 2: movl <edi_stack=12(%esp),>edi=%edi
3101movl 12(%esp),%edi
3102
3103# qhasm:   ebp = ebp_stack
3104# asm 1: movl <ebp_stack=stack32#5,>ebp=int32#7
3105# asm 2: movl <ebp_stack=16(%esp),>ebp=%ebp
3106movl 16(%esp),%ebp
3107
3108# qhasm: leave
3109add %eax,%esp
3110ret
3111
3112# qhasm: enter ECRYPT_ivsetup
3113.text
3114.p2align 5
3115.globl _ECRYPT_ivsetup
3116.globl ECRYPT_ivsetup
3117_ECRYPT_ivsetup:
3118ECRYPT_ivsetup:
3119mov %esp,%eax
3120and $31,%eax
3121add $256,%eax
3122sub %eax,%esp
3123
3124# qhasm:   eax_stack = eax
3125# asm 1: movl <eax=int32#1,>eax_stack=stack32#1
3126# asm 2: movl <eax=%eax,>eax_stack=0(%esp)
3127movl %eax,0(%esp)
3128
3129# qhasm:   ebx_stack = ebx
3130# asm 1: movl <ebx=int32#4,>ebx_stack=stack32#2
3131# asm 2: movl <ebx=%ebx,>ebx_stack=4(%esp)
3132movl %ebx,4(%esp)
3133
3134# qhasm:   esi_stack = esi
3135# asm 1: movl <esi=int32#5,>esi_stack=stack32#3
3136# asm 2: movl <esi=%esi,>esi_stack=8(%esp)
3137movl %esi,8(%esp)
3138
3139# qhasm:   edi_stack = edi
3140# asm 1: movl <edi=int32#6,>edi_stack=stack32#4
3141# asm 2: movl <edi=%edi,>edi_stack=12(%esp)
3142movl %edi,12(%esp)
3143
3144# qhasm:   ebp_stack = ebp
3145# asm 1: movl <ebp=int32#7,>ebp_stack=stack32#5
3146# asm 2: movl <ebp=%ebp,>ebp_stack=16(%esp)
3147movl %ebp,16(%esp)
3148
3149# qhasm:   iv = arg2
3150# asm 1: movl <arg2=stack32#-2,>iv=int32#2
3151# asm 2: movl <arg2=8(%esp,%eax),>iv=%ecx
3152movl 8(%esp,%eax),%ecx
3153
3154# qhasm:   x = arg1
3155# asm 1: movl <arg1=stack32#-1,>x=int32#1
3156# asm 2: movl <arg1=4(%esp,%eax),>x=%eax
3157movl 4(%esp,%eax),%eax
3158
3159# qhasm:   in6 = *(uint32 *) (iv + 0)
3160# asm 1: movl 0(<iv=int32#2),>in6=int32#3
3161# asm 2: movl 0(<iv=%ecx),>in6=%edx
3162movl 0(%ecx),%edx
3163
3164# qhasm:   in7 = *(uint32 *) (iv + 4)
3165# asm 1: movl 4(<iv=int32#2),>in7=int32#2
3166# asm 2: movl 4(<iv=%ecx),>in7=%ecx
3167movl 4(%ecx),%ecx
3168
3169# qhasm:   in8 = 0
3170# asm 1: mov  $0,>in8=int32#4
3171# asm 2: mov  $0,>in8=%ebx
3172mov  $0,%ebx
3173
3174# qhasm:   in9 = 0
3175# asm 1: mov  $0,>in9=int32#5
3176# asm 2: mov  $0,>in9=%esi
3177mov  $0,%esi
3178
3179# qhasm:   *(uint32 *) (x + 24) = in6
3180# asm 1: movl <in6=int32#3,24(<x=int32#1)
3181# asm 2: movl <in6=%edx,24(<x=%eax)
3182movl %edx,24(%eax)
3183
3184# qhasm:   *(uint32 *) (x + 28) = in7
3185# asm 1: movl <in7=int32#2,28(<x=int32#1)
3186# asm 2: movl <in7=%ecx,28(<x=%eax)
3187movl %ecx,28(%eax)
3188
3189# qhasm:   *(uint32 *) (x + 32) = in8
3190# asm 1: movl <in8=int32#4,32(<x=int32#1)
3191# asm 2: movl <in8=%ebx,32(<x=%eax)
3192movl %ebx,32(%eax)
3193
3194# qhasm:   *(uint32 *) (x + 36) = in9
3195# asm 1: movl <in9=int32#5,36(<x=int32#1)
3196# asm 2: movl <in9=%esi,36(<x=%eax)
3197movl %esi,36(%eax)
3198
3199# qhasm:   eax = eax_stack
3200# asm 1: movl <eax_stack=stack32#1,>eax=int32#1
3201# asm 2: movl <eax_stack=0(%esp),>eax=%eax
3202movl 0(%esp),%eax
3203
3204# qhasm:   ebx = ebx_stack
3205# asm 1: movl <ebx_stack=stack32#2,>ebx=int32#4
3206# asm 2: movl <ebx_stack=4(%esp),>ebx=%ebx
3207movl 4(%esp),%ebx
3208
3209# qhasm:   esi = esi_stack
3210# asm 1: movl <esi_stack=stack32#3,>esi=int32#5
3211# asm 2: movl <esi_stack=8(%esp),>esi=%esi
3212movl 8(%esp),%esi
3213
3214# qhasm:   edi = edi_stack
3215# asm 1: movl <edi_stack=stack32#4,>edi=int32#6
3216# asm 2: movl <edi_stack=12(%esp),>edi=%edi
3217movl 12(%esp),%edi
3218
3219# qhasm:   ebp = ebp_stack
3220# asm 1: movl <ebp_stack=stack32#5,>ebp=int32#7
3221# asm 2: movl <ebp_stack=16(%esp),>ebp=%ebp
3222movl 16(%esp),%ebp
3223
3224# qhasm: leave
3225add %eax,%esp
3226ret
3227