406cd4:	88 45 a4             	mov    %al,-0x5c(%ebp)
406cd7:	83 7d 9c 00          	cmpl   $0x0,-0x64(%ebp)
406cdb:	0f 84 3f 06 00 00    	je     0x407320
406ce1:	8b 4d 98             	mov    -0x68(%ebp),%ecx
406ce4:	8a 45 a4             	mov    -0x5c(%ebp),%al
406ce7:	8b 55 f8             	mov    -0x8(%ebp),%edx
406cea:	ff 45 a0             	incl   -0x60(%ebp)
406ced:	ff 45 98             	incl   -0x68(%ebp)
406cf0:	ff 4d 9c             	decl   -0x64(%ebp)
406cf3:	88 01                	mov    %al,(%ecx)
406cf5:	8b 4d ec             	mov    -0x14(%ebp),%ecx
406cf8:	88 04 11             	mov    %al,(%ecx,%edx,1)
406cfb:	8d 41 01             	lea    0x1(%ecx),%eax
406cfe:	33 d2                	xor    %edx,%edx
406d00:	f7 75 8c             	divl   -0x74(%ebp)
406d03:	e9 95 01 00 00       	jmp    0x406e9d
406d08:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
406d0c:	0f 84 02 06 00 00    	je     0x407314
406d12:	8b 4d 90             	mov    -0x70(%ebp),%ecx
406d15:	8b 45 f4             	mov    -0xc(%ebp),%eax
406d18:	c1 65 f0 08          	shll   $0x8,-0x10(%ebp)
406d1c:	0f b6 09             	movzbl (%ecx),%ecx
406d1f:	ff 4d 94             	decl   -0x6c(%ebp)
406d22:	c1 e0 08             	shl    $0x8,%eax
406d25:	0b c1                	or     %ecx,%eax
406d27:	ff 45 90             	incl   -0x70(%ebp)
406d2a:	89 45 f4             	mov    %eax,-0xc(%ebp)
406d2d:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
406d33:	7d 9c                	jge    0x406cd1
406d35:	8b 45 a8             	mov    -0x58(%ebp),%eax
406d38:	8d 14 1b             	lea    (%ebx,%ebx,1),%edx
406d3b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
406d3e:	8d 34 02             	lea    (%edx,%eax,1),%esi
406d41:	c1 e9 0b             	shr    $0xb,%ecx
406d44:	66 8b 06             	mov    (%esi),%ax
406d47:	89 75 ac             	mov    %esi,-0x54(%ebp)
406d4a:	0f b7 f8             	movzwl %ax,%edi
406d4d:	0f af cf             	imul   %edi,%ecx
406d50:	39 4d f4             	cmp    %ecx,-0xc(%ebp)
406d53:	73 16                	jae    0x406d6b
406d55:	89 4d f0             	mov    %ecx,-0x10(%ebp)
406d58:	b9 00 08 00 00       	mov    $0x800,%ecx
406d5d:	2b cf                	sub    %edi,%ecx
406d5f:	c1 f9 05             	sar    $0x5,%ecx
406d62:	03 c8                	add    %eax,%ecx
406d64:	03 db                	add    %ebx,%ebx
406d66:	66 89 0e             	mov    %cx,(%esi)
406d69:	eb 15                	jmp    0x406d80
406d6b:	29 4d f0             	sub    %ecx,-0x10(%ebp)
406d6e:	29 4d f4             	sub    %ecx,-0xc(%ebp)
406d71:	66 8b c8             	mov    %ax,%cx
406d74:	8d 5a 01             	lea    0x1(%edx),%ebx
406d77:	66 c1 e9 05          	shr    $0x5,%cx
406d7b:	2b c1                	sub    %ecx,%eax
406d7d:	66 89 06             	mov    %ax,(%esi)
406d80:	81 7d f0 00 00 00 01 	cmpl   $0x1000000,-0x10(%ebp)
406d87:	89 5d bc             	mov    %ebx,-0x44(%ebp)
406d8a:	73 a1                	jae    0x406d2d
406d8c:	e9 77 ff ff ff       	jmp    0x406d08
406d91:	83 7d c0 01          	cmpl   $0x1,-0x40(%ebp)
406d95:	75 1c                	jne    0x406db3
406d97:	8b 45 fc             	mov    -0x4(%ebp),%eax
406d9a:	8b 4d c8             	mov    -0x38(%ebp),%ecx
406d9d:	c7 85 7c ff ff ff 08 	movl   $0x8,-0x84(%ebp)
406da4:	00 00 00
406da7:	8d b4 48 98 01 00 00 	lea    0x198(%eax,%ecx,2),%esi
406dae:	e9 ab 03 00 00       	jmp    0x40715e
406db3:	8b 45 dc             	mov    -0x24(%ebp),%eax
406db6:	c7 45 80 16 00 00 00 	movl   $0x16,-0x80(%ebp)
406dbd:	89 45 e0             	mov    %eax,-0x20(%ebp)
406dc0:	8b 45 d8             	mov    -0x28(%ebp),%eax
406dc3:	89 45 dc             	mov    %eax,-0x24(%ebp)
406dc6:	8b 45 d4             	mov    -0x2c(%ebp),%eax
406dc9:	89 45 d8             	mov    %eax,-0x28(%ebp)
406dcc:	33 c0                	xor    %eax,%eax
406dce:	83 7d c8 07          	cmpl   $0x7,-0x38(%ebp)
406dd2:	0f 9d c0             	setge  %al
406dd5:	48                   	dec    %eax
406dd6:	24 fd                	and    $0xfd,%al
406dd8:	83 c0 0a             	add    $0xa,%eax
406ddb:	89 45 c8             	mov    %eax,-0x38(%ebp)
406dde:	8b 45 fc             	mov    -0x4(%ebp),%eax
406de1:	05 64 06 00 00       	add    $0x664,%eax
406de6:	89 45 a8             	mov    %eax,-0x58(%ebp)
406de9:	8b 75 a8             	mov    -0x58(%ebp),%esi
406dec:	c7 85 7c ff ff ff 12 	movl   $0x12,-0x84(%ebp)
406df3:	00 00 00
406df6:	e9 63 03 00 00       	jmp    0x40715e
406dfb:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
406dff:	75 21                	jne    0x406e22
406e01:	8b 45 c8             	mov    -0x38(%ebp),%eax
406e04:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406e07:	83 c0 0f             	add    $0xf,%eax
406e0a:	c7 85 7c ff ff ff 09 	movl   $0x9,-0x84(%ebp)
406e11:	00 00 00
406e14:	c1 e0 04             	shl    $0x4,%eax
406e17:	03 45 b4             	add    -0x4c(%ebp),%eax
406e1a:	8d 34 41             	lea    (%ecx,%eax,2),%esi
406e1d:	e9 3c 03 00 00       	jmp    0x40715e
406e22:	8b 45 fc             	mov    -0x4(%ebp),%eax
406e25:	8b 4d c8             	mov    -0x38(%ebp),%ecx
406e28:	c7 85 7c ff ff ff 0a 	movl   $0xa,-0x84(%ebp)
406e2f:	00 00 00
406e32:	8d b4 48 b0 01 00 00 	lea    0x1b0(%eax,%ecx,2),%esi
406e39:	e9 20 03 00 00       	jmp    0x40715e
406e3e:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
406e42:	0f 85 b1 00 00 00    	jne    0x406ef9
406e48:	83 7d a0 00          	cmpl   $0x0,-0x60(%ebp)
406e4c:	0f 84 3b 05 00 00    	je     0x40738d
406e52:	33 c0                	xor    %eax,%eax
406e54:	83 7d c8 07          	cmpl   $0x7,-0x38(%ebp)
406e58:	0f 9d c0             	setge  %al
406e5b:	8d 44 00 09          	lea    0x9(%eax,%eax,1),%eax
406e5f:	89 45 c8             	mov    %eax,-0x38(%ebp)
406e62:	83 7d 9c 00          	cmpl   $0x0,-0x64(%ebp)
406e66:	0f 84 c0 04 00 00    	je     0x40732c
406e6c:	8b 45 ec             	mov    -0x14(%ebp),%eax
406e6f:	2b 45 d4             	sub    -0x2c(%ebp),%eax
406e72:	3b 45 8c             	cmp    -0x74(%ebp),%eax
406e75:	72 03                	jb     0x406e7a
406e77:	03 45 8c             	add    -0x74(%ebp),%eax
406e7a:	8b 55 f8             	mov    -0x8(%ebp),%edx
406e7d:	8a 0c 10             	mov    (%eax,%edx,1),%cl
406e80:	8b 45 ec             	mov    -0x14(%ebp),%eax
406e83:	88 4d a4             	mov    %cl,-0x5c(%ebp)
406e86:	88 0c 10             	mov    %cl,(%eax,%edx,1)
406e89:	40                   	inc    %eax
406e8a:	33 d2                	xor    %edx,%edx
406e8c:	f7 75 8c             	divl   -0x74(%ebp)
406e8f:	8b 45 98             	mov    -0x68(%ebp),%eax
406e92:	ff 45 a0             	incl   -0x60(%ebp)
406e95:	ff 45 98             	incl   -0x68(%ebp)
406e98:	ff 4d 9c             	decl   -0x64(%ebp)
406e9b:	88 08                	mov    %cl,(%eax)
406e9d:	89 55 ec             	mov    %edx,-0x14(%ebp)
406ea0:	c7 85 78 ff ff ff 02 	movl   $0x2,-0x88(%ebp)
406ea7:	00 00 00
406eaa:	e9 c7 fa ff ff       	jmp    0x406976
406eaf:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
406eb3:	75 05                	jne    0x406eba
406eb5:	8b 45 d8             	mov    -0x28(%ebp),%eax
406eb8:	eb 36                	jmp    0x406ef0
406eba:	8b 45 fc             	mov    -0x4(%ebp),%eax
406ebd:	8b 4d c8             	mov    -0x38(%ebp),%ecx
406ec0:	c7 85 7c ff ff ff 0b 	movl   $0xb,-0x84(%ebp)
406ec7:	00 00 00
406eca:	8d b4 48 c8 01 00 00 	lea    0x1c8(%eax,%ecx,2),%esi
406ed1:	e9 88 02 00 00       	jmp    0x40715e
406ed6:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
406eda:	75 05                	jne    0x406ee1
406edc:	8b 45 dc             	mov    -0x24(%ebp),%eax
406edf:	eb 09                	jmp    0x406eea
406ee1:	8b 4d dc             	mov    -0x24(%ebp),%ecx
406ee4:	8b 45 e0             	mov    -0x20(%ebp),%eax
406ee7:	89 4d e0             	mov    %ecx,-0x20(%ebp)
406eea:	8b 4d d8             	mov    -0x28(%ebp),%ecx
406eed:	89 4d dc             	mov    %ecx,-0x24(%ebp)
406ef0:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
406ef3:	89 45 d4             	mov    %eax,-0x2c(%ebp)
406ef6:	89 4d d8             	mov    %ecx,-0x28(%ebp)
406ef9:	8b 45 fc             	mov    -0x4(%ebp),%eax
406efc:	c7 45 80 15 00 00 00 	movl   $0x15,-0x80(%ebp)
406f03:	05 68 0a 00 00       	add    $0xa68,%eax
406f08:	89 45 a8             	mov    %eax,-0x58(%ebp)
406f0b:	e9 d9 fe ff ff       	jmp    0x406de9
406f10:	33 c0                	xor    %eax,%eax
406f12:	83 7d c8 07          	cmpl   $0x7,-0x38(%ebp)
406f16:	0f 9d c0             	setge  %al
406f19:	48                   	dec    %eax
406f1a:	24 fd                	and    $0xfd,%al
406f1c:	83 c0 0b             	add    $0xb,%eax
406f1f:	89 45 c8             	mov    %eax,-0x38(%ebp)
406f22:	e9 9a 01 00 00       	jmp    0x4070c1
406f27:	8b 45 d0             	mov    -0x30(%ebp),%eax
406f2a:	83 f8 04             	cmp    $0x4,%eax
406f2d:	7c 03                	jl     0x406f32
406f2f:	6a 03                	push   $0x3
406f31:	58                   	pop    %eax
406f32:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406f35:	c7 45 c0 06 00 00 00 	movl   $0x6,-0x40(%ebp)
406f3c:	c1 e0 07             	shl    $0x7,%eax
406f3f:	c7 45 84 19 00 00 00 	movl   $0x19,-0x7c(%ebp)
406f46:	8d 84 08 60 03 00 00 	lea    0x360(%eax,%ecx,1),%eax
406f4d:	89 45 a8             	mov    %eax,-0x58(%ebp)
406f50:	e9 ce 02 00 00       	jmp    0x407223
406f55:	83 fb 04             	cmp    $0x4,%ebx
406f58:	7c 34                	jl     0x406f8e
406f5a:	8b cb                	mov    %ebx,%ecx
406f5c:	8b c3                	mov    %ebx,%eax
406f5e:	d1 f9                	sar    $1,%ecx
406f60:	83 e0 01             	and    $0x1,%eax
406f63:	49                   	dec    %ecx
406f64:	0c 02                	or     $0x2,%al
406f66:	d3 e0                	shl    %cl,%eax
406f68:	83 fb 0e             	cmp    $0xe,%ebx
406f6b:	89 45 d4             	mov    %eax,-0x2c(%ebp)
406f6e:	7d 14                	jge    0x406f84
406f70:	8b 55 fc             	mov    -0x4(%ebp),%edx
406f73:	2b c3                	sub    %ebx,%eax
406f75:	89 4d c0             	mov    %ecx,-0x40(%ebp)
406f78:	8d 84 42 5e 05 00 00 	lea    0x55e(%edx,%eax,2),%eax
406f7f:	e9 81 00 00 00       	jmp    0x407005
406f84:	33 db                	xor    %ebx,%ebx
406f86:	83 c1 fc             	add    $0xfffffffc,%ecx
406f89:	89 4d b8             	mov    %ecx,-0x48(%ebp)
406f8c:	eb 33                	jmp    0x406fc1
406f8e:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
406f91:	e9 28 01 00 00       	jmp    0x4070be
406f96:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
406f9a:	0f 84 98 03 00 00    	je     0x407338
406fa0:	8b 4d 90             	mov    -0x70(%ebp),%ecx
406fa3:	8b 45 f4             	mov    -0xc(%ebp),%eax
406fa6:	c1 65 f0 08          	shll   $0x8,-0x10(%ebp)
406faa:	0f b6 09             	movzbl (%ecx),%ecx
406fad:	ff 4d 94             	decl   -0x6c(%ebp)
406fb0:	c1 e0 08             	shl    $0x8,%eax
406fb3:	0b c1                	or     %ecx,%eax
406fb5:	ff 45 90             	incl   -0x70(%ebp)
406fb8:	89 45 f4             	mov    %eax,-0xc(%ebp)
406fbb:	8b 45 d4             	mov    -0x2c(%ebp),%eax
406fbe:	ff 4d b8             	decl   -0x48(%ebp)
406fc1:	83 7d b8 00          	cmpl   $0x0,-0x48(%ebp)
406fc5:	7e 27                	jle    0x406fee
406fc7:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406fca:	03 db                	add    %ebx,%ebx
406fcc:	d1 6d f0             	shrl   $1,-0x10(%ebp)
406fcf:	3b 4d f0             	cmp    -0x10(%ebp),%ecx
406fd2:	89 5d bc             	mov    %ebx,-0x44(%ebp)
406fd5:	72 0c                	jb     0x406fe3
406fd7:	8b 4d f0             	mov    -0x10(%ebp),%ecx
406fda:	29 4d f4             	sub    %ecx,-0xc(%ebp)
406fdd:	83 cb 01             	or     $0x1,%ebx
406fe0:	89 5d bc             	mov    %ebx,-0x44(%ebp)
406fe3:	81 7d f0 00 00 00 01 	cmpl   $0x1000000,-0x10(%ebp)
406fea:	73 d2                	jae    0x406fbe
406fec:	eb a8                	jmp    0x406f96
406fee:	c1 e3 04             	shl    $0x4,%ebx
406ff1:	03 c3                	add    %ebx,%eax
406ff3:	c7 45 c0 04 00 00 00 	movl   $0x4,-0x40(%ebp)
406ffa:	89 45 d4             	mov    %eax,-0x2c(%ebp)
406ffd:	8b 45 fc             	mov    -0x4(%ebp),%eax
407000:	05 44 06 00 00       	add    $0x644,%eax
407005:	33 db                	xor    %ebx,%ebx
407007:	89 45 a8             	mov    %eax,-0x58(%ebp)
40700a:	c7 45 b0 01 00 00 00 	movl   $0x1,-0x50(%ebp)
407011:	89 5d bc             	mov    %ebx,-0x44(%ebp)
407014:	89 5d b8             	mov    %ebx,-0x48(%ebp)
407017:	eb 28                	jmp    0x407041
407019:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
40701d:	0f 84 21 03 00 00    	je     0x407344
407023:	8b 4d 90             	mov    -0x70(%ebp),%ecx
407026:	8b 45 f4             	mov    -0xc(%ebp),%eax
407029:	c1 65 f0 08          	shll   $0x8,-0x10(%ebp)
40702d:	0f b6 09             	movzbl (%ecx),%ecx
407030:	ff 4d 94             	decl   -0x6c(%ebp)
407033:	c1 e0 08             	shl    $0x8,%eax
407036:	0b c1                	or     %ecx,%eax
407038:	ff 45 90             	incl   -0x70(%ebp)
40703b:	89 45 f4             	mov    %eax,-0xc(%ebp)
40703e:	ff 45 b8             	incl   -0x48(%ebp)
407041:	8b 45 c0             	mov    -0x40(%ebp),%eax
407044:	39 45 b8             	cmp    %eax,-0x48(%ebp)
407047:	7d 72                	jge    0x4070bb
407049:	8b 45 b0             	mov    -0x50(%ebp),%eax
40704c:	8b 55 f0             	mov    -0x10(%ebp),%edx
40704f:	c1 ea 0b             	shr    $0xb,%edx
407052:	8d 3c 00             	lea    (%eax,%eax,1),%edi
407055:	8b 45 a8             	mov    -0x58(%ebp),%eax
407058:	8d 34 07             	lea    (%edi,%eax,1),%esi
40705b:	89 75 ac             	mov    %esi,-0x54(%ebp)
40705e:	66 8b 06             	mov    (%esi),%ax
407061:	0f b7 c8             	movzwl %ax,%ecx
407064:	0f af d1             	imul   %ecx,%edx
407067:	39 55 f4             	cmp    %edx,-0xc(%ebp)
40706a:	73 17                	jae    0x407083
40706c:	89 55 f0             	mov    %edx,-0x10(%ebp)
40706f:	ba 00 08 00 00       	mov    $0x800,%edx
407074:	2b d1                	sub    %ecx,%edx
407076:	c1 fa 05             	sar    $0x5,%edx
407079:	03 d0                	add    %eax,%edx
40707b:	d1 65 b0             	shll   $1,-0x50(%ebp)
40707e:	66 89 16             	mov    %dx,(%esi)
407081:	eb 2a                	jmp    0x4070ad
407083:	33 c9                	xor    %ecx,%ecx
407085:	29 55 f0             	sub    %edx,-0x10(%ebp)
407088:	41                   	inc    %ecx
407089:	29 55 f4             	sub    %edx,-0xc(%ebp)
40708c:	8b d9                	mov    %ecx,%ebx
40708e:	8b 4d b8             	mov    -0x48(%ebp),%ecx
407091:	d3 e3                	shl    %cl,%ebx
407093:	8b cb                	mov    %ebx,%ecx
407095:	8b 5d bc             	mov    -0x44(%ebp),%ebx
407098:	0b d9                	or     %ecx,%ebx
40709a:	66 8b c8             	mov    %ax,%cx
40709d:	66 c1 e9 05          	shr    $0x5,%cx
4070a1:	2b c1                	sub    %ecx,%eax
4070a3:	47                   	inc    %edi
4070a4:	89 5d bc             	mov    %ebx,-0x44(%ebp)
4070a7:	66 89 06             	mov    %ax,(%esi)
4070aa:	89 7d b0             	mov    %edi,-0x50(%ebp)
4070ad:	81 7d f0 00 00 00 01 	cmpl   $0x1000000,-0x10(%ebp)
4070b4:	73 88                	jae    0x40703e
4070b6:	e9 5e ff ff ff       	jmp    0x407019
4070bb:	01 5d d4             	add    %ebx,-0x2c(%ebp)
4070be:	ff 45 d4             	incl   -0x2c(%ebp)
4070c1:	8b 45 d4             	mov    -0x2c(%ebp),%eax
4070c4:	85 c0                	test   %eax,%eax
4070c6:	0f 84 84 02 00 00    	je     0x407350
4070cc:	3b 45 a0             	cmp    -0x60(%ebp),%eax
4070cf:	0f 87 b8 02 00 00    	ja     0x40738d
4070d5:	83 45 d0 02          	addl   $0x2,-0x30(%ebp)
4070d9:	8b 45 d0             	mov    -0x30(%ebp),%eax
4070dc:	01 45 a0             	add    %eax,-0x60(%ebp)
4070df:	83 7d 9c 00          	cmpl   $0x0,-0x64(%ebp)
4070e3:	0f 84 6d 02 00 00    	je     0x407356
4070e9:	8b 45 ec             	mov    -0x14(%ebp),%eax
4070ec:	2b 45 d4             	sub    -0x2c(%ebp),%eax
4070ef:	3b 45 8c             	cmp    -0x74(%ebp),%eax
4070f2:	72 03                	jb     0x4070f7
4070f4:	03 45 8c             	add    -0x74(%ebp),%eax
4070f7:	8b 55 f8             	mov    -0x8(%ebp),%edx
4070fa:	8a 0c 10             	mov    (%eax,%edx,1),%cl
4070fd:	8b 45 ec             	mov    -0x14(%ebp),%eax
407100:	88 4d a4             	mov    %cl,-0x5c(%ebp)
407103:	88 0c 10             	mov    %cl,(%eax,%edx,1)
407106:	40                   	inc    %eax
407107:	33 d2                	xor    %edx,%edx
407109:	f7 75 8c             	divl   -0x74(%ebp)
40710c:	8b 45 98             	mov    -0x68(%ebp),%eax
40710f:	ff 45 98             	incl   -0x68(%ebp)
407112:	ff 4d 9c             	decl   -0x64(%ebp)
407115:	ff 4d d0             	decl   -0x30(%ebp)
407118:	83 7d d0 00          	cmpl   $0x0,-0x30(%ebp)
40711c:	88 08                	mov    %cl,(%eax)
40711e:	89 55 ec             	mov    %edx,-0x14(%ebp)
407121:	7f bc                	jg     0x4070df
407123:	e9 78 fd ff ff       	jmp    0x406ea0
407128:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
40712c:	75 20                	jne    0x40714e
40712e:	8b 45 b4             	mov    -0x4c(%ebp),%eax
407131:	83 65 d0 00          	andl   $0x0,-0x30(%ebp)
407135:	8b 4d a8             	mov    -0x58(%ebp),%ecx
407138:	c1 e0 04             	shl    $0x4,%eax
40713b:	8d 44 01 04          	lea    0x4(%ecx,%eax,1),%eax
40713f:	89 45 a8             	mov    %eax,-0x58(%ebp)
407142:	c7 45 c0 03 00 00 00 	movl   $0x3,-0x40(%ebp)
407149:	e9 ce 00 00 00       	jmp    0x40721c
40714e:	8b 45 a8             	mov    -0x58(%ebp),%eax
407151:	c7 85 7c ff ff ff 13 	movl   $0x13,-0x84(%ebp)
407158:	00 00 00