40d813:	75 09                	jne    0x40d81e
40d815:	8b c2                	mov    %edx,%eax
40d817:	c1 e8 05             	shr    $0x5,%eax
40d81a:	84 c3                	test   %al,%bl
40d81c:	75 02                	jne    0x40d820
40d81e:	32 db                	xor    %bl,%bl
40d820:	80 f9 61             	cmp    $0x61,%cl
40d823:	74 09                	je     0x40d82e
40d825:	80 f9 41             	cmp    $0x41,%cl
40d828:	74 04                	je     0x40d82e
40d82a:	32 c0                	xor    %al,%al
40d82c:	eb 02                	jmp    0x40d830
40d82e:	b0 01                	mov    $0x1,%al
40d830:	84 db                	test   %bl,%bl
40d832:	75 04                	jne    0x40d838
40d834:	84 c0                	test   %al,%al
40d836:	74 27                	je     0x40d85f
40d838:	c6 44 3d fc 30       	movb   $0x30,-0x4(%ebp,%edi,1)
40d83d:	80 f9 58             	cmp    $0x58,%cl
40d840:	74 09                	je     0x40d84b
40d842:	80 f9 41             	cmp    $0x41,%cl
40d845:	74 04                	je     0x40d84b
40d847:	32 c0                	xor    %al,%al
40d849:	eb 02                	jmp    0x40d84d
40d84b:	b0 01                	mov    $0x1,%al
40d84d:	84 c0                	test   %al,%al
40d84f:	0f 94 c0             	sete   %al
40d852:	fe c8                	dec    %al
40d854:	24 e0                	and    $0xe0,%al
40d856:	04 78                	add    $0x78,%al
40d858:	88 44 3d fd          	mov    %al,-0x3(%ebp,%edi,1)
40d85c:	83 c7 02             	add    $0x2,%edi
40d85f:	8b 5e 24             	mov    0x24(%esi),%ebx
40d862:	2b 5e 38             	sub    0x38(%esi),%ebx
40d865:	2b df                	sub    %edi,%ebx
40d867:	f6 c2 0c             	test   $0xc,%dl
40d86a:	75 16                	jne    0x40d882
40d86c:	8d 46 18             	lea    0x18(%esi),%eax
40d86f:	50                   	push   %eax
40d870:	53                   	push   %ebx
40d871:	8d 86 48 04 00 00    	lea    0x448(%esi),%eax
40d877:	6a 20                	push   $0x20
40d879:	50                   	push   %eax
40d87a:	e8 da ec ff ff       	call   0x40c559
40d87f:	83 c4 10             	add    $0x10,%esp
40d882:	ff 76 0c             	push   0xc(%esi)
40d885:	8d 46 18             	lea    0x18(%esi),%eax
40d888:	50                   	push   %eax
40d889:	57                   	push   %edi
40d88a:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d88d:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
40d893:	50                   	push   %eax
40d894:	e8 b9 17 00 00       	call   0x40f052
40d899:	8b 4e 20             	mov    0x20(%esi),%ecx
40d89c:	8d 7e 18             	lea    0x18(%esi),%edi
40d89f:	8b c1                	mov    %ecx,%eax
40d8a1:	c1 e8 03             	shr    $0x3,%eax
40d8a4:	a8 01                	test   $0x1,%al
40d8a6:	74 1b                	je     0x40d8c3
40d8a8:	c1 e9 02             	shr    $0x2,%ecx
40d8ab:	f6 c1 01             	test   $0x1,%cl
40d8ae:	75 13                	jne    0x40d8c3
40d8b0:	57                   	push   %edi
40d8b1:	53                   	push   %ebx
40d8b2:	8d 86 48 04 00 00    	lea    0x448(%esi),%eax
40d8b8:	6a 30                	push   $0x30
40d8ba:	50                   	push   %eax
40d8bb:	e8 99 ec ff ff       	call   0x40c559
40d8c0:	83 c4 10             	add    $0x10,%esp
40d8c3:	6a 00                	push   $0x0
40d8c5:	8b ce                	mov    %esi,%ecx
40d8c7:	e8 ad 15 00 00       	call   0x40ee79
40d8cc:	83 3f 00             	cmpl   $0x0,(%edi)
40d8cf:	7c 1d                	jl     0x40d8ee
40d8d1:	8b 46 20             	mov    0x20(%esi),%eax
40d8d4:	c1 e8 02             	shr    $0x2,%eax
40d8d7:	a8 01                	test   $0x1,%al
40d8d9:	74 13                	je     0x40d8ee
40d8db:	57                   	push   %edi
40d8dc:	53                   	push   %ebx
40d8dd:	8d 86 48 04 00 00    	lea    0x448(%esi),%eax
40d8e3:	6a 20                	push   $0x20
40d8e5:	50                   	push   %eax
40d8e6:	e8 6e ec ff ff       	call   0x40c559
40d8eb:	83 c4 10             	add    $0x10,%esp
40d8ee:	b0 01                	mov    $0x1,%al
40d8f0:	5f                   	pop    %edi
40d8f1:	5e                   	pop    %esi
40d8f2:	5b                   	pop    %ebx
40d8f3:	8b e5                	mov    %ebp,%esp
40d8f5:	5d                   	pop    %ebp
40d8f6:	c3                   	ret
40d8f7:	8b ff                	mov    %edi,%edi
40d8f9:	55                   	push   %ebp
40d8fa:	8b ec                	mov    %esp,%ebp
40d8fc:	51                   	push   %ecx
40d8fd:	53                   	push   %ebx
40d8fe:	56                   	push   %esi
40d8ff:	8b f1                	mov    %ecx,%esi
40d901:	33 db                	xor    %ebx,%ebx
40d903:	43                   	inc    %ebx
40d904:	33 c9                	xor    %ecx,%ecx
40d906:	0f be 46 31          	movsbl 0x31(%esi),%eax
40d90a:	83 f8 64             	cmp    $0x64,%eax
40d90d:	7f 6c                	jg     0x40d97b
40d90f:	0f 84 93 00 00 00    	je     0x40d9a8
40d915:	83 f8 58             	cmp    $0x58,%eax
40d918:	7f 3e                	jg     0x40d958
40d91a:	74 37                	je     0x40d953
40d91c:	83 f8 41             	cmp    $0x41,%eax
40d91f:	0f 84 93 00 00 00    	je     0x40d9b8
40d925:	83 f8 43             	cmp    $0x43,%eax
40d928:	74 3e                	je     0x40d968
40d92a:	83 f8 44             	cmp    $0x44,%eax
40d92d:	7e 1d                	jle    0x40d94c
40d92f:	83 f8 47             	cmp    $0x47,%eax
40d932:	0f 8e 80 00 00 00    	jle    0x40d9b8
40d938:	83 f8 53             	cmp    $0x53,%eax
40d93b:	75 0f                	jne    0x40d94c
40d93d:	8b ce                	mov    %esi,%ecx
40d93f:	e8 76 12 00 00       	call   0x40ebba
40d944:	84 c0                	test   %al,%al
40d946:	0f 85 9f 00 00 00    	jne    0x40d9eb
40d94c:	32 c0                	xor    %al,%al
40d94e:	e9 cd 01 00 00       	jmp    0x40db20
40d953:	53                   	push   %ebx
40d954:	6a 10                	push   $0x10
40d956:	eb 57                	jmp    0x40d9af
40d958:	83 e8 5a             	sub    $0x5a,%eax
40d95b:	74 15                	je     0x40d972
40d95d:	83 e8 07             	sub    $0x7,%eax
40d960:	74 56                	je     0x40d9b8
40d962:	48                   	dec    %eax
40d963:	83 e8 01             	sub    $0x1,%eax
40d966:	75 e4                	jne    0x40d94c
40d968:	51                   	push   %ecx
40d969:	8b ce                	mov    %esi,%ecx
40d96b:	e8 d0 0a 00 00       	call   0x40e440
40d970:	eb d2                	jmp    0x40d944
40d972:	8b ce                	mov    %esi,%ecx
40d974:	e8 4b 05 00 00       	call   0x40dec4
40d979:	eb c9                	jmp    0x40d944
40d97b:	83 f8 70             	cmp    $0x70,%eax
40d97e:	7f 4d                	jg     0x40d9cd
40d980:	74 3f                	je     0x40d9c1
40d982:	83 f8 67             	cmp    $0x67,%eax
40d985:	7e 31                	jle    0x40d9b8
40d987:	83 f8 69             	cmp    $0x69,%eax
40d98a:	74 1c                	je     0x40d9a8
40d98c:	83 f8 6e             	cmp    $0x6e,%eax
40d98f:	74 0e                	je     0x40d99f
40d991:	83 f8 6f             	cmp    $0x6f,%eax
40d994:	75 b6                	jne    0x40d94c
40d996:	8b ce                	mov    %esi,%ecx
40d998:	e8 24 11 00 00       	call   0x40eac1
40d99d:	eb a5                	jmp    0x40d944
40d99f:	8b ce                	mov    %esi,%ecx
40d9a1:	e8 14 10 00 00       	call   0x40e9ba
40d9a6:	eb 9c                	jmp    0x40d944
40d9a8:	83 4e 20 10          	orl    $0x10,0x20(%esi)
40d9ac:	51                   	push   %ecx
40d9ad:	6a 0a                	push   $0xa
40d9af:	8b ce                	mov    %esi,%ecx
40d9b1:	e8 fc 0c 00 00       	call   0x40e6b2
40d9b6:	eb 8c                	jmp    0x40d944
40d9b8:	8b ce                	mov    %esi,%ecx
40d9ba:	e8 25 07 00 00       	call   0x40e0e4
40d9bf:	eb 83                	jmp    0x40d944
40d9c1:	8b ce                	mov    %esi,%ecx
40d9c3:	e8 4f 11 00 00       	call   0x40eb17
40d9c8:	e9 77 ff ff ff       	jmp    0x40d944
40d9cd:	83 e8 73             	sub    $0x73,%eax
40d9d0:	0f 84 67 ff ff ff    	je     0x40d93d
40d9d6:	48                   	dec    %eax
40d9d7:	83 e8 01             	sub    $0x1,%eax
40d9da:	74 d0                	je     0x40d9ac
40d9dc:	83 e8 03             	sub    $0x3,%eax
40d9df:	0f 85 67 ff ff ff    	jne    0x40d94c
40d9e5:	51                   	push   %ecx
40d9e6:	e9 69 ff ff ff       	jmp    0x40d954
40d9eb:	80 7e 30 00          	cmpb   $0x0,0x30(%esi)
40d9ef:	74 07                	je     0x40d9f8
40d9f1:	8a c3                	mov    %bl,%al
40d9f3:	e9 28 01 00 00       	jmp    0x40db20
40d9f8:	8b 56 20             	mov    0x20(%esi),%edx
40d9fb:	33 c0                	xor    %eax,%eax
40d9fd:	57                   	push   %edi
40d9fe:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
40da02:	8b f8                	mov    %eax,%edi
40da04:	88 45 fe             	mov    %al,-0x2(%ebp)
40da07:	8b c2                	mov    %edx,%eax
40da09:	c1 e8 04             	shr    $0x4,%eax
40da0c:	84 c3                	test   %al,%bl
40da0e:	74 27                	je     0x40da37
40da10:	8b c2                	mov    %edx,%eax
40da12:	c1 e8 06             	shr    $0x6,%eax
40da15:	84 c3                	test   %al,%bl
40da17:	74 06                	je     0x40da1f
40da19:	c6 45 fc 2d          	movb   $0x2d,-0x4(%ebp)
40da1d:	eb 16                	jmp    0x40da35
40da1f:	84 d3                	test   %dl,%bl
40da21:	74 06                	je     0x40da29
40da23:	c6 45 fc 2b          	movb   $0x2b,-0x4(%ebp)
40da27:	eb 0c                	jmp    0x40da35
40da29:	8b c2                	mov    %edx,%eax
40da2b:	d1 e8                	shr    $1,%eax
40da2d:	84 c3                	test   %al,%bl
40da2f:	74 06                	je     0x40da37
40da31:	c6 45 fc 20          	movb   $0x20,-0x4(%ebp)
40da35:	8b fb                	mov    %ebx,%edi
40da37:	8a 4e 31             	mov    0x31(%esi),%cl
40da3a:	80 f9 78             	cmp    $0x78,%cl
40da3d:	74 05                	je     0x40da44
40da3f:	80 f9 58             	cmp    $0x58,%cl
40da42:	75 09                	jne    0x40da4d
40da44:	8b c2                	mov    %edx,%eax
40da46:	c1 e8 05             	shr    $0x5,%eax
40da49:	84 c3                	test   %al,%bl
40da4b:	75 02                	jne    0x40da4f
40da4d:	32 db                	xor    %bl,%bl
40da4f:	80 f9 61             	cmp    $0x61,%cl
40da52:	74 09                	je     0x40da5d
40da54:	80 f9 41             	cmp    $0x41,%cl
40da57:	74 04                	je     0x40da5d
40da59:	32 c0                	xor    %al,%al
40da5b:	eb 02                	jmp    0x40da5f
40da5d:	b0 01                	mov    $0x1,%al
40da5f:	84 db                	test   %bl,%bl
40da61:	75 04                	jne    0x40da67
40da63:	84 c0                	test   %al,%al
40da65:	74 27                	je     0x40da8e
40da67:	c6 44 3d fc 30       	movb   $0x30,-0x4(%ebp,%edi,1)
40da6c:	80 f9 58             	cmp    $0x58,%cl
40da6f:	74 09                	je     0x40da7a
40da71:	80 f9 41             	cmp    $0x41,%cl
40da74:	74 04                	je     0x40da7a
40da76:	32 c0                	xor    %al,%al
40da78:	eb 02                	jmp    0x40da7c
40da7a:	b0 01                	mov    $0x1,%al
40da7c:	84 c0                	test   %al,%al
40da7e:	0f 94 c0             	sete   %al
40da81:	fe c8                	dec    %al
40da83:	24 e0                	and    $0xe0,%al
40da85:	04 78                	add    $0x78,%al
40da87:	88 44 3d fd          	mov    %al,-0x3(%ebp,%edi,1)
40da8b:	83 c7 02             	add    $0x2,%edi
40da8e:	8b 5e 24             	mov    0x24(%esi),%ebx
40da91:	2b 5e 38             	sub    0x38(%esi),%ebx
40da94:	2b df                	sub    %edi,%ebx
40da96:	f6 c2 0c             	test   $0xc,%dl
40da99:	75 16                	jne    0x40dab1
40da9b:	8d 46 18             	lea    0x18(%esi),%eax
40da9e:	50                   	push   %eax
40da9f:	53                   	push   %ebx
40daa0:	8d 86 48 04 00 00    	lea    0x448(%esi),%eax
40daa6:	6a 20                	push   $0x20
40daa8:	50                   	push   %eax
40daa9:	e8 08 eb ff ff       	call   0x40c5b6
40daae:	83 c4 10             	add    $0x10,%esp
40dab1:	ff 76 0c             	push   0xc(%esi)
40dab4:	8d 46 18             	lea    0x18(%esi),%eax
40dab7:	50                   	push   %eax
40dab8:	57                   	push   %edi
40dab9:	8d 45 fc             	lea    -0x4(%ebp),%eax
40dabc:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
40dac2:	50                   	push   %eax
40dac3:	e8 a1 16 00 00       	call   0x40f169
40dac8:	8b 4e 20             	mov    0x20(%esi),%ecx
40dacb:	8d 7e 18             	lea    0x18(%esi),%edi
40dace:	8b c1                	mov    %ecx,%eax
40dad0:	c1 e8 03             	shr    $0x3,%eax
40dad3:	a8 01                	test   $0x1,%al
40dad5:	74 1b                	je     0x40daf2
40dad7:	c1 e9 02             	shr    $0x2,%ecx
40dada:	f6 c1 01             	test   $0x1,%cl
40dadd:	75 13                	jne    0x40daf2
40dadf:	57                   	push   %edi
40dae0:	53                   	push   %ebx
40dae1:	8d 86 48 04 00 00    	lea    0x448(%esi),%eax
40dae7:	6a 30                	push   $0x30
40dae9:	50                   	push   %eax
40daea:	e8 c7 ea ff ff       	call   0x40c5b6
40daef:	83 c4 10             	add    $0x10,%esp
40daf2:	6a 00                	push   $0x0
40daf4:	8b ce                	mov    %esi,%ecx
40daf6:	e8 25 14 00 00       	call   0x40ef20
40dafb:	83 3f 00             	cmpl   $0x0,(%edi)
40dafe:	7c 1d                	jl     0x40db1d
40db00:	8b 46 20             	mov    0x20(%esi),%eax
40db03:	c1 e8 02             	shr    $0x2,%eax
40db06:	a8 01                	test   $0x1,%al
40db08:	74 13                	je     0x40db1d
40db0a:	57                   	push   %edi
40db0b:	53                   	push   %ebx
40db0c:	8d 86 48 04 00 00    	lea    0x448(%esi),%eax
40db12:	6a 20                	push   $0x20
40db14:	50                   	push   %eax
40db15:	e8 9c ea ff ff       	call   0x40c5b6
40db1a:	83 c4 10             	add    $0x10,%esp
40db1d:	b0 01                	mov    $0x1,%al
40db1f:	5f                   	pop    %edi
40db20:	5e                   	pop    %esi
40db21:	5b                   	pop    %ebx
40db22:	8b e5                	mov    %ebp,%esp
40db24:	5d                   	pop    %ebp
40db25:	c3                   	ret
40db26:	8b ff                	mov    %edi,%edi
40db28:	55                   	push   %ebp
40db29:	8b ec                	mov    %esp,%ebp
40db2b:	83 ec 0c             	sub    $0xc,%esp
40db2e:	a1 28 ba 43 00       	mov    0x43ba28,%eax
40db33:	33 c5                	xor    %ebp,%eax
40db35:	89 45 fc             	mov    %eax,-0x4(%ebp)
40db38:	53                   	push   %ebx
40db39:	56                   	push   %esi
40db3a:	8b f1                	mov    %ecx,%esi
40db3c:	33 db                	xor    %ebx,%ebx
40db3e:	6a 41                	push   $0x41
40db40:	5a                   	pop    %edx
40db41:	6a 58                	push   $0x58
40db43:	0f b7 46 32          	movzwl 0x32(%esi),%eax
40db47:	59                   	pop    %ecx
40db48:	83 f8 64             	cmp    $0x64,%eax
40db4b:	7f 6b                	jg     0x40dbb8
40db4d:	0f 84 92 00 00 00    	je     0x40dbe5
40db53:	3b c1                	cmp    %ecx,%eax
40db55:	7f 3e                	jg     0x40db95
40db57:	74 36                	je     0x40db8f
40db59:	3b c2                	cmp    %edx,%eax
40db5b:	0f 84 94 00 00 00    	je     0x40dbf5
40db61:	83 f8 43             	cmp    $0x43,%eax
40db64:	74 3f                	je     0x40dba5
40db66:	83 f8 44             	cmp    $0x44,%eax
40db69:	7e 1d                	jle    0x40db88
40db6b:	83 f8 47             	cmp    $0x47,%eax
40db6e:	0f 8e 81 00 00 00    	jle    0x40dbf5
40db74:	83 f8 53             	cmp    $0x53,%eax
40db77:	75 0f                	jne    0x40db88
40db79:	8b ce                	mov    %esi,%ecx
40db7b:	e8 ad 10 00 00       	call   0x40ec2d
40db80:	84 c0                	test   %al,%al
40db82:	0f 85 a0 00 00 00    	jne    0x40dc28
40db88:	32 c0                	xor    %al,%al
40db8a:	e9 e4 01 00 00       	jmp    0x40dd73
40db8f:	6a 01                	push   $0x1
40db91:	6a 10                	push   $0x10
40db93:	eb 57                	jmp    0x40dbec
40db95:	83 e8 5a             	sub    $0x5a,%eax
40db98:	74 15                	je     0x40dbaf
40db9a:	83 e8 07             	sub    $0x7,%eax