406a84:	33 c0                	xor    %eax,%eax
406a86:	83 7d c8 07          	cmpl   $0x7,-0x38(%ebp)
406a8a:	0f 9d c0             	setge  %al
406a8d:	48                   	dec    %eax
406a8e:	24 fd                	and    $0xfd,%al
406a90:	83 c0 0b             	add    $0xb,%eax
406a93:	89 45 c8             	mov    %eax,-0x38(%ebp)
406a96:	e9 9a 01 00 00       	jmp    0x406c35
406a9b:	8b 45 d0             	mov    -0x30(%ebp),%eax
406a9e:	83 f8 04             	cmp    $0x4,%eax
406aa1:	7c 03                	jl     0x406aa6
406aa3:	6a 03                	push   $0x3
406aa5:	58                   	pop    %eax
406aa6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406aa9:	c7 45 c0 06 00 00 00 	movl   $0x6,-0x40(%ebp)
406ab0:	c1 e0 07             	shl    $0x7,%eax
406ab3:	c7 45 84 19 00 00 00 	movl   $0x19,-0x7c(%ebp)
406aba:	8d 84 08 60 03 00 00 	lea    0x360(%eax,%ecx,1),%eax
406ac1:	89 45 a8             	mov    %eax,-0x58(%ebp)
406ac4:	e9 ce 02 00 00       	jmp    0x406d97
406ac9:	83 fb 04             	cmp    $0x4,%ebx
406acc:	7c 34                	jl     0x406b02
406ace:	8b cb                	mov    %ebx,%ecx
406ad0:	8b c3                	mov    %ebx,%eax
406ad2:	d1 f9                	sar    $1,%ecx
406ad4:	83 e0 01             	and    $0x1,%eax
406ad7:	49                   	dec    %ecx
406ad8:	0c 02                	or     $0x2,%al
406ada:	d3 e0                	shl    %cl,%eax
406adc:	83 fb 0e             	cmp    $0xe,%ebx
406adf:	89 45 d4             	mov    %eax,-0x2c(%ebp)
406ae2:	7d 14                	jge    0x406af8
406ae4:	8b 55 fc             	mov    -0x4(%ebp),%edx
406ae7:	2b c3                	sub    %ebx,%eax
406ae9:	89 4d c0             	mov    %ecx,-0x40(%ebp)
406aec:	8d 84 42 5e 05 00 00 	lea    0x55e(%edx,%eax,2),%eax
406af3:	e9 81 00 00 00       	jmp    0x406b79
406af8:	33 db                	xor    %ebx,%ebx
406afa:	83 c1 fc             	add    $0xfffffffc,%ecx
406afd:	89 4d b8             	mov    %ecx,-0x48(%ebp)
406b00:	eb 33                	jmp    0x406b35
406b02:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
406b05:	e9 28 01 00 00       	jmp    0x406c32
406b0a:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
406b0e:	0f 84 98 03 00 00    	je     0x406eac
406b14:	8b 4d 90             	mov    -0x70(%ebp),%ecx
406b17:	8b 45 f4             	mov    -0xc(%ebp),%eax
406b1a:	c1 65 f0 08          	shll   $0x8,-0x10(%ebp)
406b1e:	0f b6 09             	movzbl (%ecx),%ecx
406b21:	ff 4d 94             	decl   -0x6c(%ebp)
406b24:	c1 e0 08             	shl    $0x8,%eax
406b27:	0b c1                	or     %ecx,%eax
406b29:	ff 45 90             	incl   -0x70(%ebp)
406b2c:	89 45 f4             	mov    %eax,-0xc(%ebp)
406b2f:	8b 45 d4             	mov    -0x2c(%ebp),%eax
406b32:	ff 4d b8             	decl   -0x48(%ebp)
406b35:	83 7d b8 00          	cmpl   $0x0,-0x48(%ebp)
406b39:	7e 27                	jle    0x406b62
406b3b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406b3e:	03 db                	add    %ebx,%ebx
406b40:	d1 6d f0             	shrl   $1,-0x10(%ebp)
406b43:	3b 4d f0             	cmp    -0x10(%ebp),%ecx
406b46:	89 5d bc             	mov    %ebx,-0x44(%ebp)
406b49:	72 0c                	jb     0x406b57
406b4b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
406b4e:	29 4d f4             	sub    %ecx,-0xc(%ebp)
406b51:	83 cb 01             	or     $0x1,%ebx
406b54:	89 5d bc             	mov    %ebx,-0x44(%ebp)
406b57:	81 7d f0 00 00 00 01 	cmpl   $0x1000000,-0x10(%ebp)
406b5e:	73 d2                	jae    0x406b32
406b60:	eb a8                	jmp    0x406b0a
406b62:	c1 e3 04             	shl    $0x4,%ebx
406b65:	03 c3                	add    %ebx,%eax
406b67:	c7 45 c0 04 00 00 00 	movl   $0x4,-0x40(%ebp)
406b6e:	89 45 d4             	mov    %eax,-0x2c(%ebp)
406b71:	8b 45 fc             	mov    -0x4(%ebp),%eax
406b74:	05 44 06 00 00       	add    $0x644,%eax
406b79:	33 db                	xor    %ebx,%ebx
406b7b:	89 45 a8             	mov    %eax,-0x58(%ebp)
406b7e:	c7 45 b0 01 00 00 00 	movl   $0x1,-0x50(%ebp)
406b85:	89 5d bc             	mov    %ebx,-0x44(%ebp)
406b88:	89 5d b8             	mov    %ebx,-0x48(%ebp)
406b8b:	eb 28                	jmp    0x406bb5
406b8d:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
406b91:	0f 84 21 03 00 00    	je     0x406eb8
406b97:	8b 4d 90             	mov    -0x70(%ebp),%ecx
406b9a:	8b 45 f4             	mov    -0xc(%ebp),%eax
406b9d:	c1 65 f0 08          	shll   $0x8,-0x10(%ebp)
406ba1:	0f b6 09             	movzbl (%ecx),%ecx
406ba4:	ff 4d 94             	decl   -0x6c(%ebp)
406ba7:	c1 e0 08             	shl    $0x8,%eax
406baa:	0b c1                	or     %ecx,%eax
406bac:	ff 45 90             	incl   -0x70(%ebp)
406baf:	89 45 f4             	mov    %eax,-0xc(%ebp)
406bb2:	ff 45 b8             	incl   -0x48(%ebp)
406bb5:	8b 45 c0             	mov    -0x40(%ebp),%eax
406bb8:	39 45 b8             	cmp    %eax,-0x48(%ebp)
406bbb:	7d 72                	jge    0x406c2f
406bbd:	8b 45 b0             	mov    -0x50(%ebp),%eax
406bc0:	8b 55 f0             	mov    -0x10(%ebp),%edx
406bc3:	c1 ea 0b             	shr    $0xb,%edx
406bc6:	8d 3c 00             	lea    (%eax,%eax,1),%edi
406bc9:	8b 45 a8             	mov    -0x58(%ebp),%eax
406bcc:	8d 34 07             	lea    (%edi,%eax,1),%esi
406bcf:	89 75 ac             	mov    %esi,-0x54(%ebp)
406bd2:	66 8b 06             	mov    (%esi),%ax
406bd5:	0f b7 c8             	movzwl %ax,%ecx
406bd8:	0f af d1             	imul   %ecx,%edx
406bdb:	39 55 f4             	cmp    %edx,-0xc(%ebp)
406bde:	73 17                	jae    0x406bf7
406be0:	89 55 f0             	mov    %edx,-0x10(%ebp)
406be3:	ba 00 08 00 00       	mov    $0x800,%edx
406be8:	2b d1                	sub    %ecx,%edx
406bea:	c1 fa 05             	sar    $0x5,%edx
406bed:	03 d0                	add    %eax,%edx
406bef:	d1 65 b0             	shll   $1,-0x50(%ebp)
406bf2:	66 89 16             	mov    %dx,(%esi)
406bf5:	eb 2a                	jmp    0x406c21
406bf7:	33 c9                	xor    %ecx,%ecx
406bf9:	29 55 f0             	sub    %edx,-0x10(%ebp)
406bfc:	41                   	inc    %ecx
406bfd:	29 55 f4             	sub    %edx,-0xc(%ebp)
406c00:	8b d9                	mov    %ecx,%ebx
406c02:	8b 4d b8             	mov    -0x48(%ebp),%ecx
406c05:	d3 e3                	shl    %cl,%ebx
406c07:	8b cb                	mov    %ebx,%ecx
406c09:	8b 5d bc             	mov    -0x44(%ebp),%ebx
406c0c:	0b d9                	or     %ecx,%ebx
406c0e:	66 8b c8             	mov    %ax,%cx
406c11:	66 c1 e9 05          	shr    $0x5,%cx
406c15:	2b c1                	sub    %ecx,%eax
406c17:	47                   	inc    %edi
406c18:	89 5d bc             	mov    %ebx,-0x44(%ebp)
406c1b:	66 89 06             	mov    %ax,(%esi)
406c1e:	89 7d b0             	mov    %edi,-0x50(%ebp)
406c21:	81 7d f0 00 00 00 01 	cmpl   $0x1000000,-0x10(%ebp)
406c28:	73 88                	jae    0x406bb2
406c2a:	e9 5e ff ff ff       	jmp    0x406b8d
406c2f:	01 5d d4             	add    %ebx,-0x2c(%ebp)
406c32:	ff 45 d4             	incl   -0x2c(%ebp)
406c35:	8b 45 d4             	mov    -0x2c(%ebp),%eax
406c38:	85 c0                	test   %eax,%eax
406c3a:	0f 84 84 02 00 00    	je     0x406ec4
406c40:	3b 45 a0             	cmp    -0x60(%ebp),%eax
406c43:	0f 87 b8 02 00 00    	ja     0x406f01
406c49:	83 45 d0 02          	addl   $0x2,-0x30(%ebp)
406c4d:	8b 45 d0             	mov    -0x30(%ebp),%eax
406c50:	01 45 a0             	add    %eax,-0x60(%ebp)
406c53:	83 7d 9c 00          	cmpl   $0x0,-0x64(%ebp)
406c57:	0f 84 6d 02 00 00    	je     0x406eca
406c5d:	8b 45 ec             	mov    -0x14(%ebp),%eax
406c60:	2b 45 d4             	sub    -0x2c(%ebp),%eax
406c63:	3b 45 8c             	cmp    -0x74(%ebp),%eax
406c66:	72 03                	jb     0x406c6b
406c68:	03 45 8c             	add    -0x74(%ebp),%eax
406c6b:	8b 55 f8             	mov    -0x8(%ebp),%edx
406c6e:	8a 0c 10             	mov    (%eax,%edx,1),%cl
406c71:	8b 45 ec             	mov    -0x14(%ebp),%eax
406c74:	88 4d a4             	mov    %cl,-0x5c(%ebp)
406c77:	88 0c 10             	mov    %cl,(%eax,%edx,1)
406c7a:	40                   	inc    %eax
406c7b:	33 d2                	xor    %edx,%edx
406c7d:	f7 75 8c             	divl   -0x74(%ebp)
406c80:	8b 45 98             	mov    -0x68(%ebp),%eax
406c83:	ff 45 98             	incl   -0x68(%ebp)
406c86:	ff 4d 9c             	decl   -0x64(%ebp)
406c89:	ff 4d d0             	decl   -0x30(%ebp)
406c8c:	83 7d d0 00          	cmpl   $0x0,-0x30(%ebp)
406c90:	88 08                	mov    %cl,(%eax)
406c92:	89 55 ec             	mov    %edx,-0x14(%ebp)
406c95:	7f bc                	jg     0x406c53
406c97:	e9 78 fd ff ff       	jmp    0x406a14
406c9c:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
406ca0:	75 20                	jne    0x406cc2
406ca2:	8b 45 b4             	mov    -0x4c(%ebp),%eax
406ca5:	83 65 d0 00          	andl   $0x0,-0x30(%ebp)
406ca9:	8b 4d a8             	mov    -0x58(%ebp),%ecx
406cac:	c1 e0 04             	shl    $0x4,%eax
406caf:	8d 44 01 04          	lea    0x4(%ecx,%eax,1),%eax
406cb3:	89 45 a8             	mov    %eax,-0x58(%ebp)
406cb6:	c7 45 c0 03 00 00 00 	movl   $0x3,-0x40(%ebp)
406cbd:	e9 ce 00 00 00       	jmp    0x406d90
406cc2:	8b 45 a8             	mov    -0x58(%ebp),%eax
406cc5:	c7 85 7c ff ff ff 13 	movl   $0x13,-0x84(%ebp)
406ccc:	00 00 00
406ccf:	8d 70 02             	lea    0x2(%eax),%esi
406cd2:	89 75 ac             	mov    %esi,-0x54(%ebp)
406cd5:	66 8b 06             	mov    (%esi),%ax
406cd8:	8b 4d f0             	mov    -0x10(%ebp),%ecx
406cdb:	0f b7 d0             	movzwl %ax,%edx
406cde:	c1 e9 0b             	shr    $0xb,%ecx
406ce1:	0f af ca             	imul   %edx,%ecx
406ce4:	39 4d f4             	cmp    %ecx,-0xc(%ebp)
406ce7:	73 18                	jae    0x406d01
406ce9:	89 4d f0             	mov    %ecx,-0x10(%ebp)
406cec:	b9 00 08 00 00       	mov    $0x800,%ecx
406cf1:	2b ca                	sub    %edx,%ecx
406cf3:	c1 f9 05             	sar    $0x5,%ecx
406cf6:	03 c8                	add    %eax,%ecx
406cf8:	83 65 c0 00          	andl   $0x0,-0x40(%ebp)
406cfc:	66 89 0e             	mov    %cx,(%esi)
406cff:	eb 19                	jmp    0x406d1a
406d01:	29 4d f0             	sub    %ecx,-0x10(%ebp)
406d04:	29 4d f4             	sub    %ecx,-0xc(%ebp)
406d07:	66 8b c8             	mov    %ax,%cx
406d0a:	c7 45 c0 01 00 00 00 	movl   $0x1,-0x40(%ebp)
406d11:	66 c1 e9 05          	shr    $0x5,%cx
406d15:	2b c1                	sub    %ecx,%eax
406d17:	66 89 06             	mov    %ax,(%esi)
406d1a:	81 7d f0 00 00 00 01 	cmpl   $0x1000000,-0x10(%ebp)
406d21:	73 25                	jae    0x406d48
406d23:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
406d27:	0f 84 a9 01 00 00    	je     0x406ed6
406d2d:	8b 4d 90             	mov    -0x70(%ebp),%ecx
406d30:	8b 45 f4             	mov    -0xc(%ebp),%eax
406d33:	c1 65 f0 08          	shll   $0x8,-0x10(%ebp)
406d37:	0f b6 09             	movzbl (%ecx),%ecx
406d3a:	ff 4d 94             	decl   -0x6c(%ebp)
406d3d:	c1 e0 08             	shl    $0x8,%eax
406d40:	0b c1                	or     %ecx,%eax
406d42:	ff 45 90             	incl   -0x70(%ebp)
406d45:	89 45 f4             	mov    %eax,-0xc(%ebp)
406d48:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
406d4e:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
406d54:	e9 91 f7 ff ff       	jmp    0x4064ea
406d59:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
406d5d:	75 1c                	jne    0x406d7b
406d5f:	8b 45 b4             	mov    -0x4c(%ebp),%eax
406d62:	8b 4d a8             	mov    -0x58(%ebp),%ecx
406d65:	c1 e0 04             	shl    $0x4,%eax
406d68:	c7 45 d0 08 00 00 00 	movl   $0x8,-0x30(%ebp)
406d6f:	8d 84 01 04 01 00 00 	lea    0x104(%ecx,%eax,1),%eax
406d76:	e9 38 ff ff ff       	jmp    0x406cb3
406d7b:	81 45 a8 04 02 00 00 	addl   $0x204,-0x58(%ebp)
406d82:	c7 45 d0 10 00 00 00 	movl   $0x10,-0x30(%ebp)
406d89:	c7 45 c0 08 00 00 00 	movl   $0x8,-0x40(%ebp)
406d90:	c7 45 84 14 00 00 00 	movl   $0x14,-0x7c(%ebp)
406d97:	8b 45 c0             	mov    -0x40(%ebp),%eax
406d9a:	c7 45 b0 01 00 00 00 	movl   $0x1,-0x50(%ebp)
406da1:	89 45 b8             	mov    %eax,-0x48(%ebp)
406da4:	eb 28                	jmp    0x406dce
406da6:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
406daa:	0f 84 32 01 00 00    	je     0x406ee2
406db0:	8b 4d 90             	mov    -0x70(%ebp),%ecx
406db3:	8b 45 f4             	mov    -0xc(%ebp),%eax
406db6:	c1 65 f0 08          	shll   $0x8,-0x10(%ebp)
406dba:	0f b6 09             	movzbl (%ecx),%ecx
406dbd:	ff 4d 94             	decl   -0x6c(%ebp)
406dc0:	c1 e0 08             	shl    $0x8,%eax
406dc3:	0b c1                	or     %ecx,%eax
406dc5:	ff 45 90             	incl   -0x70(%ebp)
406dc8:	89 45 f4             	mov    %eax,-0xc(%ebp)
406dcb:	ff 4d b8             	decl   -0x48(%ebp)
406dce:	83 7d b8 00          	cmpl   $0x0,-0x48(%ebp)
406dd2:	7e 5e                	jle    0x406e32
406dd4:	8b 45 b0             	mov    -0x50(%ebp),%eax
406dd7:	8b 4d f0             	mov    -0x10(%ebp),%ecx
406dda:	c1 e9 0b             	shr    $0xb,%ecx
406ddd:	8d 14 00             	lea    (%eax,%eax,1),%edx
406de0:	8b 45 a8             	mov    -0x58(%ebp),%eax
406de3:	8d 34 02             	lea    (%edx,%eax,1),%esi
406de6:	89 75 ac             	mov    %esi,-0x54(%ebp)
406de9:	66 8b 06             	mov    (%esi),%ax
406dec:	0f b7 f8             	movzwl %ax,%edi
406def:	0f af cf             	imul   %edi,%ecx
406df2:	39 4d f4             	cmp    %ecx,-0xc(%ebp)
406df5:	73 17                	jae    0x406e0e
406df7:	89 4d f0             	mov    %ecx,-0x10(%ebp)
406dfa:	b9 00 08 00 00       	mov    $0x800,%ecx
406dff:	2b cf                	sub    %edi,%ecx
406e01:	c1 f9 05             	sar    $0x5,%ecx
406e04:	03 c8                	add    %eax,%ecx
406e06:	d1 65 b0             	shll   $1,-0x50(%ebp)
406e09:	66 89 0e             	mov    %cx,(%esi)
406e0c:	eb 16                	jmp    0x406e24
406e0e:	29 4d f0             	sub    %ecx,-0x10(%ebp)
406e11:	29 4d f4             	sub    %ecx,-0xc(%ebp)
406e14:	66 8b c8             	mov    %ax,%cx
406e17:	66 c1 e9 05          	shr    $0x5,%cx
406e1b:	2b c1                	sub    %ecx,%eax
406e1d:	42                   	inc    %edx
406e1e:	66 89 06             	mov    %ax,(%esi)
406e21:	89 55 b0             	mov    %edx,-0x50(%ebp)
406e24:	81 7d f0 00 00 00 01 	cmpl   $0x1000000,-0x10(%ebp)
406e2b:	73 9e                	jae    0x406dcb
406e2d:	e9 74 ff ff ff       	jmp    0x406da6
406e32:	8b 4d c0             	mov    -0x40(%ebp),%ecx
406e35:	8b 5d b0             	mov    -0x50(%ebp),%ebx
406e38:	33 c0                	xor    %eax,%eax
406e3a:	40                   	inc    %eax
406e3b:	d3 e0                	shl    %cl,%eax
406e3d:	2b d8                	sub    %eax,%ebx
406e3f:	8b 45 84             	mov    -0x7c(%ebp),%eax
406e42:	89 5d bc             	mov    %ebx,-0x44(%ebp)
406e45:	e9 04 ff ff ff       	jmp    0x406d4e
406e4a:	01 5d d0             	add    %ebx,-0x30(%ebp)
406e4d:	8b 45 80             	mov    -0x80(%ebp),%eax
406e50:	e9 f9 fe ff ff       	jmp    0x406d4e
406e55:	c7 85 78 ff ff ff 01 	movl   $0x1,-0x88(%ebp)
406e5c:	00 00 00
406e5f:	e9 88 00 00 00       	jmp    0x406eec
406e64:	c7 85 78 ff ff ff 03 	movl   $0x3,-0x88(%ebp)
406e6b:	00 00 00
406e6e:	eb 7c                	jmp    0x406eec
406e70:	c7 85 78 ff ff ff 0d 	movl   $0xd,-0x88(%ebp)
406e77:	00 00 00
406e7a:	eb 70                	jmp    0x406eec
406e7c:	c7 85 78 ff ff ff 0e 	movl   $0xe,-0x88(%ebp)
406e83:	00 00 00
406e86:	eb 64                	jmp    0x406eec
406e88:	c7 85 78 ff ff ff 0f 	movl   $0xf,-0x88(%ebp)
406e8f:	00 00 00
406e92:	eb 58                	jmp    0x406eec
406e94:	c7 85 78 ff ff ff 1a 	movl   $0x1a,-0x88(%ebp)
406e9b:	00 00 00
406e9e:	eb 4c                	jmp    0x406eec
406ea0:	c7 85 78 ff ff ff 1b 	movl   $0x1b,-0x88(%ebp)
406ea7:	00 00 00
406eaa:	eb 40                	jmp    0x406eec
406eac:	c7 85 78 ff ff ff 0c 	movl   $0xc,-0x88(%ebp)
406eb3:	00 00 00
406eb6:	eb 34                	jmp    0x406eec
406eb8:	c7 85 78 ff ff ff 10 	movl   $0x10,-0x88(%ebp)
406ebf:	00 00 00
406ec2:	eb 28                	jmp    0x406eec
406ec4:	83 4d d0 ff          	orl    $0xffffffff,-0x30(%ebp)
406ec8:	eb 22                	jmp    0x406eec
406eca:	c7 85 78 ff ff ff 1c 	movl   $0x1c,-0x88(%ebp)
406ed1:	00 00 00
406ed4:	eb 16                	jmp    0x406eec
406ed6:	c7 85 78 ff ff ff 05 	movl   $0x5,-0x88(%ebp)
406edd:	00 00 00
406ee0:	eb 0a                	jmp    0x406eec
406ee2:	c7 85 78 ff ff ff 18 	movl   $0x18,-0x88(%ebp)
406ee9:	00 00 00
406eec:	8b bd 70 ff ff ff    	mov    -0x90(%ebp),%edi
406ef2:	6a 22                	push   $0x22
406ef4:	59                   	pop    %ecx
406ef5:	8d b5 78 ff ff ff    	lea    -0x88(%ebp),%esi
406efb:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
406efd:	33 c0                	xor    %eax,%eax
406eff:	eb 03                	jmp    0x406f04
406f01:	83 c8 ff             	or     $0xffffffff,%eax
406f04:	5f                   	pop    %edi
406f05:	5e                   	pop    %esi
406f06:	5b                   	pop    %ebx
406f07:	c9                   	leave
406f08:	c3                   	ret
406f09:	00 65 40             	add    %ah,0x40(%ebp)
406f0c:	00 a5 65 40 00 40    	add    %ah,0x40004065(%ebp)