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
40bba6:	50                   	push   %eax
40bba7:	0f b6 c2             	movzbl %dl,%eax
40bbaa:	50                   	push   %eax
40bbab:	89 75 bc             	mov    %esi,-0x44(%ebp)
40bbae:	e8 2f 2d 00 00       	call   0x40e8e2
40bbb3:	59                   	pop    %ecx
40bbb4:	85 c0                	test   %eax,%eax
40bbb6:	8a 45 e7             	mov    -0x19(%ebp),%al
40bbb9:	59                   	pop    %ecx
40bbba:	74 19                	je     0x40bbd5
40bbbc:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40bbbf:	8d 75 cc             	lea    -0x34(%ebp),%esi
40bbc2:	e8 f9 fb ff ff       	call   0x40b7c0
40bbc7:	8a 03                	mov    (%ebx),%al
40bbc9:	43                   	inc    %ebx
40bbca:	84 c0                	test   %al,%al
40bbcc:	89 5d b8             	mov    %ebx,-0x48(%ebp)
40bbcf:	0f 84 c2 05 00 00    	je     0x40c197
40bbd5:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40bbd8:	8d 75 cc             	lea    -0x34(%ebp),%esi
40bbdb:	e8 e0 fb ff ff       	call   0x40b7c0
40bbe0:	e9 99 05 00 00       	jmp    0x40c17e
40bbe5:	0f be c2             	movsbl %dl,%eax
40bbe8:	83 f8 64             	cmp    $0x64,%eax
40bbeb:	0f 8f 72 01 00 00    	jg     0x40bd63
40bbf1:	0f 84 eb 01 00 00    	je     0x40bde2
40bbf7:	83 f8 53             	cmp    $0x53,%eax
40bbfa:	0f 8f ab 00 00 00    	jg     0x40bcab
40bc00:	74 5a                	je     0x40bc5c
40bc02:	83 e8 41             	sub    $0x41,%eax
40bc05:	74 10                	je     0x40bc17
40bc07:	48                   	dec    %eax
40bc08:	48                   	dec    %eax
40bc09:	74 40                	je     0x40bc4b
40bc0b:	48                   	dec    %eax
40bc0c:	48                   	dec    %eax
40bc0d:	74 08                	je     0x40bc17
40bc0f:	48                   	dec    %eax
40bc10:	48                   	dec    %eax
40bc11:	0f 85 4f 04 00 00    	jne    0x40c066
40bc17:	80 c2 20             	add    $0x20,%dl
40bc1a:	c7 45 88 01 00 00 00 	movl   $0x1,-0x78(%ebp)
40bc21:	88 55 e7             	mov    %dl,-0x19(%ebp)
40bc24:	83 4d e8 40          	orl    $0x40,-0x18(%ebp)
40bc28:	39 75 e0             	cmp    %esi,-0x20(%ebp)
40bc2b:	8d 5d ec             	lea    -0x14(%ebp),%ebx
40bc2e:	b8 00 02 00 00       	mov    $0x200,%eax
40bc33:	89 5d dc             	mov    %ebx,-0x24(%ebp)
40bc36:	89 45 98             	mov    %eax,-0x68(%ebp)
40bc39:	0f 8d c7 01 00 00    	jge    0x40be06
40bc3f:	c7 45 e0 06 00 00 00 	movl   $0x6,-0x20(%ebp)
40bc46:	e9 09 02 00 00       	jmp    0x40be54
40bc4b:	66 f7 45 e8 30 08    	testw  $0x830,-0x18(%ebp)
40bc51:	75 75                	jne    0x40bcc8
40bc53:	81 4d e8 00 08 00 00 	orl    $0x800,-0x18(%ebp)
40bc5a:	eb 6c                	jmp    0x40bcc8
40bc5c:	66 f7 45 e8 30 08    	testw  $0x830,-0x18(%ebp)
40bc62:	75 07                	jne    0x40bc6b
40bc64:	81 4d e8 00 08 00 00 	orl    $0x800,-0x18(%ebp)
40bc6b:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40bc6e:	83 f9 ff             	cmp    $0xffffffff,%ecx
40bc71:	75 05                	jne    0x40bc78
40bc73:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
40bc78:	83 c7 04             	add    $0x4,%edi
40bc7b:	66 f7 45 e8 10 08    	testw  $0x810,-0x18(%ebp)
40bc81:	89 7d d4             	mov    %edi,-0x2c(%ebp)
40bc84:	8b 7f fc             	mov    -0x4(%edi),%edi
40bc87:	89 7d dc             	mov    %edi,-0x24(%ebp)
40bc8a:	0f 84 b4 03 00 00    	je     0x40c044
40bc90:	3b fe                	cmp    %esi,%edi
40bc92:	75 08                	jne    0x40bc9c
40bc94:	a1 74 c9 41 00       	mov    0x41c974,%eax
40bc99:	89 45 dc             	mov    %eax,-0x24(%ebp)
40bc9c:	8b 45 dc             	mov    -0x24(%ebp),%eax
40bc9f:	c7 45 bc 01 00 00 00 	movl   $0x1,-0x44(%ebp)
40bca6:	e9 8e 03 00 00       	jmp    0x40c039
40bcab:	83 e8 58             	sub    $0x58,%eax
40bcae:	0f 84 39 02 00 00    	je     0x40beed
40bcb4:	48                   	dec    %eax
40bcb5:	48                   	dec    %eax
40bcb6:	74 5d                	je     0x40bd15
40bcb8:	2b c1                	sub    %ecx,%eax
40bcba:	0f 84 64 ff ff ff    	je     0x40bc24
40bcc0:	48                   	dec    %eax
40bcc1:	48                   	dec    %eax
40bcc2:	0f 85 9e 03 00 00    	jne    0x40c066
40bcc8:	83 c7 04             	add    $0x4,%edi
40bccb:	66 f7 45 e8 10 08    	testw  $0x810,-0x18(%ebp)
40bcd1:	89 7d d4             	mov    %edi,-0x2c(%ebp)
40bcd4:	74 27                	je     0x40bcfd
40bcd6:	0f b7 47 fc          	movzwl -0x4(%edi),%eax
40bcda:	50                   	push   %eax
40bcdb:	68 00 02 00 00       	push   $0x200
40bce0:	8d 45 ec             	lea    -0x14(%ebp),%eax
40bce3:	50                   	push   %eax
40bce4:	8d 45 d8             	lea    -0x28(%ebp),%eax
40bce7:	50                   	push   %eax
40bce8:	e8 55 30 00 00       	call   0x40ed42
40bced:	83 c4 10             	add    $0x10,%esp
40bcf0:	85 c0                	test   %eax,%eax
40bcf2:	74 16                	je     0x40bd0a
40bcf4:	c7 45 b0 01 00 00 00 	movl   $0x1,-0x50(%ebp)
40bcfb:	eb 0d                	jmp    0x40bd0a
40bcfd:	8a 47 fc             	mov    -0x4(%edi),%al
40bd00:	88 45 ec             	mov    %al,-0x14(%ebp)
40bd03:	c7 45 d8 01 00 00 00 	movl   $0x1,-0x28(%ebp)
40bd0a:	8d 45 ec             	lea    -0x14(%ebp),%eax
40bd0d:	89 45 dc             	mov    %eax,-0x24(%ebp)
40bd10:	e9 51 03 00 00       	jmp    0x40c066
40bd15:	8b 07                	mov    (%edi),%eax
40bd17:	83 c7 04             	add    $0x4,%edi
40bd1a:	3b c6                	cmp    %esi,%eax
40bd1c:	89 7d d4             	mov    %edi,-0x2c(%ebp)
40bd1f:	74 2e                	je     0x40bd4f
40bd21:	8b 48 04             	mov    0x4(%eax),%ecx
40bd24:	3b ce                	cmp    %esi,%ecx
40bd26:	74 27                	je     0x40bd4f
40bd28:	66 f7 45 e8 00 08    	testw  $0x800,-0x18(%ebp)
40bd2e:	0f bf 00             	movswl (%eax),%eax
40bd31:	89 4d dc             	mov    %ecx,-0x24(%ebp)
40bd34:	74 11                	je     0x40bd47
40bd36:	99                   	cltd
40bd37:	2b c2                	sub    %edx,%eax
40bd39:	d1 f8                	sar    $1,%eax
40bd3b:	c7 45 bc 01 00 00 00 	movl   $0x1,-0x44(%ebp)
40bd42:	e9 1c 03 00 00       	jmp    0x40c063
40bd47:	89 75 bc             	mov    %esi,-0x44(%ebp)
40bd4a:	e9 14 03 00 00       	jmp    0x40c063
40bd4f:	a1 70 c9 41 00       	mov    0x41c970,%eax
40bd54:	89 45 dc             	mov    %eax,-0x24(%ebp)
40bd57:	50                   	push   %eax
40bd58:	e8 03 aa ff ff       	call   0x406760
40bd5d:	59                   	pop    %ecx
40bd5e:	e9 00 03 00 00       	jmp    0x40c063
40bd63:	83 f8 70             	cmp    $0x70,%eax
40bd66:	0f 8f 86 01 00 00    	jg     0x40bef2
40bd6c:	0f 84 74 01 00 00    	je     0x40bee6
40bd72:	83 f8 65             	cmp    $0x65,%eax
40bd75:	0f 8c eb 02 00 00    	jl     0x40c066
40bd7b:	83 f8 67             	cmp    $0x67,%eax
40bd7e:	0f 8e a0 fe ff ff    	jle    0x40bc24
40bd84:	83 f8 69             	cmp    $0x69,%eax
40bd87:	74 59                	je     0x40bde2
40bd89:	83 f8 6e             	cmp    $0x6e,%eax
40bd8c:	74 1f                	je     0x40bdad
40bd8e:	83 f8 6f             	cmp    $0x6f,%eax
40bd91:	0f 85 cf 02 00 00    	jne    0x40c066
40bd97:	f6 45 e8 80          	testb  $0x80,-0x18(%ebp)
40bd9b:	c7 45 d8 08 00 00 00 	movl   $0x8,-0x28(%ebp)
40bda2:	74 49                	je     0x40bded
40bda4:	81 4d e8 00 02 00 00 	orl    $0x200,-0x18(%ebp)
40bdab:	eb 40                	jmp    0x40bded
40bdad:	8b 37                	mov    (%edi),%esi
40bdaf:	83 c7 04             	add    $0x4,%edi
40bdb2:	89 7d d4             	mov    %edi,-0x2c(%ebp)
40bdb5:	e8 51 81 00 00       	call   0x413f0b
40bdba:	85 c0                	test   %eax,%eax
40bdbc:	0f 84 d5 03 00 00    	je     0x40c197
40bdc2:	f6 45 e8 20          	testb  $0x20,-0x18(%ebp)
40bdc6:	74 09                	je     0x40bdd1
40bdc8:	66 8b 45 cc          	mov    -0x34(%ebp),%ax
40bdcc:	66 89 06             	mov    %ax,(%esi)
40bdcf:	eb 05                	jmp    0x40bdd6
40bdd1:	8b 45 cc             	mov    -0x34(%ebp),%eax
40bdd4:	89 06                	mov    %eax,(%esi)
40bdd6:	c7 45 b0 01 00 00 00 	movl   $0x1,-0x50(%ebp)
40bddd:	e9 89 03 00 00       	jmp    0x40c16b
40bde2:	83 4d e8 40          	orl    $0x40,-0x18(%ebp)
40bde6:	c7 45 d8 0a 00 00 00 	movl   $0xa,-0x28(%ebp)
40bded:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40bdf0:	66 85 c9             	test   %cx,%cx
40bdf3:	0f 89 43 01 00 00    	jns    0x40bf3c
40bdf9:	8b 07                	mov    (%edi),%eax
40bdfb:	8b 57 04             	mov    0x4(%edi),%edx
40bdfe:	83 c7 08             	add    $0x8,%edi