416fda:	8b 5d 08             	mov    0x8(%ebp),%ebx
416fdd:	56                   	push   %esi
416fde:	8b f3                	mov    %ebx,%esi
416fe0:	83 e6 1f             	and    $0x1f,%esi
416fe3:	f6 c3 08             	test   $0x8,%bl
416fe6:	74 14                	je     0x416ffc
416fe8:	84 4d 10             	test   %cl,0x10(%ebp)
416feb:	74 0f                	je     0x416ffc
416fed:	51                   	push   %ecx
416fee:	e8 e8 e0 ff ff       	call   0x4150db
416ff3:	59                   	pop    %ecx
416ff4:	83 e6 f7             	and    $0xfffffff7,%esi
416ff7:	e9 31 02 00 00       	jmp    0x41722d
416ffc:	8b c3                	mov    %ebx,%eax
416ffe:	23 45 10             	and    0x10(%ebp),%eax
417001:	a8 04                	test   $0x4,%al
417003:	74 10                	je     0x417015
417005:	6a 04                	push   $0x4
417007:	e8 cf e0 ff ff       	call   0x4150db
41700c:	59                   	pop    %ecx
41700d:	83 e6 fb             	and    $0xfffffffb,%esi
417010:	e9 18 02 00 00       	jmp    0x41722d
417015:	84 d9                	test   %bl,%cl
417017:	0f 84 9a 00 00 00    	je     0x4170b7
41701d:	f6 45 10 08          	testb  $0x8,0x10(%ebp)
417021:	0f 84 90 00 00 00    	je     0x4170b7
417027:	6a 08                	push   $0x8
417029:	e8 ad e0 ff ff       	call   0x4150db
41702e:	8b 45 10             	mov    0x10(%ebp),%eax
417031:	59                   	pop    %ecx
417032:	b9 00 0c 00 00       	mov    $0xc00,%ecx
417037:	23 c1                	and    %ecx,%eax
417039:	74 54                	je     0x41708f
41703b:	3d 00 04 00 00       	cmp    $0x400,%eax
417040:	74 37                	je     0x417079
417042:	3d 00 08 00 00       	cmp    $0x800,%eax
417047:	74 1a                	je     0x417063
417049:	3b c1                	cmp    %ecx,%eax
41704b:	75 62                	jne    0x4170af
41704d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
417050:	d9 ee                	fldz
417052:	dc 19                	fcompl (%ecx)
417054:	df e0                	fnstsw %ax
417056:	dd 05 b8 ee 41 00    	fldl   0x41eeb8
41705c:	f6 c4 05             	test   $0x5,%ah
41705f:	7b 4c                	jnp    0x4170ad
417061:	eb 48                	jmp    0x4170ab
417063:	8b 4d 0c             	mov    0xc(%ebp),%ecx
417066:	d9 ee                	fldz
417068:	dc 19                	fcompl (%ecx)
41706a:	df e0                	fnstsw %ax
41706c:	f6 c4 05             	test   $0x5,%ah
41706f:	7b 2c                	jnp    0x41709d
417071:	dd 05 b8 ee 41 00    	fldl   0x41eeb8
417077:	eb 32                	jmp    0x4170ab
417079:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41707c:	d9 ee                	fldz
41707e:	dc 19                	fcompl (%ecx)
417080:	df e0                	fnstsw %ax
417082:	f6 c4 05             	test   $0x5,%ah
417085:	7a 1e                	jp     0x4170a5
417087:	dd 05 b8 ee 41 00    	fldl   0x41eeb8
41708d:	eb 1e                	jmp    0x4170ad
41708f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
417092:	d9 ee                	fldz
417094:	dc 19                	fcompl (%ecx)
417096:	df e0                	fnstsw %ax
417098:	f6 c4 05             	test   $0x5,%ah
41709b:	7a 08                	jp     0x4170a5
41709d:	dd 05 b0 ee 41 00    	fldl   0x41eeb0
4170a3:	eb 08                	jmp    0x4170ad
4170a5:	dd 05 b0 ee 41 00    	fldl   0x41eeb0
4170ab:	d9 e0                	fchs
4170ad:	dd 19                	fstpl  (%ecx)
4170af:	83 e6 fe             	and    $0xfffffffe,%esi
4170b2:	e9 76 01 00 00       	jmp    0x41722d
4170b7:	f6 c3 02             	test   $0x2,%bl
4170ba:	0f 84 6d 01 00 00    	je     0x41722d
4170c0:	f6 45 10 10          	testb  $0x10,0x10(%ebp)
4170c4:	0f 84 63 01 00 00    	je     0x41722d
4170ca:	8b 45 0c             	mov    0xc(%ebp),%eax
4170cd:	57                   	push   %edi
4170ce:	8b fb                	mov    %ebx,%edi
4170d0:	c1 ef 04             	shr    $0x4,%edi
4170d3:	dd 00                	fldl   (%eax)
4170d5:	23 f9                	and    %ecx,%edi
4170d7:	d9 ee                	fldz
4170d9:	dd e9                	fucomp %st(1)
4170db:	89 7d f8             	mov    %edi,-0x8(%ebp)
4170de:	df e0                	fnstsw %ax
4170e0:	f6 c4 44             	test   $0x44,%ah
4170e3:	0f 8b 36 01 00 00    	jnp    0x41721f
4170e9:	8d 45 ec             	lea    -0x14(%ebp),%eax
4170ec:	50                   	push   %eax
4170ed:	51                   	push   %ecx
4170ee:	51                   	push   %ecx
4170ef:	dd 1c 24             	fstpl  (%esp)
4170f2:	e8 3c 05 00 00       	call   0x417633
4170f7:	8b 55 ec             	mov    -0x14(%ebp),%edx
4170fa:	83 c4 0c             	add    $0xc,%esp
4170fd:	81 c2 00 fa ff ff    	add    $0xfffffa00,%edx
417103:	dd 55 e0             	fstl   -0x20(%ebp)
417106:	d9 ee                	fldz
417108:	81 fa ce fb ff ff    	cmp    $0xfffffbce,%edx
41710e:	7d 0a                	jge    0x41711a
417110:	33 c0                	xor    %eax,%eax
417112:	de c9                	fmulp  %st,%st(1)
417114:	40                   	inc    %eax
417115:	e9 fa 00 00 00       	jmp    0x417214
41711a:	de d9                	fcompp
41711c:	df e0                	fnstsw %ax
41711e:	f6 c4 41             	test   $0x41,%ah
417121:	75 0d                	jne    0x417130
417123:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
41712a:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
41712e:	eb 09                	jmp    0x417139
417130:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
417134:	32 c0                	xor    %al,%al
417136:	88 45 ff             	mov    %al,-0x1(%ebp)
417139:	8b 45 e6             	mov    -0x1a(%ebp),%eax
41713c:	b9 03 fc ff ff       	mov    $0xfffffc03,%ecx
417141:	83 e0 0f             	and    $0xf,%eax
417144:	83 c8 10             	or     $0x10,%eax
417147:	66 89 45 e6          	mov    %ax,-0x1a(%ebp)
41714b:	32 e4                	xor    %ah,%ah
41714d:	32 c0                	xor    %al,%al
41714f:	88 65 fd             	mov    %ah,-0x3(%ebp)
417152:	88 45 fe             	mov    %al,-0x2(%ebp)
417155:	3b d1                	cmp    %ecx,%edx
417157:	7d 49                	jge    0x4171a2
417159:	89 7d f8             	mov    %edi,-0x8(%ebp)
41715c:	2b ca                	sub    %edx,%ecx
41715e:	8b 7d e0             	mov    -0x20(%ebp),%edi
417161:	8b 5d f8             	mov    -0x8(%ebp),%ebx
417164:	8b d7                	mov    %edi,%edx
417166:	83 e2 01             	and    $0x1,%edx
417169:	74 05                	je     0x417170
41716b:	85 db                	test   %ebx,%ebx
41716d:	75 01                	jne    0x417170
41716f:	43                   	inc    %ebx
417170:	84 c0                	test   %al,%al
417172:	74 02                	je     0x417176
417174:	b4 01                	mov    $0x1,%ah
417176:	d1 ef                	shr    $1,%edi
417178:	8a c2                	mov    %dl,%al
41717a:	f6 45 e4 01          	testb  $0x1,-0x1c(%ebp)
41717e:	89 7d e0             	mov    %edi,-0x20(%ebp)
417181:	74 09                	je     0x41718c
417183:	81 cf 00 00 00 80    	or     $0x80000000,%edi
417189:	89 7d e0             	mov    %edi,-0x20(%ebp)
41718c:	d1 6d e4             	shrl   $1,-0x1c(%ebp)
41718f:	83 e9 01             	sub    $0x1,%ecx
417192:	75 d0                	jne    0x417164
417194:	89 5d f8             	mov    %ebx,-0x8(%ebp)
417197:	8b 5d 08             	mov    0x8(%ebp),%ebx
41719a:	88 65 fd             	mov    %ah,-0x3(%ebp)
41719d:	88 45 fe             	mov    %al,-0x2(%ebp)
4171a0:	eb 03                	jmp    0x4171a5
4171a2:	8b 7d e0             	mov    -0x20(%ebp),%edi
4171a5:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
4171a9:	dd 45 e0             	fldl   -0x20(%ebp)
4171ac:	74 0d                	je     0x4171bb
4171ae:	d9 e0                	fchs
4171b0:	dd 55 f0             	fstl   -0x10(%ebp)
4171b3:	dd 55 e0             	fstl   -0x20(%ebp)
4171b6:	8b 7d e0             	mov    -0x20(%ebp),%edi
4171b9:	eb 03                	jmp    0x4171be
4171bb:	dd 55 f0             	fstl   -0x10(%ebp)
4171be:	84 c0                	test   %al,%al
4171c0:	75 04                	jne    0x4171c6
4171c2:	84 e4                	test   %ah,%ah
4171c4:	74 4b                	je     0x417211
4171c6:	dd d8                	fstp   %st(0)
4171c8:	e8 56 d4 ff ff       	call   0x414623
4171cd:	85 c0                	test   %eax,%eax
4171cf:	74 1c                	je     0x4171ed
4171d1:	3d 00 01 00 00       	cmp    $0x100,%eax
4171d6:	74 0e                	je     0x4171e6
4171d8:	3d 00 02 00 00       	cmp    $0x200,%eax
4171dd:	75 2f                	jne    0x41720e
4171df:	8a 45 ff             	mov    -0x1(%ebp),%al
4171e2:	34 01                	xor    $0x1,%al
4171e4:	eb 03                	jmp    0x4171e9
4171e6:	8a 45 ff             	mov    -0x1(%ebp),%al
4171e9:	84 c0                	test   %al,%al
4171eb:	eb 10                	jmp    0x4171fd
4171ed:	80 7d fe 00          	cmpb   $0x0,-0x2(%ebp)
4171f1:	74 1b                	je     0x41720e
4171f3:	80 7d fd 00          	cmpb   $0x0,-0x3(%ebp)
4171f7:	75 06                	jne    0x4171ff
4171f9:	f6 45 e0 01          	testb  $0x1,-0x20(%ebp)
4171fd:	74 0f                	je     0x41720e
4171ff:	83 c7 01             	add    $0x1,%edi
417202:	89 7d e0             	mov    %edi,-0x20(%ebp)
417205:	83 55 e4 00          	adcl   $0x0,-0x1c(%ebp)
417209:	dd 45 e0             	fldl   -0x20(%ebp)
41720c:	eb 03                	jmp    0x417211
41720e:	dd 45 f0             	fldl   -0x10(%ebp)
417211:	8b 45 f8             	mov    -0x8(%ebp),%eax
417214:	8b 4d 0c             	mov    0xc(%ebp),%ecx
417217:	dd 19                	fstpl  (%ecx)
417219:	85 c0                	test   %eax,%eax
41721b:	74 0c                	je     0x417229
41721d:	eb 02                	jmp    0x417221
41721f:	dd d8                	fstp   %st(0)
417221:	6a 10                	push   $0x10
417223:	e8 b3 de ff ff       	call   0x4150db
417228:	59                   	pop    %ecx
417229:	83 e6 fd             	and    $0xfffffffd,%esi
41722c:	5f                   	pop    %edi
41722d:	f6 c3 10             	test   $0x10,%bl
417230:	74 11                	je     0x417243
417232:	f6 45 10 20          	testb  $0x20,0x10(%ebp)
417236:	74 0b                	je     0x417243
417238:	6a 20                	push   $0x20
41723a:	e8 9c de ff ff       	call   0x4150db
41723f:	59                   	pop    %ecx
417240:	83 e6 ef             	and    $0xffffffef,%esi
417243:	33 c0                	xor    %eax,%eax
417245:	85 f6                	test   %esi,%esi
417247:	5e                   	pop    %esi
417248:	0f 94 c0             	sete   %al
41724b:	5b                   	pop    %ebx
41724c:	c9                   	leave
41724d:	c3                   	ret
41724e:	8b ff                	mov    %edi,%edi
417250:	55                   	push   %ebp
417251:	8b ec                	mov    %esp,%ebp
417253:	6a 00                	push   $0x0
417255:	ff 75 1c             	push   0x1c(%ebp)
417258:	ff 75 18             	push   0x18(%ebp)
41725b:	ff 75 14             	push   0x14(%ebp)
41725e:	ff 75 10             	push   0x10(%ebp)
417261:	ff 75 0c             	push   0xc(%ebp)
417264:	ff 75 08             	push   0x8(%ebp)
417267:	e8 05 00 00 00       	call   0x417271
41726c:	83 c4 1c             	add    $0x1c,%esp
41726f:	5d                   	pop    %ebp
417270:	c3                   	ret
417271:	8b ff                	mov    %edi,%edi
417273:	55                   	push   %ebp
417274:	8b ec                	mov    %esp,%ebp
417276:	8b 45 08             	mov    0x8(%ebp),%eax
417279:	33 c9                	xor    %ecx,%ecx
41727b:	53                   	push   %ebx
41727c:	33 db                	xor    %ebx,%ebx
41727e:	43                   	inc    %ebx
41727f:	89 48 04             	mov    %ecx,0x4(%eax)
417282:	8b 45 08             	mov    0x8(%ebp),%eax
417285:	57                   	push   %edi
417286:	bf 0d 00 00 c0       	mov    $0xc000000d,%edi
41728b:	89 48 08             	mov    %ecx,0x8(%eax)
41728e:	8b 45 08             	mov    0x8(%ebp),%eax
417291:	89 48 0c             	mov    %ecx,0xc(%eax)
417294:	8b 4d 10             	mov    0x10(%ebp),%ecx
417297:	f6 c1 10             	test   $0x10,%cl
41729a:	74 0b                	je     0x4172a7
41729c:	8b 45 08             	mov    0x8(%ebp),%eax
41729f:	bf 8f 00 00 c0       	mov    $0xc000008f,%edi
4172a4:	09 58 04             	or     %ebx,0x4(%eax)
4172a7:	f6 c1 02             	test   $0x2,%cl
4172aa:	74 0c                	je     0x4172b8
4172ac:	8b 45 08             	mov    0x8(%ebp),%eax
4172af:	bf 93 00 00 c0       	mov    $0xc0000093,%edi
4172b4:	83 48 04 02          	orl    $0x2,0x4(%eax)
4172b8:	f6 c1 01             	test   $0x1,%cl
4172bb:	74 0c                	je     0x4172c9
4172bd:	8b 45 08             	mov    0x8(%ebp),%eax
4172c0:	bf 91 00 00 c0       	mov    $0xc0000091,%edi
4172c5:	83 48 04 04          	orl    $0x4,0x4(%eax)
4172c9:	f6 c1 04             	test   $0x4,%cl
4172cc:	74 0c                	je     0x4172da
4172ce:	8b 45 08             	mov    0x8(%ebp),%eax
4172d1:	bf 8e 00 00 c0       	mov    $0xc000008e,%edi
4172d6:	83 48 04 08          	orl    $0x8,0x4(%eax)
4172da:	f6 c1 08             	test   $0x8,%cl
4172dd:	74 0c                	je     0x4172eb
4172df:	8b 45 08             	mov    0x8(%ebp),%eax
4172e2:	bf 90 00 00 c0       	mov    $0xc0000090,%edi
4172e7:	83 48 04 10          	orl    $0x10,0x4(%eax)
4172eb:	8b 4d 08             	mov    0x8(%ebp),%ecx
4172ee:	56                   	push   %esi
4172ef:	8b 75 0c             	mov    0xc(%ebp),%esi
4172f2:	8b 06                	mov    (%esi),%eax
4172f4:	c1 e0 04             	shl    $0x4,%eax
4172f7:	f7 d0                	not    %eax
4172f9:	33 41 08             	xor    0x8(%ecx),%eax
4172fc:	83 e0 10             	and    $0x10,%eax
4172ff:	31 41 08             	xor    %eax,0x8(%ecx)
417302:	8b 4d 08             	mov    0x8(%ebp),%ecx
417305:	8b 06                	mov    (%esi),%eax
417307:	03 c0                	add    %eax,%eax
417309:	f7 d0                	not    %eax
41730b:	33 41 08             	xor    0x8(%ecx),%eax
41730e:	83 e0 08             	and    $0x8,%eax
417311:	31 41 08             	xor    %eax,0x8(%ecx)
417314:	8b 4d 08             	mov    0x8(%ebp),%ecx
417317:	8b 06                	mov    (%esi),%eax
417319:	d1 e8                	shr    $1,%eax
41731b:	f7 d0                	not    %eax
41731d:	33 41 08             	xor    0x8(%ecx),%eax
417320:	83 e0 04             	and    $0x4,%eax
417323:	31 41 08             	xor    %eax,0x8(%ecx)
417326:	8b 4d 08             	mov    0x8(%ebp),%ecx
417329:	8b 06                	mov    (%esi),%eax
41732b:	c1 e8 03             	shr    $0x3,%eax
41732e:	f7 d0                	not    %eax
417330:	33 41 08             	xor    0x8(%ecx),%eax
417333:	83 e0 02             	and    $0x2,%eax
417336:	31 41 08             	xor    %eax,0x8(%ecx)
417339:	8b 06                	mov    (%esi),%eax
41733b:	8b 4d 08             	mov    0x8(%ebp),%ecx
41733e:	c1 e8 05             	shr    $0x5,%eax
417341:	f7 d0                	not    %eax
417343:	33 41 08             	xor    0x8(%ecx),%eax
417346:	23 c3                	and    %ebx,%eax
417348:	31 41 08             	xor    %eax,0x8(%ecx)
41734b:	e8 e4 dd ff ff       	call   0x415134
417350:	8b d0                	mov    %eax,%edx
417352:	f6 c2 01             	test   $0x1,%dl
417355:	74 07                	je     0x41735e
417357:	8b 4d 08             	mov    0x8(%ebp),%ecx
41735a:	83 49 0c 10          	orl    $0x10,0xc(%ecx)
41735e:	f6 c2 04             	test   $0x4,%dl
417361:	74 07                	je     0x41736a
417363:	8b 45 08             	mov    0x8(%ebp),%eax
417366:	83 48 0c 08          	orl    $0x8,0xc(%eax)
41736a:	f6 c2 08             	test   $0x8,%dl
41736d:	74 07                	je     0x417376
41736f:	8b 45 08             	mov    0x8(%ebp),%eax
417372:	83 48 0c 04          	orl    $0x4,0xc(%eax)
417376:	f6 c2 10             	test   $0x10,%dl
417379:	74 07                	je     0x417382
41737b:	8b 45 08             	mov    0x8(%ebp),%eax
41737e:	83 48 0c 02          	orl    $0x2,0xc(%eax)
417382:	f6 c2 20             	test   $0x20,%dl
417385:	74 06                	je     0x41738d
417387:	8b 45 08             	mov    0x8(%ebp),%eax
41738a:	09 58 0c             	or     %ebx,0xc(%eax)
41738d:	8b 06                	mov    (%esi),%eax
41738f:	b9 00 0c 00 00       	mov    $0xc00,%ecx
417394:	23 c1                	and    %ecx,%eax
417396:	74 35                	je     0x4173cd
417398:	3d 00 04 00 00       	cmp    $0x400,%eax
41739d:	74 22                	je     0x4173c1
41739f:	3d 00 08 00 00       	cmp    $0x800,%eax
4173a4:	74 0c                	je     0x4173b2
4173a6:	3b c1                	cmp    %ecx,%eax
4173a8:	75 29                	jne    0x4173d3
4173aa:	8b 45 08             	mov    0x8(%ebp),%eax