40f7a3:	8b 5d 08             	mov    0x8(%ebp),%ebx
40f7a6:	8d 4d f9             	lea    -0x7(%ebp),%ecx
40f7a9:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40f7ac:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40f7af:	89 75 dc             	mov    %esi,-0x24(%ebp)
40f7b2:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40f7b5:	eb 07                	jmp    0x40f7be
40f7b7:	8b ce                	mov    %esi,%ecx
40f7b9:	e8 90 3a 00 00       	call   0x41324e
40f7be:	53                   	push   %ebx
40f7bf:	88 45 f9             	mov    %al,-0x7(%ebp)
40f7c2:	0f b6 c0             	movzbl %al,%eax
40f7c5:	6a 08                	push   $0x8
40f7c7:	50                   	push   %eax
40f7c8:	e8 12 46 00 00       	call   0x413ddf
40f7cd:	83 c4 0c             	add    $0xc,%esp
40f7d0:	85 c0                	test   %eax,%eax
40f7d2:	75 e3                	jne    0x40f7b7
40f7d4:	8a 4d f9             	mov    -0x7(%ebp),%cl
40f7d7:	8b 55 10             	mov    0x10(%ebp),%edx
40f7da:	80 f9 2d             	cmp    $0x2d,%cl
40f7dd:	0f 94 c0             	sete   %al
40f7e0:	88 82 08 03 00 00    	mov    %al,0x308(%edx)
40f7e6:	80 f9 2d             	cmp    $0x2d,%cl
40f7e9:	74 05                	je     0x40f7f0
40f7eb:	80 f9 2b             	cmp    $0x2b,%cl
40f7ee:	75 0c                	jne    0x40f7fc
40f7f0:	8b ce                	mov    %esi,%ecx
40f7f2:	e8 57 3a 00 00       	call   0x41324e
40f7f7:	8a c8                	mov    %al,%cl
40f7f9:	88 4d f9             	mov    %cl,-0x7(%ebp)
40f7fc:	80 f9 49             	cmp    $0x49,%cl
40f7ff:	0f 84 b7 03 00 00    	je     0x40fbbc
40f805:	80 f9 69             	cmp    $0x69,%cl
40f808:	0f 84 ae 03 00 00    	je     0x40fbbc
40f80e:	80 f9 4e             	cmp    $0x4e,%cl
40f811:	0f 84 93 03 00 00    	je     0x40fbaa
40f817:	80 f9 6e             	cmp    $0x6e,%cl
40f81a:	0f 84 8a 03 00 00    	je     0x40fbaa
40f820:	33 db                	xor    %ebx,%ebx
40f822:	88 5d ff             	mov    %bl,-0x1(%ebp)
40f825:	80 f9 30             	cmp    $0x30,%cl
40f828:	75 43                	jne    0x40f86d
40f82a:	8b 46 14             	mov    0x14(%esi),%eax
40f82d:	8b ce                	mov    %esi,%ecx
40f82f:	8b 7e 10             	mov    0x10(%esi),%edi
40f832:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f835:	e8 14 3a 00 00       	call   0x41324e
40f83a:	88 45 f4             	mov    %al,-0xc(%ebp)
40f83d:	3c 78                	cmp    $0x78,%al
40f83f:	74 13                	je     0x40f854
40f841:	3c 58                	cmp    $0x58,%al
40f843:	74 0f                	je     0x40f854
40f845:	ff 75 f4             	push   -0xc(%ebp)
40f848:	8b ce                	mov    %esi,%ecx
40f84a:	e8 9b 43 00 00       	call   0x413bea
40f84f:	8a 4d f9             	mov    -0x7(%ebp),%cl
40f852:	eb 19                	jmp    0x40f86d
40f854:	8b ce                	mov    %esi,%ecx
40f856:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
40f85a:	e8 ef 39 00 00       	call   0x41324e
40f85f:	8a c8                	mov    %al,%cl
40f861:	89 7d e8             	mov    %edi,-0x18(%ebp)
40f864:	8b 45 f0             	mov    -0x10(%ebp),%eax
40f867:	88 4d f9             	mov    %cl,-0x7(%ebp)
40f86a:	89 45 ec             	mov    %eax,-0x14(%ebp)
40f86d:	8b 55 10             	mov    0x10(%ebp),%edx
40f870:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40f873:	88 5d fe             	mov    %bl,-0x2(%ebp)
40f876:	8d 7a 08             	lea    0x8(%edx),%edi
40f879:	80 f9 30             	cmp    $0x30,%cl
40f87c:	75 18                	jne    0x40f896
40f87e:	c6 45 fe 01          	movb   $0x1,-0x2(%ebp)
40f882:	8b ce                	mov    %esi,%ecx
40f884:	e8 c5 39 00 00       	call   0x41324e
40f889:	8a c8                	mov    %al,%cl
40f88b:	88 4d f9             	mov    %cl,-0x7(%ebp)
40f88e:	80 f9 30             	cmp    $0x30,%cl
40f891:	74 ef                	je     0x40f882
40f893:	8b 55 10             	mov    0x10(%ebp),%edx
40f896:	33 db                	xor    %ebx,%ebx
40f898:	38 5d ff             	cmp    %bl,-0x1(%ebp)
40f89b:	0f 94 c3             	sete   %bl
40f89e:	4b                   	dec    %ebx
40f89f:	83 e3 06             	and    $0x6,%ebx
40f8a2:	83 c3 09             	add    $0x9,%ebx
40f8a5:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40f8a8:	8a c1                	mov    %cl,%al
40f8aa:	2c 30                	sub    $0x30,%al
40f8ac:	3c 09                	cmp    $0x9,%al
40f8ae:	77 08                	ja     0x40f8b8
40f8b0:	0f be c1             	movsbl %cl,%eax
40f8b3:	83 e8 30             	sub    $0x30,%eax
40f8b6:	eb 23                	jmp    0x40f8db
40f8b8:	8a c1                	mov    %cl,%al
40f8ba:	2c 61                	sub    $0x61,%al
40f8bc:	3c 19                	cmp    $0x19,%al
40f8be:	77 08                	ja     0x40f8c8
40f8c0:	0f be c1             	movsbl %cl,%eax
40f8c3:	83 e8 57             	sub    $0x57,%eax
40f8c6:	eb 13                	jmp    0x40f8db
40f8c8:	8a c1                	mov    %cl,%al
40f8ca:	2c 41                	sub    $0x41,%al
40f8cc:	3c 19                	cmp    $0x19,%al
40f8ce:	77 08                	ja     0x40f8d8
40f8d0:	0f be c1             	movsbl %cl,%eax
40f8d3:	83 e8 37             	sub    $0x37,%eax
40f8d6:	eb 03                	jmp    0x40f8db
40f8d8:	83 c8 ff             	or     $0xffffffff,%eax
40f8db:	3b c3                	cmp    %ebx,%eax
40f8dd:	77 25                	ja     0x40f904
40f8df:	8d 8a 08 03 00 00    	lea    0x308(%edx),%ecx
40f8e5:	c6 45 fe 01          	movb   $0x1,-0x2(%ebp)
40f8e9:	3b f9                	cmp    %ecx,%edi
40f8eb:	74 03                	je     0x40f8f0
40f8ed:	88 07                	mov    %al,(%edi)
40f8ef:	47                   	inc    %edi
40f8f0:	ff 45 f4             	incl   -0xc(%ebp)
40f8f3:	8b ce                	mov    %esi,%ecx
40f8f5:	e8 54 39 00 00       	call   0x41324e
40f8fa:	8b 55 10             	mov    0x10(%ebp),%edx
40f8fd:	8a c8                	mov    %al,%cl
40f8ff:	88 4d f9             	mov    %cl,-0x7(%ebp)
40f902:	eb a4                	jmp    0x40f8a8
40f904:	8b 45 08             	mov    0x8(%ebp),%eax
40f907:	6a 00                	push   $0x0
40f909:	5b                   	pop    %ebx
40f90a:	8b 00                	mov    (%eax),%eax
40f90c:	8b 80 88 00 00 00    	mov    0x88(%eax),%eax
40f912:	8b 00                	mov    (%eax),%eax
40f914:	3a 08                	cmp    (%eax),%cl
40f916:	0f 85 98 00 00 00    	jne    0x40f9b4
40f91c:	8b ce                	mov    %esi,%ecx
40f91e:	e8 2b 39 00 00       	call   0x41324e
40f923:	8b 55 10             	mov    0x10(%ebp),%edx
40f926:	8a c8                	mov    %al,%cl
40f928:	88 4d f9             	mov    %cl,-0x7(%ebp)
40f92b:	8d 42 08             	lea    0x8(%edx),%eax
40f92e:	3b f8                	cmp    %eax,%edi
40f930:	75 24                	jne    0x40f956
40f932:	80 f9 30             	cmp    $0x30,%cl
40f935:	75 1f                	jne    0x40f956
40f937:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40f93a:	c6 45 fe 01          	movb   $0x1,-0x2(%ebp)
40f93e:	8b ce                	mov    %esi,%ecx
40f940:	4b                   	dec    %ebx
40f941:	e8 08 39 00 00       	call   0x41324e
40f946:	8a c8                	mov    %al,%cl
40f948:	88 4d f9             	mov    %cl,-0x7(%ebp)
40f94b:	80 f9 30             	cmp    $0x30,%cl
40f94e:	74 ee                	je     0x40f93e
40f950:	8b 55 10             	mov    0x10(%ebp),%edx
40f953:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40f956:	8b 5d f0             	mov    -0x10(%ebp),%ebx
40f959:	8a c1                	mov    %cl,%al
40f95b:	2c 30                	sub    $0x30,%al
40f95d:	3c 09                	cmp    $0x9,%al
40f95f:	77 08                	ja     0x40f969
40f961:	0f be c1             	movsbl %cl,%eax
40f964:	83 e8 30             	sub    $0x30,%eax
40f967:	eb 23                	jmp    0x40f98c
40f969:	8a c1                	mov    %cl,%al
40f96b:	2c 61                	sub    $0x61,%al
40f96d:	3c 19                	cmp    $0x19,%al
40f96f:	77 08                	ja     0x40f979
40f971:	0f be c1             	movsbl %cl,%eax
40f974:	83 e8 57             	sub    $0x57,%eax
40f977:	eb 13                	jmp    0x40f98c
40f979:	8a c1                	mov    %cl,%al
40f97b:	2c 41                	sub    $0x41,%al
40f97d:	3c 19                	cmp    $0x19,%al
40f97f:	77 08                	ja     0x40f989
40f981:	0f be c1             	movsbl %cl,%eax
40f984:	83 e8 37             	sub    $0x37,%eax
40f987:	eb 03                	jmp    0x40f98c
40f989:	83 c8 ff             	or     $0xffffffff,%eax
40f98c:	3b c3                	cmp    %ebx,%eax
40f98e:	77 22                	ja     0x40f9b2
40f990:	8d 8a 08 03 00 00    	lea    0x308(%edx),%ecx
40f996:	c6 45 fe 01          	movb   $0x1,-0x2(%ebp)
40f99a:	3b f9                	cmp    %ecx,%edi
40f99c:	74 03                	je     0x40f9a1
40f99e:	88 07                	mov    %al,(%edi)
40f9a0:	47                   	inc    %edi
40f9a1:	8b ce                	mov    %esi,%ecx
40f9a3:	e8 a6 38 00 00       	call   0x41324e
40f9a8:	8b 55 10             	mov    0x10(%ebp),%edx
40f9ab:	8a c8                	mov    %al,%cl
40f9ad:	88 4d f9             	mov    %cl,-0x7(%ebp)
40f9b0:	eb a7                	jmp    0x40f959
40f9b2:	33 db                	xor    %ebx,%ebx
40f9b4:	80 7d fe 00          	cmpb   $0x0,-0x2(%ebp)
40f9b8:	75 24                	jne    0x40f9de
40f9ba:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40f9bd:	e8 78 0e 00 00       	call   0x41083a
40f9c2:	84 c0                	test   %al,%al
40f9c4:	0f 84 bb 01 00 00    	je     0x40fb85
40f9ca:	33 c0                	xor    %eax,%eax
40f9cc:	38 45 ff             	cmp    %al,-0x1(%ebp)
40f9cf:	0f 94 c0             	sete   %al
40f9d2:	48                   	dec    %eax
40f9d3:	83 e0 fb             	and    $0xfffffffb,%eax
40f9d6:	83 c0 07             	add    $0x7,%eax
40f9d9:	e9 f1 01 00 00       	jmp    0x40fbcf
40f9de:	ff 75 f9             	push   -0x7(%ebp)
40f9e1:	8b ce                	mov    %esi,%ecx
40f9e3:	e8 02 42 00 00       	call   0x413bea
40f9e8:	8b 46 10             	mov    0x10(%esi),%eax
40f9eb:	8b ce                	mov    %esi,%ecx
40f9ed:	89 45 e8             	mov    %eax,-0x18(%ebp)
40f9f0:	8b 46 14             	mov    0x14(%esi),%eax
40f9f3:	89 45 ec             	mov    %eax,-0x14(%ebp)
40f9f6:	e8 53 38 00 00       	call   0x41324e
40f9fb:	88 45 f9             	mov    %al,-0x7(%ebp)
40f9fe:	8a cb                	mov    %bl,%cl
40fa00:	3c 45                	cmp    $0x45,%al
40fa02:	74 11                	je     0x40fa15
40fa04:	3c 50                	cmp    $0x50,%al
40fa06:	74 08                	je     0x40fa10
40fa08:	3c 65                	cmp    $0x65,%al
40fa0a:	74 09                	je     0x40fa15
40fa0c:	3c 70                	cmp    $0x70,%al
40fa0e:	75 0c                	jne    0x40fa1c
40fa10:	8a 4d ff             	mov    -0x1(%ebp),%cl
40fa13:	eb 07                	jmp    0x40fa1c
40fa15:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
40fa19:	0f 94 c1             	sete   %cl
40fa1c:	84 c9                	test   %cl,%cl
40fa1e:	0f 84 0d 01 00 00    	je     0x40fb31
40fa24:	8b ce                	mov    %esi,%ecx
40fa26:	e8 23 38 00 00       	call   0x41324e
40fa2b:	8a c8                	mov    %al,%cl
40fa2d:	80 f9 2d             	cmp    $0x2d,%cl
40fa30:	88 4d f9             	mov    %cl,-0x7(%ebp)
40fa33:	0f 94 45 fd          	sete   -0x3(%ebp)
40fa37:	80 f9 2b             	cmp    $0x2b,%cl
40fa3a:	74 05                	je     0x40fa41
40fa3c:	80 f9 2d             	cmp    $0x2d,%cl
40fa3f:	75 0c                	jne    0x40fa4d
40fa41:	8b ce                	mov    %esi,%ecx
40fa43:	e8 06 38 00 00       	call   0x41324e
40fa48:	8a c8                	mov    %al,%cl
40fa4a:	88 4d f9             	mov    %cl,-0x7(%ebp)
40fa4d:	88 5d fe             	mov    %bl,-0x2(%ebp)
40fa50:	80 f9 30             	cmp    $0x30,%cl
40fa53:	75 15                	jne    0x40fa6a
40fa55:	c6 45 fe 01          	movb   $0x1,-0x2(%ebp)
40fa59:	8b ce                	mov    %esi,%ecx
40fa5b:	e8 ee 37 00 00       	call   0x41324e
40fa60:	8a c8                	mov    %al,%cl
40fa62:	88 4d f9             	mov    %cl,-0x7(%ebp)
40fa65:	80 f9 30             	cmp    $0x30,%cl
40fa68:	74 ef                	je     0x40fa59
40fa6a:	8a c1                	mov    %cl,%al
40fa6c:	2c 30                	sub    $0x30,%al
40fa6e:	3c 09                	cmp    $0x9,%al
40fa70:	77 08                	ja     0x40fa7a
40fa72:	0f be c1             	movsbl %cl,%eax
40fa75:	83 e8 30             	sub    $0x30,%eax
40fa78:	eb 23                	jmp    0x40fa9d
40fa7a:	8a c1                	mov    %cl,%al
40fa7c:	2c 61                	sub    $0x61,%al
40fa7e:	3c 19                	cmp    $0x19,%al
40fa80:	77 08                	ja     0x40fa8a
40fa82:	0f be c1             	movsbl %cl,%eax
40fa85:	83 e8 57             	sub    $0x57,%eax
40fa88:	eb 13                	jmp    0x40fa9d
40fa8a:	8a c1                	mov    %cl,%al
40fa8c:	2c 41                	sub    $0x41,%al
40fa8e:	3c 19                	cmp    $0x19,%al
40fa90:	77 08                	ja     0x40fa9a
40fa92:	0f be c1             	movsbl %cl,%eax
40fa95:	83 e8 37             	sub    $0x37,%eax
40fa98:	eb 03                	jmp    0x40fa9d
40fa9a:	83 c8 ff             	or     $0xffffffff,%eax
40fa9d:	83 f8 0a             	cmp    $0xa,%eax
40faa0:	73 24                	jae    0x40fac6
40faa2:	6b db 0a             	imul   $0xa,%ebx,%ebx
40faa5:	c6 45 fe 01          	movb   $0x1,-0x2(%ebp)
40faa9:	03 d8                	add    %eax,%ebx
40faab:	81 fb 50 14 00 00    	cmp    $0x1450,%ebx
40fab1:	7f 0e                	jg     0x40fac1
40fab3:	8b ce                	mov    %esi,%ecx
40fab5:	e8 94 37 00 00       	call   0x41324e
40faba:	8a c8                	mov    %al,%cl
40fabc:	88 4d f9             	mov    %cl,-0x7(%ebp)
40fabf:	eb a9                	jmp    0x40fa6a
40fac1:	bb 51 14 00 00       	mov    $0x1451,%ebx
40fac6:	8a c1                	mov    %cl,%al
40fac8:	2c 30                	sub    $0x30,%al
40faca:	3c 09                	cmp    $0x9,%al
40facc:	77 08                	ja     0x40fad6
40face:	0f be c1             	movsbl %cl,%eax
40fad1:	83 e8 30             	sub    $0x30,%eax
40fad4:	eb 23                	jmp    0x40faf9
40fad6:	8a c1                	mov    %cl,%al
40fad8:	2c 61                	sub    $0x61,%al
40fada:	3c 19                	cmp    $0x19,%al
40fadc:	77 08                	ja     0x40fae6
40fade:	0f be c1             	movsbl %cl,%eax
40fae1:	83 e8 57             	sub    $0x57,%eax
40fae4:	eb 13                	jmp    0x40faf9
40fae6:	8a c1                	mov    %cl,%al
40fae8:	2c 41                	sub    $0x41,%al
40faea:	3c 19                	cmp    $0x19,%al
40faec:	77 08                	ja     0x40faf6
40faee:	0f be c1             	movsbl %cl,%eax
40faf1:	83 e8 37             	sub    $0x37,%eax
40faf4:	eb 03                	jmp    0x40faf9
40faf6:	83 c8 ff             	or     $0xffffffff,%eax
40faf9:	83 f8 0a             	cmp    $0xa,%eax
40fafc:	73 0e                	jae    0x40fb0c
40fafe:	8b ce                	mov    %esi,%ecx
40fb00:	e8 49 37 00 00       	call   0x41324e
40fb05:	8a c8                	mov    %al,%cl
40fb07:	88 4d f9             	mov    %cl,-0x7(%ebp)
40fb0a:	eb ba                	jmp    0x40fac6
40fb0c:	80 7d fd 00          	cmpb   $0x0,-0x3(%ebp)
40fb10:	74 02                	je     0x40fb14
40fb12:	f7 db                	neg    %ebx
40fb14:	8a 45 fe             	mov    -0x2(%ebp),%al
40fb17:	84 c0                	test   %al,%al
40fb19:	75 16                	jne    0x40fb31
40fb1b:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40fb1e:	e8 17 0d 00 00       	call   0x41083a
40fb23:	84 c0                	test   %al,%al
40fb25:	74 5e                	je     0x40fb85
40fb27:	8b ce                	mov    %esi,%ecx
40fb29:	e8 20 37 00 00       	call   0x41324e
40fb2e:	88 45 f9             	mov    %al,-0x7(%ebp)
40fb31:	ff 75 f9             	push   -0x7(%ebp)
40fb34:	8b ce                	mov    %esi,%ecx
40fb36:	e8 af 40 00 00       	call   0x413bea
40fb3b:	8b 75 10             	mov    0x10(%ebp),%esi
40fb3e:	8d 56 08             	lea    0x8(%esi),%edx
40fb41:	3b fa                	cmp    %edx,%edi
40fb43:	74 60                	je     0x40fba5
40fb45:	80 7f ff 00          	cmpb   $0x0,-0x1(%edi)
40fb49:	75 05                	jne    0x40fb50
40fb4b:	4f                   	dec    %edi
40fb4c:	3b fa                	cmp    %edx,%edi
40fb4e:	75 f5                	jne    0x40fb45
40fb50:	3b fa                	cmp    %edx,%edi
40fb52:	74 51                	je     0x40fba5
40fb54:	81 fb 50 14 00 00    	cmp    $0x1450,%ebx
40fb5a:	7f 25                	jg     0x40fb81
40fb5c:	81 fb b0 eb ff ff    	cmp    $0xffffebb0,%ebx
40fb62:	7c 2d                	jl     0x40fb91
40fb64:	8a 4d ff             	mov    -0x1(%ebp),%cl
40fb67:	33 c0                	xor    %eax,%eax