406824:	8d 5a 01             	lea    0x1(%edx),%ebx
406827:	66 c1 e9 05          	shr    $0x5,%cx
40682b:	2b c1                	sub    %ecx,%eax
40682d:	66 89 06             	mov    %ax,(%esi)
406830:	81 7d f0 00 00 00 01 	cmpl   $0x1000000,-0x10(%ebp)
406837:	89 5d bc             	mov    %ebx,-0x44(%ebp)
40683a:	73 a1                	jae    0x4067dd
40683c:	e9 77 ff ff ff       	jmp    0x4067b8
406841:	83 65 cc 00          	andl   $0x0,-0x34(%ebp)
406845:	8a 45 bc             	mov    -0x44(%ebp),%al
406848:	88 45 a4             	mov    %al,-0x5c(%ebp)
40684b:	83 7d 9c 00          	cmpl   $0x0,-0x64(%ebp)
40684f:	0f 84 3f 06 00 00    	je     0x406e94
406855:	8b 4d 98             	mov    -0x68(%ebp),%ecx
406858:	8a 45 a4             	mov    -0x5c(%ebp),%al
40685b:	8b 55 f8             	mov    -0x8(%ebp),%edx
40685e:	ff 45 a0             	incl   -0x60(%ebp)
406861:	ff 45 98             	incl   -0x68(%ebp)
406864:	ff 4d 9c             	decl   -0x64(%ebp)
406867:	88 01                	mov    %al,(%ecx)
406869:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40686c:	88 04 11             	mov    %al,(%ecx,%edx,1)
40686f:	8d 41 01             	lea    0x1(%ecx),%eax
406872:	33 d2                	xor    %edx,%edx
406874:	f7 75 8c             	divl   -0x74(%ebp)
406877:	e9 95 01 00 00       	jmp    0x406a11
40687c:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
406880:	0f 84 02 06 00 00    	je     0x406e88
406886:	8b 4d 90             	mov    -0x70(%ebp),%ecx
406889:	8b 45 f4             	mov    -0xc(%ebp),%eax
40688c:	c1 65 f0 08          	shll   $0x8,-0x10(%ebp)
406890:	0f b6 09             	movzbl (%ecx),%ecx
406893:	ff 4d 94             	decl   -0x6c(%ebp)
406896:	c1 e0 08             	shl    $0x8,%eax
406899:	0b c1                	or     %ecx,%eax
40689b:	ff 45 90             	incl   -0x70(%ebp)
40689e:	89 45 f4             	mov    %eax,-0xc(%ebp)
4068a1:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
4068a7:	7d 9c                	jge    0x406845
4068a9:	8b 45 a8             	mov    -0x58(%ebp),%eax
4068ac:	8d 14 1b             	lea    (%ebx,%ebx,1),%edx
4068af:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4068b2:	8d 34 02             	lea    (%edx,%eax,1),%esi
4068b5:	c1 e9 0b             	shr    $0xb,%ecx
4068b8:	66 8b 06             	mov    (%esi),%ax
4068bb:	89 75 ac             	mov    %esi,-0x54(%ebp)
4068be:	0f b7 f8             	movzwl %ax,%edi
4068c1:	0f af cf             	imul   %edi,%ecx
4068c4:	39 4d f4             	cmp    %ecx,-0xc(%ebp)
4068c7:	73 16                	jae    0x4068df
4068c9:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4068cc:	b9 00 08 00 00       	mov    $0x800,%ecx
4068d1:	2b cf                	sub    %edi,%ecx
4068d3:	c1 f9 05             	sar    $0x5,%ecx
4068d6:	03 c8                	add    %eax,%ecx
4068d8:	03 db                	add    %ebx,%ebx
4068da:	66 89 0e             	mov    %cx,(%esi)
4068dd:	eb 15                	jmp    0x4068f4
4068df:	29 4d f0             	sub    %ecx,-0x10(%ebp)
4068e2:	29 4d f4             	sub    %ecx,-0xc(%ebp)
4068e5:	66 8b c8             	mov    %ax,%cx
4068e8:	8d 5a 01             	lea    0x1(%edx),%ebx
4068eb:	66 c1 e9 05          	shr    $0x5,%cx
4068ef:	2b c1                	sub    %ecx,%eax
4068f1:	66 89 06             	mov    %ax,(%esi)
4068f4:	81 7d f0 00 00 00 01 	cmpl   $0x1000000,-0x10(%ebp)
4068fb:	89 5d bc             	mov    %ebx,-0x44(%ebp)
4068fe:	73 a1                	jae    0x4068a1
406900:	e9 77 ff ff ff       	jmp    0x40687c
406905:	83 7d c0 01          	cmpl   $0x1,-0x40(%ebp)
406909:	75 1c                	jne    0x406927
40690b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40690e:	8b 4d c8             	mov    -0x38(%ebp),%ecx
406911:	c7 85 7c ff ff ff 08 	movl   $0x8,-0x84(%ebp)
406918:	00 00 00
40691b:	8d b4 48 98 01 00 00 	lea    0x198(%eax,%ecx,2),%esi
406922:	e9 ab 03 00 00       	jmp    0x406cd2
406927:	8b 45 dc             	mov    -0x24(%ebp),%eax
40692a:	c7 45 80 16 00 00 00 	movl   $0x16,-0x80(%ebp)
406931:	89 45 e0             	mov    %eax,-0x20(%ebp)
406934:	8b 45 d8             	mov    -0x28(%ebp),%eax
406937:	89 45 dc             	mov    %eax,-0x24(%ebp)
40693a:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40693d:	89 45 d8             	mov    %eax,-0x28(%ebp)
406940:	33 c0                	xor    %eax,%eax
406942:	83 7d c8 07          	cmpl   $0x7,-0x38(%ebp)
406946:	0f 9d c0             	setge  %al
406949:	48                   	dec    %eax
40694a:	24 fd                	and    $0xfd,%al
40694c:	83 c0 0a             	add    $0xa,%eax
40694f:	89 45 c8             	mov    %eax,-0x38(%ebp)
406952:	8b 45 fc             	mov    -0x4(%ebp),%eax
406955:	05 64 06 00 00       	add    $0x664,%eax
40695a:	89 45 a8             	mov    %eax,-0x58(%ebp)
40695d:	8b 75 a8             	mov    -0x58(%ebp),%esi
406960:	c7 85 7c ff ff ff 12 	movl   $0x12,-0x84(%ebp)
406967:	00 00 00
40696a:	e9 63 03 00 00       	jmp    0x406cd2
40696f:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
406973:	75 21                	jne    0x406996
406975:	8b 45 c8             	mov    -0x38(%ebp),%eax
406978:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40697b:	83 c0 0f             	add    $0xf,%eax
40697e:	c7 85 7c ff ff ff 09 	movl   $0x9,-0x84(%ebp)
406985:	00 00 00
406988:	c1 e0 04             	shl    $0x4,%eax
40698b:	03 45 b4             	add    -0x4c(%ebp),%eax
40698e:	8d 34 41             	lea    (%ecx,%eax,2),%esi
406991:	e9 3c 03 00 00       	jmp    0x406cd2
406996:	8b 45 fc             	mov    -0x4(%ebp),%eax
406999:	8b 4d c8             	mov    -0x38(%ebp),%ecx
40699c:	c7 85 7c ff ff ff 0a 	movl   $0xa,-0x84(%ebp)
4069a3:	00 00 00
4069a6:	8d b4 48 b0 01 00 00 	lea    0x1b0(%eax,%ecx,2),%esi
4069ad:	e9 20 03 00 00       	jmp    0x406cd2
4069b2:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
4069b6:	0f 85 b1 00 00 00    	jne    0x406a6d
4069bc:	83 7d a0 00          	cmpl   $0x0,-0x60(%ebp)
4069c0:	0f 84 3b 05 00 00    	je     0x406f01
4069c6:	33 c0                	xor    %eax,%eax
4069c8:	83 7d c8 07          	cmpl   $0x7,-0x38(%ebp)
4069cc:	0f 9d c0             	setge  %al
4069cf:	8d 44 00 09          	lea    0x9(%eax,%eax,1),%eax
4069d3:	89 45 c8             	mov    %eax,-0x38(%ebp)
4069d6:	83 7d 9c 00          	cmpl   $0x0,-0x64(%ebp)
4069da:	0f 84 c0 04 00 00    	je     0x406ea0
4069e0:	8b 45 ec             	mov    -0x14(%ebp),%eax
4069e3:	2b 45 d4             	sub    -0x2c(%ebp),%eax
4069e6:	3b 45 8c             	cmp    -0x74(%ebp),%eax
4069e9:	72 03                	jb     0x4069ee
4069eb:	03 45 8c             	add    -0x74(%ebp),%eax
4069ee:	8b 55 f8             	mov    -0x8(%ebp),%edx
4069f1:	8a 0c 10             	mov    (%eax,%edx,1),%cl
4069f4:	8b 45 ec             	mov    -0x14(%ebp),%eax
4069f7:	88 4d a4             	mov    %cl,-0x5c(%ebp)
4069fa:	88 0c 10             	mov    %cl,(%eax,%edx,1)
4069fd:	40                   	inc    %eax
4069fe:	33 d2                	xor    %edx,%edx
406a00:	f7 75 8c             	divl   -0x74(%ebp)
406a03:	8b 45 98             	mov    -0x68(%ebp),%eax
406a06:	ff 45 a0             	incl   -0x60(%ebp)
406a09:	ff 45 98             	incl   -0x68(%ebp)
406a0c:	ff 4d 9c             	decl   -0x64(%ebp)
406a0f:	88 08                	mov    %cl,(%eax)
406a11:	89 55 ec             	mov    %edx,-0x14(%ebp)
406a14:	c7 85 78 ff ff ff 02 	movl   $0x2,-0x88(%ebp)
406a1b:	00 00 00
406a1e:	e9 c7 fa ff ff       	jmp    0x4064ea
406a23:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
406a27:	75 05                	jne    0x406a2e
406a29:	8b 45 d8             	mov    -0x28(%ebp),%eax
406a2c:	eb 36                	jmp    0x406a64
406a2e:	8b 45 fc             	mov    -0x4(%ebp),%eax
406a31:	8b 4d c8             	mov    -0x38(%ebp),%ecx
406a34:	c7 85 7c ff ff ff 0b 	movl   $0xb,-0x84(%ebp)
406a3b:	00 00 00
406a3e:	8d b4 48 c8 01 00 00 	lea    0x1c8(%eax,%ecx,2),%esi
406a45:	e9 88 02 00 00       	jmp    0x406cd2
406a4a:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
406a4e:	75 05                	jne    0x406a55
406a50:	8b 45 dc             	mov    -0x24(%ebp),%eax
406a53:	eb 09                	jmp    0x406a5e
406a55:	8b 4d dc             	mov    -0x24(%ebp),%ecx
406a58:	8b 45 e0             	mov    -0x20(%ebp),%eax
406a5b:	89 4d e0             	mov    %ecx,-0x20(%ebp)
406a5e:	8b 4d d8             	mov    -0x28(%ebp),%ecx
406a61:	89 4d dc             	mov    %ecx,-0x24(%ebp)
406a64:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
406a67:	89 45 d4             	mov    %eax,-0x2c(%ebp)
406a6a:	89 4d d8             	mov    %ecx,-0x28(%ebp)
406a6d:	8b 45 fc             	mov    -0x4(%ebp),%eax
406a70:	c7 45 80 15 00 00 00 	movl   $0x15,-0x80(%ebp)
406a77:	05 68 0a 00 00       	add    $0xa68,%eax
406a7c:	89 45 a8             	mov    %eax,-0x58(%ebp)
406a7f:	e9 d9 fe ff ff       	jmp    0x40695d
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