4045a7:	5d                   	pop    %ebp
4045a8:	c3                   	ret
4045a9:	8b 40 04             	mov    0x4(%eax),%eax
4045ac:	5d                   	pop    %ebp
4045ad:	c3                   	ret
4045ae:	cc                   	int3
4045af:	cc                   	int3
4045b0:	e8 c5 02 00 00       	call   0x40487a
4045b5:	6a 02                	push   $0x2
4045b7:	a3 08 81 40 00       	mov    %eax,0x408108
4045bc:	e8 d7 05 00 00       	call   0x404b98
4045c1:	50                   	push   %eax
4045c2:	ff 15 48 91 40 00    	call   *0x409148
4045c8:	83 0d cc 84 40 00 ff 	orl    $0xffffffff,0x4084cc
4045cf:	83 0d d0 84 40 00 ff 	orl    $0xffffffff,0x4084d0
4045d6:	59                   	pop    %ecx
4045d7:	59                   	pop    %ecx
4045d8:	ff 15 24 91 40 00    	call   *0x409124
4045de:	8b 0d 1c 81 40 00    	mov    0x40811c,%ecx
4045e4:	89 08                	mov    %ecx,(%eax)
4045e6:	ff 15 10 91 40 00    	call   *0x409110
4045ec:	8b 0d 10 81 40 00    	mov    0x408110,%ecx
4045f2:	89 08                	mov    %ecx,(%eax)
4045f4:	e8 e7 05 00 00       	call   0x404be0
4045f9:	83 3d c8 80 40 00 00 	cmpl   $0x0,0x4080c8
404600:	75 0c                	jne    0x40460e
404602:	68 e0 4b 40 00       	push   $0x404be0
404607:	ff 15 1c 91 40 00    	call   *0x40911c
40460d:	59                   	pop    %ecx
40460e:	e8 ba 07 00 00       	call   0x404dcd
404613:	33 c0                	xor    %eax,%eax
404615:	c3                   	ret
404616:	cc                   	int3
404617:	cc                   	int3
404618:	cc                   	int3
404619:	cc                   	int3
40461a:	cc                   	int3
40461b:	cc                   	int3
40461c:	cc                   	int3
40461d:	cc                   	int3
40461e:	cc                   	int3
40461f:	cc                   	int3
404620:	a1 18 81 40 00       	mov    0x408118,%eax
404625:	68 0c 81 40 00       	push   $0x40810c
40462a:	ff 35 14 81 40 00    	push   0x408114
404630:	a3 0c 81 40 00       	mov    %eax,0x40810c
404635:	68 00 81 40 00       	push   $0x408100
40463a:	68 fc 80 40 00       	push   $0x4080fc
40463f:	68 f8 80 40 00       	push   $0x4080f8
404644:	ff 15 4c 91 40 00    	call   *0x40914c
40464a:	83 c4 14             	add    $0x14,%esp
40464d:	a3 04 81 40 00       	mov    %eax,0x408104
404652:	c3                   	ret
404653:	cc                   	int3
404654:	cc                   	int3
404655:	cc                   	int3
404656:	cc                   	int3
404657:	cc                   	int3
404658:	cc                   	int3
404659:	cc                   	int3
40465a:	cc                   	int3
40465b:	cc                   	int3
40465c:	cc                   	int3
40465d:	cc                   	int3
40465e:	cc                   	int3
40465f:	cc                   	int3
404660:	e8 d0 06 00 00       	call   0x404d35
404665:	e9 00 00 00 00       	jmp    0x40466a
40466a:	6a 58                	push   $0x58
40466c:	68 c0 56 40 00       	push   $0x4056c0
404671:	e8 72 07 00 00       	call   0x404de8
404676:	33 db                	xor    %ebx,%ebx
404678:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40467b:	8d 45 98             	lea    -0x68(%ebp),%eax
40467e:	50                   	push   %eax
40467f:	ff 15 70 90 40 00    	call   *0x409070
404685:	89 5d fc             	mov    %ebx,-0x4(%ebp)
404688:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
40468e:	8b 70 04             	mov    0x4(%eax),%esi
404691:	8b fb                	mov    %ebx,%edi
404693:	ba c4 84 40 00       	mov    $0x4084c4,%edx
404698:	8b ce                	mov    %esi,%ecx
40469a:	33 c0                	xor    %eax,%eax
40469c:	f0 0f b1 0a          	lock cmpxchg %ecx,(%edx)
4046a0:	85 c0                	test   %eax,%eax
4046a2:	74 18                	je     0x4046bc
4046a4:	3b c6                	cmp    %esi,%eax
4046a6:	75 07                	jne    0x4046af
4046a8:	33 f6                	xor    %esi,%esi
4046aa:	46                   	inc    %esi
4046ab:	8b fe                	mov    %esi,%edi
4046ad:	eb 10                	jmp    0x4046bf
4046af:	68 e8 03 00 00       	push   $0x3e8
4046b4:	ff 15 a4 90 40 00    	call   *0x4090a4
4046ba:	eb d7                	jmp    0x404693
4046bc:	33 f6                	xor    %esi,%esi
4046be:	46                   	inc    %esi
4046bf:	39 35 c8 84 40 00    	cmp    %esi,0x4084c8
4046c5:	75 0a                	jne    0x4046d1
4046c7:	6a 1f                	push   $0x1f
4046c9:	e8 00 05 00 00       	call   0x404bce
4046ce:	59                   	pop    %ecx
4046cf:	eb 3a                	jmp    0x40470b
4046d1:	39 1d c8 84 40 00    	cmp    %ebx,0x4084c8
4046d7:	75 2c                	jne    0x404705
4046d9:	89 35 c8 84 40 00    	mov    %esi,0x4084c8
4046df:	68 88 16 40 00       	push   $0x401688
4046e4:	68 7c 16 40 00       	push   $0x40167c
4046e9:	e8 5b 01 00 00       	call   0x404849
4046ee:	59                   	pop    %ecx
4046ef:	59                   	pop    %ecx
4046f0:	85 c0                	test   %eax,%eax
4046f2:	74 17                	je     0x40470b
4046f4:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4046fb:	b8 ff 00 00 00       	mov    $0xff,%eax
404700:	e9 34 01 00 00       	jmp    0x404839
404705:	89 35 f4 80 40 00    	mov    %esi,0x4080f4
40470b:	39 35 c8 84 40 00    	cmp    %esi,0x4084c8
404711:	75 1b                	jne    0x40472e
404713:	68 78 16 40 00       	push   $0x401678
404718:	68 64 16 40 00       	push   $0x401664
40471d:	e8 be 06 00 00       	call   0x404de0
404722:	59                   	pop    %ecx
404723:	59                   	pop    %ecx
404724:	c7 05 c8 84 40 00 02 	movl   $0x2,0x4084c8
40472b:	00 00 00
40472e:	85 ff                	test   %edi,%edi
404730:	75 09                	jne    0x40473b
404732:	33 c0                	xor    %eax,%eax
404734:	b9 c4 84 40 00       	mov    $0x4084c4,%ecx
404739:	87 01                	xchg   %eax,(%ecx)
40473b:	83 3d d4 84 40 00 00 	cmpl   $0x0,0x4084d4
404742:	74 23                	je     0x404767
404744:	68 d4 84 40 00       	push   $0x4084d4
404749:	e8 f2 04 00 00       	call   0x404c40
40474e:	59                   	pop    %ecx
40474f:	85 c0                	test   %eax,%eax
404751:	74 14                	je     0x404767
404753:	53                   	push   %ebx
404754:	6a 02                	push   $0x2
404756:	53                   	push   %ebx
404757:	8b 35 d4 84 40 00    	mov    0x4084d4,%esi
40475d:	8b ce                	mov    %esi,%ecx
40475f:	ff 15 5c 91 40 00    	call   *0x40915c
404765:	ff d6                	call   *%esi
404767:	a1 0c 91 40 00       	mov    0x40910c,%eax
40476c:	8b 30                	mov    (%eax),%esi
40476e:	89 75 e4             	mov    %esi,-0x1c(%ebp)
404771:	8b 7d e0             	mov    -0x20(%ebp),%edi
404774:	8a 0e                	mov    (%esi),%cl
404776:	80 f9 20             	cmp    $0x20,%cl
404779:	77 4a                	ja     0x4047c5
40477b:	84 c9                	test   %cl,%cl
40477d:	74 15                	je     0x404794
40477f:	85 ff                	test   %edi,%edi
404781:	75 42                	jne    0x4047c5
404783:	84 c9                	test   %cl,%cl
404785:	74 0d                	je     0x404794
404787:	80 f9 20             	cmp    $0x20,%cl
40478a:	77 08                	ja     0x404794
40478c:	46                   	inc    %esi
40478d:	89 75 e4             	mov    %esi,-0x1c(%ebp)
404790:	8a 0e                	mov    (%esi),%cl
404792:	eb ef                	jmp    0x404783
404794:	f6 45 c4 01          	testb  $0x1,-0x3c(%ebp)
404798:	74 06                	je     0x4047a0
40479a:	0f b7 45 c8          	movzwl -0x38(%ebp),%eax
40479e:	eb 03                	jmp    0x4047a3
4047a0:	6a 0a                	push   $0xa
4047a2:	58                   	pop    %eax
4047a3:	50                   	push   %eax
4047a4:	56                   	push   %esi
4047a5:	53                   	push   %ebx
4047a6:	68 00 00 40 00       	push   $0x400000
4047ab:	e8 0e f2 ff ff       	call   0x4039be
4047b0:	a3 f0 80 40 00       	mov    %eax,0x4080f0
4047b5:	83 3d 08 81 40 00 00 	cmpl   $0x0,0x408108
4047bc:	75 60                	jne    0x40481e
4047be:	50                   	push   %eax
4047bf:	ff 15 44 91 40 00    	call   *0x409144
4047c5:	80 f9 22             	cmp    $0x22,%cl
4047c8:	75 0c                	jne    0x4047d6
4047ca:	33 c0                	xor    %eax,%eax
4047cc:	85 ff                	test   %edi,%edi
4047ce:	0f 94 c0             	sete   %al
4047d1:	8b f8                	mov    %eax,%edi
4047d3:	89 7d e0             	mov    %edi,-0x20(%ebp)
4047d6:	0f b6 c1             	movzbl %cl,%eax
4047d9:	50                   	push   %eax
4047da:	ff 15 20 91 40 00    	call   *0x409120
4047e0:	59                   	pop    %ecx
4047e1:	85 c0                	test   %eax,%eax
4047e3:	74 04                	je     0x4047e9
4047e5:	46                   	inc    %esi
4047e6:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4047e9:	46                   	inc    %esi
4047ea:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4047ed:	eb 85                	jmp    0x404774
4047ef:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4047f2:	8b 01                	mov    (%ecx),%eax
4047f4:	8b 00                	mov    (%eax),%eax
4047f6:	89 45 dc             	mov    %eax,-0x24(%ebp)
4047f9:	51                   	push   %ecx
4047fa:	50                   	push   %eax
4047fb:	e8 1e 03 00 00       	call   0x404b1e
404800:	59                   	pop    %ecx
404801:	59                   	pop    %ecx
404802:	c3                   	ret
404803:	8b 65 e8             	mov    -0x18(%ebp),%esp
404806:	8b 45 dc             	mov    -0x24(%ebp),%eax
404809:	a3 f0 80 40 00       	mov    %eax,0x4080f0
40480e:	83 3d 08 81 40 00 00 	cmpl   $0x0,0x408108
404815:	75 07                	jne    0x40481e
404817:	50                   	push   %eax
404818:	ff 15 40 91 40 00    	call   *0x409140
40481e:	83 3d f4 80 40 00 00 	cmpl   $0x0,0x4080f4
404825:	75 0b                	jne    0x404832
404827:	ff 15 3c 91 40 00    	call   *0x40913c
40482d:	a1 f0 80 40 00       	mov    0x4080f0,%eax
404832:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
404839:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40483c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
404843:	59                   	pop    %ecx
404844:	5f                   	pop    %edi
404845:	5e                   	pop    %esi
404846:	5b                   	pop    %ebx
404847:	c9                   	leave
404848:	c3                   	ret
404849:	8b ff                	mov    %edi,%edi
40484b:	55                   	push   %ebp
40484c:	8b ec                	mov    %esp,%ebp
40484e:	56                   	push   %esi
40484f:	8b 75 08             	mov    0x8(%ebp),%esi
404852:	33 c0                	xor    %eax,%eax
404854:	3b 75 0c             	cmp    0xc(%ebp),%esi
404857:	73 1e                	jae    0x404877
404859:	57                   	push   %edi
40485a:	85 c0                	test   %eax,%eax
40485c:	75 18                	jne    0x404876
40485e:	8b 3e                	mov    (%esi),%edi
404860:	85 ff                	test   %edi,%edi
404862:	74 0a                	je     0x40486e
404864:	8b cf                	mov    %edi,%ecx
404866:	ff 15 5c 91 40 00    	call   *0x40915c
40486c:	ff d7                	call   *%edi
40486e:	83 c6 04             	add    $0x4,%esi
404871:	3b 75 0c             	cmp    0xc(%ebp),%esi
404874:	72 e4                	jb     0x40485a
404876:	5f                   	pop    %edi
404877:	5e                   	pop    %esi
404878:	5d                   	pop    %ebp
404879:	c3                   	ret
40487a:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
40487f:	66 39 05 00 00 40 00 	cmp    %ax,0x400000
404886:	75 55                	jne    0x4048dd
404888:	8b 0d 3c 00 40 00    	mov    0x40003c,%ecx
40488e:	81 b9 00 00 40 00 50 	cmpl   $0x4550,0x400000(%ecx)
404895:	45 00 00
404898:	75 43                	jne    0x4048dd
40489a:	0f b7 81 18 00 40 00 	movzwl 0x400018(%ecx),%eax
4048a1:	ba 0b 01 00 00       	mov    $0x10b,%edx
4048a6:	66 3b c2             	cmp    %dx,%ax
4048a9:	74 1f                	je     0x4048ca
4048ab:	ba 0b 02 00 00       	mov    $0x20b,%edx
4048b0:	66 3b c2             	cmp    %dx,%ax
4048b3:	75 28                	jne    0x4048dd
4048b5:	83 b9 84 00 40 00 0e 	cmpl   $0xe,0x400084(%ecx)
4048bc:	76 1f                	jbe    0x4048dd
4048be:	33 c0                	xor    %eax,%eax
4048c0:	39 81 f8 00 40 00    	cmp    %eax,0x4000f8(%ecx)
4048c6:	0f 95 c0             	setne  %al
4048c9:	c3                   	ret
4048ca:	83 b9 74 00 40 00 0e 	cmpl   $0xe,0x400074(%ecx)
4048d1:	76 0a                	jbe    0x4048dd
4048d3:	33 c0                	xor    %eax,%eax
4048d5:	39 81 e8 00 40 00    	cmp    %eax,0x4000e8(%ecx)
4048db:	eb e9                	jmp    0x4048c6
4048dd:	33 c0                	xor    %eax,%eax
4048df:	c3                   	ret
4048e0:	ff 25 f0 90 40 00    	jmp    *0x4090f0
4048e6:	cc                   	int3
4048e7:	cc                   	int3
4048e8:	cc                   	int3
4048e9:	cc                   	int3
4048ea:	cc                   	int3
4048eb:	cc                   	int3
4048ec:	cc                   	int3
4048ed:	cc                   	int3
4048ee:	cc                   	int3
4048ef:	cc                   	int3
4048f0:	3b 0d cc 80 40 00    	cmp    0x4080cc,%ecx
4048f6:	75 03                	jne    0x4048fb
4048f8:	c2 00 00             	ret    $0x0
4048fb:	e9 9f 05 00 00       	jmp    0x404e9f
404900:	ff 25 08 91 40 00    	jmp    *0x409108
404906:	cc                   	int3
404907:	cc                   	int3
404908:	cc                   	int3
404909:	cc                   	int3
40490a:	cc                   	int3
40490b:	cc                   	int3
40490c:	cc                   	int3
40490d:	cc                   	int3
40490e:	cc                   	int3
40490f:	cc                   	int3
404910:	8b ff                	mov    %edi,%edi
404912:	55                   	push   %ebp
404913:	8b ec                	mov    %esp,%ebp
404915:	56                   	push   %esi
404916:	8b f1                	mov    %ecx,%esi
404918:	ff 15 fc 90 40 00    	call   *0x4090fc
40491e:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
404922:	74 07                	je     0x40492b
404924:	56                   	push   %esi
404925:	e8 ca df ff ff       	call   0x4028f4
40492a:	59                   	pop    %ecx
40492b:	8b c6                	mov    %esi,%eax
40492d:	5e                   	pop    %esi
40492e:	5d                   	pop    %ebp
40492f:	c2 04 00             	ret    $0x4
404932:	cc                   	int3
404933:	cc                   	int3
404934:	cc                   	int3
404935:	cc                   	int3
404936:	cc                   	int3
404937:	cc                   	int3
404938:	cc                   	int3
404939:	cc                   	int3
40493a:	cc                   	int3
40493b:	cc                   	int3
40493c:	cc                   	int3
40493d:	cc                   	int3
40493e:	cc                   	int3
40493f:	cc                   	int3
404940:	ff 25 38 91 40 00    	jmp    *0x409138
404946:	6a 14                	push   $0x14
404948:	68 e0 56 40 00       	push   $0x4056e0
40494d:	e8 96 04 00 00       	call   0x404de8
404952:	83 65 dc 00          	andl   $0x0,-0x24(%ebp)
404956:	a1 d0 84 40 00       	mov    0x4084d0,%eax
40495b:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40495e:	83 f8 ff             	cmp    $0xffffffff,%eax
404961:	75 16                	jne    0x404979
404963:	ff 75 08             	push   0x8(%ebp)
404966:	8b 35 e4 90 40 00    	mov    0x4090e4,%esi
40496c:	8b ce                	mov    %esi,%ecx
40496e:	ff 15 5c 91 40 00    	call   *0x40915c
404974:	ff d6                	call   *%esi
404976:	59                   	pop    %ecx
404977:	eb 54                	jmp    0x4049cd