40e241:	57                   	push   %edi
40e242:	ff 15 ec 96 43 00    	call   *0x4396ec
40e248:	8b f8                	mov    %eax,%edi
40e24a:	a1 40 1b 43 00       	mov    0x431b40,%eax
40e24f:	50                   	push   %eax
40e250:	ff 15 b8 96 43 00    	call   *0x4396b8
40e256:	8b f0                	mov    %eax,%esi
40e258:	85 f6                	test   %esi,%esi
40e25a:	75 52                	jne    0x40e2ae
40e25c:	6a 74                	push   $0x74
40e25e:	6a 01                	push   $0x1
40e260:	e8 cb 1c 00 00       	call   0x40ff30
40e265:	8b f0                	mov    %eax,%esi
40e267:	83 c4 08             	add    $0x8,%esp
40e26a:	85 f6                	test   %esi,%esi
40e26c:	74 36                	je     0x40e2a4
40e26e:	8b 0d 40 1b 43 00    	mov    0x431b40,%ecx
40e274:	56                   	push   %esi
40e275:	51                   	push   %ecx
40e276:	ff 15 c0 96 43 00    	call   *0x4396c0
40e27c:	85 c0                	test   %eax,%eax
40e27e:	74 24                	je     0x40e2a4
40e280:	56                   	push   %esi
40e281:	e8 9a ff ff ff       	call   0x40e220
40e286:	83 c4 04             	add    $0x4,%esp
40e289:	ff 15 4c 97 43 00    	call   *0x43974c
40e28f:	57                   	push   %edi
40e290:	89 06                	mov    %eax,(%esi)
40e292:	c7 46 04 ff ff ff ff 	movl   $0xffffffff,0x4(%esi)
40e299:	ff 15 f0 96 43 00    	call   *0x4396f0
40e29f:	8b c6                	mov    %esi,%eax
40e2a1:	5f                   	pop    %edi
40e2a2:	5e                   	pop    %esi
40e2a3:	c3                   	ret
40e2a4:	6a 10                	push   $0x10
40e2a6:	e8 e5 e0 ff ff       	call   0x40c390
40e2ab:	83 c4 04             	add    $0x4,%esp
40e2ae:	57                   	push   %edi
40e2af:	ff 15 f0 96 43 00    	call   *0x4396f0
40e2b5:	8b c6                	mov    %esi,%eax
40e2b7:	5f                   	pop    %edi
40e2b8:	5e                   	pop    %esi
40e2b9:	c3                   	ret
40e2ba:	90                   	nop
40e2bb:	90                   	nop
40e2bc:	90                   	nop
40e2bd:	90                   	nop
40e2be:	90                   	nop
40e2bf:	90                   	nop
40e2c0:	a1 40 1b 43 00       	mov    0x431b40,%eax
40e2c5:	83 f8 ff             	cmp    $0xffffffff,%eax
40e2c8:	0f 84 8e 00 00 00    	je     0x40e35c
40e2ce:	56                   	push   %esi
40e2cf:	8b 74 24 08          	mov    0x8(%esp),%esi
40e2d3:	85 f6                	test   %esi,%esi
40e2d5:	75 0d                	jne    0x40e2e4
40e2d7:	50                   	push   %eax
40e2d8:	ff 15 b8 96 43 00    	call   *0x4396b8
40e2de:	8b f0                	mov    %eax,%esi
40e2e0:	85 f6                	test   %esi,%esi
40e2e2:	74 69                	je     0x40e34d
40e2e4:	8b 46 24             	mov    0x24(%esi),%eax
40e2e7:	85 c0                	test   %eax,%eax
40e2e9:	74 09                	je     0x40e2f4
40e2eb:	50                   	push   %eax
40e2ec:	e8 9f e2 ff ff       	call   0x40c590
40e2f1:	83 c4 04             	add    $0x4,%esp
40e2f4:	8b 46 28             	mov    0x28(%esi),%eax
40e2f7:	85 c0                	test   %eax,%eax
40e2f9:	74 09                	je     0x40e304
40e2fb:	50                   	push   %eax
40e2fc:	e8 8f e2 ff ff       	call   0x40c590
40e301:	83 c4 04             	add    $0x4,%esp
40e304:	8b 46 30             	mov    0x30(%esi),%eax
40e307:	85 c0                	test   %eax,%eax
40e309:	74 09                	je     0x40e314
40e30b:	50                   	push   %eax
40e30c:	e8 7f e2 ff ff       	call   0x40c590
40e311:	83 c4 04             	add    $0x4,%esp
40e314:	8b 46 38             	mov    0x38(%esi),%eax
40e317:	85 c0                	test   %eax,%eax
40e319:	74 09                	je     0x40e324
40e31b:	50                   	push   %eax
40e31c:	e8 6f e2 ff ff       	call   0x40c590
40e321:	83 c4 04             	add    $0x4,%esp
40e324:	8b 46 40             	mov    0x40(%esi),%eax
40e327:	85 c0                	test   %eax,%eax
40e329:	74 09                	je     0x40e334
40e32b:	50                   	push   %eax
40e32c:	e8 5f e2 ff ff       	call   0x40c590
40e331:	83 c4 04             	add    $0x4,%esp
40e334:	8b 46 44             	mov    0x44(%esi),%eax
40e337:	85 c0                	test   %eax,%eax
40e339:	74 09                	je     0x40e344
40e33b:	50                   	push   %eax
40e33c:	e8 4f e2 ff ff       	call   0x40c590
40e341:	83 c4 04             	add    $0x4,%esp
40e344:	56                   	push   %esi
40e345:	e8 46 e2 ff ff       	call   0x40c590
40e34a:	83 c4 04             	add    $0x4,%esp
40e34d:	a1 40 1b 43 00       	mov    0x431b40,%eax
40e352:	6a 00                	push   $0x0
40e354:	50                   	push   %eax
40e355:	ff 15 c0 96 43 00    	call   *0x4396c0
40e35b:	5e                   	pop    %esi
40e35c:	c3                   	ret
40e35d:	90                   	nop
40e35e:	90                   	nop
40e35f:	90                   	nop
40e360:	55                   	push   %ebp
40e361:	8b ec                	mov    %esp,%ebp
40e363:	6a ff                	push   $0xffffffff
40e365:	68 68 c0 42 00       	push   $0x42c068
40e36a:	68 18 f1 40 00       	push   $0x40f118
40e36f:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40e375:	50                   	push   %eax
40e376:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40e37d:	83 ec 08             	sub    $0x8,%esp
40e380:	53                   	push   %ebx
40e381:	56                   	push   %esi
40e382:	57                   	push   %edi
40e383:	89 65 e8             	mov    %esp,-0x18(%ebp)
40e386:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40e38d:	e8 ae fe ff ff       	call   0x40e240
40e392:	8b 48 60             	mov    0x60(%eax),%ecx
40e395:	85 c9                	test   %ecx,%ecx
40e397:	74 21                	je     0x40e3ba
40e399:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40e3a0:	e8 9b fe ff ff       	call   0x40e240
40e3a5:	ff 50 60             	call   *0x60(%eax)
40e3a8:	eb 09                	jmp    0x40e3b3
40e3aa:	b8 01 00 00 00       	mov    $0x1,%eax
40e3af:	c3                   	ret
40e3b0:	8b 65 e8             	mov    -0x18(%ebp),%esp
40e3b3:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40e3ba:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40e3c1:	e8 11 00 00 00       	call   0x40e3d7
40e3c6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40e3c9:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40e3d0:	5f                   	pop    %edi
40e3d1:	5e                   	pop    %esi
40e3d2:	5b                   	pop    %ebx
40e3d3:	8b e5                	mov    %ebp,%esp
40e3d5:	5d                   	pop    %ebp
40e3d6:	c3                   	ret
40e3d7:	e8 a4 26 00 00       	call   0x410a80
40e3dc:	c3                   	ret
40e3dd:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40e3e0:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40e3e7:	5f                   	pop    %edi
40e3e8:	5e                   	pop    %esi
40e3e9:	5b                   	pop    %ebx
40e3ea:	8b e5                	mov    %ebp,%esp
40e3ec:	5d                   	pop    %ebp
40e3ed:	c3                   	ret
40e3ee:	90                   	nop
40e3ef:	90                   	nop
40e3f0:	55                   	push   %ebp
40e3f1:	8b ec                	mov    %esp,%ebp
40e3f3:	6a ff                	push   $0xffffffff
40e3f5:	68 80 c0 42 00       	push   $0x42c080
40e3fa:	68 18 f1 40 00       	push   $0x40f118
40e3ff:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40e405:	50                   	push   %eax
40e406:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40e40d:	83 ec 08             	sub    $0x8,%esp
40e410:	53                   	push   %ebx
40e411:	56                   	push   %esi
40e412:	57                   	push   %edi
40e413:	89 65 e8             	mov    %esp,-0x18(%ebp)
40e416:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40e41d:	a1 44 1b 43 00       	mov    0x431b44,%eax
40e422:	85 c0                	test   %eax,%eax
40e424:	74 1b                	je     0x40e441
40e426:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40e42d:	ff d0                	call   *%eax
40e42f:	eb 09                	jmp    0x40e43a
40e431:	b8 01 00 00 00       	mov    $0x1,%eax
40e436:	c3                   	ret
40e437:	8b 65 e8             	mov    -0x18(%ebp),%esp
40e43a:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40e441:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40e448:	e8 11 00 00 00       	call   0x40e45e
40e44d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40e450:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40e457:	5f                   	pop    %edi
40e458:	5e                   	pop    %esi
40e459:	5b                   	pop    %ebx
40e45a:	8b e5                	mov    %ebp,%esp
40e45c:	5d                   	pop    %ebp
40e45d:	c3                   	ret
40e45e:	e8 fd fe ff ff       	call   0x40e360
40e463:	c3                   	ret
40e464:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40e467:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40e46e:	5f                   	pop    %edi
40e46f:	5e                   	pop    %esi
40e470:	5b                   	pop    %ebx
40e471:	8b e5                	mov    %ebp,%esp
40e473:	5d                   	pop    %ebp
40e474:	c3                   	ret
40e475:	90                   	nop
40e476:	90                   	nop
40e477:	90                   	nop
40e478:	90                   	nop
40e479:	90                   	nop
40e47a:	90                   	nop
40e47b:	90                   	nop
40e47c:	90                   	nop
40e47d:	90                   	nop
40e47e:	90                   	nop
40e47f:	90                   	nop
40e480:	83 ec 08             	sub    $0x8,%esp
40e483:	53                   	push   %ebx
40e484:	55                   	push   %ebp
40e485:	56                   	push   %esi
40e486:	8b 74 24 18          	mov    0x18(%esp),%esi
40e48a:	85 f6                	test   %esi,%esi
40e48c:	57                   	push   %edi
40e48d:	75 15                	jne    0x40e4a4
40e48f:	8b 44 24 20          	mov    0x20(%esp),%eax
40e493:	50                   	push   %eax
40e494:	e8 27 e0 ff ff       	call   0x40c4c0
40e499:	83 c4 04             	add    $0x4,%esp
40e49c:	5f                   	pop    %edi
40e49d:	5e                   	pop    %esi
40e49e:	5d                   	pop    %ebp
40e49f:	5b                   	pop    %ebx
40e4a0:	83 c4 08             	add    $0x8,%esp
40e4a3:	c3                   	ret
40e4a4:	8b 7c 24 20          	mov    0x20(%esp),%edi
40e4a8:	85 ff                	test   %edi,%edi
40e4aa:	75 13                	jne    0x40e4bf
40e4ac:	56                   	push   %esi
40e4ad:	e8 de e0 ff ff       	call   0x40c590
40e4b2:	83 c4 04             	add    $0x4,%esp
40e4b5:	33 c0                	xor    %eax,%eax
40e4b7:	5f                   	pop    %edi
40e4b8:	5e                   	pop    %esi
40e4b9:	5d                   	pop    %ebp
40e4ba:	5b                   	pop    %ebx
40e4bb:	83 c4 08             	add    $0x8,%esp
40e4be:	c3                   	ret
40e4bf:	83 ff e0             	cmp    $0xffffffe0,%edi
40e4c2:	77 1c                	ja     0x40e4e0
40e4c4:	85 ff                	test   %edi,%edi
40e4c6:	76 0c                	jbe    0x40e4d4
40e4c8:	83 c7 0f             	add    $0xf,%edi
40e4cb:	83 e7 f0             	and    $0xfffffff0,%edi
40e4ce:	89 7c 24 20          	mov    %edi,0x20(%esp)
40e4d2:	eb 08                	jmp    0x40e4dc
40e4d4:	c7 44 24 20 10 00 00 	movl   $0x10,0x20(%esp)
40e4db:	00
40e4dc:	8b 7c 24 20          	mov    0x20(%esp),%edi
40e4e0:	33 db                	xor    %ebx,%ebx
40e4e2:	83 ff e0             	cmp    $0xffffffe0,%edi
40e4e5:	0f 87 15 01 00 00    	ja     0x40e600
40e4eb:	6a 09                	push   $0x9
40e4ed:	e8 4e 0f 00 00       	call   0x40f440
40e4f2:	83 c4 04             	add    $0x4,%esp
40e4f5:	8d 4c 24 10          	lea    0x10(%esp),%ecx
40e4f9:	8d 54 24 14          	lea    0x14(%esp),%edx
40e4fd:	51                   	push   %ecx
40e4fe:	52                   	push   %edx
40e4ff:	56                   	push   %esi
40e500:	e8 0b 14 00 00       	call   0x40f910
40e505:	8b e8                	mov    %eax,%ebp
40e507:	83 c4 0c             	add    $0xc,%esp
40e50a:	85 ed                	test   %ebp,%ebp
40e50c:	0f 84 d2 00 00 00    	je     0x40e5e4
40e512:	3b 3d 84 3f 43 00    	cmp    0x433f84,%edi
40e518:	73 6b                	jae    0x40e585
40e51a:	8b 44 24 10          	mov    0x10(%esp),%eax
40e51e:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40e522:	8b df                	mov    %edi,%ebx
40e524:	c1 eb 04             	shr    $0x4,%ebx
40e527:	53                   	push   %ebx
40e528:	55                   	push   %ebp
40e529:	50                   	push   %eax
40e52a:	51                   	push   %ecx
40e52b:	e8 60 18 00 00       	call   0x40fd90
40e530:	83 c4 10             	add    $0x10,%esp
40e533:	85 c0                	test   %eax,%eax
40e535:	74 04                	je     0x40e53b
40e537:	8b de                	mov    %esi,%ebx
40e539:	eb 4a                	jmp    0x40e585
40e53b:	53                   	push   %ebx
40e53c:	e8 8f 14 00 00       	call   0x40f9d0
40e541:	8b d8                	mov    %eax,%ebx
40e543:	83 c4 04             	add    $0x4,%esp
40e546:	85 db                	test   %ebx,%ebx
40e548:	74 3f                	je     0x40e589
40e54a:	33 c0                	xor    %eax,%eax
40e54c:	8a 45 00             	mov    0x0(%ebp),%al
40e54f:	c1 e0 04             	shl    $0x4,%eax
40e552:	3b c7                	cmp    %edi,%eax
40e554:	72 02                	jb     0x40e558
40e556:	8b c7                	mov    %edi,%eax
40e558:	8b c8                	mov    %eax,%ecx
40e55a:	8b fb                	mov    %ebx,%edi
40e55c:	8b d1                	mov    %ecx,%edx
40e55e:	55                   	push   %ebp
40e55f:	c1 e9 02             	shr    $0x2,%ecx
40e562:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40e564:	8b ca                	mov    %edx,%ecx
40e566:	83 e1 03             	and    $0x3,%ecx
40e569:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40e56b:	8b 44 24 14          	mov    0x14(%esp),%eax
40e56f:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40e573:	50                   	push   %eax
40e574:	51                   	push   %ecx
40e575:	e8 f6 13 00 00       	call   0x40f970
40e57a:	8b 7c 24 2c          	mov    0x2c(%esp),%edi
40e57e:	8b 74 24 28          	mov    0x28(%esp),%esi
40e582:	83 c4 0c             	add    $0xc,%esp
40e585:	85 db                	test   %ebx,%ebx
40e587:	75 4f                	jne    0x40e5d8
40e589:	8b 15 8c 89 43 00    	mov    0x43898c,%edx
40e58f:	57                   	push   %edi
40e590:	6a 00                	push   $0x0
40e592:	52                   	push   %edx
40e593:	ff 15 58 96 43 00    	call   *0x439658
40e599:	8b d8                	mov    %eax,%ebx
40e59b:	85 db                	test   %ebx,%ebx
40e59d:	74 39                	je     0x40e5d8
40e59f:	33 c0                	xor    %eax,%eax
40e5a1:	8a 45 00             	mov    0x0(%ebp),%al
40e5a4:	c1 e0 04             	shl    $0x4,%eax
40e5a7:	3b c7                	cmp    %edi,%eax
40e5a9:	72 02                	jb     0x40e5ad
40e5ab:	8b c7                	mov    %edi,%eax
40e5ad:	8b c8                	mov    %eax,%ecx
40e5af:	8b fb                	mov    %ebx,%edi
40e5b1:	c1 e9 02             	shr    $0x2,%ecx
40e5b4:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40e5b6:	8b c8                	mov    %eax,%ecx
40e5b8:	55                   	push   %ebp
40e5b9:	83 e1 03             	and    $0x3,%ecx
40e5bc:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40e5be:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40e5c2:	8b 54 24 18          	mov    0x18(%esp),%edx
40e5c6:	51                   	push   %ecx
40e5c7:	52                   	push   %edx
40e5c8:	e8 a3 13 00 00       	call   0x40f970
40e5cd:	8b 7c 24 2c          	mov    0x2c(%esp),%edi
40e5d1:	8b 74 24 28          	mov    0x28(%esp),%esi
40e5d5:	83 c4 0c             	add    $0xc,%esp
40e5d8:	6a 09                	push   $0x9
40e5da:	e8 e1 0e 00 00       	call   0x40f4c0
40e5df:	83 c4 04             	add    $0x4,%esp