406bbe:	75 5b                	jne    0x406c1b
406bc0:	8b c2                	mov    %edx,%eax
406bc2:	33 d2                	xor    %edx,%edx
406bc4:	6a 14                	push   $0x14
406bc6:	59                   	pop    %ecx
406bc7:	f7 f1                	div    %ecx
406bc9:	2b ca                	sub    %edx,%ecx
406bcb:	8b 55 0c             	mov    0xc(%ebp),%edx
406bce:	89 4d f4             	mov    %ecx,-0xc(%ebp)
406bd1:	8b 02                	mov    (%edx),%eax
406bd3:	03 c1                	add    %ecx,%eax
406bd5:	89 45 f0             	mov    %eax,-0x10(%ebp)
406bd8:	89 02                	mov    %eax,(%edx)
406bda:	8b c1                	mov    %ecx,%eax
406bdc:	2d 10 19 41 00       	sub    $0x411910,%eax
406be1:	03 c6                	add    %esi,%eax
406be3:	3d 00 00 01 00       	cmp    $0x10000,%eax
406be8:	73 5d                	jae    0x406c47
406bea:	85 c9                	test   %ecx,%ecx
406bec:	74 19                	je     0x406c07
406bee:	d1 e9                	shr    $1,%ecx
406bf0:	8b fe                	mov    %esi,%edi
406bf2:	b8 20 00 20 00       	mov    $0x200020,%eax
406bf7:	f3 ab                	rep stos %eax,%es:(%edi)
406bf9:	13 c9                	adc    %ecx,%ecx
406bfb:	66 f3 ab             	rep stos %ax,%es:(%edi)
406bfe:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406c01:	8b 7d fc             	mov    -0x4(%ebp),%edi
406c04:	8d 34 4e             	lea    (%esi,%ecx,2),%esi
406c07:	8b 45 f0             	mov    -0x10(%ebp),%eax
406c0a:	48                   	dec    %eax
406c0b:	89 02                	mov    %eax,(%edx)
406c0d:	8b 45 10             	mov    0x10(%ebp),%eax
406c10:	8b 55 f8             	mov    -0x8(%ebp),%edx
406c13:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
406c19:	eb 17                	jmp    0x406c32
406c1b:	8b c6                	mov    %esi,%eax
406c1d:	2d 10 19 41 00       	sub    $0x411910,%eax
406c22:	3d 00 00 01 00       	cmp    $0x10000,%eax
406c27:	7d 1e                	jge    0x406c47
406c29:	66 89 0e             	mov    %cx,(%esi)
406c2c:	33 c9                	xor    %ecx,%ecx
406c2e:	83 c6 02             	add    $0x2,%esi
406c31:	41                   	inc    %ecx
406c32:	43                   	inc    %ebx
406c33:	83 c7 02             	add    $0x2,%edi
406c36:	03 d1                	add    %ecx,%edx
406c38:	89 7d fc             	mov    %edi,-0x4(%ebp)
406c3b:	89 55 f8             	mov    %edx,-0x8(%ebp)
406c3e:	3b 5d ec             	cmp    -0x14(%ebp),%ebx
406c41:	0f 8c 6e ff ff ff    	jl     0x406bb5
406c47:	5f                   	pop    %edi
406c48:	5e                   	pop    %esi
406c49:	5b                   	pop    %ebx
406c4a:	c9                   	leave
406c4b:	c2 0c 00             	ret    $0xc
406c4e:	83 3d 88 25 43 00 00 	cmpl   $0x0,0x432588
406c55:	75 0c                	jne    0x406c63
406c57:	83 3d 8c 25 43 00 00 	cmpl   $0x0,0x43258c
406c5e:	75 03                	jne    0x406c63
406c60:	33 c0                	xor    %eax,%eax
406c62:	c3                   	ret
406c63:	33 c0                	xor    %eax,%eax
406c65:	40                   	inc    %eax
406c66:	c3                   	ret
406c67:	8b ff                	mov    %edi,%edi
406c69:	55                   	push   %ebp
406c6a:	8b ec                	mov    %esp,%ebp
406c6c:	83 ec 2c             	sub    $0x2c,%esp
406c6f:	53                   	push   %ebx
406c70:	56                   	push   %esi
406c71:	8b 35 0c 19 41 00    	mov    0x41190c,%esi
406c77:	33 c0                	xor    %eax,%eax
406c79:	57                   	push   %edi
406c7a:	bb 00 7f 00 00       	mov    $0x7f00,%ebx
406c7f:	89 45 d4             	mov    %eax,-0x2c(%ebp)
406c82:	53                   	push   %ebx
406c83:	50                   	push   %eax
406c84:	c7 45 d8 50 53 40 00 	movl   $0x405350,-0x28(%ebp)
406c8b:	89 45 dc             	mov    %eax,-0x24(%ebp)
406c8e:	89 45 e0             	mov    %eax,-0x20(%ebp)
406c91:	89 75 e4             	mov    %esi,-0x1c(%ebp)
406c94:	89 45 e8             	mov    %eax,-0x18(%ebp)
406c97:	ff 15 04 33 43 00    	call   *0x433304
406c9d:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
406ca1:	6a 10                	push   $0x10
406ca3:	89 45 ec             	mov    %eax,-0x14(%ebp)
406ca6:	8d 45 d4             	lea    -0x2c(%ebp),%eax
406ca9:	5f                   	pop    %edi
406caa:	50                   	push   %eax
406cab:	89 7d f0             	mov    %edi,-0x10(%ebp)
406cae:	c7 45 f8 40 15 40 00 	movl   $0x401540,-0x8(%ebp)
406cb5:	ff 15 04 32 43 00    	call   *0x433204
406cbb:	33 c0                	xor    %eax,%eax
406cbd:	c7 45 d8 90 5b 40 00 	movl   $0x405b90,-0x28(%ebp)
406cc4:	53                   	push   %ebx
406cc5:	50                   	push   %eax
406cc6:	89 45 d4             	mov    %eax,-0x2c(%ebp)
406cc9:	89 45 dc             	mov    %eax,-0x24(%ebp)
406ccc:	89 45 e0             	mov    %eax,-0x20(%ebp)
406ccf:	89 75 e4             	mov    %esi,-0x1c(%ebp)
406cd2:	89 45 e8             	mov    %eax,-0x18(%ebp)
406cd5:	ff 15 04 33 43 00    	call   *0x433304
406cdb:	89 45 ec             	mov    %eax,-0x14(%ebp)
406cde:	33 db                	xor    %ebx,%ebx
406ce0:	8d 45 d4             	lea    -0x2c(%ebp),%eax
406ce3:	89 7d f0             	mov    %edi,-0x10(%ebp)
406ce6:	50                   	push   %eax
406ce7:	89 5d f4             	mov    %ebx,-0xc(%ebp)
406cea:	c7 45 f8 24 15 40 00 	movl   $0x401524,-0x8(%ebp)
406cf1:	ff 15 04 32 43 00    	call   *0x433204
406cf7:	68 80 80 80 00       	push   $0x808080
406cfc:	53                   	push   %ebx
406cfd:	53                   	push   %ebx
406cfe:	ff 15 7c 30 43 00    	call   *0x43307c
406d04:	5f                   	pop    %edi
406d05:	5e                   	pop    %esi
406d06:	a3 78 25 43 00       	mov    %eax,0x432578
406d0b:	5b                   	pop    %ebx
406d0c:	c9                   	leave
406d0d:	c3                   	ret
406d0e:	a1 84 25 43 00       	mov    0x432584,%eax
406d13:	85 c0                	test   %eax,%eax
406d15:	74 07                	je     0x406d1e
406d17:	50                   	push   %eax
406d18:	ff 15 b4 30 43 00    	call   *0x4330b4
406d1e:	a1 80 25 43 00       	mov    0x432580,%eax
406d23:	85 c0                	test   %eax,%eax
406d25:	74 07                	je     0x406d2e
406d27:	50                   	push   %eax
406d28:	ff 15 b4 30 43 00    	call   *0x4330b4
406d2e:	a1 78 25 43 00       	mov    0x432578,%eax
406d33:	85 c0                	test   %eax,%eax
406d35:	74 07                	je     0x406d3e
406d37:	50                   	push   %eax
406d38:	ff 15 b4 30 43 00    	call   *0x4330b4
406d3e:	a1 7c 25 43 00       	mov    0x43257c,%eax
406d43:	85 c0                	test   %eax,%eax
406d45:	74 07                	je     0x406d4e
406d47:	50                   	push   %eax
406d48:	ff 15 b4 30 43 00    	call   *0x4330b4
406d4e:	ff 35 0c 19 41 00    	push   0x41190c
406d54:	68 40 15 40 00       	push   $0x401540
406d59:	ff 15 3c 32 43 00    	call   *0x43323c
406d5f:	ff 35 0c 19 41 00    	push   0x41190c
406d65:	68 24 15 40 00       	push   $0x401524
406d6a:	ff 15 3c 32 43 00    	call   *0x43323c
406d70:	c3                   	ret
406d71:	8b ff                	mov    %edi,%edi
406d73:	55                   	push   %ebp
406d74:	8b ec                	mov    %esp,%ebp
406d76:	56                   	push   %esi
406d77:	33 f6                	xor    %esi,%esi
406d79:	85 d2                	test   %edx,%edx
406d7b:	74 08                	je     0x406d85
406d7d:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
406d83:	76 05                	jbe    0x406d8a
406d85:	be 57 00 07 80       	mov    $0x80070057,%esi
406d8a:	85 f6                	test   %esi,%esi
406d8c:	78 41                	js     0x406dcf
406d8e:	8b f2                	mov    %edx,%esi
406d90:	85 d2                	test   %edx,%edx
406d92:	74 28                	je     0x406dbc
406d94:	57                   	push   %edi
406d95:	bf fe ff ff 7f       	mov    $0x7ffffffe,%edi
406d9a:	2b fa                	sub    %edx,%edi
406d9c:	8b 55 08             	mov    0x8(%ebp),%edx
406d9f:	2b d1                	sub    %ecx,%edx
406da1:	8d 04 37             	lea    (%edi,%esi,1),%eax
406da4:	85 c0                	test   %eax,%eax
406da6:	74 0f                	je     0x406db7
406da8:	8a 04 0a             	mov    (%edx,%ecx,1),%al
406dab:	84 c0                	test   %al,%al
406dad:	74 08                	je     0x406db7
406daf:	88 01                	mov    %al,(%ecx)
406db1:	41                   	inc    %ecx
406db2:	83 ee 01             	sub    $0x1,%esi
406db5:	75 ea                	jne    0x406da1
406db7:	5f                   	pop    %edi
406db8:	85 f6                	test   %esi,%esi
406dba:	75 01                	jne    0x406dbd
406dbc:	49                   	dec    %ecx
406dbd:	f7 de                	neg    %esi
406dbf:	1b f6                	sbb    %esi,%esi
406dc1:	81 e6 86 ff f8 7f    	and    $0x7ff8ff86,%esi
406dc7:	81 c6 7a 00 07 80    	add    $0x8007007a,%esi
406dcd:	eb 04                	jmp    0x406dd3
406dcf:	85 d2                	test   %edx,%edx
406dd1:	74 03                	je     0x406dd6
406dd3:	c6 01 00             	movb   $0x0,(%ecx)
406dd6:	8b c6                	mov    %esi,%eax
406dd8:	5e                   	pop    %esi
406dd9:	5d                   	pop    %ebp
406dda:	c2 04 00             	ret    $0x4
406ddd:	8b ff                	mov    %edi,%edi
406ddf:	55                   	push   %ebp
406de0:	8b ec                	mov    %esp,%ebp
406de2:	83 ec 28             	sub    $0x28,%esp
406de5:	a1 64 10 41 00       	mov    0x411064,%eax
406dea:	33 c5                	xor    %ebp,%eax
406dec:	89 45 fc             	mov    %eax,-0x4(%ebp)
406def:	53                   	push   %ebx
406df0:	56                   	push   %esi
406df1:	8b d9                	mov    %ecx,%ebx
406df3:	33 f6                	xor    %esi,%esi
406df5:	57                   	push   %edi
406df6:	8b fa                	mov    %edx,%edi
406df8:	81 fb b0 04 00 00    	cmp    $0x4b0,%ebx
406dfe:	75 24                	jne    0x406e24
406e00:	6a 21                	push   $0x21
406e02:	58                   	pop    %eax
406e03:	3b 75 08             	cmp    0x8(%ebp),%esi
406e06:	73 08                	jae    0x406e10
406e08:	85 ff                	test   %edi,%edi
406e0a:	74 04                	je     0x406e10
406e0c:	66 89 04 77          	mov    %ax,(%edi,%esi,2)
406e10:	46                   	inc    %esi
406e11:	b9 ff ff 00 00       	mov    $0xffff,%ecx
406e16:	66 40                	inc    %ax
406e18:	66 3b c1             	cmp    %cx,%ax
406e1b:	72 e6                	jb     0x406e03
406e1d:	8b c6                	mov    %esi,%eax
406e1f:	e9 82 01 00 00       	jmp    0x406fa6
406e24:	53                   	push   %ebx
406e25:	ff 15 b8 31 43 00    	call   *0x4331b8
406e2b:	85 c0                	test   %eax,%eax
406e2d:	0f 84 71 01 00 00    	je     0x406fa4
406e33:	8d 45 e8             	lea    -0x18(%ebp),%eax
406e36:	50                   	push   %eax
406e37:	53                   	push   %ebx
406e38:	ff 15 70 31 43 00    	call   *0x433170
406e3e:	85 c0                	test   %eax,%eax
406e40:	0f 84 5e 01 00 00    	je     0x406fa4
406e46:	c6 45 dc 21          	movb   $0x21,-0x24(%ebp)
406e4a:	6a 01                	push   $0x1
406e4c:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406e4f:	50                   	push   %eax
406e50:	6a 01                	push   $0x1
406e52:	8d 45 dc             	lea    -0x24(%ebp),%eax
406e55:	50                   	push   %eax
406e56:	6a 08                	push   $0x8
406e58:	53                   	push   %ebx
406e59:	ff 15 d0 31 43 00    	call   *0x4331d0
406e5f:	85 c0                	test   %eax,%eax
406e61:	74 2a                	je     0x406e8d
406e63:	8d 45 e0             	lea    -0x20(%ebp),%eax
406e66:	50                   	push   %eax
406e67:	6a 01                	push   $0x1
406e69:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406e6c:	50                   	push   %eax
406e6d:	6a 01                	push   $0x1
406e6f:	ff 15 cc 31 43 00    	call   *0x4331cc
406e75:	f6 45 e0 20          	testb  $0x20,-0x20(%ebp)
406e79:	75 12                	jne    0x406e8d
406e7b:	3b 75 08             	cmp    0x8(%ebp),%esi
406e7e:	73 0c                	jae    0x406e8c
406e80:	85 ff                	test   %edi,%edi
406e82:	74 08                	je     0x406e8c
406e84:	66 8b 45 e4          	mov    -0x1c(%ebp),%ax
406e88:	66 89 04 77          	mov    %ax,(%edi,%esi,2)
406e8c:	46                   	inc    %esi
406e8d:	8a 45 dc             	mov    -0x24(%ebp),%al
406e90:	fe c0                	inc    %al
406e92:	88 45 dc             	mov    %al,-0x24(%ebp)
406e95:	3c 7f                	cmp    $0x7f,%al
406e97:	76 b1                	jbe    0x406e4a
406e99:	b8 80 00 00 00       	mov    $0x80,%eax
406e9e:	89 45 d8             	mov    %eax,-0x28(%ebp)
406ea1:	6a 01                	push   $0x1
406ea3:	88 45 dc             	mov    %al,-0x24(%ebp)
406ea6:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406ea9:	50                   	push   %eax
406eaa:	6a 01                	push   $0x1
406eac:	8d 45 dc             	lea    -0x24(%ebp),%eax
406eaf:	50                   	push   %eax
406eb0:	6a 08                	push   $0x8
406eb2:	53                   	push   %ebx
406eb3:	ff 15 d0 31 43 00    	call   *0x4331d0
406eb9:	85 c0                	test   %eax,%eax
406ebb:	74 31                	je     0x406eee
406ebd:	8d 45 e0             	lea    -0x20(%ebp),%eax
406ec0:	50                   	push   %eax
406ec1:	6a 01                	push   $0x1
406ec3:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406ec6:	50                   	push   %eax
406ec7:	6a 01                	push   $0x1
406ec9:	ff 15 cc 31 43 00    	call   *0x4331cc
406ecf:	66 83 7d e0 00       	cmpw   $0x0,-0x20(%ebp)
406ed4:	74 18                	je     0x406eee
406ed6:	f6 45 e0 20          	testb  $0x20,-0x20(%ebp)
406eda:	75 12                	jne    0x406eee
406edc:	3b 75 08             	cmp    0x8(%ebp),%esi
406edf:	73 0c                	jae    0x406eed
406ee1:	85 ff                	test   %edi,%edi
406ee3:	74 08                	je     0x406eed
406ee5:	66 8b 45 e4          	mov    -0x1c(%ebp),%ax
406ee9:	66 89 04 77          	mov    %ax,(%edi,%esi,2)
406eed:	46                   	inc    %esi
406eee:	8b 45 d8             	mov    -0x28(%ebp),%eax
406ef1:	40                   	inc    %eax
406ef2:	89 45 d8             	mov    %eax,-0x28(%ebp)
406ef5:	3d ff 00 00 00       	cmp    $0xff,%eax
406efa:	7e a5                	jle    0x406ea1
406efc:	83 7d e8 01          	cmpl   $0x1,-0x18(%ebp)
406f00:	0f 84 17 ff ff ff    	je     0x406e1d
406f06:	c6 45 dc 80          	movb   $0x80,-0x24(%ebp)
406f0a:	ff 75 dc             	push   -0x24(%ebp)
406f0d:	53                   	push   %ebx
406f0e:	ff 15 6c 31 43 00    	call   *0x43316c
406f14:	85 c0                	test   %eax,%eax
406f16:	74 77                	je     0x406f8f
406f18:	b0 40                	mov    $0x40,%al
406f1a:	88 45 dd             	mov    %al,-0x23(%ebp)
406f1d:	3c 7f                	cmp    $0x7f,%al
406f1f:	74 65                	je     0x406f86
406f21:	6a 01                	push   $0x1
406f23:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406f26:	50                   	push   %eax
406f27:	6a 02                	push   $0x2
406f29:	8d 45 dc             	lea    -0x24(%ebp),%eax
406f2c:	50                   	push   %eax
406f2d:	6a 08                	push   $0x8
406f2f:	53                   	push   %ebx
406f30:	ff 15 d0 31 43 00    	call   *0x4331d0
406f36:	85 c0                	test   %eax,%eax
406f38:	74 49                	je     0x406f83
406f3a:	66 8b 45 e4          	mov    -0x1c(%ebp),%ax
406f3e:	b9 00 e0 00 00       	mov    $0xe000,%ecx
406f43:	66 3b c1             	cmp    %cx,%ax
406f46:	72 0a                	jb     0x406f52
406f48:	b9 ff f8 00 00       	mov    $0xf8ff,%ecx
406f4d:	66 3b c1             	cmp    %cx,%ax
406f50:	76 23                	jbe    0x406f75
406f52:	8d 45 e0             	lea    -0x20(%ebp),%eax
406f55:	50                   	push   %eax
406f56:	6a 01                	push   $0x1
406f58:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406f5b:	50                   	push   %eax
406f5c:	6a 01                	push   $0x1
406f5e:	ff 15 cc 31 43 00    	call   *0x4331cc
406f64:	66 83 7d e0 00       	cmpw   $0x0,-0x20(%ebp)
406f69:	74 18                	je     0x406f83
406f6b:	f6 45 e0 20          	testb  $0x20,-0x20(%ebp)
406f6f:	75 12                	jne    0x406f83
406f71:	66 8b 45 e4          	mov    -0x1c(%ebp),%ax
406f75:	3b 75 08             	cmp    0x8(%ebp),%esi
406f78:	73 08                	jae    0x406f82
406f7a:	85 ff                	test   %edi,%edi
406f7c:	74 04                	je     0x406f82
406f7e:	66 89 04 77          	mov    %ax,(%edi,%esi,2)