40e24a:	00
40e24b:	89 44 24 1c          	mov    %eax,0x1c(%esp)
40e24f:	e8 a6 cb ff ff       	call   0x40adfa
40e254:	d1 e8                	shr    $1,%eax
40e256:	89 07                	mov    %eax,(%edi)
40e258:	8b 44 24 10          	mov    0x10(%esp),%eax
40e25c:	68 34 1a 40 00       	push   $0x401a34
40e261:	ff 74 24 28          	push   0x28(%esp)
40e265:	8d 8f 00 fe ff ff    	lea    -0x200(%edi),%ecx
40e26b:	8b d0                	mov    %eax,%edx
40e26d:	e8 97 f9 ff ff       	call   0x40dc09
40e272:	8b 44 24 14          	mov    0x14(%esp),%eax
40e276:	33 c9                	xor    %ecx,%ecx
40e278:	85 c0                	test   %eax,%eax
40e27a:	75 2f                	jne    0x40e2ab
40e27c:	8b 47 04             	mov    0x4(%edi),%eax
40e27f:	a9 00 00 01 00       	test   $0x10000,%eax
40e284:	75 14                	jne    0x40e29a
40e286:	25 f0 0f 00 00       	and    $0xff0,%eax
40e28b:	83 f8 20             	cmp    $0x20,%eax
40e28e:	74 0a                	je     0x40e29a
40e290:	83 f8 30             	cmp    $0x30,%eax
40e293:	74 05                	je     0x40e29a
40e295:	83 f8 40             	cmp    $0x40,%eax
40e298:	75 03                	jne    0x40e29d
40e29a:	33 c9                	xor    %ecx,%ecx
40e29c:	41                   	inc    %ecx
40e29d:	8b 17                	mov    (%edi),%edx
40e29f:	51                   	push   %ecx
40e2a0:	8b cb                	mov    %ebx,%ecx
40e2a2:	e8 38 be ff ff       	call   0x40a0df
40e2a7:	8b 44 24 14          	mov    0x14(%esp),%eax
40e2ab:	83 f8 01             	cmp    $0x1,%eax
40e2ae:	75 06                	jne    0x40e2b6
40e2b0:	8b 44 24 1c          	mov    0x1c(%esp),%eax
40e2b4:	89 07                	mov    %eax,(%edi)
40e2b6:	83 7c 24 20 01       	cmpl   $0x1,0x20(%esp)
40e2bb:	75 0c                	jne    0x40e2c9
40e2bd:	ba 68 18 40 00       	mov    $0x401868,%edx
40e2c2:	8b ce                	mov    %esi,%ecx
40e2c4:	e8 24 c2 ff ff       	call   0x40a4ed
40e2c9:	f7 47 04 00 80 00 00 	testl  $0x8000,0x4(%edi)
40e2d0:	8b d3                	mov    %ebx,%edx
40e2d2:	8b ce                	mov    %esi,%ecx
40e2d4:	74 65                	je     0x40e33b
40e2d6:	ff 37                	push   (%edi)
40e2d8:	68 34 1a 40 00       	push   $0x401a34
40e2dd:	e8 e4 fb ff ff       	call   0x40dec6
40e2e2:	8b cb                	mov    %ebx,%ecx
40e2e4:	e8 d4 bc ff ff       	call   0x409fbd
40e2e9:	85 c0                	test   %eax,%eax
40e2eb:	74 53                	je     0x40e340
40e2ed:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40e2f1:	6a 03                	push   $0x3
40e2f3:	5a                   	pop    %edx
40e2f4:	e8 92 a9 ff ff       	call   0x408c8b
40e2f9:	89 44 24 1c          	mov    %eax,0x1c(%esp)
40e2fd:	83 f8 ff             	cmp    $0xffffffff,%eax
40e300:	74 3e                	je     0x40e340
40e302:	ff 74 24 10          	push   0x10(%esp)
40e306:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40e30a:	8b d0                	mov    %eax,%edx
40e30c:	6a 00                	push   $0x0
40e30e:	e8 07 b0 ff ff       	call   0x40931a
40e313:	8b 54 24 1c          	mov    0x1c(%esp),%edx
40e317:	51                   	push   %ecx
40e318:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40e31c:	53                   	push   %ebx
40e31d:	6a 02                	push   $0x2
40e31f:	e8 c6 af ff ff       	call   0x4092ea
40e324:	8b 54 24 1c          	mov    0x1c(%esp),%edx
40e328:	51                   	push   %ecx
40e329:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40e32d:	68 34 1a 40 00       	push   $0x401a34
40e332:	6a 01                	push   $0x1
40e334:	e8 b1 af ff ff       	call   0x4092ea
40e339:	eb 05                	jmp    0x40e340
40e33b:	e8 ad c1 ff ff       	call   0x40a4ed
40e340:	8b 44 24 10          	mov    0x10(%esp),%eax
40e344:	c7 44 24 20 01 00 00 	movl   $0x1,0x20(%esp)
40e34b:	00
40e34c:	40                   	inc    %eax
40e34d:	81 c7 94 02 00 00    	add    $0x294,%edi
40e353:	89 44 24 10          	mov    %eax,0x10(%esp)
40e357:	83 f8 0d             	cmp    $0xd,%eax
40e35a:	0f 82 bf fe ff ff    	jb     0x40e21f
40e360:	ba 7c 14 40 00       	mov    $0x40147c,%edx
40e365:	8b ce                	mov    %esi,%ecx
40e367:	e8 81 c1 ff ff       	call   0x40a4ed
40e36c:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40e370:	e8 43 aa ff ff       	call   0x408db8
40e375:	89 44 24 10          	mov    %eax,0x10(%esp)
40e379:	85 c0                	test   %eax,%eax
40e37b:	0f 84 7b 01 00 00    	je     0x40e4fc
40e381:	eb 04                	jmp    0x40e387
40e383:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40e387:	83 4c 24 20 ff       	orl    $0xffffffff,0x20(%esp)
40e38c:	33 ff                	xor    %edi,%edi
40e38e:	83 64 24 14 00       	andl   $0x0,0x14(%esp)
40e393:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
40e397:	85 c0                	test   %eax,%eax
40e399:	0f 84 45 01 00 00    	je     0x40e4e4
40e39f:	eb 04                	jmp    0x40e3a5
40e3a1:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40e3a5:	51                   	push   %ecx
40e3a6:	8b d7                	mov    %edi,%edx
40e3a8:	e8 ee ac ff ff       	call   0x40909b
40e3ad:	8b 54 24 20          	mov    0x20(%esp),%edx
40e3b1:	42                   	inc    %edx
40e3b2:	89 44 24 24          	mov    %eax,0x24(%esp)
40e3b6:	3b d0                	cmp    %eax,%edx
40e3b8:	73 72                	jae    0x40e42c
40e3ba:	8b 7d 08             	mov    0x8(%ebp),%edi
40e3bd:	69 ca 94 02 00 00    	imul   $0x294,%edx,%ecx
40e3c3:	81 c7 00 02 00 00    	add    $0x200,%edi
40e3c9:	03 f9                	add    %ecx,%edi
40e3cb:	2b c2                	sub    %edx,%eax
40e3cd:	89 44 24 20          	mov    %eax,0x20(%esp)
40e3d1:	f7 47 04 00 10 00 00 	testl  $0x1000,0x4(%edi)
40e3d8:	75 3b                	jne    0x40e415
40e3da:	83 7c 24 14 01       	cmpl   $0x1,0x14(%esp)
40e3df:	75 0c                	jne    0x40e3ed
40e3e1:	ba 68 18 40 00       	mov    $0x401868,%edx
40e3e6:	8b ce                	mov    %esi,%ecx
40e3e8:	e8 00 c1 ff ff       	call   0x40a4ed
40e3ed:	8b 0f                	mov    (%edi),%ecx
40e3ef:	ba 68 18 40 00       	mov    $0x401868,%edx
40e3f4:	8d 41 01             	lea    0x1(%ecx),%eax
40e3f7:	50                   	push   %eax
40e3f8:	51                   	push   %ecx
40e3f9:	8b cb                	mov    %ebx,%ecx
40e3fb:	e8 72 be ff ff       	call   0x40a272
40e400:	8b d3                	mov    %ebx,%edx
40e402:	8b ce                	mov    %esi,%ecx
40e404:	e8 e4 c0 ff ff       	call   0x40a4ed
40e409:	8b 44 24 20          	mov    0x20(%esp),%eax
40e40d:	c7 44 24 14 01 00 00 	movl   $0x1,0x14(%esp)
40e414:	00
40e415:	81 c7 94 02 00 00    	add    $0x294,%edi
40e41b:	83 e8 01             	sub    $0x1,%eax
40e41e:	89 44 24 20          	mov    %eax,0x20(%esp)
40e422:	75 ad                	jne    0x40e3d1
40e424:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
40e428:	8b 44 24 24          	mov    0x24(%esp),%eax
40e42c:	83 7c 24 14 01       	cmpl   $0x1,0x14(%esp)
40e431:	89 44 24 20          	mov    %eax,0x20(%esp)
40e435:	75 0c                	jne    0x40e443
40e437:	ba 68 18 40 00       	mov    $0x401868,%edx
40e43c:	8b ce                	mov    %esi,%ecx
40e43e:	e8 aa c0 ff ff       	call   0x40a4ed
40e443:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40e447:	8b d7                	mov    %edi,%edx
40e449:	6a 02                	push   $0x2
40e44b:	e8 1f ac ff ff       	call   0x40906f
40e450:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40e454:	8b d7                	mov    %edi,%edx
40e456:	6a 01                	push   $0x1
40e458:	89 44 24 20          	mov    %eax,0x20(%esp)
40e45c:	e8 0e ac ff ff       	call   0x40906f
40e461:	83 7c 24 1c 00       	cmpl   $0x0,0x1c(%esp)
40e466:	89 44 24 28          	mov    %eax,0x28(%esp)
40e46a:	74 67                	je     0x40e4d3
40e46c:	85 c0                	test   %eax,%eax
40e46e:	74 63                	je     0x40e4d3
40e470:	8b cb                	mov    %ebx,%ecx
40e472:	e8 83 c9 ff ff       	call   0x40adfa
40e477:	8b 54 24 1c          	mov    0x1c(%esp),%edx
40e47b:	8b cb                	mov    %ebx,%ecx
40e47d:	d1 e8                	shr    $1,%eax
40e47f:	50                   	push   %eax
40e480:	e8 71 bf ff ff       	call   0x40a3f6
40e485:	69 44 24 24 94 02 00 	imul   $0x294,0x24(%esp),%eax
40e48c:	00
40e48d:	8b d3                	mov    %ebx,%edx
40e48f:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e492:	ff b4 08 00 02 00 00 	push   0x200(%eax,%ecx,1)
40e499:	8b ce                	mov    %esi,%ecx
40e49b:	ff 74 24 2c          	push   0x2c(%esp)
40e49f:	e8 22 fa ff ff       	call   0x40dec6
40e4a4:	8b cb                	mov    %ebx,%ecx
40e4a6:	e8 12 bb ff ff       	call   0x409fbd
40e4ab:	8b d7                	mov    %edi,%edx
40e4ad:	85 c0                	test   %eax,%eax
40e4af:	75 15                	jne    0x40e4c6
40e4b1:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40e4b5:	e8 ae a8 ff ff       	call   0x408d68
40e4ba:	8b 44 24 10          	mov    0x10(%esp),%eax
40e4be:	4f                   	dec    %edi
40e4bf:	48                   	dec    %eax
40e4c0:	89 44 24 10          	mov    %eax,0x10(%esp)
40e4c4:	eb 11                	jmp    0x40e4d7
40e4c6:	51                   	push   %ecx
40e4c7:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40e4cb:	53                   	push   %ebx
40e4cc:	6a 02                	push   $0x2
40e4ce:	e8 17 ae ff ff       	call   0x4092ea
40e4d3:	8b 44 24 10          	mov    0x10(%esp),%eax
40e4d7:	47                   	inc    %edi
40e4d8:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
40e4dc:	3b f8                	cmp    %eax,%edi
40e4de:	0f 82 bd fe ff ff    	jb     0x40e3a1
40e4e4:	ba 7c 14 40 00       	mov    $0x40147c,%edx
40e4e9:	8b ce                	mov    %esi,%ecx
40e4eb:	e8 fd bf ff ff       	call   0x40a4ed
40e4f0:	8b 44 24 10          	mov    0x10(%esp),%eax
40e4f4:	85 c0                	test   %eax,%eax
40e4f6:	0f 85 87 fe ff ff    	jne    0x40e383
40e4fc:	8b 7c 24 18          	mov    0x18(%esp),%edi
40e500:	47                   	inc    %edi
40e501:	89 7c 24 18          	mov    %edi,0x18(%esp)
40e505:	3b 7c 24 2c          	cmp    0x2c(%esp),%edi
40e509:	0f 82 d0 fc ff ff    	jb     0x40e1df
40e50f:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
40e513:	e8 c8 a5 ff ff       	call   0x408ae0
40e518:	eb 25                	jmp    0x40e53f
40e51a:	ff 15 48 20 41 00    	call   *0x412048
40e520:	85 c0                	test   %eax,%eax
40e522:	75 16                	jne    0x40e53a
40e524:	6a 08                	push   $0x8
40e526:	eb 0c                	jmp    0x40e534
40e528:	ff 15 48 20 41 00    	call   *0x412048
40e52e:	85 c0                	test   %eax,%eax
40e530:	75 08                	jne    0x40e53a
40e532:	6a 57                	push   $0x57
40e534:	ff 15 74 20 41 00    	call   *0x412074
40e53a:	e8 b5 b2 ff ff       	call   0x4097f4
40e53f:	5f                   	pop    %edi
40e540:	5e                   	pop    %esi
40e541:	5b                   	pop    %ebx
40e542:	8b e5                	mov    %ebp,%esp
40e544:	5d                   	pop    %ebp
40e545:	c2 0c 00             	ret    $0xc
40e548:	8b ff                	mov    %edi,%edi
40e54a:	55                   	push   %ebp
40e54b:	8b ec                	mov    %esp,%ebp
40e54d:	83 e4 f8             	and    $0xfffffff8,%esp
40e550:	81 ec bc 00 00 00    	sub    $0xbc,%esp
40e556:	a1 44 10 41 00       	mov    0x411044,%eax
40e55b:	33 c4                	xor    %esp,%eax
40e55d:	89 84 24 b8 00 00 00 	mov    %eax,0xb8(%esp)
40e564:	8b 45 10             	mov    0x10(%ebp),%eax
40e567:	53                   	push   %ebx
40e568:	8b 5d 08             	mov    0x8(%ebp),%ebx
40e56b:	56                   	push   %esi
40e56c:	57                   	push   %edi
40e56d:	68 80 00 00 00       	push   $0x80
40e572:	89 44 24 30          	mov    %eax,0x30(%esp)
40e576:	8b f9                	mov    %ecx,%edi
40e578:	8d 44 24 44          	lea    0x44(%esp),%eax
40e57c:	89 7c 24 14          	mov    %edi,0x14(%esp)
40e580:	6a 00                	push   $0x0
40e582:	50                   	push   %eax
40e583:	89 5c 24 3c          	mov    %ebx,0x3c(%esp)
40e587:	e8 38 0e 00 00       	call   0x40f3c4
40e58c:	83 c4 0c             	add    $0xc,%esp
40e58f:	85 ff                	test   %edi,%edi
40e591:	0f 84 10 02 00 00    	je     0x40e7a7
40e597:	85 db                	test   %ebx,%ebx
40e599:	0f 84 08 02 00 00    	je     0x40e7a7
40e59f:	6a 01                	push   $0x1
40e5a1:	68 00 10 00 00       	push   $0x1000
40e5a6:	6a 16                	push   $0x16
40e5a8:	33 d2                	xor    %edx,%edx
40e5aa:	59                   	pop    %ecx
40e5ab:	e8 f3 af ff ff       	call   0x4095a3
40e5b0:	89 44 24 18          	mov    %eax,0x18(%esp)
40e5b4:	85 c0                	test   %eax,%eax
40e5b6:	75 15                	jne    0x40e5cd
40e5b8:	ff 15 48 20 41 00    	call   *0x412048
40e5be:	85 c0                	test   %eax,%eax
40e5c0:	0f 85 f3 01 00 00    	jne    0x40e7b9
40e5c6:	6a 08                	push   $0x8
40e5c8:	e9 e6 01 00 00       	jmp    0x40e7b3
40e5cd:	83 64 24 14 00       	andl   $0x0,0x14(%esp)
40e5d2:	8b f3                	mov    %ebx,%esi
40e5d4:	8b 7c 24 14          	mov    0x14(%esp),%edi
40e5d8:	6a 0d                	push   $0xd
40e5da:	5b                   	pop    %ebx
40e5db:	85 f6                	test   %esi,%esi
40e5dd:	74 09                	je     0x40e5e8
40e5df:	8b ce                	mov    %esi,%ecx
40e5e1:	e8 d7 b9 ff ff       	call   0x409fbd
40e5e6:	eb 02                	jmp    0x40e5ea
40e5e8:	33 c0                	xor    %eax,%eax
40e5ea:	3b f8                	cmp    %eax,%edi
40e5ec:	73 02                	jae    0x40e5f0
40e5ee:	8b f8                	mov    %eax,%edi
40e5f0:	81 c6 94 02 00 00    	add    $0x294,%esi
40e5f6:	83 eb 01             	sub    $0x1,%ebx
40e5f9:	75 e0                	jne    0x40e5db
40e5fb:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
40e5ff:	89 7c 24 14          	mov    %edi,0x14(%esp)
40e603:	e8 b0 a7 ff ff       	call   0x408db8
40e608:	8b 7c 24 10          	mov    0x10(%esp),%edi
40e60c:	89 44 24 28          	mov    %eax,0x28(%esp)
40e610:	89 5c 24 24          	mov    %ebx,0x24(%esp)
40e614:	85 c0                	test   %eax,%eax
40e616:	0f 84 a2 01 00 00    	je     0x40e7be
40e61c:	8b d3                	mov    %ebx,%edx
40e61e:	e8 c8 a7 ff ff       	call   0x408deb
40e623:	89 44 24 34          	mov    %eax,0x34(%esp)
40e627:	85 c0                	test   %eax,%eax
40e629:	0f 84 63 01 00 00    	je     0x40e792
40e62f:	8b 5c 24 30          	mov    0x30(%esp),%ebx
40e633:	83 64 24 1c 00       	andl   $0x0,0x1c(%esp)
40e638:	81 c3 00 02 00 00    	add    $0x200,%ebx
40e63e:	8b 74 24 18          	mov    0x18(%esp),%esi
40e642:	89 5c 24 20          	mov    %ebx,0x20(%esp)
40e646:	8b ce                	mov    %esi,%ecx
40e648:	e8 ad c7 ff ff       	call   0x40adfa
40e64d:	d1 e8                	shr    $1,%eax
40e64f:	ba 30 12 40 00       	mov    $0x401230,%edx
40e654:	50                   	push   %eax
40e655:	8b ce                	mov    %esi,%ecx
40e657:	e8 9a bd ff ff       	call   0x40a3f6
40e65c:	f7 43 04 00 10 00 00 	testl  $0x1000,0x4(%ebx)
40e663:	0f 85 f4 00 00 00    	jne    0x40e75d
40e669:	8d bb 00 fe ff ff    	lea    -0x200(%ebx),%edi
40e66f:	8b ce                	mov    %esi,%ecx
40e671:	57                   	push   %edi
40e672:	68 3c 1a 40 00       	push   $0x401a3c
40e677:	e8 7e c7 ff ff       	call   0x40adfa
40e67c:	d1 e8                	shr    $1,%eax
40e67e:	48                   	dec    %eax
40e67f:	50                   	push   %eax
40e680:	56                   	push   %esi
40e681:	e8 9e ad ff ff       	call   0x409424
40e686:	8b 44 24 24          	mov    0x24(%esp),%eax
40e68a:	83 c4 10             	add    $0x10,%esp
40e68d:	83 c0 02             	add    $0x2,%eax
40e690:	8b ce                	mov    %esi,%ecx
40e692:	8b d0                	mov    %eax,%edx
40e694:	89 44 24 3c          	mov    %eax,0x3c(%esp)
40e698:	6a 00                	push   $0x0
40e69a:	e8 40 ba ff ff       	call   0x40a0df
40e69f:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40e6a3:	8b d6                	mov    %esi,%edx
40e6a5:	e8 43 be ff ff       	call   0x40a4ed
40e6aa:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40e6ae:	8b 33                	mov    (%ebx),%esi
40e6b0:	e8 45 c7 ff ff       	call   0x40adfa
40e6b5:	8b 54 24 1c          	mov    0x1c(%esp),%edx
40e6b9:	8b cf                	mov    %edi,%ecx
40e6bb:	68 7c 14 40 00       	push   $0x40147c
40e6c0:	ff 74 24 38          	push   0x38(%esp)
40e6c4:	d1 e8                	shr    $1,%eax
40e6c6:	89 03                	mov    %eax,(%ebx)
40e6c8:	e8 3c f5 ff ff       	call   0x40dc09
40e6cd:	89 33                	mov    %esi,(%ebx)
40e6cf:	8b 74 24 18          	mov    0x18(%esp),%esi