408850:	e8 cc 1a 00 00       	call   0x40a321
408855:	ff 75 fc             	push   -0x4(%ebp)
408858:	8b fb                	mov    %ebx,%edi
40885a:	8d 75 e8             	lea    -0x18(%ebp),%esi
40885d:	8d 4b 1c             	lea    0x1c(%ebx),%ecx
408860:	8d 7f 10             	lea    0x10(%edi),%edi
408863:	a5                   	movsl  %ds:(%esi),%es:(%edi)
408864:	a5                   	movsl  %ds:(%esi),%es:(%edi)
408865:	a5                   	movsl  %ds:(%esi),%es:(%edi)
408866:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40886a:	e8 b2 1a 00 00       	call   0x40a321
40886f:	8d 4d f4             	lea    -0xc(%ebp),%ecx
408872:	e8 ce 1a 00 00       	call   0x40a345
408877:	8b 5d f8             	mov    -0x8(%ebp),%ebx
40887a:	8b 55 08             	mov    0x8(%ebp),%edx
40887d:	5f                   	pop    %edi
40887e:	5e                   	pop    %esi
40887f:	8a 4b 20             	mov    0x20(%ebx),%cl
408882:	8a 42 20             	mov    0x20(%edx),%al
408885:	88 43 20             	mov    %al,0x20(%ebx)
408888:	8a 42 21             	mov    0x21(%edx),%al
40888b:	88 4a 20             	mov    %cl,0x20(%edx)
40888e:	8a 4b 21             	mov    0x21(%ebx),%cl
408891:	88 43 21             	mov    %al,0x21(%ebx)
408894:	88 4a 21             	mov    %cl,0x21(%edx)
408897:	5b                   	pop    %ebx
408898:	c9                   	leave
408899:	c2 04 00             	ret    $0x4
40889c:	8b ff                	mov    %edi,%edi
40889e:	55                   	push   %ebp
40889f:	8b ec                	mov    %esp,%ebp
4088a1:	53                   	push   %ebx
4088a2:	56                   	push   %esi
4088a3:	57                   	push   %edi
4088a4:	8b 7d 10             	mov    0x10(%ebp),%edi
4088a7:	8b f1                	mov    %ecx,%esi
4088a9:	83 ff 0a             	cmp    $0xa,%edi
4088ac:	0f 82 c6 00 00 00    	jb     0x408978
4088b2:	8b 46 1c             	mov    0x1c(%esi),%eax
4088b5:	33 db                	xor    %ebx,%ebx
4088b7:	89 5e 1c             	mov    %ebx,0x1c(%esi)
4088ba:	85 c0                	test   %eax,%eax
4088bc:	74 0f                	je     0x4088cd
4088be:	50                   	push   %eax
4088bf:	53                   	push   %ebx
4088c0:	ff 15 7c 60 42 00    	call   *0x42607c
4088c6:	50                   	push   %eax
4088c7:	ff 15 a4 61 42 00    	call   *0x4261a4
4088cd:	8b 55 08             	mov    0x8(%ebp),%edx
4088d0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4088d3:	83 f9 0a             	cmp    $0xa,%ecx
4088d6:	88 5e 21             	mov    %bl,0x21(%esi)
4088d9:	1a db                	sbb    %bl,%bl
4088db:	89 56 10             	mov    %edx,0x10(%esi)
4088de:	fe c3                	inc    %bl
4088e0:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
4088e3:	89 46 14             	mov    %eax,0x14(%esi)
4088e6:	8d 04 3a             	lea    (%edx,%edi,1),%eax
4088e9:	89 46 18             	mov    %eax,0x18(%esi)
4088ec:	83 f9 0a             	cmp    $0xa,%ecx
4088ef:	72 4b                	jb     0x40893c
4088f1:	33 c9                	xor    %ecx,%ecx
4088f3:	66 39 0a             	cmp    %cx,(%edx)
4088f6:	77 0b                	ja     0x408903
4088f8:	66 8b 42 02          	mov    0x2(%edx),%ax
4088fc:	66 3b 06             	cmp    (%esi),%ax
4088ff:	8a c1                	mov    %cl,%al
408901:	76 02                	jbe    0x408905
408903:	b0 01                	mov    $0x1,%al
408905:	88 46 21             	mov    %al,0x21(%esi)
408908:	66 39 0a             	cmp    %cx,(%edx)
40890b:	75 2d                	jne    0x40893a
40890d:	66 8b 42 02          	mov    0x2(%edx),%ax
408911:	66 3b 06             	cmp    (%esi),%ax
408914:	75 24                	jne    0x40893a
408916:	66 8b 42 04          	mov    0x4(%edx),%ax
40891a:	66 3b 46 02          	cmp    0x2(%esi),%ax
40891e:	75 1a                	jne    0x40893a
408920:	8a 42 08             	mov    0x8(%edx),%al
408923:	3a 46 04             	cmp    0x4(%esi),%al
408926:	75 12                	jne    0x40893a
408928:	66 8b 42 06          	mov    0x6(%edx),%ax
40892c:	66 3b 46 06          	cmp    0x6(%esi),%ax
408930:	75 08                	jne    0x40893a
408932:	8a 42 09             	mov    0x9(%edx),%al
408935:	3a 46 08             	cmp    0x8(%esi),%al
408938:	74 02                	je     0x40893c
40893a:	8a d9                	mov    %cl,%bl
40893c:	84 db                	test   %bl,%bl
40893e:	75 31                	jne    0x408971
408940:	33 c0                	xor    %eax,%eax
408942:	66 89 02             	mov    %ax,(%edx)
408945:	66 8b 06             	mov    (%esi),%ax
408948:	66 89 42 02          	mov    %ax,0x2(%edx)
40894c:	66 8b 46 02          	mov    0x2(%esi),%ax
408950:	66 89 42 04          	mov    %ax,0x4(%edx)
408954:	8a 46 04             	mov    0x4(%esi),%al
408957:	88 42 08             	mov    %al,0x8(%edx)
40895a:	66 8b 46 06          	mov    0x6(%esi),%ax
40895e:	66 89 42 06          	mov    %ax,0x6(%edx)
408962:	8a 46 08             	mov    0x8(%esi),%al
408965:	88 42 09             	mov    %al,0x9(%edx)
408968:	8b 46 10             	mov    0x10(%esi),%eax
40896b:	83 c0 0a             	add    $0xa,%eax
40896e:	89 46 14             	mov    %eax,0x14(%esi)
408971:	5f                   	pop    %edi
408972:	5e                   	pop    %esi
408973:	5b                   	pop    %ebx
408974:	5d                   	pop    %ebp
408975:	c2 0c 00             	ret    $0xc
408978:	8b 4d 04             	mov    0x4(%ebp),%ecx
40897b:	ba 88 0d 00 00       	mov    $0xd88,%edx
408980:	68 80 1c 40 00       	push   $0x401c80
408985:	e8 51 e6 ff ff       	call   0x406fdb
40898a:	cc                   	int3
40898b:	8b ff                	mov    %edi,%edi
40898d:	55                   	push   %ebp
40898e:	8b ec                	mov    %esp,%ebp
408990:	83 ec 44             	sub    $0x44,%esp
408993:	53                   	push   %ebx
408994:	56                   	push   %esi
408995:	57                   	push   %edi
408996:	8b f9                	mov    %ecx,%edi
408998:	33 db                	xor    %ebx,%ebx
40899a:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40899d:	89 5d f0             	mov    %ebx,-0x10(%ebp)
4089a0:	89 5d f4             	mov    %ebx,-0xc(%ebp)
4089a3:	8b 47 10             	mov    0x10(%edi),%eax
4089a6:	83 c0 0a             	add    $0xa,%eax
4089a9:	89 5d c0             	mov    %ebx,-0x40(%ebp)
4089ac:	89 45 fc             	mov    %eax,-0x4(%ebp)
4089af:	66 8b 47 02          	mov    0x2(%edi),%ax
4089b3:	66 89 45 e4          	mov    %ax,-0x1c(%ebp)
4089b7:	8a 47 04             	mov    0x4(%edi),%al
4089ba:	88 45 e6             	mov    %al,-0x1a(%ebp)
4089bd:	33 c0                	xor    %eax,%eax
4089bf:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
4089c3:	66 8b 47 06          	mov    0x6(%edi),%ax
4089c7:	66 89 45 bc          	mov    %ax,-0x44(%ebp)
4089cb:	8a 47 08             	mov    0x8(%edi),%al
4089ce:	88 45 be             	mov    %al,-0x42(%ebp)
4089d1:	33 c0                	xor    %eax,%eax
4089d3:	66 89 45 c4          	mov    %ax,-0x3c(%ebp)
4089d7:	89 5d c8             	mov    %ebx,-0x38(%ebp)
4089da:	89 5d cc             	mov    %ebx,-0x34(%ebp)
4089dd:	eb 78                	jmp    0x408a57
4089df:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4089e2:	39 5d e8             	cmp    %ebx,-0x18(%ebp)
4089e5:	76 70                	jbe    0x408a57
4089e7:	ff 77 14             	push   0x14(%edi)
4089ea:	8d 45 fc             	lea    -0x4(%ebp),%eax
4089ed:	50                   	push   %eax
4089ee:	8d 4d bc             	lea    -0x44(%ebp),%ecx
4089f1:	e8 06 fd ff ff       	call   0x4086fc
4089f6:	84 c0                	test   %al,%al
4089f8:	74 5d                	je     0x408a57
4089fa:	8b 45 c0             	mov    -0x40(%ebp),%eax
4089fd:	89 45 e0             	mov    %eax,-0x20(%ebp)
408a00:	0f b7 45 c4          	movzwl -0x3c(%ebp),%eax
408a04:	89 45 dc             	mov    %eax,-0x24(%ebp)
408a07:	8b 45 cc             	mov    -0x34(%ebp),%eax
408a0a:	89 45 d8             	mov    %eax,-0x28(%ebp)
408a0d:	0f b7 45 ec          	movzwl -0x14(%ebp),%eax
408a11:	89 45 d4             	mov    %eax,-0x2c(%ebp)
408a14:	8b 45 f4             	mov    -0xc(%ebp),%eax
408a17:	89 45 d0             	mov    %eax,-0x30(%ebp)
408a1a:	8b 45 48             	mov    0x48(%ebp),%eax
408a1d:	85 c0                	test   %eax,%eax
408a1f:	74 70                	je     0x408a91
408a21:	8b 00                	mov    (%eax),%eax
408a23:	8b 70 10             	mov    0x10(%eax),%esi
408a26:	8d 45 e0             	lea    -0x20(%ebp),%eax
408a29:	50                   	push   %eax
408a2a:	8d 45 dc             	lea    -0x24(%ebp),%eax
408a2d:	8b ce                	mov    %esi,%ecx
408a2f:	50                   	push   %eax
408a30:	8d 45 d8             	lea    -0x28(%ebp),%eax
408a33:	50                   	push   %eax
408a34:	8d 45 d4             	lea    -0x2c(%ebp),%eax
408a37:	50                   	push   %eax
408a38:	8d 45 d0             	lea    -0x30(%ebp),%eax
408a3b:	50                   	push   %eax
408a3c:	ff 15 78 64 42 00    	call   *0x426478
408a42:	8b 4d 48             	mov    0x48(%ebp),%ecx
408a45:	ff d6                	call   *%esi
408a47:	84 c0                	test   %al,%al
408a49:	74 25                	je     0x408a70
408a4b:	8b 75 f8             	mov    -0x8(%ebp),%esi
408a4e:	46                   	inc    %esi
408a4f:	89 75 f8             	mov    %esi,-0x8(%ebp)
408a52:	3b 75 e8             	cmp    -0x18(%ebp),%esi
408a55:	72 90                	jb     0x4089e7
408a57:	ff 77 14             	push   0x14(%edi)
408a5a:	8d 45 fc             	lea    -0x4(%ebp),%eax
408a5d:	50                   	push   %eax
408a5e:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
408a61:	e8 96 fc ff ff       	call   0x4086fc
408a66:	84 c0                	test   %al,%al
408a68:	0f 85 71 ff ff ff    	jne    0x4089df
408a6e:	b3 01                	mov    $0x1,%bl
408a70:	8b 7d 48             	mov    0x48(%ebp),%edi
408a73:	85 ff                	test   %edi,%edi
408a75:	74 11                	je     0x408a88
408a77:	8b 17                	mov    (%edi),%edx
408a79:	8b 72 0c             	mov    0xc(%edx),%esi
408a7c:	8b ce                	mov    %esi,%ecx
408a7e:	ff 15 78 64 42 00    	call   *0x426478
408a84:	8b cf                	mov    %edi,%ecx
408a86:	ff d6                	call   *%esi
408a88:	5f                   	pop    %edi
408a89:	5e                   	pop    %esi
408a8a:	8a c3                	mov    %bl,%al
408a8c:	5b                   	pop    %ebx
408a8d:	c9                   	leave
408a8e:	c2 48 00             	ret    $0x48
408a91:	e8 64 e5 ff ff       	call   0x406ffa
408a96:	cc                   	int3
408a97:	8b ff                	mov    %edi,%edi
408a99:	55                   	push   %ebp
408a9a:	8b ec                	mov    %esp,%ebp
408a9c:	83 e4 f8             	and    $0xfffffff8,%esp
408a9f:	83 ec 14             	sub    $0x14,%esp
408aa2:	53                   	push   %ebx
408aa3:	8b 5d 0c             	mov    0xc(%ebp),%ebx
408aa6:	56                   	push   %esi
408aa7:	57                   	push   %edi
408aa8:	ff 75 18             	push   0x18(%ebp)
408aab:	8b 7d 14             	mov    0x14(%ebp),%edi
408aae:	8b f1                	mov    %ecx,%esi
408ab0:	57                   	push   %edi
408ab1:	ff 75 10             	push   0x10(%ebp)
408ab4:	53                   	push   %ebx
408ab5:	ff 75 08             	push   0x8(%ebp)
408ab8:	e8 dc 02 00 00       	call   0x408d99
408abd:	84 c0                	test   %al,%al
408abf:	74 07                	je     0x408ac8
408ac1:	b0 01                	mov    $0x1,%al
408ac3:	e9 83 00 00 00       	jmp    0x408b4b
408ac8:	8d 47 20             	lea    0x20(%edi),%eax
408acb:	33 d2                	xor    %edx,%edx
408acd:	8d 4e 10             	lea    0x10(%esi),%ecx
408ad0:	03 c3                	add    %ebx,%eax
408ad2:	39 11                	cmp    %edx,(%ecx)
408ad4:	75 58                	jne    0x408b2e
408ad6:	83 c0 0a             	add    $0xa,%eax
408ad9:	89 54 24 10          	mov    %edx,0x10(%esp)
408add:	50                   	push   %eax
408ade:	8d 4c 24 14          	lea    0x14(%esp),%ecx
408ae2:	89 54 24 18          	mov    %edx,0x18(%esp)
408ae6:	89 54 24 1c          	mov    %edx,0x1c(%esp)
408aea:	89 54 24 20          	mov    %edx,0x20(%esp)
408aee:	e8 57 f8 ff ff       	call   0x40834a
408af3:	84 c0                	test   %al,%al
408af5:	74 2c                	je     0x408b23
408af7:	8b 44 24 18          	mov    0x18(%esp),%eax
408afb:	8b ce                	mov    %esi,%ecx
408afd:	2b 44 24 10          	sub    0x10(%esp),%eax
408b01:	50                   	push   %eax
408b02:	6a 00                	push   $0x0
408b04:	ff 74 24 18          	push   0x18(%esp)
408b08:	e8 8f fd ff ff       	call   0x40889c
408b0d:	8b 44 24 1c          	mov    0x1c(%esp),%eax
408b11:	8d 4e 1c             	lea    0x1c(%esi),%ecx
408b14:	83 64 24 1c 00       	andl   $0x0,0x1c(%esp)
408b19:	50                   	push   %eax
408b1a:	e8 02 18 00 00       	call   0x40a321
408b1f:	c6 46 22 01          	movb   $0x1,0x22(%esi)
408b23:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
408b27:	e8 19 18 00 00       	call   0x40a345
408b2c:	eb 0b                	jmp    0x408b39
408b2e:	38 56 22             	cmp    %dl,0x22(%esi)
408b31:	74 06                	je     0x408b39
408b33:	50                   	push   %eax
408b34:	e8 11 f8 ff ff       	call   0x40834a
408b39:	ff 75 18             	push   0x18(%ebp)
408b3c:	8b ce                	mov    %esi,%ecx
408b3e:	57                   	push   %edi
408b3f:	ff 75 10             	push   0x10(%ebp)
408b42:	53                   	push   %ebx
408b43:	ff 75 08             	push   0x8(%ebp)
408b46:	e8 4e 02 00 00       	call   0x408d99
408b4b:	5f                   	pop    %edi
408b4c:	5e                   	pop    %esi
408b4d:	5b                   	pop    %ebx
408b4e:	8b e5                	mov    %ebp,%esp
408b50:	5d                   	pop    %ebp
408b51:	c2 14 00             	ret    $0x14
408b54:	8b ff                	mov    %edi,%edi
408b56:	55                   	push   %ebp
408b57:	8b ec                	mov    %esp,%ebp
408b59:	83 ec 1c             	sub    $0x1c,%esp
408b5c:	66 8b 41 06          	mov    0x6(%ecx),%ax
408b60:	33 d2                	xor    %edx,%edx
408b62:	66 89 45 e4          	mov    %ax,-0x1c(%ebp)
408b66:	8a 41 08             	mov    0x8(%ecx),%al
408b69:	53                   	push   %ebx
408b6a:	8b 5d 08             	mov    0x8(%ebp),%ebx
408b6d:	56                   	push   %esi
408b6e:	8b 75 0c             	mov    0xc(%ebp),%esi
408b71:	88 45 e6             	mov    %al,-0x1a(%ebp)
408b74:	33 c0                	xor    %eax,%eax
408b76:	89 4d f8             	mov    %ecx,-0x8(%ebp)
408b79:	89 55 e8             	mov    %edx,-0x18(%ebp)
408b7c:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
408b80:	89 55 f0             	mov    %edx,-0x10(%ebp)
408b83:	89 55 f4             	mov    %edx,-0xc(%ebp)
408b86:	85 f6                	test   %esi,%esi
408b88:	74 47                	je     0x408bd1
408b8a:	57                   	push   %edi
408b8b:	8b 41 0c             	mov    0xc(%ecx),%eax
408b8e:	8b fe                	mov    %esi,%edi
408b90:	ff 71 14             	push   0x14(%ecx)
408b93:	d1 ef                	shr    $1,%edi
408b95:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
408b98:	0f af c7             	imul   %edi,%eax
408b9b:	03 c3                	add    %ebx,%eax
408b9d:	89 45 fc             	mov    %eax,-0x4(%ebp)
408ba0:	8d 45 fc             	lea    -0x4(%ebp),%eax
408ba3:	50                   	push   %eax
408ba4:	e8 53 fb ff ff       	call   0x4086fc
408ba9:	ff 75 14             	push   0x14(%ebp)
408bac:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
408baf:	ff 75 10             	push   0x10(%ebp)
408bb2:	e8 f1 f9 ff ff       	call   0x4085a8
408bb7:	85 c0                	test   %eax,%eax
408bb9:	7e 0c                	jle    0x408bc7
408bbb:	8b 5d fc             	mov    -0x4(%ebp),%ebx
408bbe:	83 c8 ff             	or     $0xffffffff,%eax
408bc1:	2b c7                	sub    %edi,%eax
408bc3:	03 f0                	add    %eax,%esi
408bc5:	eb 02                	jmp    0x408bc9
408bc7:	8b f7                	mov    %edi,%esi
408bc9:	8b 4d f8             	mov    -0x8(%ebp),%ecx
408bcc:	85 f6                	test   %esi,%esi
408bce:	75 bb                	jne    0x408b8b
408bd0:	5f                   	pop    %edi
408bd1:	5e                   	pop    %esi
408bd2:	8b c3                	mov    %ebx,%eax
408bd4:	5b                   	pop    %ebx
408bd5:	c9                   	leave
408bd6:	c2 10 00             	ret    $0x10
408bd9:	8b ff                	mov    %edi,%edi
408bdb:	55                   	push   %ebp
408bdc:	8b ec                	mov    %esp,%ebp
408bde:	83 ec 20             	sub    $0x20,%esp
408be1:	83 4d f8 ff          	orl    $0xffffffff,-0x8(%ebp)
408be5:	53                   	push   %ebx
408be6:	56                   	push   %esi
408be7:	8b 75 08             	mov    0x8(%ebp),%esi
408bea:	57                   	push   %edi