404529:	8b 45 f8             	mov    -0x8(%ebp),%eax
40452c:	83 65 0c 00          	andl   $0x0,0xc(%ebp)
404530:	89 45 14             	mov    %eax,0x14(%ebp)
404533:	8b 45 fc             	mov    -0x4(%ebp),%eax
404536:	89 45 18             	mov    %eax,0x18(%ebp)
404539:	8b 46 40             	mov    0x40(%esi),%eax
40453c:	6a 06                	push   $0x6
40453e:	89 45 1c             	mov    %eax,0x1c(%ebp)
404541:	59                   	pop    %ecx
404542:	8d 75 0c             	lea    0xc(%ebp),%esi
404545:	eb 0f                	jmp    0x404556
404547:	6a ff                	push   $0xffffffff
404549:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40454c:	e8 09 f1 ff ff       	call   0x40365a
404551:	6a 06                	push   $0x6
404553:	8b f0                	mov    %eax,%esi
404555:	59                   	pop    %ecx
404556:	8b 45 08             	mov    0x8(%ebp),%eax
404559:	8b f8                	mov    %eax,%edi
40455b:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40455d:	5f                   	pop    %edi
40455e:	5e                   	pop    %esi
40455f:	c9                   	leave
404560:	c2 20 00             	ret    $0x20
404563:	56                   	push   %esi
404564:	8b f1                	mov    %ecx,%esi
404566:	8b 46 50             	mov    0x50(%esi),%eax
404569:	85 c0                	test   %eax,%eax
40456b:	74 1e                	je     0x40458b
40456d:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
404571:	03 c9                	add    %ecx,%ecx
404573:	51                   	push   %ecx
404574:	6a 00                	push   $0x0
404576:	ff 74 24 10          	push   0x10(%esp)
40457a:	50                   	push   %eax
40457b:	e8 44 1e 00 00       	call   0x4063c4
404580:	83 c4 10             	add    $0x10,%esp
404583:	85 c0                	test   %eax,%eax
404585:	75 04                	jne    0x40458b
404587:	8b c6                	mov    %esi,%eax
404589:	eb 02                	jmp    0x40458d
40458b:	33 c0                	xor    %eax,%eax
40458d:	5e                   	pop    %esi
40458e:	c2 08 00             	ret    $0x8
404591:	56                   	push   %esi
404592:	8d 71 fc             	lea    -0x4(%ecx),%esi
404595:	8b ce                	mov    %esi,%ecx
404597:	e8 ba f5 ff ff       	call   0x403b56
40459c:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
4045a1:	74 07                	je     0x4045aa
4045a3:	56                   	push   %esi
4045a4:	e8 d8 09 00 00       	call   0x404f81
4045a9:	59                   	pop    %ecx
4045aa:	8b c6                	mov    %esi,%eax
4045ac:	5e                   	pop    %esi
4045ad:	c2 04 00             	ret    $0x4
4045b0:	56                   	push   %esi
4045b1:	8b f1                	mov    %ecx,%esi
4045b3:	e8 9e f8 ff ff       	call   0x403e56
4045b8:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
4045bd:	74 07                	je     0x4045c6
4045bf:	56                   	push   %esi
4045c0:	e8 bc 09 00 00       	call   0x404f81
4045c5:	59                   	pop    %ecx
4045c6:	8b c6                	mov    %esi,%eax
4045c8:	5e                   	pop    %esi
4045c9:	c2 04 00             	ret    $0x4
4045cc:	56                   	push   %esi
4045cd:	8d 71 f8             	lea    -0x8(%ecx),%esi
4045d0:	8b ce                	mov    %esi,%ecx
4045d2:	e8 3b f5 ff ff       	call   0x403b12
4045d7:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
4045dc:	74 07                	je     0x4045e5
4045de:	56                   	push   %esi
4045df:	e8 9d 09 00 00       	call   0x404f81
4045e4:	59                   	pop    %ecx
4045e5:	8b c6                	mov    %esi,%eax
4045e7:	5e                   	pop    %esi
4045e8:	c2 04 00             	ret    $0x4
4045eb:	56                   	push   %esi
4045ec:	8b f1                	mov    %ecx,%esi
4045ee:	e8 95 f9 ff ff       	call   0x403f88
4045f3:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
4045f8:	74 07                	je     0x404601
4045fa:	56                   	push   %esi
4045fb:	e8 81 09 00 00       	call   0x404f81
404600:	59                   	pop    %ecx
404601:	8b c6                	mov    %esi,%eax
404603:	5e                   	pop    %esi
404604:	c2 04 00             	ret    $0x4
404607:	56                   	push   %esi
404608:	8b f1                	mov    %ecx,%esi
40460a:	e8 f5 fa ff ff       	call   0x404104
40460f:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
404614:	74 07                	je     0x40461d
404616:	56                   	push   %esi
404617:	e8 65 09 00 00       	call   0x404f81
40461c:	59                   	pop    %ecx
40461d:	8b c6                	mov    %esi,%eax
40461f:	5e                   	pop    %esi
404620:	c2 04 00             	ret    $0x4
404623:	8b 44 24 04          	mov    0x4(%esp),%eax
404627:	56                   	push   %esi
404628:	8b f1                	mov    %ecx,%esi
40462a:	6a 20                	push   $0x20
40462c:	83 66 2c 00          	andl   $0x0,0x2c(%esi)
404630:	89 46 28             	mov    %eax,0x28(%esi)
404633:	e8 13 0e 00 00       	call   0x40544b
404638:	59                   	pop    %ecx
404639:	66 89 46 30          	mov    %ax,0x30(%esi)
40463d:	8b ce                	mov    %esi,%ecx
40463f:	e8 3c 05 00 00       	call   0x404b80
404644:	83 7e 28 00          	cmpl   $0x0,0x28(%esi)
404648:	75 11                	jne    0x40465b
40464a:	8b 46 04             	mov    0x4(%esi),%eax
40464d:	6a 00                	push   $0x0
40464f:	0c 04                	or     $0x4,%al
404651:	8b ce                	mov    %esi,%ecx
404653:	0c 04                	or     $0x4,%al
404655:	50                   	push   %eax
404656:	e8 db 01 00 00       	call   0x404836
40465b:	80 7c 24 0c 00       	cmpb   $0x0,0xc(%esp)
404660:	74 07                	je     0x404669
404662:	8b ce                	mov    %esi,%ecx
404664:	e8 c9 04 00 00       	call   0x404b32
404669:	5e                   	pop    %esi
40466a:	c2 08 00             	ret    $0x8
40466d:	8b 41 2c             	mov    0x2c(%ecx),%eax
404670:	8b 54 24 04          	mov    0x4(%esp),%edx
404674:	29 10                	sub    %edx,(%eax)
404676:	8b 41 1c             	mov    0x1c(%ecx),%eax
404679:	8d 0c 12             	lea    (%edx,%edx,1),%ecx
40467c:	01 08                	add    %ecx,(%eax)
40467e:	c2 04 00             	ret    $0x4
404681:	8b 41 2c             	mov    0x2c(%ecx),%eax
404684:	ff 00                	incl   (%eax)
404686:	8b 41 1c             	mov    0x1c(%ecx),%eax
404689:	83 00 fe             	addl   $0xfffffffe,(%eax)
40468c:	8b 41 1c             	mov    0x1c(%ecx),%eax
40468f:	8b 00                	mov    (%eax),%eax
404691:	c3                   	ret
404692:	8b 41 2c             	mov    0x2c(%ecx),%eax
404695:	ff 08                	decl   (%eax)
404697:	8b 49 1c             	mov    0x1c(%ecx),%ecx
40469a:	8b 01                	mov    (%ecx),%eax
40469c:	8d 50 02             	lea    0x2(%eax),%edx
40469f:	89 11                	mov    %edx,(%ecx)
4046a1:	c3                   	ret
4046a2:	8b 41 30             	mov    0x30(%ecx),%eax
4046a5:	8b 54 24 04          	mov    0x4(%esp),%edx
4046a9:	29 10                	sub    %edx,(%eax)
4046ab:	8b 41 20             	mov    0x20(%ecx),%eax
4046ae:	8d 0c 12             	lea    (%edx,%edx,1),%ecx
4046b1:	01 08                	add    %ecx,(%eax)
4046b3:	c2 04 00             	ret    $0x4
4046b6:	8b 41 30             	mov    0x30(%ecx),%eax
4046b9:	ff 08                	decl   (%eax)
4046bb:	8b 49 20             	mov    0x20(%ecx),%ecx
4046be:	8b 01                	mov    (%ecx),%eax
4046c0:	8d 50 02             	lea    0x2(%eax),%edx
4046c3:	89 11                	mov    %edx,(%ecx)
4046c5:	c3                   	ret
4046c6:	56                   	push   %esi
4046c7:	8b f1                	mov    %ecx,%esi
4046c9:	8b 46 50             	mov    0x50(%esi),%eax
4046cc:	85 c0                	test   %eax,%eax
4046ce:	74 19                	je     0x4046e9
4046d0:	50                   	push   %eax
4046d1:	e8 9f 22 00 00       	call   0x406975
4046d6:	85 c0                	test   %eax,%eax
4046d8:	59                   	pop    %ecx
4046d9:	75 0e                	jne    0x4046e9
4046db:	6a 02                	push   $0x2
4046dd:	50                   	push   %eax
4046de:	8b ce                	mov    %esi,%ecx
4046e0:	e8 08 00 00 00       	call   0x4046ed
4046e5:	8b c6                	mov    %esi,%eax
4046e7:	5e                   	pop    %esi
4046e8:	c3                   	ret
4046e9:	33 c0                	xor    %eax,%eax
4046eb:	5e                   	pop    %esi
4046ec:	c3                   	ret
4046ed:	83 7c 24 08 01       	cmpl   $0x1,0x8(%esp)
4046f2:	56                   	push   %esi
4046f3:	8b f1                	mov    %ecx,%esi
4046f5:	0f 94 c0             	sete   %al
4046f8:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
4046fd:	88 46 48             	mov    %al,0x48(%esi)
404700:	75 1b                	jne    0x40471d
404702:	57                   	push   %edi
404703:	8d 7e 4c             	lea    0x4c(%esi),%edi
404706:	8b cf                	mov    %edi,%ecx
404708:	e8 9b e7 ff ff       	call   0x402ea8
40470d:	85 ff                	test   %edi,%edi
40470f:	74 07                	je     0x404718
404711:	8b cf                	mov    %edi,%ecx
404713:	e8 3c e7 ff ff       	call   0x402e54
404718:	83 66 44 00          	andl   $0x0,0x44(%esi)
40471c:	5f                   	pop    %edi
40471d:	8b ce                	mov    %esi,%ecx
40471f:	e8 55 f1 ff ff       	call   0x403879
404724:	8b 44 24 08          	mov    0x8(%esp),%eax
404728:	89 46 50             	mov    %eax,0x50(%esi)
40472b:	a1 54 1b 41 00       	mov    0x411b54,%eax
404730:	89 46 40             	mov    %eax,0x40(%esi)
404733:	a1 54 1b 41 00       	mov    0x411b54,%eax
404738:	83 66 38 00          	andl   $0x0,0x38(%esi)
40473c:	89 46 3c             	mov    %eax,0x3c(%esi)
40473f:	5e                   	pop    %esi
404740:	c2 08 00             	ret    $0x8
404743:	f6 05 50 1b 41 00 01 	testb  $0x1,0x411b50
40474a:	75 07                	jne    0x404753
40474c:	80 0d 50 1b 41 00 01 	orb    $0x1,0x411b50
404753:	e8 15 00 00 00       	call   0x40476d
404758:	f6 05 58 1b 41 00 01 	testb  $0x1,0x411b58
40475f:	75 07                	jne    0x404768
404761:	80 0d 58 1b 41 00 01 	orb    $0x1,0x411b58
404768:	e9 0c 00 00 00       	jmp    0x404779
40476d:	68 d0 28 40 00       	push   $0x4028d0
404772:	e8 93 0d 00 00       	call   0x40550a
404777:	59                   	pop    %ecx
404778:	c3                   	ret
404779:	68 07 3a 40 00       	push   $0x403a07
40477e:	e8 87 0d 00 00       	call   0x40550a
404783:	59                   	pop    %ecx
404784:	c3                   	ret
404785:	a1 78 17 41 00       	mov    0x411778,%eax
40478a:	53                   	push   %ebx
40478b:	56                   	push   %esi
40478c:	57                   	push   %edi
40478d:	6a 02                	push   $0x2
40478f:	8b f1                	mov    %ecx,%esi
404791:	5f                   	pop    %edi
404792:	3b c7                	cmp    %edi,%eax
404794:	75 07                	jne    0x40479d
404796:	68 60 17 41 00       	push   $0x411760
40479b:	eb 5a                	jmp    0x4047f7
40479d:	85 c0                	test   %eax,%eax
40479f:	bb 60 17 41 00       	mov    $0x411760,%ebx
4047a4:	75 35                	jne    0x4047db
4047a6:	6a 01                	push   $0x1
4047a8:	68 78 17 41 00       	push   $0x411778
4047ad:	ff 15 c0 d0 40 00    	call   *0x40d0c0
4047b3:	85 c0                	test   %eax,%eax
4047b5:	75 1a                	jne    0x4047d1
4047b7:	53                   	push   %ebx
4047b8:	ff 15 bc d0 40 00    	call   *0x40d0bc
4047be:	68 03 48 40 00       	push   $0x404803
4047c3:	e8 42 0d 00 00       	call   0x40550a
4047c8:	59                   	pop    %ecx
4047c9:	89 3d 78 17 41 00    	mov    %edi,0x411778
4047cf:	eb 25                	jmp    0x4047f6
4047d1:	3b c7                	cmp    %edi,%eax
4047d3:	75 06                	jne    0x4047db
4047d5:	89 3d 78 17 41 00    	mov    %edi,0x411778
4047db:	83 3d 78 17 41 00 01 	cmpl   $0x1,0x411778
4047e2:	75 0a                	jne    0x4047ee
4047e4:	6a 01                	push   $0x1
4047e6:	ff 15 b8 d0 40 00    	call   *0x40d0b8
4047ec:	eb ed                	jmp    0x4047db
4047ee:	39 3d 78 17 41 00    	cmp    %edi,0x411778
4047f4:	75 07                	jne    0x4047fd
4047f6:	53                   	push   %ebx
4047f7:	ff 15 b4 d0 40 00    	call   *0x40d0b4
4047fd:	8b c6                	mov    %esi,%eax
4047ff:	5f                   	pop    %edi
404800:	5e                   	pop    %esi
404801:	5b                   	pop    %ebx
404802:	c3                   	ret
404803:	6a 03                	push   $0x3
404805:	68 78 17 41 00       	push   $0x411778
40480a:	ff 15 c0 d0 40 00    	call   *0x40d0c0
404810:	83 f8 02             	cmp    $0x2,%eax
404813:	75 0b                	jne    0x404820
404815:	68 60 17 41 00       	push   $0x411760
40481a:	ff 15 c4 d0 40 00    	call   *0x40d0c4
404820:	c3                   	ret
404821:	83 3d 78 17 41 00 02 	cmpl   $0x2,0x411778
404828:	75 0b                	jne    0x404835
40482a:	68 60 17 41 00       	push   $0x411760
40482f:	ff 15 c8 d0 40 00    	call   *0x40d0c8
404835:	c3                   	ret
404836:	b8 e0 c6 40 00       	mov    $0x40c6e0,%eax
40483b:	e8 00 15 00 00       	call   0x405d40
404840:	83 ec 2c             	sub    $0x2c,%esp
404843:	8b 45 08             	mov    0x8(%ebp),%eax
404846:	53                   	push   %ebx
404847:	83 e0 07             	and    $0x7,%eax
40484a:	89 41 04             	mov    %eax,0x4(%ecx)
40484d:	8b 49 08             	mov    0x8(%ecx),%ecx
404850:	23 c8                	and    %eax,%ecx
404852:	74 6f                	je     0x4048c3
404854:	33 db                	xor    %ebx,%ebx
404856:	38 5d 0c             	cmp    %bl,0xc(%ebp)
404859:	74 07                	je     0x404862
40485b:	53                   	push   %ebx
40485c:	53                   	push   %ebx
40485d:	e8 3b 26 00 00       	call   0x406e9d
404862:	f6 c1 04             	test   $0x4,%cl
404865:	56                   	push   %esi
404866:	74 07                	je     0x40486f
404868:	be 44 d3 40 00       	mov    $0x40d344,%esi
40486d:	eb 0f                	jmp    0x40487e
40486f:	f6 c1 02             	test   $0x2,%cl
404872:	be 30 d3 40 00       	mov    $0x40d330,%esi
404877:	75 05                	jne    0x40487e
404879:	be 20 d3 40 00       	mov    $0x40d320,%esi
40487e:	8a 45 0f             	mov    0xf(%ebp),%al
404881:	53                   	push   %ebx
404882:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
404885:	88 45 e4             	mov    %al,-0x1c(%ebp)
404888:	e8 51 ed ff ff       	call   0x4035de
40488d:	56                   	push   %esi
40488e:	e8 6d 21 00 00       	call   0x406a00
404893:	59                   	pop    %ecx
404894:	50                   	push   %eax
404895:	56                   	push   %esi
404896:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
404899:	e8 a6 ef ff ff       	call   0x403844
40489e:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4048a1:	8d 4d c8             	lea    -0x38(%ebp),%ecx
4048a4:	50                   	push   %eax
4048a5:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4048a8:	e8 25 00 00 00       	call   0x4048d2
4048ad:	8d 45 c8             	lea    -0x38(%ebp),%eax
4048b0:	68 d8 e3 40 00       	push   $0x40e3d8
4048b5:	50                   	push   %eax
4048b6:	c7 45 c8 14 d3 40 00 	movl   $0x40d314,-0x38(%ebp)
4048bd:	e8 db 25 00 00       	call   0x406e9d
4048c2:	5e                   	pop    %esi
4048c3:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4048c6:	5b                   	pop    %ebx
4048c7:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4048ce:	c9                   	leave
4048cf:	c2 08 00             	ret    $0x8
4048d2:	b8 f4 c6 40 00       	mov    $0x40c6f4,%eax
4048d7:	e8 64 14 00 00       	call   0x405d40
4048dc:	51                   	push   %ecx
4048dd:	51                   	push   %ecx
4048de:	53                   	push   %ebx
4048df:	56                   	push   %esi
4048e0:	8d 45 f0             	lea    -0x10(%ebp),%eax
4048e3:	57                   	push   %edi
4048e4:	8b f1                	mov    %ecx,%esi
4048e6:	50                   	push   %eax
4048e7:	89 75 ec             	mov    %esi,-0x14(%ebp)
4048ea:	c7 45 f0 64 d3 40 00 	movl   $0x40d364,-0x10(%ebp)
4048f1:	e8 fd 24 00 00       	call   0x406df3
4048f6:	8b 5d 08             	mov    0x8(%ebp),%ebx
4048f9:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)