40dfe4:	66 85 f6             	test   %si,%si
40dfe7:	74 75                	je     0x40e05e
40dfe9:	39 1d 38 03 41 00    	cmp    %ebx,0x410338
40dfef:	75 10                	jne    0x40e001
40dff1:	68 38 03 41 00       	push   $0x410338
40dff6:	68 a8 7c 40 00       	push   $0x407ca8
40dffb:	ff 15 2c 11 40 00    	call   *0x40112c
40e001:	8b 35 38 03 41 00    	mov    0x410338,%esi
40e007:	8b 06                	mov    (%esi),%eax
40e009:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40e00c:	51                   	push   %ecx
40e00d:	56                   	push   %esi
40e00e:	ff 50 4c             	call   *0x4c(%eax)
40e011:	db e2                	fnclex
40e013:	3b c3                	cmp    %ebx,%eax
40e015:	7d 0b                	jge    0x40e022
40e017:	6a 4c                	push   $0x4c
40e019:	68 98 7c 40 00       	push   $0x407c98
40e01e:	56                   	push   %esi
40e01f:	50                   	push   %eax
40e020:	ff d7                	call   *%edi
40e022:	8b 45 dc             	mov    -0x24(%ebp),%eax
40e025:	8b 10                	mov    (%eax),%edx
40e027:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40e02a:	51                   	push   %ecx
40e02b:	68 9c 84 40 00       	push   $0x40849c
40e030:	68 74 84 40 00       	push   $0x408474
40e035:	50                   	push   %eax
40e036:	8b f0                	mov    %eax,%esi
40e038:	ff 52 24             	call   *0x24(%edx)
40e03b:	db e2                	fnclex
40e03d:	3b c3                	cmp    %ebx,%eax
40e03f:	7d 0b                	jge    0x40e04c
40e041:	6a 24                	push   $0x24
40e043:	68 20 7e 40 00       	push   $0x407e20
40e048:	56                   	push   %esi
40e049:	50                   	push   %eax
40e04a:	ff d7                	call   *%edi
40e04c:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40e04f:	ff 15 a8 11 40 00    	call   *0x4011a8
40e055:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40e058:	ff 15 ac 11 40 00    	call   *0x4011ac
40e05e:	b8 0a 00 00 00       	mov    $0xa,%eax
40e063:	8d 55 bc             	lea    -0x44(%ebp),%edx
40e066:	52                   	push   %edx
40e067:	89 45 bc             	mov    %eax,-0x44(%ebp)
40e06a:	89 45 cc             	mov    %eax,-0x34(%ebp)
40e06d:	8d 45 cc             	lea    -0x34(%ebp),%eax
40e070:	50                   	push   %eax
40e071:	68 00 00 f0 3f       	push   $0x3ff00000
40e076:	53                   	push   %ebx
40e077:	68 00 00 f0 3f       	push   $0x3ff00000
40e07c:	53                   	push   %ebx
40e07d:	68 00 00 f0 3f       	push   $0x3ff00000
40e082:	53                   	push   %ebx
40e083:	b9 04 00 02 80       	mov    $0x80020004,%ecx
40e088:	68 00 00 f0 3f       	push   $0x3ff00000
40e08d:	53                   	push   %ebx
40e08e:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
40e091:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40e094:	ff 15 e0 10 40 00    	call   *0x4010e0
40e09a:	ff 15 9c 10 40 00    	call   *0x40109c
40e0a0:	dc 1d 10 12 40 00    	fcompl 0x401210
40e0a6:	df e0                	fnstsw %ax
40e0a8:	f6 c4 40             	test   $0x40,%ah
40e0ab:	75 07                	jne    0x40e0b4
40e0ad:	b8 01 00 00 00       	mov    $0x1,%eax
40e0b2:	eb 02                	jmp    0x40e0b6
40e0b4:	33 c0                	xor    %eax,%eax
40e0b6:	8d 4d bc             	lea    -0x44(%ebp),%ecx
40e0b9:	51                   	push   %ecx
40e0ba:	8d 55 cc             	lea    -0x34(%ebp),%edx
40e0bd:	52                   	push   %edx
40e0be:	f7 d8                	neg    %eax
40e0c0:	6a 02                	push   $0x2
40e0c2:	66 8b f0             	mov    %ax,%si
40e0c5:	ff 15 28 10 40 00    	call   *0x401028
40e0cb:	83 c4 0c             	add    $0xc,%esp
40e0ce:	66 3b f3             	cmp    %bx,%si
40e0d1:	74 75                	je     0x40e148
40e0d3:	39 1d 38 03 41 00    	cmp    %ebx,0x410338
40e0d9:	75 10                	jne    0x40e0eb
40e0db:	68 38 03 41 00       	push   $0x410338
40e0e0:	68 a8 7c 40 00       	push   $0x407ca8
40e0e5:	ff 15 2c 11 40 00    	call   *0x40112c
40e0eb:	8b 35 38 03 41 00    	mov    0x410338,%esi
40e0f1:	8b 06                	mov    (%esi),%eax
40e0f3:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40e0f6:	51                   	push   %ecx
40e0f7:	56                   	push   %esi
40e0f8:	ff 50 4c             	call   *0x4c(%eax)
40e0fb:	db e2                	fnclex
40e0fd:	3b c3                	cmp    %ebx,%eax
40e0ff:	7d 0b                	jge    0x40e10c
40e101:	6a 4c                	push   $0x4c
40e103:	68 98 7c 40 00       	push   $0x407c98
40e108:	56                   	push   %esi
40e109:	50                   	push   %eax
40e10a:	ff d7                	call   *%edi
40e10c:	8b 45 dc             	mov    -0x24(%ebp),%eax
40e10f:	8b 10                	mov    (%eax),%edx
40e111:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40e114:	51                   	push   %ecx
40e115:	68 d4 84 40 00       	push   $0x4084d4
40e11a:	68 b8 84 40 00       	push   $0x4084b8
40e11f:	50                   	push   %eax
40e120:	8b f0                	mov    %eax,%esi
40e122:	ff 52 24             	call   *0x24(%edx)
40e125:	db e2                	fnclex
40e127:	3b c3                	cmp    %ebx,%eax
40e129:	7d 0b                	jge    0x40e136
40e12b:	6a 24                	push   $0x24
40e12d:	68 20 7e 40 00       	push   $0x407e20
40e132:	56                   	push   %esi
40e133:	50                   	push   %eax
40e134:	ff d7                	call   *%edi
40e136:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40e139:	ff 15 a8 11 40 00    	call   *0x4011a8
40e13f:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40e142:	ff 15 ac 11 40 00    	call   *0x4011ac
40e148:	9b                   	fwait
40e149:	68 80 e1 40 00       	push   $0x40e180
40e14e:	eb 26                	jmp    0x40e176
40e150:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40e153:	ff 15 a8 11 40 00    	call   *0x4011a8
40e159:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40e15c:	ff 15 ac 11 40 00    	call   *0x4011ac
40e162:	8d 55 bc             	lea    -0x44(%ebp),%edx
40e165:	52                   	push   %edx
40e166:	8d 45 cc             	lea    -0x34(%ebp),%eax
40e169:	50                   	push   %eax
40e16a:	6a 02                	push   $0x2
40e16c:	ff 15 28 10 40 00    	call   *0x401028
40e172:	83 c4 0c             	add    $0xc,%esp
40e175:	c3                   	ret
40e176:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40e179:	ff 15 a8 11 40 00    	call   *0x4011a8
40e17f:	c3                   	ret
40e180:	8b 45 08             	mov    0x8(%ebp),%eax
40e183:	8b 08                	mov    (%eax),%ecx
40e185:	50                   	push   %eax
40e186:	ff 51 08             	call   *0x8(%ecx)
40e189:	66 8b 45 e8          	mov    -0x18(%ebp),%ax
40e18d:	8b 55 20             	mov    0x20(%ebp),%edx
40e190:	66 89 02             	mov    %ax,(%edx)
40e193:	8b 45 fc             	mov    -0x4(%ebp),%eax
40e196:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40e199:	5f                   	pop    %edi
40e19a:	5e                   	pop    %esi
40e19b:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40e1a2:	5b                   	pop    %ebx
40e1a3:	8b e5                	mov    %ebp,%esp
40e1a5:	5d                   	pop    %ebp
40e1a6:	c2 1c 00             	ret    $0x1c
40e1a9:	90                   	nop
40e1aa:	90                   	nop
40e1ab:	90                   	nop
40e1ac:	90                   	nop
40e1ad:	90                   	nop
40e1ae:	90                   	nop
40e1af:	90                   	nop
40e1b0:	55                   	push   %ebp
40e1b1:	8b ec                	mov    %esp,%ebp
40e1b3:	83 ec 08             	sub    $0x8,%esp
40e1b6:	68 b6 12 40 00       	push   $0x4012b6
40e1bb:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40e1c1:	50                   	push   %eax
40e1c2:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40e1c9:	81 ec 28 01 00 00    	sub    $0x128,%esp
40e1cf:	53                   	push   %ebx
40e1d0:	56                   	push   %esi
40e1d1:	57                   	push   %edi
40e1d2:	89 65 f8             	mov    %esp,-0x8(%ebp)
40e1d5:	c7 45 fc 90 12 40 00 	movl   $0x401290,-0x4(%ebp)
40e1dc:	33 f6                	xor    %esi,%esi
40e1de:	68 e8 84 40 00       	push   $0x4084e8
40e1e3:	68 f8 84 40 00       	push   $0x4084f8
40e1e8:	89 75 e0             	mov    %esi,-0x20(%ebp)
40e1eb:	89 75 d0             	mov    %esi,-0x30(%ebp)
40e1ee:	89 75 c0             	mov    %esi,-0x40(%ebp)
40e1f1:	89 75 bc             	mov    %esi,-0x44(%ebp)
40e1f4:	89 75 ac             	mov    %esi,-0x54(%ebp)
40e1f7:	89 75 9c             	mov    %esi,-0x64(%ebp)
40e1fa:	89 75 8c             	mov    %esi,-0x74(%ebp)
40e1fd:	89 b5 7c ff ff ff    	mov    %esi,-0x84(%ebp)
40e203:	89 b5 6c ff ff ff    	mov    %esi,-0x94(%ebp)
40e209:	89 b5 5c ff ff ff    	mov    %esi,-0xa4(%ebp)
40e20f:	89 b5 4c ff ff ff    	mov    %esi,-0xb4(%ebp)
40e215:	89 b5 48 ff ff ff    	mov    %esi,-0xb8(%ebp)
40e21b:	89 b5 44 ff ff ff    	mov    %esi,-0xbc(%ebp)
40e221:	89 b5 34 ff ff ff    	mov    %esi,-0xcc(%ebp)
40e227:	89 b5 24 ff ff ff    	mov    %esi,-0xdc(%ebp)
40e22d:	89 b5 14 ff ff ff    	mov    %esi,-0xec(%ebp)
40e233:	89 b5 04 ff ff ff    	mov    %esi,-0xfc(%ebp)
40e239:	ff 15 3c 10 40 00    	call   *0x40103c
40e23f:	89 85 3c ff ff ff    	mov    %eax,-0xc4(%ebp)
40e245:	8d 85 34 ff ff ff    	lea    -0xcc(%ebp),%eax
40e24b:	50                   	push   %eax
40e24c:	8d 8d 24 ff ff ff    	lea    -0xdc(%ebp),%ecx
40e252:	bb 08 00 00 00       	mov    $0x8,%ebx
40e257:	51                   	push   %ecx
40e258:	89 9d 34 ff ff ff    	mov    %ebx,-0xcc(%ebp)
40e25e:	ff 15 94 11 40 00    	call   *0x401194
40e264:	8d 95 24 ff ff ff    	lea    -0xdc(%ebp),%edx
40e26a:	52                   	push   %edx
40e26b:	8d 85 04 ff ff ff    	lea    -0xfc(%ebp),%eax
40e271:	50                   	push   %eax
40e272:	c7 85 0c ff ff ff 03 	movl   $0x3,-0xf4(%ebp)
40e279:	00 00 00
40e27c:	c7 85 04 ff ff ff 02 	movl   $0x8002,-0xfc(%ebp)
40e283:	80 00 00
40e286:	ff 15 68 11 40 00    	call   *0x401168
40e28c:	8d 8d 24 ff ff ff    	lea    -0xdc(%ebp),%ecx
40e292:	51                   	push   %ecx
40e293:	8d 95 34 ff ff ff    	lea    -0xcc(%ebp),%edx
40e299:	52                   	push   %edx
40e29a:	6a 02                	push   $0x2
40e29c:	66 8b f8             	mov    %ax,%di
40e29f:	ff 15 28 10 40 00    	call   *0x401028
40e2a5:	83 c4 0c             	add    $0xc,%esp
40e2a8:	66 3b fe             	cmp    %si,%di
40e2ab:	0f 84 de 00 00 00    	je     0x40e38f
40e2b1:	39 35 38 03 41 00    	cmp    %esi,0x410338
40e2b7:	75 10                	jne    0x40e2c9
40e2b9:	68 38 03 41 00       	push   $0x410338
40e2be:	68 a8 7c 40 00       	push   $0x407ca8
40e2c3:	ff 15 2c 11 40 00    	call   *0x40112c
40e2c9:	8b 3d 38 03 41 00    	mov    0x410338,%edi
40e2cf:	8b 07                	mov    (%edi),%eax
40e2d1:	8d 8d 44 ff ff ff    	lea    -0xbc(%ebp),%ecx
40e2d7:	51                   	push   %ecx
40e2d8:	57                   	push   %edi
40e2d9:	ff 50 1c             	call   *0x1c(%eax)
40e2dc:	db e2                	fnclex
40e2de:	3b c6                	cmp    %esi,%eax
40e2e0:	7d 0f                	jge    0x40e2f1
40e2e2:	6a 1c                	push   $0x1c
40e2e4:	68 98 7c 40 00       	push   $0x407c98
40e2e9:	57                   	push   %edi
40e2ea:	50                   	push   %eax
40e2eb:	ff 15 48 10 40 00    	call   *0x401048
40e2f1:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
40e2f7:	8d bd 48 ff ff ff    	lea    -0xb8(%ebp),%edi
40e2fd:	57                   	push   %edi
40e2fe:	83 ec 10             	sub    $0x10,%esp
40e301:	b9 0a 00 00 00       	mov    $0xa,%ecx
40e306:	89 8d 04 ff ff ff    	mov    %ecx,-0xfc(%ebp)
40e30c:	8b fc                	mov    %esp,%edi
40e30e:	89 0f                	mov    %ecx,(%edi)
40e310:	8b 8d 08 ff ff ff    	mov    -0xf8(%ebp),%ecx
40e316:	89 4f 04             	mov    %ecx,0x4(%edi)
40e319:	c7 85 0c ff ff ff 04 	movl   $0x80020004,-0xf4(%ebp)
40e320:	00 02 80
40e323:	8b 8d 0c ff ff ff    	mov    -0xf4(%ebp),%ecx
40e329:	8b 10                	mov    (%eax),%edx
40e32b:	89 4f 08             	mov    %ecx,0x8(%edi)
40e32e:	8b 8d 10 ff ff ff    	mov    -0xf0(%ebp),%ecx
40e334:	50                   	push   %eax
40e335:	89 85 f8 fe ff ff    	mov    %eax,-0x108(%ebp)
40e33b:	89 4f 0c             	mov    %ecx,0xc(%edi)
40e33e:	ff 52 5c             	call   *0x5c(%edx)
40e341:	db e2                	fnclex
40e343:	3b c6                	cmp    %esi,%eax
40e345:	7d 15                	jge    0x40e35c
40e347:	8b 95 f8 fe ff ff    	mov    -0x108(%ebp),%edx
40e34d:	6a 5c                	push   $0x5c
40e34f:	68 b8 7c 40 00       	push   $0x407cb8
40e354:	52                   	push   %edx
40e355:	50                   	push   %eax
40e356:	ff 15 48 10 40 00    	call   *0x401048
40e35c:	8b 85 48 ff ff ff    	mov    -0xb8(%ebp),%eax
40e362:	8d 95 34 ff ff ff    	lea    -0xcc(%ebp),%edx
40e368:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
40e36b:	89 b5 48 ff ff ff    	mov    %esi,-0xb8(%ebp)
40e371:	89 85 3c ff ff ff    	mov    %eax,-0xc4(%ebp)
40e377:	89 9d 34 ff ff ff    	mov    %ebx,-0xcc(%ebp)
40e37d:	ff 15 0c 10 40 00    	call   *0x40100c
40e383:	8d 8d 44 ff ff ff    	lea    -0xbc(%ebp),%ecx
40e389:	ff 15 ac 11 40 00    	call   *0x4011ac
40e38f:	68 e8 84 40 00       	push   $0x4084e8
40e394:	68 f8 84 40 00       	push   $0x4084f8
40e399:	ff 15 3c 10 40 00    	call   *0x40103c
40e39f:	89 85 3c ff ff ff    	mov    %eax,-0xc4(%ebp)
40e3a5:	8d 85 34 ff ff ff    	lea    -0xcc(%ebp),%eax
40e3ab:	50                   	push   %eax
40e3ac:	8d 8d 24 ff ff ff    	lea    -0xdc(%ebp),%ecx
40e3b2:	51                   	push   %ecx
40e3b3:	89 9d 34 ff ff ff    	mov    %ebx,-0xcc(%ebp)
40e3b9:	ff 15 94 11 40 00    	call   *0x401194
40e3bf:	8d 95 24 ff ff ff    	lea    -0xdc(%ebp),%edx
40e3c5:	52                   	push   %edx
40e3c6:	8d 85 04 ff ff ff    	lea    -0xfc(%ebp),%eax
40e3cc:	50                   	push   %eax
40e3cd:	c7 85 0c ff ff ff 03 	movl   $0x3,-0xf4(%ebp)
40e3d4:	00 00 00
40e3d7:	c7 85 04 ff ff ff 02 	movl   $0x8002,-0xfc(%ebp)
40e3de:	80 00 00
40e3e1:	ff 15 68 11 40 00    	call   *0x401168
40e3e7:	8d 8d 24 ff ff ff    	lea    -0xdc(%ebp),%ecx
40e3ed:	51                   	push   %ecx
40e3ee:	8d 95 34 ff ff ff    	lea    -0xcc(%ebp),%edx
40e3f4:	52                   	push   %edx
40e3f5:	6a 02                	push   $0x2
40e3f7:	66 8b f8             	mov    %ax,%di
40e3fa:	ff 15 28 10 40 00    	call   *0x401028
40e400:	83 c4 0c             	add    $0xc,%esp
40e403:	66 3b fe             	cmp    %si,%di
40e406:	0f 84 e1 00 00 00    	je     0x40e4ed
40e40c:	39 35 38 03 41 00    	cmp    %esi,0x410338
40e412:	75 10                	jne    0x40e424
40e414:	68 38 03 41 00       	push   $0x410338
40e419:	68 a8 7c 40 00       	push   $0x407ca8
40e41e:	ff 15 2c 11 40 00    	call   *0x40112c
40e424:	8b 3d 38 03 41 00    	mov    0x410338,%edi
40e42a:	8b 07                	mov    (%edi),%eax
40e42c:	8d 8d 44 ff ff ff    	lea    -0xbc(%ebp),%ecx
40e432:	51                   	push   %ecx
40e433:	57                   	push   %edi
40e434:	ff 50 1c             	call   *0x1c(%eax)
40e437:	db e2                	fnclex
40e439:	3b c6                	cmp    %esi,%eax
40e43b:	7d 0f                	jge    0x40e44c
40e43d:	6a 1c                	push   $0x1c
40e43f:	68 98 7c 40 00       	push   $0x407c98
40e444:	57                   	push   %edi
40e445:	50                   	push   %eax
40e446:	ff 15 48 10 40 00    	call   *0x401048
40e44c:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
40e452:	8d bd 48 ff ff ff    	lea    -0xb8(%ebp),%edi
40e458:	57                   	push   %edi
40e459:	83 ec 10             	sub    $0x10,%esp
40e45c:	b9 0a 00 00 00       	mov    $0xa,%ecx
40e461:	89 8d 04 ff ff ff    	mov    %ecx,-0xfc(%ebp)
40e467:	8b fc                	mov    %esp,%edi
40e469:	89 0f                	mov    %ecx,(%edi)
40e46b:	8b 8d 08 ff ff ff    	mov    -0xf8(%ebp),%ecx
40e471:	89 4f 04             	mov    %ecx,0x4(%edi)
40e474:	c7 85 0c ff ff ff 04 	movl   $0x80020004,-0xf4(%ebp)
40e47b:	00 02 80
40e47e:	8b 8d 0c ff ff ff    	mov    -0xf4(%ebp),%ecx
40e484:	8b 10                	mov    (%eax),%edx
40e486:	89 4f 08             	mov    %ecx,0x8(%edi)
40e489:	8b 8d 10 ff ff ff    	mov    -0xf0(%ebp),%ecx
40e48f:	50                   	push   %eax
40e490:	89 85 f8 fe ff ff    	mov    %eax,-0x108(%ebp)
40e496:	89 4f 0c             	mov    %ecx,0xc(%edi)
40e499:	ff 52 5c             	call   *0x5c(%edx)
40e49c:	db e2                	fnclex
40e49e:	3b c6                	cmp    %esi,%eax
40e4a0:	7d 15                	jge    0x40e4b7