4068a3:	89 96 a8 9b 00 00    	mov    %edx,0x9ba8(%esi)
4068a9:	e8 04 08 00 00       	call   0x4070b2
4068ae:	8b 96 a8 9b 00 00    	mov    0x9ba8(%esi),%edx
4068b4:	8b 8e a4 9b 00 00    	mov    0x9ba4(%esi),%ecx
4068ba:	3b d1                	cmp    %ecx,%edx
4068bc:	89 55 d0             	mov    %edx,-0x30(%ebp)
4068bf:	73 07                	jae    0x4068c8
4068c1:	8b c1                	mov    %ecx,%eax
4068c3:	2b c2                	sub    %edx,%eax
4068c5:	48                   	dec    %eax
4068c6:	eb 08                	jmp    0x4068d0
4068c8:	8b 86 a0 9b 00 00    	mov    0x9ba0(%esi),%eax
4068ce:	2b c2                	sub    %edx,%eax
4068d0:	8b be a0 9b 00 00    	mov    0x9ba0(%esi),%edi
4068d6:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4068d9:	3b d7                	cmp    %edi,%edx
4068db:	75 1d                	jne    0x4068fa
4068dd:	8d 96 a0 1b 00 00    	lea    0x1ba0(%esi),%edx
4068e3:	3b d1                	cmp    %ecx,%edx
4068e5:	74 13                	je     0x4068fa
4068e7:	89 55 d0             	mov    %edx,-0x30(%ebp)
4068ea:	73 07                	jae    0x4068f3
4068ec:	2b ca                	sub    %edx,%ecx
4068ee:	49                   	dec    %ecx
4068ef:	8b c1                	mov    %ecx,%eax
4068f1:	eb 04                	jmp    0x4068f7
4068f3:	2b fa                	sub    %edx,%edi
4068f5:	8b c7                	mov    %edi,%eax
4068f7:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4068fa:	85 c0                	test   %eax,%eax
4068fc:	0f 84 61 07 00 00    	je     0x407063
406902:	3b 45 cc             	cmp    -0x34(%ebp),%eax
406905:	72 03                	jb     0x40690a
406907:	8b 45 cc             	mov    -0x34(%ebp),%eax
40690a:	8b 4e 04             	mov    0x4(%esi),%ecx
40690d:	3b c8                	cmp    %eax,%ecx
40690f:	8b f9                	mov    %ecx,%edi
406911:	72 02                	jb     0x406915
406913:	8b f8                	mov    %eax,%edi
406915:	57                   	push   %edi
406916:	ff 75 c8             	push   -0x38(%ebp)
406919:	ff 75 d0             	push   -0x30(%ebp)
40691c:	e8 99 f3 ff ff       	call   0x405cba
406921:	01 7d c8             	add    %edi,-0x38(%ebp)
406924:	29 7d cc             	sub    %edi,-0x34(%ebp)
406927:	01 7d d0             	add    %edi,-0x30(%ebp)
40692a:	29 7d d4             	sub    %edi,-0x2c(%ebp)
40692d:	29 7e 04             	sub    %edi,0x4(%esi)
406930:	0f 85 01 07 00 00    	jne    0x407037
406936:	8b 86 14 05 00 00    	mov    0x514(%esi),%eax
40693c:	89 06                	mov    %eax,(%esi)
40693e:	e9 f4 06 00 00       	jmp    0x407037
406943:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
406947:	0f 84 fa 06 00 00    	je     0x407047
40694d:	8b 45 c8             	mov    -0x38(%ebp),%eax
406950:	ff 4d cc             	decl   -0x34(%ebp)
406953:	8b cb                	mov    %ebx,%ecx
406955:	0f b6 00             	movzbl (%eax),%eax
406958:	d3 e0                	shl    %cl,%eax
40695a:	09 45 c0             	or     %eax,-0x40(%ebp)
40695d:	ff 45 c8             	incl   -0x38(%ebp)
406960:	83 c3 08             	add    $0x8,%ebx
406963:	83 fb 0e             	cmp    $0xe,%ebx
406966:	72 db                	jb     0x406943
406968:	8b 45 c0             	mov    -0x40(%ebp),%eax
40696b:	25 ff 3f 00 00       	and    $0x3fff,%eax
406970:	8b c8                	mov    %eax,%ecx
406972:	89 46 04             	mov    %eax,0x4(%esi)
406975:	83 e1 1f             	and    $0x1f,%ecx
406978:	80 f9 1d             	cmp    $0x1d,%cl
40697b:	0f 87 59 fd ff ff    	ja     0x4066da
406981:	25 e0 03 00 00       	and    $0x3e0,%eax
406986:	3d a0 03 00 00       	cmp    $0x3a0,%eax
40698b:	0f 87 49 fd ff ff    	ja     0x4066da
406991:	c1 6d c0 0e          	shrl   $0xe,-0x40(%ebp)
406995:	83 eb 0e             	sub    $0xe,%ebx
406998:	83 66 08 00          	andl   $0x0,0x8(%esi)
40699c:	c7 06 0c 00 00 00    	movl   $0xc,(%esi)
4069a2:	8b 46 04             	mov    0x4(%esi),%eax
4069a5:	c1 e8 0a             	shr    $0xa,%eax
4069a8:	83 c0 04             	add    $0x4,%eax
4069ab:	39 46 08             	cmp    %eax,0x8(%esi)
4069ae:	73 69                	jae    0x406a19
4069b0:	eb 20                	jmp    0x4069d2
4069b2:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
4069b6:	0f 84 8b 06 00 00    	je     0x407047
4069bc:	8b 45 c8             	mov    -0x38(%ebp),%eax
4069bf:	ff 4d cc             	decl   -0x34(%ebp)
4069c2:	8b cb                	mov    %ebx,%ecx
4069c4:	0f b6 00             	movzbl (%eax),%eax
4069c7:	d3 e0                	shl    %cl,%eax
4069c9:	09 45 c0             	or     %eax,-0x40(%ebp)
4069cc:	ff 45 c8             	incl   -0x38(%ebp)
4069cf:	83 c3 08             	add    $0x8,%ebx
4069d2:	83 fb 03             	cmp    $0x3,%ebx
4069d5:	72 db                	jb     0x4069b2
4069d7:	8b 4e 08             	mov    0x8(%esi),%ecx
4069da:	8b 45 c0             	mov    -0x40(%ebp),%eax
4069dd:	83 e0 07             	and    $0x7,%eax
4069e0:	83 eb 03             	sub    $0x3,%ebx
4069e3:	0f be 89 00 84 40 00 	movsbl 0x408400(%ecx),%ecx
4069ea:	c1 6d c0 03          	shrl   $0x3,-0x40(%ebp)
4069ee:	89 44 8e 0c          	mov    %eax,0xc(%esi,%ecx,4)
4069f2:	8b 4e 04             	mov    0x4(%esi),%ecx
4069f5:	ff 46 08             	incl   0x8(%esi)
4069f8:	8b 46 08             	mov    0x8(%esi),%eax
4069fb:	c1 e9 0a             	shr    $0xa,%ecx
4069fe:	83 c1 04             	add    $0x4,%ecx
406a01:	3b c1                	cmp    %ecx,%eax
406a03:	72 cd                	jb     0x4069d2
406a05:	eb 12                	jmp    0x406a19
406a07:	8b 46 08             	mov    0x8(%esi),%eax
406a0a:	0f be 80 00 84 40 00 	movsbl 0x408400(%eax),%eax
406a11:	83 64 86 0c 00       	andl   $0x0,0xc(%esi,%eax,4)
406a16:	ff 46 08             	incl   0x8(%esi)
406a19:	83 7e 08 13          	cmpl   $0x13,0x8(%esi)
406a1d:	72 e8                	jb     0x406a07
406a1f:	8d 4d f8             	lea    -0x8(%ebp),%ecx
406a22:	8d be 0c 05 00 00    	lea    0x50c(%esi),%edi
406a28:	51                   	push   %ecx
406a29:	8d 8e 20 05 00 00    	lea    0x520(%esi),%ecx
406a2f:	51                   	push   %ecx
406a30:	8d 8e 10 05 00 00    	lea    0x510(%esi),%ecx
406a36:	33 c0                	xor    %eax,%eax
406a38:	57                   	push   %edi
406a39:	51                   	push   %ecx
406a3a:	50                   	push   %eax
406a3b:	89 45 f8             	mov    %eax,-0x8(%ebp)
406a3e:	50                   	push   %eax
406a3f:	6a 13                	push   $0x13
406a41:	8d 46 0c             	lea    0xc(%esi),%eax
406a44:	6a 13                	push   $0x13
406a46:	50                   	push   %eax
406a47:	c7 07 07 00 00 00    	movl   $0x7,(%edi)
406a4d:	e8 c8 06 00 00       	call   0x40711a
406a52:	85 c0                	test   %eax,%eax
406a54:	75 12                	jne    0x406a68
406a56:	39 07                	cmp    %eax,(%edi)
406a58:	74 0e                	je     0x406a68
406a5a:	21 46 08             	and    %eax,0x8(%esi)
406a5d:	c7 06 0d 00 00 00    	movl   $0xd,(%esi)
406a63:	e9 1d 01 00 00       	jmp    0x406b85
406a68:	c7 06 11 00 00 00    	movl   $0x11,(%esi)
406a6e:	e9 c4 05 00 00       	jmp    0x407037
406a73:	8b 86 0c 05 00 00    	mov    0x50c(%esi),%eax
406a79:	eb 20                	jmp    0x406a9b
406a7b:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
406a7f:	0f 84 c2 05 00 00    	je     0x407047
406a85:	8b 4d c8             	mov    -0x38(%ebp),%ecx
406a88:	ff 4d cc             	decl   -0x34(%ebp)
406a8b:	0f b6 11             	movzbl (%ecx),%edx
406a8e:	8b cb                	mov    %ebx,%ecx
406a90:	d3 e2                	shl    %cl,%edx
406a92:	09 55 c0             	or     %edx,-0x40(%ebp)
406a95:	ff 45 c8             	incl   -0x38(%ebp)
406a98:	83 c3 08             	add    $0x8,%ebx
406a9b:	3b d8                	cmp    %eax,%ebx
406a9d:	72 dc                	jb     0x406a7b
406a9f:	0f b7 04 45 00 a4 40 	movzwl 0x40a400(,%eax,2),%eax
406aa6:	00
406aa7:	23 45 c0             	and    -0x40(%ebp),%eax
406aaa:	8b 8e 10 05 00 00    	mov    0x510(%esi),%ecx
406ab0:	8d 04 81             	lea    (%ecx,%eax,4),%eax
406ab3:	0f b6 50 01          	movzbl 0x1(%eax),%edx
406ab7:	0f b7 40 02          	movzwl 0x2(%eax),%eax
406abb:	83 f8 10             	cmp    $0x10,%eax
406abe:	89 45 ec             	mov    %eax,-0x14(%ebp)
406ac1:	73 16                	jae    0x406ad9
406ac3:	8b ca                	mov    %edx,%ecx
406ac5:	2b da                	sub    %edx,%ebx
406ac7:	d3 6d c0             	shrl   %cl,-0x40(%ebp)
406aca:	8b 4e 08             	mov    0x8(%esi),%ecx
406acd:	89 44 8e 0c          	mov    %eax,0xc(%esi,%ecx,4)
406ad1:	ff 46 08             	incl   0x8(%esi)
406ad4:	e9 ac 00 00 00       	jmp    0x406b85
406ad9:	83 f8 12             	cmp    $0x12,%eax
406adc:	75 0c                	jne    0x406aea
406ade:	6a 07                	push   $0x7
406ae0:	c7 45 f8 0b 00 00 00 	movl   $0xb,-0x8(%ebp)
406ae7:	58                   	pop    %eax
406ae8:	eb 2c                	jmp    0x406b16
406aea:	83 c0 f2             	add    $0xfffffff2,%eax
406aed:	c7 45 f8 03 00 00 00 	movl   $0x3,-0x8(%ebp)
406af4:	eb 20                	jmp    0x406b16
406af6:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
406afa:	0f 84 47 05 00 00    	je     0x407047
406b00:	8b 4d c8             	mov    -0x38(%ebp),%ecx
406b03:	ff 4d cc             	decl   -0x34(%ebp)
406b06:	0f b6 39             	movzbl (%ecx),%edi
406b09:	8b cb                	mov    %ebx,%ecx
406b0b:	d3 e7                	shl    %cl,%edi
406b0d:	09 7d c0             	or     %edi,-0x40(%ebp)
406b10:	ff 45 c8             	incl   -0x38(%ebp)
406b13:	83 c3 08             	add    $0x8,%ebx
406b16:	8d 0c 10             	lea    (%eax,%edx,1),%ecx
406b19:	3b d9                	cmp    %ecx,%ebx
406b1b:	72 d9                	jb     0x406af6
406b1d:	8b ca                	mov    %edx,%ecx
406b1f:	2b da                	sub    %edx,%ebx
406b21:	d3 6d c0             	shrl   %cl,-0x40(%ebp)
406b24:	0f b7 0c 45 00 a4 40 	movzwl 0x40a400(,%eax,2),%ecx
406b2b:	00
406b2c:	23 4d c0             	and    -0x40(%ebp),%ecx
406b2f:	8b 55 f8             	mov    -0x8(%ebp),%edx
406b32:	2b d8                	sub    %eax,%ebx
406b34:	03 d1                	add    %ecx,%edx
406b36:	8b c8                	mov    %eax,%ecx
406b38:	8b 46 04             	mov    0x4(%esi),%eax
406b3b:	d3 6d c0             	shrl   %cl,-0x40(%ebp)
406b3e:	8b 4e 08             	mov    0x8(%esi),%ecx
406b41:	8b f8                	mov    %eax,%edi
406b43:	c1 ef 05             	shr    $0x5,%edi
406b46:	83 e7 1f             	and    $0x1f,%edi
406b49:	83 e0 1f             	and    $0x1f,%eax
406b4c:	8d 84 07 02 01 00 00 	lea    0x102(%edi,%eax,1),%eax
406b53:	8d 3c 0a             	lea    (%edx,%ecx,1),%edi
406b56:	3b f8                	cmp    %eax,%edi
406b58:	0f 87 7c fb ff ff    	ja     0x4066da
406b5e:	83 7d ec 10          	cmpl   $0x10,-0x14(%ebp)
406b62:	75 0f                	jne    0x406b73
406b64:	83 f9 01             	cmp    $0x1,%ecx
406b67:	0f 82 6d fb ff ff    	jb     0x4066da
406b6d:	8b 7c 8e 08          	mov    0x8(%esi,%ecx,4),%edi
406b71:	eb 02                	jmp    0x406b75
406b73:	33 ff                	xor    %edi,%edi
406b75:	8d 44 8e 0c          	lea    0xc(%esi,%ecx,4),%eax
406b79:	89 38                	mov    %edi,(%eax)
406b7b:	41                   	inc    %ecx
406b7c:	83 c0 04             	add    $0x4,%eax
406b7f:	4a                   	dec    %edx
406b80:	75 f7                	jne    0x406b79
406b82:	89 4e 08             	mov    %ecx,0x8(%esi)
406b85:	8b 46 04             	mov    0x4(%esi),%eax
406b88:	8b 4e 08             	mov    0x8(%esi),%ecx
406b8b:	8b d0                	mov    %eax,%edx
406b8d:	83 e0 1f             	and    $0x1f,%eax
406b90:	c1 ea 05             	shr    $0x5,%edx
406b93:	83 e2 1f             	and    $0x1f,%edx
406b96:	8d 84 02 02 01 00 00 	lea    0x102(%edx,%eax,1),%eax
406b9d:	3b c8                	cmp    %eax,%ecx
406b9f:	0f 82 ce fe ff ff    	jb     0x406a73
406ba5:	8b 46 04             	mov    0x4(%esi),%eax
406ba8:	83 a6 10 05 00 00 00 	andl   $0x0,0x510(%esi)
406baf:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
406bb3:	8b f8                	mov    %eax,%edi
406bb5:	c1 e8 05             	shr    $0x5,%eax
406bb8:	83 e7 1f             	and    $0x1f,%edi
406bbb:	b9 01 01 00 00       	mov    $0x101,%ecx
406bc0:	83 e0 1f             	and    $0x1f,%eax
406bc3:	03 f9                	add    %ecx,%edi
406bc5:	40                   	inc    %eax
406bc6:	8d 55 f4             	lea    -0xc(%ebp),%edx
406bc9:	89 45 ec             	mov    %eax,-0x14(%ebp)
406bcc:	8d 86 20 05 00 00    	lea    0x520(%esi),%eax
406bd2:	52                   	push   %edx
406bd3:	50                   	push   %eax
406bd4:	8d 45 fc             	lea    -0x4(%ebp),%eax
406bd7:	c7 45 fc 09 00 00 00 	movl   $0x9,-0x4(%ebp)
406bde:	50                   	push   %eax
406bdf:	8d 45 e8             	lea    -0x18(%ebp),%eax
406be2:	50                   	push   %eax
406be3:	68 54 84 40 00       	push   $0x408454
406be8:	68 14 84 40 00       	push   $0x408414
406bed:	51                   	push   %ecx
406bee:	8d 46 0c             	lea    0xc(%esi),%eax
406bf1:	57                   	push   %edi
406bf2:	50                   	push   %eax
406bf3:	c7 45 f0 06 00 00 00 	movl   $0x6,-0x10(%ebp)
406bfa:	e8 1b 05 00 00       	call   0x40711a
406bff:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
406c03:	75 03                	jne    0x406c08
406c05:	83 c8 ff             	or     $0xffffffff,%eax
406c08:	85 c0                	test   %eax,%eax
406c0a:	0f 85 ca fa ff ff    	jne    0x4066da
406c10:	8d 45 f4             	lea    -0xc(%ebp),%eax
406c13:	50                   	push   %eax
406c14:	8d 86 20 05 00 00    	lea    0x520(%esi),%eax
406c1a:	50                   	push   %eax
406c1b:	8d 45 f0             	lea    -0x10(%ebp),%eax
406c1e:	50                   	push   %eax
406c1f:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406c22:	50                   	push   %eax
406c23:	68 d0 84 40 00       	push   $0x4084d0
406c28:	68 94 84 40 00       	push   $0x408494
406c2d:	6a 00                	push   $0x0
406c2f:	ff 75 ec             	push   -0x14(%ebp)
406c32:	8d 44 be 0c          	lea    0xc(%esi,%edi,4),%eax
406c36:	50                   	push   %eax
406c37:	e8 de 04 00 00       	call   0x40711a
406c3c:	85 c0                	test   %eax,%eax
406c3e:	0f 85 96 fa ff ff    	jne    0x4066da
406c44:	8b 45 f0             	mov    -0x10(%ebp),%eax
406c47:	85 c0                	test   %eax,%eax
406c49:	75 0c                	jne    0x406c57
406c4b:	81 ff 01 01 00 00    	cmp    $0x101,%edi
406c51:	0f 8f 83 fa ff ff    	jg     0x4066da
406c57:	8a 4d fc             	mov    -0x4(%ebp),%cl
406c5a:	83 26 00             	andl   $0x0,(%esi)
406c5d:	88 46 11             	mov    %al,0x11(%esi)
406c60:	8b 45 e8             	mov    -0x18(%ebp),%eax
406c63:	89 46 14             	mov    %eax,0x14(%esi)
406c66:	8b 45 e4             	mov    -0x1c(%ebp),%eax
406c69:	88 4e 10             	mov    %cl,0x10(%esi)
406c6c:	89 46 18             	mov    %eax,0x18(%esi)
406c6f:	0f b6 46 10          	movzbl 0x10(%esi),%eax
406c73:	89 46 0c             	mov    %eax,0xc(%esi)
406c76:	8b 46 14             	mov    0x14(%esi),%eax
406c79:	89 46 08             	mov    %eax,0x8(%esi)
406c7c:	c7 06 01 00 00 00    	movl   $0x1,(%esi)
406c82:	8b 46 0c             	mov    0xc(%esi),%eax
406c85:	eb 20                	jmp    0x406ca7
406c87:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
406c8b:	0f 84 b6 03 00 00    	je     0x407047
406c91:	8b 4d c8             	mov    -0x38(%ebp),%ecx
406c94:	ff 4d cc             	decl   -0x34(%ebp)
406c97:	0f b6 11             	movzbl (%ecx),%edx
406c9a:	8b cb                	mov    %ebx,%ecx
406c9c:	d3 e2                	shl    %cl,%edx
406c9e:	09 55 c0             	or     %edx,-0x40(%ebp)
406ca1:	ff 45 c8             	incl   -0x38(%ebp)
406ca4:	83 c3 08             	add    $0x8,%ebx
406ca7:	3b d8                	cmp    %eax,%ebx
406ca9:	72 dc                	jb     0x406c87
406cab:	0f b7 04 45 00 a4 40 	movzwl 0x40a400(,%eax,2),%eax
406cb2:	00
406cb3:	23 45 c0             	and    -0x40(%ebp),%eax
406cb6:	8b 4e 08             	mov    0x8(%esi),%ecx
406cb9:	8d 04 81             	lea    (%ecx,%eax,4),%eax
406cbc:	0f b6 48 01          	movzbl 0x1(%eax),%ecx
406cc0:	d3 6d c0             	shrl   %cl,-0x40(%ebp)
406cc3:	2b d9                	sub    %ecx,%ebx
406cc5:	0f b6 08             	movzbl (%eax),%ecx
406cc8:	85 c9                	test   %ecx,%ecx
406cca:	75 12                	jne    0x406cde
406ccc:	0f b7 40 02          	movzwl 0x2(%eax),%eax
406cd0:	89 46 08             	mov    %eax,0x8(%esi)
406cd3:	c7 06 06 00 00 00    	movl   $0x6,(%esi)
406cd9:	e9 59 03 00 00       	jmp    0x407037
406cde:	f6 c1 10             	test   $0x10,%cl
406ce1:	74 18                	je     0x406cfb
406ce3:	83 e1 0f             	and    $0xf,%ecx
406ce6:	89 4e 08             	mov    %ecx,0x8(%esi)
406ce9:	0f b7 40 02          	movzwl 0x2(%eax),%eax
406ced:	89 46 04             	mov    %eax,0x4(%esi)
406cf0:	c7 06 02 00 00 00    	movl   $0x2,(%esi)
406cf6:	e9 3c 03 00 00       	jmp    0x407037
406cfb:	f6 c1 40             	test   $0x40,%cl
406cfe:	0f 84 d1 00 00 00    	je     0x406dd5
406d04:	f6 c1 20             	test   $0x20,%cl
406d07:	0f 84 cd f9 ff ff    	je     0x4066da