405576:	74 ee                	je     0x405566
405578:	8a 0e                	mov    (%esi),%cl
40557a:	88 0a                	mov    %cl,(%edx)
40557c:	42                   	inc    %edx
40557d:	46                   	inc    %esi
40557e:	3a cb                	cmp    %bl,%cl
405580:	74 03                	je     0x405585
405582:	4f                   	dec    %edi
405583:	75 f3                	jne    0x405578
405585:	3b fb                	cmp    %ebx,%edi
405587:	75 10                	jne    0x405599
405589:	88 18                	mov    %bl,(%eax)
40558b:	e8 c9 f5 ff ff       	call   0x404b59
405590:	6a 22                	push   $0x22
405592:	59                   	pop    %ecx
405593:	89 08                	mov    %ecx,(%eax)
405595:	8b f1                	mov    %ecx,%esi
405597:	eb b5                	jmp    0x40554e
405599:	33 c0                	xor    %eax,%eax
40559b:	5f                   	pop    %edi
40559c:	5e                   	pop    %esi
40559d:	5b                   	pop    %ebx
40559e:	5d                   	pop    %ebp
40559f:	c3                   	ret
4055a0:	8b ff                	mov    %edi,%edi
4055a2:	55                   	push   %ebp
4055a3:	8b ec                	mov    %esp,%ebp
4055a5:	53                   	push   %ebx
4055a6:	56                   	push   %esi
4055a7:	8b 75 08             	mov    0x8(%ebp),%esi
4055aa:	33 db                	xor    %ebx,%ebx
4055ac:	57                   	push   %edi
4055ad:	39 5d 14             	cmp    %ebx,0x14(%ebp)
4055b0:	75 10                	jne    0x4055c2
4055b2:	3b f3                	cmp    %ebx,%esi
4055b4:	75 10                	jne    0x4055c6
4055b6:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
4055b9:	75 12                	jne    0x4055cd
4055bb:	33 c0                	xor    %eax,%eax
4055bd:	5f                   	pop    %edi
4055be:	5e                   	pop    %esi
4055bf:	5b                   	pop    %ebx
4055c0:	5d                   	pop    %ebp
4055c1:	c3                   	ret
4055c2:	3b f3                	cmp    %ebx,%esi
4055c4:	74 07                	je     0x4055cd
4055c6:	8b 7d 0c             	mov    0xc(%ebp),%edi
4055c9:	3b fb                	cmp    %ebx,%edi
4055cb:	77 1b                	ja     0x4055e8
4055cd:	e8 87 f5 ff ff       	call   0x404b59
4055d2:	6a 16                	push   $0x16
4055d4:	5e                   	pop    %esi
4055d5:	89 30                	mov    %esi,(%eax)
4055d7:	53                   	push   %ebx
4055d8:	53                   	push   %ebx
4055d9:	53                   	push   %ebx
4055da:	53                   	push   %ebx
4055db:	53                   	push   %ebx
4055dc:	e8 10 f5 ff ff       	call   0x404af1
4055e1:	83 c4 14             	add    $0x14,%esp
4055e4:	8b c6                	mov    %esi,%eax
4055e6:	eb d5                	jmp    0x4055bd
4055e8:	39 5d 14             	cmp    %ebx,0x14(%ebp)
4055eb:	75 04                	jne    0x4055f1
4055ed:	88 1e                	mov    %bl,(%esi)
4055ef:	eb ca                	jmp    0x4055bb
4055f1:	8b 55 10             	mov    0x10(%ebp),%edx
4055f4:	3b d3                	cmp    %ebx,%edx
4055f6:	75 04                	jne    0x4055fc
4055f8:	88 1e                	mov    %bl,(%esi)
4055fa:	eb d1                	jmp    0x4055cd
4055fc:	83 7d 14 ff          	cmpl   $0xffffffff,0x14(%ebp)
405600:	8b c6                	mov    %esi,%eax
405602:	75 0f                	jne    0x405613
405604:	8a 0a                	mov    (%edx),%cl
405606:	88 08                	mov    %cl,(%eax)
405608:	40                   	inc    %eax
405609:	42                   	inc    %edx
40560a:	3a cb                	cmp    %bl,%cl
40560c:	74 1e                	je     0x40562c
40560e:	4f                   	dec    %edi
40560f:	75 f3                	jne    0x405604
405611:	eb 19                	jmp    0x40562c
405613:	8a 0a                	mov    (%edx),%cl
405615:	88 08                	mov    %cl,(%eax)
405617:	40                   	inc    %eax
405618:	42                   	inc    %edx
405619:	3a cb                	cmp    %bl,%cl
40561b:	74 08                	je     0x405625
40561d:	4f                   	dec    %edi
40561e:	74 05                	je     0x405625
405620:	ff 4d 14             	decl   0x14(%ebp)
405623:	75 ee                	jne    0x405613
405625:	39 5d 14             	cmp    %ebx,0x14(%ebp)
405628:	75 02                	jne    0x40562c
40562a:	88 18                	mov    %bl,(%eax)
40562c:	3b fb                	cmp    %ebx,%edi
40562e:	75 8b                	jne    0x4055bb
405630:	83 7d 14 ff          	cmpl   $0xffffffff,0x14(%ebp)
405634:	75 0f                	jne    0x405645
405636:	8b 45 0c             	mov    0xc(%ebp),%eax
405639:	6a 50                	push   $0x50
40563b:	88 5c 06 ff          	mov    %bl,-0x1(%esi,%eax,1)
40563f:	58                   	pop    %eax
405640:	e9 78 ff ff ff       	jmp    0x4055bd
405645:	88 1e                	mov    %bl,(%esi)
405647:	e8 0d f5 ff ff       	call   0x404b59
40564c:	6a 22                	push   $0x22
40564e:	59                   	pop    %ecx
40564f:	89 08                	mov    %ecx,(%eax)
405651:	8b f1                	mov    %ecx,%esi
405653:	eb 82                	jmp    0x4055d7
405655:	cc                   	int3
405656:	cc                   	int3
405657:	cc                   	int3
405658:	cc                   	int3
405659:	cc                   	int3
40565a:	cc                   	int3
40565b:	cc                   	int3
40565c:	cc                   	int3
40565d:	cc                   	int3
40565e:	cc                   	int3
40565f:	cc                   	int3
405660:	8b 4c 24 04          	mov    0x4(%esp),%ecx
405664:	f7 c1 03 00 00 00    	test   $0x3,%ecx
40566a:	74 24                	je     0x405690
40566c:	8a 01                	mov    (%ecx),%al
40566e:	83 c1 01             	add    $0x1,%ecx
405671:	84 c0                	test   %al,%al
405673:	74 4e                	je     0x4056c3
405675:	f7 c1 03 00 00 00    	test   $0x3,%ecx
40567b:	75 ef                	jne    0x40566c
40567d:	05 00 00 00 00       	add    $0x0,%eax
405682:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
405689:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
405690:	8b 01                	mov    (%ecx),%eax
405692:	ba ff fe fe 7e       	mov    $0x7efefeff,%edx
405697:	03 d0                	add    %eax,%edx
405699:	83 f0 ff             	xor    $0xffffffff,%eax
40569c:	33 c2                	xor    %edx,%eax
40569e:	83 c1 04             	add    $0x4,%ecx
4056a1:	a9 00 01 01 81       	test   $0x81010100,%eax
4056a6:	74 e8                	je     0x405690
4056a8:	8b 41 fc             	mov    -0x4(%ecx),%eax
4056ab:	84 c0                	test   %al,%al
4056ad:	74 32                	je     0x4056e1
4056af:	84 e4                	test   %ah,%ah
4056b1:	74 24                	je     0x4056d7
4056b3:	a9 00 00 ff 00       	test   $0xff0000,%eax
4056b8:	74 13                	je     0x4056cd
4056ba:	a9 00 00 00 ff       	test   $0xff000000,%eax
4056bf:	74 02                	je     0x4056c3
4056c1:	eb cd                	jmp    0x405690
4056c3:	8d 41 ff             	lea    -0x1(%ecx),%eax
4056c6:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4056ca:	2b c1                	sub    %ecx,%eax
4056cc:	c3                   	ret
4056cd:	8d 41 fe             	lea    -0x2(%ecx),%eax
4056d0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4056d4:	2b c1                	sub    %ecx,%eax
4056d6:	c3                   	ret
4056d7:	8d 41 fd             	lea    -0x3(%ecx),%eax
4056da:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4056de:	2b c1                	sub    %ecx,%eax
4056e0:	c3                   	ret
4056e1:	8d 41 fc             	lea    -0x4(%ecx),%eax
4056e4:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4056e8:	2b c1                	sub    %ecx,%eax
4056ea:	c3                   	ret
4056eb:	8b ff                	mov    %edi,%edi
4056ed:	55                   	push   %ebp
4056ee:	8b ec                	mov    %esp,%ebp
4056f0:	8b 4d 08             	mov    0x8(%ebp),%ecx
4056f3:	53                   	push   %ebx
4056f4:	33 db                	xor    %ebx,%ebx
4056f6:	56                   	push   %esi
4056f7:	57                   	push   %edi
4056f8:	3b cb                	cmp    %ebx,%ecx
4056fa:	74 07                	je     0x405703
4056fc:	8b 7d 0c             	mov    0xc(%ebp),%edi
4056ff:	3b fb                	cmp    %ebx,%edi
405701:	77 1b                	ja     0x40571e
405703:	e8 51 f4 ff ff       	call   0x404b59
405708:	6a 16                	push   $0x16
40570a:	5e                   	pop    %esi
40570b:	89 30                	mov    %esi,(%eax)
40570d:	53                   	push   %ebx
40570e:	53                   	push   %ebx
40570f:	53                   	push   %ebx
405710:	53                   	push   %ebx
405711:	53                   	push   %ebx
405712:	e8 da f3 ff ff       	call   0x404af1
405717:	83 c4 14             	add    $0x14,%esp
40571a:	8b c6                	mov    %esi,%eax
40571c:	eb 30                	jmp    0x40574e
40571e:	8b 75 10             	mov    0x10(%ebp),%esi
405721:	3b f3                	cmp    %ebx,%esi
405723:	75 04                	jne    0x405729
405725:	88 19                	mov    %bl,(%ecx)
405727:	eb da                	jmp    0x405703
405729:	8b d1                	mov    %ecx,%edx
40572b:	8a 06                	mov    (%esi),%al
40572d:	88 02                	mov    %al,(%edx)
40572f:	42                   	inc    %edx
405730:	46                   	inc    %esi
405731:	3a c3                	cmp    %bl,%al
405733:	74 03                	je     0x405738
405735:	4f                   	dec    %edi
405736:	75 f3                	jne    0x40572b
405738:	3b fb                	cmp    %ebx,%edi
40573a:	75 10                	jne    0x40574c
40573c:	88 19                	mov    %bl,(%ecx)
40573e:	e8 16 f4 ff ff       	call   0x404b59
405743:	6a 22                	push   $0x22
405745:	59                   	pop    %ecx
405746:	89 08                	mov    %ecx,(%eax)
405748:	8b f1                	mov    %ecx,%esi
40574a:	eb c1                	jmp    0x40570d
40574c:	33 c0                	xor    %eax,%eax
40574e:	5f                   	pop    %edi
40574f:	5e                   	pop    %esi
405750:	5b                   	pop    %ebx
405751:	5d                   	pop    %ebp
405752:	c3                   	ret
405753:	8b ff                	mov    %edi,%edi
405755:	55                   	push   %ebp
405756:	8b ec                	mov    %esp,%ebp
405758:	8b 4d 08             	mov    0x8(%ebp),%ecx
40575b:	56                   	push   %esi
40575c:	33 f6                	xor    %esi,%esi
40575e:	3b ce                	cmp    %esi,%ecx
405760:	7c 1e                	jl     0x405780
405762:	83 f9 02             	cmp    $0x2,%ecx
405765:	7e 0c                	jle    0x405773
405767:	83 f9 03             	cmp    $0x3,%ecx
40576a:	75 14                	jne    0x405780
40576c:	a1 48 c5 45 00       	mov    0x45c548,%eax
405771:	eb 28                	jmp    0x40579b
405773:	a1 48 c5 45 00       	mov    0x45c548,%eax
405778:	89 0d 48 c5 45 00    	mov    %ecx,0x45c548
40577e:	eb 1b                	jmp    0x40579b
405780:	e8 d4 f3 ff ff       	call   0x404b59
405785:	56                   	push   %esi
405786:	56                   	push   %esi
405787:	56                   	push   %esi
405788:	56                   	push   %esi
405789:	56                   	push   %esi
40578a:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
405790:	e8 5c f3 ff ff       	call   0x404af1
405795:	83 c4 14             	add    $0x14,%esp
405798:	83 c8 ff             	or     $0xffffffff,%eax
40579b:	5e                   	pop    %esi
40579c:	5d                   	pop    %ebp
40579d:	c3                   	ret
40579e:	6a 0c                	push   $0xc
4057a0:	68 78 a6 40 00       	push   $0x40a678
4057a5:	e8 ca e4 ff ff       	call   0x403c74
4057aa:	8b 75 08             	mov    0x8(%ebp),%esi
4057ad:	85 f6                	test   %esi,%esi
4057af:	74 75                	je     0x405826
4057b1:	83 3d e4 0a 89 00 03 	cmpl   $0x3,0x890ae4
4057b8:	75 43                	jne    0x4057fd
4057ba:	6a 04                	push   $0x4
4057bc:	e8 4a f6 ff ff       	call   0x404e0b
4057c1:	59                   	pop    %ecx
4057c2:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4057c6:	56                   	push   %esi
4057c7:	e8 39 05 00 00       	call   0x405d05
4057cc:	59                   	pop    %ecx
4057cd:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4057d0:	85 c0                	test   %eax,%eax
4057d2:	74 09                	je     0x4057dd
4057d4:	56                   	push   %esi
4057d5:	50                   	push   %eax
4057d6:	e8 5a 05 00 00       	call   0x405d35
4057db:	59                   	pop    %ecx
4057dc:	59                   	pop    %ecx
4057dd:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4057e4:	e8 0b 00 00 00       	call   0x4057f4
4057e9:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
4057ed:	75 37                	jne    0x405826
4057ef:	ff 75 08             	push   0x8(%ebp)
4057f2:	eb 0a                	jmp    0x4057fe
4057f4:	6a 04                	push   $0x4
4057f6:	e8 36 f5 ff ff       	call   0x404d31
4057fb:	59                   	pop    %ecx
4057fc:	c3                   	ret
4057fd:	56                   	push   %esi
4057fe:	6a 00                	push   $0x0
405800:	ff 35 dc cd 45 00    	push   0x45cddc
405806:	ff 15 d8 10 40 00    	call   *0x4010d8
40580c:	85 c0                	test   %eax,%eax
40580e:	75 16                	jne    0x405826
405810:	e8 44 f3 ff ff       	call   0x404b59
405815:	8b f0                	mov    %eax,%esi
405817:	ff 15 c8 10 40 00    	call   *0x4010c8
40581d:	50                   	push   %eax
40581e:	e8 f4 f2 ff ff       	call   0x404b17
405823:	89 06                	mov    %eax,(%esi)
405825:	59                   	pop    %ecx
405826:	e8 8e e4 ff ff       	call   0x403cb9
40582b:	c3                   	ret
40582c:	8b ff                	mov    %edi,%edi
40582e:	55                   	push   %ebp
40582f:	8b ec                	mov    %esp,%ebp
405831:	8b 55 08             	mov    0x8(%ebp),%edx
405834:	53                   	push   %ebx
405835:	56                   	push   %esi
405836:	57                   	push   %edi
405837:	33 ff                	xor    %edi,%edi
405839:	3b d7                	cmp    %edi,%edx
40583b:	74 07                	je     0x405844
40583d:	8b 5d 0c             	mov    0xc(%ebp),%ebx
405840:	3b df                	cmp    %edi,%ebx
405842:	77 1e                	ja     0x405862
405844:	e8 10 f3 ff ff       	call   0x404b59
405849:	6a 16                	push   $0x16
40584b:	5e                   	pop    %esi
40584c:	89 30                	mov    %esi,(%eax)
40584e:	57                   	push   %edi
40584f:	57                   	push   %edi
405850:	57                   	push   %edi
405851:	57                   	push   %edi
405852:	57                   	push   %edi
405853:	e8 99 f2 ff ff       	call   0x404af1
405858:	83 c4 14             	add    $0x14,%esp
40585b:	8b c6                	mov    %esi,%eax
40585d:	5f                   	pop    %edi
40585e:	5e                   	pop    %esi
40585f:	5b                   	pop    %ebx
405860:	5d                   	pop    %ebp
405861:	c3                   	ret
405862:	8b 75 10             	mov    0x10(%ebp),%esi
405865:	3b f7                	cmp    %edi,%esi
405867:	75 07                	jne    0x405870
405869:	33 c0                	xor    %eax,%eax
40586b:	66 89 02             	mov    %ax,(%edx)
40586e:	eb d4                	jmp    0x405844
405870:	8b ca                	mov    %edx,%ecx
405872:	0f b7 06             	movzwl (%esi),%eax
405875:	66 89 01             	mov    %ax,(%ecx)
405878:	41                   	inc    %ecx
405879:	41                   	inc    %ecx
40587a:	46                   	inc    %esi
40587b:	46                   	inc    %esi
40587c:	66 3b c7             	cmp    %di,%ax
40587f:	74 03                	je     0x405884
405881:	4b                   	dec    %ebx
405882:	75 ee                	jne    0x405872
405884:	33 c0                	xor    %eax,%eax