4067fe:	8b 15 dc 18 41 00    	mov    0x4118dc,%edx
406804:	8d 04 13             	lea    (%ebx,%edx,1),%eax
406807:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40680a:	89 45 f4             	mov    %eax,-0xc(%ebp)
40680d:	03 ce                	add    %esi,%ecx
40680f:	8b 45 e4             	mov    -0x1c(%ebp),%eax
406812:	40                   	inc    %eax
406813:	89 4d f8             	mov    %ecx,-0x8(%ebp)
406816:	89 45 e4             	mov    %eax,-0x1c(%ebp)
406819:	3b c7                	cmp    %edi,%eax
40681b:	0f 8c 20 ff ff ff    	jl     0x406741
406821:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406824:	5f                   	pop    %edi
406825:	5e                   	pop    %esi
406826:	33 cd                	xor    %ebp,%ecx
406828:	5b                   	pop    %ebx
406829:	e8 02 9c 00 00       	call   0x410430
40682e:	c9                   	leave
40682f:	c3                   	ret
406830:	8b ff                	mov    %edi,%edi
406832:	53                   	push   %ebx
406833:	56                   	push   %esi
406834:	57                   	push   %edi
406835:	ff 35 78 25 43 00    	push   0x432578
40683b:	8b d9                	mov    %ecx,%ebx
40683d:	8b fa                	mov    %edx,%edi
40683f:	53                   	push   %ebx
406840:	ff 15 ac 30 43 00    	call   *0x4330ac
406846:	6a 00                	push   $0x0
406848:	ff 77 04             	push   0x4(%edi)
40684b:	8b f0                	mov    %eax,%esi
40684d:	ff 37                	push   (%edi)
40684f:	53                   	push   %ebx
406850:	ff 15 88 30 43 00    	call   *0x433088
406856:	ff 77 04             	push   0x4(%edi)
406859:	ff 77 08             	push   0x8(%edi)
40685c:	53                   	push   %ebx
40685d:	ff 15 84 30 43 00    	call   *0x433084
406863:	ff 77 0c             	push   0xc(%edi)
406866:	ff 77 08             	push   0x8(%edi)
406869:	53                   	push   %ebx
40686a:	ff 15 84 30 43 00    	call   *0x433084
406870:	ff 77 0c             	push   0xc(%edi)
406873:	ff 37                	push   (%edi)
406875:	53                   	push   %ebx
406876:	ff 15 84 30 43 00    	call   *0x433084
40687c:	ff 77 04             	push   0x4(%edi)
40687f:	ff 37                	push   (%edi)
406881:	53                   	push   %ebx
406882:	ff 15 84 30 43 00    	call   *0x433084
406888:	56                   	push   %esi
406889:	53                   	push   %ebx
40688a:	ff 15 ac 30 43 00    	call   *0x4330ac
406890:	5f                   	pop    %edi
406891:	5e                   	pop    %esi
406892:	5b                   	pop    %ebx
406893:	c3                   	ret
406894:	8b ff                	mov    %edi,%edi
406896:	55                   	push   %ebp
406897:	8b ec                	mov    %esp,%ebp
406899:	83 ec 28             	sub    $0x28,%esp
40689c:	a1 64 10 41 00       	mov    0x411064,%eax
4068a1:	33 c5                	xor    %ebp,%eax
4068a3:	89 45 f8             	mov    %eax,-0x8(%ebp)
4068a6:	53                   	push   %ebx
4068a7:	56                   	push   %esi
4068a8:	57                   	push   %edi
4068a9:	8b fa                	mov    %edx,%edi
4068ab:	c7 45 e4 0a 00 00 00 	movl   $0xa,-0x1c(%ebp)
4068b2:	33 db                	xor    %ebx,%ebx
4068b4:	8b f1                	mov    %ecx,%esi
4068b6:	8b 07                	mov    (%edi),%eax
4068b8:	89 45 e0             	mov    %eax,-0x20(%ebp)
4068bb:	39 5d 10             	cmp    %ebx,0x10(%ebp)
4068be:	74 27                	je     0x4068e7
4068c0:	6a 08                	push   $0x8
4068c2:	ff 15 0c 32 43 00    	call   *0x43320c
4068c8:	50                   	push   %eax
4068c9:	56                   	push   %esi
4068ca:	ff 15 80 30 43 00    	call   *0x433080
4068d0:	6a 05                	push   $0x5
4068d2:	89 45 dc             	mov    %eax,-0x24(%ebp)
4068d5:	ff 15 0c 32 43 00    	call   *0x43320c
4068db:	50                   	push   %eax
4068dc:	56                   	push   %esi
4068dd:	ff 15 94 30 43 00    	call   *0x433094
4068e3:	8b d8                	mov    %eax,%ebx
4068e5:	eb 13                	jmp    0x4068fa
4068e7:	6a 13                	push   $0x13
4068e9:	ff 15 0c 32 43 00    	call   *0x43320c
4068ef:	50                   	push   %eax
4068f0:	56                   	push   %esi
4068f1:	ff 15 80 30 43 00    	call   *0x433080
4068f7:	89 45 dc             	mov    %eax,-0x24(%ebp)
4068fa:	ff 35 84 25 43 00    	push   0x432584
406900:	56                   	push   %esi
406901:	ff 15 ac 30 43 00    	call   *0x4330ac
406907:	66 8b 4d 0c          	mov    0xc(%ebp),%cx
40690b:	89 45 d8             	mov    %eax,-0x28(%ebp)
40690e:	33 c0                	xor    %eax,%eax
406910:	66 3b c1             	cmp    %cx,%ax
406913:	75 07                	jne    0x40691c
406915:	6a 20                	push   $0x20
406917:	59                   	pop    %ecx
406918:	66 89 4d 0c          	mov    %cx,0xc(%ebp)
40691c:	0f b7 c1             	movzwl %cx,%eax
40691f:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
406922:	51                   	push   %ecx
406923:	50                   	push   %eax
406924:	50                   	push   %eax
406925:	56                   	push   %esi
406926:	ff 15 a0 30 43 00    	call   *0x4330a0
40692c:	8b 47 08             	mov    0x8(%edi),%eax
40692f:	2b 07                	sub    (%edi),%eax
406931:	3b 45 e4             	cmp    -0x1c(%ebp),%eax
406934:	7e 0f                	jle    0x406945
406936:	2b 45 e4             	sub    -0x1c(%ebp),%eax
406939:	99                   	cltd
40693a:	2b c2                	sub    %edx,%eax
40693c:	8b 55 e0             	mov    -0x20(%ebp),%edx
40693f:	d1 f8                	sar    $1,%eax
406941:	03 d0                	add    %eax,%edx
406943:	eb 03                	jmp    0x406948
406945:	8b 55 e0             	mov    -0x20(%ebp),%edx
406948:	51                   	push   %ecx
406949:	6a 01                	push   $0x1
40694b:	8d 45 0c             	lea    0xc(%ebp),%eax
40694e:	8b ce                	mov    %esi,%ecx
406950:	50                   	push   %eax
406951:	8b 47 04             	mov    0x4(%edi),%eax
406954:	57                   	push   %edi
406955:	68 06 10 00 00       	push   $0x1006
40695a:	83 c0 04             	add    $0x4,%eax
40695d:	50                   	push   %eax
40695e:	e8 26 97 00 00       	call   0x410089
406963:	ff 75 d8             	push   -0x28(%ebp)
406966:	56                   	push   %esi
406967:	ff 15 ac 30 43 00    	call   *0x4330ac
40696d:	ff 75 dc             	push   -0x24(%ebp)
406970:	56                   	push   %esi
406971:	ff 15 80 30 43 00    	call   *0x433080
406977:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40697b:	74 08                	je     0x406985
40697d:	53                   	push   %ebx
40697e:	56                   	push   %esi
40697f:	ff 15 94 30 43 00    	call   *0x433094
406985:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
406989:	75 0b                	jne    0x406996
40698b:	8b d7                	mov    %edi,%edx
40698d:	8b ce                	mov    %esi,%ecx
40698f:	e8 9c fe ff ff       	call   0x406830
406994:	eb 45                	jmp    0x4069db
406996:	57                   	push   %edi
406997:	56                   	push   %esi
406998:	ff 15 38 32 43 00    	call   *0x433238
40699e:	8b 07                	mov    (%edi),%eax
4069a0:	40                   	inc    %eax
4069a1:	89 45 e8             	mov    %eax,-0x18(%ebp)
4069a4:	8b 47 08             	mov    0x8(%edi),%eax
4069a7:	48                   	dec    %eax
4069a8:	89 45 f0             	mov    %eax,-0x10(%ebp)
4069ab:	8b 47 04             	mov    0x4(%edi),%eax
4069ae:	40                   	inc    %eax
4069af:	89 45 ec             	mov    %eax,-0x14(%ebp)
4069b2:	8b 47 0c             	mov    0xc(%edi),%eax
4069b5:	48                   	dec    %eax
4069b6:	89 45 f4             	mov    %eax,-0xc(%ebp)
4069b9:	8d 45 e8             	lea    -0x18(%ebp),%eax
4069bc:	50                   	push   %eax
4069bd:	56                   	push   %esi
4069be:	ff 15 38 32 43 00    	call   *0x433238
4069c4:	ff 45 e8             	incl   -0x18(%ebp)
4069c7:	8d 45 e8             	lea    -0x18(%ebp),%eax
4069ca:	ff 4d f0             	decl   -0x10(%ebp)
4069cd:	ff 45 ec             	incl   -0x14(%ebp)
4069d0:	ff 4d f4             	decl   -0xc(%ebp)
4069d3:	50                   	push   %eax
4069d4:	56                   	push   %esi
4069d5:	ff 15 38 32 43 00    	call   *0x433238
4069db:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4069de:	5f                   	pop    %edi
4069df:	5e                   	pop    %esi
4069e0:	33 cd                	xor    %ebp,%ecx
4069e2:	5b                   	pop    %ebx
4069e3:	e8 48 9a 00 00       	call   0x410430
4069e8:	c9                   	leave
4069e9:	c2 0c 00             	ret    $0xc
4069ec:	8b 15 ac 10 41 00    	mov    0x4110ac,%edx
4069f2:	56                   	push   %esi
4069f3:	57                   	push   %edi
4069f4:	8b f9                	mov    %ecx,%edi
4069f6:	83 fa ff             	cmp    $0xffffffff,%edx
4069f9:	74 70                	je     0x406a6b
4069fb:	8b 35 70 25 43 00    	mov    0x432570,%esi
406a01:	3b d6                	cmp    %esi,%edx
406a03:	7c 66                	jl     0x406a6b
406a05:	a1 68 25 43 00       	mov    0x432568,%eax
406a0a:	03 c6                	add    %esi,%eax
406a0c:	3b d0                	cmp    %eax,%edx
406a0e:	7d 5b                	jge    0x406a6b
406a10:	8b 35 a8 10 41 00    	mov    0x4110a8,%esi
406a16:	8b 0d 6c 25 43 00    	mov    0x43256c,%ecx
406a1c:	3b f1                	cmp    %ecx,%esi
406a1e:	7c 4b                	jl     0x406a6b
406a20:	a1 64 25 43 00       	mov    0x432564,%eax
406a25:	03 c1                	add    %ecx,%eax
406a27:	3b f0                	cmp    %eax,%esi
406a29:	7d 40                	jge    0x406a6b
406a2b:	a1 dc 18 41 00       	mov    0x4118dc,%eax
406a30:	2b f1                	sub    %ecx,%esi
406a32:	0f af 35 f4 18 41 00 	imul   0x4118f4,%esi
406a39:	03 c6                	add    %esi,%eax
406a3b:	89 07                	mov    %eax,(%edi)
406a3d:	03 05 f4 18 41 00    	add    0x4118f4,%eax
406a43:	89 47 08             	mov    %eax,0x8(%edi)
406a46:	2b 15 70 25 43 00    	sub    0x432570,%edx
406a4c:	0f af 15 f0 18 41 00 	imul   0x4118f0,%edx
406a53:	a1 f8 18 41 00       	mov    0x4118f8,%eax
406a58:	03 c2                	add    %edx,%eax
406a5a:	89 47 04             	mov    %eax,0x4(%edi)
406a5d:	03 05 f0 18 41 00    	add    0x4118f0,%eax
406a63:	89 47 0c             	mov    %eax,0xc(%edi)
406a66:	33 c0                	xor    %eax,%eax
406a68:	40                   	inc    %eax
406a69:	eb 02                	jmp    0x406a6d
406a6b:	33 c0                	xor    %eax,%eax
406a6d:	5f                   	pop    %edi
406a6e:	5e                   	pop    %esi
406a6f:	c3                   	ret
406a70:	a1 74 25 43 00       	mov    0x432574,%eax
406a75:	56                   	push   %esi
406a76:	8b 70 08             	mov    0x8(%eax),%esi
406a79:	a1 a8 10 41 00       	mov    0x4110a8,%eax
406a7e:	40                   	inc    %eax
406a7f:	0f b7 56 0e          	movzwl 0xe(%esi),%edx
406a83:	0f af 15 ac 10 41 00 	imul   0x4110ac,%edx
406a8a:	03 c2                	add    %edx,%eax
406a8c:	03 c0                	add    %eax,%eax
406a8e:	8b 04 c6             	mov    (%esi,%eax,8),%eax
406a91:	66 8b 04 06          	mov    (%esi,%eax,1),%ax
406a95:	66 89 01             	mov    %ax,(%ecx)
406a98:	5e                   	pop    %esi
406a99:	c3                   	ret
406a9a:	a1 74 25 43 00       	mov    0x432574,%eax
406a9f:	56                   	push   %esi
406aa0:	8b 70 08             	mov    0x8(%eax),%esi
406aa3:	0f b7 46 0c          	movzwl 0xc(%esi),%eax
406aa7:	3b c8                	cmp    %eax,%ecx
406aa9:	7d 22                	jge    0x406acd
406aab:	0f b7 46 0e          	movzwl 0xe(%esi),%eax
406aaf:	3b d0                	cmp    %eax,%edx
406ab1:	7d 1a                	jge    0x406acd
406ab3:	0f af c1             	imul   %ecx,%eax
406ab6:	8d 4a 01             	lea    0x1(%edx),%ecx
406ab9:	03 c8                	add    %eax,%ecx
406abb:	33 c0                	xor    %eax,%eax
406abd:	03 c9                	add    %ecx,%ecx
406abf:	39 44 ce 08          	cmp    %eax,0x8(%esi,%ecx,8)
406ac3:	76 0a                	jbe    0x406acf
406ac5:	39 04 ce             	cmp    %eax,(%esi,%ecx,8)
406ac8:	74 05                	je     0x406acf
406aca:	40                   	inc    %eax
406acb:	5e                   	pop    %esi
406acc:	c3                   	ret
406acd:	33 c0                	xor    %eax,%eax
406acf:	5e                   	pop    %esi
406ad0:	c3                   	ret
406ad1:	8b ff                	mov    %edi,%edi
406ad3:	55                   	push   %ebp
406ad4:	8b ec                	mov    %esp,%ebp
406ad6:	8b 0d ac 10 41 00    	mov    0x4110ac,%ecx
406adc:	83 f9 ff             	cmp    $0xffffffff,%ecx
406adf:	74 3c                	je     0x406b1d
406ae1:	8b 45 0c             	mov    0xc(%ebp),%eax
406ae4:	2b 05 f8 18 41 00    	sub    0x4118f8,%eax
406aea:	99                   	cltd
406aeb:	f7 3d f0 18 41 00    	idivl  0x4118f0
406af1:	03 05 70 25 43 00    	add    0x432570,%eax
406af7:	3b c1                	cmp    %ecx,%eax
406af9:	75 1e                	jne    0x406b19
406afb:	8b 45 08             	mov    0x8(%ebp),%eax
406afe:	2b 05 dc 18 41 00    	sub    0x4118dc,%eax
406b04:	99                   	cltd
406b05:	f7 3d f4 18 41 00    	idivl  0x4118f4
406b0b:	03 05 6c 25 43 00    	add    0x43256c,%eax
406b11:	3b 05 a8 10 41 00    	cmp    0x4110a8,%eax
406b17:	74 04                	je     0x406b1d
406b19:	33 c0                	xor    %eax,%eax
406b1b:	eb 03                	jmp    0x406b20
406b1d:	33 c0                	xor    %eax,%eax
406b1f:	40                   	inc    %eax
406b20:	5d                   	pop    %ebp
406b21:	c2 08 00             	ret    $0x8
406b24:	8b ff                	mov    %edi,%edi
406b26:	55                   	push   %ebp
406b27:	8b ec                	mov    %esp,%ebp
406b29:	a1 74 25 43 00       	mov    0x432574,%eax
406b2e:	56                   	push   %esi
406b2f:	8b 70 08             	mov    0x8(%eax),%esi
406b32:	a1 ac 10 41 00       	mov    0x4110ac,%eax
406b37:	83 f8 ff             	cmp    $0xffffffff,%eax
406b3a:	75 04                	jne    0x406b40
406b3c:	33 c0                	xor    %eax,%eax
406b3e:	eb 2b                	jmp    0x406b6b
406b40:	0f b7 56 0e          	movzwl 0xe(%esi),%edx
406b44:	ff 75 0c             	push   0xc(%ebp)
406b47:	0f af d0             	imul   %eax,%edx
406b4a:	8b 45 08             	mov    0x8(%ebp),%eax
406b4d:	50                   	push   %eax
406b4e:	03 15 a8 10 41 00    	add    0x4110a8,%edx
406b54:	03 d2                	add    %edx,%edx
406b56:	8b 4c d6 18          	mov    0x18(%esi,%edx,8),%ecx
406b5a:	8b 54 d6 14          	mov    0x14(%esi,%edx,8),%edx
406b5e:	51                   	push   %ecx
406b5f:	03 d6                	add    %esi,%edx
406b61:	89 08                	mov    %ecx,(%eax)
406b63:	e8 08 00 00 00       	call   0x406b70
406b68:	33 c0                	xor    %eax,%eax
406b6a:	40                   	inc    %eax
406b6b:	5e                   	pop    %esi
406b6c:	5d                   	pop    %ebp
406b6d:	c2 08 00             	ret    $0x8
406b70:	8b ff                	mov    %edi,%edi
406b72:	55                   	push   %ebp
406b73:	8b ec                	mov    %esp,%ebp
406b75:	83 ec 14             	sub    $0x14,%esp
406b78:	53                   	push   %ebx
406b79:	56                   	push   %esi
406b7a:	33 db                	xor    %ebx,%ebx
406b7c:	89 4d ec             	mov    %ecx,-0x14(%ebp)
406b7f:	57                   	push   %edi
406b80:	8b fa                	mov    %edx,%edi
406b82:	be 10 19 41 00       	mov    $0x411910,%esi
406b87:	89 7d fc             	mov    %edi,-0x4(%ebp)
406b8a:	8b d3                	mov    %ebx,%edx
406b8c:	89 55 f8             	mov    %edx,-0x8(%ebp)
406b8f:	85 ff                	test   %edi,%edi
406b91:	0f 84 b0 00 00 00    	je     0x406c47
406b97:	39 55 0c             	cmp    %edx,0xc(%ebp)
406b9a:	0f 84 a7 00 00 00    	je     0x406c47
406ba0:	8b 45 10             	mov    0x10(%ebp),%eax
406ba3:	85 c0                	test   %eax,%eax
406ba5:	0f 84 9c 00 00 00    	je     0x406c47
406bab:	89 18                	mov    %ebx,(%eax)
406bad:	85 c9                	test   %ecx,%ecx
406baf:	0f 8e 92 00 00 00    	jle    0x406c47
406bb5:	0f b7 0f             	movzwl (%edi),%ecx
406bb8:	6a 0a                	push   $0xa
406bba:	58                   	pop    %eax
406bbb:	66 3b c1             	cmp    %cx,%ax