47047c:	0f 90 c1             	seto   %cl
47047f:	f7 d9                	neg    %ecx
470481:	0b c8                	or     %eax,%ecx
470483:	51                   	push   %ecx
470484:	e8 f7 0b 17 00       	call   0x5e1080
470489:	8b 8f 4c 03 00 00    	mov    0x34c(%edi),%ecx
47048f:	83 c4 04             	add    $0x4,%esp
470492:	83 7d a4 00          	cmpl   $0x0,-0x5c(%ebp)
470496:	8b 55 94             	mov    -0x6c(%ebp),%edx
470499:	c7 45 8c 00 00 00 00 	movl   $0x0,-0x74(%ebp)
4704a0:	8b 0c 11             	mov    (%ecx,%edx,1),%ecx
4704a3:	89 41 08             	mov    %eax,0x8(%ecx)
4704a6:	0f 86 49 04 00 00    	jbe    0x4708f5
4704ac:	c7 45 84 00 00 00 00 	movl   $0x0,-0x7c(%ebp)
4704b3:	6a 1c                	push   $0x1c
4704b5:	e8 88 0b 17 00       	call   0x5e1042
4704ba:	8b c8                	mov    %eax,%ecx
4704bc:	83 c4 04             	add    $0x4,%esp
4704bf:	85 c9                	test   %ecx,%ecx
4704c1:	74 14                	je     0x4704d7
4704c3:	0f 57 c0             	xorps  %xmm0,%xmm0
4704c6:	0f 11 01             	movups %xmm0,(%ecx)
4704c9:	66 0f d6 41 10       	movq   %xmm0,0x10(%ecx)
4704ce:	c7 41 18 00 00 00 00 	movl   $0x0,0x18(%ecx)
4704d5:	eb 02                	jmp    0x4704d9
4704d7:	33 c9                	xor    %ecx,%ecx
4704d9:	8b 45 8c             	mov    -0x74(%ebp),%eax
4704dc:	8b 55 94             	mov    -0x6c(%ebp),%edx
4704df:	c1 e0 02             	shl    $0x2,%eax
4704e2:	89 45 88             	mov    %eax,-0x78(%ebp)
4704e5:	8b 87 4c 03 00 00    	mov    0x34c(%edi),%eax
4704eb:	8b 04 10             	mov    (%eax,%edx,1),%eax
4704ee:	8b 55 88             	mov    -0x78(%ebp),%edx
4704f1:	8b 40 08             	mov    0x8(%eax),%eax
4704f4:	89 0c 02             	mov    %ecx,(%edx,%eax,1)
4704f7:	b8 31 0c c3 30       	mov    $0x30c30c31,%eax
4704fc:	8b 7e 5c             	mov    0x5c(%esi),%edi
4704ff:	8b cf                	mov    %edi,%ecx
470501:	2b 4e 58             	sub    0x58(%esi),%ecx
470504:	f7 e9                	imul   %ecx
470506:	c1 fa 05             	sar    $0x5,%edx
470509:	8b c2                	mov    %edx,%eax
47050b:	c1 e8 1f             	shr    $0x1f,%eax
47050e:	03 c2                	add    %edx,%eax
470510:	3b 45 8c             	cmp    -0x74(%ebp),%eax
470513:	0f 86 f5 11 00 00    	jbe    0x47170e
470519:	8b 46 58             	mov    0x58(%esi),%eax
47051c:	03 45 84             	add    -0x7c(%ebp),%eax
47051f:	89 45 9c             	mov    %eax,-0x64(%ebp)
470522:	83 78 14 10          	cmpl   $0x10,0x14(%eax)
470526:	72 05                	jb     0x47052d
470528:	8b 08                	mov    (%eax),%ecx
47052a:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
47052d:	8b 50 10             	mov    0x10(%eax),%edx
470530:	8b 45 90             	mov    -0x70(%ebp),%eax
470533:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
470536:	89 95 7c ff ff ff    	mov    %edx,-0x84(%ebp)
47053c:	8b 80 4c 03 00 00    	mov    0x34c(%eax),%eax
470542:	8b 04 08             	mov    (%eax,%ecx,1),%eax
470545:	8b 4d 88             	mov    -0x78(%ebp),%ecx
470548:	8b 40 08             	mov    0x8(%eax),%eax
47054b:	8b 04 01             	mov    (%ecx,%eax,1),%eax
47054e:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
470551:	89 45 98             	mov    %eax,-0x68(%ebp)
470554:	85 c0                	test   %eax,%eax
470556:	74 28                	je     0x470580
470558:	85 c9                	test   %ecx,%ecx
47055a:	74 24                	je     0x470580
47055c:	8d 7a 01             	lea    0x1(%edx),%edi
47055f:	57                   	push   %edi
470560:	e8 1b 0b 17 00       	call   0x5e1080
470565:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
47056b:	8b 4d 98             	mov    -0x68(%ebp),%ecx
47056e:	ff 75 9c             	push   -0x64(%ebp)
470571:	57                   	push   %edi
470572:	50                   	push   %eax
470573:	89 01                	mov    %eax,(%ecx)
470575:	e8 06 80 ff ff       	call   0x468580
47057a:	8b 7e 5c             	mov    0x5c(%esi),%edi
47057d:	83 c4 14             	add    $0x14,%esp
470580:	8b cf                	mov    %edi,%ecx
470582:	b8 31 0c c3 30       	mov    $0x30c30c31,%eax
470587:	2b 4e 58             	sub    0x58(%esi),%ecx
47058a:	f7 e9                	imul   %ecx
47058c:	c1 fa 05             	sar    $0x5,%edx
47058f:	8b c2                	mov    %edx,%eax
470591:	c1 e8 1f             	shr    $0x1f,%eax
470594:	03 c2                	add    %edx,%eax
470596:	3b 45 8c             	cmp    -0x74(%ebp),%eax
470599:	0f 86 6f 11 00 00    	jbe    0x47170e
47059f:	8b 45 84             	mov    -0x7c(%ebp),%eax
4705a2:	8b 56 58             	mov    0x58(%esi),%edx
4705a5:	8d 48 60             	lea    0x60(%eax),%ecx
4705a8:	03 ca                	add    %edx,%ecx
4705aa:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
4705ad:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
4705b1:	72 05                	jb     0x4705b8
4705b3:	8b 09                	mov    (%ecx),%ecx
4705b5:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
4705b8:	8b 54 02 70          	mov    0x70(%edx,%eax,1),%edx
4705bc:	8b 45 90             	mov    -0x70(%ebp),%eax
4705bf:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
4705c2:	89 55 98             	mov    %edx,-0x68(%ebp)
4705c5:	8b 80 4c 03 00 00    	mov    0x34c(%eax),%eax
4705cb:	8b 04 08             	mov    (%eax,%ecx,1),%eax
4705ce:	8b 4d 88             	mov    -0x78(%ebp),%ecx
4705d1:	8b 40 08             	mov    0x8(%eax),%eax
4705d4:	8b 04 08             	mov    (%eax,%ecx,1),%eax
4705d7:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
4705da:	83 c0 10             	add    $0x10,%eax
4705dd:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
4705e3:	74 28                	je     0x47060d
4705e5:	85 c9                	test   %ecx,%ecx
4705e7:	74 24                	je     0x47060d
4705e9:	8d 7a 01             	lea    0x1(%edx),%edi
4705ec:	57                   	push   %edi
4705ed:	e8 8e 0a 17 00       	call   0x5e1080
4705f2:	ff 75 98             	push   -0x68(%ebp)
4705f5:	8b 8d 7c ff ff ff    	mov    -0x84(%ebp),%ecx
4705fb:	ff 75 9c             	push   -0x64(%ebp)
4705fe:	57                   	push   %edi
4705ff:	50                   	push   %eax
470600:	89 01                	mov    %eax,(%ecx)
470602:	e8 79 7f ff ff       	call   0x468580
470607:	8b 7e 5c             	mov    0x5c(%esi),%edi
47060a:	83 c4 14             	add    $0x14,%esp
47060d:	8b cf                	mov    %edi,%ecx
47060f:	b8 31 0c c3 30       	mov    $0x30c30c31,%eax
470614:	2b 4e 58             	sub    0x58(%esi),%ecx
470617:	f7 e9                	imul   %ecx
470619:	c1 fa 05             	sar    $0x5,%edx
47061c:	8b c2                	mov    %edx,%eax
47061e:	c1 e8 1f             	shr    $0x1f,%eax
470621:	03 c2                	add    %edx,%eax
470623:	3b 45 8c             	cmp    -0x74(%ebp),%eax
470626:	0f 86 e2 10 00 00    	jbe    0x47170e
47062c:	8b 45 84             	mov    -0x7c(%ebp),%eax
47062f:	8b 56 58             	mov    0x58(%esi),%edx
470632:	8d 48 18             	lea    0x18(%eax),%ecx
470635:	03 ca                	add    %edx,%ecx
470637:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
47063a:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
47063e:	72 05                	jb     0x470645
470640:	8b 09                	mov    (%ecx),%ecx
470642:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
470645:	8b 54 02 28          	mov    0x28(%edx,%eax,1),%edx
470649:	8b 45 90             	mov    -0x70(%ebp),%eax
47064c:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
47064f:	89 55 98             	mov    %edx,-0x68(%ebp)
470652:	8b 80 4c 03 00 00    	mov    0x34c(%eax),%eax
470658:	8b 04 08             	mov    (%eax,%ecx,1),%eax
47065b:	8b 4d 88             	mov    -0x78(%ebp),%ecx
47065e:	8b 40 08             	mov    0x8(%eax),%eax
470661:	8b 04 08             	mov    (%eax,%ecx,1),%eax
470664:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
470667:	83 c0 08             	add    $0x8,%eax
47066a:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
470670:	74 28                	je     0x47069a
470672:	85 c9                	test   %ecx,%ecx
470674:	74 24                	je     0x47069a
470676:	8d 7a 01             	lea    0x1(%edx),%edi
470679:	57                   	push   %edi
47067a:	e8 01 0a 17 00       	call   0x5e1080
47067f:	ff 75 98             	push   -0x68(%ebp)
470682:	8b 8d 7c ff ff ff    	mov    -0x84(%ebp),%ecx
470688:	ff 75 9c             	push   -0x64(%ebp)
47068b:	57                   	push   %edi
47068c:	50                   	push   %eax
47068d:	89 01                	mov    %eax,(%ecx)
47068f:	e8 ec 7e ff ff       	call   0x468580
470694:	8b 7e 5c             	mov    0x5c(%esi),%edi
470697:	83 c4 14             	add    $0x14,%esp
47069a:	8b cf                	mov    %edi,%ecx
47069c:	b8 31 0c c3 30       	mov    $0x30c30c31,%eax
4706a1:	2b 4e 58             	sub    0x58(%esi),%ecx
4706a4:	f7 e9                	imul   %ecx
4706a6:	c1 fa 05             	sar    $0x5,%edx
4706a9:	8b c2                	mov    %edx,%eax
4706ab:	c1 e8 1f             	shr    $0x1f,%eax
4706ae:	03 c2                	add    %edx,%eax
4706b0:	3b 45 8c             	cmp    -0x74(%ebp),%eax
4706b3:	0f 86 55 10 00 00    	jbe    0x47170e
4706b9:	8b 45 84             	mov    -0x7c(%ebp),%eax
4706bc:	8b 56 58             	mov    0x58(%esi),%edx
4706bf:	8d 48 30             	lea    0x30(%eax),%ecx
4706c2:	03 ca                	add    %edx,%ecx
4706c4:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
4706c7:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
4706cb:	72 05                	jb     0x4706d2
4706cd:	8b 09                	mov    (%ecx),%ecx
4706cf:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
4706d2:	8b 54 02 40          	mov    0x40(%edx,%eax,1),%edx
4706d6:	8b 45 90             	mov    -0x70(%ebp),%eax
4706d9:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
4706dc:	89 55 98             	mov    %edx,-0x68(%ebp)
4706df:	8b 80 4c 03 00 00    	mov    0x34c(%eax),%eax
4706e5:	8b 04 08             	mov    (%eax,%ecx,1),%eax
4706e8:	8b 4d 88             	mov    -0x78(%ebp),%ecx
4706eb:	8b 40 08             	mov    0x8(%eax),%eax
4706ee:	8b 04 08             	mov    (%eax,%ecx,1),%eax
4706f1:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
4706f4:	83 c0 0c             	add    $0xc,%eax
4706f7:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
4706fd:	74 28                	je     0x470727
4706ff:	85 c9                	test   %ecx,%ecx
470701:	74 24                	je     0x470727
470703:	8d 7a 01             	lea    0x1(%edx),%edi
470706:	57                   	push   %edi
470707:	e8 74 09 17 00       	call   0x5e1080
47070c:	ff 75 98             	push   -0x68(%ebp)
47070f:	8b 8d 7c ff ff ff    	mov    -0x84(%ebp),%ecx
470715:	ff 75 9c             	push   -0x64(%ebp)
470718:	57                   	push   %edi
470719:	50                   	push   %eax
47071a:	89 01                	mov    %eax,(%ecx)
47071c:	e8 5f 7e ff ff       	call   0x468580
470721:	8b 7e 5c             	mov    0x5c(%esi),%edi
470724:	83 c4 14             	add    $0x14,%esp
470727:	8b cf                	mov    %edi,%ecx
470729:	b8 31 0c c3 30       	mov    $0x30c30c31,%eax
47072e:	2b 4e 58             	sub    0x58(%esi),%ecx
470731:	f7 e9                	imul   %ecx
470733:	c1 fa 05             	sar    $0x5,%edx
470736:	8b c2                	mov    %edx,%eax
470738:	c1 e8 1f             	shr    $0x1f,%eax
47073b:	03 c2                	add    %edx,%eax
47073d:	3b 45 8c             	cmp    -0x74(%ebp),%eax
470740:	0f 86 c8 0f 00 00    	jbe    0x47170e
470746:	8b 45 84             	mov    -0x7c(%ebp),%eax
470749:	8b 56 58             	mov    0x58(%esi),%edx
47074c:	8d 48 48             	lea    0x48(%eax),%ecx
47074f:	03 ca                	add    %edx,%ecx
470751:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
470754:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
470758:	72 05                	jb     0x47075f
47075a:	8b 09                	mov    (%ecx),%ecx
47075c:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
47075f:	8b 54 02 58          	mov    0x58(%edx,%eax,1),%edx
470763:	8b 45 90             	mov    -0x70(%ebp),%eax
470766:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
470769:	89 55 98             	mov    %edx,-0x68(%ebp)
47076c:	8b 80 4c 03 00 00    	mov    0x34c(%eax),%eax
470772:	8b 04 08             	mov    (%eax,%ecx,1),%eax
470775:	8b 4d 88             	mov    -0x78(%ebp),%ecx
470778:	8b 40 08             	mov    0x8(%eax),%eax
47077b:	8b 04 08             	mov    (%eax,%ecx,1),%eax
47077e:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
470781:	83 c0 04             	add    $0x4,%eax
470784:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
47078a:	74 28                	je     0x4707b4
47078c:	85 c9                	test   %ecx,%ecx
47078e:	74 24                	je     0x4707b4
470790:	8d 7a 01             	lea    0x1(%edx),%edi
470793:	57                   	push   %edi
470794:	e8 e7 08 17 00       	call   0x5e1080
470799:	ff 75 98             	push   -0x68(%ebp)
47079c:	8b 8d 7c ff ff ff    	mov    -0x84(%ebp),%ecx
4707a2:	ff 75 9c             	push   -0x64(%ebp)
4707a5:	57                   	push   %edi
4707a6:	50                   	push   %eax
4707a7:	89 01                	mov    %eax,(%ecx)
4707a9:	e8 d2 7d ff ff       	call   0x468580
4707ae:	8b 7e 5c             	mov    0x5c(%esi),%edi
4707b1:	83 c4 14             	add    $0x14,%esp
4707b4:	8b cf                	mov    %edi,%ecx
4707b6:	b8 31 0c c3 30       	mov    $0x30c30c31,%eax
4707bb:	2b 4e 58             	sub    0x58(%esi),%ecx
4707be:	f7 e9                	imul   %ecx
4707c0:	c1 fa 05             	sar    $0x5,%edx
4707c3:	8b c2                	mov    %edx,%eax
4707c5:	c1 e8 1f             	shr    $0x1f,%eax
4707c8:	03 c2                	add    %edx,%eax
4707ca:	3b 45 8c             	cmp    -0x74(%ebp),%eax
4707cd:	0f 86 3b 0f 00 00    	jbe    0x47170e
4707d3:	8b 45 84             	mov    -0x7c(%ebp),%eax
4707d6:	8b 56 58             	mov    0x58(%esi),%edx
4707d9:	8d 48 78             	lea    0x78(%eax),%ecx
4707dc:	03 ca                	add    %edx,%ecx
4707de:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
4707e1:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
4707e5:	72 05                	jb     0x4707ec
4707e7:	8b 09                	mov    (%ecx),%ecx
4707e9:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
4707ec:	8b 94 02 88 00 00 00 	mov    0x88(%edx,%eax,1),%edx
4707f3:	8b 45 90             	mov    -0x70(%ebp),%eax
4707f6:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
4707f9:	89 55 98             	mov    %edx,-0x68(%ebp)
4707fc:	8b 80 4c 03 00 00    	mov    0x34c(%eax),%eax
470802:	8b 04 08             	mov    (%eax,%ecx,1),%eax
470805:	8b 4d 88             	mov    -0x78(%ebp),%ecx
470808:	8b 40 08             	mov    0x8(%eax),%eax
47080b:	8b 04 08             	mov    (%eax,%ecx,1),%eax
47080e:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
470811:	83 c0 14             	add    $0x14,%eax
470814:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
47081a:	74 28                	je     0x470844
47081c:	85 c9                	test   %ecx,%ecx
47081e:	74 24                	je     0x470844
470820:	8d 7a 01             	lea    0x1(%edx),%edi
470823:	57                   	push   %edi
470824:	e8 57 08 17 00       	call   0x5e1080
470829:	ff 75 98             	push   -0x68(%ebp)
47082c:	8b 8d 7c ff ff ff    	mov    -0x84(%ebp),%ecx
470832:	ff 75 9c             	push   -0x64(%ebp)
470835:	57                   	push   %edi
470836:	50                   	push   %eax
470837:	89 01                	mov    %eax,(%ecx)
470839:	e8 42 7d ff ff       	call   0x468580
47083e:	8b 7e 5c             	mov    0x5c(%esi),%edi
470841:	83 c4 14             	add    $0x14,%esp
470844:	8b 4e 58             	mov    0x58(%esi),%ecx
470847:	b8 31 0c c3 30       	mov    $0x30c30c31,%eax
47084c:	2b f9                	sub    %ecx,%edi
47084e:	f7 ef                	imul   %edi
470850:	c1 fa 05             	sar    $0x5,%edx
470853:	8b c2                	mov    %edx,%eax
470855:	c1 e8 1f             	shr    $0x1f,%eax
470858:	03 c2                	add    %edx,%eax
47085a:	3b 45 8c             	cmp    -0x74(%ebp),%eax
47085d:	0f 86 ab 0e 00 00    	jbe    0x47170e
470863:	8b 45 84             	mov    -0x7c(%ebp),%eax
470866:	81 c1 90 00 00 00    	add    $0x90,%ecx
47086c:	03 c8                	add    %eax,%ecx
47086e:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
470871:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
470875:	72 05                	jb     0x47087c
470877:	8b 09                	mov    (%ecx),%ecx
470879:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
47087c:	8b 56 58             	mov    0x58(%esi),%edx
47087f:	8b 7d 90             	mov    -0x70(%ebp),%edi
470882:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
470885:	8b 94 02 a0 00 00 00 	mov    0xa0(%edx,%eax,1),%edx
47088c:	8b 87 4c 03 00 00    	mov    0x34c(%edi),%eax
470892:	89 55 98             	mov    %edx,-0x68(%ebp)
470895:	8b 04 08             	mov    (%eax,%ecx,1),%eax
470898:	8b 4d 88             	mov    -0x78(%ebp),%ecx
47089b:	8b 40 08             	mov    0x8(%eax),%eax
47089e:	8b 04 08             	mov    (%eax,%ecx,1),%eax
4708a1:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
4708a4:	83 c0 18             	add    $0x18,%eax
4708a7:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
4708ad:	74 28                	je     0x4708d7
4708af:	85 c9                	test   %ecx,%ecx
4708b1:	74 24                	je     0x4708d7
4708b3:	8d 7a 01             	lea    0x1(%edx),%edi
4708b6:	57                   	push   %edi
4708b7:	e8 c4 07 17 00       	call   0x5e1080
4708bc:	ff 75 98             	push   -0x68(%ebp)
4708bf:	8b 8d 7c ff ff ff    	mov    -0x84(%ebp),%ecx
4708c5:	ff 75 9c             	push   -0x64(%ebp)