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
429043:	89 45 d8             	mov    %eax,-0x28(%ebp)
429046:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
42904a:	75 05                	jne    0x429051
42904c:	e8 3b f4 ff ff       	call   0x42848c
429051:	33 d2                	xor    %edx,%edx
429053:	55                   	push   %ebp
429054:	68 b1 90 42 00       	push   $0x4290b1
429059:	64 ff 32             	push   %fs:(%edx)
42905c:	64 89 22             	mov    %esp,%fs:(%edx)
42905f:	6a 0e                	push   $0xe
429061:	8b 45 d8             	mov    -0x28(%ebp),%eax
429064:	50                   	push   %eax
429065:	e8 d6 d9 fd ff       	call   0x406a40
42906a:	8b d8                	mov    %eax,%ebx
42906c:	6a 0c                	push   $0xc
42906e:	8b 45 d8             	mov    -0x28(%ebp),%eax
429071:	50                   	push   %eax
429072:	e8 c9 d9 fd ff       	call   0x406a40
429077:	66 0f af d8          	imul   %ax,%bx
42907b:	8b c3                	mov    %ebx,%eax
42907d:	66 83 f8 08          	cmp    $0x8,%ax
429081:	76 09                	jbe    0x42908c
429083:	c7 45 e4 ff ff ff 7f 	movl   $0x7fffffff,-0x1c(%ebp)
42908a:	eb 0c                	jmp    0x429098
42908c:	8b c8                	mov    %eax,%ecx
42908e:	b8 01 00 00 00       	mov    $0x1,%eax
429093:	d3 e0                	shl    %cl,%eax
429095:	89 45 e4             	mov    %eax,-0x1c(%ebp)
429098:	33 c0                	xor    %eax,%eax
42909a:	5a                   	pop    %edx
42909b:	59                   	pop    %ecx
42909c:	59                   	pop    %ecx
42909d:	64 89 10             	mov    %edx,%fs:(%eax)
4290a0:	68 b8 90 42 00       	push   $0x4290b8
4290a5:	8b 45 d8             	mov    -0x28(%ebp),%eax
4290a8:	50                   	push   %eax
4290a9:	6a 00                	push   $0x0
4290ab:	e8 68 de fd ff       	call   0x406f18
4290b0:	c3                   	ret
4290b1:	e9 b2 aa fd ff       	jmp    0x403b68
4290b6:	eb ed                	jmp    0x4290a5
4290b8:	33 c0                	xor    %eax,%eax
4290ba:	89 45 dc             	mov    %eax,-0x24(%ebp)
4290bd:	8b 45 f0             	mov    -0x10(%ebp),%eax
4290c0:	0f b7 40 02          	movzwl 0x2(%eax),%eax
4290c4:	e8 63 fe ff ff       	call   0x428f2c
4290c9:	89 45 e0             	mov    %eax,-0x20(%ebp)
4290cc:	8b 7d f4             	mov    -0xc(%ebp),%edi
4290cf:	4f                   	dec    %edi
4290d0:	85 ff                	test   %edi,%edi
4290d2:	7e 4c                	jle    0x429120
4290d4:	be 01 00 00 00       	mov    $0x1,%esi
4290d9:	8b c6                	mov    %esi,%eax
4290db:	03 c0                	add    %eax,%eax
4290dd:	8b 55 f0             	mov    -0x10(%ebp),%edx
4290e0:	0f b7 44 c2 02       	movzwl 0x2(%edx,%eax,8),%eax
4290e5:	e8 42 fe ff ff       	call   0x428f2c
4290ea:	8b d8                	mov    %eax,%ebx
4290ec:	3b 5d e4             	cmp    -0x1c(%ebp),%ebx
4290ef:	7f 2b                	jg     0x42911c
4290f1:	3b 5d e0             	cmp    -0x20(%ebp),%ebx
4290f4:	7c 26                	jl     0x42911c
4290f6:	55                   	push   %ebp
4290f7:	8b c6                	mov    %esi,%eax
4290f9:	03 c0                	add    %eax,%eax
4290fb:	8b 55 f0             	mov    -0x10(%ebp),%edx
4290fe:	8d 14 c2             	lea    (%edx,%eax,8),%edx
429101:	8b 45 dc             	mov    -0x24(%ebp),%eax
429104:	03 c0                	add    %eax,%eax
429106:	8b 4d f0             	mov    -0x10(%ebp),%ecx
429109:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
42910c:	e8 27 fe ff ff       	call   0x428f38
429111:	59                   	pop    %ecx
429112:	84 c0                	test   %al,%al
429114:	74 06                	je     0x42911c
429116:	89 75 dc             	mov    %esi,-0x24(%ebp)
429119:	89 5d e0             	mov    %ebx,-0x20(%ebp)
42911c:	46                   	inc    %esi
42911d:	4f                   	dec    %edi
42911e:	75 b9                	jne    0x4290d9
429120:	8b 45 dc             	mov    -0x24(%ebp),%eax
429123:	03 c0                	add    %eax,%eax
429125:	8b 55 f0             	mov    -0x10(%ebp),%edx
429128:	8d 04 c2             	lea    (%edx,%eax,8),%eax
42912b:	89 45 c0             	mov    %eax,-0x40(%ebp)
42912e:	8b 45 c0             	mov    -0x40(%ebp),%eax
429131:	0f b6 00             	movzbl (%eax),%eax
429134:	8b 55 08             	mov    0x8(%ebp),%edx
429137:	89 02                	mov    %eax,(%edx)
429139:	8b 45 c0             	mov    -0x40(%ebp),%eax
42913c:	0f b6 40 01          	movzbl 0x1(%eax),%eax
429140:	8b 55 08             	mov    0x8(%ebp),%edx
429143:	89 42 04             	mov    %eax,0x4(%edx)
429146:	8b 45 c0             	mov    -0x40(%ebp),%eax
429149:	8b 40 08             	mov    0x8(%eax),%eax
42914c:	e8 bb f1 fd ff       	call   0x40830c
429151:	89 45 d4             	mov    %eax,-0x2c(%ebp)
429154:	33 c0                	xor    %eax,%eax
429156:	55                   	push   %ebp
429157:	68 9f 92 42 00       	push   $0x42929f
42915c:	64 ff 30             	push   %fs:(%eax)
42915f:	64 89 20             	mov    %esp,%fs:(%eax)
429162:	8b 45 c0             	mov    -0x40(%ebp),%eax
429165:	8b 50 0c             	mov    0xc(%eax),%edx
429168:	8b 45 ec             	mov    -0x14(%ebp),%eax
42916b:	03 45 10             	add    0x10(%ebp),%eax
42916e:	2b d0                	sub    %eax,%edx
429170:	66 b9 01 00          	mov    $0x1,%cx
429174:	8b 45 fc             	mov    -0x4(%ebp),%eax
429177:	8b 18                	mov    (%eax),%ebx
429179:	ff 53 14             	call   *0x14(%ebx)
42917c:	8b 45 c0             	mov    -0x40(%ebp),%eax
42917f:	8b 48 08             	mov    0x8(%eax),%ecx
429182:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
429185:	8b d3                	mov    %ebx,%edx
429187:	8b 45 fc             	mov    -0x4(%ebp),%eax
42918a:	8b 30                	mov    (%eax),%esi
42918c:	ff 56 0c             	call   *0xc(%esi)
42918f:	8b 45 08             	mov    0x8(%ebp),%eax
429192:	50                   	push   %eax
429193:	8d 4d c8             	lea    -0x38(%ebp),%ecx
429196:	8d 55 cc             	lea    -0x34(%ebp),%edx
429199:	8b c3                	mov    %ebx,%eax
42919b:	e8 d0 fb ff ff       	call   0x428d70
4291a0:	8d 45 90             	lea    -0x70(%ebp),%eax
4291a3:	50                   	push   %eax
4291a4:	6a 18                	push   $0x18
4291a6:	8b 45 c8             	mov    -0x38(%ebp),%eax
4291a9:	50                   	push   %eax
4291aa:	e8 99 d8 fd ff       	call   0x406a48
4291af:	8d 45 a8             	lea    -0x58(%ebp),%eax
4291b2:	50                   	push   %eax
4291b3:	6a 18                	push   $0x18
4291b5:	8b 45 cc             	mov    -0x34(%ebp),%eax
4291b8:	50                   	push   %eax
4291b9:	e8 8a d8 fd ff       	call   0x406a48
4291be:	8b 5d 9c             	mov    -0x64(%ebp),%ebx
4291c1:	0f af 5d 98          	imul   -0x68(%ebp),%ebx
4291c5:	0f b7 45 a0          	movzwl -0x60(%ebp),%eax
4291c9:	0f af d8             	imul   %eax,%ebx
4291cc:	8b 45 b4             	mov    -0x4c(%ebp),%eax
4291cf:	f7 6d b0             	imull  -0x50(%ebp)
4291d2:	0f b7 55 b8          	movzwl -0x48(%ebp),%edx
4291d6:	f7 ea                	imul   %edx
4291d8:	89 45 c4             	mov    %eax,-0x3c(%ebp)
4291db:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4291de:	03 c3                	add    %ebx,%eax
4291e0:	89 45 e8             	mov    %eax,-0x18(%ebp)
4291e3:	8b 45 e8             	mov    -0x18(%ebp),%eax
4291e6:	e8 21 f1 fd ff       	call   0x40830c
4291eb:	89 45 d0             	mov    %eax,-0x30(%ebp)
4291ee:	33 c0                	xor    %eax,%eax
4291f0:	55                   	push   %ebp
4291f1:	68 7c 92 42 00       	push   $0x42927c
4291f6:	64 ff 30             	push   %fs:(%eax)
4291f9:	64 89 20             	mov    %esp,%fs:(%eax)
4291fc:	8b 7d d0             	mov    -0x30(%ebp),%edi
4291ff:	8b 75 d0             	mov    -0x30(%ebp),%esi
429202:	03 f3                	add    %ebx,%esi
429204:	57                   	push   %edi
429205:	53                   	push   %ebx
429206:	8b 45 c8             	mov    -0x38(%ebp),%eax
429209:	50                   	push   %eax
42920a:	e8 f9 d7 fd ff       	call   0x406a08
42920f:	56                   	push   %esi
429210:	8b 45 c4             	mov    -0x3c(%ebp),%eax
429213:	50                   	push   %eax
429214:	8b 45 cc             	mov    -0x34(%ebp),%eax
429217:	50                   	push   %eax
429218:	e8 eb d7 fd ff       	call   0x406a08
42921d:	8b 45 cc             	mov    -0x34(%ebp),%eax
429220:	50                   	push   %eax
429221:	e8 d2 d7 fd ff       	call   0x4069f8
429226:	8b 45 c8             	mov    -0x38(%ebp),%eax
429229:	50                   	push   %eax