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
40db9d:	74 56                	je     0x40dbf5
40db9f:	48                   	dec    %eax
40dba0:	83 e8 01             	sub    $0x1,%eax
40dba3:	75 e3                	jne    0x40db88
40dba5:	53                   	push   %ebx
40dba6:	8b ce                	mov    %esi,%ecx
40dba8:	e8 23 09 00 00       	call   0x40e4d0
40dbad:	eb d1                	jmp    0x40db80
40dbaf:	8b ce                	mov    %esi,%ecx
40dbb1:	e8 71 03 00 00       	call   0x40df27
40dbb6:	eb c8                	jmp    0x40db80
40dbb8:	83 f8 70             	cmp    $0x70,%eax
40dbbb:	7f 4d                	jg     0x40dc0a
40dbbd:	74 3f                	je     0x40dbfe
40dbbf:	83 f8 67             	cmp    $0x67,%eax
40dbc2:	7e 31                	jle    0x40dbf5
40dbc4:	83 f8 69             	cmp    $0x69,%eax
40dbc7:	74 1c                	je     0x40dbe5
40dbc9:	83 f8 6e             	cmp    $0x6e,%eax
40dbcc:	74 0e                	je     0x40dbdc
40dbce:	83 f8 6f             	cmp    $0x6f,%eax
40dbd1:	75 b5                	jne    0x40db88
40dbd3:	8b ce                	mov    %esi,%ecx
40dbd5:	e8 06 0f 00 00       	call   0x40eae0
40dbda:	eb a4                	jmp    0x40db80
40dbdc:	8b ce                	mov    %esi,%ecx
40dbde:	e8 4b 0e 00 00       	call   0x40ea2e
40dbe3:	eb 9b                	jmp    0x40db80
40dbe5:	83 4e 20 10          	orl    $0x10,0x20(%esi)
40dbe9:	53                   	push   %ebx
40dbea:	6a 0a                	push   $0xa
40dbec:	8b ce                	mov    %esi,%ecx
40dbee:	e8 09 0c 00 00       	call   0x40e7fc
40dbf3:	eb 8b                	jmp    0x40db80
40dbf5:	8b ce                	mov    %esi,%ecx
40dbf7:	e8 42 06 00 00       	call   0x40e23e
40dbfc:	eb 82                	jmp    0x40db80
40dbfe:	8b ce                	mov    %esi,%ecx
40dc00:	e8 2a 0f 00 00       	call   0x40eb2f
40dc05:	e9 76 ff ff ff       	jmp    0x40db80
40dc0a:	83 e8 73             	sub    $0x73,%eax
40dc0d:	0f 84 66 ff ff ff    	je     0x40db79
40dc13:	48                   	dec    %eax
40dc14:	83 e8 01             	sub    $0x1,%eax
40dc17:	74 d0                	je     0x40dbe9
40dc19:	83 e8 03             	sub    $0x3,%eax
40dc1c:	0f 85 66 ff ff ff    	jne    0x40db88
40dc22:	53                   	push   %ebx
40dc23:	e9 69 ff ff ff       	jmp    0x40db91
40dc28:	38 5e 30             	cmp    %bl,0x30(%esi)
40dc2b:	0f 85 40 01 00 00    	jne    0x40dd71
40dc31:	8b 56 20             	mov    0x20(%esi),%edx
40dc34:	33 c9                	xor    %ecx,%ecx
40dc36:	57                   	push   %edi
40dc37:	8b c2                	mov    %edx,%eax
40dc39:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40dc3c:	c1 e8 04             	shr    $0x4,%eax
40dc3f:	41                   	inc    %ecx
40dc40:	66 89 5d f8          	mov    %bx,-0x8(%ebp)
40dc44:	6a 20                	push   $0x20
40dc46:	5f                   	pop    %edi
40dc47:	84 c1                	test   %al,%cl
40dc49:	74 28                	je     0x40dc73
40dc4b:	8b c2                	mov    %edx,%eax
40dc4d:	c1 e8 06             	shr    $0x6,%eax
40dc50:	84 c1                	test   %al,%cl
40dc52:	74 09                	je     0x40dc5d
40dc54:	6a 2d                	push   $0x2d
40dc56:	58                   	pop    %eax
40dc57:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
40dc5b:	eb 14                	jmp    0x40dc71
40dc5d:	84 d1                	test   %dl,%cl
40dc5f:	74 04                	je     0x40dc65
40dc61:	6a 2b                	push   $0x2b
40dc63:	eb f1                	jmp    0x40dc56
40dc65:	8b c2                	mov    %edx,%eax
40dc67:	d1 e8                	shr    $1,%eax
40dc69:	84 c1                	test   %al,%cl
40dc6b:	74 06                	je     0x40dc73
40dc6d:	66 89 7d f4          	mov    %di,-0xc(%ebp)
40dc71:	8b d9                	mov    %ecx,%ebx
40dc73:	0f b7 4e 32          	movzwl 0x32(%esi),%ecx
40dc77:	83 f9 78             	cmp    $0x78,%ecx
40dc7a:	74 08                	je     0x40dc84
40dc7c:	6a 58                	push   $0x58
40dc7e:	58                   	pop    %eax
40dc7f:	66 3b c8             	cmp    %ax,%cx
40dc82:	75 0d                	jne    0x40dc91
40dc84:	8b c2                	mov    %edx,%eax
40dc86:	c1 e8 05             	shr    $0x5,%eax
40dc89:	a8 01                	test   $0x1,%al
40dc8b:	74 04                	je     0x40dc91
40dc8d:	b4 01                	mov    $0x1,%ah
40dc8f:	eb 02                	jmp    0x40dc93
40dc91:	32 e4                	xor    %ah,%ah
40dc93:	83 f9 61             	cmp    $0x61,%ecx
40dc96:	74 0c                	je     0x40dca4
40dc98:	6a 41                	push   $0x41
40dc9a:	5f                   	pop    %edi
40dc9b:	66 3b cf             	cmp    %di,%cx
40dc9e:	74 04                	je     0x40dca4
40dca0:	32 c0                	xor    %al,%al
40dca2:	eb 02                	jmp    0x40dca6
40dca4:	b0 01                	mov    $0x1,%al
40dca6:	6a 30                	push   $0x30
40dca8:	5f                   	pop    %edi
40dca9:	84 e4                	test   %ah,%ah
40dcab:	75 04                	jne    0x40dcb1
40dcad:	84 c0                	test   %al,%al
40dcaf:	74 30                	je     0x40dce1
40dcb1:	6a 58                	push   $0x58
40dcb3:	58                   	pop    %eax
40dcb4:	66 89 7c 5d f4       	mov    %di,-0xc(%ebp,%ebx,2)
40dcb9:	66 3b c8             	cmp    %ax,%cx
40dcbc:	74 0c                	je     0x40dcca
40dcbe:	6a 41                	push   $0x41
40dcc0:	58                   	pop    %eax
40dcc1:	66 3b c8             	cmp    %ax,%cx
40dcc4:	74 04                	je     0x40dcca
40dcc6:	32 c0                	xor    %al,%al
40dcc8:	eb 02                	jmp    0x40dccc
40dcca:	b0 01                	mov    $0x1,%al
40dccc:	84 c0                	test   %al,%al
40dcce:	0f 94 c0             	sete   %al
40dcd1:	fe c8                	dec    %al
40dcd3:	24 e0                	and    $0xe0,%al
40dcd5:	04 78                	add    $0x78,%al
40dcd7:	66 98                	cbtw
40dcd9:	66 89 44 5d f6       	mov    %ax,-0xa(%ebp,%ebx,2)
40dcde:	83 c3 02             	add    $0x2,%ebx
40dce1:	8b 7e 24             	mov    0x24(%esi),%edi
40dce4:	2b 7e 38             	sub    0x38(%esi),%edi
40dce7:	2b fb                	sub    %ebx,%edi
40dce9:	f6 c2 0c             	test   $0xc,%dl
40dcec:	75 16                	jne    0x40dd04
40dcee:	8d 46 18             	lea    0x18(%esi),%eax
40dcf1:	50                   	push   %eax
40dcf2:	57                   	push   %edi
40dcf3:	8d 86 48 04 00 00    	lea    0x448(%esi),%eax
40dcf9:	6a 20                	push   $0x20
40dcfb:	50                   	push   %eax
40dcfc:	e8 84 e8 ff ff       	call   0x40c585
40dd01:	83 c4 10             	add    $0x10,%esp
40dd04:	ff 76 0c             	push   0xc(%esi)
40dd07:	8d 46 18             	lea    0x18(%esi),%eax
40dd0a:	50                   	push   %eax
40dd0b:	53                   	push   %ebx
40dd0c:	8d 45 f4             	lea    -0xc(%ebp),%eax
40dd0f:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
40dd15:	50                   	push   %eax
40dd16:	e8 c1 13 00 00       	call   0x40f0dc
40dd1b:	8b 4e 20             	mov    0x20(%esi),%ecx
40dd1e:	8d 5e 18             	lea    0x18(%esi),%ebx
40dd21:	8b c1                	mov    %ecx,%eax
40dd23:	c1 e8 03             	shr    $0x3,%eax
40dd26:	a8 01                	test   $0x1,%al
40dd28:	74 1b                	je     0x40dd45
40dd2a:	c1 e9 02             	shr    $0x2,%ecx
40dd2d:	f6 c1 01             	test   $0x1,%cl
40dd30:	75 13                	jne    0x40dd45
40dd32:	53                   	push   %ebx
40dd33:	57                   	push   %edi
40dd34:	8d 86 48 04 00 00    	lea    0x448(%esi),%eax
40dd3a:	6a 30                	push   $0x30
40dd3c:	50                   	push   %eax
40dd3d:	e8 43 e8 ff ff       	call   0x40c585
40dd42:	83 c4 10             	add    $0x10,%esp
40dd45:	6a 00                	push   $0x0
40dd47:	8b ce                	mov    %esi,%ecx
40dd49:	e8 79 12 00 00       	call   0x40efc7
40dd4e:	83 3b 00             	cmpl   $0x0,(%ebx)
40dd51:	7c 1d                	jl     0x40dd70
40dd53:	8b 46 20             	mov    0x20(%esi),%eax
40dd56:	c1 e8 02             	shr    $0x2,%eax
40dd59:	a8 01                	test   $0x1,%al