417502:	53                   	push   %ebx
417503:	33 f6                	xor    %esi,%esi
417505:	0b 30                	or     (%eax),%esi
417507:	57                   	push   %edi
417508:	56                   	push   %esi
417509:	e8 12 68 01 00       	call   0x42dd20
41750e:	6a 00                	push   $0x0
417510:	33 c9                	xor    %ecx,%ecx
417512:	03 c1                	add    %ecx,%eax
417514:	53                   	push   %ebx
417515:	13 4d f4             	adc    -0xc(%ebp),%ecx
417518:	57                   	push   %edi
417519:	56                   	push   %esi
41751a:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41751d:	89 45 f4             	mov    %eax,-0xc(%ebp)
417520:	e8 6b 68 01 00       	call   0x42dd90
417525:	8b f8                	mov    %eax,%edi
417527:	89 55 ec             	mov    %edx,-0x14(%ebp)
41752a:	8b 45 e8             	mov    -0x18(%ebp),%eax
41752d:	83 e8 04             	sub    $0x4,%eax
417530:	83 6d f8 01          	subl   $0x1,-0x8(%ebp)
417534:	89 45 e8             	mov    %eax,-0x18(%ebp)
417537:	75 c7                	jne    0x417500
417539:	8b 4d 08             	mov    0x8(%ebp),%ecx
41753c:	6a 00                	push   $0x0
41753e:	8d 85 e4 fd ff ff    	lea    -0x21c(%ebp),%eax
417544:	c7 85 e0 fd ff ff 00 	movl   $0x0,-0x220(%ebp)
41754b:	00 00 00
41754e:	50                   	push   %eax
41754f:	8d 71 04             	lea    0x4(%ecx),%esi
417552:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
417558:	68 cc 01 00 00       	push   $0x1cc
41755d:	56                   	push   %esi
41755e:	e8 15 0f 00 00       	call   0x418478
417563:	8b 45 ec             	mov    -0x14(%ebp),%eax
417566:	83 c4 10             	add    $0x10,%esp
417569:	8b 55 08             	mov    0x8(%ebp),%edx
41756c:	33 c9                	xor    %ecx,%ecx
41756e:	3b c8                	cmp    %eax,%ecx
417570:	89 3e                	mov    %edi,(%esi)
417572:	1b c9                	sbb    %ecx,%ecx
417574:	f7 d9                	neg    %ecx
417576:	89 42 08             	mov    %eax,0x8(%edx)
417579:	8b 45 f4             	mov    -0xc(%ebp),%eax
41757c:	41                   	inc    %ecx
41757d:	5f                   	pop    %edi
41757e:	5e                   	pop    %esi
41757f:	89 0a                	mov    %ecx,(%edx)
417581:	8b 55 fc             	mov    -0x4(%ebp),%edx
417584:	5b                   	pop    %ebx
417585:	8b e5                	mov    %ebp,%esp
417587:	5d                   	pop    %ebp
417588:	c3                   	ret
417589:	3b f0                	cmp    %eax,%esi
41758b:	0f 87 1f 03 00 00    	ja     0x4178b0
417591:	8b d0                	mov    %eax,%edx
417593:	8b d8                	mov    %eax,%ebx
417595:	2b d6                	sub    %esi,%edx
417597:	3b da                	cmp    %edx,%ebx
417599:	7c 1f                	jl     0x4175ba
41759b:	8d 0c 99             	lea    (%ecx,%ebx,4),%ecx
41759e:	83 c1 04             	add    $0x4,%ecx
4175a1:	46                   	inc    %esi
4175a2:	8d 34 b7             	lea    (%edi,%esi,4),%esi
4175a5:	8b 3e                	mov    (%esi),%edi
4175a7:	3b 39                	cmp    (%ecx),%edi
4175a9:	75 0d                	jne    0x4175b8
4175ab:	48                   	dec    %eax
4175ac:	83 ee 04             	sub    $0x4,%esi
4175af:	83 e9 04             	sub    $0x4,%ecx
4175b2:	3b c2                	cmp    %edx,%eax
4175b4:	7d ef                	jge    0x4175a5
4175b6:	eb 02                	jmp    0x4175ba
4175b8:	73 01                	jae    0x4175bb
4175ba:	42                   	inc    %edx
4175bb:	85 d2                	test   %edx,%edx
4175bd:	0f 84 ed 02 00 00    	je     0x4178b0
4175c3:	8b 7d ec             	mov    -0x14(%ebp),%edi
4175c6:	8b 75 0c             	mov    0xc(%ebp),%esi
4175c9:	8b 44 be fc          	mov    -0x4(%esi,%edi,4),%eax
4175cd:	8b 1c be             	mov    (%esi,%edi,4),%ebx
4175d0:	89 45 e0             	mov    %eax,-0x20(%ebp)
4175d3:	0f bd c3             	bsr    %ebx,%eax
4175d6:	89 5d d0             	mov    %ebx,-0x30(%ebp)
4175d9:	74 09                	je     0x4175e4
4175db:	b9 1f 00 00 00       	mov    $0x1f,%ecx
4175e0:	2b c8                	sub    %eax,%ecx
4175e2:	eb 05                	jmp    0x4175e9
4175e4:	b9 20 00 00 00       	mov    $0x20,%ecx
4175e9:	b8 20 00 00 00       	mov    $0x20,%eax
4175ee:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4175f1:	2b c1                	sub    %ecx,%eax
4175f3:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4175f6:	85 c9                	test   %ecx,%ecx
4175f8:	74 2d                	je     0x417627
4175fa:	8b 45 e0             	mov    -0x20(%ebp),%eax
4175fd:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
417600:	d3 e8                	shr    %cl,%eax
417602:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
417605:	d3 e3                	shl    %cl,%ebx
417607:	0b d8                	or     %eax,%ebx
417609:	89 5d d0             	mov    %ebx,-0x30(%ebp)
41760c:	8b 5d e0             	mov    -0x20(%ebp),%ebx
41760f:	d3 e3                	shl    %cl,%ebx
417611:	89 5d e0             	mov    %ebx,-0x20(%ebp)
417614:	83 ff 02             	cmp    $0x2,%edi
417617:	76 0e                	jbe    0x417627
417619:	8b 44 be f8          	mov    -0x8(%esi,%edi,4),%eax
41761d:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
417620:	d3 e8                	shr    %cl,%eax
417622:	0b d8                	or     %eax,%ebx
417624:	89 5d e0             	mov    %ebx,-0x20(%ebp)
417627:	8d 5a ff             	lea    -0x1(%edx),%ebx
41762a:	c7 45 b4 00 00 00 00 	movl   $0x0,-0x4c(%ebp)
417631:	33 f6                	xor    %esi,%esi
417633:	89 5d b0             	mov    %ebx,-0x50(%ebp)
417636:	85 db                	test   %ebx,%ebx
417638:	0f 88 31 02 00 00    	js     0x41786f
41763e:	8b 55 08             	mov    0x8(%ebp),%edx
417641:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
417644:	89 45 c8             	mov    %eax,-0x38(%ebp)
417647:	8d 4a 04             	lea    0x4(%edx),%ecx
41764a:	8d 0c 99             	lea    (%ecx,%ebx,4),%ecx
41764d:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
417650:	8d 4a fc             	lea    -0x4(%edx),%ecx
417653:	8d 0c 81             	lea    (%ecx,%eax,4),%ecx
417656:	89 4d e8             	mov    %ecx,-0x18(%ebp)
417659:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
417660:	3b 45 f4             	cmp    -0xc(%ebp),%eax
417663:	77 05                	ja     0x41766a
417665:	8b 51 08             	mov    0x8(%ecx),%edx
417668:	eb 02                	jmp    0x41766c
41766a:	33 d2                	xor    %edx,%edx
41766c:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
417670:	8b 41 04             	mov    0x4(%ecx),%eax
417673:	8b 19                	mov    (%ecx),%ebx
417675:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
41767c:	89 55 b8             	mov    %edx,-0x48(%ebp)
41767f:	89 45 fc             	mov    %eax,-0x4(%ebp)
417682:	89 55 dc             	mov    %edx,-0x24(%ebp)
417685:	89 5d f8             	mov    %ebx,-0x8(%ebp)
417688:	76 3c                	jbe    0x4176c6
41768a:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
41768d:	8b fb                	mov    %ebx,%edi
41768f:	d3 ef                	shr    %cl,%edi
417691:	33 f6                	xor    %esi,%esi
417693:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
417696:	e8 a5 67 01 00       	call   0x42de40
41769b:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
41769e:	0b c7                	or     %edi,%eax
4176a0:	0b d6                	or     %esi,%edx
4176a2:	d3 e3                	shl    %cl,%ebx
4176a4:	83 7d c8 03          	cmpl   $0x3,-0x38(%ebp)
4176a8:	89 45 fc             	mov    %eax,-0x4(%ebp)
4176ab:	89 55 dc             	mov    %edx,-0x24(%ebp)
4176ae:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4176b1:	72 13                	jb     0x4176c6
4176b3:	8b 45 e8             	mov    -0x18(%ebp),%eax
4176b6:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
4176b9:	8b 40 fc             	mov    -0x4(%eax),%eax
4176bc:	d3 e8                	shr    %cl,%eax
4176be:	0b d8                	or     %eax,%ebx
4176c0:	8b 45 fc             	mov    -0x4(%ebp),%eax
4176c3:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4176c6:	8b 75 d0             	mov    -0x30(%ebp),%esi
4176c9:	6a 00                	push   $0x0
4176cb:	56                   	push   %esi
4176cc:	52                   	push   %edx
4176cd:	50                   	push   %eax
4176ce:	e8 4d 66 01 00       	call   0x42dd20
4176d3:	6a 00                	push   $0x0
4176d5:	56                   	push   %esi
4176d6:	ff 75 dc             	push   -0x24(%ebp)
4176d9:	8b d8                	mov    %eax,%ebx
4176db:	89 55 f0             	mov    %edx,-0x10(%ebp)
4176de:	ff 75 fc             	push   -0x4(%ebp)
4176e1:	89 5d cc             	mov    %ebx,-0x34(%ebp)
4176e4:	89 5d bc             	mov    %ebx,-0x44(%ebp)
4176e7:	89 55 c0             	mov    %edx,-0x40(%ebp)
4176ea:	e8 a1 66 01 00       	call   0x42dd90
4176ef:	8b f8                	mov    %eax,%edi
4176f1:	33 f6                	xor    %esi,%esi
4176f3:	8b 45 f0             	mov    -0x10(%ebp),%eax
4176f6:	89 75 fc             	mov    %esi,-0x4(%ebp)
4176f9:	85 c0                	test   %eax,%eax
4176fb:	75 05                	jne    0x417702
4176fd:	83 fb ff             	cmp    $0xffffffff,%ebx
417700:	76 2a                	jbe    0x41772c
417702:	6a 00                	push   $0x0
417704:	ff 75 d0             	push   -0x30(%ebp)
417707:	83 c3 01             	add    $0x1,%ebx
41770a:	83 d0 ff             	adc    $0xffffffff,%eax
41770d:	50                   	push   %eax
41770e:	53                   	push   %ebx
41770f:	e8 ac 28 ff ff       	call   0x409fc0
417714:	03 f8                	add    %eax,%edi
417716:	13 f2                	adc    %edx,%esi
417718:	83 cb ff             	or     $0xffffffff,%ebx
41771b:	33 c0                	xor    %eax,%eax
41771d:	89 75 fc             	mov    %esi,-0x4(%ebp)
417720:	89 5d cc             	mov    %ebx,-0x34(%ebp)
417723:	89 5d bc             	mov    %ebx,-0x44(%ebp)
417726:	89 45 f0             	mov    %eax,-0x10(%ebp)
417729:	89 45 c0             	mov    %eax,-0x40(%ebp)
41772c:	85 f6                	test   %esi,%esi
41772e:	77 50                	ja     0x417780
417730:	72 05                	jb     0x417737
417732:	83 ff ff             	cmp    $0xffffffff,%edi
417735:	77 49                	ja     0x417780
417737:	50                   	push   %eax
417738:	53                   	push   %ebx
417739:	33 c9                	xor    %ecx,%ecx
41773b:	8b f7                	mov    %edi,%esi
41773d:	0b 4d f8             	or     -0x8(%ebp),%ecx
417740:	6a 00                	push   $0x0
417742:	ff 75 e0             	push   -0x20(%ebp)
417745:	89 4d dc             	mov    %ecx,-0x24(%ebp)
417748:	e8 73 28 ff ff       	call   0x409fc0
41774d:	3b d6                	cmp    %esi,%edx
41774f:	72 29                	jb     0x41777a
417751:	77 05                	ja     0x417758
417753:	3b 45 dc             	cmp    -0x24(%ebp),%eax
417756:	76 22                	jbe    0x41777a
417758:	8b 45 f0             	mov    -0x10(%ebp),%eax
41775b:	83 c3 ff             	add    $0xffffffff,%ebx
41775e:	89 5d bc             	mov    %ebx,-0x44(%ebp)
417761:	83 d0 ff             	adc    $0xffffffff,%eax
417764:	03 7d d0             	add    -0x30(%ebp),%edi
417767:	89 45 f0             	mov    %eax,-0x10(%ebp)
41776a:	83 55 fc 00          	adcl   $0x0,-0x4(%ebp)
41776e:	89 45 c0             	mov    %eax,-0x40(%ebp)
417771:	75 0a                	jne    0x41777d
417773:	83 ff ff             	cmp    $0xffffffff,%edi
417776:	76 bf                	jbe    0x417737
417778:	eb 03                	jmp    0x41777d
41777a:	8b 45 f0             	mov    -0x10(%ebp),%eax
41777d:	89 5d cc             	mov    %ebx,-0x34(%ebp)
417780:	85 c0                	test   %eax,%eax
417782:	75 08                	jne    0x41778c
417784:	85 db                	test   %ebx,%ebx
417786:	0f 84 af 00 00 00    	je     0x41783b
41778c:	8b 4d ec             	mov    -0x14(%ebp),%ecx
41778f:	33 ff                	xor    %edi,%edi
417791:	8b 45 0c             	mov    0xc(%ebp),%eax
417794:	33 f6                	xor    %esi,%esi
417796:	85 c9                	test   %ecx,%ecx
417798:	74 55                	je     0x4177ef
41779a:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
41779d:	83 c0 04             	add    $0x4,%eax
4177a0:	89 45 f8             	mov    %eax,-0x8(%ebp)
4177a3:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4177a6:	8b 00                	mov    (%eax),%eax
4177a8:	89 45 dc             	mov    %eax,-0x24(%ebp)
4177ab:	8b 45 c0             	mov    -0x40(%ebp),%eax
4177ae:	f7 65 dc             	mull   -0x24(%ebp)
4177b1:	8b c8                	mov    %eax,%ecx
4177b3:	8b 45 bc             	mov    -0x44(%ebp),%eax
4177b6:	f7 65 dc             	mull   -0x24(%ebp)
4177b9:	03 d1                	add    %ecx,%edx
4177bb:	03 f8                	add    %eax,%edi
4177bd:	8b 03                	mov    (%ebx),%eax
4177bf:	8b cf                	mov    %edi,%ecx
4177c1:	13 f2                	adc    %edx,%esi
4177c3:	8b fe                	mov    %esi,%edi
4177c5:	33 f6                	xor    %esi,%esi
4177c7:	3b c1                	cmp    %ecx,%eax
4177c9:	73 05                	jae    0x4177d0
4177cb:	83 c7 01             	add    $0x1,%edi
4177ce:	13 f6                	adc    %esi,%esi
4177d0:	2b c1                	sub    %ecx,%eax
4177d2:	89 03                	mov    %eax,(%ebx)
4177d4:	83 c3 04             	add    $0x4,%ebx
4177d7:	8b 45 f8             	mov    -0x8(%ebp),%eax
4177da:	83 c0 04             	add    $0x4,%eax
4177dd:	83 6d fc 01          	subl   $0x1,-0x4(%ebp)
4177e1:	89 45 f8             	mov    %eax,-0x8(%ebp)
4177e4:	75 c0                	jne    0x4177a6
4177e6:	8b 45 0c             	mov    0xc(%ebp),%eax
4177e9:	8b 5d cc             	mov    -0x34(%ebp),%ebx
4177ec:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4177ef:	83 c0 04             	add    $0x4,%eax
4177f2:	89 45 dc             	mov    %eax,-0x24(%ebp)
4177f5:	33 c0                	xor    %eax,%eax
4177f7:	3b c6                	cmp    %esi,%eax
4177f9:	77 39                	ja     0x417834
4177fb:	72 05                	jb     0x417802
4177fd:	39 7d b8             	cmp    %edi,-0x48(%ebp)
417800:	73 32                	jae    0x417834
417802:	85 c9                	test   %ecx,%ecx
417804:	74 2b                	je     0x417831
417806:	8b 55 c4             	mov    -0x3c(%ebp),%edx
417809:	33 db                	xor    %ebx,%ebx
41780b:	8b 75 dc             	mov    -0x24(%ebp),%esi
41780e:	8b f9                	mov    %ecx,%edi
417810:	8b 0a                	mov    (%edx),%ecx
417812:	8d 76 04             	lea    0x4(%esi),%esi
417815:	33 c0                	xor    %eax,%eax
417817:	8d 52 04             	lea    0x4(%edx),%edx
41781a:	03 4e fc             	add    -0x4(%esi),%ecx
41781d:	13 c0                	adc    %eax,%eax
41781f:	03 cb                	add    %ebx,%ecx
417821:	89 4a fc             	mov    %ecx,-0x4(%edx)
417824:	83 d0 00             	adc    $0x0,%eax
417827:	8b d8                	mov    %eax,%ebx
417829:	83 ef 01             	sub    $0x1,%edi
41782c:	75 e2                	jne    0x417810
41782e:	8b 5d cc             	mov    -0x34(%ebp),%ebx
417831:	83 c3 ff             	add    $0xffffffff,%ebx
417834:	8b 45 c8             	mov    -0x38(%ebp),%eax
417837:	48                   	dec    %eax
417838:	89 45 f4             	mov    %eax,-0xc(%ebp)
41783b:	8b 75 b4             	mov    -0x4c(%ebp),%esi
41783e:	33 c0                	xor    %eax,%eax
417840:	8b 4d e8             	mov    -0x18(%ebp),%ecx
417843:	03 c3                	add    %ebx,%eax
417845:	8b 5d b0             	mov    -0x50(%ebp),%ebx
417848:	8b f8                	mov    %eax,%edi
41784a:	8b 45 c8             	mov    -0x38(%ebp),%eax
41784d:	83 d6 00             	adc    $0x0,%esi
417850:	83 6d c4 04          	subl   $0x4,-0x3c(%ebp)
417854:	4b                   	dec    %ebx
417855:	48                   	dec    %eax
417856:	89 7d b4             	mov    %edi,-0x4c(%ebp)
417859:	83 e9 04             	sub    $0x4,%ecx
41785c:	89 5d b0             	mov    %ebx,-0x50(%ebp)
41785f:	89 45 c8             	mov    %eax,-0x38(%ebp)
417862:	89 4d e8             	mov    %ecx,-0x18(%ebp)
417865:	85 db                	test   %ebx,%ebx
417867:	0f 89 f3 fd ff ff    	jns    0x417660
41786d:	eb 02                	jmp    0x417871
41786f:	33 ff                	xor    %edi,%edi
417871:	8b 4d f4             	mov    -0xc(%ebp),%ecx
417874:	8b 5d 08             	mov    0x8(%ebp),%ebx
417877:	41                   	inc    %ecx
417878:	8b c1                	mov    %ecx,%eax
41787a:	3b 03                	cmp    (%ebx),%eax
41787c:	73 14                	jae    0x417892
41787e:	8d 53 04             	lea    0x4(%ebx),%edx
417881:	8d 14 82             	lea    (%edx,%eax,4),%edx
417884:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
41788a:	8d 52 04             	lea    0x4(%edx),%edx
41788d:	40                   	inc    %eax
41788e:	3b 03                	cmp    (%ebx),%eax
417890:	72 f2                	jb     0x417884
417892:	89 0b                	mov    %ecx,(%ebx)
417894:	85 c9                	test   %ecx,%ecx
417896:	74 0d                	je     0x4178a5
417898:	83 3c 8b 00          	cmpl   $0x0,(%ebx,%ecx,4)
41789c:	75 07                	jne    0x4178a5
41789e:	83 c1 ff             	add    $0xffffffff,%ecx