407586:	ff 75 0c             	push   0xc(%ebp)
407589:	2b d8                	sub    %eax,%ebx
40758b:	8b ce                	mov    %esi,%ecx
40758d:	53                   	push   %ebx
40758e:	56                   	push   %esi
40758f:	e8 f5 00 00 00       	call   0x407689
407594:	eb 47                	jmp    0x4075dd
407596:	57                   	push   %edi
407597:	8b 7d 0c             	mov    0xc(%ebp),%edi
40759a:	8b ce                	mov    %esi,%ecx
40759c:	6a 00                	push   $0x0
40759e:	57                   	push   %edi
40759f:	e8 87 00 00 00       	call   0x40762b
4075a4:	84 c0                	test   %al,%al
4075a6:	74 32                	je     0x4075da
4075a8:	8b 46 14             	mov    0x14(%esi),%eax
4075ab:	83 f8 10             	cmp    $0x10,%eax
4075ae:	72 04                	jb     0x4075b4
4075b0:	8b 0e                	mov    (%esi),%ecx
4075b2:	eb 02                	jmp    0x4075b6
4075b4:	8b ce                	mov    %esi,%ecx
4075b6:	85 ff                	test   %edi,%edi
4075b8:	74 0e                	je     0x4075c8
4075ba:	57                   	push   %edi
4075bb:	53                   	push   %ebx
4075bc:	51                   	push   %ecx
4075bd:	e8 1c c7 00 00       	call   0x413cde
4075c2:	8b 46 14             	mov    0x14(%esi),%eax
4075c5:	83 c4 0c             	add    $0xc,%esp
4075c8:	89 7e 10             	mov    %edi,0x10(%esi)
4075cb:	83 f8 10             	cmp    $0x10,%eax
4075ce:	72 04                	jb     0x4075d4
4075d0:	8b 06                	mov    (%esi),%eax
4075d2:	eb 02                	jmp    0x4075d6
4075d4:	8b c6                	mov    %esi,%eax
4075d6:	c6 04 38 00          	movb   $0x0,(%eax,%edi,1)
4075da:	8b c6                	mov    %esi,%eax
4075dc:	5f                   	pop    %edi
4075dd:	5e                   	pop    %esi
4075de:	5b                   	pop    %ebx
4075df:	5d                   	pop    %ebp
4075e0:	c2 08 00             	ret    $0x8
4075e3:	68 c4 27 40 00       	push   $0x4027c4
4075e8:	e8 03 bf 00 00       	call   0x4134f0
4075ed:	cc                   	int3
4075ee:	8b ff                	mov    %edi,%edi
4075f0:	55                   	push   %ebp
4075f1:	8b ec                	mov    %esp,%ebp
4075f3:	8b 55 08             	mov    0x8(%ebp),%edx
4075f6:	85 d2                	test   %edx,%edx
4075f8:	74 2b                	je     0x407625
4075fa:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
4075fe:	72 04                	jb     0x407604
407600:	8b 01                	mov    (%ecx),%eax
407602:	eb 02                	jmp    0x407606
407604:	8b c1                	mov    %ecx,%eax
407606:	3b d0                	cmp    %eax,%edx
407608:	72 1b                	jb     0x407625
40760a:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
40760e:	56                   	push   %esi
40760f:	72 04                	jb     0x407615
407611:	8b 31                	mov    (%ecx),%esi
407613:	eb 02                	jmp    0x407617
407615:	8b f1                	mov    %ecx,%esi
407617:	8b 41 10             	mov    0x10(%ecx),%eax
40761a:	03 c6                	add    %esi,%eax
40761c:	5e                   	pop    %esi
40761d:	3b c2                	cmp    %edx,%eax
40761f:	76 04                	jbe    0x407625
407621:	b0 01                	mov    $0x1,%al
407623:	eb 02                	jmp    0x407627
407625:	32 c0                	xor    %al,%al
407627:	5d                   	pop    %ebp
407628:	c2 04 00             	ret    $0x4
40762b:	8b ff                	mov    %edi,%edi
40762d:	55                   	push   %ebp
40762e:	8b ec                	mov    %esp,%ebp
407630:	56                   	push   %esi
407631:	8b 75 08             	mov    0x8(%ebp),%esi
407634:	83 fe fe             	cmp    $0xfffffffe,%esi
407637:	77 4a                	ja     0x407683
407639:	39 71 14             	cmp    %esi,0x14(%ecx)
40763c:	73 0b                	jae    0x407649
40763e:	ff 71 10             	push   0x10(%ecx)
407641:	56                   	push   %esi
407642:	e8 d8 00 00 00       	call   0x40771f
407647:	eb 30                	jmp    0x407679
407649:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
40764d:	74 18                	je     0x407667
40764f:	83 fe 10             	cmp    $0x10,%esi
407652:	73 13                	jae    0x407667
407654:	8b 41 10             	mov    0x10(%ecx),%eax
407657:	3b f0                	cmp    %eax,%esi
407659:	73 02                	jae    0x40765d
40765b:	8b c6                	mov    %esi,%eax
40765d:	50                   	push   %eax
40765e:	6a 01                	push   $0x1
407660:	e8 7a fc ff ff       	call   0x4072df
407665:	eb 12                	jmp    0x407679
407667:	85 f6                	test   %esi,%esi
407669:	75 10                	jne    0x40767b
40766b:	21 71 10             	and    %esi,0x10(%ecx)
40766e:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
407672:	72 02                	jb     0x407676
407674:	8b 09                	mov    (%ecx),%ecx
407676:	c6 01 00             	movb   $0x0,(%ecx)
407679:	85 f6                	test   %esi,%esi
40767b:	0f 95 c0             	setne  %al
40767e:	5e                   	pop    %esi
40767f:	5d                   	pop    %ebp
407680:	c2 08 00             	ret    $0x8
407683:	e8 5b ff ff ff       	call   0x4075e3
407688:	cc                   	int3
407689:	8b ff                	mov    %edi,%edi
40768b:	55                   	push   %ebp
40768c:	8b ec                	mov    %esp,%ebp
40768e:	8b 45 0c             	mov    0xc(%ebp),%eax
407691:	53                   	push   %ebx
407692:	8b 5d 08             	mov    0x8(%ebp),%ebx
407695:	56                   	push   %esi
407696:	57                   	push   %edi
407697:	8b f1                	mov    %ecx,%esi
407699:	8b 7b 10             	mov    0x10(%ebx),%edi
40769c:	3b f8                	cmp    %eax,%edi
40769e:	72 79                	jb     0x407719
4076a0:	2b f8                	sub    %eax,%edi
4076a2:	39 7d 10             	cmp    %edi,0x10(%ebp)
4076a5:	73 03                	jae    0x4076aa
4076a7:	8b 7d 10             	mov    0x10(%ebp),%edi
4076aa:	3b f3                	cmp    %ebx,%esi
4076ac:	75 17                	jne    0x4076c5
4076ae:	03 c7                	add    %edi,%eax
4076b0:	50                   	push   %eax
4076b1:	e8 d7 01 00 00       	call   0x40788d
4076b6:	8b 45 0c             	mov    0xc(%ebp),%eax
4076b9:	8b ce                	mov    %esi,%ecx
4076bb:	50                   	push   %eax
4076bc:	6a 00                	push   $0x0
4076be:	e8 41 01 00 00       	call   0x407804
4076c3:	eb 4b                	jmp    0x407710
4076c5:	6a 00                	push   $0x0
4076c7:	57                   	push   %edi
4076c8:	e8 5e ff ff ff       	call   0x40762b
4076cd:	84 c0                	test   %al,%al
4076cf:	74 3f                	je     0x407710
4076d1:	83 7b 14 10          	cmpl   $0x10,0x14(%ebx)
4076d5:	72 02                	jb     0x4076d9
4076d7:	8b 1b                	mov    (%ebx),%ebx
4076d9:	8b 46 14             	mov    0x14(%esi),%eax
4076dc:	83 f8 10             	cmp    $0x10,%eax
4076df:	72 04                	jb     0x4076e5
4076e1:	8b 0e                	mov    (%esi),%ecx
4076e3:	eb 02                	jmp    0x4076e7
4076e5:	8b ce                	mov    %esi,%ecx
4076e7:	85 ff                	test   %edi,%edi
4076e9:	74 13                	je     0x4076fe
4076eb:	8b 45 0c             	mov    0xc(%ebp),%eax
4076ee:	57                   	push   %edi
4076ef:	03 c3                	add    %ebx,%eax
4076f1:	50                   	push   %eax
4076f2:	51                   	push   %ecx
4076f3:	e8 e6 c5 00 00       	call   0x413cde
4076f8:	8b 46 14             	mov    0x14(%esi),%eax
4076fb:	83 c4 0c             	add    $0xc,%esp
4076fe:	89 7e 10             	mov    %edi,0x10(%esi)
407701:	83 f8 10             	cmp    $0x10,%eax
407704:	72 04                	jb     0x40770a
407706:	8b 06                	mov    (%esi),%eax
407708:	eb 02                	jmp    0x40770c
40770a:	8b c6                	mov    %esi,%eax
40770c:	c6 04 38 00          	movb   $0x0,(%eax,%edi,1)
407710:	5f                   	pop    %edi
407711:	8b c6                	mov    %esi,%eax
407713:	5e                   	pop    %esi
407714:	5b                   	pop    %ebx
407715:	5d                   	pop    %ebp
407716:	c2 0c 00             	ret    $0xc
407719:	e8 3b fe ff ff       	call   0x407559
40771e:	cc                   	int3
40771f:	6a 14                	push   $0x14
407721:	b8 db 41 41 00       	mov    $0x4141db,%eax
407726:	e8 7d c5 00 00       	call   0x413ca8
40772b:	8b f9                	mov    %ecx,%edi
40772d:	89 7d e8             	mov    %edi,-0x18(%ebp)
407730:	8b 75 08             	mov    0x8(%ebp),%esi
407733:	83 ce 0f             	or     $0xf,%esi
407736:	83 fe fe             	cmp    $0xfffffffe,%esi
407739:	76 05                	jbe    0x407740
40773b:	8b 75 08             	mov    0x8(%ebp),%esi
40773e:	eb 2a                	jmp    0x40776a
407740:	33 d2                	xor    %edx,%edx
407742:	c7 45 e4 03 00 00 00 	movl   $0x3,-0x1c(%ebp)
407749:	8b c6                	mov    %esi,%eax
40774b:	8b 5f 14             	mov    0x14(%edi),%ebx
40774e:	f7 75 e4             	divl   -0x1c(%ebp)
407751:	8b cb                	mov    %ebx,%ecx
407753:	d1 e9                	shr    $1,%ecx
407755:	3b c8                	cmp    %eax,%ecx
407757:	76 11                	jbe    0x40776a
407759:	6a fe                	push   $0xfffffffe
40775b:	58                   	pop    %eax
40775c:	2b c1                	sub    %ecx,%eax
40775e:	3b d8                	cmp    %eax,%ebx
407760:	77 05                	ja     0x407767
407762:	8d 34 19             	lea    (%ecx,%ebx,1),%esi
407765:	eb 03                	jmp    0x40776a
407767:	6a fe                	push   $0xfffffffe
407769:	5e                   	pop    %esi
40776a:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40776e:	8d 46 01             	lea    0x1(%esi),%eax
407771:	50                   	push   %eax
407772:	8d 4d ef             	lea    -0x11(%ebp),%ecx
407775:	e8 3f 01 00 00       	call   0x4078b9
40777a:	8b d8                	mov    %eax,%ebx
40777c:	eb 29                	jmp    0x4077a7
40777e:	8b 45 08             	mov    0x8(%ebp),%eax
407781:	8d 4d ef             	lea    -0x11(%ebp),%ecx
407784:	89 45 e4             	mov    %eax,-0x1c(%ebp)
407787:	40                   	inc    %eax
407788:	89 65 f0             	mov    %esp,-0x10(%ebp)
40778b:	50                   	push   %eax
40778c:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
407790:	e8 24 01 00 00       	call   0x4078b9
407795:	89 45 e0             	mov    %eax,-0x20(%ebp)
407798:	b8 9e 77 40 00       	mov    $0x40779e,%eax
40779d:	c3                   	ret
40779e:	8b 7d e8             	mov    -0x18(%ebp),%edi
4077a1:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4077a4:	8b 5d e0             	mov    -0x20(%ebp),%ebx
4077a7:	8b 45 0c             	mov    0xc(%ebp),%eax
4077aa:	85 c0                	test   %eax,%eax
4077ac:	74 17                	je     0x4077c5
4077ae:	83 7f 14 10          	cmpl   $0x10,0x14(%edi)
4077b2:	72 04                	jb     0x4077b8
4077b4:	8b 0f                	mov    (%edi),%ecx
4077b6:	eb 02                	jmp    0x4077ba
4077b8:	8b cf                	mov    %edi,%ecx
4077ba:	50                   	push   %eax
4077bb:	51                   	push   %ecx
4077bc:	53                   	push   %ebx
4077bd:	e8 1c c5 00 00       	call   0x413cde
4077c2:	83 c4 0c             	add    $0xc,%esp
4077c5:	6a 00                	push   $0x0
4077c7:	6a 01                	push   $0x1
4077c9:	8b cf                	mov    %edi,%ecx
4077cb:	e8 0f fb ff ff       	call   0x4072df
4077d0:	8b 45 0c             	mov    0xc(%ebp),%eax
4077d3:	89 1f                	mov    %ebx,(%edi)
4077d5:	89 77 14             	mov    %esi,0x14(%edi)
4077d8:	89 47 10             	mov    %eax,0x10(%edi)
4077db:	83 fe 10             	cmp    $0x10,%esi
4077de:	73 02                	jae    0x4077e2
4077e0:	8b df                	mov    %edi,%ebx
4077e2:	c6 04 03 00          	movb   $0x0,(%ebx,%eax,1)
4077e6:	e8 31 c4 00 00       	call   0x413c1c
4077eb:	c2 08 00             	ret    $0x8
4077ee:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4077f1:	6a 00                	push   $0x0
4077f3:	6a 01                	push   $0x1
4077f5:	e8 e5 fa ff ff       	call   0x4072df
4077fa:	6a 00                	push   $0x0
4077fc:	6a 00                	push   $0x0
4077fe:	e8 13 c4 00 00       	call   0x413c16
407803:	cc                   	int3
407804:	8b ff                	mov    %edi,%edi
407806:	55                   	push   %ebp
407807:	8b ec                	mov    %esp,%ebp
407809:	51                   	push   %ecx
40780a:	56                   	push   %esi
40780b:	8b f1                	mov    %ecx,%esi
40780d:	8b 4d 08             	mov    0x8(%ebp),%ecx
407810:	57                   	push   %edi
407811:	8b 7e 10             	mov    0x10(%esi),%edi
407814:	3b f9                	cmp    %ecx,%edi
407816:	72 6d                	jb     0x407885
407818:	8b 55 0c             	mov    0xc(%ebp),%edx
40781b:	8b c7                	mov    %edi,%eax
40781d:	2b c1                	sub    %ecx,%eax
40781f:	3b c2                	cmp    %edx,%eax
407821:	77 15                	ja     0x407838
407823:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
407827:	89 4e 10             	mov    %ecx,0x10(%esi)
40782a:	72 04                	jb     0x407830
40782c:	8b 06                	mov    (%esi),%eax
40782e:	eb 02                	jmp    0x407832
407830:	8b c6                	mov    %esi,%eax
407832:	c6 04 08 00          	movb   $0x0,(%eax,%ecx,1)
407836:	eb 45                	jmp    0x40787d
407838:	85 d2                	test   %edx,%edx
40783a:	74 41                	je     0x40787d
40783c:	8b 46 14             	mov    0x14(%esi),%eax
40783f:	53                   	push   %ebx
407840:	83 f8 10             	cmp    $0x10,%eax
407843:	72 04                	jb     0x407849
407845:	8b 1e                	mov    (%esi),%ebx
407847:	eb 02                	jmp    0x40784b
407849:	8b de                	mov    %esi,%ebx
40784b:	2b fa                	sub    %edx,%edi
40784d:	03 d9                	add    %ecx,%ebx
40784f:	89 7d fc             	mov    %edi,-0x4(%ebp)
407852:	29 4d fc             	sub    %ecx,-0x4(%ebp)
407855:	74 13                	je     0x40786a
407857:	ff 75 fc             	push   -0x4(%ebp)
40785a:	8d 04 13             	lea    (%ebx,%edx,1),%eax
40785d:	50                   	push   %eax
40785e:	53                   	push   %ebx
40785f:	e8 80 c4 00 00       	call   0x413ce4
407864:	8b 46 14             	mov    0x14(%esi),%eax
407867:	83 c4 0c             	add    $0xc,%esp
40786a:	89 7e 10             	mov    %edi,0x10(%esi)
40786d:	5b                   	pop    %ebx
40786e:	83 f8 10             	cmp    $0x10,%eax
407871:	72 04                	jb     0x407877
407873:	8b 06                	mov    (%esi),%eax
407875:	eb 02                	jmp    0x407879
407877:	8b c6                	mov    %esi,%eax
407879:	c6 04 38 00          	movb   $0x0,(%eax,%edi,1)
40787d:	5f                   	pop    %edi
40787e:	8b c6                	mov    %esi,%eax
407880:	5e                   	pop    %esi
407881:	c9                   	leave
407882:	c2 08 00             	ret    $0x8
407885:	8b ce                	mov    %esi,%ecx
407887:	e8 cd fc ff ff       	call   0x407559
40788c:	cc                   	int3
40788d:	8b ff                	mov    %edi,%edi
40788f:	55                   	push   %ebp
407890:	8b ec                	mov    %esp,%ebp
407892:	8b 45 08             	mov    0x8(%ebp),%eax
407895:	39 41 10             	cmp    %eax,0x10(%ecx)
407898:	72 19                	jb     0x4078b3
40789a:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
40789e:	89 41 10             	mov    %eax,0x10(%ecx)
4078a1:	72 04                	jb     0x4078a7
4078a3:	8b 11                	mov    (%ecx),%edx
4078a5:	eb 02                	jmp    0x4078a9
4078a7:	8b d1                	mov    %ecx,%edx
4078a9:	c6 04 02 00          	movb   $0x0,(%edx,%eax,1)
4078ad:	8b c1                	mov    %ecx,%eax
4078af:	5d                   	pop    %ebp
4078b0:	c2 04 00             	ret    $0x4
4078b3:	e8 a1 fc ff ff       	call   0x407559
4078b8:	cc                   	int3
4078b9:	8b ff                	mov    %edi,%edi
4078bb:	55                   	push   %ebp
4078bc:	8b ec                	mov    %esp,%ebp
4078be:	33 c0                	xor    %eax,%eax
4078c0:	39 45 08             	cmp    %eax,0x8(%ebp)
4078c3:	74 0d                	je     0x4078d2
4078c5:	ff 75 08             	push   0x8(%ebp)