155       		pushl	%ebp
289E5     		movl	%esp, %ebp
383EC10   		subl	$16, %esp
4C745FC00 		movl	$0, -4(%ebp)
58B55FC   		movl	-4(%ebp), %edx
68B4508   		movl	8(%ebp), %eax
701D0     		addl	%edx, %eax
80FB600   		movzbl	(%eax), %eax
98845FB   		movb	%al, -5(%ebp)
108B55FC   		movl	-4(%ebp), %edx
118B450C   		movl	12(%ebp), %eax
1201D0     		addl	%edx, %eax
130FB600   		movzbl	(%eax), %eax
148845FA   		movb	%al, -6(%ebp)
158345FC01 		addl	$1, -4(%ebp)
16807DFB00 		cmpb	$0, -5(%ebp)
177508     		jne	L2
180FB645FA 		movzbl	-6(%ebp), %eax
19F7D8     		negl	%eax
20EB15     		jmp	L3
210FB645FB 		movzbl	-5(%ebp), %eax
223A45FA   		cmpb	-6(%ebp), %al
2374C9     		je	L4
240FB655FB 		movzbl	-5(%ebp), %edx
250FB645FA 		movzbl	-6(%ebp), %eax
2629C2     		subl	%eax, %edx
2789D0     		movl	%edx, %eax
28C9       		leave
29C3       		ret
3055       		pushl	%ebp
3189E5     		movl	%esp, %ebp
3253       		pushl	%ebx
3383EC34   		subl	$52, %esp
3466C745F4 		movw	$0, -12(%ebp)
35C745EC01 		movl	$1, -20(%ebp)
36E9BE0000 		jmp	L6
37C745E801 		movl	$1, -24(%ebp)
3866837DF4 		cmpw	$0, -12(%ebp)
39780F     		js	L7
408B55E8   		movl	-24(%ebp), %edx
410FBF45F4 		movswl	-12(%ebp), %eax
4289C1     		movl	%eax, %ecx
43D3E2     		sall	%cl, %edx
4489D0     		movl	%edx, %eax
45EB0F     		jmp	L8
468B55E8   		movl	-24(%ebp), %edx
470FBF45F4 		movswl	-12(%ebp), %eax
48F7D8     		negl	%eax
4989C1     		movl	%eax, %ecx
50D3EA     		shrl	%cl, %edx
5189D0     		movl	%edx, %eax
528945E8   		movl	%eax, -24(%ebp)
538B45E8   		movl	-24(%ebp), %eax
543B45EC   		cmpl	-20(%ebp), %eax
55740C     		je	L9
56C7042410 		movl	$16, (%esp)
57E8000000 		call	_Platform_AssertFail
58C745E801 		movl	$1, -24(%ebp)
5966837DF4 		cmpw	$0, -12(%ebp)
607827     		js	L10
618B55E8   		movl	-24(%ebp), %edx
620FBF45F4 		movswl	-12(%ebp), %eax
6389D3     		movl	%edx, %ebx
6489C1     		movl	%eax, %ecx
65D3E3     		sall	%cl, %ebx
668B55E8   		movl	-24(%ebp), %edx
670FBF45F4 		movswl	-12(%ebp), %eax
68B9200000 		movl	$32, %ecx
6929C1     		subl	%eax, %ecx
7089C8     		movl	%ecx, %eax
7189C1     		movl	%eax, %ecx
72D3EA     		shrl	%cl, %edx
7389D0     		movl	%edx, %eax
7409D8     		orl	%ebx, %eax
75EB21     		jmp	L11
768B55E8   		movl	-24(%ebp), %edx
770FBF45F4 		movswl	-12(%ebp), %eax
78F7D8     		negl	%eax
7989D3     		movl	%edx, %ebx
8089C1     		movl	%eax, %ecx
81D3EB     		shrl	%cl, %ebx
828B55E8   		movl	-24(%ebp), %edx
830FBF45F4 		movswl	-12(%ebp), %eax
8483C020   		addl	$32, %eax
8589C1     		movl	%eax, %ecx
86D3E2     		sall	%cl, %edx
8789D0     		movl	%edx, %eax
8809D8     		orl	%ebx, %eax
898945E8   		movl	%eax, -24(%ebp)
908B45E8   		movl	-24(%ebp), %eax
913B45EC   		cmpl	-20(%ebp), %eax
92740C     		je	L12
93C7042411 		movl	$17, (%esp)
94E8000000 		call	_Platform_AssertFail
95D165EC   		sall	-20(%ebp)
960FB745F4 		movzwl	-12(%ebp), %eax
9783C001   		addl	$1, %eax
98668945F4 		movw	%ax, -12(%ebp)
9966837DF4 		cmpw	$31, -12(%ebp)
1000F8E37FF 		jle	L13
10166C745F4 		movw	$0, -12(%ebp)
10266C745F2 		movw	$1, -14(%ebp)
103E9E50000 		jmp	L14
10466C745E6 		movw	$1, -26(%ebp)
10566837DF4 		cmpw	$0, -12(%ebp)
1067813     		js	L15
1070FB745E6 		movzwl	-26(%ebp), %eax
1080FB7D0   		movzwl	%ax, %edx
1090FBF45F4 		movswl	-12(%ebp), %eax
11089C1     		movl	%eax, %ecx
111D3E2     		sall	%cl, %edx
11289D0     		movl	%edx, %eax
113EB13     		jmp	L16
1140FB745E6 		movzwl	-26(%ebp), %eax
1150FB7D0   		movzwl	%ax, %edx
1160FBF45F4 		movswl	-12(%ebp), %eax
117F7D8     		negl	%eax
11889C1     		movl	%eax, %ecx
119D3FA     		sarl	%cl, %edx
12089D0     		movl	%edx, %eax
121668945E6 		movw	%ax, -26(%ebp)
1220FB745E6 		movzwl	-26(%ebp), %eax
123663B45F2 		cmpw	-14(%ebp), %ax
124740C     		je	L17
125C7042417 		movl	$23, (%esp)
126E8000000 		call	_Platform_AssertFail
12766C745E6 		movw	$1, -26(%ebp)
12866837DF4 		cmpw	$0, -12(%ebp)
1297831     		js	L18
1300FB745E6 		movzwl	-26(%ebp), %eax
1310FB7D0   		movzwl	%ax, %edx
1320FBF45F4 		movswl	-12(%ebp), %eax
13389C1     		movl	%eax, %ecx
134D3E2     		sall	%cl, %edx
13589D0     		movl	%edx, %eax
13689C3     		movl	%eax, %ebx
1370FB745E6 		movzwl	-26(%ebp), %eax
1380FB7D0   		movzwl	%ax, %edx
1390FBF45F4 		movswl	-12(%ebp), %eax
140B9100000 		movl	$16, %ecx
14129C1     		subl	%eax, %ecx
14289C8     		movl	%ecx, %eax
14389C1     		movl	%eax, %ecx
144D3FA     		sarl	%cl, %edx
14589D0     		movl	%edx, %eax
14609D8     		orl	%ebx, %eax
147EB2B     		jmp	L19
1480FB745E6 		movzwl	-26(%ebp), %eax
1490FB7D0   		movzwl	%ax, %edx
1500FBF45F4 		movswl	-12(%ebp), %eax
151F7D8     		negl	%eax
15289C1     		movl	%eax, %ecx
153D3FA     		sarl	%cl, %edx
15489D0     		movl	%edx, %eax
15589C3     		movl	%eax, %ebx
1560FB745E6 		movzwl	-26(%ebp), %eax
1570FB7D0   		movzwl	%ax, %edx
1580FBF45F4 		movswl	-12(%ebp), %eax
15983C010   		addl	$16, %eax
16089C1     		movl	%eax, %ecx
161D3E2     		sall	%cl, %edx
16289D0     		movl	%edx, %eax
16309D8     		orl	%ebx, %eax
164668945E6 		movw	%ax, -26(%ebp)
1650FB745E6 		movzwl	-26(%ebp), %eax
166663B45F2 		cmpw	-14(%ebp), %ax
167740C     		je	L20
168C7042418 		movl	$24, (%esp)
169E8000000 		call	_Platform_AssertFail
1700FBF45F2 		movswl	-14(%ebp), %eax
17101C0     		addl	%eax, %eax
172668945F2 		movw	%ax, -14(%ebp)
1730FB745F4 		movzwl	-12(%ebp), %eax
17483C001   		addl	$1, %eax
175668945F4 		movw	%ax, -12(%ebp)
17666837DF4 		cmpw	$15, -12(%ebp)
1770F8E10FF 		jle	L21
17866C745F4 		movw	$0, -12(%ebp)
179C645F701 		movb	$1, -9(%ebp)
180E9DC0000 		jmp	L22
181C645E501 		movb	$1, -27(%ebp)
18266837DF4 		cmpw	$0, -12(%ebp)
1837813     		js	L23
1840FB645E5 		movzbl	-27(%ebp), %eax
1850FB6D0   		movzbl	%al, %edx
1860FBF45F4 		movswl	-12(%ebp), %eax
18789C1     		movl	%eax, %ecx
188D3E2     		sall	%cl, %edx
18989D0     		movl	%edx, %eax
190EB13     		jmp	L24
1910FB645E5 		movzbl	-27(%ebp), %eax
1920FB6D0   		movzbl	%al, %edx
1930FBF45F4 		movswl	-12(%ebp), %eax
194F7D8     		negl	%eax
19589C1     		movl	%eax, %ecx
196D3FA     		sarl	%cl, %edx
19789D0     		movl	%edx, %eax
1988845E5   		movb	%al, -27(%ebp)
1990FB645E5 		movzbl	-27(%ebp), %eax
2003A45F7   		cmpb	-9(%ebp), %al
201740C     		je	L25
202C704241E 		movl	$30, (%esp)
203E8000000 		call	_Platform_AssertFail
204C645E501 		movb	$1, -27(%ebp)
20566837DF4 		cmpw	$0, -12(%ebp)
2067831     		js	L26
2070FB645E5 		movzbl	-27(%ebp), %eax
2080FB6D0   		movzbl	%al, %edx
2090FBF45F4 		movswl	-12(%ebp), %eax
21089C1     		movl	%eax, %ecx
211D3E2     		sall	%cl, %edx
21289D0     		movl	%edx, %eax
21389C3     		movl	%eax, %ebx
2140FB645E5 		movzbl	-27(%ebp), %eax
2150FB6D0   		movzbl	%al, %edx
2160FBF45F4 		movswl	-12(%ebp), %eax
217B9080000 		movl	$8, %ecx
21829C1     		subl	%eax, %ecx
21989C8     		movl	%ecx, %eax
22089C1     		movl	%eax, %ecx
221D3FA     		sarl	%cl, %edx
22289D0     		movl	%edx, %eax
22309D8     		orl	%ebx, %eax
224EB2B     		jmp	L27
2250FB645E5 		movzbl	-27(%ebp), %eax
2260FB6D0   		movzbl	%al, %edx
2270FBF45F4 		movswl	-12(%ebp), %eax
228F7D8     		negl	%eax
22989C1     		movl	%eax, %ecx
230D3FA     		sarl	%cl, %edx
23189D0     		movl	%edx, %eax
23289C3     		movl	%eax, %ebx
2330FB645E5 		movzbl	-27(%ebp), %eax
2340FB6D0   		movzbl	%al, %edx
2350FBF45F4 		movswl	-12(%ebp), %eax
23683C008   		addl	$8, %eax
23789C1     		movl	%eax, %ecx
238D3E2     		sall	%cl, %edx
23989D0     		movl	%edx, %eax
24009D8     		orl	%ebx, %eax
2418845E5   		movb	%al, -27(%ebp)
2420FB645E5 		movzbl	-27(%ebp), %eax
2433A45F7   		cmpb	-9(%ebp), %al
244740C     		je	L28
245C704241F 		movl	$31, (%esp)
246E8000000 		call	_Platform_AssertFail
2470FBE45F7 		movsbl	-9(%ebp), %eax
24801C0     		addl	%eax, %eax
2498845F7   		movb	%al, -9(%ebp)
2500FB745F4 		movzwl	-12(%ebp), %eax
25183C001   		addl	$1, %eax
252668945F4 		movw	%ax, -12(%ebp)
25366837DF4 		cmpw	$7, -12(%ebp)
2540F8E19FF 		jle	L29
25566C745F4 		movw	$-1, -12(%ebp)
256C745EC01 		movl	$1, -20(%ebp)
2578B45EC   		movl	-20(%ebp), %eax
258C1E01E   		sall	$30, %eax
2598945EC   		movl	%eax, -20(%ebp)
2608B45EC   		movl	-20(%ebp), %eax
26101C0     		addl	%eax, %eax
2628945E0   		movl	%eax, -32(%ebp)
263E9BC0000 		jmp	L30
2648B45E0   		movl	-32(%ebp), %eax
2658945E8   		movl	%eax, -24(%ebp)
26666837DF4 		cmpw	$0, -12(%ebp)
267780F     		js	L31
2688B55E8   		movl	-24(%ebp), %edx
2690FBF45F4 		movswl	-12(%ebp), %eax
27089C1     		movl	%eax, %ecx
271D3E2     		sall	%cl, %edx
27289D0     		movl	%edx, %eax
273EB0F     		jmp	L32
2748B55E8   		movl	-24(%ebp), %edx
2750FBF45F4 		movswl	-12(%ebp), %eax
276F7D8     		negl	%eax
27789C1     		movl	%eax, %ecx
278D3EA     		shrl	%cl, %edx
27989D0     		movl	%edx, %eax
2808945E8   		movl	%eax, -24(%ebp)
2818B45E8   		movl	-24(%ebp), %eax
2823B45EC   		cmpl	-20(%ebp), %eax
283740C     		je	L33
284C7042427 		movl	$39, (%esp)
285E8000000 		call	_Platform_AssertFail
2868B45E0   		movl	-32(%ebp), %eax
2878945E8   		movl	%eax, -24(%ebp)
28866837DF4 		cmpw	$0, -12(%ebp)
2897827     		js	L34
2908B55E8   		movl	-24(%ebp), %edx
2910FBF45F4 		movswl	-12(%ebp), %eax
29289D3     		movl	%edx, %ebx
29389C1     		movl	%eax, %ecx
294D3E3     		sall	%cl, %ebx
2958B55E8   		movl	-24(%ebp), %edx
2960FBF45F4 		movswl	-12(%ebp), %eax
297B9200000 		movl	$32, %ecx
29829C1     		subl	%eax, %ecx
29989C8     		movl	%ecx, %eax
30089C1     		movl	%eax, %ecx
301D3EA     		shrl	%cl, %edx
30289D0     		movl	%edx, %eax
30309D8     		orl	%ebx, %eax
304EB21     		jmp	L35
3058B55E8   		movl	-24(%ebp), %edx
3060FBF45F4 		movswl	-12(%ebp), %eax
307F7D8     		negl	%eax
30889D3     		movl	%edx, %ebx
30989C1     		movl	%eax, %ecx
310D3EB     		shrl	%cl, %ebx
3118B55E8   		movl	-24(%ebp), %edx
3120FBF45F4 		movswl	-12(%ebp), %eax
31383C020   		addl	$32, %eax
31489C1     		movl	%eax, %ecx
315D3E2     		sall	%cl, %edx
31689D0     		movl	%edx, %eax
31709D8     		orl	%ebx, %eax
3188945E8   		movl	%eax, -24(%ebp)
3198B45E8   		movl	-24(%ebp), %eax
3203B45EC   		cmpl	-20(%ebp), %eax
321740C     		je	L36
322C7042428 		movl	$40, (%esp)
323E8000000 		call	_Platform_AssertFail
324D17DEC   		sarl	-20(%ebp)
3250FB745F4 		movzwl	-12(%ebp), %eax
32683E801   		subl	$1, %eax
327668945F4 		movw	%ax, -12(%ebp)
32866837DF4 		cmpw	$-31, -12(%ebp)
3290F8D39FF 		jge	L37
33066C745F4 		movw	$-1, -12(%ebp)
33166C745F2 		movw	$1, -14(%ebp)
3320FB745F2 		movzwl	-14(%ebp), %eax
3330FB7C0   		movzwl	%ax, %eax
334C1E00E   		sall	$14, %eax
335668945F2 		movw	%ax, -14(%ebp)
3360FBF45F2 		movswl	-14(%ebp), %eax
33701C0     		addl	%eax, %eax
338668945DE 		movw	%ax, -34(%ebp)
339E9E30000 		jmp	L38
3400FB745DE 		movzwl	-34(%ebp), %eax
341668945E6 		movw	%ax, -26(%ebp)
34266837DF4 		cmpw	$0, -12(%ebp)
3437813     		js	L39
3440FB745E6 		movzwl	-26(%ebp), %eax
3450FB7D0   		movzwl	%ax, %edx
3460FBF45F4 		movswl	-12(%ebp), %eax
34789C1     		movl	%eax, %ecx
348D3E2     		sall	%cl, %edx
34989D0     		movl	%edx, %eax
350EB13     		jmp	L40
3510FB745E6 		movzwl	-26(%ebp), %eax
3520FB7D0   		movzwl	%ax, %edx
3530FBF45F4 		movswl	-12(%ebp), %eax
354F7D8     		negl	%eax
35589C1     		movl	%eax, %ecx
356D3FA     		sarl	%cl, %edx
35789D0     		movl	%edx, %eax
358668945E6 		movw	%ax, -26(%ebp)
3590FB745E6 		movzwl	-26(%ebp), %eax
360663B45F2 		cmpw	-14(%ebp), %ax
361740C     		je	L41
362C704242E 		movl	$46, (%esp)
363E8000000 		call	_Platform_AssertFail
3640FB745DE 		movzwl	-34(%ebp), %eax
365668945E6 		movw	%ax, -26(%ebp)
36666837DF4 		cmpw	$0, -12(%ebp)
3677831     		js	L42
3680FB745E6 		movzwl	-26(%ebp), %eax
3690FB7D0   		movzwl	%ax, %edx
3700FBF45F4 		movswl	-12(%ebp), %eax
37189C1     		movl	%eax, %ecx
372D3E2     		sall	%cl, %edx
37389D0     		movl	%edx, %eax
37489C3     		movl	%eax, %ebx
3750FB745E6 		movzwl	-26(%ebp), %eax
3760FB7D0   		movzwl	%ax, %edx
3770FBF45F4 		movswl	-12(%ebp), %eax
378B9100000 		movl	$16, %ecx
37929C1     		subl	%eax, %ecx
38089C8     		movl	%ecx, %eax
38189C1     		movl	%eax, %ecx
382D3FA     		sarl	%cl, %edx
38389D0     		movl	%edx, %eax
38409D8     		orl	%ebx, %eax
385EB2B     		jmp	L43
3860FB745E6 		movzwl	-26(%ebp), %eax
3870FB7D0   		movzwl	%ax, %edx
3880FBF45F4 		movswl	-12(%ebp), %eax
389F7D8     		negl	%eax
39089C1     		movl	%eax, %ecx
391D3FA     		sarl	%cl, %edx
39289D0     		movl	%edx, %eax
39389C3     		movl	%eax, %ebx
3940FB745E6 		movzwl	-26(%ebp), %eax
3950FB7D0   		movzwl	%ax, %edx
3960FBF45F4 		movswl	-12(%ebp), %eax
39783C010   		addl	$16, %eax
39889C1     		movl	%eax, %ecx
399D3E2     		sall	%cl, %edx
40089D0     		movl	%edx, %eax
40109D8     		orl	%ebx, %eax
402668945E6 		movw	%ax, -26(%ebp)
4030FB745E6 		movzwl	-26(%ebp), %eax
404663B45F2 		cmpw	-14(%ebp), %ax
405740C     		je	L44
406C704242F 		movl	$47, (%esp)
407E8000000 		call	_Platform_AssertFail
40866D17DF2 		sarw	-14(%ebp)
4090FB745F4 		movzwl	-12(%ebp), %eax
41083E801   		subl	$1, %eax
411668945F4 		movw	%ax, -12(%ebp)
41266837DF4 		cmpw	$-15, -12(%ebp)
4130F8D12FF 		jge	L45
41466C745F4 		movw	$-1, -12(%ebp)
415C645F701 		movb	$1, -9(%ebp)
4160FB645F7 		movzbl	-9(%ebp), %eax
4170FB6C0   		movzbl	%al, %eax
418C1E006   		sall	$6, %eax
4198845F7   		movb	%al, -9(%ebp)
4200FBE45F7 		movsbl	-9(%ebp), %eax
42101C0     		addl	%eax, %eax
4228845DD   		movb	%al, -35(%ebp)
423E9DC0000 		jmp	L46
4240FB645DD 		movzbl	-35(%ebp), %eax
4258845E5   		movb	%al, -27(%ebp)
42666837DF4 		cmpw	$0, -12(%ebp)
4277813     		js	L47
4280FB645E5 		movzbl	-27(%ebp), %eax
4290FB6D0   		movzbl	%al, %edx
4300FBF45F4 		movswl	-12(%ebp), %eax
43189C1     		movl	%eax, %ecx
432D3E2     		sall	%cl, %edx
43389D0     		movl	%edx, %eax
434EB13     		jmp	L48
4350FB645E5 		movzbl	-27(%ebp), %eax
4360FB6D0   		movzbl	%al, %edx
4370FBF45F4 		movswl	-12(%ebp), %eax
438F7D8     		negl	%eax
43989C1     		movl	%eax, %ecx
440D3FA     		sarl	%cl, %edx
44189D0     		movl	%edx, %eax
4428845E5   		movb	%al, -27(%ebp)
4430FB645E5 		movzbl	-27(%ebp), %eax
4443A45F7   		cmpb	-9(%ebp), %al
445740C     		je	L49
446C7042435 		movl	$53, (%esp)
447E8000000 		call	_Platform_AssertFail
4480FB645DD 		movzbl	-35(%ebp), %eax
4498845E5   		movb	%al, -27(%ebp)
45066837DF4 		cmpw	$0, -12(%ebp)
4517831     		js	L50
4520FB645E5 		movzbl	-27(%ebp), %eax
4530FB6D0   		movzbl	%al, %edx
4540FBF45F4 		movswl	-12(%ebp), %eax
45589C1     		movl	%eax, %ecx
456D3E2     		sall	%cl, %edx
45789D0     		movl	%edx, %eax
45889C3     		movl	%eax, %ebx
4590FB645E5 		movzbl	-27(%ebp), %eax
4600FB6D0   		movzbl	%al, %edx
4610FBF45F4 		movswl	-12(%ebp), %eax
462B9080000 		movl	$8, %ecx
46329C1     		subl	%eax, %ecx
46489C8     		movl	%ecx, %eax
46589C1     		movl	%eax, %ecx
466D3FA     		sarl	%cl, %edx
46789D0     		movl	%edx, %eax
46809D8     		orl	%ebx, %eax
469EB2B     		jmp	L51
4700FB645E5 		movzbl	-27(%ebp), %eax
4710FB6D0   		movzbl	%al, %edx
4720FBF45F4 		movswl	-12(%ebp), %eax
473F7D8     		negl	%eax
47489C1     		movl	%eax, %ecx
475D3FA     		sarl	%cl, %edx
47689D0     		movl	%edx, %eax
47789C3     		movl	%eax, %ebx
4780FB645E5 		movzbl	-27(%ebp), %eax
4790FB6D0   		movzbl	%al, %edx
4800FBF45F4 		movswl	-12(%ebp), %eax
48183C008   		addl	$8, %eax
48289C1     		movl	%eax, %ecx
483D3E2     		sall	%cl, %edx
48489D0     		movl	%edx, %eax
48509D8     		orl	%ebx, %eax
4868845E5   		movb	%al, -27(%ebp)
4870FB645E5 		movzbl	-27(%ebp), %eax
4883A45F7   		cmpb	-9(%ebp), %al
489740C     		je	L52
490C7042436 		movl	$54, (%esp)
491E8000000 		call	_Platform_AssertFail
492D07DF7   		sarb	-9(%ebp)
4930FB745F4 		movzwl	-12(%ebp), %eax
49483E801   		subl	$1, %eax
495668945F4 		movw	%ax, -12(%ebp)
49666837DF4 		cmpw	$-7, -12(%ebp)
4970F8D19FF 		jge	L53
49866C745F4 		movw	$0, -12(%ebp)
499C745EC01 		movl	$1, -20(%ebp)
5008B45EC   		movl	-20(%ebp), %eax
501C1E01F   		sall	$31, %eax
5028945EC   		movl	%eax, -20(%ebp)
5038B45EC   		movl	-20(%ebp), %eax
5048945E0   		movl	%eax, -32(%ebp)
505EB50     		jmp	L54
5068B45E0   		movl	-32(%ebp), %eax
5078945E8   		movl	%eax, -24(%ebp)
50866837DF4 		cmpw	$0, -12(%ebp)
509780F     		js	L55
5100FBF45F4 		movswl	-12(%ebp), %eax
5118B55E8   		movl	-24(%ebp), %edx
51289C1     		movl	%eax, %ecx
513D3E2     		sall	%cl, %edx
51489D0     		movl	%edx, %eax
515EB0F     		jmp	L56
5160FBF45F4 		movswl	-12(%ebp), %eax
517F7D8     		negl	%eax
5188B55E8   		movl	-24(%ebp), %edx
51989C1     		movl	%eax, %ecx
520D3FA     		sarl	%cl, %edx
52189D0     		movl	%edx, %eax
5228945E8   		movl	%eax, -24(%ebp)
5238B45E8   		movl	-24(%ebp), %eax
5243B45EC   		cmpl	-20(%ebp), %eax
525740C     		je	L57
526C704243E 		movl	$62, (%esp)
527E8000000 		call	_Platform_AssertFail
528D17DEC   		sarl	-20(%ebp)
5290FB745F4 		movzwl	-12(%ebp), %eax
53083E801   		subl	$1, %eax
531668945F4 		movw	%ax, -12(%ebp)
53266837DF4 		cmpw	$-31, -12(%ebp)
5337DA9     		jge	L58
53466C745F4 		movw	$0, -12(%ebp)
53566C745E6 		movw	$1, -26(%ebp)
5360FB745E6 		movzwl	-26(%ebp), %eax
5370FB7C0   		movzwl	%ax, %eax
538C1E00F   		sall	$15, %eax
539668945E6 		movw	%ax, -26(%ebp)
5400FB745E6 		movzwl	-26(%ebp), %eax
541668945F2 		movw	%ax, -14(%ebp)
542