40c5c9:	0f a3 05 0c 91 46 00 	bt     %eax,0x46910c
40c5d0:	73 0c                	jae    0x40c5de
40c5d2:	8b d3                	mov    %ebx,%edx
40c5d4:	8b c7                	mov    %edi,%eax
40c5d6:	e8 41 01 00 00       	call   0x40c71c
40c5db:	48                   	dec    %eax
40c5dc:	8b d8                	mov    %eax,%ebx
40c5de:	8b 45 f8             	mov    -0x8(%ebp),%eax
40c5e1:	89 30                	mov    %esi,(%eax)
40c5e3:	8b 45 08             	mov    0x8(%ebp),%eax
40c5e6:	89 18                	mov    %ebx,(%eax)
40c5e8:	5f                   	pop    %edi
40c5e9:	5e                   	pop    %esi
40c5ea:	5b                   	pop    %ebx
40c5eb:	8b e5                	mov    %ebp,%esp
40c5ed:	5d                   	pop    %ebp
40c5ee:	c2 04 00             	ret    $0x4
40c5f1:	8d 40 00             	lea    0x0(%eax),%eax
40c5f4:	53                   	push   %ebx
40c5f5:	56                   	push   %esi
40c5f6:	83 c4 f8             	add    $0xfffffff8,%esp
40c5f9:	8b da                	mov    %edx,%ebx
40c5fb:	8b f0                	mov    %eax,%esi
40c5fd:	33 c0                	xor    %eax,%eax
40c5ff:	89 04 24             	mov    %eax,(%esp)
40c602:	85 db                	test   %ebx,%ebx
40c604:	7e 4a                	jle    0x40c650
40c606:	8b c6                	mov    %esi,%eax
40c608:	e8 03 7d ff ff       	call   0x404310
40c60d:	3b d8                	cmp    %eax,%ebx
40c60f:	7f 3f                	jg     0x40c650
40c611:	83 fb 01             	cmp    $0x1,%ebx
40c614:	7e 37                	jle    0x40c64d
40c616:	80 3d 4c 57 47 00 00 	cmpb   $0x0,0x47574c
40c61d:	74 2e                	je     0x40c64d
40c61f:	54                   	push   %esp
40c620:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40c624:	8b d3                	mov    %ebx,%edx
40c626:	4a                   	dec    %edx
40c627:	8b c6                	mov    %esi,%eax
40c629:	e8 36 ff ff ff       	call   0x40c564
40c62e:	4b                   	dec    %ebx
40c62f:	3b 5c 24 04          	cmp    0x4(%esp),%ebx
40c633:	7f 0c                	jg     0x40c641
40c635:	8b c6                	mov    %esi,%eax
40c637:	e8 d4 7c ff ff       	call   0x404310
40c63c:	3b 04 24             	cmp    (%esp),%eax
40c63f:	7f 07                	jg     0x40c648
40c641:	33 c0                	xor    %eax,%eax
40c643:	89 04 24             	mov    %eax,(%esp)
40c646:	eb 08                	jmp    0x40c650
40c648:	ff 04 24             	incl   (%esp)
40c64b:	eb 03                	jmp    0x40c650
40c64d:	89 1c 24             	mov    %ebx,(%esp)
40c650:	8b 04 24             	mov    (%esp),%eax
40c653:	59                   	pop    %ecx
40c654:	5a                   	pop    %edx
40c655:	5e                   	pop    %esi
40c656:	5b                   	pop    %ebx
40c657:	c3                   	ret
40c658:	53                   	push   %ebx
40c659:	56                   	push   %esi
40c65a:	83 c4 f8             	add    $0xfffffff8,%esp
40c65d:	8b da                	mov    %edx,%ebx
40c65f:	8b f0                	mov    %eax,%esi
40c661:	33 c0                	xor    %eax,%eax
40c663:	89 04 24             	mov    %eax,(%esp)
40c666:	85 db                	test   %ebx,%ebx
40c668:	7e 46                	jle    0x40c6b0
40c66a:	8b c6                	mov    %esi,%eax
40c66c:	e8 9f 7c ff ff       	call   0x404310
40c671:	3b d8                	cmp    %eax,%ebx
40c673:	7e 09                	jle    0x40c67e
40c675:	8b c6                	mov    %esi,%eax
40c677:	e8 94 7c ff ff       	call   0x404310
40c67c:	8b d8                	mov    %eax,%ebx
40c67e:	80 3d 4c 57 47 00 00 	cmpb   $0x0,0x47574c
40c685:	74 26                	je     0x40c6ad
40c687:	54                   	push   %esp
40c688:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40c68c:	8b d3                	mov    %ebx,%edx
40c68e:	8b c6                	mov    %esi,%eax
40c690:	e8 cf fe ff ff       	call   0x40c564
40c695:	8b c6                	mov    %esi,%eax
40c697:	e8 74 7c ff ff       	call   0x404310
40c69c:	3b 04 24             	cmp    (%esp),%eax
40c69f:	7d 0f                	jge    0x40c6b0
40c6a1:	8b c6                	mov    %esi,%eax
40c6a3:	e8 68 7c ff ff       	call   0x404310
40c6a8:	89 04 24             	mov    %eax,(%esp)
40c6ab:	eb 03                	jmp    0x40c6b0
40c6ad:	89 1c 24             	mov    %ebx,(%esp)
40c6b0:	8b 04 24             	mov    (%esp),%eax
40c6b3:	59                   	pop    %ecx
40c6b4:	5a                   	pop    %edx
40c6b5:	5e                   	pop    %esi
40c6b6:	5b                   	pop    %ebx
40c6b7:	c3                   	ret
40c6b8:	53                   	push   %ebx
40c6b9:	8b d8                	mov    %eax,%ebx
40c6bb:	80 3d 4c 57 47 00 00 	cmpb   $0x0,0x47574c
40c6c2:	74 0a                	je     0x40c6ce
40c6c4:	53                   	push   %ebx
40c6c5:	e8 42 a0 ff ff       	call   0x40670c
40c6ca:	2b c3                	sub    %ebx,%eax
40c6cc:	5b                   	pop    %ebx
40c6cd:	c3                   	ret
40c6ce:	b8 01 00 00 00       	mov    $0x1,%eax
40c6d3:	5b                   	pop    %ebx
40c6d4:	c3                   	ret
40c6d5:	8d 40 00             	lea    0x0(%eax),%eax
40c6d8:	50                   	push   %eax
40c6d9:	e8 2e a0 ff ff       	call   0x40670c
40c6de:	c3                   	ret
40c6df:	90                   	nop
40c6e0:	53                   	push   %ebx
40c6e1:	56                   	push   %esi
40c6e2:	8b f2                	mov    %edx,%esi
40c6e4:	8b d8                	mov    %eax,%ebx
40c6e6:	b8 01 00 00 00       	mov    $0x1,%eax
40c6eb:	80 3d 4c 57 47 00 00 	cmpb   $0x0,0x47574c
40c6f2:	74 22                	je     0x40c716
40c6f4:	8a 54 33 ff          	mov    -0x1(%ebx,%esi,1),%dl
40c6f8:	81 e2 ff 00 00 00    	and    $0xff,%edx
40c6fe:	0f a3 15 0c 91 46 00 	bt     %edx,0x46910c
40c705:	73 0f                	jae    0x40c716
40c707:	8b c3                	mov    %ebx,%eax
40c709:	e8 02 7e ff ff       	call   0x404510
40c70e:	03 c6                	add    %esi,%eax
40c710:	48                   	dec    %eax
40c711:	e8 a2 ff ff ff       	call   0x40c6b8
40c716:	5e                   	pop    %esi
40c717:	5b                   	pop    %ebx
40c718:	c3                   	ret
40c719:	8d 40 00             	lea    0x0(%eax),%eax
40c71c:	53                   	push   %ebx
40c71d:	56                   	push   %esi
40c71e:	8b da                	mov    %edx,%ebx
40c720:	8b f0                	mov    %eax,%esi
40c722:	8d 43 01             	lea    0x1(%ebx),%eax
40c725:	80 3d 4c 57 47 00 00 	cmpb   $0x0,0x47574c
40c72c:	74 24                	je     0x40c752
40c72e:	8a 54 1e ff          	mov    -0x1(%esi,%ebx,1),%dl
40c732:	81 e2 ff 00 00 00    	and    $0xff,%edx
40c738:	0f a3 15 0c 91 46 00 	bt     %edx,0x46910c
40c73f:	73 11                	jae    0x40c752
40c741:	8b c6                	mov    %esi,%eax
40c743:	e8 c8 7d ff ff       	call   0x404510
40c748:	03 c3                	add    %ebx,%eax
40c74a:	48                   	dec    %eax
40c74b:	e8 68 ff ff ff       	call   0x40c6b8
40c750:	03 c3                	add    %ebx,%eax
40c752:	5e                   	pop    %esi
40c753:	5b                   	pop    %ebx
40c754:	c3                   	ret
40c755:	8d 40 00             	lea    0x0(%eax),%eax
40c758:	53                   	push   %ebx
40c759:	56                   	push   %esi
40c75a:	8b da                	mov    %edx,%ebx
40c75c:	8b f0                	mov    %eax,%esi
40c75e:	85 db                	test   %ebx,%ebx
40c760:	7e 1f                	jle    0x40c781
40c762:	8b c6                	mov    %esi,%eax
40c764:	e8 a7 7b ff ff       	call   0x404310
40c769:	3b d8                	cmp    %eax,%ebx
40c76b:	7f 14                	jg     0x40c781
40c76d:	80 7c 1e ff 5c       	cmpb   $0x5c,-0x1(%esi,%ebx,1)
40c772:	75 0d                	jne    0x40c781
40c774:	8b d3                	mov    %ebx,%edx
40c776:	8b c6                	mov    %esi,%eax
40c778:	e8 2b fd ff ff       	call   0x40c4a8
40c77d:	84 c0                	test   %al,%al
40c77f:	74 05                	je     0x40c786
40c781:	33 c0                	xor    %eax,%eax
40c783:	5e                   	pop    %esi
40c784:	5b                   	pop    %ebx
40c785:	c3                   	ret
40c786:	b0 01                	mov    $0x1,%al
40c788:	5e                   	pop    %esi
40c789:	5b                   	pop    %ebx
40c78a:	c3                   	ret
40c78b:	90                   	nop
40c78c:	53                   	push   %ebx
40c78d:	56                   	push   %esi
40c78e:	57                   	push   %edi
40c78f:	55                   	push   %ebp
40c790:	8b f9                	mov    %ecx,%edi
40c792:	8b f2                	mov    %edx,%esi
40c794:	8b e8                	mov    %eax,%ebp
40c796:	33 db                	xor    %ebx,%ebx
40c798:	85 ff                	test   %edi,%edi
40c79a:	7e 2d                	jle    0x40c7c9
40c79c:	8b c6                	mov    %esi,%eax
40c79e:	e8 6d 7b ff ff       	call   0x404310
40c7a3:	3b f8                	cmp    %eax,%edi
40c7a5:	7f 22                	jg     0x40c7c9
40c7a7:	8b d7                	mov    %edi,%edx
40c7a9:	8b c6                	mov    %esi,%eax
40c7ab:	e8 f8 fc ff ff       	call   0x40c4a8
40c7b0:	84 c0                	test   %al,%al
40c7b2:	75 15                	jne    0x40c7c9
40c7b4:	8b c5                	mov    %ebp,%eax
40c7b6:	e8 55 7d ff ff       	call   0x404510
40c7bb:	8a 54 3e ff          	mov    -0x1(%esi,%edi,1),%dl
40c7bf:	e8 e0 c2 ff ff       	call   0x408aa4
40c7c4:	85 c0                	test   %eax,%eax
40c7c6:	0f 95 c3             	setne  %bl
40c7c9:	8b c3                	mov    %ebx,%eax
40c7cb:	5d                   	pop    %ebp
40c7cc:	5f                   	pop    %edi
40c7cd:	5e                   	pop    %esi
40c7ce:	5b                   	pop    %ebx
40c7cf:	c3                   	ret
40c7d0:	53                   	push   %ebx
40c7d1:	56                   	push   %esi
40c7d2:	57                   	push   %edi
40c7d3:	55                   	push   %ebp
40c7d4:	8b f2                	mov    %edx,%esi
40c7d6:	8b d8                	mov    %eax,%ebx
40c7d8:	33 ff                	xor    %edi,%edi
40c7da:	8b c3                	mov    %ebx,%eax
40c7dc:	e8 2f 7d ff ff       	call   0x404510
40c7e1:	50                   	push   %eax
40c7e2:	8b c6                	mov    %esi,%eax
40c7e4:	e8 27 7d ff ff       	call   0x404510
40c7e9:	8b e8                	mov    %eax,%ebp
40c7eb:	8b c5                	mov    %ebp,%eax
40c7ed:	5a                   	pop    %edx
40c7ee:	e8 a1 00 00 00       	call   0x40c894
40c7f3:	8b d8                	mov    %eax,%ebx
40c7f5:	85 db                	test   %ebx,%ebx
40c7f7:	74 05                	je     0x40c7fe
40c7f9:	8b fb                	mov    %ebx,%edi
40c7fb:	2b fd                	sub    %ebp,%edi
40c7fd:	47                   	inc    %edi
40c7fe:	8b c7                	mov    %edi,%eax
40c800:	5d                   	pop    %ebp
40c801:	5f                   	pop    %edi
40c802:	5e                   	pop    %esi
40c803:	5b                   	pop    %ebx
40c804:	c3                   	ret
40c805:	8d 40 00             	lea    0x0(%eax),%eax
40c808:	53                   	push   %ebx
40c809:	56                   	push   %esi
40c80a:	57                   	push   %edi
40c80b:	55                   	push   %ebp
40c80c:	8b fa                	mov    %edx,%edi
40c80e:	8b f0                	mov    %eax,%esi
40c810:	80 3d 4c 57 47 00 00 	cmpb   $0x0,0x47574c
40c817:	74 6d                	je     0x40c886
40c819:	8b c6                	mov    %esi,%eax
40c81b:	e8 f0 7a ff ff       	call   0x404310
40c820:	8b e8                	mov    %eax,%ebp
40c822:	8b c7                	mov    %edi,%eax
40c824:	8b d5                	mov    %ebp,%edx
40c826:	e8 71 7e ff ff       	call   0x40469c
40c82b:	bb 01 00 00 00       	mov    $0x1,%ebx
40c830:	3b eb                	cmp    %ebx,%ebp
40c832:	7c 5b                	jl     0x40c88f
40c834:	8b c7                	mov    %edi,%eax
40c836:	e8 2d 7d ff ff       	call   0x404568
40c83b:	8a 54 1e ff          	mov    -0x1(%esi,%ebx,1),%dl
40c83f:	88 54 18 ff          	mov    %dl,-0x1(%eax,%ebx,1)
40c843:	8a 44 1e ff          	mov    -0x1(%esi,%ebx,1),%al
40c847:	25 ff 00 00 00       	and    $0xff,%eax
40c84c:	0f a3 05 0c 91 46 00 	bt     %eax,0x46910c
40c853:	73 12                	jae    0x40c867
40c855:	43                   	inc    %ebx
40c856:	8b c7                	mov    %edi,%eax
40c858:	e8 0b 7d ff ff       	call   0x404568
40c85d:	8a 54 1e ff          	mov    -0x1(%esi,%ebx,1),%dl
40c861:	88 54 18 ff          	mov    %dl,-0x1(%eax,%ebx,1)
40c865:	eb 18                	jmp    0x40c87f
40c867:	8b 07                	mov    (%edi),%eax
40c869:	8a 44 18 ff          	mov    -0x1(%eax,%ebx,1),%al
40c86d:	04 bf                	add    $0xbf,%al
40c86f:	2c 1a                	sub    $0x1a,%al
40c871:	73 0c                	jae    0x40c87f
40c873:	8b c7                	mov    %edi,%eax
40c875:	e8 ee 7c ff ff       	call   0x404568
40c87a:	80 44 18 ff 20       	addb   $0x20,-0x1(%eax,%ebx,1)
40c87f:	43                   	inc    %ebx
40c880:	3b eb                	cmp    %ebx,%ebp
40c882:	7d b0                	jge    0x40c834
40c884:	eb 09                	jmp    0x40c88f
40c886:	8b d7                	mov    %edi,%edx
40c888:	8b c6                	mov    %esi,%eax
40c88a:	e8 09 b7 ff ff       	call   0x407f98
40c88f:	5d                   	pop    %ebp
40c890:	5f                   	pop    %edi
40c891:	5e                   	pop    %esi
40c892:	5b                   	pop    %ebx
40c893:	c3                   	ret
40c894:	53                   	push   %ebx
40c895:	56                   	push   %esi
40c896:	57                   	push   %edi
40c897:	55                   	push   %ebp
40c898:	83 c4 f8             	add    $0xfffffff8,%esp
40c89b:	8b ea                	mov    %edx,%ebp
40c89d:	8b f0                	mov    %eax,%esi
40c89f:	33 db                	xor    %ebx,%ebx
40c8a1:	85 f6                	test   %esi,%esi
40c8a3:	0f 84 81 00 00 00    	je     0x40c92a
40c8a9:	80 3e 00             	cmpb   $0x0,(%esi)
40c8ac:	74 7c                	je     0x40c92a
40c8ae:	85 ed                	test   %ebp,%ebp
40c8b0:	74 78                	je     0x40c92a
40c8b2:	80 7d 00 00          	cmpb   $0x0,0x0(%ebp)
40c8b6:	74 72                	je     0x40c92a
40c8b8:	8b c6                	mov    %esi,%eax
40c8ba:	e8 61 c0 ff ff       	call   0x408920
40c8bf:	89 04 24             	mov    %eax,(%esp)
40c8c2:	8b c5                	mov    %ebp,%eax
40c8c4:	e8 57 c0 ff ff       	call   0x408920
40c8c9:	8b f8                	mov    %eax,%edi
40c8cb:	8b d5                	mov    %ebp,%edx
40c8cd:	8b c6                	mov    %esi,%eax
40c8cf:	e8 e4 c1 ff ff       	call   0x408ab8
40c8d4:	8b d8                	mov    %eax,%ebx
40c8d6:	eb 3f                	jmp    0x40c917
40c8d8:	8b d3                	mov    %ebx,%edx
40c8da:	2b d6                	sub    %esi,%edx
40c8dc:	8b c6                	mov    %esi,%eax
40c8de:	e8 e9 fb ff ff       	call   0x40c4cc
40c8e3:	88 44 24 04          	mov    %al,0x4(%esp)
40c8e7:	80 7c 24 04 02       	cmpb   $0x2,0x4(%esp)
40c8ec:	74 15                	je     0x40c903
40c8ee:	57                   	push   %edi
40c8ef:	55                   	push   %ebp
40c8f0:	57                   	push   %edi
40c8f1:	53                   	push   %ebx
40c8f2:	6a 00                	push   $0x0
40c8f4:	68 00 04 00 00       	push   $0x400
40c8f9:	e8 7e 99 ff ff       	call   0x40627c
40c8fe:	83 f8 02             	cmp    $0x2,%eax
40c901:	74 27                	je     0x40c92a
40c903:	80 7c 24 04 01       	cmpb   $0x1,0x4(%esp)
40c908:	75 01                	jne    0x40c90b
40c90a:	43                   	inc    %ebx
40c90b:	43                   	inc    %ebx
40c90c:	8b d5                	mov    %ebp,%edx
40c90e:	8b c3                	mov    %ebx,%eax
40c910:	e8 a3 c1 ff ff       	call   0x408ab8
40c915:	8b d8                	mov    %eax,%ebx
40c917:	85 db                	test   %ebx,%ebx
40c919:	74 0d                	je     0x40c928
40c91b:	8b c3                	mov    %ebx,%eax
40c91d:	2b c6                	sub    %esi,%eax
40c91f:	8b 14 24             	mov    (%esp),%edx
40c922:	2b d0                	sub    %eax,%edx