40f158:	c6 85 08 fd ff ff 00 	movb   $0x0,-0x2f8(%ebp)
40f15f:	e8 7c 92 00 00       	call   0x4183e0
40f164:	6a 3f                	push   $0x3f
40f166:	8d 55 b1             	lea    -0x4f(%ebp),%edx
40f169:	6a 00                	push   $0x0
40f16b:	52                   	push   %edx
40f16c:	c6 45 b0 00          	movb   $0x0,-0x50(%ebp)
40f170:	e8 6b 92 00 00       	call   0x4183e0
40f175:	8d 45 b0             	lea    -0x50(%ebp),%eax
40f178:	6a 0d                	push   $0xd
40f17a:	50                   	push   %eax
40f17b:	e8 00 9e 00 00       	call   0x418f80
40f180:	6a 00                	push   $0x0
40f182:	6a 04                	push   $0x4
40f184:	8d 8d 00 f7 ff ff    	lea    -0x900(%ebp),%ecx
40f18a:	51                   	push   %ecx
40f18b:	57                   	push   %edi
40f18c:	e8 df 95 ff ff       	call   0x408770
40f191:	8d 95 00 f7 ff ff    	lea    -0x900(%ebp),%edx
40f197:	52                   	push   %edx
40f198:	8d 85 08 fd ff ff    	lea    -0x2f8(%ebp),%eax
40f19e:	50                   	push   %eax
40f19f:	e8 5c 98 00 00       	call   0x418a00
40f1a4:	8d 8d 08 fd ff ff    	lea    -0x2f8(%ebp),%ecx
40f1aa:	83 c4 44             	add    $0x44,%esp
40f1ad:	51                   	push   %ecx
40f1ae:	e8 7d 94 00 00       	call   0x418630
40f1b3:	6a 00                	push   $0x0
40f1b5:	8d 55 b0             	lea    -0x50(%ebp),%edx
40f1b8:	c6 84 05 08 fd ff ff 	movb   $0x5c,-0x2f8(%ebp,%eax,1)
40f1bf:	5c
40f1c0:	52                   	push   %edx
40f1c1:	8d 85 08 fd ff ff    	lea    -0x2f8(%ebp),%eax
40f1c7:	50                   	push   %eax
40f1c8:	e8 93 95 00 00       	call   0x418760
40f1cd:	8d 8d 08 fd ff ff    	lea    -0x2f8(%ebp),%ecx
40f1d3:	51                   	push   %ecx
40f1d4:	8d 57 1c             	lea    0x1c(%edi),%edx
40f1d7:	52                   	push   %edx
40f1d8:	e8 43 92 ff ff       	call   0x408420
40f1dd:	83 c4 18             	add    $0x18,%esp
40f1e0:	89 03                	mov    %eax,(%ebx)
40f1e2:	85 c0                	test   %eax,%eax
40f1e4:	0f 84 41 02 00 00    	je     0x40f42b
40f1ea:	33 c0                	xor    %eax,%eax
40f1ec:	68 94 01 00 00       	push   $0x194
40f1f1:	50                   	push   %eax
40f1f2:	89 85 0d fe ff ff    	mov    %eax,-0x1f3(%ebp)
40f1f8:	89 85 11 fe ff ff    	mov    %eax,-0x1ef(%ebp)
40f1fe:	89 85 15 fe ff ff    	mov    %eax,-0x1eb(%ebp)
40f204:	66 89 85 19 fe ff ff 	mov    %ax,-0x1e7(%ebp)
40f20b:	88 85 1b fe ff ff    	mov    %al,-0x1e5(%ebp)
40f211:	8d 85 1c fe ff ff    	lea    -0x1e4(%ebp),%eax
40f217:	50                   	push   %eax
40f218:	c6 85 0c fe ff ff 00 	movb   $0x0,-0x1f4(%ebp)
40f21f:	e8 bc 91 00 00       	call   0x4183e0
40f224:	8b 4d 10             	mov    0x10(%ebp),%ecx
40f227:	51                   	push   %ecx
40f228:	8d 95 0c fe ff ff    	lea    -0x1f4(%ebp),%edx
40f22e:	52                   	push   %edx
40f22f:	57                   	push   %edi
40f230:	e8 7b f6 ff ff       	call   0x40e8b0
40f235:	83 c4 18             	add    $0x18,%esp
40f238:	85 c0                	test   %eax,%eax
40f23a:	0f 84 eb 01 00 00    	je     0x40f42b
40f240:	8b 45 10             	mov    0x10(%ebp),%eax
40f243:	50                   	push   %eax
40f244:	53                   	push   %ebx
40f245:	57                   	push   %edi
40f246:	e8 b5 64 00 00       	call   0x415700
40f24b:	6a 4d                	push   $0x4d
40f24d:	57                   	push   %edi
40f24e:	e8 bd 2f 00 00       	call   0x412210
40f253:	8b 4d ac             	mov    -0x54(%ebp),%ecx
40f256:	50                   	push   %eax
40f257:	6a 00                	push   $0x0
40f259:	6a 00                	push   $0x0
40f25b:	51                   	push   %ecx
40f25c:	8d 57 1c             	lea    0x1c(%edi),%edx
40f25f:	52                   	push   %edx
40f260:	e8 6b 30 00 00       	call   0x4122d0
40f265:	83 c4 28             	add    $0x28,%esp
40f268:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
40f26c:	89 46 40             	mov    %eax,0x40(%esi)
40f26f:	0f 84 b6 01 00 00    	je     0x40f42b
40f275:	83 7e 3c 00          	cmpl   $0x0,0x3c(%esi)
40f279:	0f 84 ac 01 00 00    	je     0x40f42b
40f27f:	83 7e 28 00          	cmpl   $0x0,0x28(%esi)
40f283:	0f 84 a2 01 00 00    	je     0x40f42b
40f289:	85 c0                	test   %eax,%eax
40f28b:	0f 84 9a 01 00 00    	je     0x40f42b
40f291:	83 7e 2c 00          	cmpl   $0x0,0x2c(%esi)
40f295:	0f 84 90 01 00 00    	je     0x40f42b
40f29b:	83 7e 30 00          	cmpl   $0x0,0x30(%esi)
40f29f:	0f 84 86 01 00 00    	je     0x40f42b
40f2a5:	83 7e 34 00          	cmpl   $0x0,0x34(%esi)
40f2a9:	0f 84 7c 01 00 00    	je     0x40f42b
40f2af:	8b 5d 10             	mov    0x10(%ebp),%ebx
40f2b2:	53                   	push   %ebx
40f2b3:	8d 85 4c fe ff ff    	lea    -0x1b4(%ebp),%eax
40f2b9:	50                   	push   %eax
40f2ba:	6a 01                	push   $0x1
40f2bc:	6a 00                	push   $0x0
40f2be:	57                   	push   %edi
40f2bf:	e8 ec f7 ff ff       	call   0x40eab0
40f2c4:	83 c4 14             	add    $0x14,%esp
40f2c7:	85 c0                	test   %eax,%eax
40f2c9:	75 2a                	jne    0x40f2f5
40f2cb:	81 fb 24 10 00 00    	cmp    $0x1024,%ebx
40f2d1:	75 11                	jne    0x40f2e4
40f2d3:	5b                   	pop    %ebx
40f2d4:	c7 87 fc 09 00 00 01 	movl   $0x1,0x9fc(%edi)
40f2db:	00 00 00
40f2de:	5f                   	pop    %edi
40f2df:	5e                   	pop    %esi
40f2e0:	8b e5                	mov    %ebp,%esp
40f2e2:	5d                   	pop    %ebp
40f2e3:	c3                   	ret
40f2e4:	5b                   	pop    %ebx
40f2e5:	c7 87 00 0a 00 00 01 	movl   $0x1,0xa00(%edi)
40f2ec:	00 00 00
40f2ef:	5f                   	pop    %edi
40f2f0:	5e                   	pop    %esi
40f2f1:	8b e5                	mov    %ebp,%esp
40f2f3:	5d                   	pop    %ebp
40f2f4:	c3                   	ret
40f2f5:	6a 00                	push   $0x0
40f2f7:	6a 04                	push   $0x4
40f2f9:	8d 5e 68             	lea    0x68(%esi),%ebx
40f2fc:	53                   	push   %ebx
40f2fd:	57                   	push   %edi
40f2fe:	e8 6d 94 ff ff       	call   0x408770
40f303:	6a 00                	push   $0x0
40f305:	8d 8d 2c fe ff ff    	lea    -0x1d4(%ebp),%ecx
40f30b:	51                   	push   %ecx
40f30c:	53                   	push   %ebx
40f30d:	e8 ae 94 00 00       	call   0x4187c0
40f312:	53                   	push   %ebx
40f313:	8d 95 08 f9 ff ff    	lea    -0x6f8(%ebp),%edx
40f319:	52                   	push   %edx
40f31a:	57                   	push   %edi
40f31b:	e8 f0 f3 ff ff       	call   0x40e710
40f320:	8d 85 08 f9 ff ff    	lea    -0x6f8(%ebp),%eax
40f326:	53                   	push   %ebx
40f327:	50                   	push   %eax
40f328:	e8 d3 96 00 00       	call   0x418a00
40f32d:	8b 46 28             	mov    0x28(%esi),%eax
40f330:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40f333:	51                   	push   %ecx
40f334:	8d 95 08 f9 ff ff    	lea    -0x6f8(%ebp),%edx
40f33a:	52                   	push   %edx
40f33b:	ff d0                	call   *%eax
40f33d:	83 c4 38             	add    $0x38,%esp
40f340:	85 c0                	test   %eax,%eax
40f342:	0f 85 ae 00 00 00    	jne    0x40f3f6
40f348:	50                   	push   %eax
40f349:	8b 45 f8             	mov    -0x8(%ebp),%eax
40f34c:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40f34f:	51                   	push   %ecx
40f350:	8b 4e 30             	mov    0x30(%esi),%ecx
40f353:	6a ff                	push   $0xffffffff
40f355:	8d 95 ac fe ff ff    	lea    -0x154(%ebp),%edx
40f35b:	52                   	push   %edx
40f35c:	50                   	push   %eax
40f35d:	ff d1                	call   *%ecx
40f35f:	83 c4 14             	add    $0x14,%esp
40f362:	85 c0                	test   %eax,%eax
40f364:	0f 85 8c 00 00 00    	jne    0x40f3f6
40f36a:	8b 55 fc             	mov    -0x4(%ebp),%edx
40f36d:	8b 46 2c             	mov    0x2c(%esi),%eax
40f370:	52                   	push   %edx
40f371:	ff d0                	call   *%eax
40f373:	83 c4 04             	add    $0x4,%esp
40f376:	83 f8 64             	cmp    $0x64,%eax
40f379:	75 7b                	jne    0x40f3f6
40f37b:	eb 03                	jmp    0x40f380
40f37d:	8d 49 00             	lea    0x0(%ecx),%ecx
40f380:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f383:	8b 56 34             	mov    0x34(%esi),%edx
40f386:	6a 00                	push   $0x0
40f388:	51                   	push   %ecx
40f389:	ff d2                	call   *%edx
40f38b:	8b 4e 34             	mov    0x34(%esi),%ecx
40f38e:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f391:	8b 45 fc             	mov    -0x4(%ebp),%eax
40f394:	6a 01                	push   $0x1
40f396:	50                   	push   %eax
40f397:	ff d1                	call   *%ecx
40f399:	8b 55 fc             	mov    -0x4(%ebp),%edx
40f39c:	8b d8                	mov    %eax,%ebx
40f39e:	8b 46 38             	mov    0x38(%esi),%eax
40f3a1:	6a 02                	push   $0x2
40f3a3:	52                   	push   %edx
40f3a4:	ff d0                	call   *%eax
40f3a6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f3a9:	8b 56 3c             	mov    0x3c(%esi),%edx
40f3ac:	6a 02                	push   $0x2
40f3ae:	51                   	push   %ecx
40f3af:	89 45 f4             	mov    %eax,-0xc(%ebp)
40f3b2:	ff d2                	call   *%edx
40f3b4:	83 c4 20             	add    $0x20,%esp
40f3b7:	80 3b 00             	cmpb   $0x0,(%ebx)
40f3ba:	74 29                	je     0x40f3e5
40f3bc:	8b 4d 10             	mov    0x10(%ebp),%ecx
40f3bf:	8b 56 40             	mov    0x40(%esi),%edx
40f3c2:	51                   	push   %ecx
40f3c3:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40f3c6:	52                   	push   %edx
40f3c7:	50                   	push   %eax
40f3c8:	8b 45 f4             	mov    -0xc(%ebp),%eax
40f3cb:	50                   	push   %eax
40f3cc:	53                   	push   %ebx
40f3cd:	51                   	push   %ecx
40f3ce:	8d 95 0c fe ff ff    	lea    -0x1f4(%ebp),%edx
40f3d4:	52                   	push   %edx
40f3d5:	8d 86 68 08 00 00    	lea    0x868(%esi),%eax
40f3db:	50                   	push   %eax
40f3dc:	57                   	push   %edi
40f3dd:	e8 7e fb ff ff       	call   0x40ef60
40f3e2:	83 c4 24             	add    $0x24,%esp
40f3e5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f3e8:	8b 56 2c             	mov    0x2c(%esi),%edx
40f3eb:	51                   	push   %ecx
40f3ec:	ff d2                	call   *%edx
40f3ee:	83 c4 04             	add    $0x4,%esp
40f3f1:	83 f8 64             	cmp    $0x64,%eax
40f3f4:	74 8a                	je     0x40f380
40f3f6:	81 7d 10 24 10 00 00 	cmpl   $0x1024,0x10(%ebp)
40f3fd:	75 16                	jne    0x40f415
40f3ff:	5b                   	pop    %ebx
40f400:	c7 87 fc 09 00 00 01 	movl   $0x1,0x9fc(%edi)
40f407:	00 00 00
40f40a:	5f                   	pop    %edi
40f40b:	b8 01 00 00 00       	mov    $0x1,%eax
40f410:	5e                   	pop    %esi
40f411:	8b e5                	mov    %ebp,%esp
40f413:	5d                   	pop    %ebp
40f414:	c3                   	ret
40f415:	5b                   	pop    %ebx
40f416:	c7 87 00 0a 00 00 01 	movl   $0x1,0xa00(%edi)
40f41d:	00 00 00
40f420:	5f                   	pop    %edi
40f421:	b8 01 00 00 00       	mov    $0x1,%eax
40f426:	5e                   	pop    %esi
40f427:	8b e5                	mov    %ebp,%esp
40f429:	5d                   	pop    %ebp
40f42a:	c3                   	ret
40f42b:	5b                   	pop    %ebx
40f42c:	5f                   	pop    %edi
40f42d:	33 c0                	xor    %eax,%eax
40f42f:	5e                   	pop    %esi
40f430:	8b e5                	mov    %ebp,%esp
40f432:	5d                   	pop    %ebp
40f433:	c3                   	ret
40f434:	cb                   	lret
40f435:	25 52 10 3b f9       	and    $0xf93b1052,%eax
40f43a:	af                   	scas   %es:(%edi),%eax
40f43b:	ab                   	stos   %eax,%es:(%edi)
40f43c:	8a e7                	mov    %bh,%ah
40f43e:	94                   	xchg   %eax,%esp
40f43f:	34 55                	xor    $0x55,%al
40f441:	8b ec                	mov    %esp,%ebp
40f443:	81 ec 10 04 00 00    	sub    $0x410,%esp
40f449:	53                   	push   %ebx
40f44a:	57                   	push   %edi
40f44b:	33 c0                	xor    %eax,%eax
40f44d:	68 fe 03 00 00       	push   $0x3fe
40f452:	50                   	push   %eax
40f453:	8d 8d f2 fb ff ff    	lea    -0x40e(%ebp),%ecx
40f459:	51                   	push   %ecx
40f45a:	66 89 85 f0 fb ff ff 	mov    %ax,-0x410(%ebp)
40f461:	e8 7a 8f 00 00       	call   0x4183e0
40f466:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40f469:	8b 7d 08             	mov    0x8(%ebp),%edi
40f46c:	83 c4 0c             	add    $0xc,%esp
40f46f:	83 fb 16             	cmp    $0x16,%ebx
40f472:	0f 85 86 00 00 00    	jne    0x40f4fe
40f478:	6a 00                	push   $0x0
40f47a:	6a 01                	push   $0x1
40f47c:	8d 95 f0 fb ff ff    	lea    -0x410(%ebp),%edx
40f482:	52                   	push   %edx
40f483:	57                   	push   %edi
40f484:	e8 e7 92 ff ff       	call   0x408770
40f489:	83 c4 10             	add    $0x10,%esp
40f48c:	66 83 bd f0 fb ff ff 	cmpw   $0x0,-0x410(%ebp)
40f493:	00
40f494:	75 14                	jne    0x40f4aa
40f496:	6a 00                	push   $0x0
40f498:	6a 03                	push   $0x3
40f49a:	8d 85 f0 fb ff ff    	lea    -0x410(%ebp),%eax
40f4a0:	50                   	push   %eax
40f4a1:	57                   	push   %edi
40f4a2:	e8 c9 92 ff ff       	call   0x408770
40f4a7:	83 c4 10             	add    $0x10,%esp
40f4aa:	6a 01                	push   $0x1
40f4ac:	8d 8d f0 fb ff ff    	lea    -0x410(%ebp),%ecx
40f4b2:	6a 1e                	push   $0x1e
40f4b4:	51                   	push   %ecx
40f4b5:	e8 96 91 00 00       	call   0x418650
40f4ba:	83 c4 04             	add    $0x4,%esp
40f4bd:	8d 94 45 f0 fb ff ff 	lea    -0x410(%ebp,%eax,2),%edx
40f4c4:	52                   	push   %edx
40f4c5:	57                   	push   %edi
40f4c6:	e8 a5 92 ff ff       	call   0x408770
40f4cb:	6a 00                	push   $0x0
40f4cd:	6a 15                	push   $0x15
40f4cf:	8d 85 f0 fb ff ff    	lea    -0x410(%ebp),%eax
40f4d5:	50                   	push   %eax
40f4d6:	57                   	push   %edi
40f4d7:	e8 f4 29 00 00       	call   0x411ed0
40f4dc:	83 c4 20             	add    $0x20,%esp
40f4df:	f7 d8                	neg    %eax
40f4e1:	1b c0                	sbb    %eax,%eax
40f4e3:	f7 d8                	neg    %eax
40f4e5:	89 87 4c 0b 00 00    	mov    %eax,0xb4c(%edi)
40f4eb:	74 09                	je     0x40f4f6
40f4ed:	83 bf 00 0a 00 00 00 	cmpl   $0x0,0xa00(%edi)
40f4f4:	74 3d                	je     0x40f533
40f4f6:	5f                   	pop    %edi
40f4f7:	33 c0                	xor    %eax,%eax
40f4f9:	5b                   	pop    %ebx
40f4fa:	8b e5                	mov    %ebp,%esp
40f4fc:	5d                   	pop    %ebp
40f4fd:	c3                   	ret
40f4fe:	81 fb 24 10 00 00    	cmp    $0x1024,%ebx
40f504:	75 2d                	jne    0x40f533
40f506:	6a 00                	push   $0x0
40f508:	8d 8d f0 fb ff ff    	lea    -0x410(%ebp),%ecx
40f50e:	51                   	push   %ecx
40f50f:	57                   	push   %edi
40f510:	e8 eb 0c 00 00       	call   0x410200
40f515:	83 c4 0c             	add    $0xc,%esp
40f518:	89 87 48 0b 00 00    	mov    %eax,0xb48(%edi)
40f51e:	85 c0                	test   %eax,%eax
40f520:	74 09                	je     0x40f52b
40f522:	83 bf fc 09 00 00 00 	cmpl   $0x0,0x9fc(%edi)
40f529:	74 08                	je     0x40f533
40f52b:	5f                   	pop    %edi
40f52c:	33 c0                	xor    %eax,%eax
40f52e:	5b                   	pop    %ebx
40f52f:	8b e5                	mov    %ebp,%esp
40f531:	5d                   	pop    %ebp
40f532:	c3                   	ret
40f533:	56                   	push   %esi
40f534:	53                   	push   %ebx
40f535:	57                   	push   %edi
40f536:	e8 05 63 00 00       	call   0x415840
40f53b:	8b f0                	mov    %eax,%esi
40f53d:	83 c4 08             	add    $0x8,%esp
40f540:	85 f6                	test   %esi,%esi