40b773:	53                   	push   %ebx
40b774:	53                   	push   %ebx
40b775:	51                   	push   %ecx
40b776:	e8 fa 85 00 00       	call   0x413d75
40b77b:	23 c2                	and    %edx,%eax
40b77d:	83 c4 10             	add    $0x10,%esp
40b780:	83 f8 ff             	cmp    $0xffffffff,%eax
40b783:	74 25                	je     0x40b7aa
40b785:	8b 46 08             	mov    0x8(%esi),%eax
40b788:	8a 4d 08             	mov    0x8(%ebp),%cl
40b78b:	88 08                	mov    %cl,(%eax)
40b78d:	eb 16                	jmp    0x40b7a5
40b78f:	33 ff                	xor    %edi,%edi
40b791:	47                   	inc    %edi
40b792:	57                   	push   %edi
40b793:	8d 45 08             	lea    0x8(%ebp),%eax
40b796:	50                   	push   %eax
40b797:	ff 75 0c             	push   0xc(%ebp)
40b79a:	e8 c8 3b 00 00       	call   0x40f367
40b79f:	83 c4 0c             	add    $0xc,%esp
40b7a2:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b7a5:	39 7d fc             	cmp    %edi,-0x4(%ebp)
40b7a8:	74 09                	je     0x40b7b3
40b7aa:	83 4e 0c 20          	orl    $0x20,0xc(%esi)
40b7ae:	83 c8 ff             	or     $0xffffffff,%eax
40b7b1:	eb 08                	jmp    0x40b7bb
40b7b3:	8b 45 08             	mov    0x8(%ebp),%eax
40b7b6:	25 ff 00 00 00       	and    $0xff,%eax
40b7bb:	5f                   	pop    %edi
40b7bc:	5b                   	pop    %ebx
40b7bd:	5e                   	pop    %esi
40b7be:	c9                   	leave
40b7bf:	c3                   	ret
40b7c0:	f6 41 0c 40          	testb  $0x40,0xc(%ecx)
40b7c4:	74 06                	je     0x40b7cc
40b7c6:	83 79 08 00          	cmpl   $0x0,0x8(%ecx)
40b7ca:	74 24                	je     0x40b7f0
40b7cc:	ff 49 04             	decl   0x4(%ecx)
40b7cf:	78 0b                	js     0x40b7dc
40b7d1:	8b 11                	mov    (%ecx),%edx
40b7d3:	88 02                	mov    %al,(%edx)
40b7d5:	ff 01                	incl   (%ecx)
40b7d7:	0f b6 c0             	movzbl %al,%eax
40b7da:	eb 0c                	jmp    0x40b7e8
40b7dc:	0f be c0             	movsbl %al,%eax
40b7df:	51                   	push   %ecx
40b7e0:	50                   	push   %eax
40b7e1:	e8 7a fe ff ff       	call   0x40b660
40b7e6:	59                   	pop    %ecx
40b7e7:	59                   	pop    %ecx
40b7e8:	83 f8 ff             	cmp    $0xffffffff,%eax
40b7eb:	75 03                	jne    0x40b7f0
40b7ed:	09 06                	or     %eax,(%esi)
40b7ef:	c3                   	ret
40b7f0:	ff 06                	incl   (%esi)
40b7f2:	c3                   	ret
40b7f3:	55                   	push   %ebp
40b7f4:	8b ec                	mov    %esp,%ebp
40b7f6:	56                   	push   %esi
40b7f7:	8b f0                	mov    %eax,%esi
40b7f9:	eb 13                	jmp    0x40b80e
40b7fb:	8b 4d 10             	mov    0x10(%ebp),%ecx
40b7fe:	8a 45 08             	mov    0x8(%ebp),%al
40b801:	ff 4d 0c             	decl   0xc(%ebp)
40b804:	e8 b7 ff ff ff       	call   0x40b7c0
40b809:	83 3e ff             	cmpl   $0xffffffff,(%esi)
40b80c:	74 06                	je     0x40b814
40b80e:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40b812:	7f e7                	jg     0x40b7fb
40b814:	5e                   	pop    %esi
40b815:	5d                   	pop    %ebp
40b816:	c3                   	ret
40b817:	f6 47 0c 40          	testb  $0x40,0xc(%edi)
40b81b:	53                   	push   %ebx
40b81c:	56                   	push   %esi
40b81d:	8b f0                	mov    %eax,%esi
40b81f:	8b d9                	mov    %ecx,%ebx
40b821:	74 34                	je     0x40b857
40b823:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
40b827:	75 2e                	jne    0x40b857
40b829:	8b 44 24 0c          	mov    0xc(%esp),%eax
40b82d:	01 06                	add    %eax,(%esi)
40b82f:	eb 2d                	jmp    0x40b85e
40b831:	8a 03                	mov    (%ebx),%al
40b833:	ff 4c 24 0c          	decl   0xc(%esp)
40b837:	8b cf                	mov    %edi,%ecx
40b839:	e8 82 ff ff ff       	call   0x40b7c0
40b83e:	43                   	inc    %ebx
40b83f:	83 3e ff             	cmpl   $0xffffffff,(%esi)
40b842:	75 13                	jne    0x40b857
40b844:	e8 b1 db ff ff       	call   0x4093fa
40b849:	83 38 2a             	cmpl   $0x2a,(%eax)
40b84c:	75 10                	jne    0x40b85e
40b84e:	8b cf                	mov    %edi,%ecx
40b850:	b0 3f                	mov    $0x3f,%al
40b852:	e8 69 ff ff ff       	call   0x40b7c0
40b857:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
40b85c:	7f d3                	jg     0x40b831
40b85e:	5e                   	pop    %esi
40b85f:	5b                   	pop    %ebx
40b860:	c3                   	ret
40b861:	55                   	push   %ebp
40b862:	8d ac 24 08 fe ff ff 	lea    -0x1f8(%esp),%ebp
40b869:	81 ec 78 02 00 00    	sub    $0x278,%esp
40b86f:	a1 20 c5 41 00       	mov    0x41c520,%eax
40b874:	33 c5                	xor    %ebp,%eax
40b876:	89 85 f4 01 00 00    	mov    %eax,0x1f4(%ebp)
40b87c:	8b 85 00 02 00 00    	mov    0x200(%ebp),%eax
40b882:	53                   	push   %ebx
40b883:	8b 9d 04 02 00 00    	mov    0x204(%ebp),%ebx
40b889:	56                   	push   %esi
40b88a:	33 f6                	xor    %esi,%esi
40b88c:	57                   	push   %edi
40b88d:	8b bd 0c 02 00 00    	mov    0x20c(%ebp),%edi
40b893:	ff b5 08 02 00 00    	push   0x208(%ebp)
40b899:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
40b89c:	89 45 d0             	mov    %eax,-0x30(%ebp)
40b89f:	89 7d d4             	mov    %edi,-0x2c(%ebp)
40b8a2:	89 75 b4             	mov    %esi,-0x4c(%ebp)
40b8a5:	89 75 e8             	mov    %esi,-0x18(%ebp)
40b8a8:	89 75 c0             	mov    %esi,-0x40(%ebp)
40b8ab:	89 75 e0             	mov    %esi,-0x20(%ebp)
40b8ae:	89 75 c4             	mov    %esi,-0x3c(%ebp)
40b8b1:	89 75 b0             	mov    %esi,-0x50(%ebp)
40b8b4:	89 75 bc             	mov    %esi,-0x44(%ebp)
40b8b7:	e8 08 d1 ff ff       	call   0x4089c4
40b8bc:	39 75 d0             	cmp    %esi,-0x30(%ebp)
40b8bf:	75 2d                	jne    0x40b8ee
40b8c1:	e8 34 db ff ff       	call   0x4093fa
40b8c6:	56                   	push   %esi
40b8c7:	56                   	push   %esi
40b8c8:	56                   	push   %esi
40b8c9:	56                   	push   %esi
40b8ca:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40b8d0:	56                   	push   %esi
40b8d1:	e8 7a bd ff ff       	call   0x407650
40b8d6:	83 c4 14             	add    $0x14,%esp
40b8d9:	80 7d a8 00          	cmpb   $0x0,-0x58(%ebp)
40b8dd:	74 07                	je     0x40b8e6
40b8df:	8b 45 a4             	mov    -0x5c(%ebp),%eax
40b8e2:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
40b8e6:	83 c8 ff             	or     $0xffffffff,%eax
40b8e9:	e9 d0 08 00 00       	jmp    0x40c1be
40b8ee:	8b 45 d0             	mov    -0x30(%ebp),%eax
40b8f1:	f6 40 0c 40          	testb  $0x40,0xc(%eax)
40b8f5:	0f 85 a4 00 00 00    	jne    0x40b99f
40b8fb:	50                   	push   %eax
40b8fc:	e8 45 31 00 00       	call   0x40ea46
40b901:	83 f8 ff             	cmp    $0xffffffff,%eax
40b904:	59                   	pop    %ecx
40b905:	74 36                	je     0x40b93d
40b907:	ff 75 d0             	push   -0x30(%ebp)
40b90a:	e8 37 31 00 00       	call   0x40ea46
40b90f:	83 f8 fe             	cmp    $0xfffffffe,%eax
40b912:	59                   	pop    %ecx
40b913:	74 28                	je     0x40b93d
40b915:	ff 75 d0             	push   -0x30(%ebp)
40b918:	e8 29 31 00 00       	call   0x40ea46
40b91d:	ff 75 d0             	push   -0x30(%ebp)
40b920:	c1 f8 05             	sar    $0x5,%eax
40b923:	8d 34 85 c0 e4 41 00 	lea    0x41e4c0(,%eax,4),%esi
40b92a:	e8 17 31 00 00       	call   0x40ea46
40b92f:	83 e0 1f             	and    $0x1f,%eax
40b932:	6b c0 28             	imul   $0x28,%eax,%eax
40b935:	03 06                	add    (%esi),%eax
40b937:	59                   	pop    %ecx
40b938:	59                   	pop    %ecx
40b939:	33 f6                	xor    %esi,%esi
40b93b:	eb 05                	jmp    0x40b942
40b93d:	b8 f0 cb 41 00       	mov    $0x41cbf0,%eax
40b942:	f6 40 24 7f          	testb  $0x7f,0x24(%eax)
40b946:	0f 85 75 ff ff ff    	jne    0x40b8c1
40b94c:	ff 75 d0             	push   -0x30(%ebp)
40b94f:	e8 f2 30 00 00       	call   0x40ea46
40b954:	83 f8 ff             	cmp    $0xffffffff,%eax
40b957:	59                   	pop    %ecx
40b958:	74 36                	je     0x40b990
40b95a:	ff 75 d0             	push   -0x30(%ebp)
40b95d:	e8 e4 30 00 00       	call   0x40ea46
40b962:	83 f8 fe             	cmp    $0xfffffffe,%eax
40b965:	59                   	pop    %ecx
40b966:	74 28                	je     0x40b990
40b968:	ff 75 d0             	push   -0x30(%ebp)
40b96b:	e8 d6 30 00 00       	call   0x40ea46
40b970:	ff 75 d0             	push   -0x30(%ebp)
40b973:	c1 f8 05             	sar    $0x5,%eax
40b976:	8d 34 85 c0 e4 41 00 	lea    0x41e4c0(,%eax,4),%esi
40b97d:	e8 c4 30 00 00       	call   0x40ea46
40b982:	83 e0 1f             	and    $0x1f,%eax
40b985:	6b c0 28             	imul   $0x28,%eax,%eax
40b988:	03 06                	add    (%esi),%eax
40b98a:	59                   	pop    %ecx
40b98b:	59                   	pop    %ecx
40b98c:	33 f6                	xor    %esi,%esi
40b98e:	eb 05                	jmp    0x40b995
40b990:	b8 f0 cb 41 00       	mov    $0x41cbf0,%eax
40b995:	f6 40 24 80          	testb  $0x80,0x24(%eax)
40b999:	0f 85 22 ff ff ff    	jne    0x40b8c1
40b99f:	3b de                	cmp    %esi,%ebx
40b9a1:	0f 84 1a ff ff ff    	je     0x40b8c1
40b9a7:	8a 13                	mov    (%ebx),%dl
40b9a9:	33 c9                	xor    %ecx,%ecx
40b9ab:	84 d2                	test   %dl,%dl
40b9ad:	89 75 cc             	mov    %esi,-0x34(%ebp)
40b9b0:	89 75 d8             	mov    %esi,-0x28(%ebp)
40b9b3:	89 75 ac             	mov    %esi,-0x54(%ebp)
40b9b6:	88 55 e7             	mov    %dl,-0x19(%ebp)
40b9b9:	0f 84 ef 07 00 00    	je     0x40c1ae
40b9bf:	43                   	inc    %ebx
40b9c0:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
40b9c4:	89 5d b8             	mov    %ebx,-0x48(%ebp)
40b9c7:	0f 8c e1 07 00 00    	jl     0x40c1ae
40b9cd:	8a c2                	mov    %dl,%al
40b9cf:	2c 20                	sub    $0x20,%al
40b9d1:	3c 58                	cmp    $0x58,%al
40b9d3:	77 11                	ja     0x40b9e6
40b9d5:	0f be c2             	movsbl %dl,%eax
40b9d8:	0f b6 80 b8 7f 41 00 	movzbl 0x417fb8(%eax),%eax
40b9df:	83 e0 0f             	and    $0xf,%eax
40b9e2:	33 f6                	xor    %esi,%esi
40b9e4:	eb 04                	jmp    0x40b9ea
40b9e6:	33 f6                	xor    %esi,%esi
40b9e8:	33 c0                	xor    %eax,%eax
40b9ea:	0f be 84 c1 d8 7f 41 	movsbl 0x417fd8(%ecx,%eax,8),%eax
40b9f1:	00
40b9f2:	6a 07                	push   $0x7
40b9f4:	c1 f8 04             	sar    $0x4,%eax
40b9f7:	59                   	pop    %ecx
40b9f8:	3b c1                	cmp    %ecx,%eax
40b9fa:	89 45 8c             	mov    %eax,-0x74(%ebp)
40b9fd:	0f 87 7b 07 00 00    	ja     0x40c17e
40ba03:	ff 24 85 d9 c1 40 00 	jmp    *0x40c1d9(,%eax,4)
40ba0a:	83 4d e0 ff          	orl    $0xffffffff,-0x20(%ebp)
40ba0e:	89 75 88             	mov    %esi,-0x78(%ebp)
40ba11:	89 75 b0             	mov    %esi,-0x50(%ebp)
40ba14:	89 75 c0             	mov    %esi,-0x40(%ebp)
40ba17:	89 75 c4             	mov    %esi,-0x3c(%ebp)
40ba1a:	89 75 e8             	mov    %esi,-0x18(%ebp)
40ba1d:	89 75 bc             	mov    %esi,-0x44(%ebp)
40ba20:	e9 59 07 00 00       	jmp    0x40c17e
40ba25:	0f be c2             	movsbl %dl,%eax
40ba28:	83 e8 20             	sub    $0x20,%eax
40ba2b:	74 3e                	je     0x40ba6b
40ba2d:	83 e8 03             	sub    $0x3,%eax
40ba30:	74 2d                	je     0x40ba5f
40ba32:	83 e8 08             	sub    $0x8,%eax
40ba35:	74 1f                	je     0x40ba56
40ba37:	48                   	dec    %eax
40ba38:	48                   	dec    %eax
40ba39:	74 12                	je     0x40ba4d
40ba3b:	83 e8 03             	sub    $0x3,%eax
40ba3e:	0f 85 3a 07 00 00    	jne    0x40c17e
40ba44:	83 4d e8 08          	orl    $0x8,-0x18(%ebp)
40ba48:	e9 31 07 00 00       	jmp    0x40c17e
40ba4d:	83 4d e8 04          	orl    $0x4,-0x18(%ebp)
40ba51:	e9 28 07 00 00       	jmp    0x40c17e
40ba56:	83 4d e8 01          	orl    $0x1,-0x18(%ebp)
40ba5a:	e9 1f 07 00 00       	jmp    0x40c17e
40ba5f:	81 4d e8 80 00 00 00 	orl    $0x80,-0x18(%ebp)
40ba66:	e9 13 07 00 00       	jmp    0x40c17e
40ba6b:	83 4d e8 02          	orl    $0x2,-0x18(%ebp)
40ba6f:	e9 0a 07 00 00       	jmp    0x40c17e
40ba74:	80 fa 2a             	cmp    $0x2a,%dl
40ba77:	75 20                	jne    0x40ba99
40ba79:	83 c7 04             	add    $0x4,%edi
40ba7c:	89 7d d4             	mov    %edi,-0x2c(%ebp)
40ba7f:	8b 7f fc             	mov    -0x4(%edi),%edi
40ba82:	3b fe                	cmp    %esi,%edi
40ba84:	89 7d c0             	mov    %edi,-0x40(%ebp)
40ba87:	0f 8d f1 06 00 00    	jge    0x40c17e
40ba8d:	83 4d e8 04          	orl    $0x4,-0x18(%ebp)
40ba91:	f7 5d c0             	negl   -0x40(%ebp)
40ba94:	e9 e5 06 00 00       	jmp    0x40c17e
40ba99:	8b 45 c0             	mov    -0x40(%ebp),%eax
40ba9c:	6b c0 0a             	imul   $0xa,%eax,%eax
40ba9f:	0f be ca             	movsbl %dl,%ecx
40baa2:	8d 44 08 d0          	lea    -0x30(%eax,%ecx,1),%eax
40baa6:	89 45 c0             	mov    %eax,-0x40(%ebp)
40baa9:	e9 d0 06 00 00       	jmp    0x40c17e
40baae:	89 75 e0             	mov    %esi,-0x20(%ebp)
40bab1:	e9 c8 06 00 00       	jmp    0x40c17e
40bab6:	80 fa 2a             	cmp    $0x2a,%dl
40bab9:	75 1d                	jne    0x40bad8
40babb:	83 c7 04             	add    $0x4,%edi
40babe:	89 7d d4             	mov    %edi,-0x2c(%ebp)
40bac1:	8b 7f fc             	mov    -0x4(%edi),%edi
40bac4:	3b fe                	cmp    %esi,%edi
40bac6:	89 7d e0             	mov    %edi,-0x20(%ebp)
40bac9:	0f 8d af 06 00 00    	jge    0x40c17e
40bacf:	83 4d e0 ff          	orl    $0xffffffff,-0x20(%ebp)
40bad3:	e9 a6 06 00 00       	jmp    0x40c17e
40bad8:	8b 45 e0             	mov    -0x20(%ebp),%eax
40badb:	6b c0 0a             	imul   $0xa,%eax,%eax
40bade:	0f be ca             	movsbl %dl,%ecx
40bae1:	8d 44 08 d0          	lea    -0x30(%eax,%ecx,1),%eax
40bae5:	89 45 e0             	mov    %eax,-0x20(%ebp)
40bae8:	e9 91 06 00 00       	jmp    0x40c17e
40baed:	80 fa 49             	cmp    $0x49,%dl
40baf0:	74 46                	je     0x40bb38
40baf2:	80 fa 68             	cmp    $0x68,%dl
40baf5:	74 38                	je     0x40bb2f
40baf7:	80 fa 6c             	cmp    $0x6c,%dl
40bafa:	74 15                	je     0x40bb11
40bafc:	80 fa 77             	cmp    $0x77,%dl
40baff:	0f 85 79 06 00 00    	jne    0x40c17e
40bb05:	81 4d e8 00 08 00 00 	orl    $0x800,-0x18(%ebp)
40bb0c:	e9 6d 06 00 00       	jmp    0x40c17e
40bb11:	80 3b 6c             	cmpb   $0x6c,(%ebx)
40bb14:	75 10                	jne    0x40bb26
40bb16:	43                   	inc    %ebx
40bb17:	81 4d e8 00 10 00 00 	orl    $0x1000,-0x18(%ebp)
40bb1e:	89 5d b8             	mov    %ebx,-0x48(%ebp)
40bb21:	e9 58 06 00 00       	jmp    0x40c17e
40bb26:	83 4d e8 10          	orl    $0x10,-0x18(%ebp)
40bb2a:	e9 4f 06 00 00       	jmp    0x40c17e
40bb2f:	83 4d e8 20          	orl    $0x20,-0x18(%ebp)
40bb33:	e9 46 06 00 00       	jmp    0x40c17e
40bb38:	8a 03                	mov    (%ebx),%al
40bb3a:	3c 36                	cmp    $0x36,%al
40bb3c:	75 17                	jne    0x40bb55
40bb3e:	80 7b 01 34          	cmpb   $0x34,0x1(%ebx)
40bb42:	75 11                	jne    0x40bb55
40bb44:	43                   	inc    %ebx
40bb45:	43                   	inc    %ebx
40bb46:	81 4d e8 00 80 00 00 	orl    $0x8000,-0x18(%ebp)
40bb4d:	89 5d b8             	mov    %ebx,-0x48(%ebp)
40bb50:	e9 29 06 00 00       	jmp    0x40c17e
40bb55:	3c 33                	cmp    $0x33,%al
40bb57:	75 17                	jne    0x40bb70
40bb59:	80 7b 01 32          	cmpb   $0x32,0x1(%ebx)
40bb5d:	75 11                	jne    0x40bb70
40bb5f:	43                   	inc    %ebx
40bb60:	43                   	inc    %ebx
40bb61:	81 65 e8 ff 7f ff ff 	andl   $0xffff7fff,-0x18(%ebp)
40bb68:	89 5d b8             	mov    %ebx,-0x48(%ebp)
40bb6b:	e9 0e 06 00 00       	jmp    0x40c17e
40bb70:	3c 64                	cmp    $0x64,%al
40bb72:	0f 84 06 06 00 00    	je     0x40c17e
40bb78:	3c 69                	cmp    $0x69,%al
40bb7a:	0f 84 fe 05 00 00    	je     0x40c17e
40bb80:	3c 6f                	cmp    $0x6f,%al
40bb82:	0f 84 f6 05 00 00    	je     0x40c17e
40bb88:	3c 75                	cmp    $0x75,%al
40bb8a:	0f 84 ee 05 00 00    	je     0x40c17e
40bb90:	3c 78                	cmp    $0x78,%al
40bb92:	0f 84 e6 05 00 00    	je     0x40c17e
40bb98:	3c 58                	cmp    $0x58,%al
40bb9a:	0f 84 de 05 00 00    	je     0x40c17e
40bba0:	89 75 8c             	mov    %esi,-0x74(%ebp)
40bba3:	8d 45 9c             	lea    -0x64(%ebp),%eax