406d99:	ff 15 00 a0 40 00    	call   *0x40a000
406d9f:	3b fb                	cmp    %ebx,%edi
406da1:	74 11                	je     0x406db4
406da3:	8d 45 e0             	lea    -0x20(%ebp),%eax
406da6:	68 d8 a5 40 00       	push   $0x40a5d8
406dab:	50                   	push   %eax
406dac:	89 5d e0             	mov    %ebx,-0x20(%ebp)
406daf:	e8 82 21 00 00       	call   0x408f36
406db4:	8b 46 10             	mov    0x10(%esi),%eax
406db7:	3d d9 04 00 00       	cmp    $0x4d9,%eax
406dbc:	7d 18                	jge    0x406dd6
406dbe:	3d dc 04 00 00       	cmp    $0x4dc,%eax
406dc3:	7e 11                	jle    0x406dd6
406dc5:	8d 45 dc             	lea    -0x24(%ebp),%eax
406dc8:	68 d8 a5 40 00       	push   $0x40a5d8
406dcd:	50                   	push   %eax
406dce:	89 5d dc             	mov    %ebx,-0x24(%ebp)
406dd1:	e8 60 21 00 00       	call   0x408f36
406dd6:	8b 46 20             	mov    0x20(%esi),%eax
406dd9:	3d d1 04 00 00       	cmp    $0x4d1,%eax
406dde:	0f 8c 92 00 00 00    	jl     0x406e76
406de4:	3d d4 04 00 00       	cmp    $0x4d4,%eax
406de9:	0f 8f 87 00 00 00    	jg     0x406e76
406def:	dd 46 18             	fldl   0x18(%esi)
406df2:	dc 1d 30 a3 40 00    	fcompl 0x40a330
406df8:	df e0                	fnstsw %ax
406dfa:	9e                   	sahf
406dfb:	72 68                	jb     0x406e65
406dfd:	dd 46 18             	fldl   0x18(%esi)
406e00:	dc 1d 68 a3 40 00    	fcompl 0x40a368
406e06:	df e0                	fnstsw %ax
406e08:	9e                   	sahf
406e09:	73 5a                	jae    0x406e65
406e0b:	8b 06                	mov    (%esi),%eax
406e0d:	83 f8 f6             	cmp    $0xfffffff6,%eax
406e10:	7c 42                	jl     0x406e54
406e12:	8b 4e 08             	mov    0x8(%esi),%ecx
406e15:	2b c8                	sub    %eax,%ecx
406e17:	83 f9 50             	cmp    $0x50,%ecx
406e1a:	7c 38                	jl     0x406e54
406e1c:	8b 46 04             	mov    0x4(%esi),%eax
406e1f:	83 f8 f6             	cmp    $0xfffffff6,%eax
406e22:	7c 1f                	jl     0x406e43
406e24:	8b 4e 0c             	mov    0xc(%esi),%ecx
406e27:	2b c8                	sub    %eax,%ecx
406e29:	83 f9 3c             	cmp    $0x3c,%ecx
406e2c:	7c 15                	jl     0x406e43
406e2e:	8d 45 d8             	lea    -0x28(%ebp),%eax
406e31:	68 d8 a5 40 00       	push   $0x40a5d8
406e36:	50                   	push   %eax
406e37:	c7 45 d8 01 00 00 00 	movl   $0x1,-0x28(%ebp)
406e3e:	e8 f3 20 00 00       	call   0x408f36
406e43:	8d 45 d4             	lea    -0x2c(%ebp),%eax
406e46:	68 d8 a5 40 00       	push   $0x40a5d8
406e4b:	50                   	push   %eax
406e4c:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
406e4f:	e8 e2 20 00 00       	call   0x408f36
406e54:	8d 45 d0             	lea    -0x30(%ebp),%eax
406e57:	68 d8 a5 40 00       	push   $0x40a5d8
406e5c:	50                   	push   %eax
406e5d:	89 5d d0             	mov    %ebx,-0x30(%ebp)
406e60:	e8 d1 20 00 00       	call   0x408f36
406e65:	8d 45 cc             	lea    -0x34(%ebp),%eax
406e68:	68 d8 a5 40 00       	push   $0x40a5d8
406e6d:	50                   	push   %eax
406e6e:	89 5d cc             	mov    %ebx,-0x34(%ebp)
406e71:	e8 c0 20 00 00       	call   0x408f36
406e76:	8d 45 c8             	lea    -0x38(%ebp),%eax
406e79:	68 d8 a5 40 00       	push   $0x40a5d8
406e7e:	50                   	push   %eax
406e7f:	89 5d c8             	mov    %ebx,-0x38(%ebp)
406e82:	e8 af 20 00 00       	call   0x408f36
406e87:	33 db                	xor    %ebx,%ebx
406e89:	39 5d bc             	cmp    %ebx,-0x44(%ebp)
406e8c:	75 5a                	jne    0x406ee8
406e8e:	8d 45 ac             	lea    -0x54(%ebp),%eax
406e91:	53                   	push   %ebx
406e92:	50                   	push   %eax
406e93:	53                   	push   %ebx
406e94:	6a 30                	push   $0x30
406e96:	ff 15 2c a2 40 00    	call   *0x40a22c
406e9c:	8b 45 b4             	mov    -0x4c(%ebp),%eax
406e9f:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
406ea2:	2b 45 ac             	sub    -0x54(%ebp),%eax
406ea5:	bf ee 02 00 00       	mov    $0x2ee,%edi
406eaa:	dd 05 60 a3 40 00    	fldl   0x40a360
406eb0:	2b c7                	sub    %edi,%eax
406eb2:	be 26 02 00 00       	mov    $0x226,%esi
406eb7:	99                   	cltd
406eb8:	dd 59 18             	fstpl  0x18(%ecx)
406ebb:	2b c2                	sub    %edx,%eax
406ebd:	c7 41 10 01 00 00 00 	movl   $0x1,0x10(%ecx)
406ec4:	d1 f8                	sar    $1,%eax
406ec6:	89 01                	mov    %eax,(%ecx)
406ec8:	8b 45 b8             	mov    -0x48(%ebp),%eax
406ecb:	2b 45 b0             	sub    -0x50(%ebp),%eax
406ece:	c7 41 20 d2 04 00 00 	movl   $0x4d2,0x20(%ecx)
406ed5:	89 79 08             	mov    %edi,0x8(%ecx)
406ed8:	89 71 0c             	mov    %esi,0xc(%ecx)
406edb:	2b c6                	sub    %esi,%eax
406edd:	88 59 24             	mov    %bl,0x24(%ecx)
406ee0:	99                   	cltd
406ee1:	2b c2                	sub    %edx,%eax
406ee3:	d1 f8                	sar    $1,%eax
406ee5:	89 41 04             	mov    %eax,0x4(%ecx)
406ee8:	b8 ee 6e 40 00       	mov    $0x406eee,%eax
406eed:	c3                   	ret
406eee:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406ef1:	5f                   	pop    %edi
406ef2:	5e                   	pop    %esi
406ef3:	32 c0                	xor    %al,%al
406ef5:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406efc:	5b                   	pop    %ebx
406efd:	c9                   	leave
406efe:	c3                   	ret
406eff:	53                   	push   %ebx
406f00:	55                   	push   %ebp
406f01:	56                   	push   %esi
406f02:	57                   	push   %edi
406f03:	8b f1                	mov    %ecx,%esi
406f05:	6a 01                	push   $0x1
406f07:	ff b6 f0 01 00 00    	push   0x1f0(%esi)
406f0d:	ff 15 20 a2 40 00    	call   *0x40a220
406f13:	50                   	push   %eax
406f14:	ff 15 c8 a2 40 00    	call   *0x40a2c8
406f1a:	8b 7c 24 14          	mov    0x14(%esp),%edi
406f1e:	8b d8                	mov    %eax,%ebx
406f20:	85 ff                	test   %edi,%edi
406f22:	bd 2c 01 00 00       	mov    $0x12c,%ebp
406f27:	74 1e                	je     0x406f47
406f29:	6a 00                	push   $0x0
406f2b:	ff 76 20             	push   0x20(%esi)
406f2e:	53                   	push   %ebx
406f2f:	e8 27 1f 00 00       	call   0x408e5b
406f34:	83 c4 0c             	add    $0xc,%esp
406f37:	89 7e 20             	mov    %edi,0x20(%esi)
406f3a:	55                   	push   %ebp
406f3b:	ff b6 f0 01 00 00    	push   0x1f0(%esi)
406f41:	ff 15 24 a2 40 00    	call   *0x40a224
406f47:	6a 01                	push   $0x1
406f49:	ff 76 20             	push   0x20(%esi)
406f4c:	53                   	push   %ebx
406f4d:	e8 09 1f 00 00       	call   0x408e5b
406f52:	8b 46 20             	mov    0x20(%esi),%eax
406f55:	83 c4 0c             	add    $0xc,%esp
406f58:	2d d1 04 00 00       	sub    $0x4d1,%eax
406f5d:	74 2d                	je     0x406f8c
406f5f:	48                   	dec    %eax
406f60:	74 1e                	je     0x406f80
406f62:	48                   	dec    %eax
406f63:	74 0f                	je     0x406f74
406f65:	48                   	dec    %eax
406f66:	75 2e                	jne    0x406f96
406f68:	c7 86 c0 00 00 00 88 	movl   $0x1388,0xc0(%esi)
406f6f:	13 00 00
406f72:	eb 22                	jmp    0x406f96
406f74:	c7 86 c0 00 00 00 d0 	movl   $0x7d0,0xc0(%esi)
406f7b:	07 00 00
406f7e:	eb 16                	jmp    0x406f96
406f80:	c7 86 c0 00 00 00 e8 	movl   $0x3e8,0xc0(%esi)
406f87:	03 00 00
406f8a:	eb 0a                	jmp    0x406f96
406f8c:	c7 86 c0 00 00 00 f4 	movl   $0x1f4,0xc0(%esi)
406f93:	01 00 00
406f96:	6a 00                	push   $0x0
406f98:	ff b6 c0 00 00 00    	push   0xc0(%esi)
406f9e:	55                   	push   %ebp
406f9f:	ff b6 f0 01 00 00    	push   0x1f0(%esi)
406fa5:	ff 15 28 a2 40 00    	call   *0x40a228
406fab:	5f                   	pop    %edi
406fac:	5e                   	pop    %esi
406fad:	5d                   	pop    %ebp
406fae:	5b                   	pop    %ebx
406faf:	c2 04 00             	ret    $0x4
406fb2:	55                   	push   %ebp
406fb3:	8b ec                	mov    %esp,%ebp
406fb5:	81 ec 88 01 00 00    	sub    $0x188,%esp
406fbb:	53                   	push   %ebx
406fbc:	56                   	push   %esi
406fbd:	57                   	push   %edi
406fbe:	89 4d fc             	mov    %ecx,-0x4(%ebp)
406fc1:	ff 75 08             	push   0x8(%ebp)
406fc4:	51                   	push   %ecx
406fc5:	e8 7e 20 00 00       	call   0x409048
406fca:	a1 30 cc 40 00       	mov    0x40cc30,%eax
406fcf:	59                   	pop    %ecx
406fd0:	85 c0                	test   %eax,%eax
406fd2:	59                   	pop    %ecx
406fd3:	bb 02 00 00 80       	mov    $0x80000002,%ebx
406fd8:	74 2c                	je     0x407006
406fda:	be 30 cc 40 00       	mov    $0x40cc30,%esi
406fdf:	8b fe                	mov    %esi,%edi
406fe1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406fe4:	50                   	push   %eax
406fe5:	53                   	push   %ebx
406fe6:	e8 a9 05 00 00       	call   0x407594
406feb:	ff 37                	push   (%edi)
406fed:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406ff0:	68 01 00 00 80       	push   $0x80000001
406ff5:	e8 9a 05 00 00       	call   0x407594
406ffa:	8b 46 04             	mov    0x4(%esi),%eax
406ffd:	83 c6 04             	add    $0x4,%esi
407000:	85 c0                	test   %eax,%eax
407002:	8b fe                	mov    %esi,%edi
407004:	75 db                	jne    0x406fe1
407006:	6a 0d                	push   $0xd
407008:	be b4 ce 40 00       	mov    $0x40ceb4,%esi
40700d:	59                   	pop    %ecx
40700e:	8d 7d b4             	lea    -0x4c(%ebp),%edi
407011:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
407013:	a1 b0 ce 40 00       	mov    0x40ceb0,%eax
407018:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40701b:	89 45 f4             	mov    %eax,-0xc(%ebp)
40701e:	8d 45 08             	lea    0x8(%ebp),%eax
407021:	50                   	push   %eax
407022:	8d 85 b0 fe ff ff    	lea    -0x150(%ebp),%eax
407028:	a4                   	movsb  %ds:(%esi),%es:(%edi)
407029:	be a8 ce 40 00       	mov    $0x40cea8,%esi
40702e:	8d 7d ec             	lea    -0x14(%ebp),%edi
407031:	50                   	push   %eax
407032:	8d 45 f8             	lea    -0x8(%ebp),%eax
407035:	a5                   	movsl  %ds:(%esi),%es:(%edi)
407036:	50                   	push   %eax
407037:	8d 45 f4             	lea    -0xc(%ebp),%eax
40703a:	50                   	push   %eax
40703b:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40703e:	a4                   	movsb  %ds:(%esi),%es:(%edi)
40703f:	be 04 01 00 00       	mov    $0x104,%esi
407044:	50                   	push   %eax
407045:	53                   	push   %ebx
407046:	89 75 08             	mov    %esi,0x8(%ebp)
407049:	e8 aa 01 00 00       	call   0x4071f8
40704e:	8d 45 08             	lea    0x8(%ebp),%eax
407051:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407054:	50                   	push   %eax
407055:	8d 85 b0 fe ff ff    	lea    -0x150(%ebp),%eax
40705b:	50                   	push   %eax
40705c:	8d 45 f8             	lea    -0x8(%ebp),%eax
40705f:	50                   	push   %eax
407060:	8d 45 ec             	lea    -0x14(%ebp),%eax
407063:	50                   	push   %eax
407064:	8d 45 b4             	lea    -0x4c(%ebp),%eax
407067:	50                   	push   %eax
407068:	53                   	push   %ebx
407069:	89 75 08             	mov    %esi,0x8(%ebp)
40706c:	e8 87 01 00 00       	call   0x4071f8
407071:	8d 45 08             	lea    0x8(%ebp),%eax
407074:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407077:	50                   	push   %eax
407078:	8d 85 b0 fe ff ff    	lea    -0x150(%ebp),%eax
40707e:	50                   	push   %eax
40707f:	8d 45 f8             	lea    -0x8(%ebp),%eax
407082:	50                   	push   %eax
407083:	8d 45 f4             	lea    -0xc(%ebp),%eax
407086:	50                   	push   %eax
407087:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40708a:	bf 01 00 00 80       	mov    $0x80000001,%edi
40708f:	50                   	push   %eax
407090:	57                   	push   %edi
407091:	89 75 08             	mov    %esi,0x8(%ebp)
407094:	e8 5f 01 00 00       	call   0x4071f8
407099:	8d 45 08             	lea    0x8(%ebp),%eax
40709c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40709f:	50                   	push   %eax
4070a0:	8d 85 b0 fe ff ff    	lea    -0x150(%ebp),%eax
4070a6:	50                   	push   %eax
4070a7:	8d 45 f8             	lea    -0x8(%ebp),%eax
4070aa:	50                   	push   %eax
4070ab:	8d 45 ec             	lea    -0x14(%ebp),%eax
4070ae:	50                   	push   %eax
4070af:	8d 45 b4             	lea    -0x4c(%ebp),%eax
4070b2:	50                   	push   %eax
4070b3:	57                   	push   %edi
4070b4:	89 75 08             	mov    %esi,0x8(%ebp)
4070b7:	e8 3c 01 00 00       	call   0x4071f8
4070bc:	8d 45 08             	lea    0x8(%ebp),%eax
4070bf:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4070c2:	50                   	push   %eax
4070c3:	8d 85 b0 fe ff ff    	lea    -0x150(%ebp),%eax
4070c9:	50                   	push   %eax
4070ca:	8d 45 f8             	lea    -0x8(%ebp),%eax
4070cd:	50                   	push   %eax
4070ce:	68 a0 ce 40 00       	push   $0x40cea0
4070d3:	68 68 ce 40 00       	push   $0x40ce68
4070d8:	89 75 08             	mov    %esi,0x8(%ebp)
4070db:	53                   	push   %ebx
4070dc:	e8 17 01 00 00       	call   0x4071f8
4070e1:	8d 45 08             	lea    0x8(%ebp),%eax
4070e4:	89 75 08             	mov    %esi,0x8(%ebp)
4070e7:	50                   	push   %eax
4070e8:	8d 85 b0 fe ff ff    	lea    -0x150(%ebp),%eax
4070ee:	50                   	push   %eax
4070ef:	8d 45 f8             	lea    -0x8(%ebp),%eax
4070f2:	50                   	push   %eax
4070f3:	68 60 ce 40 00       	push   $0x40ce60
4070f8:	68 1c ce 40 00       	push   $0x40ce1c
4070fd:	57                   	push   %edi
4070fe:	8b 7d fc             	mov    -0x4(%ebp),%edi
407101:	8b cf                	mov    %edi,%ecx
407103:	e8 f0 00 00 00       	call   0x4071f8
407108:	85 c0                	test   %eax,%eax
40710a:	74 0e                	je     0x40711a
40710c:	8d 85 b0 fe ff ff    	lea    -0x150(%ebp),%eax
407112:	8b cf                	mov    %edi,%ecx
407114:	50                   	push   %eax
407115:	e8 39 05 00 00       	call   0x407653
40711a:	8d 45 08             	lea    0x8(%ebp),%eax
40711d:	8b cf                	mov    %edi,%ecx
40711f:	50                   	push   %eax
407120:	8d 85 b0 fe ff ff    	lea    -0x150(%ebp),%eax
407126:	50                   	push   %eax
407127:	8d 45 f8             	lea    -0x8(%ebp),%eax
40712a:	50                   	push   %eax
40712b:	68 0c ce 40 00       	push   $0x40ce0c
407130:	68 1c ce 40 00       	push   $0x40ce1c
407135:	53                   	push   %ebx
407136:	89 75 08             	mov    %esi,0x8(%ebp)
407139:	e8 ba 00 00 00       	call   0x4071f8
40713e:	85 c0                	test   %eax,%eax
407140:	74 0e                	je     0x407150
407142:	8d 85 b0 fe ff ff    	lea    -0x150(%ebp),%eax
407148:	8b cf                	mov    %edi,%ecx
40714a:	50                   	push   %eax
40714b:	e8 03 05 00 00       	call   0x407653
407150:	6a 0d                	push   $0xd
407152:	be d4 cd 40 00       	mov    $0x40cdd4,%esi
407157:	59                   	pop    %ecx
407158:	8d bd 78 fe ff ff    	lea    -0x188(%ebp),%edi
40715e:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
407160:	a4                   	movsb  %ds:(%esi),%es:(%edi)
407161:	8b 7d fc             	mov    -0x4(%ebp),%edi
407164:	6a 00                	push   $0x0
407166:	8d 85 78 fe ff ff    	lea    -0x188(%ebp),%eax
40716c:	68 c8 cd 40 00       	push   $0x40cdc8
407171:	50                   	push   %eax
407172:	53                   	push   %ebx
407173:	8b cf                	mov    %edi,%ecx
407175:	e8 b1 02 00 00       	call   0x40742b
40717a:	8d 45 08             	lea    0x8(%ebp),%eax
40717d:	be 04 01 00 00       	mov    $0x104,%esi
407182:	50                   	push   %eax
407183:	8d 85 b0 fe ff ff    	lea    -0x150(%ebp),%eax
407189:	50                   	push   %eax
40718a:	8d 45 f8             	lea    -0x8(%ebp),%eax
40718d:	50                   	push   %eax
40718e:	68 b8 cd 40 00       	push   $0x40cdb8
407193:	68 a0 cd 40 00       	push   $0x40cda0
407198:	68 01 00 00 80       	push   $0x80000001
40719d:	8b cf                	mov    %edi,%ecx
40719f:	89 75 08             	mov    %esi,0x8(%ebp)