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
669bd5:	ff 52 14             	call   *0x14(%edx)
669bd8:	8b d8                	mov    %eax,%ebx
669bda:	4b                   	dec    %ebx
669bdb:	85 db                	test   %ebx,%ebx
669bdd:	0f 8c 4f 01 00 00    	jl     0x669d32
669be3:	43                   	inc    %ebx
669be4:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
669beb:	8d 4d ac             	lea    -0x54(%ebp),%ecx
669bee:	8b 55 f8             	mov    -0x8(%ebp),%edx
669bf1:	8b 45 20             	mov    0x20(%ebp),%eax
669bf4:	8b 30                	mov    (%eax),%esi
669bf6:	ff 56 0c             	call   *0xc(%esi)
669bf9:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
669bff:	50                   	push   %eax
669c00:	b9 03 00 00 00       	mov    $0x3,%ecx
669c05:	ba 01 00 00 00       	mov    $0x1,%edx
669c0a:	8b 45 ac             	mov    -0x54(%ebp),%eax
669c0d:	e8 66 b1 d9 ff       	call   0x404d78
669c12:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
669c18:	8d 55 80             	lea    -0x80(%ebp),%edx
669c1b:	e8 18 f5 d9 ff       	call   0x409138
669c20:	8b 45 80             	mov    -0x80(%ebp),%eax
669c23:	ba b8 9e 66 00       	mov    $0x669eb8,%edx
669c28:	e8 37 b0 d9 ff       	call   0x404c64
669c2d:	75 25                	jne    0x669c54
669c2f:	8b 45 f8             	mov    -0x8(%ebp),%eax
669c32:	8d 04 40             	lea    (%eax,%eax,2),%eax
669c35:	8b 55 fc             	mov    -0x4(%ebp),%edx
669c38:	c7 44 c2 04 02 00 00 	movl   $0x2,0x4(%edx,%eax,8)
669c3f:	00
669c40:	8d 45 ac             	lea    -0x54(%ebp),%eax
669c43:	b9 03 00 00 00       	mov    $0x3,%ecx
669c48:	ba 01 00 00 00       	mov    $0x1,%edx
669c4d:	e8 66 b1 d9 ff       	call   0x404db8
669c52:	eb 72                	jmp    0x669cc6
669c54:	8d 85 74 ff ff ff    	lea    -0x8c(%ebp),%eax
669c5a:	50                   	push   %eax
669c5b:	b9 04 00 00 00       	mov    $0x4,%ecx
669c60:	ba 01 00 00 00       	mov    $0x1,%edx
669c65:	8b 45 ac             	mov    -0x54(%ebp),%eax
669c68:	e8 0b b1 d9 ff       	call   0x404d78
669c6d:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax
669c73:	8d 95 78 ff ff ff    	lea    -0x88(%ebp),%edx
669c79:	e8 ba f4 d9 ff       	call   0x409138
669c7e:	8b 85 78 ff ff ff    	mov    -0x88(%ebp),%eax
669c84:	ba c4 9e 66 00       	mov    $0x669ec4,%edx
669c89:	e8 d6 af d9 ff       	call   0x404c64
669c8e:	75 25                	jne    0x669cb5
669c90:	8b 45 f8             	mov    -0x8(%ebp),%eax
669c93:	8d 04 40             	lea    (%eax,%eax,2),%eax
669c96:	8b 55 fc             	mov    -0x4(%ebp),%edx
669c99:	c7 44 c2 04 03 00 00 	movl   $0x3,0x4(%edx,%eax,8)
669ca0:	00
669ca1:	8d 45 ac             	lea    -0x54(%ebp),%eax
669ca4:	b9 04 00 00 00       	mov    $0x4,%ecx
669ca9:	ba 01 00 00 00       	mov    $0x1,%edx
669cae:	e8 05 b1 d9 ff       	call   0x404db8
669cb3:	eb 11                	jmp    0x669cc6
669cb5:	8b 45 f8             	mov    -0x8(%ebp),%eax
669cb8:	8d 04 40             	lea    (%eax,%eax,2),%eax
669cbb:	8b 55 fc             	mov    -0x4(%ebp),%edx
669cbe:	c7 44 c2 04 01 00 00 	movl   $0x1,0x4(%edx,%eax,8)
669cc5:	00
669cc6:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
669cca:	74 0c                	je     0x669cd8
669ccc:	55                   	push   %ebp
669ccd:	8b 45 ac             	mov    -0x54(%ebp),%eax
669cd0:	e8 87 fa ff ff       	call   0x66975c
669cd5:	59                   	pop    %ecx
669cd6:	eb 50                	jmp    0x669d28
669cd8:	b8 01 01 00 00       	mov    $0x101,%eax
669cdd:	e8 ca 8a d9 ff       	call   0x4027ac
669ce2:	50                   	push   %eax
669ce3:	8b 45 ac             	mov    -0x54(%ebp),%eax
669ce6:	e8 2d b0 d9 ff       	call   0x404d18
669ceb:	8b d0                	mov    %eax,%edx
669ced:	58                   	pop    %eax
669cee:	e8 39 01 da ff       	call   0x409e2c
669cf3:	8b 55 f8             	mov    -0x8(%ebp),%edx
669cf6:	8d 14 52             	lea    (%edx,%edx,2),%edx
669cf9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
669cfc:	89 44 d1 08          	mov    %eax,0x8(%ecx,%edx,8)
669d00:	b8 01 01 00 00       	mov    $0x101,%eax
669d05:	e8 a2 8a d9 ff       	call   0x4027ac
669d0a:	50                   	push   %eax
669d0b:	8b 45 ac             	mov    -0x54(%ebp),%eax
669d0e:	e8 05 b0 d9 ff       	call   0x404d18
669d13:	8b d0                	mov    %eax,%edx
669d15:	58                   	pop    %eax
669d16:	e8 11 01 da ff       	call   0x409e2c
669d1b:	8b 55 f8             	mov    -0x8(%ebp),%edx
669d1e:	8d 14 52             	lea    (%edx,%edx,2),%edx
669d21:	8b 4d fc             	mov    -0x4(%ebp),%ecx
669d24:	89 44 d1 0c          	mov    %eax,0xc(%ecx,%edx,8)
669d28:	ff 45 f8             	incl   -0x8(%ebp)
669d2b:	4b                   	dec    %ebx
669d2c:	0f 85 b9 fe ff ff    	jne    0x669beb
669d32:	8b 45 20             	mov    0x20(%ebp),%eax
669d35:	8b 10                	mov    (%eax),%edx
669d37:	ff 52 14             	call   *0x14(%edx)
669d3a:	89 45 e8             	mov    %eax,-0x18(%ebp)
669d3d:	8b 45 fc             	mov    -0x4(%ebp),%eax
669d40:	89 45 ec             	mov    %eax,-0x14(%ebp)
669d43:	eb 05                	jmp    0x669d4a
669d45:	33 c0                	xor    %eax,%eax
669d47:	89 45 e8             	mov    %eax,-0x18(%ebp)
669d4a:	55                   	push   %ebp
669d4b:	e8 50 fb ff ff       	call   0x6698a0
669d50:	59                   	pop    %ecx
669d51:	89 45 b8             	mov    %eax,-0x48(%ebp)
669d54:	83 7d 1c 00          	cmpl   $0x0,0x1c(%ebp)
669d58:	74 52                	je     0x669dac
669d5a:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
669d5e:	76 4c                	jbe    0x669dac
669d60:	8b 5d f0             	mov    -0x10(%ebp),%ebx
669d63:	4b                   	dec    %ebx
669d64:	85 db                	test   %ebx,%ebx
669d66:	7c 3c                	jl     0x669da4
669d68:	43                   	inc    %ebx
669d69:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
669d70:	8b 45 f8             	mov    -0x8(%ebp),%eax
669d73:	8d 04 40             	lea    (%eax,%eax,2),%eax
669d76:	8b 55 b4             	mov    -0x4c(%ebp),%edx
669d79:	8b 44 c2 0c          	mov    0xc(%edx,%eax,8),%eax
669d7d:	ba 01 00 00 00       	mov    $0x1,%edx
669d82:	e8 45 8a d9 ff       	call   0x4027cc
669d87:	8b 45 f8             	mov    -0x8(%ebp),%eax
669d8a:	8d 04 40             	lea    (%eax,%eax,2),%eax
669d8d:	8b 55 b4             	mov    -0x4c(%ebp),%edx
669d90:	8b 44 c2 10          	mov    0x10(%edx,%eax,8),%eax
669d94:	ba 01 00 00 00       	mov    $0x1,%edx
669d99:	e8 2e 8a d9 ff       	call   0x4027cc
669d9e:	ff 45 f8             	incl   -0x8(%ebp)
669da1:	4b                   	dec    %ebx
669da2:	75 cc                	jne    0x669d70
669da4:	8b 45 b4             	mov    -0x4c(%ebp),%eax
669da7:	e8 14 03 da ff       	call   0x40a0c0
669dac:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
669db0:	74 72                	je     0x669e24
669db2:	8b 45 20             	mov    0x20(%ebp),%eax
669db5:	8b 10                	mov    (%eax),%edx
669db7:	ff 52 14             	call   *0x14(%edx)
669dba:	85 c0                	test   %eax,%eax
669dbc:	7e 66                	jle    0x669e24
669dbe:	8b 5d e8             	mov    -0x18(%ebp),%ebx
669dc1:	4b                   	dec    %ebx
669dc2:	85 db                	test   %ebx,%ebx
669dc4:	7c 56                	jl     0x669e1c
669dc6:	43                   	inc    %ebx
669dc7:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
669dce:	8b 45 f8             	mov    -0x8(%ebp),%eax
669dd1:	8d 04 40             	lea    (%eax,%eax,2),%eax
669dd4:	8b 55 fc             	mov    -0x4(%ebp),%edx
669dd7:	8b 44 c2 08          	mov    0x8(%edx,%eax,8),%eax
669ddb:	85 c0                	test   %eax,%eax
669ddd:	74 13                	je     0x669df2
669ddf:	8b 55 f8             	mov    -0x8(%ebp),%edx
669de2:	8d 14 52             	lea    (%edx,%edx,2),%edx
669de5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
669de8:	ba 01 00 00 00       	mov    $0x1,%edx
669ded:	e8 da 89 d9 ff       	call   0x4027cc
669df2:	8b 45 f8             	mov    -0x8(%ebp),%eax
669df5:	8d 04 40             	lea    (%eax,%eax,2),%eax
669df8:	8b 55 fc             	mov    -0x4(%ebp),%edx
669dfb:	8b 44 c2 0c          	mov    0xc(%edx,%eax,8),%eax
669dff:	85 c0                	test   %eax,%eax
669e01:	74 13                	je     0x669e16
669e03:	8b 55 f8             	mov    -0x8(%ebp),%edx
669e06:	8d 14 52             	lea    (%edx,%edx,2),%edx
669e09:	8b 4d fc             	mov    -0x4(%ebp),%ecx
669e0c:	ba 01 00 00 00       	mov    $0x1,%edx
669e11:	e8 b6 89 d9 ff       	call   0x4027cc
669e16:	ff 45 f8             	incl   -0x8(%ebp)
669e19:	4b                   	dec    %ebx
669e1a:	75 b2                	jne    0x669dce