406a4d:	83 23 00             	andl   $0x0,(%ebx)
406a50:	85 ff                	test   %edi,%edi
406a52:	74 2a                	je     0x406a7e
406a54:	80 3f 00             	cmpb   $0x0,(%edi)
406a57:	56                   	push   %esi
406a58:	8b f7                	mov    %edi,%esi
406a5a:	74 06                	je     0x406a62
406a5c:	46                   	inc    %esi
406a5d:	80 3e 00             	cmpb   $0x0,(%esi)
406a60:	75 fa                	jne    0x406a5c
406a62:	2b f7                	sub    %edi,%esi
406a64:	46                   	inc    %esi
406a65:	56                   	push   %esi
406a66:	e8 12 7a 00 00       	call   0x40e47d
406a6b:	89 03                	mov    %eax,(%ebx)
406a6d:	59                   	pop    %ecx
406a6e:	85 c0                	test   %eax,%eax
406a70:	74 0b                	je     0x406a7d
406a72:	56                   	push   %esi
406a73:	57                   	push   %edi
406a74:	50                   	push   %eax
406a75:	e8 f6 1e 00 00       	call   0x408970
406a7a:	83 c4 0c             	add    $0xc,%esp
406a7d:	5e                   	pop    %esi
406a7e:	5f                   	pop    %edi
406a7f:	8b c3                	mov    %ebx,%eax
406a81:	5b                   	pop    %ebx
406a82:	5d                   	pop    %ebp
406a83:	c2 04 00             	ret    $0x4
406a86:	55                   	push   %ebp
406a87:	8b ec                	mov    %esp,%ebp
406a89:	56                   	push   %esi
406a8a:	8b f1                	mov    %ecx,%esi
406a8c:	e8 76 ff ff ff       	call   0x406a07
406a91:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
406a95:	74 0a                	je     0x406aa1
406a97:	6a 20                	push   $0x20
406a99:	56                   	push   %esi
406a9a:	e8 ad 0b 00 00       	call   0x40764c
406a9f:	59                   	pop    %ecx
406aa0:	59                   	pop    %ecx
406aa1:	8b c6                	mov    %esi,%eax
406aa3:	5e                   	pop    %esi
406aa4:	5d                   	pop    %ebp
406aa5:	c2 04 00             	ret    $0x4
406aa8:	55                   	push   %ebp
406aa9:	8b ec                	mov    %esp,%ebp
406aab:	51                   	push   %ecx
406aac:	6a 08                	push   $0x8
406aae:	e8 69 0b 00 00       	call   0x40761c
406ab3:	89 45 fc             	mov    %eax,-0x4(%ebp)
406ab6:	59                   	pop    %ecx
406ab7:	85 c0                	test   %eax,%eax
406ab9:	74 10                	je     0x406acb
406abb:	8b 0d f4 40 43 00    	mov    0x4340f4,%ecx
406ac1:	89 08                	mov    %ecx,(%eax)
406ac3:	8b 4d 08             	mov    0x8(%ebp),%ecx
406ac6:	89 48 04             	mov    %ecx,0x4(%eax)
406ac9:	eb 02                	jmp    0x406acd
406acb:	33 c0                	xor    %eax,%eax
406acd:	a3 f4 40 43 00       	mov    %eax,0x4340f4
406ad2:	c9                   	leave
406ad3:	c3                   	ret
406ad4:	a1 fc 40 43 00       	mov    0x4340fc,%eax
406ad9:	c3                   	ret
406ada:	6a 04                	push   $0x4
406adc:	b8 5e 2f 42 00       	mov    $0x422f5e,%eax
406ae1:	e8 56 10 00 00       	call   0x407b3c
406ae6:	33 f6                	xor    %esi,%esi
406ae8:	8d 4d f0             	lea    -0x10(%ebp),%ecx
406aeb:	56                   	push   %esi
406aec:	e8 50 e9 ff ff       	call   0x405441
406af1:	8b 3d fc 40 43 00    	mov    0x4340fc,%edi
406af7:	89 75 fc             	mov    %esi,-0x4(%ebp)
406afa:	85 ff                	test   %edi,%edi
406afc:	75 45                	jne    0x406b43
406afe:	56                   	push   %esi
406aff:	e8 3b 01 00 00       	call   0x406c3f
406b04:	8b f8                	mov    %eax,%edi
406b06:	57                   	push   %edi
406b07:	e8 56 01 00 00       	call   0x406c62
406b0c:	59                   	pop    %ecx
406b0d:	59                   	pop    %ecx
406b0e:	68 a0 44 42 00       	push   $0x4244a0
406b13:	8d 4f 18             	lea    0x18(%edi),%ecx
406b16:	c7 47 10 3f 00 00 00 	movl   $0x3f,0x10(%edi)
406b1d:	e8 10 ff ff ff       	call   0x406a32
406b22:	89 3d d4 40 43 00    	mov    %edi,0x4340d4
406b28:	8b 07                	mov    (%edi),%eax
406b2a:	8b 70 04             	mov    0x4(%eax),%esi
406b2d:	8b ce                	mov    %esi,%ecx
406b2f:	ff 15 54 41 42 00    	call   *0x424154
406b35:	8b cf                	mov    %edi,%ecx
406b37:	ff d6                	call   *%esi
406b39:	a1 d4 40 43 00       	mov    0x4340d4,%eax
406b3e:	a3 f0 40 43 00       	mov    %eax,0x4340f0
406b43:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
406b47:	74 11                	je     0x406b5a
406b49:	8b 07                	mov    (%edi),%eax
406b4b:	8b 70 04             	mov    0x4(%eax),%esi
406b4e:	8b ce                	mov    %esi,%ecx
406b50:	ff 15 54 41 42 00    	call   *0x424154
406b56:	8b cf                	mov    %edi,%ecx
406b58:	ff d6                	call   *%esi
406b5a:	8d 4d f0             	lea    -0x10(%ebp),%ecx
406b5d:	e8 37 e9 ff ff       	call   0x405499
406b62:	8b c7                	mov    %edi,%eax
406b64:	e8 b0 0f 00 00       	call   0x407b19
406b69:	c3                   	ret
406b6a:	55                   	push   %ebp
406b6b:	8b ec                	mov    %esp,%ebp
406b6d:	51                   	push   %ecx
406b6e:	51                   	push   %ecx
406b6f:	53                   	push   %ebx
406b70:	57                   	push   %edi
406b71:	6a 00                	push   $0x0
406b73:	8d 4d f8             	lea    -0x8(%ebp),%ecx
406b76:	e8 c6 e8 ff ff       	call   0x405441
406b7b:	8b 5d 08             	mov    0x8(%ebp),%ebx
406b7e:	8b 7b 0c             	mov    0xc(%ebx),%edi
406b81:	85 ff                	test   %edi,%edi
406b83:	74 40                	je     0x406bc5
406b85:	56                   	push   %esi
406b86:	8b 43 08             	mov    0x8(%ebx),%eax
406b89:	4f                   	dec    %edi
406b8a:	8b 04 b8             	mov    (%eax,%edi,4),%eax
406b8d:	89 45 fc             	mov    %eax,-0x4(%ebp)
406b90:	85 c0                	test   %eax,%eax
406b92:	74 2c                	je     0x406bc0
406b94:	8b 00                	mov    (%eax),%eax
406b96:	8b 70 08             	mov    0x8(%eax),%esi
406b99:	8b ce                	mov    %esi,%ecx
406b9b:	ff 15 54 41 42 00    	call   *0x424154
406ba1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406ba4:	ff d6                	call   *%esi
406ba6:	89 45 fc             	mov    %eax,-0x4(%ebp)
406ba9:	85 c0                	test   %eax,%eax
406bab:	74 13                	je     0x406bc0
406bad:	8b 08                	mov    (%eax),%ecx
406baf:	6a 01                	push   $0x1
406bb1:	8b 31                	mov    (%ecx),%esi
406bb3:	8b ce                	mov    %esi,%ecx
406bb5:	ff 15 54 41 42 00    	call   *0x424154
406bbb:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406bbe:	ff d6                	call   *%esi
406bc0:	85 ff                	test   %edi,%edi
406bc2:	75 c2                	jne    0x406b86
406bc4:	5e                   	pop    %esi
406bc5:	ff 73 08             	push   0x8(%ebx)
406bc8:	e8 46 60 00 00       	call   0x40cc13
406bcd:	59                   	pop    %ecx
406bce:	8d 4d f8             	lea    -0x8(%ebp),%ecx
406bd1:	e8 c3 e8 ff ff       	call   0x405499
406bd6:	5f                   	pop    %edi
406bd7:	5b                   	pop    %ebx
406bd8:	c9                   	leave
406bd9:	c3                   	ret
406bda:	55                   	push   %ebp
406bdb:	8b ec                	mov    %esp,%ebp
406bdd:	6a 00                	push   $0x0
406bdf:	6a 00                	push   $0x0
406be1:	e8 f7 7a 00 00       	call   0x40e6dd
406be6:	59                   	pop    %ecx
406be7:	59                   	pop    %ecx
406be8:	85 c0                	test   %eax,%eax
406bea:	75 05                	jne    0x406bf1
406bec:	b8 db f6 42 00       	mov    $0x42f6db,%eax
406bf1:	56                   	push   %esi
406bf2:	8b 75 08             	mov    0x8(%ebp),%esi
406bf5:	50                   	push   %eax
406bf6:	8d 4e 24             	lea    0x24(%esi),%ecx
406bf9:	e8 34 fe ff ff       	call   0x406a32
406bfe:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
406c02:	74 10                	je     0x406c14
406c04:	ff 75 0c             	push   0xc(%ebp)
406c07:	6a 00                	push   $0x0
406c09:	e8 cf 7a 00 00       	call   0x40e6dd
406c0e:	59                   	pop    %ecx
406c0f:	59                   	pop    %ecx
406c10:	85 c0                	test   %eax,%eax
406c12:	75 05                	jne    0x406c19
406c14:	b8 9c 44 42 00       	mov    $0x42449c,%eax
406c19:	50                   	push   %eax
406c1a:	8d 4e 2c             	lea    0x2c(%esi),%ecx
406c1d:	e8 10 fe ff ff       	call   0x406a32
406c22:	5e                   	pop    %esi
406c23:	5d                   	pop    %ebp
406c24:	c3                   	ret
406c25:	55                   	push   %ebp
406c26:	8b ec                	mov    %esp,%ebp
406c28:	8b 45 08             	mov    0x8(%ebp),%eax
406c2b:	83 78 24 00          	cmpl   $0x0,0x24(%eax)
406c2f:	74 0c                	je     0x406c3d
406c31:	ff 70 24             	push   0x24(%eax)
406c34:	6a 00                	push   $0x0
406c36:	e8 a2 7a 00 00       	call   0x40e6dd
406c3b:	59                   	pop    %ecx
406c3c:	59                   	pop    %ecx
406c3d:	5d                   	pop    %ebp
406c3e:	c3                   	ret
406c3f:	55                   	push   %ebp
406c40:	8b ec                	mov    %esp,%ebp
406c42:	51                   	push   %ecx
406c43:	6a 20                	push   $0x20
406c45:	e8 d2 09 00 00       	call   0x40761c
406c4a:	89 45 fc             	mov    %eax,-0x4(%ebp)
406c4d:	59                   	pop    %ecx
406c4e:	85 c0                	test   %eax,%eax
406c50:	74 0c                	je     0x406c5e
406c52:	ff 75 08             	push   0x8(%ebp)
406c55:	8b c8                	mov    %eax,%ecx
406c57:	e8 12 fd ff ff       	call   0x40696e
406c5c:	c9                   	leave
406c5d:	c3                   	ret
406c5e:	33 c0                	xor    %eax,%eax
406c60:	c9                   	leave
406c61:	c3                   	ret
406c62:	55                   	push   %ebp
406c63:	8b ec                	mov    %esp,%ebp
406c65:	80 3d 00 41 43 00 00 	cmpb   $0x0,0x434100
406c6c:	75 12                	jne    0x406c80
406c6e:	68 c5 6c 40 00       	push   $0x406cc5
406c73:	c6 05 00 41 43 00 01 	movb   $0x1,0x434100
406c7a:	e8 5b 05 00 00       	call   0x4071da
406c7f:	59                   	pop    %ecx
406c80:	8b 45 08             	mov    0x8(%ebp),%eax
406c83:	a3 fc 40 43 00       	mov    %eax,0x4340fc
406c88:	5d                   	pop    %ebp
406c89:	c3                   	ret
406c8a:	55                   	push   %ebp
406c8b:	8b ec                	mov    %esp,%ebp
406c8d:	8b 45 08             	mov    0x8(%ebp),%eax
406c90:	57                   	push   %edi
406c91:	8b 38                	mov    (%eax),%edi
406c93:	85 ff                	test   %edi,%edi
406c95:	74 2b                	je     0x406cc2
406c97:	8b 07                	mov    (%edi),%eax
406c99:	56                   	push   %esi
406c9a:	8b 70 08             	mov    0x8(%eax),%esi
406c9d:	8b ce                	mov    %esi,%ecx
406c9f:	ff 15 54 41 42 00    	call   *0x424154
406ca5:	8b cf                	mov    %edi,%ecx
406ca7:	ff d6                	call   *%esi
406ca9:	8b f8                	mov    %eax,%edi
406cab:	85 ff                	test   %edi,%edi
406cad:	74 12                	je     0x406cc1
406caf:	8b 0f                	mov    (%edi),%ecx
406cb1:	6a 01                	push   $0x1
406cb3:	8b 31                	mov    (%ecx),%esi
406cb5:	8b ce                	mov    %esi,%ecx
406cb7:	ff 15 54 41 42 00    	call   *0x424154
406cbd:	8b cf                	mov    %edi,%ecx
406cbf:	ff d6                	call   *%esi
406cc1:	5e                   	pop    %esi
406cc2:	5f                   	pop    %edi
406cc3:	5d                   	pop    %ebp
406cc4:	c3                   	ret
406cc5:	55                   	push   %ebp
406cc6:	8b ec                	mov    %esp,%ebp
406cc8:	51                   	push   %ecx
406cc9:	6a 00                	push   $0x0
406ccb:	8d 4d fc             	lea    -0x4(%ebp),%ecx
406cce:	e8 6e e7 ff ff       	call   0x405441
406cd3:	68 fc 40 43 00       	push   $0x4340fc
406cd8:	e8 ad ff ff ff       	call   0x406c8a
406cdd:	83 25 fc 40 43 00 00 	andl   $0x0,0x4340fc
406ce4:	59                   	pop    %ecx
406ce5:	8d 4d fc             	lea    -0x4(%ebp),%ecx
406ce8:	e8 ac e7 ff ff       	call   0x405499
406ced:	c9                   	leave
406cee:	c3                   	ret
406cef:	e9 56 23 00 00       	jmp    0x40904a
406cf4:	55                   	push   %ebp
406cf5:	8b ec                	mov    %esp,%ebp
406cf7:	8b 4d 08             	mov    0x8(%ebp),%ecx
406cfa:	b8 20 47 42 00       	mov    $0x424720,%eax
406cff:	39 08                	cmp    %ecx,(%eax)
406d01:	74 11                	je     0x406d14
406d03:	83 c0 08             	add    $0x8,%eax
406d06:	3d 90 49 42 00       	cmp    $0x424990,%eax
406d0b:	75 f2                	jne    0x406cff
406d0d:	b8 b4 4f 42 00       	mov    $0x424fb4,%eax
406d12:	5d                   	pop    %ebp
406d13:	c3                   	ret
406d14:	8b 40 04             	mov    0x4(%eax),%eax
406d17:	5d                   	pop    %ebp
406d18:	c3                   	ret
406d19:	55                   	push   %ebp
406d1a:	8b ec                	mov    %esp,%ebp
406d1c:	53                   	push   %ebx
406d1d:	e8 32 7b 00 00       	call   0x40e854
406d22:	8b 5d 08             	mov    0x8(%ebp),%ebx
406d25:	6a 02                	push   $0x2
406d27:	68 00 01 00 00       	push   $0x100
406d2c:	89 03                	mov    %eax,(%ebx)
406d2e:	e8 de 48 00 00       	call   0x40b611
406d33:	89 43 04             	mov    %eax,0x4(%ebx)
406d36:	59                   	pop    %ecx
406d37:	59                   	pop    %ecx
406d38:	85 c0                	test   %eax,%eax
406d3a:	74 1e                	je     0x406d5a
406d3c:	56                   	push   %esi
406d3d:	57                   	push   %edi
406d3e:	e8 d2 79 00 00       	call   0x40e715
406d43:	8b 7b 04             	mov    0x4(%ebx),%edi
406d46:	b9 80 00 00 00       	mov    $0x80,%ecx
406d4b:	8b f0                	mov    %eax,%esi
406d4d:	c7 43 08 01 00 00 00 	movl   $0x1,0x8(%ebx)
406d54:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
406d56:	5f                   	pop    %edi
406d57:	5e                   	pop    %esi
406d58:	eb 0c                	jmp    0x406d66
406d5a:	e8 b6 79 00 00       	call   0x40e715
406d5f:	83 63 08 00          	andl   $0x0,0x8(%ebx)
406d63:	89 43 04             	mov    %eax,0x4(%ebx)
406d66:	e8 0e 7b 00 00       	call   0x40e879
406d6b:	8b 40 04             	mov    0x4(%eax),%eax
406d6e:	89 43 0c             	mov    %eax,0xc(%ebx)
406d71:	85 c0                	test   %eax,%eax
406d73:	74 0a                	je     0x406d7f
406d75:	50                   	push   %eax
406d76:	e8 a8 7f 00 00       	call   0x40ed23
406d7b:	59                   	pop    %ecx
406d7c:	89 43 0c             	mov    %eax,0xc(%ebx)
406d7f:	8b c3                	mov    %ebx,%eax
406d81:	5b                   	pop    %ebx
406d82:	5d                   	pop    %ebp
406d83:	c3                   	ret
406d84:	55                   	push   %ebp
406d85:	8b ec                	mov    %esp,%ebp
406d87:	83 ec 10             	sub    $0x10,%esp
406d8a:	56                   	push   %esi
406d8b:	8b 75 0c             	mov    0xc(%ebp),%esi
406d8e:	57                   	push   %edi
406d8f:	85 f6                	test   %esi,%esi
406d91:	75 0f                	jne    0x406da2
406d93:	e8 e1 7a 00 00       	call   0x40e879
406d98:	8b 78 08             	mov    0x8(%eax),%edi
406d9b:	e8 b4 7a 00 00       	call   0x40e854
406da0:	eb 05                	jmp    0x406da7
406da2:	8b 7e 0c             	mov    0xc(%esi),%edi
406da5:	8b 06                	mov    (%esi),%eax
406da7:	89 45 f4             	mov    %eax,-0xc(%ebp)
406daa:	85 ff                	test   %edi,%edi
406dac:	75 1d                	jne    0x406dcb
406dae:	8b 45 08             	mov    0x8(%ebp),%eax
406db1:	83 f8 41             	cmp    $0x41,%eax
406db4:	0f 8c c4 00 00 00    	jl     0x406e7e
406dba:	83 f8 5a             	cmp    $0x5a,%eax
406dbd:	0f 8f bb 00 00 00    	jg     0x406e7e