6697a7:	89 45 f8             	mov    %eax,-0x8(%ebp)
6697aa:	8b 45 f8             	mov    -0x8(%ebp),%eax
6697ad:	83 e8 0e             	sub    $0xe,%eax
6697b0:	74 05                	je     0x6697b7
6697b2:	83 e8 07             	sub    $0x7,%eax
6697b5:	75 16                	jne    0x6697cd
6697b7:	6a 08                	push   $0x8
6697b9:	6a 00                	push   $0x0
6697bb:	8d 45 f4             	lea    -0xc(%ebp),%eax
6697be:	50                   	push   %eax
6697bf:	8b cb                	mov    %ebx,%ecx
6697c1:	33 d2                	xor    %edx,%edx
6697c3:	33 c0                	xor    %eax,%eax
6697c5:	e8 b2 c1 e2 ff       	call   0x49597c
6697ca:	89 45 f8             	mov    %eax,-0x8(%ebp)
6697cd:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
6697d1:	0f 85 8d 00 00 00    	jne    0x669864
6697d7:	8d 55 fc             	lea    -0x4(%ebp),%edx
6697da:	8b 45 f4             	mov    -0xc(%ebp),%eax
6697dd:	8b 40 08             	mov    0x8(%eax),%eax
6697e0:	e8 7b 08 da ff       	call   0x40a060
6697e5:	8b 45 08             	mov    0x8(%ebp),%eax
6697e8:	8b 40 f8             	mov    -0x8(%eax),%eax
6697eb:	8d 04 40             	lea    (%eax,%eax,2),%eax
6697ee:	8b 55 08             	mov    0x8(%ebp),%edx
6697f1:	8b 52 fc             	mov    -0x4(%edx),%edx
6697f4:	8d 1c c2             	lea    (%edx,%eax,8),%ebx
6697f7:	b8 01 01 00 00       	mov    $0x101,%eax
6697fc:	e8 ab 8f d9 ff       	call   0x4027ac
669801:	8b 55 f4             	mov    -0xc(%ebp),%edx
669804:	8b 52 08             	mov    0x8(%edx),%edx
669807:	e8 20 06 da ff       	call   0x409e2c
66980c:	89 43 08             	mov    %eax,0x8(%ebx)
66980f:	8b 45 f4             	mov    -0xc(%ebp),%eax
669812:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
669816:	75 1a                	jne    0x669832
669818:	b8 01 01 00 00       	mov    $0x101,%eax
66981d:	e8 8a 8f d9 ff       	call   0x4027ac
669822:	8b 55 f4             	mov    -0xc(%ebp),%edx
669825:	8b 52 08             	mov    0x8(%edx),%edx
669828:	e8 ff 05 da ff       	call   0x409e2c
66982d:	89 43 0c             	mov    %eax,0xc(%ebx)
669830:	eb 18                	jmp    0x66984a
669832:	b8 01 01 00 00       	mov    $0x101,%eax
669837:	e8 70 8f d9 ff       	call   0x4027ac
66983c:	8b 55 f4             	mov    -0xc(%ebp),%edx
66983f:	8b 52 0c             	mov    0xc(%edx),%edx
669842:	e8 e5 05 da ff       	call   0x409e2c
669847:	89 43 0c             	mov    %eax,0xc(%ebx)
66984a:	8b 45 f4             	mov    -0xc(%ebp),%eax
66984d:	8b 40 10             	mov    0x10(%eax),%eax
669850:	89 43 10             	mov    %eax,0x10(%ebx)
669853:	8b 45 f4             	mov    -0xc(%ebp),%eax
669856:	8b 40 14             	mov    0x14(%eax),%eax
669859:	89 43 14             	mov    %eax,0x14(%ebx)
66985c:	8b 45 f4             	mov    -0xc(%ebp),%eax
66985f:	e8 c8 c0 e2 ff       	call   0x49592c
669864:	33 c0                	xor    %eax,%eax
669866:	5a                   	pop    %edx
669867:	59                   	pop    %ecx
669868:	59                   	pop    %ecx
669869:	64 89 10             	mov    %edx,%fs:(%eax)
66986c:	68 79 98 66 00       	push   $0x669879
669871:	c3                   	ret
669872:	e9 95 a9 d9 ff       	jmp    0x40420c
669877:	eb f8                	jmp    0x669871
669879:	33 c0                	xor    %eax,%eax
66987b:	5a                   	pop    %edx
66987c:	59                   	pop    %ecx
66987d:	59                   	pop    %ecx
66987e:	64 89 10             	mov    %edx,%fs:(%eax)
669881:	68 96 98 66 00       	push   $0x669896
669886:	8d 45 fc             	lea    -0x4(%ebp),%eax
669889:	e8 da af d9 ff       	call   0x404868
66988e:	c3                   	ret
66988f:	e9 78 a9 d9 ff       	jmp    0x40420c
669894:	eb f0                	jmp    0x669886
669896:	8b 45 f8             	mov    -0x8(%ebp),%eax
669899:	5b                   	pop    %ebx
66989a:	8b e5                	mov    %ebp,%esp
66989c:	5d                   	pop    %ebp
66989d:	c3                   	ret
66989e:	8b c0                	mov    %eax,%eax
6698a0:	55                   	push   %ebp
6698a1:	8b ec                	mov    %esp,%ebp
6698a3:	51                   	push   %ecx
6698a4:	33 c0                	xor    %eax,%eax
6698a6:	55                   	push   %ebp
6698a7:	68 17 99 66 00       	push   $0x669917
6698ac:	64 ff 30             	push   %fs:(%eax)
6698af:	64 89 20             	mov    %esp,%fs:(%eax)
6698b2:	8b 45 08             	mov    0x8(%ebp),%eax
6698b5:	0f b6 40 0c          	movzbl 0xc(%eax),%eax
6698b9:	66 8b 04 45 6c 6a 6a 	mov    0x6a6a6c(,%eax,2),%ax
6698c0:	00
6698c1:	8b 55 08             	mov    0x8(%ebp),%edx
6698c4:	0f b6 52 14          	movzbl 0x14(%edx),%edx
6698c8:	66 0b 04 55 68 6a 6a 	or     0x6a6a68(,%edx,2),%ax
6698cf:	00
6698d0:	66 83 c8 01          	or     $0x1,%ax
6698d4:	8b 55 08             	mov    0x8(%ebp),%edx
6698d7:	83 7a 08 00          	cmpl   $0x0,0x8(%edx)
6698db:	0f 94 c2             	sete   %dl
6698de:	83 e2 7f             	and    $0x7f,%edx
6698e1:	66 0b 04 55 70 6a 6a 	or     0x6a6a70(,%edx,2),%ax
6698e8:	00
6698e9:	0f b7 c0             	movzwl %ax,%eax
6698ec:	50                   	push   %eax
6698ed:	6a 00                	push   $0x0
6698ef:	8b 45 08             	mov    0x8(%ebp),%eax
6698f2:	8d 48 c8             	lea    -0x38(%eax),%ecx
6698f5:	a1 f4 6f 6a 00       	mov    0x6a6ff4,%eax
6698fa:	8b 00                	mov    (%eax),%eax
6698fc:	8b 50 30             	mov    0x30(%eax),%edx
6698ff:	33 c0                	xor    %eax,%eax
669901:	e8 be bf e2 ff       	call   0x4958c4
669906:	89 45 fc             	mov    %eax,-0x4(%ebp)
669909:	33 c0                	xor    %eax,%eax
66990b:	5a                   	pop    %edx
66990c:	59                   	pop    %ecx
66990d:	59                   	pop    %ecx
66990e:	64 89 10             	mov    %edx,%fs:(%eax)
669911:	68 1e 99 66 00       	push   $0x66991e
669916:	c3                   	ret
669917:	e9 f0 a8 d9 ff       	jmp    0x40420c
66991c:	eb f8                	jmp    0x669916
66991e:	8b 45 fc             	mov    -0x4(%ebp),%eax
669921:	59                   	pop    %ecx
669922:	5d                   	pop    %ebp
669923:	c3                   	ret
669924:	55                   	push   %ebp
669925:	8b ec                	mov    %esp,%ebp
669927:	81 c4 74 ff ff ff    	add    $0xffffff74,%esp
66992d:	53                   	push   %ebx
66992e:	56                   	push   %esi
66992f:	57                   	push   %edi
669930:	33 db                	xor    %ebx,%ebx
669932:	89 9d 78 ff ff ff    	mov    %ebx,-0x88(%ebp)
669938:	89 9d 74 ff ff ff    	mov    %ebx,-0x8c(%ebp)
66993e:	89 5d 80             	mov    %ebx,-0x80(%ebp)
669941:	89 9d 7c ff ff ff    	mov    %ebx,-0x84(%ebp)
669947:	89 5d 88             	mov    %ebx,-0x78(%ebp)
66994a:	89 5d 84             	mov    %ebx,-0x7c(%ebp)
66994d:	89 5d 8c             	mov    %ebx,-0x74(%ebp)
669950:	89 5d 90             	mov    %ebx,-0x70(%ebp)
669953:	89 5d b0             	mov    %ebx,-0x50(%ebp)
669956:	89 5d ac             	mov    %ebx,-0x54(%ebp)
669959:	89 4d bc             	mov    %ecx,-0x44(%ebp)
66995c:	89 55 c0             	mov    %edx,-0x40(%ebp)
66995f:	89 45 c4             	mov    %eax,-0x3c(%ebp)
669962:	8b 45 c4             	mov    -0x3c(%ebp),%eax
669965:	e8 9e b3 d9 ff       	call   0x404d08
66996a:	8b 45 c0             	mov    -0x40(%ebp),%eax
66996d:	e8 96 b3 d9 ff       	call   0x404d08
669972:	8b 45 bc             	mov    -0x44(%ebp),%eax
669975:	e8 8e b3 d9 ff       	call   0x404d08
66997a:	8b 45 24             	mov    0x24(%ebp),%eax
66997d:	e8 86 b3 d9 ff       	call   0x404d08
669982:	33 c0                	xor    %eax,%eax
669984:	55                   	push   %ebp
669985:	68 9a 9e 66 00       	push   $0x669e9a
66998a:	64 ff 30             	push   %fs:(%eax)
66998d:	64 89 20             	mov    %esp,%fs:(%eax)
669990:	8d 45 c8             	lea    -0x38(%ebp),%eax
669993:	33 c9                	xor    %ecx,%ecx
669995:	ba 30 00 00 00       	mov    $0x30,%edx
66999a:	e8 a1 98 d9 ff       	call   0x403240
66999f:	8d 45 b0             	lea    -0x50(%ebp),%eax
6699a2:	e8 c1 ae d9 ff       	call   0x404868
6699a7:	8d 45 b0             	lea    -0x50(%ebp),%eax
6699aa:	e8 a1 fb ff ff       	call   0x669550
6699af:	84 c0                	test   %al,%al
6699b1:	74 4c                	je     0x6699ff
6699b3:	33 c0                	xor    %eax,%eax
6699b5:	55                   	push   %ebp
6699b6:	68 f8 99 66 00       	push   $0x6699f8
6699bb:	64 ff 30             	push   %fs:(%eax)
6699be:	64 89 20             	mov    %esp,%fs:(%eax)
6699c1:	6a 03                	push   $0x3
6699c3:	6a 00                	push   $0x0
6699c5:	8d 45 08             	lea    0x8(%ebp),%eax
6699c8:	50                   	push   %eax
6699c9:	8b 45 b0             	mov    -0x50(%ebp),%eax
6699cc:	e8 47 b3 d9 ff       	call   0x404d18
6699d1:	8b d0                	mov    %eax,%edx
6699d3:	33 c9                	xor    %ecx,%ecx
6699d5:	33 c0                	xor    %eax,%eax
6699d7:	e8 20 be e2 ff       	call   0x4957fc
6699dc:	89 45 b8             	mov    %eax,-0x48(%ebp)
6699df:	33 c0                	xor    %eax,%eax
6699e1:	5a                   	pop    %edx
6699e2:	59                   	pop    %ecx
6699e3:	59                   	pop    %ecx
6699e4:	64 89 10             	mov    %edx,%fs:(%eax)
6699e7:	68 ff 99 66 00       	push   $0x6699ff
6699ec:	83 7d b8 00          	cmpl   $0x0,-0x48(%ebp)
6699f0:	74 05                	je     0x6699f7
6699f2:	33 c0                	xor    %eax,%eax
6699f4:	89 45 08             	mov    %eax,0x8(%ebp)
6699f7:	c3                   	ret
6699f8:	e9 0f a8 d9 ff       	jmp    0x40420c
6699fd:	eb ed                	jmp    0x6699ec
6699ff:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
669a03:	74 43                	je     0x669a48
669a05:	33 c0                	xor    %eax,%eax
669a07:	89 45 98             	mov    %eax,-0x68(%ebp)
669a0a:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
669a0e:	74 0d                	je     0x669a1d
669a10:	8b 45 c0             	mov    -0x40(%ebp),%eax
669a13:	e8 00 b3 d9 ff       	call   0x404d18
669a18:	89 45 9c             	mov    %eax,-0x64(%ebp)
669a1b:	eb 0b                	jmp    0x669a28
669a1d:	8b 45 c4             	mov    -0x3c(%ebp),%eax
669a20:	e8 f3 b2 d9 ff       	call   0x404d18
669a25:	89 45 9c             	mov    %eax,-0x64(%ebp)
669a28:	8b 45 c0             	mov    -0x40(%ebp),%eax
669a2b:	e8 e8 b2 d9 ff       	call   0x404d18
669a30:	89 45 a0             	mov    %eax,-0x60(%ebp)
669a33:	33 c0                	xor    %eax,%eax
669a35:	89 45 94             	mov    %eax,-0x6c(%ebp)
669a38:	33 c0                	xor    %eax,%eax
669a3a:	89 45 a4             	mov    %eax,-0x5c(%ebp)
669a3d:	33 c0                	xor    %eax,%eax
669a3f:	89 45 a8             	mov    %eax,-0x58(%ebp)
669a42:	8d 45 94             	lea    -0x6c(%ebp),%eax
669a45:	89 45 e4             	mov    %eax,-0x1c(%ebp)
669a48:	8b 45 bc             	mov    -0x44(%ebp),%eax
669a4b:	e8 c8 b2 d9 ff       	call   0x404d18
669a50:	89 45 cc             	mov    %eax,-0x34(%ebp)
669a53:	8b 45 24             	mov    0x24(%ebp),%eax
669a56:	e8 bd b2 d9 ff       	call   0x404d18
669a5b:	89 45 d0             	mov    %eax,-0x30(%ebp)
669a5e:	83 7d 1c 00          	cmpl   $0x0,0x1c(%ebp)
669a62:	0f 84 1f 01 00 00    	je     0x669b87
669a68:	8b 45 1c             	mov    0x1c(%ebp),%eax
669a6b:	8b 10                	mov    (%eax),%edx
669a6d:	ff 52 14             	call   *0x14(%edx)
669a70:	85 c0                	test   %eax,%eax
669a72:	0f 8e 0f 01 00 00    	jle    0x669b87
669a78:	8b 45 1c             	mov    0x1c(%ebp),%eax
669a7b:	8b 10                	mov    (%eax),%edx
669a7d:	ff 52 14             	call   *0x14(%edx)
669a80:	8b d8                	mov    %eax,%ebx
669a82:	89 5d f0             	mov    %ebx,-0x10(%ebp)
669a85:	8b c3                	mov    %ebx,%eax
669a87:	c1 e0 03             	shl    $0x3,%eax
669a8a:	8d 04 40             	lea    (%eax,%eax,2),%eax
669a8d:	e8 e2 05 da ff       	call   0x40a074
669a92:	89 45 b4             	mov    %eax,-0x4c(%ebp)
669a95:	8b 45 b4             	mov    -0x4c(%ebp),%eax
669a98:	e8 eb 05 da ff       	call   0x40a088
669a9d:	8b d0                	mov    %eax,%edx
669a9f:	8b 45 b4             	mov    -0x4c(%ebp),%eax
669aa2:	33 c9                	xor    %ecx,%ecx
669aa4:	e8 97 97 d9 ff       	call   0x403240
669aa9:	8b 5d f0             	mov    -0x10(%ebp),%ebx
669aac:	4b                   	dec    %ebx
669aad:	85 db                	test   %ebx,%ebx
669aaf:	0f 8c ca 00 00 00    	jl     0x669b7f
669ab5:	43                   	inc    %ebx
669ab6:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
669abd:	8b 45 f8             	mov    -0x8(%ebp),%eax
669ac0:	8d 04 40             	lea    (%eax,%eax,2),%eax
669ac3:	8b 55 b4             	mov    -0x4c(%ebp),%edx
669ac6:	c7 44 c2 08 ff ff ff 	movl   $0xffffffff,0x8(%edx,%eax,8)
669acd:	ff
669ace:	8d 4d 90             	lea    -0x70(%ebp),%ecx
669ad1:	8b 55 f8             	mov    -0x8(%ebp),%edx
669ad4:	8b 45 1c             	mov    0x1c(%ebp),%eax
669ad7:	8b 30                	mov    (%eax),%esi
669ad9:	ff 56 0c             	call   *0xc(%esi)
669adc:	8b 45 90             	mov    -0x70(%ebp),%eax
669adf:	50                   	push   %eax
669ae0:	b8 01 01 00 00       	mov    $0x101,%eax
669ae5:	e8 c2 8c d9 ff       	call   0x4027ac
669aea:	5a                   	pop    %edx
669aeb:	e8 c4 03 da ff       	call   0x409eb4
669af0:	8b 55 f8             	mov    -0x8(%ebp),%edx
669af3:	8d 14 52             	lea    (%edx,%edx,2),%edx
669af6:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
669af9:	89 44 d1 0c          	mov    %eax,0xc(%ecx,%edx,8)
669afd:	8b 45 18             	mov    0x18(%ebp),%eax
669b00:	8b 10                	mov    (%eax),%edx
669b02:	ff 52 14             	call   *0x14(%edx)
669b05:	3b 45 f8             	cmp    -0x8(%ebp),%eax
669b08:	7e 31                	jle    0x669b3b
669b0a:	8d 4d 8c             	lea    -0x74(%ebp),%ecx
669b0d:	8b 55 f8             	mov    -0x8(%ebp),%edx
669b10:	8b 45 18             	mov    0x18(%ebp),%eax
669b13:	8b 30                	mov    (%eax),%esi
669b15:	ff 56 0c             	call   *0xc(%esi)
669b18:	8b 45 8c             	mov    -0x74(%ebp),%eax
669b1b:	50                   	push   %eax
669b1c:	b8 01 01 00 00       	mov    $0x101,%eax
669b21:	e8 86 8c d9 ff       	call   0x4027ac
669b26:	5a                   	pop    %edx
669b27:	e8 88 03 da ff       	call   0x409eb4
669b2c:	8b 55 f8             	mov    -0x8(%ebp),%edx
669b2f:	8d 14 52             	lea    (%edx,%edx,2),%edx
669b32:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
669b35:	89 44 d1 10          	mov    %eax,0x10(%ecx,%edx,8)
669b39:	eb 3a                	jmp    0x669b75
669b3b:	8d 4d 84             	lea    -0x7c(%ebp),%ecx
669b3e:	8b 55 f8             	mov    -0x8(%ebp),%edx
669b41:	8b 45 1c             	mov    0x1c(%ebp),%eax
669b44:	8b 30                	mov    (%eax),%esi
669b46:	ff 56 0c             	call   *0xc(%esi)
669b49:	8b 45 84             	mov    -0x7c(%ebp),%eax
669b4c:	8d 55 88             	lea    -0x78(%ebp),%edx
669b4f:	e8 14 01 da ff       	call   0x409c68
669b54:	8b 45 88             	mov    -0x78(%ebp),%eax
669b57:	50                   	push   %eax
669b58:	b8 01 01 00 00       	mov    $0x101,%eax
669b5d:	e8 4a 8c d9 ff       	call   0x4027ac
669b62:	5a                   	pop    %edx
669b63:	e8 4c 03 da ff       	call   0x409eb4
669b68:	8b 55 f8             	mov    -0x8(%ebp),%edx
669b6b:	8d 14 52             	lea    (%edx,%edx,2),%edx
669b6e:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
669b71:	89 44 d1 10          	mov    %eax,0x10(%ecx,%edx,8)
669b75:	ff 45 f8             	incl   -0x8(%ebp)
669b78:	4b                   	dec    %ebx
669b79:	0f 85 3e ff ff ff    	jne    0x669abd
669b7f:	8b 45 b4             	mov    -0x4c(%ebp),%eax
669b82:	89 45 f4             	mov    %eax,-0xc(%ebp)
669b85:	eb 05                	jmp    0x669b8c
669b87:	33 c0                	xor    %eax,%eax
669b89:	89 45 f0             	mov    %eax,-0x10(%ebp)
669b8c:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
669b90:	0f 84 af 01 00 00    	je     0x669d45
669b96:	8b 45 20             	mov    0x20(%ebp),%eax
669b99:	8b 10                	mov    (%eax),%edx
669b9b:	ff 52 14             	call   *0x14(%edx)
669b9e:	85 c0                	test   %eax,%eax
669ba0:	0f 8e 9f 01 00 00    	jle    0x669d45
669ba6:	8b 45 20             	mov    0x20(%ebp),%eax
669ba9:	8b 10                	mov    (%eax),%edx
669bab:	ff 52 14             	call   *0x14(%edx)
669bae:	c1 e0 03             	shl    $0x3,%eax
669bb1:	8d 04 40             	lea    (%eax,%eax,2),%eax
669bb4:	e8 bb 04 da ff       	call   0x40a074
669bb9:	89 45 fc             	mov    %eax,-0x4(%ebp)
669bbc:	8b 45 fc             	mov    -0x4(%ebp),%eax
669bbf:	e8 c4 04 da ff       	call   0x40a088
669bc4:	8b d0                	mov    %eax,%edx
669bc6:	8b 45 fc             	mov    -0x4(%ebp),%eax
669bc9:	33 c9                	xor    %ecx,%ecx
669bcb:	e8 70 96 d9 ff       	call   0x403240
669bd0:	8b 45 20             	mov    0x20(%ebp),%eax
669bd3:	8b 10                	mov    (%eax),%edx