407545:	85 c0                	test   %eax,%eax
407547:	74 06                	je     0x40754f
407549:	ff 85 74 ff ff ff    	incl   -0x8c(%ebp)
40754f:	03 fb                	add    %ebx,%edi
407551:	80 3f 00             	cmpb   $0x0,(%edi)
407554:	74 0a                	je     0x407560
407556:	47                   	inc    %edi
407557:	80 3f 00             	cmpb   $0x0,(%edi)
40755a:	0f 85 00 ff ff ff    	jne    0x407460
407560:	33 c0                	xor    %eax,%eax
407562:	39 85 74 ff ff ff    	cmp    %eax,-0x8c(%ebp)
407568:	0f 84 82 00 00 00    	je     0x4075f0
40756e:	8b b5 68 ff ff ff    	mov    -0x98(%ebp),%esi
407574:	eb 75                	jmp    0x4075eb
407576:	33 c0                	xor    %eax,%eax
407578:	eb 76                	jmp    0x4075f0
40757a:	53                   	push   %ebx
40757b:	53                   	push   %ebx
40757c:	53                   	push   %ebx
40757d:	68 83 00 00 00       	push   $0x83
407582:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
407588:	50                   	push   %eax
407589:	51                   	push   %ecx
40758a:	e8 22 f9 ff ff       	call   0x406eb1
40758f:	83 c4 18             	add    $0x18,%esp
407592:	3b c3                	cmp    %ebx,%eax
407594:	74 5a                	je     0x4075f0
407596:	8d 7e 48             	lea    0x48(%esi),%edi
407599:	85 db                	test   %ebx,%ebx
40759b:	74 33                	je     0x4075d0
40759d:	ff 37                	push   (%edi)
40759f:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
4075a5:	50                   	push   %eax
4075a6:	e8 85 4c 00 00       	call   0x40c230
4075ab:	59                   	pop    %ecx
4075ac:	59                   	pop    %ecx
4075ad:	85 c0                	test   %eax,%eax
4075af:	74 19                	je     0x4075ca
4075b1:	53                   	push   %ebx
4075b2:	8d 8d 78 ff ff ff    	lea    -0x88(%ebp),%ecx
4075b8:	e8 25 fb ff ff       	call   0x4070e2
4075bd:	59                   	pop    %ecx
4075be:	85 c0                	test   %eax,%eax
4075c0:	75 08                	jne    0x4075ca
4075c2:	21 85 70 ff ff ff    	and    %eax,-0x90(%ebp)
4075c8:	eb 06                	jmp    0x4075d0
4075ca:	ff 85 74 ff ff ff    	incl   -0x8c(%ebp)
4075d0:	43                   	inc    %ebx
4075d1:	83 c7 10             	add    $0x10,%edi
4075d4:	83 fb 05             	cmp    $0x5,%ebx
4075d7:	7e c0                	jle    0x407599
4075d9:	33 c0                	xor    %eax,%eax
4075db:	39 85 70 ff ff ff    	cmp    %eax,-0x90(%ebp)
4075e1:	75 08                	jne    0x4075eb
4075e3:	39 85 74 ff ff ff    	cmp    %eax,-0x8c(%ebp)
4075e9:	74 05                	je     0x4075f0
4075eb:	e8 44 f7 ff ff       	call   0x406d34
4075f0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4075f3:	5f                   	pop    %edi
4075f4:	5e                   	pop    %esi
4075f5:	33 cd                	xor    %ebp,%ecx
4075f7:	5b                   	pop    %ebx
4075f8:	e8 29 f0 ff ff       	call   0x406626
4075fd:	c9                   	leave
4075fe:	c3                   	ret
4075ff:	8b ff                	mov    %edi,%edi
407601:	55                   	push   %ebp
407602:	8b ec                	mov    %esp,%ebp
407604:	83 7d 08 05          	cmpl   $0x5,0x8(%ebp)
407608:	56                   	push   %esi
407609:	57                   	push   %edi
40760a:	77 24                	ja     0x407630
40760c:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
407610:	74 1e                	je     0x407630
407612:	33 ff                	xor    %edi,%edi
407614:	47                   	inc    %edi
407615:	57                   	push   %edi
407616:	6a 08                	push   $0x8
407618:	e8 88 05 00 00       	call   0x407ba5
40761d:	8b f0                	mov    %eax,%esi
40761f:	59                   	pop    %ecx
407620:	59                   	pop    %ecx
407621:	85 f6                	test   %esi,%esi
407623:	75 11                	jne    0x407636
407625:	e8 ab e4 ff ff       	call   0x405ad5
40762a:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
407630:	33 c0                	xor    %eax,%eax
407632:	5f                   	pop    %edi
407633:	5e                   	pop    %esi
407634:	5d                   	pop    %ebp
407635:	c3                   	ret
407636:	57                   	push   %edi
407637:	68 d8 00 00 00       	push   $0xd8
40763c:	e8 64 05 00 00       	call   0x407ba5
407641:	59                   	pop    %ecx
407642:	59                   	pop    %ecx
407643:	89 06                	mov    %eax,(%esi)
407645:	85 c0                	test   %eax,%eax
407647:	75 09                	jne    0x407652
407649:	56                   	push   %esi
40764a:	e8 d1 d9 ff ff       	call   0x405020
40764f:	59                   	pop    %ecx
407650:	eb d3                	jmp    0x407625
407652:	57                   	push   %edi
407653:	68 20 02 00 00       	push   $0x220
407658:	e8 48 05 00 00       	call   0x407ba5
40765d:	59                   	pop    %ecx
40765e:	59                   	pop    %ecx
40765f:	89 46 04             	mov    %eax,0x4(%esi)
407662:	85 c0                	test   %eax,%eax
407664:	75 10                	jne    0x407676
407666:	ff 36                	push   (%esi)
407668:	e8 b3 d9 ff ff       	call   0x405020
40766d:	56                   	push   %esi
40766e:	e8 ad d9 ff ff       	call   0x405020
407673:	59                   	pop    %ecx
407674:	eb d9                	jmp    0x40764f
407676:	8b 06                	mov    (%esi),%eax
407678:	b9 b0 b7 42 00       	mov    $0x42b7b0,%ecx
40767d:	e8 ed f2 ff ff       	call   0x40696f
407682:	ff 75 08             	push   0x8(%ebp)
407685:	8b 4d 0c             	mov    0xc(%ebp),%ecx
407688:	8b 16                	mov    (%esi),%edx
40768a:	e8 55 fd ff ff       	call   0x4073e4
40768f:	59                   	pop    %ecx
407690:	85 c0                	test   %eax,%eax
407692:	75 19                	jne    0x4076ad
407694:	ff 36                	push   (%esi)
407696:	e8 3b f2 ff ff       	call   0x4068d6
40769b:	ff 36                	push   (%esi)
40769d:	e8 5c f0 ff ff       	call   0x4066fe
4076a2:	56                   	push   %esi
4076a3:	e8 78 d9 ff ff       	call   0x405020
4076a8:	83 c4 0c             	add    $0xc,%esp
4076ab:	eb 32                	jmp    0x4076df
4076ad:	ff 76 04             	push   0x4(%esi)
4076b0:	8b 06                	mov    (%esi),%eax
4076b2:	ff 70 04             	push   0x4(%eax)
4076b5:	e8 8a 7f 00 00       	call   0x40f644
4076ba:	59                   	pop    %ecx
4076bb:	59                   	pop    %ecx
4076bc:	85 c0                	test   %eax,%eax
4076be:	74 23                	je     0x4076e3
4076c0:	ff 76 04             	push   0x4(%esi)
4076c3:	e8 58 d9 ff ff       	call   0x405020
4076c8:	ff 36                	push   (%esi)
4076ca:	e8 07 f2 ff ff       	call   0x4068d6
4076cf:	ff 36                	push   (%esi)
4076d1:	e8 28 f0 ff ff       	call   0x4066fe
4076d6:	56                   	push   %esi
4076d7:	e8 44 d9 ff ff       	call   0x405020
4076dc:	83 c4 10             	add    $0x10,%esp
4076df:	33 f6                	xor    %esi,%esi
4076e1:	eb 0a                	jmp    0x4076ed
4076e3:	8b 46 04             	mov    0x4(%esi),%eax
4076e6:	89 38                	mov    %edi,(%eax)
4076e8:	8b 46 04             	mov    0x4(%esi),%eax
4076eb:	89 38                	mov    %edi,(%eax)
4076ed:	8b c6                	mov    %esi,%eax
4076ef:	e9 3e ff ff ff       	jmp    0x407632
4076f4:	6a 14                	push   $0x14
4076f6:	68 00 96 42 00       	push   $0x429600
4076fb:	e8 dc 2c 00 00       	call   0x40a3dc
407700:	33 db                	xor    %ebx,%ebx
407702:	89 5d e0             	mov    %ebx,-0x20(%ebp)
407705:	83 7d 08 05          	cmpl   $0x5,0x8(%ebp)
407709:	76 1f                	jbe    0x40772a
40770b:	e8 c5 e3 ff ff       	call   0x405ad5
407710:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
407716:	53                   	push   %ebx
407717:	53                   	push   %ebx
407718:	53                   	push   %ebx
407719:	53                   	push   %ebx
40771a:	53                   	push   %ebx
40771b:	e8 05 db ff ff       	call   0x405225
407720:	83 c4 14             	add    $0x14,%esp
407723:	33 c0                	xor    %eax,%eax
407725:	e9 2c 01 00 00       	jmp    0x407856
40772a:	e8 12 33 00 00       	call   0x40aa41
40772f:	8b f0                	mov    %eax,%esi
407731:	89 75 e4             	mov    %esi,-0x1c(%ebp)
407734:	e8 9a f2 ff ff       	call   0x4069d3
407739:	83 4e 70 10          	orl    $0x10,0x70(%esi)
40773d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
407740:	6a 01                	push   $0x1
407742:	68 d8 00 00 00       	push   $0xd8
407747:	e8 59 04 00 00       	call   0x407ba5
40774c:	59                   	pop    %ecx
40774d:	59                   	pop    %ecx
40774e:	8b f8                	mov    %eax,%edi
407750:	89 7d dc             	mov    %edi,-0x24(%ebp)
407753:	3b fb                	cmp    %ebx,%edi
407755:	0f 84 ec 00 00 00    	je     0x407847
40775b:	6a 0c                	push   $0xc
40775d:	e8 82 21 00 00       	call   0x4098e4
407762:	59                   	pop    %ecx
407763:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40776a:	8b 4e 6c             	mov    0x6c(%esi),%ecx
40776d:	8b c7                	mov    %edi,%eax
40776f:	e8 fb f1 ff ff       	call   0x40696f
407774:	89 5d fc             	mov    %ebx,-0x4(%ebp)
407777:	e8 a6 00 00 00       	call   0x407822
40777c:	ff 75 08             	push   0x8(%ebp)
40777f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
407782:	8b d7                	mov    %edi,%edx
407784:	e8 5b fc ff ff       	call   0x4073e4
407789:	59                   	pop    %ecx
40778a:	89 45 e0             	mov    %eax,-0x20(%ebp)
40778d:	3b c3                	cmp    %ebx,%eax
40778f:	0f 84 a4 00 00 00    	je     0x407839
407795:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
407798:	74 1d                	je     0x4077b7
40779a:	68 a8 b7 42 00       	push   $0x42b7a8
40779f:	ff 75 0c             	push   0xc(%ebp)
4077a2:	e8 89 4a 00 00       	call   0x40c230
4077a7:	59                   	pop    %ecx
4077a8:	59                   	pop    %ecx
4077a9:	85 c0                	test   %eax,%eax
4077ab:	74 0a                	je     0x4077b7
4077ad:	c7 05 fc 07 43 00 01 	movl   $0x1,0x4307fc
4077b4:	00 00 00
4077b7:	6a 0c                	push   $0xc
4077b9:	e8 26 21 00 00       	call   0x4098e4
4077be:	59                   	pop    %ecx
4077bf:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
4077c6:	8d 5e 6c             	lea    0x6c(%esi),%ebx
4077c9:	8b c3                	mov    %ebx,%eax
4077cb:	e8 c5 f1 ff ff       	call   0x406995
4077d0:	57                   	push   %edi
4077d1:	e8 00 f1 ff ff       	call   0x4068d6
4077d6:	59                   	pop    %ecx
4077d7:	f6 46 70 02          	testb  $0x2,0x70(%esi)
4077db:	75 32                	jne    0x40780f
4077dd:	f6 05 a0 b7 42 00 01 	testb  $0x1,0x42b7a0
4077e4:	75 29                	jne    0x40780f
4077e6:	8b 3b                	mov    (%ebx),%edi
4077e8:	b8 88 b8 42 00       	mov    $0x42b888,%eax
4077ed:	e8 a3 f1 ff ff       	call   0x406995
4077f2:	6a 18                	push   $0x18
4077f4:	a1 88 b8 42 00       	mov    0x42b888,%eax
4077f9:	83 c0 0c             	add    $0xc,%eax
4077fc:	50                   	push   %eax
4077fd:	68 f4 0d 43 00       	push   $0x430df4
407802:	e8 f9 08 00 00       	call   0x408100
407807:	83 c4 0c             	add    $0xc,%esp
40780a:	e8 3a f2 ff ff       	call   0x406a49
40780f:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
407813:	e8 16 00 00 00       	call   0x40782e
407818:	eb 2d                	jmp    0x407847
40781a:	8b 7d dc             	mov    -0x24(%ebp),%edi
40781d:	8b 75 e4             	mov    -0x1c(%ebp),%esi
407820:	33 db                	xor    %ebx,%ebx
407822:	6a 0c                	push   $0xc
407824:	e8 e1 1f 00 00       	call   0x40980a
407829:	59                   	pop    %ecx
40782a:	c3                   	ret
40782b:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40782e:	6a 0c                	push   $0xc
407830:	e8 d5 1f 00 00       	call   0x40980a
407835:	59                   	pop    %ecx
407836:	c3                   	ret
407837:	eb 0e                	jmp    0x407847
407839:	57                   	push   %edi
40783a:	e8 97 f0 ff ff       	call   0x4068d6
40783f:	57                   	push   %edi
407840:	e8 b9 ee ff ff       	call   0x4066fe
407845:	59                   	pop    %ecx
407846:	59                   	pop    %ecx
407847:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40784e:	e8 0c 00 00 00       	call   0x40785f
407853:	8b 45 e0             	mov    -0x20(%ebp),%eax
407856:	e8 c6 2b 00 00       	call   0x40a421
40785b:	c3                   	ret
40785c:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40785f:	83 66 70 ef          	andl   $0xffffffef,0x70(%esi)
407863:	c3                   	ret
407864:	8b ff                	mov    %edi,%edi
407866:	55                   	push   %ebp
407867:	8b ec                	mov    %esp,%ebp
407869:	8b 45 08             	mov    0x8(%ebp),%eax
40786c:	56                   	push   %esi
40786d:	8b f1                	mov    %ecx,%esi
40786f:	c6 46 0c 00          	movb   $0x0,0xc(%esi)
407873:	85 c0                	test   %eax,%eax
407875:	75 63                	jne    0x4078da
407877:	e8 c5 31 00 00       	call   0x40aa41
40787c:	89 46 08             	mov    %eax,0x8(%esi)
40787f:	8b 48 6c             	mov    0x6c(%eax),%ecx
407882:	89 0e                	mov    %ecx,(%esi)
407884:	8b 48 68             	mov    0x68(%eax),%ecx
407887:	89 4e 04             	mov    %ecx,0x4(%esi)
40788a:	8b 0e                	mov    (%esi),%ecx
40788c:	3b 0d 88 b8 42 00    	cmp    0x42b888,%ecx
407892:	74 12                	je     0x4078a6
407894:	8b 0d a0 b7 42 00    	mov    0x42b7a0,%ecx
40789a:	85 48 70             	test   %ecx,0x70(%eax)
40789d:	75 07                	jne    0x4078a6
40789f:	e8 2f f1 ff ff       	call   0x4069d3
4078a4:	89 06                	mov    %eax,(%esi)
4078a6:	8b 46 04             	mov    0x4(%esi),%eax
4078a9:	3b 05 e8 bd 42 00    	cmp    0x42bde8,%eax
4078af:	74 16                	je     0x4078c7
4078b1:	8b 46 08             	mov    0x8(%esi),%eax
4078b4:	8b 0d a0 b7 42 00    	mov    0x42b7a0,%ecx
4078ba:	85 48 70             	test   %ecx,0x70(%eax)
4078bd:	75 08                	jne    0x4078c7
4078bf:	e8 60 7c 00 00       	call   0x40f524
4078c4:	89 46 04             	mov    %eax,0x4(%esi)
4078c7:	8b 46 08             	mov    0x8(%esi),%eax
4078ca:	f6 40 70 02          	testb  $0x2,0x70(%eax)
4078ce:	75 14                	jne    0x4078e4
4078d0:	83 48 70 02          	orl    $0x2,0x70(%eax)
4078d4:	c6 46 0c 01          	movb   $0x1,0xc(%esi)
4078d8:	eb 0a                	jmp    0x4078e4
4078da:	8b 08                	mov    (%eax),%ecx
4078dc:	89 0e                	mov    %ecx,(%esi)
4078de:	8b 40 04             	mov    0x4(%eax),%eax
4078e1:	89 46 04             	mov    %eax,0x4(%esi)
4078e4:	8b c6                	mov    %esi,%eax
4078e6:	5e                   	pop    %esi
4078e7:	5d                   	pop    %ebp
4078e8:	c2 04 00             	ret    $0x4
4078eb:	8b ff                	mov    %edi,%edi
4078ed:	55                   	push   %ebp
4078ee:	8b ec                	mov    %esp,%ebp
4078f0:	83 ec 10             	sub    $0x10,%esp
4078f3:	ff 75 08             	push   0x8(%ebp)
4078f6:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4078f9:	e8 66 ff ff ff       	call   0x407864
4078fe:	8b 45 18             	mov    0x18(%ebp),%eax
407901:	85 c0                	test   %eax,%eax
407903:	7e 18                	jle    0x40791d
407905:	8b 4d 14             	mov    0x14(%ebp),%ecx
407908:	8b d0                	mov    %eax,%edx
40790a:	4a                   	dec    %edx
40790b:	66 83 39 00          	cmpw   $0x0,(%ecx)
40790f:	74 09                	je     0x40791a
407911:	41                   	inc    %ecx
407912:	41                   	inc    %ecx
407913:	85 d2                	test   %edx,%edx
407915:	75 f3                	jne    0x40790a
407917:	83 ca ff             	or     $0xffffffff,%edx
40791a:	2b c2                	sub    %edx,%eax
40791c:	48                   	dec    %eax
40791d:	ff 75 20             	push   0x20(%ebp)
407920:	ff 75 1c             	push   0x1c(%ebp)
407923:	50                   	push   %eax
407924:	ff 75 14             	push   0x14(%ebp)
407927:	ff 75 10             	push   0x10(%ebp)
40792a:	ff 75 0c             	push   0xc(%ebp)