408a64:	56                   	push   %esi
408a65:	ff d3                	call   *%ebx
408a67:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
408a6d:	50                   	push   %eax
408a6e:	56                   	push   %esi
408a6f:	e8 ce 04 00 00       	call   0x408f42
408a74:	59                   	pop    %ecx
408a75:	59                   	pop    %ecx
408a76:	6a 09                	push   $0x9
408a78:	68 f4 d3 40 00       	push   $0x40d3f4
408a7d:	57                   	push   %edi
408a7e:	8b f7                	mov    %edi,%esi
408a80:	ff 15 28 a1 40 00    	call   *0x40a128
408a86:	83 c4 0c             	add    $0xc,%esp
408a89:	85 c0                	test   %eax,%eax
408a8b:	75 29                	jne    0x408ab6
408a8d:	8d 47 08             	lea    0x8(%edi),%eax
408a90:	50                   	push   %eax
408a91:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
408a97:	50                   	push   %eax
408a98:	e8 ab 05 00 00       	call   0x409048
408a9d:	59                   	pop    %ecx
408a9e:	59                   	pop    %ecx
408a9f:	68 04 01 00 00       	push   $0x104
408aa4:	57                   	push   %edi
408aa5:	ff d3                	call   *%ebx
408aa7:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
408aad:	50                   	push   %eax
408aae:	57                   	push   %edi
408aaf:	e8 8e 04 00 00       	call   0x408f42
408ab4:	59                   	pop    %ecx
408ab5:	59                   	pop    %ecx
408ab6:	80 3f 5c             	cmpb   $0x5c,(%edi)
408ab9:	75 26                	jne    0x408ae1
408abb:	80 7f 02 3a          	cmpb   $0x3a,0x2(%edi)
408abf:	8d 77 01             	lea    0x1(%edi),%esi
408ac2:	75 06                	jne    0x408aca
408ac4:	80 7e 02 5c          	cmpb   $0x5c,0x2(%esi)
408ac8:	74 17                	je     0x408ae1
408aca:	8a 06                	mov    (%esi),%al
408acc:	84 c0                	test   %al,%al
408ace:	74 07                	je     0x408ad7
408ad0:	3c 5c                	cmp    $0x5c,%al
408ad2:	74 03                	je     0x408ad7
408ad4:	46                   	inc    %esi
408ad5:	eb f3                	jmp    0x408aca
408ad7:	80 3e 00             	cmpb   $0x0,(%esi)
408ada:	75 04                	jne    0x408ae0
408adc:	8b f7                	mov    %edi,%esi
408ade:	eb 01                	jmp    0x408ae1
408ae0:	46                   	inc    %esi
408ae1:	8b c6                	mov    %esi,%eax
408ae3:	5f                   	pop    %edi
408ae4:	5e                   	pop    %esi
408ae5:	5b                   	pop    %ebx
408ae6:	c9                   	leave
408ae7:	c3                   	ret
408ae8:	55                   	push   %ebp
408ae9:	8b ec                	mov    %esp,%ebp
408aeb:	81 ec 18 01 00 00    	sub    $0x118,%esp
408af1:	56                   	push   %esi
408af2:	57                   	push   %edi
408af3:	8b 7d 14             	mov    0x14(%ebp),%edi
408af6:	85 ff                	test   %edi,%edi
408af8:	7e 16                	jle    0x408b10
408afa:	8b 75 0c             	mov    0xc(%ebp),%esi
408afd:	68 88 ca 40 00       	push   $0x40ca88
408b02:	56                   	push   %esi
408b03:	e8 40 05 00 00       	call   0x409048
408b08:	03 75 10             	add    0x10(%ebp),%esi
408b0b:	59                   	pop    %ecx
408b0c:	4f                   	dec    %edi
408b0d:	59                   	pop    %ecx
408b0e:	75 ed                	jne    0x408afd
408b10:	8d 45 ec             	lea    -0x14(%ebp),%eax
408b13:	50                   	push   %eax
408b14:	ff 75 08             	push   0x8(%ebp)
408b17:	e8 e6 03 00 00       	call   0x408f02
408b1c:	83 f8 01             	cmp    $0x1,%eax
408b1f:	89 45 fc             	mov    %eax,-0x4(%ebp)
408b22:	7c 11                	jl     0x408b35
408b24:	50                   	push   %eax
408b25:	ff 15 44 a1 40 00    	call   *0x40a144
408b2b:	8b f0                	mov    %eax,%esi
408b2d:	59                   	pop    %ecx
408b2e:	85 f6                	test   %esi,%esi
408b30:	89 75 f4             	mov    %esi,-0xc(%ebp)
408b33:	75 07                	jne    0x408b3c
408b35:	32 c0                	xor    %al,%al
408b37:	e9 df 00 00 00       	jmp    0x408c1b
408b3c:	53                   	push   %ebx
408b3d:	56                   	push   %esi
408b3e:	ff 75 fc             	push   -0x4(%ebp)
408b41:	6a 00                	push   $0x0
408b43:	ff 75 08             	push   0x8(%ebp)
408b46:	e8 b1 03 00 00       	call   0x408efc
408b4b:	85 c0                	test   %eax,%eax
408b4d:	75 07                	jne    0x408b56
408b4f:	32 db                	xor    %bl,%bl
408b51:	e9 b8 00 00 00       	jmp    0x408c0e
408b56:	8d 45 fc             	lea    -0x4(%ebp),%eax
408b59:	50                   	push   %eax
408b5a:	8d 45 f8             	lea    -0x8(%ebp),%eax
408b5d:	50                   	push   %eax
408b5e:	68 28 d4 40 00       	push   $0x40d428
408b63:	56                   	push   %esi
408b64:	e8 8d 03 00 00       	call   0x408ef6
408b69:	85 c0                	test   %eax,%eax
408b6b:	74 e2                	je     0x408b4f
408b6d:	8b 45 f8             	mov    -0x8(%ebp),%eax
408b70:	33 f6                	xor    %esi,%esi
408b72:	39 75 14             	cmp    %esi,0x14(%ebp)
408b75:	89 75 08             	mov    %esi,0x8(%ebp)
408b78:	66 8b 18             	mov    (%eax),%bx
408b7b:	66 8b 40 02          	mov    0x2(%eax),%ax
408b7f:	66 89 45 f0          	mov    %ax,-0x10(%ebp)
408b83:	0f 8e 83 00 00 00    	jle    0x408c0c
408b89:	bf f0 d0 40 00       	mov    $0x40d0f0,%edi
408b8e:	8b 07                	mov    (%edi),%eax
408b90:	85 c0                	test   %eax,%eax
408b92:	74 78                	je     0x408c0c
408b94:	50                   	push   %eax
408b95:	0f b7 45 f0          	movzwl -0x10(%ebp),%eax
408b99:	50                   	push   %eax
408b9a:	0f b7 c3             	movzwl %bx,%eax
408b9d:	50                   	push   %eax
408b9e:	8d 85 e8 fe ff ff    	lea    -0x118(%ebp),%eax
408ba4:	68 0c d4 40 00       	push   $0x40d40c
408ba9:	50                   	push   %eax
408baa:	ff 15 58 a1 40 00    	call   *0x40a158
408bb0:	83 c4 14             	add    $0x14,%esp
408bb3:	8d 45 fc             	lea    -0x4(%ebp),%eax
408bb6:	50                   	push   %eax
408bb7:	8d 45 f8             	lea    -0x8(%ebp),%eax
408bba:	50                   	push   %eax
408bbb:	8d 85 e8 fe ff ff    	lea    -0x118(%ebp),%eax
408bc1:	50                   	push   %eax
408bc2:	ff 75 f4             	push   -0xc(%ebp)
408bc5:	e8 2c 03 00 00       	call   0x408ef6
408bca:	85 c0                	test   %eax,%eax
408bcc:	74 2d                	je     0x408bfb
408bce:	8b 45 10             	mov    0x10(%ebp),%eax
408bd1:	39 45 fc             	cmp    %eax,-0x4(%ebp)
408bd4:	7c 04                	jl     0x408bda
408bd6:	48                   	dec    %eax
408bd7:	89 45 fc             	mov    %eax,-0x4(%ebp)
408bda:	ff 75 fc             	push   -0x4(%ebp)
408bdd:	8b 45 0c             	mov    0xc(%ebp),%eax
408be0:	03 c6                	add    %esi,%eax
408be2:	ff 75 f8             	push   -0x8(%ebp)
408be5:	50                   	push   %eax
408be6:	ff 15 64 a1 40 00    	call   *0x40a164
408bec:	8b 45 fc             	mov    -0x4(%ebp),%eax
408bef:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408bf2:	03 c6                	add    %esi,%eax
408bf4:	83 c4 0c             	add    $0xc,%esp
408bf7:	80 24 08 00          	andb   $0x0,(%eax,%ecx,1)
408bfb:	ff 45 08             	incl   0x8(%ebp)
408bfe:	03 75 10             	add    0x10(%ebp),%esi
408c01:	8b 45 08             	mov    0x8(%ebp),%eax
408c04:	83 c7 04             	add    $0x4,%edi
408c07:	3b 45 14             	cmp    0x14(%ebp),%eax
408c0a:	7c 82                	jl     0x408b8e
408c0c:	b3 01                	mov    $0x1,%bl
408c0e:	ff 75 f4             	push   -0xc(%ebp)
408c11:	ff 15 48 a1 40 00    	call   *0x40a148
408c17:	59                   	pop    %ecx
408c18:	8a c3                	mov    %bl,%al
408c1a:	5b                   	pop    %ebx
408c1b:	5f                   	pop    %edi
408c1c:	5e                   	pop    %esi
408c1d:	c9                   	leave
408c1e:	c3                   	ret
408c1f:	55                   	push   %ebp
408c20:	8b ec                	mov    %esp,%ebp
408c22:	51                   	push   %ecx
408c23:	51                   	push   %ecx
408c24:	a1 e4 d7 40 00       	mov    0x40d7e4,%eax
408c29:	85 c0                	test   %eax,%eax
408c2b:	74 38                	je     0x408c65
408c2d:	83 3d e8 d7 40 00 00 	cmpl   $0x0,0x40d7e8
408c34:	74 2f                	je     0x408c65
408c36:	8d 4d f8             	lea    -0x8(%ebp),%ecx
408c39:	51                   	push   %ecx
408c3a:	8d 4d fc             	lea    -0x4(%ebp),%ecx
408c3d:	6a 04                	push   $0x4
408c3f:	51                   	push   %ecx
408c40:	ff 75 08             	push   0x8(%ebp)
408c43:	ff d0                	call   *%eax
408c45:	85 c0                	test   %eax,%eax
408c47:	74 1c                	je     0x408c65
408c49:	68 04 01 00 00       	push   $0x104
408c4e:	ff 75 0c             	push   0xc(%ebp)
408c51:	ff 75 fc             	push   -0x4(%ebp)
408c54:	ff 75 08             	push   0x8(%ebp)
408c57:	ff 15 e8 d7 40 00    	call   *0x40d7e8
408c5d:	85 c0                	test   %eax,%eax
408c5f:	74 04                	je     0x408c65
408c61:	b0 01                	mov    $0x1,%al
408c63:	c9                   	leave
408c64:	c3                   	ret
408c65:	32 c0                	xor    %al,%al
408c67:	c9                   	leave
408c68:	c3                   	ret
408c69:	56                   	push   %esi
408c6a:	57                   	push   %edi
408c6b:	ff 74 24 0c          	push   0xc(%esp)
408c6f:	6a 00                	push   $0x0
408c71:	68 00 04 00 00       	push   $0x400
408c76:	ff 15 0c a1 40 00    	call   *0x40a10c
408c7c:	8b f0                	mov    %eax,%esi
408c7e:	85 f6                	test   %esi,%esi
408c80:	74 18                	je     0x408c9a
408c82:	56                   	push   %esi
408c83:	ff 15 c8 a0 40 00    	call   *0x40a0c8
408c89:	56                   	push   %esi
408c8a:	8b f8                	mov    %eax,%edi
408c8c:	ff 15 dc a0 40 00    	call   *0x40a0dc
408c92:	85 ff                	test   %edi,%edi
408c94:	74 04                	je     0x408c9a
408c96:	8b c7                	mov    %edi,%eax
408c98:	eb 43                	jmp    0x408cdd
408c9a:	8b 44 24 10          	mov    0x10(%esp),%eax
408c9e:	83 f8 04             	cmp    $0x4,%eax
408ca1:	7f 05                	jg     0x408ca8
408ca3:	6a 40                	push   $0x40
408ca5:	58                   	pop    %eax
408ca6:	eb 35                	jmp    0x408cdd
408ca8:	83 f8 06             	cmp    $0x6,%eax
408cab:	7f 07                	jg     0x408cb4
408cad:	b8 00 40 00 00       	mov    $0x4000,%eax
408cb2:	eb 29                	jmp    0x408cdd
408cb4:	83 f8 08             	cmp    $0x8,%eax
408cb7:	7f 04                	jg     0x408cbd
408cb9:	6a 20                	push   $0x20
408cbb:	eb e8                	jmp    0x408ca5
408cbd:	83 f8 0a             	cmp    $0xa,%eax
408cc0:	7f 07                	jg     0x408cc9
408cc2:	b8 00 80 00 00       	mov    $0x8000,%eax
408cc7:	eb 14                	jmp    0x408cdd
408cc9:	33 c9                	xor    %ecx,%ecx
408ccb:	83 f8 0d             	cmp    $0xd,%eax
408cce:	0f 9f c1             	setg   %cl
408cd1:	49                   	dec    %ecx
408cd2:	83 e1 80             	and    $0xffffff80,%ecx
408cd5:	81 c1 00 01 00 00    	add    $0x100,%ecx
408cdb:	8b c1                	mov    %ecx,%eax
408cdd:	5f                   	pop    %edi
408cde:	5e                   	pop    %esi
408cdf:	c3                   	ret
408ce0:	55                   	push   %ebp
408ce1:	8b ec                	mov    %esp,%ebp
408ce3:	83 ec 3c             	sub    $0x3c,%esp
408ce6:	6a 3c                	push   $0x3c
408ce8:	8d 45 c4             	lea    -0x3c(%ebp),%eax
408ceb:	6a 00                	push   $0x0
408ced:	50                   	push   %eax
408cee:	e8 49 02 00 00       	call   0x408f3c
408cf3:	ff 75 0c             	push   0xc(%ebp)
408cf6:	e8 23 fd ff ff       	call   0x408a1e
408cfb:	89 45 d4             	mov    %eax,-0x2c(%ebp)
408cfe:	8b 45 08             	mov    0x8(%ebp),%eax
408d01:	83 c4 10             	add    $0x10,%esp
408d04:	89 45 cc             	mov    %eax,-0x34(%ebp)
408d07:	8d 45 c4             	lea    -0x3c(%ebp),%eax
408d0a:	c7 45 c4 3c 00 00 00 	movl   $0x3c,-0x3c(%ebp)
408d11:	50                   	push   %eax
408d12:	c7 45 c8 0c 00 00 00 	movl   $0xc,-0x38(%ebp)
408d19:	c7 45 d0 44 d4 40 00 	movl   $0x40d444,-0x30(%ebp)
408d20:	c7 45 e0 05 00 00 00 	movl   $0x5,-0x20(%ebp)
408d27:	ff 15 d8 a1 40 00    	call   *0x40a1d8
408d2d:	c9                   	leave
408d2e:	c3                   	ret
408d2f:	55                   	push   %ebp
408d30:	8b ec                	mov    %esp,%ebp
408d32:	83 ec 20             	sub    $0x20,%esp
408d35:	8d 45 fc             	lea    -0x4(%ebp),%eax
408d38:	53                   	push   %ebx
408d39:	33 db                	xor    %ebx,%ebx
408d3b:	50                   	push   %eax
408d3c:	6a 28                	push   $0x28
408d3e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
408d41:	ff 15 d8 a0 40 00    	call   *0x40a0d8
408d47:	50                   	push   %eax
408d48:	ff 15 14 a0 40 00    	call   *0x40a014
408d4e:	85 c0                	test   %eax,%eax
408d50:	0f 84 d3 00 00 00    	je     0x408e29
408d56:	56                   	push   %esi
408d57:	8d 45 f0             	lea    -0x10(%ebp),%eax
408d5a:	57                   	push   %edi
408d5b:	8b 3d 18 a0 40 00    	mov    0x40a018,%edi
408d61:	be 9c d4 40 00       	mov    $0x40d49c,%esi
408d66:	50                   	push   %eax
408d67:	56                   	push   %esi
408d68:	53                   	push   %ebx
408d69:	ff d7                	call   *%edi
408d6b:	85 c0                	test   %eax,%eax
408d6d:	74 4f                	je     0x408dbe
408d6f:	8b 45 f0             	mov    -0x10(%ebp),%eax
408d72:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
408d79:	89 45 e4             	mov    %eax,-0x1c(%ebp)
408d7c:	8b 45 f4             	mov    -0xc(%ebp),%eax
408d7f:	89 45 e8             	mov    %eax,-0x18(%ebp)
408d82:	8d 45 f8             	lea    -0x8(%ebp),%eax
408d85:	50                   	push   %eax
408d86:	53                   	push   %ebx
408d87:	8d 45 e0             	lea    -0x20(%ebp),%eax
408d8a:	6a 10                	push   $0x10
408d8c:	50                   	push   %eax
408d8d:	53                   	push   %ebx
408d8e:	ff 75 fc             	push   -0x4(%ebp)
408d91:	c7 45 ec 02 00 00 00 	movl   $0x2,-0x14(%ebp)
408d98:	ff 15 1c a0 40 00    	call   *0x40a01c
408d9e:	85 c0                	test   %eax,%eax
408da0:	74 0d                	je     0x408daf
408da2:	ff 15 cc a0 40 00    	call   *0x40a0cc
408da8:	3d 14 05 00 00       	cmp    $0x514,%eax
408dad:	75 0f                	jne    0x408dbe
408daf:	56                   	push   %esi
408db0:	68 64 d4 40 00       	push   $0x40d464
408db5:	53                   	push   %ebx
408db6:	e8 4a f8 ff ff       	call   0x408605
408dbb:	83 c4 0c             	add    $0xc,%esp
408dbe:	8d 45 f0             	lea    -0x10(%ebp),%eax
408dc1:	be 50 d4 40 00       	mov    $0x40d450,%esi
408dc6:	50                   	push   %eax
408dc7:	56                   	push   %esi
408dc8:	53                   	push   %ebx
408dc9:	ff d7                	call   *%edi
408dcb:	85 c0                	test   %eax,%eax
408dcd:	74 4f                	je     0x408e1e
408dcf:	8b 45 f0             	mov    -0x10(%ebp),%eax
408dd2:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
408dd9:	89 45 e4             	mov    %eax,-0x1c(%ebp)
408ddc:	8b 45 f4             	mov    -0xc(%ebp),%eax
408ddf:	89 45 e8             	mov    %eax,-0x18(%ebp)
408de2:	8d 45 f8             	lea    -0x8(%ebp),%eax
408de5:	50                   	push   %eax
408de6:	53                   	push   %ebx
408de7:	8d 45 e0             	lea    -0x20(%ebp),%eax
408dea:	6a 10                	push   $0x10
408dec:	50                   	push   %eax
408ded:	53                   	push   %ebx
408dee:	ff 75 fc             	push   -0x4(%ebp)
408df1:	c7 45 ec 02 00 00 00 	movl   $0x2,-0x14(%ebp)
408df8:	ff 15 1c a0 40 00    	call   *0x40a01c
408dfe:	85 c0                	test   %eax,%eax
408e00:	74 0d                	je     0x408e0f
408e02:	ff 15 cc a0 40 00    	call   *0x40a0cc
408e08:	3d 14 05 00 00       	cmp    $0x514,%eax