428cb3:	66 89 44 24 02       	mov    %ax,0x2(%esp)
428cb8:	57                   	push   %edi
428cb9:	53                   	push   %ebx
428cba:	e8 19 de fd ff       	call   0x406ad8
428cbf:	53                   	push   %ebx
428cc0:	e8 2b dd fd ff       	call   0x4069f0
428cc5:	eb 13                	jmp    0x428cda
428cc7:	66 89 4c 24 02       	mov    %cx,0x2(%esp)
428ccc:	8b c2                	mov    %edx,%eax
428cce:	8d 54 24 04          	lea    0x4(%esp),%edx
428cd2:	c1 e1 02             	shl    $0x2,%ecx
428cd5:	e8 9a 9c fd ff       	call   0x402974
428cda:	66 83 7c 24 02 00    	cmpw   $0x0,0x2(%esp)
428ce0:	74 2b                	je     0x428d0d
428ce2:	66 83 7c 24 02 10    	cmpw   $0x10,0x2(%esp)
428ce8:	75 0b                	jne    0x428cf5
428cea:	8b c4                	mov    %esp,%eax
428cec:	e8 ef fe ff ff       	call   0x428be0
428cf1:	84 c0                	test   %al,%al
428cf3:	75 0e                	jne    0x428d03
428cf5:	0f b7 54 24 02       	movzwl 0x2(%esp),%edx
428cfa:	8d 44 24 04          	lea    0x4(%esp),%eax
428cfe:	e8 6d fd ff ff       	call   0x428a70
428d03:	8b c4                	mov    %esp,%eax
428d05:	50                   	push   %eax
428d06:	e8 cd dc fd ff       	call   0x4069d8
428d0b:	8b f0                	mov    %eax,%esi
428d0d:	8b c6                	mov    %esi,%eax
428d0f:	81 c4 04 04 00 00    	add    $0x404,%esp
428d15:	5f                   	pop    %edi
428d16:	5e                   	pop    %esi
428d17:	5b                   	pop    %ebx
428d18:	c3                   	ret
428d19:	8d 40 00             	lea    0x0(%eax),%eax
428d1c:	53                   	push   %ebx
428d1d:	56                   	push   %esi
428d1e:	57                   	push   %edi
428d1f:	51                   	push   %ecx
428d20:	8b f9                	mov    %ecx,%edi
428d22:	8b f2                	mov    %edx,%esi
428d24:	8b d8                	mov    %eax,%ebx
428d26:	33 c0                	xor    %eax,%eax
428d28:	89 04 24             	mov    %eax,(%esp)
428d2b:	85 db                	test   %ebx,%ebx
428d2d:	74 36                	je     0x428d65
428d2f:	54                   	push   %esp
428d30:	6a 04                	push   $0x4
428d32:	53                   	push   %ebx
428d33:	e8 10 dd fd ff       	call   0x406a48
428d38:	85 c0                	test   %eax,%eax
428d3a:	74 29                	je     0x428d65
428d3c:	83 3c 24 00          	cmpl   $0x0,(%esp)
428d40:	74 23                	je     0x428d65
428d42:	8d 47 01             	lea    0x1(%edi),%eax
428d45:	3b 04 24             	cmp    (%esp),%eax
428d48:	7d 03                	jge    0x428d4d
428d4a:	89 04 24             	mov    %eax,(%esp)
428d4d:	56                   	push   %esi
428d4e:	8b 44 24 04          	mov    0x4(%esp),%eax
428d52:	50                   	push   %eax
428d53:	6a 00                	push   $0x0
428d55:	53                   	push   %ebx
428d56:	e8 f5 dc fd ff       	call   0x406a50
428d5b:	8b c6                	mov    %esi,%eax
428d5d:	8b 14 24             	mov    (%esp),%edx
428d60:	e8 0b fd ff ff       	call   0x428a70
428d65:	8b 04 24             	mov    (%esp),%eax
428d68:	5a                   	pop    %edx
428d69:	5f                   	pop    %edi
428d6a:	5e                   	pop    %esi
428d6b:	5b                   	pop    %ebx
428d6c:	c3                   	ret
428d6d:	8d 40 00             	lea    0x0(%eax),%eax
428d70:	55                   	push   %ebp
428d71:	8b ec                	mov    %esp,%ebp
428d73:	83 c4 ec             	add    $0xffffffec,%esp
428d76:	53                   	push   %ebx
428d77:	56                   	push   %esi
428d78:	57                   	push   %edi
428d79:	89 4d f8             	mov    %ecx,-0x8(%ebp)
428d7c:	8b da                	mov    %edx,%ebx
428d7e:	89 45 fc             	mov    %eax,-0x4(%ebp)
428d81:	8b 45 fc             	mov    -0x4(%ebp),%eax
428d84:	d1 68 08             	shrl   $1,0x8(%eax)
428d87:	8b 55 fc             	mov    -0x4(%ebp),%edx
428d8a:	0f b7 52 0e          	movzwl 0xe(%edx),%edx
428d8e:	8b 45 fc             	mov    -0x4(%ebp),%eax
428d91:	8b 40 04             	mov    0x4(%eax),%eax
428d94:	b9 20 00 00 00       	mov    $0x20,%ecx
428d99:	e8 7a f9 ff ff       	call   0x428718
428d9e:	8b 55 fc             	mov    -0x4(%ebp),%edx
428da1:	f7 6a 08             	imull  0x8(%edx)
428da4:	8b 55 fc             	mov    -0x4(%ebp),%edx
428da7:	89 42 14             	mov    %eax,0x14(%edx)
428daa:	8b 45 fc             	mov    -0x4(%ebp),%eax
428dad:	66 8b 40 0e          	mov    0xe(%eax),%ax
428db1:	e8 42 f9 ff ff       	call   0x4286f8
428db6:	8b f0                	mov    %eax,%esi
428db8:	6a 00                	push   $0x0
428dba:	e8 09 df fd ff       	call   0x406cc8
428dbf:	89 45 f0             	mov    %eax,-0x10(%ebp)
428dc2:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
428dc6:	75 05                	jne    0x428dcd
428dc8:	e8 bf f6 ff ff       	call   0x42848c
428dcd:	33 d2                	xor    %edx,%edx
428dcf:	55                   	push   %ebp
428dd0:	68 1c 8f 42 00       	push   $0x428f1c
428dd5:	64 ff 32             	push   %fs:(%edx)
428dd8:	64 89 22             	mov    %esp,%fs:(%edx)
428ddb:	8b 7d fc             	mov    -0x4(%ebp),%edi
428dde:	8b c7                	mov    %edi,%eax
428de0:	83 c0 28             	add    $0x28,%eax
428de3:	8b d6                	mov    %esi,%edx
428de5:	c1 e2 02             	shl    $0x2,%edx
428de8:	03 c2                	add    %edx,%eax
428dea:	89 45 ec             	mov    %eax,-0x14(%ebp)
428ded:	6a 00                	push   $0x0
428def:	8b 45 fc             	mov    -0x4(%ebp),%eax
428df2:	57                   	push   %edi
428df3:	8b 45 ec             	mov    -0x14(%ebp),%eax
428df6:	50                   	push   %eax
428df7:	6a 04                	push   $0x4
428df9:	8b 45 fc             	mov    -0x4(%ebp),%eax
428dfc:	50                   	push   %eax
428dfd:	8b 45 f0             	mov    -0x10(%ebp),%eax
428e00:	50                   	push   %eax
428e01:	e8 ba db fd ff       	call   0x4069c0
428e06:	e8 7d f7 ff ff       	call   0x428588
428e0b:	89 45 f4             	mov    %eax,-0xc(%ebp)
428e0e:	33 c0                	xor    %eax,%eax
428e10:	55                   	push   %ebp
428e11:	68 42 8e 42 00       	push   $0x428e42
428e16:	64 ff 30             	push   %fs:(%eax)
428e19:	64 89 20             	mov    %esp,%fs:(%eax)
428e1c:	8b 55 08             	mov    0x8(%ebp),%edx
428e1f:	33 c9                	xor    %ecx,%ecx
428e21:	8b 45 f4             	mov    -0xc(%ebp),%eax
428e24:	e8 6f f7 ff ff       	call   0x428598
428e29:	89 03                	mov    %eax,(%ebx)
428e2b:	33 c0                	xor    %eax,%eax
428e2d:	5a                   	pop    %edx
428e2e:	59                   	pop    %ecx
428e2f:	59                   	pop    %ecx
428e30:	64 89 10             	mov    %edx,%fs:(%eax)
428e33:	68 49 8e 42 00       	push   $0x428e49
428e38:	8b 45 f4             	mov    -0xc(%ebp),%eax
428e3b:	50                   	push   %eax
428e3c:	e8 b7 db fd ff       	call   0x4069f8
428e41:	c3                   	ret
428e42:	e9 21 ad fd ff       	jmp    0x403b68
428e47:	eb ef                	jmp    0x428e38
428e49:	8b 45 fc             	mov    -0x4(%ebp),%eax
428e4c:	8b 40 14             	mov    0x14(%eax),%eax
428e4f:	01 45 ec             	add    %eax,-0x14(%ebp)
428e52:	8b 45 fc             	mov    -0x4(%ebp),%eax
428e55:	66 bb 01 00          	mov    $0x1,%bx
428e59:	66 89 58 0e          	mov    %bx,0xe(%eax)
428e5d:	8b 45 fc             	mov    -0x4(%ebp),%eax
428e60:	0f b7 d3             	movzwl %bx,%edx
428e63:	8b 45 fc             	mov    -0x4(%ebp),%eax
428e66:	8b 40 04             	mov    0x4(%eax),%eax
428e69:	b9 20 00 00 00       	mov    $0x20,%ecx
428e6e:	e8 a5 f8 ff ff       	call   0x428718
428e73:	8b 55 fc             	mov    -0x4(%ebp),%edx
428e76:	f7 6a 08             	imull  0x8(%edx)
428e79:	8b 55 fc             	mov    -0x4(%ebp),%edx
428e7c:	89 42 14             	mov    %eax,0x14(%edx)
428e7f:	8b 45 fc             	mov    -0x4(%ebp),%eax
428e82:	c7 40 20 02 00 00 00 	movl   $0x2,0x20(%eax)
428e89:	8b 45 fc             	mov    -0x4(%ebp),%eax
428e8c:	c7 40 24 02 00 00 00 	movl   $0x2,0x24(%eax)
428e93:	8b 45 fc             	mov    -0x4(%ebp),%eax
428e96:	83 c0 28             	add    $0x28,%eax
428e99:	33 d2                	xor    %edx,%edx
428e9b:	89 10                	mov    %edx,(%eax)
428e9d:	c7 40 04 ff ff ff 00 	movl   $0xffffff,0x4(%eax)
428ea4:	6a 00                	push   $0x0
428ea6:	8b 5d fc             	mov    -0x4(%ebp),%ebx
428ea9:	53                   	push   %ebx
428eaa:	8b 45 ec             	mov    -0x14(%ebp),%eax
428ead:	50                   	push   %eax
428eae:	6a 04                	push   $0x4
428eb0:	8b 45 fc             	mov    -0x4(%ebp),%eax
428eb3:	53                   	push   %ebx
428eb4:	8b 45 f0             	mov    -0x10(%ebp),%eax
428eb7:	50                   	push   %eax
428eb8:	e8 03 db fd ff       	call   0x4069c0
428ebd:	e8 c6 f6 ff ff       	call   0x428588
428ec2:	89 45 f4             	mov    %eax,-0xc(%ebp)
428ec5:	33 c0                	xor    %eax,%eax
428ec7:	55                   	push   %ebp
428ec8:	68 fc 8e 42 00       	push   $0x428efc
428ecd:	64 ff 30             	push   %fs:(%eax)
428ed0:	64 89 20             	mov    %esp,%fs:(%eax)
428ed3:	8b 55 08             	mov    0x8(%ebp),%edx
428ed6:	b1 01                	mov    $0x1,%cl
428ed8:	8b 45 f4             	mov    -0xc(%ebp),%eax
428edb:	e8 b8 f6 ff ff       	call   0x428598
428ee0:	8b 55 f8             	mov    -0x8(%ebp),%edx
428ee3:	89 02                	mov    %eax,(%edx)
428ee5:	33 c0                	xor    %eax,%eax
428ee7:	5a                   	pop    %edx
428ee8:	59                   	pop    %ecx
428ee9:	59                   	pop    %ecx
428eea:	64 89 10             	mov    %edx,%fs:(%eax)
428eed:	68 03 8f 42 00       	push   $0x428f03
428ef2:	8b 45 f4             	mov    -0xc(%ebp),%eax
428ef5:	50                   	push   %eax
428ef6:	e8 fd da fd ff       	call   0x4069f8
428efb:	c3                   	ret
428efc:	e9 67 ac fd ff       	jmp    0x403b68
428f01:	eb ef                	jmp    0x428ef2
428f03:	33 c0                	xor    %eax,%eax
428f05:	5a                   	pop    %edx
428f06:	59                   	pop    %ecx
428f07:	59                   	pop    %ecx
428f08:	64 89 10             	mov    %edx,%fs:(%eax)
428f0b:	68 23 8f 42 00       	push   $0x428f23
428f10:	8b 45 f0             	mov    -0x10(%ebp),%eax
428f13:	50                   	push   %eax
428f14:	6a 00                	push   $0x0
428f16:	e8 fd df fd ff       	call   0x406f18
428f1b:	c3                   	ret
428f1c:	e9 47 ac fd ff       	jmp    0x403b68
428f21:	eb ed                	jmp    0x428f10
428f23:	5f                   	pop    %edi
428f24:	5e                   	pop    %esi
428f25:	5b                   	pop    %ebx
428f26:	8b e5                	mov    %ebp,%esp
428f28:	5d                   	pop    %ebp
428f29:	c2 04 00             	ret    $0x4
428f2c:	85 c0                	test   %eax,%eax
428f2e:	75 05                	jne    0x428f35
428f30:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
428f35:	c3                   	ret
428f36:	8b c0                	mov    %eax,%eax
428f38:	55                   	push   %ebp
428f39:	8b ec                	mov    %esp,%ebp
428f3b:	83 c4 f8             	add    $0xfffffff8,%esp
428f3e:	53                   	push   %ebx
428f3f:	56                   	push   %esi
428f40:	57                   	push   %edi
428f41:	89 45 fc             	mov    %eax,-0x4(%ebp)
428f44:	33 c9                	xor    %ecx,%ecx
428f46:	8a 0a                	mov    (%edx),%cl
428f48:	8b 45 08             	mov    0x8(%ebp),%eax
428f4b:	8b 40 08             	mov    0x8(%eax),%eax
428f4e:	8b 00                	mov    (%eax),%eax
428f50:	2b c8                	sub    %eax,%ecx
428f52:	33 db                	xor    %ebx,%ebx
428f54:	8a 5a 01             	mov    0x1(%edx),%bl
428f57:	8b 55 08             	mov    0x8(%ebp),%edx
428f5a:	8b 52 08             	mov    0x8(%edx),%edx
428f5d:	2b 5a 04             	sub    0x4(%edx),%ebx
428f60:	8b 75 fc             	mov    -0x4(%ebp),%esi
428f63:	0f b6 36             	movzbl (%esi),%esi
428f66:	8b 55 08             	mov    0x8(%ebp),%edx
428f69:	8b 52 08             	mov    0x8(%edx),%edx
428f6c:	2b f0                	sub    %eax,%esi
428f6e:	8b 45 fc             	mov    -0x4(%ebp),%eax
428f71:	0f b6 40 01          	movzbl 0x1(%eax),%eax
428f75:	8b 55 08             	mov    0x8(%ebp),%edx
428f78:	8b 52 08             	mov    0x8(%edx),%edx
428f7b:	2b 42 04             	sub    0x4(%edx),%eax
428f7e:	89 45 f8             	mov    %eax,-0x8(%ebp)
428f81:	8b c1                	mov    %ecx,%eax
428f83:	99                   	cltd
428f84:	33 c2                	xor    %edx,%eax
428f86:	2b c2                	sub    %edx,%eax
428f88:	8b f8                	mov    %eax,%edi
428f8a:	8b c6                	mov    %esi,%eax
428f8c:	99                   	cltd
428f8d:	33 c2                	xor    %edx,%eax
428f8f:	2b c2                	sub    %edx,%eax
428f91:	3b f8                	cmp    %eax,%edi
428f93:	7f 26                	jg     0x428fbb
428f95:	85 c9                	test   %ecx,%ecx
428f97:	7e 04                	jle    0x428f9d
428f99:	3b f1                	cmp    %ecx,%esi
428f9b:	7c 1e                	jl     0x428fbb
428f9d:	8b c3                	mov    %ebx,%eax
428f9f:	99                   	cltd
428fa0:	33 c2                	xor    %edx,%eax
428fa2:	2b c2                	sub    %edx,%eax
428fa4:	8b c8                	mov    %eax,%ecx
428fa6:	8b 45 f8             	mov    -0x8(%ebp),%eax
428fa9:	99                   	cltd
428faa:	33 c2                	xor    %edx,%eax
428fac:	2b c2                	sub    %edx,%eax
428fae:	3b c8                	cmp    %eax,%ecx
428fb0:	7f 09                	jg     0x428fbb
428fb2:	85 db                	test   %ebx,%ebx
428fb4:	7e 09                	jle    0x428fbf
428fb6:	3b 5d f8             	cmp    -0x8(%ebp),%ebx
428fb9:	7e 04                	jle    0x428fbf
428fbb:	33 c0                	xor    %eax,%eax
428fbd:	eb 02                	jmp    0x428fc1
428fbf:	b0 01                	mov    $0x1,%al
428fc1:	5f                   	pop    %edi
428fc2:	5e                   	pop    %esi
428fc3:	5b                   	pop    %ebx
428fc4:	59                   	pop    %ecx
428fc5:	59                   	pop    %ecx
428fc6:	5d                   	pop    %ebp
428fc7:	c3                   	ret
428fc8:	55                   	push   %ebp
428fc9:	8b ec                	mov    %esp,%ebp
428fcb:	83 c4 90             	add    $0xffffff90,%esp
428fce:	53                   	push   %ebx
428fcf:	56                   	push   %esi
428fd0:	57                   	push   %edi
428fd1:	89 4d f4             	mov    %ecx,-0xc(%ebp)
428fd4:	89 55 f8             	mov    %edx,-0x8(%ebp)
428fd7:	89 45 fc             	mov    %eax,-0x4(%ebp)
428fda:	8b 5d 0c             	mov    0xc(%ebp),%ebx
428fdd:	8b 45 f4             	mov    -0xc(%ebp),%eax
428fe0:	c1 e0 04             	shl    $0x4,%eax
428fe3:	89 45 ec             	mov    %eax,-0x14(%ebp)
428fe6:	8b 45 ec             	mov    -0x14(%ebp),%eax
428fe9:	e8 1e f3 fd ff       	call   0x40830c
428fee:	89 45 f0             	mov    %eax,-0x10(%ebp)
428ff1:	33 d2                	xor    %edx,%edx
428ff3:	55                   	push   %ebp
428ff4:	68 bf 92 42 00       	push   $0x4292bf
428ff9:	64 ff 32             	push   %fs:(%edx)
428ffc:	64 89 22             	mov    %esp,%fs:(%edx)
428fff:	8b 55 f0             	mov    -0x10(%ebp),%edx
429002:	8b 4d ec             	mov    -0x14(%ebp),%ecx
429005:	8b 45 fc             	mov    -0x4(%ebp),%eax
429008:	8b 30                	mov    (%eax),%esi
42900a:	ff 56 0c             	call   *0xc(%esi)
42900d:	8b 03                	mov    (%ebx),%eax
42900f:	0b 43 04             	or     0x4(%ebx),%eax
429012:	75 1b                	jne    0x42902f
429014:	6a 0b                	push   $0xb
429016:	e8 95 dd fd ff       	call   0x406db0
42901b:	8b 55 08             	mov    0x8(%ebp),%edx
42901e:	89 02                	mov    %eax,(%edx)
429020:	6a 0c                	push   $0xc
429022:	e8 89 dd fd ff       	call   0x406db0
429027:	8b 55 08             	mov    0x8(%ebp),%edx
42902a:	89 42 04             	mov    %eax,0x4(%edx)
42902d:	eb 0d                	jmp    0x42903c
42902f:	8b 45 08             	mov    0x8(%ebp),%eax
429032:	8b 13                	mov    (%ebx),%edx
429034:	89 10                	mov    %edx,(%eax)
429036:	8b 53 04             	mov    0x4(%ebx),%edx
429039:	89 50 04             	mov    %edx,0x4(%eax)
42903c:	6a 00                	push   $0x0
42903e:	e8 85 dc fd ff       	call   0x406cc8