415266:	23 c1                	and    %ecx,%eax
415268:	74 54                	je     0x4152be
41526a:	3d 00 04 00 00       	cmp    $0x400,%eax
41526f:	74 37                	je     0x4152a8
415271:	3d 00 08 00 00       	cmp    $0x800,%eax
415276:	74 1a                	je     0x415292
415278:	3b c1                	cmp    %ecx,%eax
41527a:	75 62                	jne    0x4152de
41527c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41527f:	d9 ee                	fldz
415281:	dc 19                	fcompl (%ecx)
415283:	df e0                	fnstsw %ax
415285:	dd 05 f8 83 42 00    	fldl   0x4283f8
41528b:	f6 c4 05             	test   $0x5,%ah
41528e:	7b 4c                	jnp    0x4152dc
415290:	eb 48                	jmp    0x4152da
415292:	8b 4d 0c             	mov    0xc(%ebp),%ecx
415295:	d9 ee                	fldz
415297:	dc 19                	fcompl (%ecx)
415299:	df e0                	fnstsw %ax
41529b:	f6 c4 05             	test   $0x5,%ah
41529e:	7b 2c                	jnp    0x4152cc
4152a0:	dd 05 f8 83 42 00    	fldl   0x4283f8
4152a6:	eb 32                	jmp    0x4152da
4152a8:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4152ab:	d9 ee                	fldz
4152ad:	dc 19                	fcompl (%ecx)
4152af:	df e0                	fnstsw %ax
4152b1:	f6 c4 05             	test   $0x5,%ah
4152b4:	7a 1e                	jp     0x4152d4
4152b6:	dd 05 f8 83 42 00    	fldl   0x4283f8
4152bc:	eb 1e                	jmp    0x4152dc
4152be:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4152c1:	d9 ee                	fldz
4152c3:	dc 19                	fcompl (%ecx)
4152c5:	df e0                	fnstsw %ax
4152c7:	f6 c4 05             	test   $0x5,%ah
4152ca:	7a 08                	jp     0x4152d4
4152cc:	dd 05 f0 83 42 00    	fldl   0x4283f0
4152d2:	eb 08                	jmp    0x4152dc
4152d4:	dd 05 f0 83 42 00    	fldl   0x4283f0
4152da:	d9 e0                	fchs
4152dc:	dd 19                	fstpl  (%ecx)
4152de:	83 e6 fe             	and    $0xfffffffe,%esi
4152e1:	e9 e1 00 00 00       	jmp    0x4153c7
4152e6:	f6 c3 02             	test   $0x2,%bl
4152e9:	0f 84 d8 00 00 00    	je     0x4153c7
4152ef:	f6 45 10 10          	testb  $0x10,0x10(%ebp)
4152f3:	0f 84 ce 00 00 00    	je     0x4153c7
4152f9:	8b 45 0c             	mov    0xc(%ebp),%eax
4152fc:	57                   	push   %edi
4152fd:	8b fb                	mov    %ebx,%edi
4152ff:	c1 ef 04             	shr    $0x4,%edi
415302:	dd 00                	fldl   (%eax)
415304:	83 e7 01             	and    $0x1,%edi
415307:	d9 ee                	fldz
415309:	dd e9                	fucomp %st(1)
41530b:	df e0                	fnstsw %ax
41530d:	f6 c4 44             	test   $0x44,%ah
415310:	0f 8b 9c 00 00 00    	jnp    0x4153b2
415316:	8d 45 fc             	lea    -0x4(%ebp),%eax
415319:	50                   	push   %eax
41531a:	51                   	push   %ecx
41531b:	51                   	push   %ecx
41531c:	dd 1c 24             	fstpl  (%esp)
41531f:	e8 ac 04 00 00       	call   0x4157d0
415324:	8b 55 fc             	mov    -0x4(%ebp),%edx
415327:	83 c4 0c             	add    $0xc,%esp
41532a:	81 c2 00 fa ff ff    	add    $0xfffffa00,%edx
415330:	dd 55 f0             	fstl   -0x10(%ebp)
415333:	d9 ee                	fldz
415335:	81 fa ce fb ff ff    	cmp    $0xfffffbce,%edx
41533b:	7d 07                	jge    0x415344
41533d:	33 ff                	xor    %edi,%edi
41533f:	de c9                	fmulp  %st,%st(1)
415341:	47                   	inc    %edi
415342:	eb 67                	jmp    0x4153ab
415344:	de d9                	fcompp
415346:	df e0                	fnstsw %ax
415348:	f6 c4 41             	test   $0x41,%ah
41534b:	75 09                	jne    0x415356
41534d:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
415354:	eb 04                	jmp    0x41535a
415356:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41535a:	8b 45 f6             	mov    -0xa(%ebp),%eax
41535d:	b9 03 fc ff ff       	mov    $0xfffffc03,%ecx
415362:	83 e0 0f             	and    $0xf,%eax
415365:	83 c8 10             	or     $0x10,%eax
415368:	66 89 45 f6          	mov    %ax,-0xa(%ebp)
41536c:	3b d1                	cmp    %ecx,%edx
41536e:	7d 30                	jge    0x4153a0
415370:	8b 45 f0             	mov    -0x10(%ebp),%eax
415373:	2b ca                	sub    %edx,%ecx
415375:	8b 55 f4             	mov    -0xc(%ebp),%edx
415378:	f6 45 f0 01          	testb  $0x1,-0x10(%ebp)
41537c:	74 05                	je     0x415383
41537e:	85 ff                	test   %edi,%edi
415380:	75 01                	jne    0x415383
415382:	47                   	inc    %edi
415383:	d1 e8                	shr    $1,%eax
415385:	f6 45 f4 01          	testb  $0x1,-0xc(%ebp)
415389:	89 45 f0             	mov    %eax,-0x10(%ebp)
41538c:	74 08                	je     0x415396
41538e:	0d 00 00 00 80       	or     $0x80000000,%eax
415393:	89 45 f0             	mov    %eax,-0x10(%ebp)
415396:	d1 ea                	shr    $1,%edx
415398:	89 55 f4             	mov    %edx,-0xc(%ebp)
41539b:	83 e9 01             	sub    $0x1,%ecx
41539e:	75 d8                	jne    0x415378
4153a0:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
4153a4:	dd 45 f0             	fldl   -0x10(%ebp)
4153a7:	74 02                	je     0x4153ab
4153a9:	d9 e0                	fchs
4153ab:	8b 45 0c             	mov    0xc(%ebp),%eax
4153ae:	dd 18                	fstpl  (%eax)
4153b0:	eb 05                	jmp    0x4153b7
4153b2:	33 ff                	xor    %edi,%edi
4153b4:	dd d8                	fstp   %st(0)
4153b6:	47                   	inc    %edi
4153b7:	85 ff                	test   %edi,%edi
4153b9:	5f                   	pop    %edi
4153ba:	74 08                	je     0x4153c4
4153bc:	6a 10                	push   $0x10
4153be:	e8 25 06 00 00       	call   0x4159e8
4153c3:	59                   	pop    %ecx
4153c4:	83 e6 fd             	and    $0xfffffffd,%esi
4153c7:	f6 c3 10             	test   $0x10,%bl
4153ca:	74 11                	je     0x4153dd
4153cc:	f6 45 10 20          	testb  $0x20,0x10(%ebp)
4153d0:	74 0b                	je     0x4153dd
4153d2:	6a 20                	push   $0x20
4153d4:	e8 0f 06 00 00       	call   0x4159e8
4153d9:	59                   	pop    %ecx
4153da:	83 e6 ef             	and    $0xffffffef,%esi
4153dd:	33 c0                	xor    %eax,%eax
4153df:	85 f6                	test   %esi,%esi
4153e1:	5e                   	pop    %esi
4153e2:	0f 94 c0             	sete   %al
4153e5:	5b                   	pop    %ebx
4153e6:	c9                   	leave
4153e7:	c3                   	ret
4153e8:	8b ff                	mov    %edi,%edi
4153ea:	55                   	push   %ebp
4153eb:	8b ec                	mov    %esp,%ebp
4153ed:	6a 00                	push   $0x0
4153ef:	ff 75 1c             	push   0x1c(%ebp)
4153f2:	ff 75 18             	push   0x18(%ebp)
4153f5:	ff 75 14             	push   0x14(%ebp)
4153f8:	ff 75 10             	push   0x10(%ebp)
4153fb:	ff 75 0c             	push   0xc(%ebp)
4153fe:	ff 75 08             	push   0x8(%ebp)
415401:	e8 05 00 00 00       	call   0x41540b
415406:	83 c4 1c             	add    $0x1c,%esp
415409:	5d                   	pop    %ebp
41540a:	c3                   	ret
41540b:	8b ff                	mov    %edi,%edi
41540d:	55                   	push   %ebp
41540e:	8b ec                	mov    %esp,%ebp
415410:	8b 45 08             	mov    0x8(%ebp),%eax
415413:	33 c9                	xor    %ecx,%ecx
415415:	53                   	push   %ebx
415416:	33 db                	xor    %ebx,%ebx
415418:	43                   	inc    %ebx
415419:	89 48 04             	mov    %ecx,0x4(%eax)
41541c:	8b 45 08             	mov    0x8(%ebp),%eax
41541f:	57                   	push   %edi
415420:	bf 0d 00 00 c0       	mov    $0xc000000d,%edi
415425:	89 48 08             	mov    %ecx,0x8(%eax)
415428:	8b 45 08             	mov    0x8(%ebp),%eax
41542b:	89 48 0c             	mov    %ecx,0xc(%eax)
41542e:	8b 4d 10             	mov    0x10(%ebp),%ecx
415431:	f6 c1 10             	test   $0x10,%cl
415434:	74 0b                	je     0x415441
415436:	8b 45 08             	mov    0x8(%ebp),%eax
415439:	bf 8f 00 00 c0       	mov    $0xc000008f,%edi
41543e:	09 58 04             	or     %ebx,0x4(%eax)
415441:	f6 c1 02             	test   $0x2,%cl
415444:	74 0c                	je     0x415452
415446:	8b 45 08             	mov    0x8(%ebp),%eax
415449:	bf 93 00 00 c0       	mov    $0xc0000093,%edi
41544e:	83 48 04 02          	orl    $0x2,0x4(%eax)
415452:	f6 c1 01             	test   $0x1,%cl
415455:	74 0c                	je     0x415463
415457:	8b 45 08             	mov    0x8(%ebp),%eax
41545a:	bf 91 00 00 c0       	mov    $0xc0000091,%edi
41545f:	83 48 04 04          	orl    $0x4,0x4(%eax)
415463:	f6 c1 04             	test   $0x4,%cl
415466:	74 0c                	je     0x415474
415468:	8b 45 08             	mov    0x8(%ebp),%eax
41546b:	bf 8e 00 00 c0       	mov    $0xc000008e,%edi
415470:	83 48 04 08          	orl    $0x8,0x4(%eax)
415474:	f6 c1 08             	test   $0x8,%cl
415477:	74 0c                	je     0x415485
415479:	8b 45 08             	mov    0x8(%ebp),%eax
41547c:	bf 90 00 00 c0       	mov    $0xc0000090,%edi
415481:	83 48 04 10          	orl    $0x10,0x4(%eax)
415485:	8b 4d 08             	mov    0x8(%ebp),%ecx
415488:	56                   	push   %esi
415489:	8b 75 0c             	mov    0xc(%ebp),%esi
41548c:	8b 06                	mov    (%esi),%eax
41548e:	c1 e0 04             	shl    $0x4,%eax
415491:	f7 d0                	not    %eax
415493:	33 41 08             	xor    0x8(%ecx),%eax
415496:	83 e0 10             	and    $0x10,%eax
415499:	31 41 08             	xor    %eax,0x8(%ecx)
41549c:	8b 4d 08             	mov    0x8(%ebp),%ecx
41549f:	8b 06                	mov    (%esi),%eax
4154a1:	03 c0                	add    %eax,%eax
4154a3:	f7 d0                	not    %eax
4154a5:	33 41 08             	xor    0x8(%ecx),%eax
4154a8:	83 e0 08             	and    $0x8,%eax
4154ab:	31 41 08             	xor    %eax,0x8(%ecx)
4154ae:	8b 4d 08             	mov    0x8(%ebp),%ecx
4154b1:	8b 06                	mov    (%esi),%eax
4154b3:	d1 e8                	shr    $1,%eax
4154b5:	f7 d0                	not    %eax
4154b7:	33 41 08             	xor    0x8(%ecx),%eax
4154ba:	83 e0 04             	and    $0x4,%eax
4154bd:	31 41 08             	xor    %eax,0x8(%ecx)
4154c0:	8b 4d 08             	mov    0x8(%ebp),%ecx
4154c3:	8b 06                	mov    (%esi),%eax
4154c5:	c1 e8 03             	shr    $0x3,%eax
4154c8:	f7 d0                	not    %eax
4154ca:	33 41 08             	xor    0x8(%ecx),%eax
4154cd:	83 e0 02             	and    $0x2,%eax
4154d0:	31 41 08             	xor    %eax,0x8(%ecx)
4154d3:	8b 06                	mov    (%esi),%eax
4154d5:	8b 4d 08             	mov    0x8(%ebp),%ecx
4154d8:	c1 e8 05             	shr    $0x5,%eax
4154db:	f7 d0                	not    %eax
4154dd:	33 41 08             	xor    0x8(%ecx),%eax
4154e0:	23 c3                	and    %ebx,%eax
4154e2:	31 41 08             	xor    %eax,0x8(%ecx)
4154e5:	e8 57 05 00 00       	call   0x415a41
4154ea:	8b d0                	mov    %eax,%edx
4154ec:	f6 c2 01             	test   $0x1,%dl
4154ef:	74 07                	je     0x4154f8
4154f1:	8b 4d 08             	mov    0x8(%ebp),%ecx
4154f4:	83 49 0c 10          	orl    $0x10,0xc(%ecx)
4154f8:	f6 c2 04             	test   $0x4,%dl
4154fb:	74 07                	je     0x415504
4154fd:	8b 45 08             	mov    0x8(%ebp),%eax
415500:	83 48 0c 08          	orl    $0x8,0xc(%eax)
415504:	f6 c2 08             	test   $0x8,%dl
415507:	74 07                	je     0x415510
415509:	8b 45 08             	mov    0x8(%ebp),%eax
41550c:	83 48 0c 04          	orl    $0x4,0xc(%eax)
415510:	f6 c2 10             	test   $0x10,%dl
415513:	74 07                	je     0x41551c
415515:	8b 45 08             	mov    0x8(%ebp),%eax
415518:	83 48 0c 02          	orl    $0x2,0xc(%eax)
41551c:	f6 c2 20             	test   $0x20,%dl
41551f:	74 06                	je     0x415527
415521:	8b 45 08             	mov    0x8(%ebp),%eax
415524:	09 58 0c             	or     %ebx,0xc(%eax)
415527:	8b 06                	mov    (%esi),%eax
415529:	b9 00 0c 00 00       	mov    $0xc00,%ecx
41552e:	23 c1                	and    %ecx,%eax
415530:	74 35                	je     0x415567
415532:	3d 00 04 00 00       	cmp    $0x400,%eax
415537:	74 22                	je     0x41555b
415539:	3d 00 08 00 00       	cmp    $0x800,%eax
41553e:	74 0c                	je     0x41554c
415540:	3b c1                	cmp    %ecx,%eax
415542:	75 29                	jne    0x41556d
415544:	8b 45 08             	mov    0x8(%ebp),%eax
415547:	83 08 03             	orl    $0x3,(%eax)
41554a:	eb 21                	jmp    0x41556d
41554c:	8b 4d 08             	mov    0x8(%ebp),%ecx
41554f:	8b 01                	mov    (%ecx),%eax
415551:	83 e0 fe             	and    $0xfffffffe,%eax
415554:	83 c8 02             	or     $0x2,%eax
415557:	89 01                	mov    %eax,(%ecx)
415559:	eb 12                	jmp    0x41556d
41555b:	8b 4d 08             	mov    0x8(%ebp),%ecx
41555e:	8b 01                	mov    (%ecx),%eax
415560:	83 e0 fd             	and    $0xfffffffd,%eax
415563:	0b c3                	or     %ebx,%eax
415565:	eb f0                	jmp    0x415557
415567:	8b 45 08             	mov    0x8(%ebp),%eax
41556a:	83 20 fc             	andl   $0xfffffffc,(%eax)
41556d:	8b 06                	mov    (%esi),%eax
41556f:	b9 00 03 00 00       	mov    $0x300,%ecx
415574:	23 c1                	and    %ecx,%eax
415576:	74 20                	je     0x415598
415578:	3d 00 02 00 00       	cmp    $0x200,%eax
41557d:	74 0c                	je     0x41558b
41557f:	3b c1                	cmp    %ecx,%eax
415581:	75 22                	jne    0x4155a5
415583:	8b 45 08             	mov    0x8(%ebp),%eax
415586:	83 20 e3             	andl   $0xffffffe3,(%eax)
415589:	eb 1a                	jmp    0x4155a5
41558b:	8b 4d 08             	mov    0x8(%ebp),%ecx
41558e:	8b 01                	mov    (%ecx),%eax
415590:	83 e0 e7             	and    $0xffffffe7,%eax
415593:	83 c8 04             	or     $0x4,%eax
415596:	eb 0b                	jmp    0x4155a3
415598:	8b 4d 08             	mov    0x8(%ebp),%ecx
41559b:	8b 01                	mov    (%ecx),%eax
41559d:	83 e0 eb             	and    $0xffffffeb,%eax
4155a0:	83 c8 08             	or     $0x8,%eax
4155a3:	89 01                	mov    %eax,(%ecx)
4155a5:	8b 45 08             	mov    0x8(%ebp),%eax
4155a8:	8b 4d 14             	mov    0x14(%ebp),%ecx
4155ab:	c1 e1 05             	shl    $0x5,%ecx
4155ae:	33 08                	xor    (%eax),%ecx
4155b0:	81 e1 e0 ff 01 00    	and    $0x1ffe0,%ecx
4155b6:	31 08                	xor    %ecx,(%eax)
4155b8:	8b 45 08             	mov    0x8(%ebp),%eax
4155bb:	09 58 20             	or     %ebx,0x20(%eax)
4155be:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
4155c2:	74 2c                	je     0x4155f0
4155c4:	8b 45 08             	mov    0x8(%ebp),%eax
4155c7:	83 60 20 e1          	andl   $0xffffffe1,0x20(%eax)
4155cb:	8b 45 18             	mov    0x18(%ebp),%eax
4155ce:	d9 00                	flds   (%eax)
4155d0:	8b 45 08             	mov    0x8(%ebp),%eax
4155d3:	d9 58 10             	fstps  0x10(%eax)
4155d6:	8b 45 08             	mov    0x8(%ebp),%eax
4155d9:	09 58 60             	or     %ebx,0x60(%eax)
4155dc:	8b 45 08             	mov    0x8(%ebp),%eax
4155df:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
4155e2:	83 60 60 e1          	andl   $0xffffffe1,0x60(%eax)
4155e6:	8b 45 08             	mov    0x8(%ebp),%eax
4155e9:	d9 03                	flds   (%ebx)
4155eb:	d9 58 50             	fstps  0x50(%eax)
4155ee:	eb 3a                	jmp    0x41562a
4155f0:	8b 4d 08             	mov    0x8(%ebp),%ecx
4155f3:	8b 41 20             	mov    0x20(%ecx),%eax
4155f6:	83 e0 e3             	and    $0xffffffe3,%eax
4155f9:	83 c8 02             	or     $0x2,%eax
4155fc:	89 41 20             	mov    %eax,0x20(%ecx)
4155ff:	8b 45 18             	mov    0x18(%ebp),%eax
415602:	dd 00                	fldl   (%eax)
415604:	8b 45 08             	mov    0x8(%ebp),%eax
415607:	dd 58 10             	fstpl  0x10(%eax)
41560a:	8b 45 08             	mov    0x8(%ebp),%eax
41560d:	09 58 60             	or     %ebx,0x60(%eax)
415610:	8b 4d 08             	mov    0x8(%ebp),%ecx
415613:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
415616:	8b 41 60             	mov    0x60(%ecx),%eax
415619:	83 e0 e3             	and    $0xffffffe3,%eax
41561c:	83 c8 02             	or     $0x2,%eax
41561f:	89 41 60             	mov    %eax,0x60(%ecx)
415622:	8b 45 08             	mov    0x8(%ebp),%eax
415625:	dd 03                	fldl   (%ebx)
415627:	dd 58 50             	fstpl  0x50(%eax)
41562a:	e8 7e 03 00 00       	call   0x4159ad
41562f:	8d 45 08             	lea    0x8(%ebp),%eax
415632:	50                   	push   %eax