40467a:	56                   	push   %esi
40467b:	57                   	push   %edi
40467c:	89 d1                	mov    %edx,%ecx
40467e:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
404680:	5f                   	pop    %edi
404681:	5e                   	pop    %esi
404682:	74 0c                	je     0x404690
404684:	89 d9                	mov    %ebx,%ecx
404686:	eb ec                	jmp    0x404674
404688:	5a                   	pop    %edx
404689:	31 c0                	xor    %eax,%eax
40468b:	eb 08                	jmp    0x404695
40468d:	31 c0                	xor    %eax,%eax
40468f:	c3                   	ret
404690:	5a                   	pop    %edx
404691:	89 f8                	mov    %edi,%eax
404693:	29 d0                	sub    %edx,%eax
404695:	5f                   	pop    %edi
404696:	5e                   	pop    %esi
404697:	5b                   	pop    %ebx
404698:	c3                   	ret
404699:	8d 40 00             	lea    0x0(%eax),%eax
40469c:	53                   	push   %ebx
40469d:	56                   	push   %esi
40469e:	57                   	push   %edi
40469f:	89 c3                	mov    %eax,%ebx
4046a1:	89 d6                	mov    %edx,%esi
4046a3:	31 ff                	xor    %edi,%edi
4046a5:	85 d2                	test   %edx,%edx
4046a7:	7e 48                	jle    0x4046f1
4046a9:	8b 03                	mov    (%ebx),%eax
4046ab:	85 c0                	test   %eax,%eax
4046ad:	74 23                	je     0x4046d2
4046af:	83 78 f8 01          	cmpl   $0x1,-0x8(%eax)
4046b3:	75 1d                	jne    0x4046d2
4046b5:	83 e8 08             	sub    $0x8,%eax
4046b8:	83 c2 09             	add    $0x9,%edx
4046bb:	50                   	push   %eax
4046bc:	89 e0                	mov    %esp,%eax
4046be:	e8 71 e0 ff ff       	call   0x402734
4046c3:	58                   	pop    %eax
4046c4:	83 c0 08             	add    $0x8,%eax
4046c7:	89 03                	mov    %eax,(%ebx)
4046c9:	89 70 fc             	mov    %esi,-0x4(%eax)
4046cc:	c6 04 06 00          	movb   $0x0,(%esi,%eax,1)
4046d0:	eb 28                	jmp    0x4046fa
4046d2:	89 d0                	mov    %edx,%eax
4046d4:	e8 3b fa ff ff       	call   0x404114
4046d9:	89 c7                	mov    %eax,%edi
4046db:	8b 03                	mov    (%ebx),%eax
4046dd:	85 c0                	test   %eax,%eax
4046df:	74 10                	je     0x4046f1
4046e1:	89 fa                	mov    %edi,%edx
4046e3:	8b 48 fc             	mov    -0x4(%eax),%ecx
4046e6:	39 f1                	cmp    %esi,%ecx
4046e8:	7c 02                	jl     0x4046ec
4046ea:	89 f1                	mov    %esi,%ecx
4046ec:	e8 ff e1 ff ff       	call   0x4028f0
4046f1:	89 d8                	mov    %ebx,%eax
4046f3:	e8 58 f9 ff ff       	call   0x404050
4046f8:	89 3b                	mov    %edi,(%ebx)
4046fa:	5f                   	pop    %edi
4046fb:	5e                   	pop    %esi
4046fc:	5b                   	pop    %ebx
4046fd:	c3                   	ret
4046fe:	8b c0                	mov    %eax,%eax
404700:	b0 01                	mov    $0x1,%al
404702:	e9 49 e1 ff ff       	jmp    0x402850
404707:	c3                   	ret
404708:	85 c0                	test   %eax,%eax
40470a:	74 10                	je     0x40471c
40470c:	50                   	push   %eax
40470d:	6a 00                	push   $0x0
40470f:	e8 f8 cb ff ff       	call   0x40130c
404714:	85 c0                	test   %eax,%eax
404716:	0f 84 e4 ff ff ff    	je     0x404700
40471c:	c3                   	ret
40471d:	8d 40 00             	lea    0x0(%eax),%eax
404720:	87 10                	xchg   %edx,(%eax)
404722:	85 d2                	test   %edx,%edx
404724:	74 06                	je     0x40472c
404726:	52                   	push   %edx
404727:	e8 f0 cb ff ff       	call   0x40131c
40472c:	c3                   	ret
40472d:	8d 40 00             	lea    0x0(%eax),%eax
404730:	8b 10                	mov    (%eax),%edx
404732:	85 d2                	test   %edx,%edx
404734:	74 0e                	je     0x404744
404736:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
40473c:	50                   	push   %eax
40473d:	52                   	push   %edx
40473e:	e8 d9 cb ff ff       	call   0x40131c
404743:	58                   	pop    %eax
404744:	c3                   	ret
404745:	8d 40 00             	lea    0x0(%eax),%eax
404748:	53                   	push   %ebx
404749:	56                   	push   %esi
40474a:	89 c3                	mov    %eax,%ebx
40474c:	89 d6                	mov    %edx,%esi
40474e:	8b 03                	mov    (%ebx),%eax
404750:	85 c0                	test   %eax,%eax
404752:	74 0c                	je     0x404760
404754:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
40475a:	50                   	push   %eax
40475b:	e8 bc cb ff ff       	call   0x40131c
404760:	83 c3 04             	add    $0x4,%ebx
404763:	4e                   	dec    %esi
404764:	75 e8                	jne    0x40474e
404766:	5e                   	pop    %esi
404767:	5b                   	pop    %ebx
404768:	c3                   	ret
404769:	8d 40 00             	lea    0x0(%eax),%eax
40476c:	85 d2                	test   %edx,%edx
40476e:	0f 84 bc ff ff ff    	je     0x404730
404774:	8b 4a fc             	mov    -0x4(%edx),%ecx
404777:	d1 e9                	shr    $1,%ecx
404779:	0f 84 b1 ff ff ff    	je     0x404730
40477f:	51                   	push   %ecx
404780:	52                   	push   %edx
404781:	50                   	push   %eax
404782:	e8 8d cb ff ff       	call   0x401314
404787:	85 c0                	test   %eax,%eax
404789:	0f 84 71 ff ff ff    	je     0x404700
40478f:	c3                   	ret
404790:	53                   	push   %ebx
404791:	56                   	push   %esi
404792:	57                   	push   %edi
404793:	55                   	push   %ebp
404794:	81 c4 04 f0 ff ff    	add    $0xfffff004,%esp
40479a:	50                   	push   %eax
40479b:	83 c4 fc             	add    $0xfffffffc,%esp
40479e:	8b f1                	mov    %ecx,%esi
4047a0:	89 14 24             	mov    %edx,(%esp)
4047a3:	8b f8                	mov    %eax,%edi
4047a5:	85 f6                	test   %esi,%esi
4047a7:	7f 09                	jg     0x4047b2
4047a9:	8b c7                	mov    %edi,%eax
4047ab:	e8 80 ff ff ff       	call   0x404730
4047b0:	eb 5d                	jmp    0x40480f
4047b2:	8d 6e 01             	lea    0x1(%esi),%ebp
4047b5:	81 fd ff 07 00 00    	cmp    $0x7ff,%ebp
4047bb:	7d 28                	jge    0x4047e5
4047bd:	56                   	push   %esi
4047be:	8d 44 24 08          	lea    0x8(%esp),%eax
4047c2:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4047c6:	ba ff 07 00 00       	mov    $0x7ff,%edx
4047cb:	e8 c0 f9 ff ff       	call   0x404190
4047d0:	8b d8                	mov    %eax,%ebx
4047d2:	85 db                	test   %ebx,%ebx
4047d4:	7e 0f                	jle    0x4047e5
4047d6:	8d 54 24 04          	lea    0x4(%esp),%edx
4047da:	8b c7                	mov    %edi,%eax
4047dc:	8b cb                	mov    %ebx,%ecx
4047de:	e8 39 00 00 00       	call   0x40481c
4047e3:	eb 2a                	jmp    0x40480f
4047e5:	8b dd                	mov    %ebp,%ebx
4047e7:	8b c7                	mov    %edi,%eax
4047e9:	8b d3                	mov    %ebx,%edx
4047eb:	e8 88 01 00 00       	call   0x404978
4047f0:	56                   	push   %esi
4047f1:	8b 07                	mov    (%edi),%eax
4047f3:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4047f7:	8b d3                	mov    %ebx,%edx
4047f9:	e8 92 f9 ff ff       	call   0x404190
4047fe:	8b d8                	mov    %eax,%ebx
404800:	85 db                	test   %ebx,%ebx
404802:	7d 02                	jge    0x404806
404804:	33 db                	xor    %ebx,%ebx
404806:	8b c7                	mov    %edi,%eax
404808:	8b d3                	mov    %ebx,%edx
40480a:	e8 69 01 00 00       	call   0x404978
40480f:	81 c4 04 10 00 00    	add    $0x1004,%esp
404815:	5d                   	pop    %ebp
404816:	5f                   	pop    %edi
404817:	5e                   	pop    %esi
404818:	5b                   	pop    %ebx
404819:	c3                   	ret
40481a:	8b c0                	mov    %eax,%eax
40481c:	85 c9                	test   %ecx,%ecx
40481e:	0f 84 0c ff ff ff    	je     0x404730
404824:	50                   	push   %eax
404825:	51                   	push   %ecx
404826:	52                   	push   %edx
404827:	e8 e0 ca ff ff       	call   0x40130c
40482c:	85 c0                	test   %eax,%eax
40482e:	0f 84 cc fe ff ff    	je     0x404700
404834:	5a                   	pop    %edx
404835:	ff 32                	push   (%edx)
404837:	89 02                	mov    %eax,(%edx)
404839:	e8 de ca ff ff       	call   0x40131c
40483e:	c3                   	ret
40483f:	90                   	nop
404840:	31 c9                	xor    %ecx,%ecx
404842:	85 d2                	test   %edx,%edx
404844:	74 2d                	je     0x404873
404846:	52                   	push   %edx
404847:	66 3b 0a             	cmp    (%edx),%cx
40484a:	74 20                	je     0x40486c
40484c:	66 3b 4a 02          	cmp    0x2(%edx),%cx
404850:	74 17                	je     0x404869
404852:	66 3b 4a 04          	cmp    0x4(%edx),%cx
404856:	74 0e                	je     0x404866
404858:	66 3b 4a 06          	cmp    0x6(%edx),%cx
40485c:	74 05                	je     0x404863
40485e:	83 c2 08             	add    $0x8,%edx
404861:	eb e4                	jmp    0x404847
404863:	83 c2 02             	add    $0x2,%edx
404866:	83 c2 02             	add    $0x2,%edx
404869:	83 c2 02             	add    $0x2,%edx
40486c:	89 d1                	mov    %edx,%ecx
40486e:	5a                   	pop    %edx
40486f:	29 d1                	sub    %edx,%ecx
404871:	d1 e9                	shr    $1,%ecx
404873:	e9 a4 ff ff ff       	jmp    0x40481c
404878:	c3                   	ret
404879:	8d 40 00             	lea    0x0(%eax),%eax
40487c:	31 c9                	xor    %ecx,%ecx
40487e:	85 d2                	test   %edx,%edx
404880:	74 03                	je     0x404885
404882:	8b 4a fc             	mov    -0x4(%edx),%ecx
404885:	e9 06 ff ff ff       	jmp    0x404790
40488a:	c3                   	ret
40488b:	90                   	nop
40488c:	85 c0                	test   %eax,%eax
40488e:	74 04                	je     0x404894
404890:	c3                   	ret
404891:	90                   	nop
404892:	00 00                	add    %al,(%eax)
404894:	b8 92 48 40 00       	mov    $0x404892,%eax
404899:	c3                   	ret
40489a:	8b c0                	mov    %eax,%eax
40489c:	85 c0                	test   %eax,%eax
40489e:	74 05                	je     0x4048a5
4048a0:	8b 40 fc             	mov    -0x4(%eax),%eax
4048a3:	d1 e8                	shr    $1,%eax
4048a5:	c3                   	ret
4048a6:	8b c0                	mov    %eax,%eax
4048a8:	53                   	push   %ebx
4048a9:	56                   	push   %esi
4048aa:	57                   	push   %edi
4048ab:	89 c6                	mov    %eax,%esi
4048ad:	89 d7                	mov    %edx,%edi
4048af:	39 d0                	cmp    %edx,%eax
4048b1:	74 72                	je     0x404925
4048b3:	85 f6                	test   %esi,%esi
4048b5:	74 51                	je     0x404908
4048b7:	85 ff                	test   %edi,%edi
4048b9:	74 54                	je     0x40490f
4048bb:	8b 46 fc             	mov    -0x4(%esi),%eax
4048be:	8b 57 fc             	mov    -0x4(%edi),%edx
4048c1:	29 d0                	sub    %edx,%eax
4048c3:	77 02                	ja     0x4048c7
4048c5:	01 c2                	add    %eax,%edx
4048c7:	52                   	push   %edx
4048c8:	c1 ea 02             	shr    $0x2,%edx
4048cb:	74 26                	je     0x4048f3
4048cd:	8b 0e                	mov    (%esi),%ecx
4048cf:	8b 1f                	mov    (%edi),%ebx
4048d1:	39 d9                	cmp    %ebx,%ecx
4048d3:	75 41                	jne    0x404916
4048d5:	4a                   	dec    %edx
4048d6:	74 15                	je     0x4048ed
4048d8:	8b 4e 04             	mov    0x4(%esi),%ecx
4048db:	8b 5f 04             	mov    0x4(%edi),%ebx
4048de:	39 d9                	cmp    %ebx,%ecx
4048e0:	75 34                	jne    0x404916
4048e2:	83 c6 08             	add    $0x8,%esi
4048e5:	83 c7 08             	add    $0x8,%edi
4048e8:	4a                   	dec    %edx
4048e9:	75 e2                	jne    0x4048cd
4048eb:	eb 06                	jmp    0x4048f3
4048ed:	83 c6 04             	add    $0x4,%esi
4048f0:	83 c7 04             	add    $0x4,%edi
4048f3:	5a                   	pop    %edx
4048f4:	83 e2 02             	and    $0x2,%edx
4048f7:	74 0b                	je     0x404904
4048f9:	66 8b 0e             	mov    (%esi),%cx
4048fc:	66 8b 1f             	mov    (%edi),%bx
4048ff:	66 39 d9             	cmp    %bx,%cx
404902:	75 21                	jne    0x404925
404904:	01 c0                	add    %eax,%eax
404906:	eb 1d                	jmp    0x404925
404908:	8b 57 fc             	mov    -0x4(%edi),%edx
40490b:	29 d0                	sub    %edx,%eax
40490d:	eb 16                	jmp    0x404925
40490f:	8b 46 fc             	mov    -0x4(%esi),%eax
404912:	29 d0                	sub    %edx,%eax
404914:	eb 0f                	jmp    0x404925
404916:	5a                   	pop    %edx
404917:	66 39 d9             	cmp    %bx,%cx
40491a:	75 09                	jne    0x404925
40491c:	c1 e9 10             	shr    $0x10,%ecx
40491f:	c1 eb 10             	shr    $0x10,%ebx
404922:	66 39 d9             	cmp    %bx,%cx
404925:	5f                   	pop    %edi
404926:	5e                   	pop    %esi
404927:	5b                   	pop    %ebx
404928:	c3                   	ret
404929:	8d 40 00             	lea    0x0(%eax),%eax
40492c:	55                   	push   %ebp
40492d:	8b ec                	mov    %esp,%ebp
40492f:	53                   	push   %ebx
404930:	56                   	push   %esi
404931:	57                   	push   %edi
404932:	8b f9                	mov    %ecx,%edi
404934:	8b da                	mov    %edx,%ebx
404936:	8b f0                	mov    %eax,%esi
404938:	8b c6                	mov    %esi,%eax
40493a:	e8 5d ff ff ff       	call   0x40489c
40493f:	83 fb 01             	cmp    $0x1,%ebx
404942:	7d 04                	jge    0x404948
404944:	33 db                	xor    %ebx,%ebx
404946:	eb 07                	jmp    0x40494f
404948:	4b                   	dec    %ebx
404949:	3b c3                	cmp    %ebx,%eax
40494b:	7d 02                	jge    0x40494f
40494d:	8b d8                	mov    %eax,%ebx
40494f:	85 ff                	test   %edi,%edi
404951:	7d 04                	jge    0x404957
404953:	33 c0                	xor    %eax,%eax
404955:	eb 08                	jmp    0x40495f
404957:	2b c3                	sub    %ebx,%eax
404959:	3b f8                	cmp    %eax,%edi
40495b:	7d 02                	jge    0x40495f
40495d:	8b c7                	mov    %edi,%eax
40495f:	8b d3                	mov    %ebx,%edx
404961:	03 d2                	add    %edx,%edx
404963:	03 d6                	add    %esi,%edx
404965:	8b 4d 08             	mov    0x8(%ebp),%ecx
404968:	91                   	xchg   %eax,%ecx
404969:	e8 ae fe ff ff       	call   0x40481c
40496e:	5f                   	pop    %edi
40496f:	5e                   	pop    %esi
404970:	5b                   	pop    %ebx
404971:	5d                   	pop    %ebp
404972:	c2 04 00             	ret    $0x4
404975:	8d 40 00             	lea    0x0(%eax),%eax
404978:	53                   	push   %ebx
404979:	56                   	push   %esi
40497a:	57                   	push   %edi
40497b:	8b f2                	mov    %edx,%esi
40497d:	8b f8                	mov    %eax,%edi
40497f:	33 db                	xor    %ebx,%ebx
404981:	85 f6                	test   %esi,%esi
404983:	7e 27                	jle    0x4049ac
404985:	8b c6                	mov    %esi,%eax
404987:	e8 7c fd ff ff       	call   0x404708
40498c:	8b d8                	mov    %eax,%ebx
40498e:	8b 07                	mov    (%edi),%eax
404990:	e8 07 ff ff ff       	call   0x40489c