40dc82:	83 c1 d0             	add    $0xffffffd0,%ecx
40dc85:	eb 23                	jmp    0x40dcaa
40dc87:	8a c3                	mov    %bl,%al
40dc89:	2c 61                	sub    $0x61,%al
40dc8b:	3c 19                	cmp    $0x19,%al
40dc8d:	77 08                	ja     0x40dc97
40dc8f:	0f be cb             	movsbl %bl,%ecx
40dc92:	83 c1 a9             	add    $0xffffffa9,%ecx
40dc95:	eb 13                	jmp    0x40dcaa
40dc97:	8a c3                	mov    %bl,%al
40dc99:	2c 41                	sub    $0x41,%al
40dc9b:	3c 19                	cmp    $0x19,%al
40dc9d:	77 08                	ja     0x40dca7
40dc9f:	0f be cb             	movsbl %bl,%ecx
40dca2:	83 c1 c9             	add    $0xffffffc9,%ecx
40dca5:	eb 03                	jmp    0x40dcaa
40dca7:	83 c9 ff             	or     $0xffffffff,%ecx
40dcaa:	83 f9 ff             	cmp    $0xffffffff,%ecx
40dcad:	74 2f                	je     0x40dcde
40dcaf:	3b ce                	cmp    %esi,%ecx
40dcb1:	73 2b                	jae    0x40dcde
40dcb3:	8b 45 f4             	mov    -0xc(%ebp),%eax
40dcb6:	3b 45 f0             	cmp    -0x10(%ebp),%eax
40dcb9:	72 0b                	jb     0x40dcc6
40dcbb:	75 05                	jne    0x40dcc2
40dcbd:	3b 4d ec             	cmp    -0x14(%ebp),%ecx
40dcc0:	76 04                	jbe    0x40dcc6
40dcc2:	6a 0c                	push   $0xc
40dcc4:	eb 0a                	jmp    0x40dcd0
40dcc6:	0f af c6             	imul   %esi,%eax
40dcc9:	6a 08                	push   $0x8
40dccb:	03 c1                	add    %ecx,%eax
40dccd:	89 45 f4             	mov    %eax,-0xc(%ebp)
40dcd0:	8a 1f                	mov    (%edi),%bl
40dcd2:	47                   	inc    %edi
40dcd3:	58                   	pop    %eax
40dcd4:	88 5d fc             	mov    %bl,-0x4(%ebp)
40dcd7:	0b d0                	or     %eax,%edx
40dcd9:	89 7d 0c             	mov    %edi,0xc(%ebp)
40dcdc:	eb 99                	jmp    0x40dc77
40dcde:	ff 75 fc             	push   -0x4(%ebp)
40dce1:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40dce4:	89 55 f8             	mov    %edx,-0x8(%ebp)
40dce7:	e8 75 06 00 00       	call   0x40e361
40dcec:	8b 5d f8             	mov    -0x8(%ebp),%ebx
40dcef:	f6 c3 08             	test   $0x8,%bl
40dcf2:	75 0a                	jne    0x40dcfe
40dcf4:	8b 45 e8             	mov    -0x18(%ebp),%eax
40dcf7:	33 db                	xor    %ebx,%ebx
40dcf9:	89 45 0c             	mov    %eax,0xc(%ebp)
40dcfc:	eb 41                	jmp    0x40dd3f
40dcfe:	8b 7d f4             	mov    -0xc(%ebp),%edi
40dd01:	57                   	push   %edi
40dd02:	53                   	push   %ebx
40dd03:	e8 fd fd ff ff       	call   0x40db05
40dd08:	59                   	pop    %ecx
40dd09:	59                   	pop    %ecx
40dd0a:	84 c0                	test   %al,%al
40dd0c:	74 28                	je     0x40dd36
40dd0e:	e8 c0 0f 00 00       	call   0x40ecd3
40dd13:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
40dd19:	f6 c3 01             	test   $0x1,%bl
40dd1c:	75 05                	jne    0x40dd23
40dd1e:	83 cf ff             	or     $0xffffffff,%edi
40dd21:	eb 1a                	jmp    0x40dd3d
40dd23:	f6 c3 02             	test   $0x2,%bl
40dd26:	74 07                	je     0x40dd2f
40dd28:	bb 00 00 00 80       	mov    $0x80000000,%ebx
40dd2d:	eb 10                	jmp    0x40dd3f
40dd2f:	bb ff ff ff 7f       	mov    $0x7fffffff,%ebx
40dd34:	eb 09                	jmp    0x40dd3f
40dd36:	f6 c3 02             	test   $0x2,%bl
40dd39:	74 02                	je     0x40dd3d
40dd3b:	f7 df                	neg    %edi
40dd3d:	8b df                	mov    %edi,%ebx
40dd3f:	80 7d e4 00          	cmpb   $0x0,-0x1c(%ebp)
40dd43:	5f                   	pop    %edi
40dd44:	0f 84 25 fe ff ff    	je     0x40db6f
40dd4a:	8b 45 d8             	mov    -0x28(%ebp),%eax
40dd4d:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
40dd54:	e9 16 fe ff ff       	jmp    0x40db6f
40dd59:	8b ff                	mov    %edi,%edi
40dd5b:	55                   	push   %ebp
40dd5c:	8b ec                	mov    %esp,%ebp
40dd5e:	81 ec a0 00 00 00    	sub    $0xa0,%esp
40dd64:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40dd67:	53                   	push   %ebx
40dd68:	57                   	push   %edi
40dd69:	e8 cf fb ff ff       	call   0x40d93d
40dd6e:	84 c0                	test   %al,%al
40dd70:	74 21                	je     0x40dd93
40dd72:	8b 7d 14             	mov    0x14(%ebp),%edi
40dd75:	85 ff                	test   %edi,%edi
40dd77:	74 2e                	je     0x40dda7
40dd79:	83 ff 02             	cmp    $0x2,%edi
40dd7c:	7c 05                	jl     0x40dd83
40dd7e:	83 ff 24             	cmp    $0x24,%edi
40dd81:	7e 24                	jle    0x40dda7
40dd83:	e8 4b 0f 00 00       	call   0x40ecd3
40dd88:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40dd8e:	e8 83 0e 00 00       	call   0x40ec16
40dd93:	33 db                	xor    %ebx,%ebx
40dd95:	8b 55 10             	mov    0x10(%ebp),%edx
40dd98:	85 d2                	test   %edx,%edx
40dd9a:	74 05                	je     0x40dda1
40dd9c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40dd9f:	89 0a                	mov    %ecx,(%edx)
40dda1:	5f                   	pop    %edi
40dda2:	8b c3                	mov    %ebx,%eax
40dda4:	5b                   	pop    %ebx
40dda5:	c9                   	leave
40dda6:	c3                   	ret
40dda7:	56                   	push   %esi
40dda8:	ff 75 08             	push   0x8(%ebp)
40ddab:	8d 8d 60 ff ff ff    	lea    -0xa0(%ebp),%ecx
40ddb1:	e8 94 ec ff ff       	call   0x40ca4a
40ddb6:	8b 45 0c             	mov    0xc(%ebp),%eax
40ddb9:	33 f6                	xor    %esi,%esi
40ddbb:	89 75 fc             	mov    %esi,-0x4(%ebp)
40ddbe:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
40ddc4:	eb 03                	jmp    0x40ddc9
40ddc6:	8b 45 0c             	mov    0xc(%ebp),%eax
40ddc9:	0f b7 30             	movzwl (%eax),%esi
40ddcc:	83 c0 02             	add    $0x2,%eax
40ddcf:	6a 08                	push   $0x8
40ddd1:	56                   	push   %esi
40ddd2:	89 45 0c             	mov    %eax,0xc(%ebp)
40ddd5:	e8 7e 53 00 00       	call   0x413158
40ddda:	59                   	pop    %ecx
40dddb:	59                   	pop    %ecx
40dddc:	85 c0                	test   %eax,%eax
40ddde:	75 e6                	jne    0x40ddc6
40dde0:	0f b6 5d 18          	movzbl 0x18(%ebp),%ebx
40dde4:	66 83 fe 2d          	cmp    $0x2d,%si
40dde8:	75 05                	jne    0x40ddef
40ddea:	83 cb 02             	or     $0x2,%ebx
40dded:	eb 06                	jmp    0x40ddf5
40ddef:	66 83 fe 2b          	cmp    $0x2b,%si
40ddf3:	75 0e                	jne    0x40de03
40ddf5:	8b 55 0c             	mov    0xc(%ebp),%edx
40ddf8:	0f b7 32             	movzwl (%edx),%esi
40ddfb:	83 c2 02             	add    $0x2,%edx
40ddfe:	89 55 0c             	mov    %edx,0xc(%ebp)
40de01:	eb 03                	jmp    0x40de06
40de03:	8b 55 0c             	mov    0xc(%ebp),%edx
40de06:	c7 85 74 ff ff ff 3a 	movl   $0x3a,-0x8c(%ebp)
40de0d:	00 00 00
40de10:	b8 10 ff 00 00       	mov    $0xff10,%eax
40de15:	c7 45 f8 60 06 00 00 	movl   $0x660,-0x8(%ebp)
40de1c:	c7 45 f4 6a 06 00 00 	movl   $0x66a,-0xc(%ebp)
40de23:	c7 45 f0 f0 06 00 00 	movl   $0x6f0,-0x10(%ebp)
40de2a:	c7 45 ec fa 06 00 00 	movl   $0x6fa,-0x14(%ebp)
40de31:	c7 45 e8 66 09 00 00 	movl   $0x966,-0x18(%ebp)
40de38:	c7 45 e4 70 09 00 00 	movl   $0x970,-0x1c(%ebp)
40de3f:	c7 45 e0 e6 09 00 00 	movl   $0x9e6,-0x20(%ebp)
40de46:	c7 45 dc f0 09 00 00 	movl   $0x9f0,-0x24(%ebp)
40de4d:	c7 45 d8 66 0a 00 00 	movl   $0xa66,-0x28(%ebp)
40de54:	c7 45 d4 70 0a 00 00 	movl   $0xa70,-0x2c(%ebp)
40de5b:	c7 45 d0 e6 0a 00 00 	movl   $0xae6,-0x30(%ebp)
40de62:	c7 45 cc f0 0a 00 00 	movl   $0xaf0,-0x34(%ebp)
40de69:	c7 45 c8 66 0b 00 00 	movl   $0xb66,-0x38(%ebp)
40de70:	c7 45 c4 70 0b 00 00 	movl   $0xb70,-0x3c(%ebp)
40de77:	c7 45 c0 66 0c 00 00 	movl   $0xc66,-0x40(%ebp)
40de7e:	c7 45 bc 70 0c 00 00 	movl   $0xc70,-0x44(%ebp)
40de85:	c7 45 b8 e6 0c 00 00 	movl   $0xce6,-0x48(%ebp)
40de8c:	c7 45 b4 f0 0c 00 00 	movl   $0xcf0,-0x4c(%ebp)
40de93:	c7 45 b0 66 0d 00 00 	movl   $0xd66,-0x50(%ebp)
40de9a:	c7 45 ac 70 0d 00 00 	movl   $0xd70,-0x54(%ebp)
40dea1:	c7 45 a8 50 0e 00 00 	movl   $0xe50,-0x58(%ebp)
40dea8:	c7 45 a4 5a 0e 00 00 	movl   $0xe5a,-0x5c(%ebp)
40deaf:	c7 45 a0 d0 0e 00 00 	movl   $0xed0,-0x60(%ebp)
40deb6:	c7 45 9c da 0e 00 00 	movl   $0xeda,-0x64(%ebp)
40debd:	c7 45 98 20 0f 00 00 	movl   $0xf20,-0x68(%ebp)
40dec4:	c7 45 94 2a 0f 00 00 	movl   $0xf2a,-0x6c(%ebp)
40decb:	c7 45 90 40 10 00 00 	movl   $0x1040,-0x70(%ebp)
40ded2:	c7 45 8c 4a 10 00 00 	movl   $0x104a,-0x74(%ebp)
40ded9:	c7 45 88 e0 17 00 00 	movl   $0x17e0,-0x78(%ebp)
40dee0:	c7 45 84 ea 17 00 00 	movl   $0x17ea,-0x7c(%ebp)
40dee7:	c7 45 80 10 18 00 00 	movl   $0x1810,-0x80(%ebp)
40deee:	c7 85 7c ff ff ff 1a 	movl   $0x181a,-0x84(%ebp)
40def5:	18 00 00
40def8:	c7 85 78 ff ff ff 1a 	movl   $0xff1a,-0x88(%ebp)
40deff:	ff 00 00
40df02:	6a 30                	push   $0x30
40df04:	59                   	pop    %ecx
40df05:	85 ff                	test   %edi,%edi
40df07:	74 09                	je     0x40df12
40df09:	83 ff 10             	cmp    $0x10,%edi
40df0c:	0f 85 ed 01 00 00    	jne    0x40e0ff
40df12:	66 3b f1             	cmp    %cx,%si
40df15:	0f 82 6f 01 00 00    	jb     0x40e08a
40df1b:	66 3b b5 74 ff ff ff 	cmp    -0x8c(%ebp),%si
40df22:	73 0a                	jae    0x40df2e
40df24:	0f b7 c6             	movzwl %si,%eax
40df27:	2b c1                	sub    %ecx,%eax
40df29:	e9 57 01 00 00       	jmp    0x40e085
40df2e:	66 3b f0             	cmp    %ax,%si
40df31:	0f 83 38 01 00 00    	jae    0x40e06f
40df37:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40df3a:	66 3b f1             	cmp    %cx,%si
40df3d:	0f 82 47 01 00 00    	jb     0x40e08a
40df43:	66 3b 75 f4          	cmp    -0xc(%ebp),%si
40df47:	72 db                	jb     0x40df24
40df49:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40df4c:	66 3b f1             	cmp    %cx,%si
40df4f:	0f 82 35 01 00 00    	jb     0x40e08a
40df55:	66 3b 75 ec          	cmp    -0x14(%ebp),%si
40df59:	72 c9                	jb     0x40df24
40df5b:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40df5e:	66 3b f1             	cmp    %cx,%si
40df61:	0f 82 23 01 00 00    	jb     0x40e08a
40df67:	66 3b 75 e4          	cmp    -0x1c(%ebp),%si
40df6b:	72 b7                	jb     0x40df24
40df6d:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40df70:	66 3b f1             	cmp    %cx,%si
40df73:	0f 82 11 01 00 00    	jb     0x40e08a
40df79:	66 3b 75 dc          	cmp    -0x24(%ebp),%si
40df7d:	72 a5                	jb     0x40df24
40df7f:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40df82:	66 3b f1             	cmp    %cx,%si
40df85:	0f 82 ff 00 00 00    	jb     0x40e08a
40df8b:	66 3b 75 d4          	cmp    -0x2c(%ebp),%si
40df8f:	72 93                	jb     0x40df24
40df91:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40df94:	66 3b f1             	cmp    %cx,%si
40df97:	0f 82 ed 00 00 00    	jb     0x40e08a
40df9d:	66 3b 75 cc          	cmp    -0x34(%ebp),%si
40dfa1:	72 81                	jb     0x40df24
40dfa3:	8b 4d c8             	mov    -0x38(%ebp),%ecx
40dfa6:	66 3b f1             	cmp    %cx,%si
40dfa9:	0f 82 db 00 00 00    	jb     0x40e08a
40dfaf:	66 3b 75 c4          	cmp    -0x3c(%ebp),%si
40dfb3:	0f 82 6b ff ff ff    	jb     0x40df24
40dfb9:	8b 4d c0             	mov    -0x40(%ebp),%ecx
40dfbc:	66 3b f1             	cmp    %cx,%si
40dfbf:	0f 82 c5 00 00 00    	jb     0x40e08a
40dfc5:	66 3b 75 bc          	cmp    -0x44(%ebp),%si
40dfc9:	0f 82 55 ff ff ff    	jb     0x40df24
40dfcf:	8b 4d b8             	mov    -0x48(%ebp),%ecx
40dfd2:	66 3b f1             	cmp    %cx,%si
40dfd5:	0f 82 af 00 00 00    	jb     0x40e08a
40dfdb:	66 3b 75 b4          	cmp    -0x4c(%ebp),%si
40dfdf:	0f 82 3f ff ff ff    	jb     0x40df24
40dfe5:	8b 4d b0             	mov    -0x50(%ebp),%ecx
40dfe8:	66 3b f1             	cmp    %cx,%si
40dfeb:	0f 82 99 00 00 00    	jb     0x40e08a
40dff1:	66 3b 75 ac          	cmp    -0x54(%ebp),%si
40dff5:	0f 82 29 ff ff ff    	jb     0x40df24
40dffb:	8b 4d a8             	mov    -0x58(%ebp),%ecx
40dffe:	66 3b f1             	cmp    %cx,%si
40e001:	0f 82 83 00 00 00    	jb     0x40e08a
40e007:	66 3b 75 a4          	cmp    -0x5c(%ebp),%si
40e00b:	0f 82 13 ff ff ff    	jb     0x40df24
40e011:	8b 4d a0             	mov    -0x60(%ebp),%ecx
40e014:	66 3b f1             	cmp    %cx,%si
40e017:	72 71                	jb     0x40e08a
40e019:	66 3b 75 9c          	cmp    -0x64(%ebp),%si
40e01d:	0f 82 01 ff ff ff    	jb     0x40df24
40e023:	8b 4d 98             	mov    -0x68(%ebp),%ecx
40e026:	66 3b f1             	cmp    %cx,%si
40e029:	72 5f                	jb     0x40e08a
40e02b:	66 3b 75 94          	cmp    -0x6c(%ebp),%si
40e02f:	0f 82 ef fe ff ff    	jb     0x40df24
40e035:	8b 4d 90             	mov    -0x70(%ebp),%ecx
40e038:	66 3b f1             	cmp    %cx,%si
40e03b:	72 4d                	jb     0x40e08a
40e03d:	66 3b 75 8c          	cmp    -0x74(%ebp),%si
40e041:	0f 82 dd fe ff ff    	jb     0x40df24
40e047:	8b 4d 88             	mov    -0x78(%ebp),%ecx
40e04a:	66 3b f1             	cmp    %cx,%si
40e04d:	72 3b                	jb     0x40e08a
40e04f:	66 3b 75 84          	cmp    -0x7c(%ebp),%si
40e053:	0f 82 cb fe ff ff    	jb     0x40df24
40e059:	8b 4d 80             	mov    -0x80(%ebp),%ecx
40e05c:	66 3b f1             	cmp    %cx,%si
40e05f:	72 29                	jb     0x40e08a
40e061:	66 3b b5 7c ff ff ff 	cmp    -0x84(%ebp),%si
40e068:	73 20                	jae    0x40e08a
40e06a:	e9 b5 fe ff ff       	jmp    0x40df24
40e06f:	66 3b b5 78 ff ff ff 	cmp    -0x88(%ebp),%si
40e076:	73 0a                	jae    0x40e082
40e078:	0f b7 c6             	movzwl %si,%eax
40e07b:	2d 10 ff 00 00       	sub    $0xff10,%eax
40e080:	eb 03                	jmp    0x40e085
40e082:	83 c8 ff             	or     $0xffffffff,%eax
40e085:	83 f8 ff             	cmp    $0xffffffff,%eax
40e088:	75 2a                	jne    0x40e0b4
40e08a:	0f b7 c6             	movzwl %si,%eax
40e08d:	83 f8 41             	cmp    $0x41,%eax
40e090:	72 0a                	jb     0x40e09c
40e092:	83 f8 5a             	cmp    $0x5a,%eax
40e095:	77 05                	ja     0x40e09c
40e097:	8d 48 9f             	lea    -0x61(%eax),%ecx
40e09a:	eb 08                	jmp    0x40e0a4
40e09c:	8d 48 9f             	lea    -0x61(%eax),%ecx
40e09f:	83 f9 19             	cmp    $0x19,%ecx
40e0a2:	77 0d                	ja     0x40e0b1
40e0a4:	83 f9 19             	cmp    $0x19,%ecx
40e0a7:	77 03                	ja     0x40e0ac
40e0a9:	83 c0 e0             	add    $0xffffffe0,%eax
40e0ac:	83 c0 c9             	add    $0xffffffc9,%eax
40e0af:	eb 03                	jmp    0x40e0b4
40e0b1:	83 c8 ff             	or     $0xffffffff,%eax
40e0b4:	85 c0                	test   %eax,%eax
40e0b6:	74 0c                	je     0x40e0c4
40e0b8:	85 ff                	test   %edi,%edi
40e0ba:	75 43                	jne    0x40e0ff
40e0bc:	6a 0a                	push   $0xa
40e0be:	5f                   	pop    %edi
40e0bf:	89 7d 14             	mov    %edi,0x14(%ebp)
40e0c2:	eb 3b                	jmp    0x40e0ff
40e0c4:	0f b7 02             	movzwl (%edx),%eax
40e0c7:	8d 4a 02             	lea    0x2(%edx),%ecx
40e0ca:	89 4d 0c             	mov    %ecx,0xc(%ebp)
40e0cd:	83 f8 78             	cmp    $0x78,%eax
40e0d0:	74 1a                	je     0x40e0ec
40e0d2:	83 f8 58             	cmp    $0x58,%eax
40e0d5:	74 15                	je     0x40e0ec
40e0d7:	85 ff                	test   %edi,%edi
40e0d9:	75 06                	jne    0x40e0e1
40e0db:	6a 08                	push   $0x8
40e0dd:	5f                   	pop    %edi
40e0de:	89 7d 14             	mov    %edi,0x14(%ebp)
40e0e1:	50                   	push   %eax
40e0e2:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40e0e5:	e8 a0 02 00 00       	call   0x40e38a
40e0ea:	eb 13                	jmp    0x40e0ff
40e0ec:	85 ff                	test   %edi,%edi
40e0ee:	75 06                	jne    0x40e0f6
40e0f0:	6a 10                	push   $0x10
40e0f2:	5f                   	pop    %edi
40e0f3:	89 7d 14             	mov    %edi,0x14(%ebp)
40e0f6:	0f b7 31             	movzwl (%ecx),%esi
40e0f9:	8d 51 02             	lea    0x2(%ecx),%edx
40e0fc:	89 55 0c             	mov    %edx,0xc(%ebp)
40e0ff:	83 c8 ff             	or     $0xffffffff,%eax
40e102:	33 d2                	xor    %edx,%edx
40e104:	f7 f7                	div    %edi
40e106:	8b f8                	mov    %eax,%edi
40e108:	6a 30                	push   $0x30
40e10a:	59                   	pop    %ecx
40e10b:	66 3b f1             	cmp    %cx,%si
40e10e:	0f 82 6d 01 00 00    	jb     0x40e281
40e114:	6a 3a                	push   $0x3a
40e116:	58                   	pop    %eax
40e117:	66 3b f0             	cmp    %ax,%si
40e11a:	73 0a                	jae    0x40e126
40e11c:	0f b7 c6             	movzwl %si,%eax
40e11f:	2b c1                	sub    %ecx,%eax
40e121:	e9 56 01 00 00       	jmp    0x40e27c