40ce21:	8b 5d 14             	mov    0x14(%ebp),%ebx
40ce24:	c1 e3 02             	shl    $0x2,%ebx
40ce27:	88 45 ff             	mov    %al,-0x1(%ebp)
40ce2a:	59                   	pop    %ecx
40ce2b:	84 c0                	test   %al,%al
40ce2d:	74 08                	je     0x40ce37
40ce2f:	8b b3 78 fd 41 00    	mov    0x41fd78(%ebx),%esi
40ce35:	eb 06                	jmp    0x40ce3d
40ce37:	8b b3 44 fd 41 00    	mov    0x41fd44(%ebx),%esi
40ce3d:	57                   	push   %edi
40ce3e:	46                   	inc    %esi
40ce3f:	e8 5b f8 ff ff       	call   0x40c69f
40ce44:	59                   	pop    %ecx
40ce45:	69 cf 6d 01 00 00    	imul   $0x16d,%edi,%ecx
40ce4b:	03 c6                	add    %esi,%eax
40ce4d:	6a 07                	push   $0x7
40ce4f:	81 c1 36 9c ff ff    	add    $0xffff9c36,%ecx
40ce55:	03 c1                	add    %ecx,%eax
40ce57:	99                   	cltd
40ce58:	59                   	pop    %ecx
40ce59:	f7 f9                	idiv   %ecx
40ce5b:	8b 4d 18             	mov    0x18(%ebp),%ecx
40ce5e:	6b c1 07             	imul   $0x7,%ecx,%eax
40ce61:	2b c2                	sub    %edx,%eax
40ce63:	3b 55 1c             	cmp    0x1c(%ebp),%edx
40ce66:	7f 03                	jg     0x40ce6b
40ce68:	83 c0 f9             	add    $0xfffffff9,%eax
40ce6b:	03 45 1c             	add    0x1c(%ebp),%eax
40ce6e:	03 f0                	add    %eax,%esi
40ce70:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
40ce74:	74 08                	je     0x40ce7e
40ce76:	8b 83 7c fd 41 00    	mov    0x41fd7c(%ebx),%eax
40ce7c:	eb 06                	jmp    0x40ce84
40ce7e:	8b 83 48 fd 41 00    	mov    0x41fd48(%ebx),%eax
40ce84:	5b                   	pop    %ebx
40ce85:	83 f9 05             	cmp    $0x5,%ecx
40ce88:	75 2a                	jne    0x40ceb4
40ce8a:	3b f0                	cmp    %eax,%esi
40ce8c:	7e 26                	jle    0x40ceb4
40ce8e:	83 ee 07             	sub    $0x7,%esi
40ce91:	eb 21                	jmp    0x40ceb4
40ce93:	57                   	push   %edi
40ce94:	e8 40 f8 ff ff       	call   0x40c6d9
40ce99:	84 c0                	test   %al,%al
40ce9b:	8b 45 14             	mov    0x14(%ebp),%eax
40ce9e:	59                   	pop    %ecx
40ce9f:	74 09                	je     0x40ceaa
40cea1:	8b 34 85 78 fd 41 00 	mov    0x41fd78(,%eax,4),%esi
40cea8:	eb 07                	jmp    0x40ceb1
40ceaa:	8b 34 85 44 fd 41 00 	mov    0x41fd44(,%eax,4),%esi
40ceb1:	03 75 20             	add    0x20(%ebp),%esi
40ceb4:	6b 45 24 3c          	imul   $0x3c,0x24(%ebp),%eax
40ceb8:	03 45 28             	add    0x28(%ebp),%eax
40cebb:	6b c0 3c             	imul   $0x3c,%eax,%eax
40cebe:	03 45 2c             	add    0x2c(%ebp),%eax
40cec1:	69 c0 e8 03 00 00    	imul   $0x3e8,%eax,%eax
40cec7:	03 45 30             	add    0x30(%ebp),%eax
40ceca:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40cece:	75 17                	jne    0x40cee7
40ced0:	89 35 8c 32 42 00    	mov    %esi,0x42328c
40ced6:	a3 90 32 42 00       	mov    %eax,0x423290
40cedb:	89 3d 88 32 42 00    	mov    %edi,0x423288
40cee1:	5f                   	pop    %edi
40cee2:	5e                   	pop    %esi
40cee3:	8b e5                	mov    %ebp,%esp
40cee5:	5d                   	pop    %ebp
40cee6:	c3                   	ret
40cee7:	a3 9c 32 42 00       	mov    %eax,0x42329c
40ceec:	8d 45 f8             	lea    -0x8(%ebp),%eax
40ceef:	50                   	push   %eax
40cef0:	89 35 98 32 42 00    	mov    %esi,0x423298
40cef6:	e8 ce fa ff ff       	call   0x40c9c9
40cefb:	59                   	pop    %ecx
40cefc:	85 c0                	test   %eax,%eax
40cefe:	75 44                	jne    0x40cf44
40cf00:	69 45 f8 e8 03 00 00 	imul   $0x3e8,-0x8(%ebp),%eax
40cf07:	8b 0d 9c 32 42 00    	mov    0x42329c,%ecx
40cf0d:	03 c8                	add    %eax,%ecx
40cf0f:	89 0d 9c 32 42 00    	mov    %ecx,0x42329c
40cf15:	79 0e                	jns    0x40cf25
40cf17:	81 c1 00 5c 26 05    	add    $0x5265c00,%ecx
40cf1d:	ff 0d 98 32 42 00    	decl   0x423298
40cf23:	eb 11                	jmp    0x40cf36
40cf25:	b8 00 5c 26 05       	mov    $0x5265c00,%eax
40cf2a:	3b c8                	cmp    %eax,%ecx
40cf2c:	7c 0e                	jl     0x40cf3c
40cf2e:	2b c8                	sub    %eax,%ecx
40cf30:	ff 05 98 32 42 00    	incl   0x423298
40cf36:	89 0d 9c 32 42 00    	mov    %ecx,0x42329c
40cf3c:	89 3d 94 32 42 00    	mov    %edi,0x423294
40cf42:	eb 9d                	jmp    0x40cee1
40cf44:	6a 00                	push   $0x0
40cf46:	6a 00                	push   $0x0
40cf48:	6a 00                	push   $0x0
40cf4a:	6a 00                	push   $0x0
40cf4c:	6a 00                	push   $0x0
40cf4e:	e8 08 ad ff ff       	call   0x407c5b
40cf53:	cc                   	int3
40cf54:	8b ff                	mov    %edi,%edi
40cf56:	55                   	push   %ebp
40cf57:	8b ec                	mov    %esp,%ebp
40cf59:	83 ec 0c             	sub    $0xc,%esp
40cf5c:	53                   	push   %ebx
40cf5d:	56                   	push   %esi
40cf5e:	e8 34 fa ff ff       	call   0x40c997
40cf63:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40cf67:	8b d8                	mov    %eax,%ebx
40cf69:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40cf6d:	8d 45 fc             	lea    -0x4(%ebp),%eax
40cf70:	50                   	push   %eax
40cf71:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40cf74:	e8 7c fa ff ff       	call   0x40c9f5
40cf79:	59                   	pop    %ecx
40cf7a:	85 c0                	test   %eax,%eax
40cf7c:	0f 85 9a 01 00 00    	jne    0x40d11c
40cf82:	8d 45 f4             	lea    -0xc(%ebp),%eax
40cf85:	50                   	push   %eax
40cf86:	e8 12 fa ff ff       	call   0x40c99d
40cf8b:	59                   	pop    %ecx
40cf8c:	85 c0                	test   %eax,%eax
40cf8e:	0f 85 88 01 00 00    	jne    0x40d11c
40cf94:	8b 15 ac 44 42 00    	mov    0x4244ac,%edx
40cf9a:	8b 75 08             	mov    0x8(%ebp),%esi
40cf9d:	85 d2                	test   %edx,%edx
40cf9f:	74 34                	je     0x40cfd5
40cfa1:	8b ca                	mov    %edx,%ecx
40cfa3:	8b c6                	mov    %esi,%eax
40cfa5:	8a 18                	mov    (%eax),%bl
40cfa7:	3a 19                	cmp    (%ecx),%bl
40cfa9:	75 1a                	jne    0x40cfc5
40cfab:	84 db                	test   %bl,%bl
40cfad:	74 12                	je     0x40cfc1
40cfaf:	8a 58 01             	mov    0x1(%eax),%bl
40cfb2:	3a 59 01             	cmp    0x1(%ecx),%bl
40cfb5:	75 0e                	jne    0x40cfc5
40cfb7:	83 c0 02             	add    $0x2,%eax
40cfba:	83 c1 02             	add    $0x2,%ecx
40cfbd:	84 db                	test   %bl,%bl
40cfbf:	75 e4                	jne    0x40cfa5
40cfc1:	33 c0                	xor    %eax,%eax
40cfc3:	eb 05                	jmp    0x40cfca
40cfc5:	1b c0                	sbb    %eax,%eax
40cfc7:	83 c8 01             	or     $0x1,%eax
40cfca:	85 c0                	test   %eax,%eax
40cfcc:	0f 84 44 01 00 00    	je     0x40d116
40cfd2:	8b 5d f8             	mov    -0x8(%ebp),%ebx
40cfd5:	52                   	push   %edx
40cfd6:	e8 49 c8 ff ff       	call   0x409824
40cfdb:	59                   	pop    %ecx
40cfdc:	8b ce                	mov    %esi,%ecx
40cfde:	8d 51 01             	lea    0x1(%ecx),%edx
40cfe1:	8a 01                	mov    (%ecx),%al
40cfe3:	41                   	inc    %ecx
40cfe4:	84 c0                	test   %al,%al
40cfe6:	75 f9                	jne    0x40cfe1
40cfe8:	2b ca                	sub    %edx,%ecx
40cfea:	8d 41 01             	lea    0x1(%ecx),%eax
40cfed:	50                   	push   %eax
40cfee:	e8 6b c8 ff ff       	call   0x40985e
40cff3:	6a 00                	push   $0x0
40cff5:	a3 ac 44 42 00       	mov    %eax,0x4244ac
40cffa:	e8 25 c8 ff ff       	call   0x409824
40cfff:	8b 15 ac 44 42 00    	mov    0x4244ac,%edx
40d005:	59                   	pop    %ecx
40d006:	59                   	pop    %ecx
40d007:	85 d2                	test   %edx,%edx
40d009:	0f 84 07 01 00 00    	je     0x40d116
40d00f:	8b ce                	mov    %esi,%ecx
40d011:	57                   	push   %edi
40d012:	8d 79 01             	lea    0x1(%ecx),%edi
40d015:	8a 01                	mov    (%ecx),%al
40d017:	41                   	inc    %ecx
40d018:	84 c0                	test   %al,%al
40d01a:	75 f9                	jne    0x40d015
40d01c:	2b cf                	sub    %edi,%ecx
40d01e:	56                   	push   %esi
40d01f:	8d 41 01             	lea    0x1(%ecx),%eax
40d022:	50                   	push   %eax
40d023:	52                   	push   %edx
40d024:	e8 5e c7 ff ff       	call   0x409787
40d029:	83 c4 0c             	add    $0xc,%esp
40d02c:	85 c0                	test   %eax,%eax
40d02e:	0f 85 e8 00 00 00    	jne    0x40d11c
40d034:	6a 03                	push   $0x3
40d036:	5f                   	pop    %edi
40d037:	57                   	push   %edi
40d038:	56                   	push   %esi
40d039:	6a 40                	push   $0x40
40d03b:	ff 33                	push   (%ebx)
40d03d:	e8 fc 69 00 00       	call   0x413a3e
40d042:	83 c4 10             	add    $0x10,%esp
40d045:	85 c0                	test   %eax,%eax
40d047:	0f 85 cf 00 00 00    	jne    0x40d11c
40d04d:	80 3e 00             	cmpb   $0x0,(%esi)
40d050:	74 06                	je     0x40d058
40d052:	46                   	inc    %esi
40d053:	83 ef 01             	sub    $0x1,%edi
40d056:	75 f5                	jne    0x40d04d
40d058:	80 3e 2d             	cmpb   $0x2d,(%esi)
40d05b:	5f                   	pop    %edi
40d05c:	0f 94 c3             	sete   %bl
40d05f:	84 db                	test   %bl,%bl
40d061:	74 01                	je     0x40d064
40d063:	46                   	inc    %esi
40d064:	56                   	push   %esi
40d065:	e8 ab d2 ff ff       	call   0x40a315
40d06a:	59                   	pop    %ecx
40d06b:	69 c8 10 0e 00 00    	imul   $0xe10,%eax,%ecx
40d071:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40d074:	8a 06                	mov    (%esi),%al
40d076:	3c 2b                	cmp    $0x2b,%al
40d078:	74 08                	je     0x40d082
40d07a:	3c 30                	cmp    $0x30,%al
40d07c:	7c 07                	jl     0x40d085
40d07e:	3c 39                	cmp    $0x39,%al
40d080:	7f 03                	jg     0x40d085
40d082:	46                   	inc    %esi
40d083:	eb ef                	jmp    0x40d074
40d085:	80 3e 3a             	cmpb   $0x3a,(%esi)
40d088:	75 42                	jne    0x40d0cc
40d08a:	46                   	inc    %esi
40d08b:	56                   	push   %esi
40d08c:	e8 84 d2 ff ff       	call   0x40a315
40d091:	6b c0 3c             	imul   $0x3c,%eax,%eax
40d094:	59                   	pop    %ecx
40d095:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d098:	03 c8                	add    %eax,%ecx
40d09a:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40d09d:	eb 05                	jmp    0x40d0a4
40d09f:	3c 39                	cmp    $0x39,%al
40d0a1:	7f 07                	jg     0x40d0aa
40d0a3:	46                   	inc    %esi
40d0a4:	8a 06                	mov    (%esi),%al
40d0a6:	3c 30                	cmp    $0x30,%al
40d0a8:	7d f5                	jge    0x40d09f
40d0aa:	80 3e 3a             	cmpb   $0x3a,(%esi)
40d0ad:	75 1d                	jne    0x40d0cc
40d0af:	46                   	inc    %esi
40d0b0:	56                   	push   %esi
40d0b1:	e8 5f d2 ff ff       	call   0x40a315
40d0b6:	59                   	pop    %ecx
40d0b7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d0ba:	03 c8                	add    %eax,%ecx
40d0bc:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40d0bf:	eb 05                	jmp    0x40d0c6
40d0c1:	3c 39                	cmp    $0x39,%al
40d0c3:	7f 07                	jg     0x40d0cc
40d0c5:	46                   	inc    %esi
40d0c6:	8a 06                	mov    (%esi),%al
40d0c8:	3c 30                	cmp    $0x30,%al
40d0ca:	7d f5                	jge    0x40d0c1
40d0cc:	84 db                	test   %bl,%bl
40d0ce:	74 05                	je     0x40d0d5
40d0d0:	f7 d9                	neg    %ecx
40d0d2:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40d0d5:	33 c0                	xor    %eax,%eax
40d0d7:	38 06                	cmp    %al,(%esi)
40d0d9:	0f 95 c0             	setne  %al
40d0dc:	89 45 f4             	mov    %eax,-0xc(%ebp)
40d0df:	85 c0                	test   %eax,%eax
40d0e1:	8b 45 f8             	mov    -0x8(%ebp),%eax
40d0e4:	74 16                	je     0x40d0fc
40d0e6:	6a 03                	push   $0x3
40d0e8:	56                   	push   %esi
40d0e9:	6a 40                	push   $0x40
40d0eb:	ff 70 04             	push   0x4(%eax)
40d0ee:	e8 4b 69 00 00       	call   0x413a3e
40d0f3:	83 c4 10             	add    $0x10,%esp
40d0f6:	85 c0                	test   %eax,%eax
40d0f8:	74 08                	je     0x40d102
40d0fa:	eb 20                	jmp    0x40d11c
40d0fc:	8b 40 04             	mov    0x4(%eax),%eax
40d0ff:	c6 00 00             	movb   $0x0,(%eax)
40d102:	8b 75 fc             	mov    -0x4(%ebp),%esi
40d105:	e8 87 f8 ff ff       	call   0x40c991
40d10a:	89 30                	mov    %esi,(%eax)
40d10c:	8b 75 f4             	mov    -0xc(%ebp),%esi
40d10f:	e8 71 f8 ff ff       	call   0x40c985
40d114:	89 30                	mov    %esi,(%eax)
40d116:	5e                   	pop    %esi
40d117:	5b                   	pop    %ebx
40d118:	8b e5                	mov    %ebp,%esp
40d11a:	5d                   	pop    %ebp
40d11b:	c3                   	ret
40d11c:	33 c0                	xor    %eax,%eax
40d11e:	50                   	push   %eax
40d11f:	50                   	push   %eax
40d120:	50                   	push   %eax
40d121:	50                   	push   %eax
40d122:	50                   	push   %eax
40d123:	e8 33 ab ff ff       	call   0x407c5b
40d128:	cc                   	int3
40d129:	8b ff                	mov    %edi,%edi
40d12b:	55                   	push   %ebp
40d12c:	8b ec                	mov    %esp,%ebp
40d12e:	83 ec 10             	sub    $0x10,%esp
40d131:	53                   	push   %ebx
40d132:	56                   	push   %esi
40d133:	e8 5f f8 ff ff       	call   0x40c997
40d138:	8b f0                	mov    %eax,%esi
40d13a:	33 db                	xor    %ebx,%ebx
40d13c:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d13f:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40d142:	50                   	push   %eax
40d143:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40d146:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40d149:	e8 a7 f8 ff ff       	call   0x40c9f5
40d14e:	59                   	pop    %ecx
40d14f:	85 c0                	test   %eax,%eax
40d151:	0f 85 22 01 00 00    	jne    0x40d279
40d157:	8d 45 f8             	lea    -0x8(%ebp),%eax
40d15a:	50                   	push   %eax
40d15b:	e8 3d f8 ff ff       	call   0x40c99d
40d160:	59                   	pop    %ecx
40d161:	85 c0                	test   %eax,%eax
40d163:	0f 85 10 01 00 00    	jne    0x40d279
40d169:	8d 45 f4             	lea    -0xc(%ebp),%eax
40d16c:	50                   	push   %eax
40d16d:	e8 57 f8 ff ff       	call   0x40c9c9
40d172:	59                   	pop    %ecx
40d173:	85 c0                	test   %eax,%eax
40d175:	0f 85 fe 00 00 00    	jne    0x40d279
40d17b:	ff 35 ac 44 42 00    	push   0x4244ac
40d181:	e8 9e c6 ff ff       	call   0x409824
40d186:	89 1d ac 44 42 00    	mov    %ebx,0x4244ac
40d18c:	c7 04 24 b8 44 42 00 	movl   $0x4244b8,(%esp)
40d193:	ff 15 5c b1 41 00    	call   *0x41b15c
40d199:	83 f8 ff             	cmp    $0xffffffff,%eax
40d19c:	0f 84 b3 00 00 00    	je     0x40d255
40d1a2:	6b 0d b8 44 42 00 3c 	imul   $0x3c,0x4244b8,%ecx
40d1a9:	8b 15 0c 45 42 00    	mov    0x42450c,%edx
40d1af:	57                   	push   %edi
40d1b0:	33 ff                	xor    %edi,%edi
40d1b2:	47                   	inc    %edi
40d1b3:	89 3d b0 44 42 00    	mov    %edi,0x4244b0
40d1b9:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40d1bc:	66 39 1d fe 44 42 00 	cmp    %bx,0x4244fe
40d1c3:	74 08                	je     0x40d1cd
40d1c5:	6b c2 3c             	imul   $0x3c,%edx,%eax
40d1c8:	03 c8                	add    %eax,%ecx
40d1ca:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40d1cd:	66 39 1d 52 45 42 00 	cmp    %bx,0x424552
40d1d4:	74 16                	je     0x40d1ec
40d1d6:	a1 60 45 42 00       	mov    0x424560,%eax
40d1db:	85 c0                	test   %eax,%eax
40d1dd:	74 0d                	je     0x40d1ec
40d1df:	2b c2                	sub    %edx,%eax
40d1e1:	89 7d f8             	mov    %edi,-0x8(%ebp)
40d1e4:	6b c0 3c             	imul   $0x3c,%eax,%eax
40d1e7:	89 45 f4             	mov    %eax,-0xc(%ebp)