40c31f:	74 05                	je     0x40c326
40c321:	6a 07                	push   $0x7
40c323:	59                   	pop    %ecx
40c324:	cd 29                	int    $0x29
40c326:	6a 01                	push   $0x1
40c328:	68 15 00 00 40       	push   $0x40000015
40c32d:	6a 03                	push   $0x3
40c32f:	e8 36 27 00 00       	call   0x40ea6a
40c334:	83 c4 0c             	add    $0xc,%esp
40c337:	6a 03                	push   $0x3
40c339:	e8 f2 f7 ff ff       	call   0x40bb30
40c33e:	cc                   	int3
40c33f:	8b ff                	mov    %edi,%edi
40c341:	55                   	push   %ebp
40c342:	8b ec                	mov    %esp,%ebp
40c344:	5d                   	pop    %ebp
40c345:	e9 9c 29 00 00       	jmp    0x40ece6
40c34a:	8b ff                	mov    %edi,%edi
40c34c:	55                   	push   %ebp
40c34d:	8b ec                	mov    %esp,%ebp
40c34f:	81 ec 84 04 00 00    	sub    $0x484,%esp
40c355:	a1 18 60 42 00       	mov    0x426018,%eax
40c35a:	33 c5                	xor    %ebp,%eax
40c35c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c35f:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
40c363:	8b 45 10             	mov    0x10(%ebp),%eax
40c366:	53                   	push   %ebx
40c367:	8b 5d 14             	mov    0x14(%ebp),%ebx
40c36a:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
40c370:	75 18                	jne    0x40c38a
40c372:	e8 5c 29 00 00       	call   0x40ecd3
40c377:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40c37d:	e8 94 28 00 00       	call   0x40ec16
40c382:	83 c8 ff             	or     $0xffffffff,%eax
40c385:	e9 1b 01 00 00       	jmp    0x40c4a5
40c38a:	85 db                	test   %ebx,%ebx
40c38c:	74 04                	je     0x40c392
40c38e:	85 c0                	test   %eax,%eax
40c390:	74 e0                	je     0x40c372
40c392:	56                   	push   %esi
40c393:	57                   	push   %edi
40c394:	ff 75 1c             	push   0x1c(%ebp)
40c397:	8d 8d 7c fb ff ff    	lea    -0x484(%ebp),%ecx
40c39d:	e8 a8 06 00 00       	call   0x40ca4a
40c3a2:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c3a5:	8d bd 90 fb ff ff    	lea    -0x470(%ebp),%edi
40c3ab:	33 c0                	xor    %eax,%eax
40c3ad:	33 d2                	xor    %edx,%edx
40c3af:	ab                   	stos   %eax,%es:(%edi)
40c3b0:	ab                   	stos   %eax,%es:(%edi)
40c3b1:	ab                   	stos   %eax,%es:(%edi)
40c3b2:	ab                   	stos   %eax,%es:(%edi)
40c3b3:	8b c1                	mov    %ecx,%eax
40c3b5:	8b bd a0 fb ff ff    	mov    -0x460(%ebp),%edi
40c3bb:	83 e0 02             	and    $0x2,%eax
40c3be:	89 85 8c fb ff ff    	mov    %eax,-0x474(%ebp)
40c3c4:	0b c2                	or     %edx,%eax
40c3c6:	89 bd 90 fb ff ff    	mov    %edi,-0x470(%ebp)
40c3cc:	89 9d 94 fb ff ff    	mov    %ebx,-0x46c(%ebp)
40c3d2:	89 95 98 fb ff ff    	mov    %edx,-0x468(%ebp)
40c3d8:	75 0a                	jne    0x40c3e4
40c3da:	88 95 9c fb ff ff    	mov    %dl,-0x464(%ebp)
40c3e0:	85 ff                	test   %edi,%edi
40c3e2:	75 07                	jne    0x40c3eb
40c3e4:	c6 85 9c fb ff ff 01 	movb   $0x1,-0x464(%ebp)
40c3eb:	ff 75 20             	push   0x20(%ebp)
40c3ee:	8d 85 90 fb ff ff    	lea    -0x470(%ebp),%eax
40c3f4:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
40c3fa:	8d 85 80 fb ff ff    	lea    -0x480(%ebp),%eax
40c400:	50                   	push   %eax
40c401:	ff 75 18             	push   0x18(%ebp)
40c404:	8d 85 a0 fb ff ff    	lea    -0x460(%ebp),%eax
40c40a:	ff 75 0c             	push   0xc(%ebp)
40c40d:	51                   	push   %ecx
40c40e:	50                   	push   %eax
40c40f:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
40c415:	e8 f4 05 00 00       	call   0x40ca0e
40c41a:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40c41e:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
40c424:	e8 c2 08 00 00       	call   0x40cceb
40c429:	8b f0                	mov    %eax,%esi
40c42b:	85 ff                	test   %edi,%edi
40c42d:	74 51                	je     0x40c480
40c42f:	8b 45 08             	mov    0x8(%ebp),%eax
40c432:	83 e0 01             	and    $0x1,%eax
40c435:	83 c8 00             	or     $0x0,%eax
40c438:	74 1c                	je     0x40c456
40c43a:	85 db                	test   %ebx,%ebx
40c43c:	75 04                	jne    0x40c442
40c43e:	85 f6                	test   %esi,%esi
40c440:	75 74                	jne    0x40c4b6
40c442:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
40c448:	3b c3                	cmp    %ebx,%eax
40c44a:	75 2e                	jne    0x40c47a
40c44c:	85 f6                	test   %esi,%esi
40c44e:	78 30                	js     0x40c480
40c450:	3b f3                	cmp    %ebx,%esi
40c452:	76 2c                	jbe    0x40c480
40c454:	eb 60                	jmp    0x40c4b6
40c456:	8b 85 8c fb ff ff    	mov    -0x474(%ebp),%eax
40c45c:	83 c8 00             	or     $0x0,%eax
40c45f:	74 51                	je     0x40c4b2
40c461:	85 db                	test   %ebx,%ebx
40c463:	74 1b                	je     0x40c480
40c465:	85 f6                	test   %esi,%esi
40c467:	79 07                	jns    0x40c470
40c469:	33 c0                	xor    %eax,%eax
40c46b:	66 89 07             	mov    %ax,(%edi)
40c46e:	eb 10                	jmp    0x40c480
40c470:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
40c476:	3b c3                	cmp    %ebx,%eax
40c478:	74 4e                	je     0x40c4c8
40c47a:	33 c9                	xor    %ecx,%ecx
40c47c:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
40c480:	8d 8d e4 fb ff ff    	lea    -0x41c(%ebp),%ecx
40c486:	e8 52 06 00 00       	call   0x40cadd
40c48b:	80 bd 88 fb ff ff 00 	cmpb   $0x0,-0x478(%ebp)
40c492:	74 0d                	je     0x40c4a1
40c494:	8b 8d 7c fb ff ff    	mov    -0x484(%ebp),%ecx
40c49a:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
40c4a1:	5f                   	pop    %edi
40c4a2:	8b c6                	mov    %esi,%eax
40c4a4:	5e                   	pop    %esi
40c4a5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40c4a8:	33 cd                	xor    %ebp,%ecx
40c4aa:	5b                   	pop    %ebx
40c4ab:	e8 45 c7 ff ff       	call   0x408bf5
40c4b0:	c9                   	leave
40c4b1:	c3                   	ret
40c4b2:	85 db                	test   %ebx,%ebx
40c4b4:	75 05                	jne    0x40c4bb
40c4b6:	83 ce ff             	or     $0xffffffff,%esi
40c4b9:	eb c5                	jmp    0x40c480
40c4bb:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
40c4c1:	3b c3                	cmp    %ebx,%eax
40c4c3:	75 b5                	jne    0x40c47a
40c4c5:	6a fe                	push   $0xfffffffe
40c4c7:	5e                   	pop    %esi
40c4c8:	33 c0                	xor    %eax,%eax
40c4ca:	66 89 44 5f fe       	mov    %ax,-0x2(%edi,%ebx,2)
40c4cf:	eb af                	jmp    0x40c480
40c4d1:	8b ff                	mov    %edi,%edi
40c4d3:	55                   	push   %ebp
40c4d4:	8b ec                	mov    %esp,%ebp
40c4d6:	81 ec 84 04 00 00    	sub    $0x484,%esp
40c4dc:	a1 18 60 42 00       	mov    0x426018,%eax
40c4e1:	33 c5                	xor    %ebp,%eax
40c4e3:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c4e6:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
40c4ea:	8b 45 10             	mov    0x10(%ebp),%eax
40c4ed:	53                   	push   %ebx
40c4ee:	8b 5d 14             	mov    0x14(%ebp),%ebx
40c4f1:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
40c4f7:	75 18                	jne    0x40c511
40c4f9:	e8 d5 27 00 00       	call   0x40ecd3
40c4fe:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40c504:	e8 0d 27 00 00       	call   0x40ec16
40c509:	83 c8 ff             	or     $0xffffffff,%eax
40c50c:	e9 1b 01 00 00       	jmp    0x40c62c
40c511:	85 db                	test   %ebx,%ebx
40c513:	74 04                	je     0x40c519
40c515:	85 c0                	test   %eax,%eax
40c517:	74 e0                	je     0x40c4f9
40c519:	56                   	push   %esi
40c51a:	57                   	push   %edi
40c51b:	ff 75 1c             	push   0x1c(%ebp)
40c51e:	8d 8d 7c fb ff ff    	lea    -0x484(%ebp),%ecx
40c524:	e8 21 05 00 00       	call   0x40ca4a
40c529:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c52c:	8d bd 90 fb ff ff    	lea    -0x470(%ebp),%edi
40c532:	33 c0                	xor    %eax,%eax
40c534:	33 d2                	xor    %edx,%edx
40c536:	ab                   	stos   %eax,%es:(%edi)
40c537:	ab                   	stos   %eax,%es:(%edi)
40c538:	ab                   	stos   %eax,%es:(%edi)
40c539:	ab                   	stos   %eax,%es:(%edi)
40c53a:	8b c1                	mov    %ecx,%eax
40c53c:	8b bd a0 fb ff ff    	mov    -0x460(%ebp),%edi
40c542:	83 e0 02             	and    $0x2,%eax
40c545:	89 85 8c fb ff ff    	mov    %eax,-0x474(%ebp)
40c54b:	0b c2                	or     %edx,%eax
40c54d:	89 bd 90 fb ff ff    	mov    %edi,-0x470(%ebp)
40c553:	89 9d 94 fb ff ff    	mov    %ebx,-0x46c(%ebp)
40c559:	89 95 98 fb ff ff    	mov    %edx,-0x468(%ebp)
40c55f:	75 0a                	jne    0x40c56b
40c561:	88 95 9c fb ff ff    	mov    %dl,-0x464(%ebp)
40c567:	85 ff                	test   %edi,%edi
40c569:	75 07                	jne    0x40c572
40c56b:	c6 85 9c fb ff ff 01 	movb   $0x1,-0x464(%ebp)
40c572:	ff 75 20             	push   0x20(%ebp)
40c575:	8d 85 90 fb ff ff    	lea    -0x470(%ebp),%eax
40c57b:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
40c581:	8d 85 80 fb ff ff    	lea    -0x480(%ebp),%eax
40c587:	50                   	push   %eax
40c588:	ff 75 18             	push   0x18(%ebp)
40c58b:	8d 85 a0 fb ff ff    	lea    -0x460(%ebp),%eax
40c591:	ff 75 0c             	push   0xc(%ebp)
40c594:	51                   	push   %ecx
40c595:	50                   	push   %eax
40c596:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
40c59c:	e8 6d 04 00 00       	call   0x40ca0e
40c5a1:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40c5a5:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
40c5ab:	e8 63 08 00 00       	call   0x40ce13
40c5b0:	8b f0                	mov    %eax,%esi
40c5b2:	85 ff                	test   %edi,%edi
40c5b4:	74 51                	je     0x40c607
40c5b6:	8b 45 08             	mov    0x8(%ebp),%eax
40c5b9:	83 e0 01             	and    $0x1,%eax
40c5bc:	83 c8 00             	or     $0x0,%eax
40c5bf:	74 1c                	je     0x40c5dd
40c5c1:	85 db                	test   %ebx,%ebx
40c5c3:	75 04                	jne    0x40c5c9
40c5c5:	85 f6                	test   %esi,%esi
40c5c7:	75 74                	jne    0x40c63d
40c5c9:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
40c5cf:	3b c3                	cmp    %ebx,%eax
40c5d1:	75 2e                	jne    0x40c601
40c5d3:	85 f6                	test   %esi,%esi
40c5d5:	78 30                	js     0x40c607
40c5d7:	3b f3                	cmp    %ebx,%esi
40c5d9:	76 2c                	jbe    0x40c607
40c5db:	eb 60                	jmp    0x40c63d
40c5dd:	8b 85 8c fb ff ff    	mov    -0x474(%ebp),%eax
40c5e3:	83 c8 00             	or     $0x0,%eax
40c5e6:	74 51                	je     0x40c639
40c5e8:	85 db                	test   %ebx,%ebx
40c5ea:	74 1b                	je     0x40c607
40c5ec:	85 f6                	test   %esi,%esi
40c5ee:	79 07                	jns    0x40c5f7
40c5f0:	33 c0                	xor    %eax,%eax
40c5f2:	66 89 07             	mov    %ax,(%edi)
40c5f5:	eb 10                	jmp    0x40c607
40c5f7:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
40c5fd:	3b c3                	cmp    %ebx,%eax
40c5ff:	74 4e                	je     0x40c64f
40c601:	33 c9                	xor    %ecx,%ecx
40c603:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
40c607:	8d 8d e4 fb ff ff    	lea    -0x41c(%ebp),%ecx
40c60d:	e8 cb 04 00 00       	call   0x40cadd
40c612:	80 bd 88 fb ff ff 00 	cmpb   $0x0,-0x478(%ebp)
40c619:	74 0d                	je     0x40c628
40c61b:	8b 8d 7c fb ff ff    	mov    -0x484(%ebp),%ecx
40c621:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
40c628:	5f                   	pop    %edi
40c629:	8b c6                	mov    %esi,%eax
40c62b:	5e                   	pop    %esi
40c62c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40c62f:	33 cd                	xor    %ebp,%ecx
40c631:	5b                   	pop    %ebx
40c632:	e8 be c5 ff ff       	call   0x408bf5
40c637:	c9                   	leave
40c638:	c3                   	ret
40c639:	85 db                	test   %ebx,%ebx
40c63b:	75 05                	jne    0x40c642
40c63d:	83 ce ff             	or     $0xffffffff,%esi
40c640:	eb c5                	jmp    0x40c607
40c642:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
40c648:	3b c3                	cmp    %ebx,%eax
40c64a:	75 b5                	jne    0x40c601
40c64c:	6a fe                	push   $0xfffffffe
40c64e:	5e                   	pop    %esi
40c64f:	33 c0                	xor    %eax,%eax
40c651:	66 89 44 5f fe       	mov    %ax,-0x2(%edi,%ebx,2)
40c656:	eb af                	jmp    0x40c607
40c658:	8b ff                	mov    %edi,%edi
40c65a:	55                   	push   %ebp
40c65b:	8b ec                	mov    %esp,%ebp
40c65d:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
40c661:	75 15                	jne    0x40c678
40c663:	e8 6b 26 00 00       	call   0x40ecd3
40c668:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40c66e:	e8 a3 25 00 00       	call   0x40ec16
40c673:	83 c8 ff             	or     $0xffffffff,%eax
40c676:	5d                   	pop    %ebp
40c677:	c3                   	ret
40c678:	56                   	push   %esi
40c679:	8b 75 10             	mov    0x10(%ebp),%esi
40c67c:	85 f6                	test   %esi,%esi
40c67e:	74 3c                	je     0x40c6bc
40c680:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
40c684:	76 36                	jbe    0x40c6bc
40c686:	ff 75 20             	push   0x20(%ebp)
40c689:	ff 75 1c             	push   0x1c(%ebp)
40c68c:	ff 75 18             	push   0x18(%ebp)
40c68f:	ff 75 14             	push   0x14(%ebp)
40c692:	56                   	push   %esi
40c693:	ff 75 0c             	push   0xc(%ebp)
40c696:	ff 75 08             	push   0x8(%ebp)
40c699:	e8 ac fc ff ff       	call   0x40c34a
40c69e:	83 c4 1c             	add    $0x1c,%esp
40c6a1:	85 c0                	test   %eax,%eax
40c6a3:	79 05                	jns    0x40c6aa
40c6a5:	33 c9                	xor    %ecx,%ecx
40c6a7:	66 89 0e             	mov    %cx,(%esi)
40c6aa:	83 f8 fe             	cmp    $0xfffffffe,%eax
40c6ad:	75 20                	jne    0x40c6cf
40c6af:	e8 1f 26 00 00       	call   0x40ecd3
40c6b4:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
40c6ba:	eb 0b                	jmp    0x40c6c7
40c6bc:	e8 12 26 00 00       	call   0x40ecd3
40c6c1:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40c6c7:	e8 4a 25 00 00       	call   0x40ec16
40c6cc:	83 c8 ff             	or     $0xffffffff,%eax
40c6cf:	5e                   	pop    %esi
40c6d0:	5d                   	pop    %ebp
40c6d1:	c3                   	ret
40c6d2:	83 b9 04 04 00 00 00 	cmpl   $0x0,0x404(%ecx)
40c6d9:	75 06                	jne    0x40c6e1
40c6db:	b8 00 02 00 00       	mov    $0x200,%eax
40c6e0:	c3                   	ret
40c6e1:	8b 81 00 04 00 00    	mov    0x400(%ecx),%eax
40c6e7:	d1 e8                	shr    $1,%eax
40c6e9:	c3                   	ret
40c6ea:	83 b9 04 04 00 00 00 	cmpl   $0x0,0x404(%ecx)
40c6f1:	75 06                	jne    0x40c6f9
40c6f3:	b8 00 01 00 00       	mov    $0x100,%eax
40c6f8:	c3                   	ret
40c6f9:	8b 81 00 04 00 00    	mov    0x400(%ecx),%eax
40c6ff:	c1 e8 02             	shr    $0x2,%eax
40c702:	c3                   	ret
40c703:	8b ff                	mov    %edi,%edi
40c705:	55                   	push   %ebp
40c706:	8b ec                	mov    %esp,%ebp
40c708:	51                   	push   %ecx
40c709:	56                   	push   %esi
40c70a:	8b 75 08             	mov    0x8(%ebp),%esi
40c70d:	57                   	push   %edi
40c70e:	8b f9                	mov    %ecx,%edi
40c710:	81 fe ff ff ff 7f    	cmp    $0x7fffffff,%esi
40c716:	76 0f                	jbe    0x40c727
40c718:	e8 b6 25 00 00       	call   0x40ecd3
40c71d:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
40c723:	32 c0                	xor    %al,%al
40c725:	eb 53                	jmp    0x40c77a
40c727:	53                   	push   %ebx
40c728:	33 db                	xor    %ebx,%ebx
40c72a:	03 f6                	add    %esi,%esi
40c72c:	39 9f 04 04 00 00    	cmp    %ebx,0x404(%edi)
40c732:	75 08                	jne    0x40c73c
40c734:	81 fe 00 04 00 00    	cmp    $0x400,%esi
40c73a:	76 08                	jbe    0x40c744
40c73c:	3b b7 00 04 00 00    	cmp    0x400(%edi),%esi
40c742:	77 04                	ja     0x40c748
40c744:	b0 01                	mov    $0x1,%al
40c746:	eb 31                	jmp    0x40c779
40c748:	56                   	push   %esi
40c749:	e8 95 42 00 00       	call   0x4109e3
40c74e:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c751:	59                   	pop    %ecx