405558:	a5                   	movsl  %ds:(%esi),%es:(%edi)
405559:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40555a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40555b:	8d b4 24 a8 00 00 00 	lea    0xa8(%esp),%esi
405562:	8d 7c 24 74          	lea    0x74(%esp),%edi
405566:	a5                   	movsl  %ds:(%esi),%es:(%edi)
405567:	a5                   	movsl  %ds:(%esi),%es:(%edi)
405568:	a5                   	movsl  %ds:(%esi),%es:(%edi)
405569:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40556a:	8b fc                	mov    %esp,%edi
40556c:	89 84 24 84 00 00 00 	mov    %eax,0x84(%esp)
405573:	8d 74 24 48          	lea    0x48(%esp),%esi
405577:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
405579:	e8 f6 0b 00 00       	call   0x406174
40557e:	8b 4c 24 7c          	mov    0x7c(%esp),%ecx
405582:	5f                   	pop    %edi
405583:	5e                   	pop    %esi
405584:	33 cc                	xor    %esp,%ecx
405586:	e8 d5 48 00 00       	call   0x409e60
40558b:	8b e5                	mov    %ebp,%esp
40558d:	5d                   	pop    %ebp
40558e:	c2 40 00             	ret    $0x40
405591:	68 94 00 00 00       	push   $0x94
405596:	b8 53 ae 40 00       	mov    $0x40ae53,%eax
40559b:	e8 74 56 00 00       	call   0x40ac14
4055a0:	8b d9                	mov    %ecx,%ebx
4055a2:	8d 4d db             	lea    -0x25(%ebp),%ecx
4055a5:	e8 88 ea ff ff       	call   0x404032
4055aa:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4055ae:	8b 0b                	mov    (%ebx),%ecx
4055b0:	e8 27 fb ff ff       	call   0x4050dc
4055b5:	8b 4b 04             	mov    0x4(%ebx),%ecx
4055b8:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4055bb:	85 c9                	test   %ecx,%ecx
4055bd:	74 69                	je     0x405628
4055bf:	83 21 00             	andl   $0x0,(%ecx)
4055c2:	8d 73 0c             	lea    0xc(%ebx),%esi
4055c5:	8b 43 08             	mov    0x8(%ebx),%eax
4055c8:	8d 7d e0             	lea    -0x20(%ebp),%edi
4055cb:	89 45 dc             	mov    %eax,-0x24(%ebp)
4055ce:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4055cf:	6a 0c                	push   $0xc
4055d1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4055d2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4055d3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4055d4:	e8 1d 54 00 00       	call   0x40a9f6
4055d9:	8b f8                	mov    %eax,%edi
4055db:	59                   	pop    %ecx
4055dc:	89 7d d0             	mov    %edi,-0x30(%ebp)
4055df:	8b 73 3c             	mov    0x3c(%ebx),%esi
4055e2:	c7 07 4e 4f 62 6a    	movl   $0x6a624f4e,(%edi)
4055e8:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
4055eb:	83 c1 04             	add    $0x4,%ecx
4055ee:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
4055f2:	e8 cc f5 ff ff       	call   0x404bc3
4055f7:	8d 48 04             	lea    0x4(%eax),%ecx
4055fa:	51                   	push   %ecx
4055fb:	8d 45 dc             	lea    -0x24(%ebp),%eax
4055fe:	50                   	push   %eax
4055ff:	56                   	push   %esi
405600:	8d 43 2c             	lea    0x2c(%ebx),%eax
405603:	50                   	push   %eax
405604:	8d 43 1c             	lea    0x1c(%ebx),%eax
405607:	50                   	push   %eax
405608:	8d 47 04             	lea    0x4(%edi),%eax
40560b:	50                   	push   %eax
40560c:	e8 34 25 00 00       	call   0x407b45
405611:	80 7d db 00          	cmpb   $0x0,-0x25(%ebp)
405615:	8b 43 04             	mov    0x4(%ebx),%eax
405618:	89 38                	mov    %edi,(%eax)
40561a:	74 06                	je     0x405622
40561c:	ff 15 24 e0 40 00    	call   *0x40e024
405622:	e8 a8 55 00 00       	call   0x40abcf
405627:	c3                   	ret
405628:	a1 00 d0 40 00       	mov    0x40d000,%eax
40562d:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
405632:	74 19                	je     0x40564d
405634:	80 78 19 02          	cmpb   $0x2,0x19(%eax)
405638:	72 13                	jb     0x40564d
40563a:	68 dc 1d 40 00       	push   $0x401ddc
40563f:	ff 70 14             	push   0x14(%eax)
405642:	ff 70 10             	push   0x10(%eax)
405645:	6a 11                	push   $0x11
405647:	59                   	pop    %ecx
405648:	e8 12 fa ff ff       	call   0x40505f
40564d:	68 03 40 00 80       	push   $0x80004003
405652:	8d 8d 64 ff ff ff    	lea    -0x9c(%ebp),%ecx
405658:	e8 11 e8 ff ff       	call   0x403e6e
40565d:	68 a4 c6 40 00       	push   $0x40c6a4
405662:	8d 85 64 ff ff ff    	lea    -0x9c(%ebp),%eax
405668:	50                   	push   %eax
405669:	e8 cc 54 00 00       	call   0x40ab3a
40566e:	cc                   	int3
40566f:	cc                   	int3
405670:	8b ff                	mov    %edi,%edi
405672:	55                   	push   %ebp
405673:	8b ec                	mov    %esp,%ebp
405675:	5d                   	pop    %ebp
405676:	e9 4f 0b 00 00       	jmp    0x4061ca
40567b:	6a 70                	push   $0x70
40567d:	b8 83 ae 40 00       	mov    $0x40ae83,%eax
405682:	e8 59 55 00 00       	call   0x40abe0
405687:	8b f9                	mov    %ecx,%edi
405689:	8d 4d f3             	lea    -0xd(%ebp),%ecx
40568c:	e8 a1 e9 ff ff       	call   0x404032
405691:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405695:	8b 0f                	mov    (%edi),%ecx
405697:	85 c9                	test   %ecx,%ecx
405699:	74 42                	je     0x4056dd
40569b:	8b 09                	mov    (%ecx),%ecx
40569d:	e8 a3 fa ff ff       	call   0x405145
4056a2:	8b f0                	mov    %eax,%esi
4056a4:	85 f6                	test   %esi,%esi
4056a6:	74 18                	je     0x4056c0
4056a8:	8d 4e 04             	lea    0x4(%esi),%ecx
4056ab:	e8 89 09 00 00       	call   0x406039
4056b0:	81 0e 00 80 00 00    	orl    $0x8000,(%esi)
4056b6:	6a 0c                	push   $0xc
4056b8:	56                   	push   %esi
4056b9:	e8 81 4b 00 00       	call   0x40a23f
4056be:	59                   	pop    %ecx
4056bf:	59                   	pop    %ecx
4056c0:	8b 07                	mov    (%edi),%eax
4056c2:	83 20 00             	andl   $0x0,(%eax)
4056c5:	ff 15 1c e0 40 00    	call   *0x40e01c
4056cb:	80 7d f3 00          	cmpb   $0x0,-0xd(%ebp)
4056cf:	74 06                	je     0x4056d7
4056d1:	ff 15 24 e0 40 00    	call   *0x40e024
4056d7:	e8 de 54 00 00       	call   0x40abba
4056dc:	c3                   	ret
4056dd:	a1 00 d0 40 00       	mov    0x40d000,%eax
4056e2:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
4056e7:	74 19                	je     0x405702
4056e9:	80 78 19 02          	cmpb   $0x2,0x19(%eax)
4056ed:	72 13                	jb     0x405702
4056ef:	68 dc 1d 40 00       	push   $0x401ddc
4056f4:	ff 70 14             	push   0x14(%eax)
4056f7:	ff 70 10             	push   0x10(%eax)
4056fa:	6a 12                	push   $0x12
4056fc:	59                   	pop    %ecx
4056fd:	e8 5d f9 ff ff       	call   0x40505f
405702:	68 03 40 00 80       	push   $0x80004003
405707:	8d 4d 84             	lea    -0x7c(%ebp),%ecx
40570a:	e8 5f e7 ff ff       	call   0x403e6e
40570f:	68 a4 c6 40 00       	push   $0x40c6a4
405714:	8d 45 84             	lea    -0x7c(%ebp),%eax
405717:	50                   	push   %eax
405718:	e8 1d 54 00 00       	call   0x40ab3a
40571d:	cc                   	int3
40571e:	cc                   	int3
40571f:	cc                   	int3
405720:	8b ff                	mov    %edi,%edi
405722:	55                   	push   %ebp
405723:	8b ec                	mov    %esp,%ebp
405725:	83 e4 f8             	and    $0xfffffff8,%esp
405728:	ff 75 0c             	push   0xc(%ebp)
40572b:	ff 75 08             	push   0x8(%ebp)
40572e:	e8 e3 0a 00 00       	call   0x406216
405733:	8b e5                	mov    %ebp,%esp
405735:	5d                   	pop    %ebp
405736:	c2 08 00             	ret    $0x8
405739:	cc                   	int3
40573a:	cc                   	int3
40573b:	cc                   	int3
40573c:	cc                   	int3
40573d:	cc                   	int3
40573e:	cc                   	int3
40573f:	cc                   	int3
405740:	8b ff                	mov    %edi,%edi
405742:	55                   	push   %ebp
405743:	8b ec                	mov    %esp,%ebp
405745:	5d                   	pop    %ebp
405746:	e9 1a 0b 00 00       	jmp    0x406265
40574b:	cc                   	int3
40574c:	cc                   	int3
40574d:	cc                   	int3
40574e:	cc                   	int3
40574f:	cc                   	int3
405750:	8b ff                	mov    %edi,%edi
405752:	55                   	push   %ebp
405753:	8b ec                	mov    %esp,%ebp
405755:	5d                   	pop    %ebp
405756:	e9 56 0b 00 00       	jmp    0x4062b1
40575b:	cc                   	int3
40575c:	cc                   	int3
40575d:	cc                   	int3
40575e:	cc                   	int3
40575f:	cc                   	int3
405760:	8b ff                	mov    %edi,%edi
405762:	55                   	push   %ebp
405763:	8b ec                	mov    %esp,%ebp
405765:	5d                   	pop    %ebp
405766:	e9 92 0b 00 00       	jmp    0x4062fd
40576b:	cc                   	int3
40576c:	cc                   	int3
40576d:	cc                   	int3
40576e:	cc                   	int3
40576f:	cc                   	int3
405770:	8b ff                	mov    %edi,%edi
405772:	55                   	push   %ebp
405773:	8b ec                	mov    %esp,%ebp
405775:	83 ec 10             	sub    $0x10,%esp
405778:	8b 45 08             	mov    0x8(%ebp),%eax
40577b:	56                   	push   %esi
40577c:	57                   	push   %edi
40577d:	89 45 f0             	mov    %eax,-0x10(%ebp)
405780:	8d 75 f0             	lea    -0x10(%ebp),%esi
405783:	8b 45 0c             	mov    0xc(%ebp),%eax
405786:	83 ec 10             	sub    $0x10,%esp
405789:	89 45 f4             	mov    %eax,-0xc(%ebp)
40578c:	8b fc                	mov    %esp,%edi
40578e:	8b 45 10             	mov    0x10(%ebp),%eax
405791:	89 45 f8             	mov    %eax,-0x8(%ebp)
405794:	8b 45 14             	mov    0x14(%ebp),%eax
405797:	89 45 fc             	mov    %eax,-0x4(%ebp)
40579a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40579b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40579c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40579d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40579e:	e8 a6 0b 00 00       	call   0x406349
4057a3:	5f                   	pop    %edi
4057a4:	5e                   	pop    %esi
4057a5:	c9                   	leave
4057a6:	c2 10 00             	ret    $0x10
4057a9:	cc                   	int3
4057aa:	cc                   	int3
4057ab:	cc                   	int3
4057ac:	cc                   	int3
4057ad:	cc                   	int3
4057ae:	cc                   	int3
4057af:	cc                   	int3
4057b0:	8b ff                	mov    %edi,%edi
4057b2:	55                   	push   %ebp
4057b3:	8b ec                	mov    %esp,%ebp
4057b5:	83 ec 0c             	sub    $0xc,%esp
4057b8:	8b 45 08             	mov    0x8(%ebp),%eax
4057bb:	56                   	push   %esi
4057bc:	57                   	push   %edi
4057bd:	89 45 f4             	mov    %eax,-0xc(%ebp)
4057c0:	8d 75 f4             	lea    -0xc(%ebp),%esi
4057c3:	8b 45 0c             	mov    0xc(%ebp),%eax
4057c6:	83 ec 0c             	sub    $0xc,%esp
4057c9:	89 45 f8             	mov    %eax,-0x8(%ebp)
4057cc:	8b fc                	mov    %esp,%edi
4057ce:	8b 45 10             	mov    0x10(%ebp),%eax
4057d1:	89 45 fc             	mov    %eax,-0x4(%ebp)
4057d4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4057d5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4057d6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4057d7:	e8 c2 0b 00 00       	call   0x40639e
4057dc:	5f                   	pop    %edi
4057dd:	5e                   	pop    %esi
4057de:	c9                   	leave
4057df:	c2 0c 00             	ret    $0xc
4057e2:	cc                   	int3
4057e3:	cc                   	int3
4057e4:	cc                   	int3
4057e5:	cc                   	int3
4057e6:	cc                   	int3
4057e7:	cc                   	int3
4057e8:	cc                   	int3
4057e9:	cc                   	int3
4057ea:	cc                   	int3
4057eb:	cc                   	int3
4057ec:	cc                   	int3
4057ed:	cc                   	int3
4057ee:	cc                   	int3
4057ef:	cc                   	int3
4057f0:	8b ff                	mov    %edi,%edi
4057f2:	55                   	push   %ebp
4057f3:	8b ec                	mov    %esp,%ebp
4057f5:	5d                   	pop    %ebp
4057f6:	e9 f7 0b 00 00       	jmp    0x4063f2
4057fb:	cc                   	int3
4057fc:	cc                   	int3
4057fd:	cc                   	int3
4057fe:	cc                   	int3
4057ff:	cc                   	int3
405800:	8b ff                	mov    %edi,%edi
405802:	55                   	push   %ebp
405803:	8b ec                	mov    %esp,%ebp
405805:	83 ec 30             	sub    $0x30,%esp
405808:	a1 50 d1 40 00       	mov    0x40d150,%eax
40580d:	33 c5                	xor    %ebp,%eax
40580f:	89 45 fc             	mov    %eax,-0x4(%ebp)
405812:	56                   	push   %esi
405813:	57                   	push   %edi
405814:	8b 45 08             	mov    0x8(%ebp),%eax
405817:	8d 75 10             	lea    0x10(%ebp),%esi
40581a:	8d 7d ec             	lea    -0x14(%ebp),%edi
40581d:	89 45 d0             	mov    %eax,-0x30(%ebp)
405820:	a5                   	movsl  %ds:(%esi),%es:(%edi)
405821:	83 ec 1c             	sub    $0x1c,%esp
405824:	8b 45 20             	mov    0x20(%ebp),%eax
405827:	a5                   	movsl  %ds:(%esi),%es:(%edi)
405828:	6a 07                	push   $0x7
40582a:	59                   	pop    %ecx
40582b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40582c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40582d:	8d 75 ec             	lea    -0x14(%ebp),%esi
405830:	8d 7d d4             	lea    -0x2c(%ebp),%edi
405833:	a5                   	movsl  %ds:(%esi),%es:(%edi)
405834:	a5                   	movsl  %ds:(%esi),%es:(%edi)
405835:	a5                   	movsl  %ds:(%esi),%es:(%edi)
405836:	a5                   	movsl  %ds:(%esi),%es:(%edi)
405837:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40583a:	8d 75 d0             	lea    -0x30(%ebp),%esi
40583d:	8b 45 0c             	mov    0xc(%ebp),%eax
405840:	8b fc                	mov    %esp,%edi
405842:	89 45 e8             	mov    %eax,-0x18(%ebp)
405845:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
405847:	e8 f2 0b 00 00       	call   0x40643e
40584c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40584f:	5f                   	pop    %edi
405850:	33 cd                	xor    %ebp,%ecx
405852:	5e                   	pop    %esi
405853:	e8 08 46 00 00       	call   0x409e60
405858:	c9                   	leave
405859:	c2 1c 00             	ret    $0x1c
40585c:	68 94 00 00 00       	push   $0x94
405861:	b8 ae ae 40 00       	mov    $0x40aeae,%eax
405866:	e8 a9 53 00 00       	call   0x40ac14
40586b:	8b d9                	mov    %ecx,%ebx
40586d:	8d 4d df             	lea    -0x21(%ebp),%ecx
405870:	e8 bd e7 ff ff       	call   0x404032
405875:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405879:	8b 0b                	mov    (%ebx),%ecx
40587b:	e8 c5 f8 ff ff       	call   0x405145
405880:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
405884:	8b f8                	mov    %eax,%edi
405886:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40588a:	8d 45 e8             	lea    -0x18(%ebp),%eax
40588d:	8b 4f 04             	mov    0x4(%edi),%ecx
405890:	50                   	push   %eax
405891:	8d 43 04             	lea    0x4(%ebx),%eax
405894:	50                   	push   %eax
405895:	8b 91 80 00 00 00    	mov    0x80(%ecx),%edx
40589b:	52                   	push   %edx
40589c:	8b 0a                	mov    (%edx),%ecx
40589e:	8b 71 28             	mov    0x28(%ecx),%esi
4058a1:	8b ce                	mov    %esi,%ecx
4058a3:	ff 15 f0 e1 40 00    	call   *0x40e1f0
4058a9:	ff d6                	call   *%esi
4058ab:	8b f0                	mov    %eax,%esi
4058ad:	85 f6                	test   %esi,%esi
4058af:	78 79                	js     0x40592a
4058b1:	8b 4f 04             	mov    0x4(%edi),%ecx
4058b4:	33 d2                	xor    %edx,%edx
4058b6:	8b 43 18             	mov    0x18(%ebx),%eax
4058b9:	83 c1 28             	add    $0x28,%ecx