40cc53:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
40cc57:	83 c8 ff             	or     $0xffffffff,%eax
40cc5a:	e9 61 0b 00 00       	jmp    0x40d7c0
40cc5f:	f6 46 0c 40          	testb  $0x40,0xc(%esi)
40cc63:	75 5e                	jne    0x40ccc3
40cc65:	56                   	push   %esi
40cc66:	e8 45 5e ff ff       	call   0x402ab0
40cc6b:	59                   	pop    %ecx
40cc6c:	ba 78 2b 41 00       	mov    $0x412b78,%edx
40cc71:	83 f8 ff             	cmp    $0xffffffff,%eax
40cc74:	74 1b                	je     0x40cc91
40cc76:	83 f8 fe             	cmp    $0xfffffffe,%eax
40cc79:	74 16                	je     0x40cc91
40cc7b:	8b c8                	mov    %eax,%ecx
40cc7d:	83 e1 1f             	and    $0x1f,%ecx
40cc80:	8b f0                	mov    %eax,%esi
40cc82:	c1 fe 05             	sar    $0x5,%esi
40cc85:	c1 e1 06             	shl    $0x6,%ecx
40cc88:	03 0c b5 20 46 41 00 	add    0x414620(,%esi,4),%ecx
40cc8f:	eb 02                	jmp    0x40cc93
40cc91:	8b ca                	mov    %edx,%ecx
40cc93:	f6 41 24 7f          	testb  $0x7f,0x24(%ecx)
40cc97:	75 9b                	jne    0x40cc34
40cc99:	83 f8 ff             	cmp    $0xffffffff,%eax
40cc9c:	74 19                	je     0x40ccb7
40cc9e:	83 f8 fe             	cmp    $0xfffffffe,%eax
40cca1:	74 14                	je     0x40ccb7
40cca3:	8b c8                	mov    %eax,%ecx
40cca5:	83 e0 1f             	and    $0x1f,%eax
40cca8:	c1 f9 05             	sar    $0x5,%ecx
40ccab:	c1 e0 06             	shl    $0x6,%eax
40ccae:	03 04 8d 20 46 41 00 	add    0x414620(,%ecx,4),%eax
40ccb5:	eb 02                	jmp    0x40ccb9
40ccb7:	8b c2                	mov    %edx,%eax
40ccb9:	f6 40 24 80          	testb  $0x80,0x24(%eax)
40ccbd:	0f 85 71 ff ff ff    	jne    0x40cc34
40ccc3:	33 f6                	xor    %esi,%esi
40ccc5:	3b de                	cmp    %esi,%ebx
40ccc7:	0f 84 67 ff ff ff    	je     0x40cc34
40cccd:	8a 13                	mov    (%ebx),%dl
40cccf:	89 b5 dc fd ff ff    	mov    %esi,-0x224(%ebp)
40ccd5:	89 b5 d8 fd ff ff    	mov    %esi,-0x228(%ebp)
40ccdb:	89 b5 bc fd ff ff    	mov    %esi,-0x244(%ebp)
40cce1:	89 b5 a0 fd ff ff    	mov    %esi,-0x260(%ebp)
40cce7:	88 95 ef fd ff ff    	mov    %dl,-0x211(%ebp)
40cced:	84 d2                	test   %dl,%dl
40ccef:	0f 84 b2 0a 00 00    	je     0x40d7a7
40ccf5:	43                   	inc    %ebx
40ccf6:	89 9d c0 fd ff ff    	mov    %ebx,-0x240(%ebp)
40ccfc:	39 b5 dc fd ff ff    	cmp    %esi,-0x224(%ebp)
40cd02:	0f 8c 89 0a 00 00    	jl     0x40d791
40cd08:	8d 42 e0             	lea    -0x20(%edx),%eax
40cd0b:	3c 58                	cmp    $0x58,%al
40cd0d:	77 0f                	ja     0x40cd1e
40cd0f:	0f be c2             	movsbl %dl,%eax
40cd12:	0f b6 80 b0 09 41 00 	movzbl 0x4109b0(%eax),%eax
40cd19:	83 e0 0f             	and    $0xf,%eax
40cd1c:	eb 02                	jmp    0x40cd20
40cd1e:	33 c0                	xor    %eax,%eax
40cd20:	8b 8d bc fd ff ff    	mov    -0x244(%ebp),%ecx
40cd26:	6b c0 09             	imul   $0x9,%eax,%eax
40cd29:	0f b6 84 08 d0 09 41 	movzbl 0x4109d0(%eax,%ecx,1),%eax
40cd30:	00
40cd31:	6a 08                	push   $0x8
40cd33:	c1 e8 04             	shr    $0x4,%eax
40cd36:	5e                   	pop    %esi
40cd37:	89 85 bc fd ff ff    	mov    %eax,-0x244(%ebp)
40cd3d:	3b c6                	cmp    %esi,%eax
40cd3f:	0f 84 ef fe ff ff    	je     0x40cc34
40cd45:	6a 07                	push   $0x7
40cd47:	59                   	pop    %ecx
40cd48:	3b c1                	cmp    %ecx,%eax
40cd4a:	0f 87 20 0a 00 00    	ja     0x40d770
40cd50:	ff 24 85 d2 d7 40 00 	jmp    *0x40d7d2(,%eax,4)
40cd57:	33 c0                	xor    %eax,%eax
40cd59:	83 8d e8 fd ff ff ff 	orl    $0xffffffff,-0x218(%ebp)
40cd60:	89 85 8c fd ff ff    	mov    %eax,-0x274(%ebp)
40cd66:	89 85 a4 fd ff ff    	mov    %eax,-0x25c(%ebp)
40cd6c:	89 85 c8 fd ff ff    	mov    %eax,-0x238(%ebp)
40cd72:	89 85 cc fd ff ff    	mov    %eax,-0x234(%ebp)
40cd78:	89 85 f0 fd ff ff    	mov    %eax,-0x210(%ebp)
40cd7e:	89 85 c4 fd ff ff    	mov    %eax,-0x23c(%ebp)
40cd84:	e9 e7 09 00 00       	jmp    0x40d770
40cd89:	0f be c2             	movsbl %dl,%eax
40cd8c:	83 e8 20             	sub    $0x20,%eax
40cd8f:	74 48                	je     0x40cdd9
40cd91:	83 e8 03             	sub    $0x3,%eax
40cd94:	74 34                	je     0x40cdca
40cd96:	2b c6                	sub    %esi,%eax
40cd98:	74 24                	je     0x40cdbe
40cd9a:	48                   	dec    %eax
40cd9b:	48                   	dec    %eax
40cd9c:	74 14                	je     0x40cdb2
40cd9e:	83 e8 03             	sub    $0x3,%eax
40cda1:	0f 85 c9 09 00 00    	jne    0x40d770
40cda7:	09 b5 f0 fd ff ff    	or     %esi,-0x210(%ebp)
40cdad:	e9 be 09 00 00       	jmp    0x40d770
40cdb2:	83 8d f0 fd ff ff 04 	orl    $0x4,-0x210(%ebp)
40cdb9:	e9 b2 09 00 00       	jmp    0x40d770
40cdbe:	83 8d f0 fd ff ff 01 	orl    $0x1,-0x210(%ebp)
40cdc5:	e9 a6 09 00 00       	jmp    0x40d770
40cdca:	81 8d f0 fd ff ff 80 	orl    $0x80,-0x210(%ebp)
40cdd1:	00 00 00
40cdd4:	e9 97 09 00 00       	jmp    0x40d770
40cdd9:	83 8d f0 fd ff ff 02 	orl    $0x2,-0x210(%ebp)
40cde0:	e9 8b 09 00 00       	jmp    0x40d770
40cde5:	80 fa 2a             	cmp    $0x2a,%dl
40cde8:	75 2c                	jne    0x40ce16
40cdea:	83 c7 04             	add    $0x4,%edi
40cded:	89 bd e4 fd ff ff    	mov    %edi,-0x21c(%ebp)
40cdf3:	8b 7f fc             	mov    -0x4(%edi),%edi
40cdf6:	89 bd c8 fd ff ff    	mov    %edi,-0x238(%ebp)
40cdfc:	85 ff                	test   %edi,%edi
40cdfe:	0f 89 6c 09 00 00    	jns    0x40d770
40ce04:	83 8d f0 fd ff ff 04 	orl    $0x4,-0x210(%ebp)
40ce0b:	f7 9d c8 fd ff ff    	negl   -0x238(%ebp)
40ce11:	e9 5a 09 00 00       	jmp    0x40d770
40ce16:	8b 85 c8 fd ff ff    	mov    -0x238(%ebp),%eax
40ce1c:	6b c0 0a             	imul   $0xa,%eax,%eax
40ce1f:	0f be ca             	movsbl %dl,%ecx
40ce22:	8d 44 08 d0          	lea    -0x30(%eax,%ecx,1),%eax
40ce26:	89 85 c8 fd ff ff    	mov    %eax,-0x238(%ebp)
40ce2c:	e9 3f 09 00 00       	jmp    0x40d770
40ce31:	83 a5 e8 fd ff ff 00 	andl   $0x0,-0x218(%ebp)
40ce38:	e9 33 09 00 00       	jmp    0x40d770
40ce3d:	80 fa 2a             	cmp    $0x2a,%dl
40ce40:	75 26                	jne    0x40ce68
40ce42:	83 c7 04             	add    $0x4,%edi
40ce45:	89 bd e4 fd ff ff    	mov    %edi,-0x21c(%ebp)
40ce4b:	8b 7f fc             	mov    -0x4(%edi),%edi
40ce4e:	89 bd e8 fd ff ff    	mov    %edi,-0x218(%ebp)
40ce54:	85 ff                	test   %edi,%edi
40ce56:	0f 89 14 09 00 00    	jns    0x40d770
40ce5c:	83 8d e8 fd ff ff ff 	orl    $0xffffffff,-0x218(%ebp)
40ce63:	e9 08 09 00 00       	jmp    0x40d770
40ce68:	8b 85 e8 fd ff ff    	mov    -0x218(%ebp),%eax
40ce6e:	6b c0 0a             	imul   $0xa,%eax,%eax
40ce71:	0f be ca             	movsbl %dl,%ecx
40ce74:	8d 44 08 d0          	lea    -0x30(%eax,%ecx,1),%eax
40ce78:	89 85 e8 fd ff ff    	mov    %eax,-0x218(%ebp)
40ce7e:	e9 ed 08 00 00       	jmp    0x40d770
40ce83:	80 fa 49             	cmp    $0x49,%dl
40ce86:	74 55                	je     0x40cedd
40ce88:	80 fa 68             	cmp    $0x68,%dl
40ce8b:	74 44                	je     0x40ced1
40ce8d:	80 fa 6c             	cmp    $0x6c,%dl
40ce90:	74 18                	je     0x40ceaa
40ce92:	80 fa 77             	cmp    $0x77,%dl
40ce95:	0f 85 d5 08 00 00    	jne    0x40d770
40ce9b:	81 8d f0 fd ff ff 00 	orl    $0x800,-0x210(%ebp)
40cea2:	08 00 00
40cea5:	e9 c6 08 00 00       	jmp    0x40d770
40ceaa:	80 3b 6c             	cmpb   $0x6c,(%ebx)
40cead:	75 16                	jne    0x40cec5
40ceaf:	43                   	inc    %ebx
40ceb0:	81 8d f0 fd ff ff 00 	orl    $0x1000,-0x210(%ebp)
40ceb7:	10 00 00
40ceba:	89 9d c0 fd ff ff    	mov    %ebx,-0x240(%ebp)
40cec0:	e9 ab 08 00 00       	jmp    0x40d770
40cec5:	83 8d f0 fd ff ff 10 	orl    $0x10,-0x210(%ebp)
40cecc:	e9 9f 08 00 00       	jmp    0x40d770
40ced1:	83 8d f0 fd ff ff 20 	orl    $0x20,-0x210(%ebp)
40ced8:	e9 93 08 00 00       	jmp    0x40d770
40cedd:	8a 03                	mov    (%ebx),%al
40cedf:	3c 36                	cmp    $0x36,%al
40cee1:	75 1e                	jne    0x40cf01
40cee3:	80 7b 01 34          	cmpb   $0x34,0x1(%ebx)
40cee7:	75 18                	jne    0x40cf01
40cee9:	83 c3 02             	add    $0x2,%ebx
40ceec:	81 8d f0 fd ff ff 00 	orl    $0x8000,-0x210(%ebp)
40cef3:	80 00 00
40cef6:	89 9d c0 fd ff ff    	mov    %ebx,-0x240(%ebp)
40cefc:	e9 6f 08 00 00       	jmp    0x40d770
40cf01:	3c 33                	cmp    $0x33,%al
40cf03:	75 1e                	jne    0x40cf23
40cf05:	80 7b 01 32          	cmpb   $0x32,0x1(%ebx)
40cf09:	75 18                	jne    0x40cf23
40cf0b:	83 c3 02             	add    $0x2,%ebx
40cf0e:	81 a5 f0 fd ff ff ff 	andl   $0xffff7fff,-0x210(%ebp)
40cf15:	7f ff ff
40cf18:	89 9d c0 fd ff ff    	mov    %ebx,-0x240(%ebp)
40cf1e:	e9 4d 08 00 00       	jmp    0x40d770
40cf23:	3c 64                	cmp    $0x64,%al
40cf25:	0f 84 45 08 00 00    	je     0x40d770
40cf2b:	3c 69                	cmp    $0x69,%al
40cf2d:	0f 84 3d 08 00 00    	je     0x40d770
40cf33:	3c 6f                	cmp    $0x6f,%al
40cf35:	0f 84 35 08 00 00    	je     0x40d770
40cf3b:	3c 75                	cmp    $0x75,%al
40cf3d:	0f 84 2d 08 00 00    	je     0x40d770
40cf43:	3c 78                	cmp    $0x78,%al
40cf45:	0f 84 25 08 00 00    	je     0x40d770
40cf4b:	3c 58                	cmp    $0x58,%al
40cf4d:	0f 84 1d 08 00 00    	je     0x40d770
40cf53:	83 a5 bc fd ff ff 00 	andl   $0x0,-0x244(%ebp)
40cf5a:	83 a5 c4 fd ff ff 00 	andl   $0x0,-0x23c(%ebp)
40cf61:	8d 85 ac fd ff ff    	lea    -0x254(%ebp),%eax
40cf67:	50                   	push   %eax
40cf68:	0f b6 c2             	movzbl %dl,%eax
40cf6b:	50                   	push   %eax
40cf6c:	e8 aa dd ff ff       	call   0x40ad1b
40cf71:	59                   	pop    %ecx
40cf72:	85 c0                	test   %eax,%eax
40cf74:	8a 85 ef fd ff ff    	mov    -0x211(%ebp),%al
40cf7a:	59                   	pop    %ecx
40cf7b:	74 22                	je     0x40cf9f
40cf7d:	8b 8d d0 fd ff ff    	mov    -0x230(%ebp),%ecx
40cf83:	8d b5 dc fd ff ff    	lea    -0x224(%ebp),%esi
40cf89:	e8 fd fb ff ff       	call   0x40cb8b
40cf8e:	8a 03                	mov    (%ebx),%al
40cf90:	43                   	inc    %ebx
40cf91:	89 9d c0 fd ff ff    	mov    %ebx,-0x240(%ebp)
40cf97:	84 c0                	test   %al,%al
40cf99:	0f 84 95 fc ff ff    	je     0x40cc34
40cf9f:	8b 8d d0 fd ff ff    	mov    -0x230(%ebp),%ecx
40cfa5:	8d b5 dc fd ff ff    	lea    -0x224(%ebp),%esi
40cfab:	e8 db fb ff ff       	call   0x40cb8b
40cfb0:	e9 bb 07 00 00       	jmp    0x40d770
40cfb5:	0f be c2             	movsbl %dl,%eax
40cfb8:	83 f8 64             	cmp    $0x64,%eax
40cfbb:	0f 8f b7 01 00 00    	jg     0x40d178
40cfc1:	0f 84 55 02 00 00    	je     0x40d21c
40cfc7:	83 f8 53             	cmp    $0x53,%eax
40cfca:	0f 8f ba 00 00 00    	jg     0x40d08a
40cfd0:	74 4c                	je     0x40d01e
40cfd2:	83 e8 41             	sub    $0x41,%eax
40cfd5:	74 10                	je     0x40cfe7
40cfd7:	48                   	dec    %eax
40cfd8:	48                   	dec    %eax
40cfd9:	74 24                	je     0x40cfff
40cfdb:	48                   	dec    %eax
40cfdc:	48                   	dec    %eax
40cfdd:	74 08                	je     0x40cfe7
40cfdf:	48                   	dec    %eax
40cfe0:	48                   	dec    %eax
40cfe1:	0f 85 a8 05 00 00    	jne    0x40d58f
40cfe7:	80 c2 20             	add    $0x20,%dl
40cfea:	c7 85 8c fd ff ff 01 	movl   $0x1,-0x274(%ebp)
40cff1:	00 00 00
40cff4:	88 95 ef fd ff ff    	mov    %dl,-0x211(%ebp)
40cffa:	e9 53 02 00 00       	jmp    0x40d252
40cfff:	f7 85 f0 fd ff ff 30 	testl  $0x830,-0x210(%ebp)
40d006:	08 00 00
40d009:	0f 85 9e 00 00 00    	jne    0x40d0ad
40d00f:	81 8d f0 fd ff ff 00 	orl    $0x800,-0x210(%ebp)
40d016:	08 00 00
40d019:	e9 8f 00 00 00       	jmp    0x40d0ad
40d01e:	f7 85 f0 fd ff ff 30 	testl  $0x830,-0x210(%ebp)
40d025:	08 00 00
40d028:	75 0a                	jne    0x40d034
40d02a:	81 8d f0 fd ff ff 00 	orl    $0x800,-0x210(%ebp)
40d031:	08 00 00
40d034:	8b 8d e8 fd ff ff    	mov    -0x218(%ebp),%ecx
40d03a:	83 f9 ff             	cmp    $0xffffffff,%ecx
40d03d:	75 05                	jne    0x40d044
40d03f:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
40d044:	83 c7 04             	add    $0x4,%edi
40d047:	f7 85 f0 fd ff ff 10 	testl  $0x810,-0x210(%ebp)
40d04e:	08 00 00
40d051:	89 bd e4 fd ff ff    	mov    %edi,-0x21c(%ebp)
40d057:	8b 7f fc             	mov    -0x4(%edi),%edi
40d05a:	89 bd e0 fd ff ff    	mov    %edi,-0x220(%ebp)
40d060:	0f 84 fb 04 00 00    	je     0x40d561
40d066:	85 ff                	test   %edi,%edi
40d068:	75 0b                	jne    0x40d075
40d06a:	a1 e4 2d 41 00       	mov    0x412de4,%eax
40d06f:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
40d075:	8b 85 e0 fd ff ff    	mov    -0x220(%ebp),%eax
40d07b:	c7 85 c4 fd ff ff 01 	movl   $0x1,-0x23c(%ebp)
40d082:	00 00 00
40d085:	e9 c9 04 00 00       	jmp    0x40d553
40d08a:	83 e8 58             	sub    $0x58,%eax
40d08d:	0f 84 1c 03 00 00    	je     0x40d3af
40d093:	48                   	dec    %eax
40d094:	48                   	dec    %eax
40d095:	74 7f                	je     0x40d116
40d097:	2b c1                	sub    %ecx,%eax
40d099:	0f 84 b3 01 00 00    	je     0x40d252
40d09f:	48                   	dec    %eax
40d0a0:	48                   	dec    %eax
40d0a1:	0f 85 e8 04 00 00    	jne    0x40d58f
40d0a7:	8b bd e4 fd ff ff    	mov    -0x21c(%ebp),%edi
40d0ad:	83 c7 04             	add    $0x4,%edi
40d0b0:	f7 85 f0 fd ff ff 10 	testl  $0x810,-0x210(%ebp)
40d0b7:	08 00 00
40d0ba:	89 bd e4 fd ff ff    	mov    %edi,-0x21c(%ebp)
40d0c0:	74 30                	je     0x40d0f2
40d0c2:	0f b7 47 fc          	movzwl -0x4(%edi),%eax
40d0c6:	50                   	push   %eax
40d0c7:	68 00 02 00 00       	push   $0x200
40d0cc:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40d0d2:	50                   	push   %eax
40d0d3:	8d 85 d8 fd ff ff    	lea    -0x228(%ebp),%eax
40d0d9:	50                   	push   %eax
40d0da:	e8 23 0b 00 00       	call   0x40dc02
40d0df:	83 c4 10             	add    $0x10,%esp
40d0e2:	85 c0                	test   %eax,%eax
40d0e4:	74 1f                	je     0x40d105
40d0e6:	c7 85 a4 fd ff ff 01 	movl   $0x1,-0x25c(%ebp)
40d0ed:	00 00 00
40d0f0:	eb 13                	jmp    0x40d105
40d0f2:	8a 47 fc             	mov    -0x4(%edi),%al
40d0f5:	88 85 f4 fd ff ff    	mov    %al,-0x20c(%ebp)
40d0fb:	c7 85 d8 fd ff ff 01 	movl   $0x1,-0x228(%ebp)
40d102:	00 00 00
40d105:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40d10b:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
40d111:	e9 79 04 00 00       	jmp    0x40d58f
40d116:	8b 07                	mov    (%edi),%eax
40d118:	83 c7 04             	add    $0x4,%edi
40d11b:	89 bd e4 fd ff ff    	mov    %edi,-0x21c(%ebp)
40d121:	85 c0                	test   %eax,%eax
40d123:	74 3c                	je     0x40d161
40d125:	8b 48 04             	mov    0x4(%eax),%ecx
40d128:	85 c9                	test   %ecx,%ecx
40d12a:	74 35                	je     0x40d161
40d12c:	f7 85 f0 fd ff ff 00 	testl  $0x800,-0x210(%ebp)
40d133:	08 00 00
40d136:	0f bf 00             	movswl (%eax),%eax
40d139:	89 8d e0 fd ff ff    	mov    %ecx,-0x220(%ebp)
40d13f:	74 14                	je     0x40d155
40d141:	99                   	cltd
40d142:	2b c2                	sub    %edx,%eax
40d144:	d1 f8                	sar    $1,%eax
40d146:	c7 85 c4 fd ff ff 01 	movl   $0x1,-0x23c(%ebp)
40d14d:	00 00 00
40d150:	e9 34 04 00 00       	jmp    0x40d589
40d155:	83 a5 c4 fd ff ff 00 	andl   $0x0,-0x23c(%ebp)
40d15c:	e9 28 04 00 00       	jmp    0x40d589
40d161:	a1 e0 2d 41 00       	mov    0x412de0,%eax
40d166:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
40d16c:	50                   	push   %eax
40d16d:	e8 ee d9 ff ff       	call   0x40ab60
40d172:	59                   	pop    %ecx
40d173:	e9 11 04 00 00       	jmp    0x40d589
40d178:	83 f8 70             	cmp    $0x70,%eax
40d17b:	0f 8f 36 02 00 00    	jg     0x40d3b7
40d181:	0f 84 22 02 00 00    	je     0x40d3a9
40d187:	83 f8 65             	cmp    $0x65,%eax
40d18a:	0f 8c ff 03 00 00    	jl     0x40d58f
40d190:	83 f8 67             	cmp    $0x67,%eax
40d193:	0f 8e b3 00 00 00    	jle    0x40d24c
40d199:	83 f8 69             	cmp    $0x69,%eax
40d19c:	74 78                	je     0x40d216
40d19e:	83 f8 6e             	cmp    $0x6e,%eax
40d1a1:	74 2a                	je     0x40d1cd
40d1a3:	83 f8 6f             	cmp    $0x6f,%eax
40d1a6:	0f 85 e3 03 00 00    	jne    0x40d58f
40d1ac:	f6 85 f0 fd ff ff 80 	testb  $0x80,-0x210(%ebp)
40d1b3:	8b bd e4 fd ff ff    	mov    -0x21c(%ebp),%edi