4173ad:	83 08 03             	orl    $0x3,(%eax)
4173b0:	eb 21                	jmp    0x4173d3
4173b2:	8b 4d 08             	mov    0x8(%ebp),%ecx
4173b5:	8b 01                	mov    (%ecx),%eax
4173b7:	83 e0 fe             	and    $0xfffffffe,%eax
4173ba:	83 c8 02             	or     $0x2,%eax
4173bd:	89 01                	mov    %eax,(%ecx)
4173bf:	eb 12                	jmp    0x4173d3
4173c1:	8b 4d 08             	mov    0x8(%ebp),%ecx
4173c4:	8b 01                	mov    (%ecx),%eax
4173c6:	83 e0 fd             	and    $0xfffffffd,%eax
4173c9:	0b c3                	or     %ebx,%eax
4173cb:	eb f0                	jmp    0x4173bd
4173cd:	8b 45 08             	mov    0x8(%ebp),%eax
4173d0:	83 20 fc             	andl   $0xfffffffc,(%eax)
4173d3:	8b 06                	mov    (%esi),%eax
4173d5:	b9 00 03 00 00       	mov    $0x300,%ecx
4173da:	23 c1                	and    %ecx,%eax
4173dc:	74 20                	je     0x4173fe
4173de:	3d 00 02 00 00       	cmp    $0x200,%eax
4173e3:	74 0c                	je     0x4173f1
4173e5:	3b c1                	cmp    %ecx,%eax
4173e7:	75 22                	jne    0x41740b
4173e9:	8b 45 08             	mov    0x8(%ebp),%eax
4173ec:	83 20 e3             	andl   $0xffffffe3,(%eax)
4173ef:	eb 1a                	jmp    0x41740b
4173f1:	8b 4d 08             	mov    0x8(%ebp),%ecx
4173f4:	8b 01                	mov    (%ecx),%eax
4173f6:	83 e0 e7             	and    $0xffffffe7,%eax
4173f9:	83 c8 04             	or     $0x4,%eax
4173fc:	eb 0b                	jmp    0x417409
4173fe:	8b 4d 08             	mov    0x8(%ebp),%ecx
417401:	8b 01                	mov    (%ecx),%eax
417403:	83 e0 eb             	and    $0xffffffeb,%eax
417406:	83 c8 08             	or     $0x8,%eax
417409:	89 01                	mov    %eax,(%ecx)
41740b:	8b 45 08             	mov    0x8(%ebp),%eax
41740e:	8b 4d 14             	mov    0x14(%ebp),%ecx
417411:	c1 e1 05             	shl    $0x5,%ecx
417414:	33 08                	xor    (%eax),%ecx
417416:	81 e1 e0 ff 01 00    	and    $0x1ffe0,%ecx
41741c:	31 08                	xor    %ecx,(%eax)
41741e:	8b 45 08             	mov    0x8(%ebp),%eax
417421:	09 58 20             	or     %ebx,0x20(%eax)
417424:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
417428:	74 2c                	je     0x417456
41742a:	8b 45 08             	mov    0x8(%ebp),%eax
41742d:	83 60 20 e1          	andl   $0xffffffe1,0x20(%eax)
417431:	8b 45 18             	mov    0x18(%ebp),%eax
417434:	d9 00                	flds   (%eax)
417436:	8b 45 08             	mov    0x8(%ebp),%eax
417439:	d9 58 10             	fstps  0x10(%eax)
41743c:	8b 45 08             	mov    0x8(%ebp),%eax
41743f:	09 58 60             	or     %ebx,0x60(%eax)
417442:	8b 45 08             	mov    0x8(%ebp),%eax
417445:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
417448:	83 60 60 e1          	andl   $0xffffffe1,0x60(%eax)
41744c:	8b 45 08             	mov    0x8(%ebp),%eax
41744f:	d9 03                	flds   (%ebx)
417451:	d9 58 50             	fstps  0x50(%eax)
417454:	eb 3a                	jmp    0x417490
417456:	8b 4d 08             	mov    0x8(%ebp),%ecx
417459:	8b 41 20             	mov    0x20(%ecx),%eax
41745c:	83 e0 e3             	and    $0xffffffe3,%eax
41745f:	83 c8 02             	or     $0x2,%eax
417462:	89 41 20             	mov    %eax,0x20(%ecx)
417465:	8b 45 18             	mov    0x18(%ebp),%eax
417468:	dd 00                	fldl   (%eax)
41746a:	8b 45 08             	mov    0x8(%ebp),%eax
41746d:	dd 58 10             	fstpl  0x10(%eax)
417470:	8b 45 08             	mov    0x8(%ebp),%eax
417473:	09 58 60             	or     %ebx,0x60(%eax)
417476:	8b 4d 08             	mov    0x8(%ebp),%ecx
417479:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
41747c:	8b 41 60             	mov    0x60(%ecx),%eax
41747f:	83 e0 e3             	and    $0xffffffe3,%eax
417482:	83 c8 02             	or     $0x2,%eax
417485:	89 41 60             	mov    %eax,0x60(%ecx)
417488:	8b 45 08             	mov    0x8(%ebp),%eax
41748b:	dd 03                	fldl   (%ebx)
41748d:	dd 58 50             	fstpl  0x50(%eax)
417490:	e8 0b dc ff ff       	call   0x4150a0
417495:	8d 45 08             	lea    0x8(%ebp),%eax
417498:	50                   	push   %eax
417499:	6a 01                	push   $0x1
41749b:	6a 00                	push   $0x0
41749d:	57                   	push   %edi
41749e:	ff 15 80 90 41 00    	call   *0x419080
4174a4:	8b 4d 08             	mov    0x8(%ebp),%ecx
4174a7:	f6 41 08 10          	testb  $0x10,0x8(%ecx)
4174ab:	74 03                	je     0x4174b0
4174ad:	83 26 fe             	andl   $0xfffffffe,(%esi)
4174b0:	f6 41 08 08          	testb  $0x8,0x8(%ecx)
4174b4:	74 03                	je     0x4174b9
4174b6:	83 26 fb             	andl   $0xfffffffb,(%esi)
4174b9:	f6 41 08 04          	testb  $0x4,0x8(%ecx)
4174bd:	74 03                	je     0x4174c2
4174bf:	83 26 f7             	andl   $0xfffffff7,(%esi)
4174c2:	f6 41 08 02          	testb  $0x2,0x8(%ecx)
4174c6:	74 03                	je     0x4174cb
4174c8:	83 26 ef             	andl   $0xffffffef,(%esi)
4174cb:	f6 41 08 01          	testb  $0x1,0x8(%ecx)
4174cf:	74 03                	je     0x4174d4
4174d1:	83 26 df             	andl   $0xffffffdf,(%esi)
4174d4:	8b 01                	mov    (%ecx),%eax
4174d6:	ba ff f3 ff ff       	mov    $0xfffff3ff,%edx
4174db:	83 e0 03             	and    $0x3,%eax
4174de:	83 e8 00             	sub    $0x0,%eax
4174e1:	74 35                	je     0x417518
4174e3:	83 e8 01             	sub    $0x1,%eax
4174e6:	74 22                	je     0x41750a
4174e8:	83 e8 01             	sub    $0x1,%eax
4174eb:	74 0d                	je     0x4174fa
4174ed:	83 e8 01             	sub    $0x1,%eax
4174f0:	75 28                	jne    0x41751a
4174f2:	81 0e 00 0c 00 00    	orl    $0xc00,(%esi)
4174f8:	eb 20                	jmp    0x41751a
4174fa:	8b 06                	mov    (%esi),%eax
4174fc:	25 ff fb ff ff       	and    $0xfffffbff,%eax
417501:	0d 00 08 00 00       	or     $0x800,%eax
417506:	89 06                	mov    %eax,(%esi)
417508:	eb 10                	jmp    0x41751a
41750a:	8b 06                	mov    (%esi),%eax
41750c:	25 ff f7 ff ff       	and    $0xfffff7ff,%eax
417511:	0d 00 04 00 00       	or     $0x400,%eax
417516:	eb ee                	jmp    0x417506
417518:	21 16                	and    %edx,(%esi)
41751a:	8b 01                	mov    (%ecx),%eax
41751c:	c1 e8 02             	shr    $0x2,%eax
41751f:	83 e0 07             	and    $0x7,%eax
417522:	83 e8 00             	sub    $0x0,%eax
417525:	74 19                	je     0x417540
417527:	83 e8 01             	sub    $0x1,%eax
41752a:	74 09                	je     0x417535
41752c:	83 e8 01             	sub    $0x1,%eax
41752f:	75 1a                	jne    0x41754b
417531:	21 16                	and    %edx,(%esi)
417533:	eb 16                	jmp    0x41754b
417535:	8b 06                	mov    (%esi),%eax
417537:	23 c2                	and    %edx,%eax
417539:	0d 00 02 00 00       	or     $0x200,%eax
41753e:	eb 09                	jmp    0x417549
417540:	8b 06                	mov    (%esi),%eax
417542:	23 c2                	and    %edx,%eax
417544:	0d 00 03 00 00       	or     $0x300,%eax
417549:	89 06                	mov    %eax,(%esi)
41754b:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
41754f:	5e                   	pop    %esi
417550:	74 07                	je     0x417559
417552:	d9 41 50             	flds   0x50(%ecx)
417555:	d9 1b                	fstps  (%ebx)
417557:	eb 05                	jmp    0x41755e
417559:	dd 41 50             	fldl   0x50(%ecx)
41755c:	dd 1b                	fstpl  (%ebx)
41755e:	5f                   	pop    %edi
41755f:	5b                   	pop    %ebx
417560:	5d                   	pop    %ebp
417561:	c3                   	ret
417562:	8b ff                	mov    %edi,%edi
417564:	55                   	push   %ebp
417565:	8b ec                	mov    %esp,%ebp
417567:	8b 45 08             	mov    0x8(%ebp),%eax
41756a:	83 e8 01             	sub    $0x1,%eax
41756d:	74 17                	je     0x417586
41756f:	83 e8 01             	sub    $0x1,%eax
417572:	74 05                	je     0x417579
417574:	83 e8 01             	sub    $0x1,%eax
417577:	75 18                	jne    0x417591
417579:	e8 b1 31 ff ff       	call   0x40a72f
41757e:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
417584:	5d                   	pop    %ebp
417585:	c3                   	ret
417586:	e8 a4 31 ff ff       	call   0x40a72f
41758b:	c7 00 21 00 00 00    	movl   $0x21,(%eax)
417591:	5d                   	pop    %ebp
417592:	c3                   	ret
417593:	8b ff                	mov    %edi,%edi
417595:	55                   	push   %ebp
417596:	8b ec                	mov    %esp,%ebp
417598:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41759b:	83 ec 20             	sub    $0x20,%esp
41759e:	33 c0                	xor    %eax,%eax
4175a0:	39 0c c5 28 ed 41 00 	cmp    %ecx,0x41ed28(,%eax,8)
4175a7:	74 27                	je     0x4175d0
4175a9:	40                   	inc    %eax
4175aa:	83 f8 1d             	cmp    $0x1d,%eax
4175ad:	7c f1                	jl     0x4175a0
4175af:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
4175b3:	68 ff ff 00 00       	push   $0xffff
4175b8:	ff 75 28             	push   0x28(%ebp)
4175bb:	e8 f1 da ff ff       	call   0x4150b1
4175c0:	ff 75 08             	push   0x8(%ebp)
4175c3:	e8 9a ff ff ff       	call   0x417562
4175c8:	dd 45 20             	fldl   0x20(%ebp)
4175cb:	83 c4 0c             	add    $0xc,%esp
4175ce:	c9                   	leave
4175cf:	c3                   	ret
4175d0:	8b 04 c5 2c ed 41 00 	mov    0x41ed2c(,%eax,8),%eax
4175d7:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4175da:	85 c0                	test   %eax,%eax
4175dc:	74 d5                	je     0x4175b3
4175de:	8b 45 10             	mov    0x10(%ebp),%eax
4175e1:	89 45 e8             	mov    %eax,-0x18(%ebp)
4175e4:	8b 45 14             	mov    0x14(%ebp),%eax
4175e7:	89 45 ec             	mov    %eax,-0x14(%ebp)
4175ea:	8b 45 18             	mov    0x18(%ebp),%eax
4175ed:	89 45 f0             	mov    %eax,-0x10(%ebp)
4175f0:	8b 45 1c             	mov    0x1c(%ebp),%eax
4175f3:	56                   	push   %esi
4175f4:	8b 75 08             	mov    0x8(%ebp),%esi
4175f7:	89 45 f4             	mov    %eax,-0xc(%ebp)
4175fa:	8b 45 20             	mov    0x20(%ebp),%eax
4175fd:	68 ff ff 00 00       	push   $0xffff
417602:	ff 75 28             	push   0x28(%ebp)
417605:	89 45 f8             	mov    %eax,-0x8(%ebp)
417608:	8b 45 24             	mov    0x24(%ebp),%eax
41760b:	89 75 e0             	mov    %esi,-0x20(%ebp)
41760e:	89 45 fc             	mov    %eax,-0x4(%ebp)
417611:	e8 9b da ff ff       	call   0x4150b1
417616:	8d 45 e0             	lea    -0x20(%ebp),%eax
417619:	50                   	push   %eax
41761a:	e8 75 1d ff ff       	call   0x409394
41761f:	83 c4 0c             	add    $0xc,%esp
417622:	85 c0                	test   %eax,%eax
417624:	75 07                	jne    0x41762d
417626:	56                   	push   %esi
417627:	e8 36 ff ff ff       	call   0x417562
41762c:	59                   	pop    %ecx
41762d:	dd 45 f8             	fldl   -0x8(%ebp)
417630:	5e                   	pop    %esi
417631:	c9                   	leave
417632:	c3                   	ret
417633:	8b ff                	mov    %edi,%edi
417635:	55                   	push   %ebp
417636:	8b ec                	mov    %esp,%ebp
417638:	dd 45 08             	fldl   0x8(%ebp)
41763b:	d9 ee                	fldz
41763d:	dd e1                	fucom  %st(1)
41763f:	df e0                	fnstsw %ax
417641:	56                   	push   %esi
417642:	f6 c4 44             	test   $0x44,%ah
417645:	7a 09                	jp     0x417650
417647:	dd d9                	fstp   %st(1)
417649:	33 f6                	xor    %esi,%esi
41764b:	e9 ad 00 00 00       	jmp    0x4176fd
417650:	57                   	push   %edi
417651:	66 8b 7d 0e          	mov    0xe(%ebp),%di
417655:	0f b7 c7             	movzwl %di,%eax
417658:	a9 f0 7f 00 00       	test   $0x7ff0,%eax
41765d:	75 7a                	jne    0x4176d9
41765f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
417662:	8b 55 08             	mov    0x8(%ebp),%edx
417665:	f7 c1 ff ff 0f 00    	test   $0xfffff,%ecx
41766b:	75 04                	jne    0x417671
41766d:	85 d2                	test   %edx,%edx
41766f:	74 68                	je     0x4176d9
417671:	de d9                	fcompp
417673:	be 03 fc ff ff       	mov    $0xfffffc03,%esi
417678:	df e0                	fnstsw %ax
41767a:	53                   	push   %ebx
41767b:	33 db                	xor    %ebx,%ebx
41767d:	f6 c4 41             	test   $0x41,%ah
417680:	75 01                	jne    0x417683
417682:	43                   	inc    %ebx
417683:	f6 45 0e 10          	testb  $0x10,0xe(%ebp)
417687:	75 1f                	jne    0x4176a8
417689:	03 c9                	add    %ecx,%ecx
41768b:	89 4d 0c             	mov    %ecx,0xc(%ebp)
41768e:	85 d2                	test   %edx,%edx
417690:	79 06                	jns    0x417698
417692:	83 c9 01             	or     $0x1,%ecx
417695:	89 4d 0c             	mov    %ecx,0xc(%ebp)
417698:	03 d2                	add    %edx,%edx
41769a:	4e                   	dec    %esi
41769b:	f6 45 0e 10          	testb  $0x10,0xe(%ebp)
41769f:	74 e8                	je     0x417689
4176a1:	66 8b 7d 0e          	mov    0xe(%ebp),%di
4176a5:	89 55 08             	mov    %edx,0x8(%ebp)
4176a8:	b8 ef ff 00 00       	mov    $0xffef,%eax
4176ad:	66 23 f8             	and    %ax,%di
4176b0:	85 db                	test   %ebx,%ebx
4176b2:	0f b7 c7             	movzwl %di,%eax
4176b5:	66 89 7d 0e          	mov    %di,0xe(%ebp)
4176b9:	5b                   	pop    %ebx
4176ba:	74 09                	je     0x4176c5
4176bc:	0d 00 80 00 00       	or     $0x8000,%eax
4176c1:	66 89 45 0e          	mov    %ax,0xe(%ebp)
4176c5:	dd 45 08             	fldl   0x8(%ebp)
4176c8:	6a 00                	push   $0x0
4176ca:	51                   	push   %ecx
4176cb:	51                   	push   %ecx
4176cc:	dd 1c 24             	fstpl  (%esp)
4176cf:	e8 31 00 00 00       	call   0x417705
4176d4:	83 c4 0c             	add    $0xc,%esp
4176d7:	eb 23                	jmp    0x4176fc
4176d9:	6a 00                	push   $0x0
4176db:	51                   	push   %ecx
4176dc:	dd d8                	fstp   %st(0)
4176de:	51                   	push   %ecx
4176df:	dd 1c 24             	fstpl  (%esp)
4176e2:	e8 1e 00 00 00       	call   0x417705
4176e7:	0f b7 f7             	movzwl %di,%esi
4176ea:	83 c4 0c             	add    $0xc,%esp
4176ed:	c1 ee 04             	shr    $0x4,%esi
4176f0:	81 e6 ff 07 00 00    	and    $0x7ff,%esi
4176f6:	81 ee fe 03 00 00    	sub    $0x3fe,%esi
4176fc:	5f                   	pop    %edi
4176fd:	8b 45 10             	mov    0x10(%ebp),%eax
417700:	89 30                	mov    %esi,(%eax)
417702:	5e                   	pop    %esi
417703:	5d                   	pop    %ebp
417704:	c3                   	ret
417705:	8b ff                	mov    %edi,%edi
417707:	55                   	push   %ebp
417708:	8b ec                	mov    %esp,%ebp
41770a:	51                   	push   %ecx
41770b:	51                   	push   %ecx
41770c:	8b 4d 10             	mov    0x10(%ebp),%ecx
41770f:	0f b7 45 0e          	movzwl 0xe(%ebp),%eax
417713:	dd 45 08             	fldl   0x8(%ebp)
417716:	25 0f 80 00 00       	and    $0x800f,%eax
41771b:	dd 5d f8             	fstpl  -0x8(%ebp)
41771e:	8d 89 fe 03 00 00    	lea    0x3fe(%ecx),%ecx
417724:	c1 e1 04             	shl    $0x4,%ecx
417727:	0b c8                	or     %eax,%ecx
417729:	66 89 4d fe          	mov    %cx,-0x2(%ebp)
41772d:	dd 45 f8             	fldl   -0x8(%ebp)
417730:	c9                   	leave
417731:	c3                   	ret
417732:	8b ff                	mov    %edi,%edi
417734:	55                   	push   %ebp
417735:	8b ec                	mov    %esp,%ebp
417737:	81 7d 0c 00 00 f0 7f 	cmpl   $0x7ff00000,0xc(%ebp)
41773e:	8b 45 08             	mov    0x8(%ebp),%eax
417741:	75 07                	jne    0x41774a
417743:	85 c0                	test   %eax,%eax
417745:	75 15                	jne    0x41775c
417747:	40                   	inc    %eax
417748:	5d                   	pop    %ebp
417749:	c3                   	ret
41774a:	81 7d 0c 00 00 f0 ff 	cmpl   $0xfff00000,0xc(%ebp)
417751:	75 09                	jne    0x41775c
417753:	85 c0                	test   %eax,%eax
417755:	75 05                	jne    0x41775c
417757:	6a 02                	push   $0x2
417759:	58                   	pop    %eax
41775a:	5d                   	pop    %ebp
41775b:	c3                   	ret
41775c:	66 8b 4d 0e          	mov    0xe(%ebp),%cx
417760:	ba f8 7f 00 00       	mov    $0x7ff8,%edx