4299b5:	8b 55 10             	mov    0x10(%ebp),%edx
4299b8:	8b 4d 08             	mov    0x8(%ebp),%ecx
4299bb:	8b 45 0c             	mov    0xc(%ebp),%eax
4299be:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4299c1:	89 45 f8             	mov    %eax,-0x8(%ebp)
4299c4:	89 55 f4             	mov    %edx,-0xc(%ebp)
4299c7:	53                   	push   %ebx
4299c8:	8b 5d 14             	mov    0x14(%ebp),%ebx
4299cb:	56                   	push   %esi
4299cc:	57                   	push   %edi
4299cd:	85 d2                	test   %edx,%edx
4299cf:	0f 84 ed 01 00 00    	je     0x429bc2
4299d5:	85 c0                	test   %eax,%eax
4299d7:	75 2a                	jne    0x429a03
4299d9:	33 c0                	xor    %eax,%eax
4299db:	c6 43 24 01          	movb   $0x1,0x24(%ebx)
4299df:	53                   	push   %ebx
4299e0:	50                   	push   %eax
4299e1:	50                   	push   %eax
4299e2:	50                   	push   %eax
4299e3:	89 43 20             	mov    %eax,0x20(%ebx)
4299e6:	50                   	push   %eax
4299e7:	c6 43 1c 01          	movb   $0x1,0x1c(%ebx)
4299eb:	50                   	push   %eax
4299ec:	c7 43 18 16 00 00 00 	movl   $0x16,0x18(%ebx)
4299f3:	e8 79 39 fe ff       	call   0x40d371
4299f8:	83 c4 18             	add    $0x18,%esp
4299fb:	83 c8 ff             	or     $0xffffffff,%eax
4299fe:	e9 c1 01 00 00       	jmp    0x429bc4
429a03:	8b c1                	mov    %ecx,%eax
429a05:	8b f1                	mov    %ecx,%esi
429a07:	83 e0 3f             	and    $0x3f,%eax
429a0a:	c1 fe 06             	sar    $0x6,%esi
429a0d:	6b f8 38             	imul   $0x38,%eax,%edi
429a10:	89 75 ec             	mov    %esi,-0x14(%ebp)
429a13:	8b 04 b5 00 f8 43 00 	mov    0x43f800(,%esi,4),%eax
429a1a:	89 7d e8             	mov    %edi,-0x18(%ebp)
429a1d:	8a 44 07 29          	mov    0x29(%edi,%eax,1),%al
429a21:	88 45 ff             	mov    %al,-0x1(%ebp)
429a24:	3c 02                	cmp    $0x2,%al
429a26:	74 04                	je     0x429a2c
429a28:	3c 01                	cmp    $0x1,%al
429a2a:	75 08                	jne    0x429a34
429a2c:	8b c2                	mov    %edx,%eax
429a2e:	f7 d0                	not    %eax
429a30:	a8 01                	test   $0x1,%al
429a32:	74 a5                	je     0x4299d9
429a34:	8b 55 ec             	mov    -0x14(%ebp),%edx
429a37:	33 f6                	xor    %esi,%esi
429a39:	8b 04 95 00 f8 43 00 	mov    0x43f800(,%edx,4),%eax
429a40:	f6 44 07 28 20       	testb  $0x20,0x28(%edi,%eax,1)
429a45:	74 11                	je     0x429a58
429a47:	53                   	push   %ebx
429a48:	6a 02                	push   $0x2
429a4a:	56                   	push   %esi
429a4b:	56                   	push   %esi
429a4c:	51                   	push   %ecx
429a4d:	e8 e8 7f ff ff       	call   0x421a3a
429a52:	8b 4d f0             	mov    -0x10(%ebp),%ecx
429a55:	83 c4 14             	add    $0x14,%esp
429a58:	53                   	push   %ebx
429a59:	8b fe                	mov    %esi,%edi
429a5b:	51                   	push   %ecx
429a5c:	89 7d dc             	mov    %edi,-0x24(%ebp)
429a5f:	e8 8e fa ff ff       	call   0x4294f2
429a64:	59                   	pop    %ecx
429a65:	59                   	pop    %ecx
429a66:	84 c0                	test   %al,%al
429a68:	74 47                	je     0x429ab1
429a6a:	0f be 45 ff          	movsbl -0x1(%ebp),%eax
429a6e:	2b c6                	sub    %esi,%eax
429a70:	74 27                	je     0x429a99
429a72:	83 e8 01             	sub    $0x1,%eax
429a75:	74 09                	je     0x429a80
429a77:	83 e8 01             	sub    $0x1,%eax
429a7a:	0f 85 da 00 00 00    	jne    0x429b5a
429a80:	ff 75 f4             	push   -0xc(%ebp)
429a83:	8d 45 d0             	lea    -0x30(%ebp),%eax
429a86:	ff 75 f8             	push   -0x8(%ebp)
429a89:	50                   	push   %eax
429a8a:	e8 fb f9 ff ff       	call   0x42948a
429a8f:	83 c4 0c             	add    $0xc,%esp
429a92:	8b f0                	mov    %eax,%esi
429a94:	e9 af 00 00 00       	jmp    0x429b48
429a99:	53                   	push   %ebx
429a9a:	ff 75 f4             	push   -0xc(%ebp)
429a9d:	8d 45 d0             	lea    -0x30(%ebp),%eax
429aa0:	ff 75 f8             	push   -0x8(%ebp)
429aa3:	ff 75 f0             	push   -0x10(%ebp)
429aa6:	50                   	push   %eax
429aa7:	e8 17 f6 ff ff       	call   0x4290c3
429aac:	83 c4 14             	add    $0x14,%esp
429aaf:	eb e1                	jmp    0x429a92
429ab1:	8b 55 ec             	mov    -0x14(%ebp),%edx
429ab4:	8b 4d e8             	mov    -0x18(%ebp),%ecx
429ab7:	8b 04 95 00 f8 43 00 	mov    0x43f800(,%edx,4),%eax
429abe:	80 7c 08 28 00       	cmpb   $0x0,0x28(%eax,%ecx,1)
429ac3:	7d 55                	jge    0x429b1a
429ac5:	0f be 45 ff          	movsbl -0x1(%ebp),%eax
429ac9:	2b c6                	sub    %esi,%eax
429acb:	74 39                	je     0x429b06
429acd:	83 e8 01             	sub    $0x1,%eax
429ad0:	74 20                	je     0x429af2
429ad2:	83 e8 01             	sub    $0x1,%eax
429ad5:	0f 85 85 00 00 00    	jne    0x429b60
429adb:	ff 75 f4             	push   -0xc(%ebp)
429ade:	8d 45 d0             	lea    -0x30(%ebp),%eax
429ae1:	ff 75 f8             	push   -0x8(%ebp)
429ae4:	ff 75 f0             	push   -0x10(%ebp)
429ae7:	50                   	push   %eax
429ae8:	e8 5d fb ff ff       	call   0x42964a
429aed:	83 c4 10             	add    $0x10,%esp
429af0:	eb a0                	jmp    0x429a92
429af2:	ff 75 f4             	push   -0xc(%ebp)
429af5:	8d 45 d0             	lea    -0x30(%ebp),%eax
429af8:	ff 75 f8             	push   -0x8(%ebp)
429afb:	ff 75 f0             	push   -0x10(%ebp)
429afe:	50                   	push   %eax
429aff:	e8 2f fc ff ff       	call   0x429733
429b04:	eb e7                	jmp    0x429aed
429b06:	ff 75 f4             	push   -0xc(%ebp)
429b09:	8d 45 d0             	lea    -0x30(%ebp),%eax
429b0c:	ff 75 f8             	push   -0x8(%ebp)
429b0f:	ff 75 f0             	push   -0x10(%ebp)
429b12:	50                   	push   %eax
429b13:	e8 57 fa ff ff       	call   0x42956f
429b18:	eb d3                	jmp    0x429aed
429b1a:	8b 4c 08 18          	mov    0x18(%eax,%ecx,1),%ecx
429b1e:	8d 7d d0             	lea    -0x30(%ebp),%edi
429b21:	33 c0                	xor    %eax,%eax
429b23:	ab                   	stos   %eax,%es:(%edi)
429b24:	56                   	push   %esi
429b25:	ab                   	stos   %eax,%es:(%edi)
429b26:	ab                   	stos   %eax,%es:(%edi)
429b27:	8d 45 d4             	lea    -0x2c(%ebp),%eax
429b2a:	50                   	push   %eax
429b2b:	ff 75 f4             	push   -0xc(%ebp)
429b2e:	ff 75 f8             	push   -0x8(%ebp)
429b31:	51                   	push   %ecx
429b32:	ff 15 e0 10 43 00    	call   *0x4310e0
429b38:	85 c0                	test   %eax,%eax
429b3a:	75 09                	jne    0x429b45
429b3c:	ff 15 08 11 43 00    	call   *0x431108
429b42:	89 45 d0             	mov    %eax,-0x30(%ebp)
429b45:	8d 75 d0             	lea    -0x30(%ebp),%esi
429b48:	8d 7d dc             	lea    -0x24(%ebp),%edi
429b4b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
429b4c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
429b4d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
429b4e:	8b 45 e0             	mov    -0x20(%ebp),%eax
429b51:	85 c0                	test   %eax,%eax
429b53:	75 68                	jne    0x429bbd
429b55:	8b 7d dc             	mov    -0x24(%ebp),%edi
429b58:	33 f6                	xor    %esi,%esi
429b5a:	8b 55 ec             	mov    -0x14(%ebp),%edx
429b5d:	8b 4d e8             	mov    -0x18(%ebp),%ecx
429b60:	85 ff                	test   %edi,%edi
429b62:	74 2c                	je     0x429b90
429b64:	6a 05                	push   $0x5
429b66:	58                   	pop    %eax
429b67:	3b f8                	cmp    %eax,%edi
429b69:	75 17                	jne    0x429b82
429b6b:	c6 43 1c 01          	movb   $0x1,0x1c(%ebx)
429b6f:	c7 43 18 09 00 00 00 	movl   $0x9,0x18(%ebx)
429b76:	c6 43 24 01          	movb   $0x1,0x24(%ebx)
429b7a:	89 43 20             	mov    %eax,0x20(%ebx)
429b7d:	e9 79 fe ff ff       	jmp    0x4299fb
429b82:	53                   	push   %ebx
429b83:	57                   	push   %edi
429b84:	e8 b1 2a ff ff       	call   0x41c63a
429b89:	59                   	pop    %ecx
429b8a:	59                   	pop    %ecx
429b8b:	e9 6b fe ff ff       	jmp    0x4299fb
429b90:	8b 04 95 00 f8 43 00 	mov    0x43f800(,%edx,4),%eax
429b97:	f6 44 08 28 40       	testb  $0x40,0x28(%eax,%ecx,1)
429b9c:	74 08                	je     0x429ba6
429b9e:	8b 45 f8             	mov    -0x8(%ebp),%eax
429ba1:	80 38 1a             	cmpb   $0x1a,(%eax)
429ba4:	74 1c                	je     0x429bc2
429ba6:	c6 43 1c 01          	movb   $0x1,0x1c(%ebx)
429baa:	c7 43 18 1c 00 00 00 	movl   $0x1c,0x18(%ebx)
429bb1:	c6 43 24 01          	movb   $0x1,0x24(%ebx)
429bb5:	89 73 20             	mov    %esi,0x20(%ebx)
429bb8:	e9 3e fe ff ff       	jmp    0x4299fb
429bbd:	2b 45 e4             	sub    -0x1c(%ebp),%eax
429bc0:	eb 02                	jmp    0x429bc4
429bc2:	33 c0                	xor    %eax,%eax
429bc4:	5f                   	pop    %edi
429bc5:	5e                   	pop    %esi
429bc6:	5b                   	pop    %ebx
429bc7:	c9                   	leave
429bc8:	c3                   	ret
429bc9:	8b ff                	mov    %edi,%edi
429bcb:	55                   	push   %ebp
429bcc:	8b ec                	mov    %esp,%ebp
429bce:	ff 05 f0 f7 43 00    	incl   0x43f7f0
429bd4:	56                   	push   %esi
429bd5:	8b 75 08             	mov    0x8(%ebp),%esi
429bd8:	57                   	push   %edi
429bd9:	6a 01                	push   $0x1
429bdb:	bf 00 10 00 00       	mov    $0x1000,%edi
429be0:	57                   	push   %edi
429be1:	e8 ca cf fd ff       	call   0x406bb0
429be6:	6a 00                	push   $0x0
429be8:	89 46 04             	mov    %eax,0x4(%esi)
429beb:	e8 20 d0 fd ff       	call   0x406c10
429bf0:	83 c4 0c             	add    $0xc,%esp
429bf3:	8d 46 0c             	lea    0xc(%esi),%eax
429bf6:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
429bfa:	74 08                	je     0x429c04
429bfc:	6a 40                	push   $0x40
429bfe:	59                   	pop    %ecx
429bff:	f0 09 08             	lock or %ecx,(%eax)
429c02:	eb 11                	jmp    0x429c15
429c04:	b9 00 04 00 00       	mov    $0x400,%ecx
429c09:	f0 09 08             	lock or %ecx,(%eax)
429c0c:	8d 46 14             	lea    0x14(%esi),%eax
429c0f:	6a 02                	push   $0x2
429c11:	89 46 04             	mov    %eax,0x4(%esi)
429c14:	5f                   	pop    %edi
429c15:	89 7e 18             	mov    %edi,0x18(%esi)
429c18:	8b 46 04             	mov    0x4(%esi),%eax
429c1b:	83 66 08 00          	andl   $0x0,0x8(%esi)
429c1f:	5f                   	pop    %edi
429c20:	89 06                	mov    %eax,(%esi)
429c22:	5e                   	pop    %esi
429c23:	5d                   	pop    %ebp
429c24:	c3                   	ret
429c25:	8b ff                	mov    %edi,%edi
429c27:	55                   	push   %ebp
429c28:	8b ec                	mov    %esp,%ebp
429c2a:	53                   	push   %ebx
429c2b:	56                   	push   %esi
429c2c:	ba 40 80 00 00       	mov    $0x8040,%edx
429c31:	33 f6                	xor    %esi,%esi
429c33:	57                   	push   %edi
429c34:	8b 7d 08             	mov    0x8(%ebp),%edi
429c37:	8b c7                	mov    %edi,%eax
429c39:	23 c2                	and    %edx,%eax
429c3b:	8d 4a c0             	lea    -0x40(%edx),%ecx
429c3e:	66 3b c1             	cmp    %cx,%ax
429c41:	75 07                	jne    0x429c4a
429c43:	bb 00 0c 00 00       	mov    $0xc00,%ebx
429c48:	eb 19                	jmp    0x429c63
429c4a:	66 83 f8 40          	cmp    $0x40,%ax
429c4e:	75 07                	jne    0x429c57
429c50:	bb 00 08 00 00       	mov    $0x800,%ebx
429c55:	eb 0c                	jmp    0x429c63
429c57:	bb 00 04 00 00       	mov    $0x400,%ebx
429c5c:	66 3b c2             	cmp    %dx,%ax
429c5f:	74 02                	je     0x429c63
429c61:	8b de                	mov    %esi,%ebx
429c63:	8b c7                	mov    %edi,%eax
429c65:	b9 00 60 00 00       	mov    $0x6000,%ecx
429c6a:	23 c1                	and    %ecx,%eax
429c6c:	74 25                	je     0x429c93
429c6e:	3d 00 20 00 00       	cmp    $0x2000,%eax
429c73:	74 19                	je     0x429c8e
429c75:	3d 00 40 00 00       	cmp    $0x4000,%eax
429c7a:	74 0b                	je     0x429c87
429c7c:	3b c1                	cmp    %ecx,%eax
429c7e:	75 13                	jne    0x429c93
429c80:	be 00 03 00 00       	mov    $0x300,%esi
429c85:	eb 0c                	jmp    0x429c93
429c87:	be 00 02 00 00       	mov    $0x200,%esi
429c8c:	eb 05                	jmp    0x429c93
429c8e:	be 00 01 00 00       	mov    $0x100,%esi
429c93:	8b d7                	mov    %edi,%edx
429c95:	b9 00 04 00 00       	mov    $0x400,%ecx
429c9a:	c1 ea 02             	shr    $0x2,%edx
429c9d:	8b c7                	mov    %edi,%eax
429c9f:	25 00 08 00 00       	and    $0x800,%eax
429ca4:	23 d1                	and    %ecx,%edx
429ca6:	0b d0                	or     %eax,%edx
429ca8:	8b c7                	mov    %edi,%eax
429caa:	23 c1                	and    %ecx,%eax
429cac:	c1 ea 02             	shr    $0x2,%edx
429caf:	0b c2                	or     %edx,%eax
429cb1:	8b cf                	mov    %edi,%ecx
429cb3:	c1 e8 02             	shr    $0x2,%eax
429cb6:	81 e1 00 02 00 00    	and    $0x200,%ecx
429cbc:	0b c1                	or     %ecx,%eax
429cbe:	81 e7 80 01 00 00    	and    $0x180,%edi
429cc4:	c1 e8 03             	shr    $0x3,%eax
429cc7:	0b c7                	or     %edi,%eax
429cc9:	c1 e8 03             	shr    $0x3,%eax
429ccc:	0b c3                	or     %ebx,%eax
429cce:	5f                   	pop    %edi
429ccf:	0b c6                	or     %esi,%eax
429cd1:	5e                   	pop    %esi
429cd2:	5b                   	pop    %ebx
429cd3:	5d                   	pop    %ebp
429cd4:	c3                   	ret
429cd5:	8b ff                	mov    %edi,%edi
429cd7:	55                   	push   %ebp
429cd8:	8b ec                	mov    %esp,%ebp
429cda:	51                   	push   %ecx
429cdb:	53                   	push   %ebx
429cdc:	56                   	push   %esi
429cdd:	57                   	push   %edi
429cde:	8b 7d 08             	mov    0x8(%ebp),%edi
429ce1:	ba 00 10 00 00       	mov    $0x1000,%edx
429ce6:	0f b7 c7             	movzwl %di,%eax
429ce9:	8b d8                	mov    %eax,%ebx
429ceb:	89 55 fc             	mov    %edx,-0x4(%ebp)
429cee:	23 da                	and    %edx,%ebx
429cf0:	8b c8                	mov    %eax,%ecx
429cf2:	c1 e3 02             	shl    $0x2,%ebx
429cf5:	ba 00 02 00 00       	mov    $0x200,%edx
429cfa:	6a 00                	push   $0x0
429cfc:	5e                   	pop    %esi
429cfd:	81 e1 00 03 00 00    	and    $0x300,%ecx
429d03:	74 09                	je     0x429d0e
429d05:	3b ca                	cmp    %edx,%ecx
429d07:	74 0c                	je     0x429d15
429d09:	89 75 fc             	mov    %esi,-0x4(%ebp)
429d0c:	eb 07                	jmp    0x429d15
429d0e:	c7 45 fc 00 20 00 00 	movl   $0x2000,-0x4(%ebp)
429d15:	b9 00 0c 00 00       	mov    $0xc00,%ecx
429d1a:	23 c1                	and    %ecx,%eax
429d1c:	74 22                	je     0x429d40
429d1e:	3d 00 04 00 00       	cmp    $0x400,%eax
429d23:	74 16                	je     0x429d3b
429d25:	3d 00 08 00 00       	cmp    $0x800,%eax
429d2a:	74 0b                	je     0x429d37
429d2c:	3b c1                	cmp    %ecx,%eax
429d2e:	75 10                	jne    0x429d40
429d30:	be 00 03 00 00       	mov    $0x300,%esi
429d35:	eb 09                	jmp    0x429d40
429d37:	8b f2                	mov    %edx,%esi
429d39:	eb 05                	jmp    0x429d40
429d3b:	be 00 01 00 00       	mov    $0x100,%esi
429d40:	8b d7                	mov    %edi,%edx
429d42:	8b c7                	mov    %edi,%eax
429d44:	83 e0 10             	and    $0x10,%eax
429d47:	c1 ea 02             	shr    $0x2,%edx
429d4a:	83 e2 08             	and    $0x8,%edx
429d4d:	8b cf                	mov    %edi,%ecx
429d4f:	0b d0                	or     %eax,%edx
429d51:	83 e1 02             	and    $0x2,%ecx
429d54:	8b c7                	mov    %edi,%eax
429d56:	c1 ea 02             	shr    $0x2,%edx
429d59:	83 e0 08             	and    $0x8,%eax
429d5c:	c1 e1 03             	shl    $0x3,%ecx
429d5f:	0b d0                	or     %eax,%edx
429d61:	8b c7                	mov    %edi,%eax
429d63:	83 e0 04             	and    $0x4,%eax
429d66:	d1 ea                	shr    $1,%edx
429d68:	0b c1                	or     %ecx,%eax
429d6a:	83 e7 01             	and    $0x1,%edi