47a3b0:	55                   	push   %ebp
47a3b1:	8b ec                	mov    %esp,%ebp
47a3b3:	83 ec 08             	sub    $0x8,%esp
47a3b6:	53                   	push   %ebx
47a3b7:	8b 5d 08             	mov    0x8(%ebp),%ebx
47a3ba:	56                   	push   %esi
47a3bb:	8b f1                	mov    %ecx,%esi
47a3bd:	57                   	push   %edi
47a3be:	81 fb ff ff ff 3f    	cmp    $0x3fffffff,%ebx
47a3c4:	0f 87 86 00 00 00    	ja     0x47a450
47a3ca:	8b 4e 08             	mov    0x8(%esi),%ecx
47a3cd:	b8 ff ff ff 3f       	mov    $0x3fffffff,%eax
47a3d2:	2b 0e                	sub    (%esi),%ecx
47a3d4:	8b 7e 04             	mov    0x4(%esi),%edi
47a3d7:	2b 3e                	sub    (%esi),%edi
47a3d9:	c1 f9 02             	sar    $0x2,%ecx
47a3dc:	8b d1                	mov    %ecx,%edx
47a3de:	c1 ff 02             	sar    $0x2,%edi
47a3e1:	d1 ea                	shr    $1,%edx
47a3e3:	2b c2                	sub    %edx,%eax
47a3e5:	3b c8                	cmp    %eax,%ecx
47a3e7:	76 07                	jbe    0x47a3f0
47a3e9:	b8 ff ff ff 3f       	mov    $0x3fffffff,%eax
47a3ee:	eb 08                	jmp    0x47a3f8
47a3f0:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
47a3f3:	3b c3                	cmp    %ebx,%eax
47a3f5:	0f 42 c3             	cmovb  %ebx,%eax
47a3f8:	50                   	push   %eax
47a3f9:	8b ce                	mov    %esi,%ecx
47a3fb:	89 45 08             	mov    %eax,0x8(%ebp)
47a3fe:	e8 cd ee fe ff       	call   0x4692d0
47a403:	8b d0                	mov    %eax,%edx
47a405:	8b cb                	mov    %ebx,%ecx
47a407:	89 55 f8             	mov    %edx,-0x8(%ebp)
47a40a:	8d 04 ba             	lea    (%edx,%edi,4),%eax
47a40d:	89 45 fc             	mov    %eax,-0x4(%ebp)
47a410:	2b cf                	sub    %edi,%ecx
47a412:	74 07                	je     0x47a41b
47a414:	8b 7d fc             	mov    -0x4(%ebp),%edi
47a417:	33 c0                	xor    %eax,%eax
47a419:	f3 ab                	rep stos %eax,%es:(%edi)
47a41b:	8b 7e 04             	mov    0x4(%esi),%edi
47a41e:	8b 0e                	mov    (%esi),%ecx
47a420:	3b cf                	cmp    %edi,%ecx
47a422:	74 15                	je     0x47a439
47a424:	8b 01                	mov    (%ecx),%eax
47a426:	8d 52 04             	lea    0x4(%edx),%edx
47a429:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
47a42f:	83 c1 04             	add    $0x4,%ecx
47a432:	89 42 fc             	mov    %eax,-0x4(%edx)
47a435:	3b cf                	cmp    %edi,%ecx
47a437:	75 eb                	jne    0x47a424
47a439:	ff 75 08             	push   0x8(%ebp)
47a43c:	8b ce                	mov    %esi,%ecx
47a43e:	53                   	push   %ebx
47a43f:	ff 75 f8             	push   -0x8(%ebp)
47a442:	e8 59 1e 02 00       	call   0x49c2a0
47a447:	5f                   	pop    %edi
47a448:	5e                   	pop    %esi
47a449:	5b                   	pop    %ebx
47a44a:	8b e5                	mov    %ebp,%esp
47a44c:	5d                   	pop    %ebp
47a44d:	c2 08 00             	ret    $0x8
47a450:	e8 4b 23 fe ff       	call   0x45c7a0
47a455:	cc                   	int3
47a456:	cc                   	int3
47a457:	cc                   	int3
47a458:	cc                   	int3
47a459:	cc                   	int3
47a45a:	cc                   	int3
47a45b:	cc                   	int3
47a45c:	cc                   	int3
47a45d:	cc                   	int3
47a45e:	cc                   	int3
47a45f:	cc                   	int3
47a460:	55                   	push   %ebp
47a461:	8b ec                	mov    %esp,%ebp
47a463:	51                   	push   %ecx
47a464:	53                   	push   %ebx
47a465:	8b 5d 08             	mov    0x8(%ebp),%ebx
47a468:	56                   	push   %esi
47a469:	57                   	push   %edi
47a46a:	8b f9                	mov    %ecx,%edi
47a46c:	81 fb 55 55 55 15    	cmp    $0x15555555,%ebx
47a472:	0f 87 b2 00 00 00    	ja     0x47a52a
47a478:	8b 4f 04             	mov    0x4(%edi),%ecx
47a47b:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
47a480:	2b 0f                	sub    (%edi),%ecx
47a482:	f7 e9                	imul   %ecx
47a484:	8b 4f 08             	mov    0x8(%edi),%ecx
47a487:	2b 0f                	sub    (%edi),%ecx
47a489:	d1 fa                	sar    $1,%edx
47a48b:	8b c2                	mov    %edx,%eax
47a48d:	c1 e8 1f             	shr    $0x1f,%eax
47a490:	03 c2                	add    %edx,%eax
47a492:	89 45 08             	mov    %eax,0x8(%ebp)
47a495:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
47a49a:	f7 e9                	imul   %ecx
47a49c:	b8 55 55 55 15       	mov    $0x15555555,%eax
47a4a1:	d1 fa                	sar    $1,%edx
47a4a3:	8b ca                	mov    %edx,%ecx
47a4a5:	c1 e9 1f             	shr    $0x1f,%ecx
47a4a8:	03 ca                	add    %edx,%ecx
47a4aa:	8b d1                	mov    %ecx,%edx
47a4ac:	d1 ea                	shr    $1,%edx
47a4ae:	2b c2                	sub    %edx,%eax
47a4b0:	3b c8                	cmp    %eax,%ecx
47a4b2:	76 07                	jbe    0x47a4bb
47a4b4:	be 55 55 55 15       	mov    $0x15555555,%esi
47a4b9:	eb 08                	jmp    0x47a4c3
47a4bb:	8d 34 0a             	lea    (%edx,%ecx,1),%esi
47a4be:	3b f3                	cmp    %ebx,%esi
47a4c0:	0f 42 f3             	cmovb  %ebx,%esi
47a4c3:	56                   	push   %esi
47a4c4:	8b cf                	mov    %edi,%ecx
47a4c6:	e8 55 31 02 00       	call   0x49d620
47a4cb:	8b 4d 08             	mov    0x8(%ebp),%ecx
47a4ce:	8b d3                	mov    %ebx,%edx
47a4d0:	89 45 fc             	mov    %eax,-0x4(%ebp)
47a4d3:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
47a4d6:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
47a4d9:	2b 55 08             	sub    0x8(%ebp),%edx
47a4dc:	74 1e                	je     0x47a4fc
47a4de:	66 90                	xchg   %ax,%ax
47a4e0:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
47a4e6:	c7 41 04 00 00 00 00 	movl   $0x0,0x4(%ecx)
47a4ed:	c7 41 08 00 00 00 00 	movl   $0x0,0x8(%ecx)
47a4f4:	83 c1 0c             	add    $0xc,%ecx
47a4f7:	83 ea 01             	sub    $0x1,%edx
47a4fa:	75 e4                	jne    0x47a4e0
47a4fc:	57                   	push   %edi
47a4fd:	51                   	push   %ecx
47a4fe:	51                   	push   %ecx
47a4ff:	e8 2c e6 ff ff       	call   0x478b30
47a504:	57                   	push   %edi
47a505:	ff 75 fc             	push   -0x4(%ebp)
47a508:	ff 77 04             	push   0x4(%edi)
47a50b:	ff 37                	push   (%edi)
47a50d:	e8 ce 02 00 00       	call   0x47a7e0
47a512:	83 c4 1c             	add    $0x1c,%esp
47a515:	8b cf                	mov    %edi,%ecx
47a517:	56                   	push   %esi
47a518:	53                   	push   %ebx
47a519:	ff 75 fc             	push   -0x4(%ebp)
47a51c:	e8 ff 1d 02 00       	call   0x49c320
47a521:	5f                   	pop    %edi
47a522:	5e                   	pop    %esi
47a523:	5b                   	pop    %ebx
47a524:	8b e5                	mov    %ebp,%esp
47a526:	5d                   	pop    %ebp
47a527:	c2 08 00             	ret    $0x8
47a52a:	e8 71 22 fe ff       	call   0x45c7a0
47a52f:	cc                   	int3
47a530:	55                   	push   %ebp
47a531:	8b ec                	mov    %esp,%ebp
47a533:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47a536:	3b 4d 14             	cmp    0x14(%ebp),%ecx
47a539:	75 61                	jne    0x47a59c
47a53b:	8b 55 08             	mov    0x8(%ebp),%edx
47a53e:	56                   	push   %esi
47a53f:	8b 75 10             	mov    0x10(%ebp),%esi
47a542:	83 e9 04             	sub    $0x4,%ecx
47a545:	72 11                	jb     0x47a558
47a547:	8b 02                	mov    (%edx),%eax
47a549:	3b 06                	cmp    (%esi),%eax
47a54b:	75 10                	jne    0x47a55d
47a54d:	83 c2 04             	add    $0x4,%edx
47a550:	83 c6 04             	add    $0x4,%esi
47a553:	83 e9 04             	sub    $0x4,%ecx
47a556:	73 ef                	jae    0x47a547
47a558:	83 f9 fc             	cmp    $0xfffffffc,%ecx
47a55b:	74 34                	je     0x47a591
47a55d:	8a 02                	mov    (%edx),%al
47a55f:	3a 06                	cmp    (%esi),%al
47a561:	75 27                	jne    0x47a58a
47a563:	83 f9 fd             	cmp    $0xfffffffd,%ecx
47a566:	74 29                	je     0x47a591
47a568:	8a 42 01             	mov    0x1(%edx),%al
47a56b:	3a 46 01             	cmp    0x1(%esi),%al
47a56e:	75 1a                	jne    0x47a58a
47a570:	83 f9 fe             	cmp    $0xfffffffe,%ecx
47a573:	74 1c                	je     0x47a591
47a575:	8a 42 02             	mov    0x2(%edx),%al
47a578:	3a 46 02             	cmp    0x2(%esi),%al
47a57b:	75 0d                	jne    0x47a58a
47a57d:	83 f9 ff             	cmp    $0xffffffff,%ecx
47a580:	74 0f                	je     0x47a591
47a582:	8a 42 03             	mov    0x3(%edx),%al
47a585:	3a 46 03             	cmp    0x3(%esi),%al
47a588:	74 07                	je     0x47a591
47a58a:	1b c0                	sbb    %eax,%eax
47a58c:	83 c8 01             	or     $0x1,%eax
47a58f:	eb 02                	jmp    0x47a593
47a591:	33 c0                	xor    %eax,%eax
47a593:	5e                   	pop    %esi
47a594:	85 c0                	test   %eax,%eax
47a596:	75 04                	jne    0x47a59c
47a598:	b0 01                	mov    $0x1,%al
47a59a:	5d                   	pop    %ebp
47a59b:	c3                   	ret
47a59c:	32 c0                	xor    %al,%al
47a59e:	5d                   	pop    %ebp
47a59f:	c3                   	ret
47a5a0:	55                   	push   %ebp
47a5a1:	8b ec                	mov    %esp,%ebp
47a5a3:	6a ff                	push   $0xffffffff
47a5a5:	68 35 a4 5f 00       	push   $0x5fa435
47a5aa:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
47a5b0:	50                   	push   %eax
47a5b1:	83 ec 14             	sub    $0x14,%esp
47a5b4:	56                   	push   %esi
47a5b5:	57                   	push   %edi
47a5b6:	a1 c0 14 69 00       	mov    0x6914c0,%eax
47a5bb:	33 c5                	xor    %ebp,%eax
47a5bd:	50                   	push   %eax
47a5be:	8d 45 f4             	lea    -0xc(%ebp),%eax
47a5c1:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
47a5c7:	8b f9                	mov    %ecx,%edi
47a5c9:	89 7d f0             	mov    %edi,-0x10(%ebp)
47a5cc:	8b 55 0c             	mov    0xc(%ebp),%edx
47a5cf:	89 55 ec             	mov    %edx,-0x14(%ebp)
47a5d2:	83 7a 14 10          	cmpl   $0x10,0x14(%edx)
47a5d6:	72 05                	jb     0x47a5dd
47a5d8:	8b 02                	mov    (%edx),%eax
47a5da:	89 45 ec             	mov    %eax,-0x14(%ebp)
47a5dd:	33 c9                	xor    %ecx,%ecx
47a5df:	be c5 9d 1c 81       	mov    $0x811c9dc5,%esi
47a5e4:	39 4a 10             	cmp    %ecx,0x10(%edx)
47a5e7:	76 1c                	jbe    0x47a605
47a5e9:	8b 7d ec             	mov    -0x14(%ebp),%edi
47a5ec:	0f 1f 40 00          	nopl   0x0(%eax)
47a5f0:	0f b6 04 39          	movzbl (%ecx,%edi,1),%eax
47a5f4:	41                   	inc    %ecx
47a5f5:	33 c6                	xor    %esi,%eax
47a5f7:	69 f0 93 01 00 01    	imul   $0x1000193,%eax,%esi
47a5fd:	3b 4a 10             	cmp    0x10(%edx),%ecx
47a600:	72 ee                	jb     0x47a5f0
47a602:	8b 7d f0             	mov    -0x10(%ebp),%edi
47a605:	56                   	push   %esi
47a606:	52                   	push   %edx
47a607:	8d 45 e8             	lea    -0x18(%ebp),%eax
47a60a:	8b cf                	mov    %edi,%ecx
47a60c:	50                   	push   %eax
47a60d:	e8 5e f5 ff ff       	call   0x479b70
47a612:	8b 4d ec             	mov    -0x14(%ebp),%ecx
47a615:	85 c9                	test   %ecx,%ecx
47a617:	74 1c                	je     0x47a635
47a619:	8b 45 08             	mov    0x8(%ebp),%eax
47a61c:	89 08                	mov    %ecx,(%eax)
47a61e:	c6 40 04 00          	movb   $0x0,0x4(%eax)
47a622:	8b 4d f4             	mov    -0xc(%ebp),%ecx
47a625:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
47a62c:	59                   	pop    %ecx
47a62d:	5f                   	pop    %edi
47a62e:	5e                   	pop    %esi
47a62f:	8b e5                	mov    %ebp,%esp
47a631:	5d                   	pop    %ebp
47a632:	c2 08 00             	ret    $0x8
47a635:	81 7f 08 c7 71 1c 07 	cmpl   $0x71c71c7,0x8(%edi)
47a63c:	0f 84 91 01 00 00    	je     0x47a7d3
47a642:	8d 47 04             	lea    0x4(%edi),%eax
47a645:	89 45 e0             	mov    %eax,-0x20(%ebp)
47a648:	6a 24                	push   $0x24
47a64a:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
47a651:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
47a658:	e8 c8 6b 15 00       	call   0x5d1225
47a65d:	8b f8                	mov    %eax,%edi
47a65f:	83 c4 04             	add    $0x4,%esp
47a662:	8b 45 0c             	mov    0xc(%ebp),%eax
47a665:	89 7d e4             	mov    %edi,-0x1c(%ebp)
47a668:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)
47a66f:	c7 47 18 00 00 00 00 	movl   $0x0,0x18(%edi)
47a676:	c7 47 1c 00 00 00 00 	movl   $0x0,0x1c(%edi)
47a67d:	0f 10 00             	movups (%eax),%xmm0
47a680:	0f 11 47 08          	movups %xmm0,0x8(%edi)
47a684:	f3 0f 7e 40 10       	movq   0x10(%eax),%xmm0
47a689:	66 0f d6 47 18       	movq   %xmm0,0x18(%edi)
47a68e:	c7 40 10 00 00 00 00 	movl   $0x0,0x10(%eax)
47a695:	c7 40 14 0f 00 00 00 	movl   $0xf,0x14(%eax)
47a69c:	c6 00 00             	movb   $0x0,(%eax)
47a69f:	c7 47 20 00 00 00 00 	movl   $0x0,0x20(%edi)
47a6a6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
47a6a9:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
47a6b0:	8b 41 08             	mov    0x8(%ecx),%eax
47a6b3:	40                   	inc    %eax
47a6b4:	f3 0f 10 19          	movss  (%ecx),%xmm3
47a6b8:	66 0f 6e c0          	movd   %eax,%xmm0
47a6bc:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
47a6c0:	c1 e8 1f             	shr    $0x1f,%eax
47a6c3:	f2 0f 58 04 c5 60 64 	addsd  0x606460(,%eax,8),%xmm0
47a6ca:	60 00
47a6cc:	8b 41 1c             	mov    0x1c(%ecx),%eax
47a6cf:	89 45 0c             	mov    %eax,0xc(%ebp)
47a6d2:	66 0f 5a d0          	cvtpd2ps %xmm0,%xmm2
47a6d6:	66 0f 6e c0          	movd   %eax,%xmm0
47a6da:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
47a6de:	c1 e8 1f             	shr    $0x1f,%eax
47a6e1:	0f 28 ca             	movaps %xmm2,%xmm1
47a6e4:	f2 0f 58 04 c5 60 64 	addsd  0x606460(,%eax,8),%xmm0
47a6eb:	60 00
47a6ed:	66 0f 5a c0          	cvtpd2ps %xmm0,%xmm0
47a6f1:	f3 0f 5e c8          	divss  %xmm0,%xmm1
47a6f5:	0f 2f cb             	comiss %xmm3,%xmm1
47a6f8:	76 76                	jbe    0x47a770
47a6fa:	f3 0f 5e d3          	divss  %xmm3,%xmm2
47a6fe:	83 ec 08             	sub    $0x8,%esp
47a701:	0f 5a c2             	cvtps2pd %xmm2,%xmm0
47a704:	f2 0f 11 45 e8       	movsd  %xmm0,-0x18(%ebp)
47a709:	dd 45 e8             	fldl   -0x18(%ebp)
47a70c:	dd 1c 24             	fstpl  (%esp)
47a70f:	e8 bc bd 15 00       	call   0x5d64d0
47a714:	dd 5d e8             	fstpl  -0x18(%ebp)
47a717:	f2 0f 10 45 e8       	movsd  -0x18(%ebp),%xmm0
47a71c:	83 c4 08             	add    $0x8,%esp
47a71f:	66 0f 5a c0          	cvtpd2ps %xmm0,%xmm0
47a723:	e8 18 73 15 00       	call   0x5d1a40
47a728:	b9 08 00 00 00       	mov    $0x8,%ecx
47a72d:	3b c1                	cmp    %ecx,%eax
47a72f:	0f 47 c8             	cmova  %eax,%ecx
47a732:	8b 45 0c             	mov    0xc(%ebp),%eax
47a735:	3b c1                	cmp    %ecx,%eax
47a737:	73 10                	jae    0x47a749
47a739:	3d 00 02 00 00       	cmp    $0x200,%eax
47a73e:	73 07                	jae    0x47a747
47a740:	c1 e0 03             	shl    $0x3,%eax
47a743:	3b c1                	cmp    %ecx,%eax
47a745:	73 02                	jae    0x47a749
47a747:	8b c1                	mov    %ecx,%eax
47a749:	8b 4d f0             	mov    -0x10(%ebp),%ecx
47a74c:	50                   	push   %eax
47a74d:	e8 1e 23 02 00       	call   0x49ca70
47a752:	8b 4d f0             	mov    -0x10(%ebp),%ecx
47a755:	8d 47 08             	lea    0x8(%edi),%eax
47a758:	56                   	push   %esi
47a759:	50                   	push   %eax
47a75a:	8d 45 e8             	lea    -0x18(%ebp),%eax
47a75d:	50                   	push   %eax
47a75e:	e8 0d f4 ff ff       	call   0x479b70
47a763:	8b 4d f0             	mov    -0x10(%ebp),%ecx
47a766:	8b 10                	mov    (%eax),%edx
47a768:	8b 40 04             	mov    0x4(%eax),%eax
47a76b:	89 45 ec             	mov    %eax,-0x14(%ebp)
47a76e:	eb 03                	jmp    0x47a773
47a770:	8b 55 e8             	mov    -0x18(%ebp),%edx
47a773:	8b 42 04             	mov    0x4(%edx),%eax
47a776:	ff 41 08             	incl   0x8(%ecx)
47a779:	89 47 04             	mov    %eax,0x4(%edi)
47a77c:	89 17                	mov    %edx,(%edi)
47a77e:	89 38                	mov    %edi,(%eax)
47a780:	89 7a 04             	mov    %edi,0x4(%edx)