40f407:	5e                   	pop    %esi
40f408:	5b                   	pop    %ebx
40f409:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f40c:	33 cd                	xor    %ebp,%ecx
40f40e:	e8 26 53 ff ff       	call   0x404739
40f413:	c9                   	leave
40f414:	c3                   	ret
40f415:	55                   	push   %ebp
40f416:	8b ec                	mov    %esp,%ebp
40f418:	83 ec 10             	sub    $0x10,%esp
40f41b:	ff 75 08             	push   0x8(%ebp)
40f41e:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40f421:	e8 d7 5d ff ff       	call   0x4051fd
40f426:	ff 75 20             	push   0x20(%ebp)
40f429:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f42c:	ff 75 1c             	push   0x1c(%ebp)
40f42f:	ff 75 18             	push   0x18(%ebp)
40f432:	ff 75 14             	push   0x14(%ebp)
40f435:	ff 75 10             	push   0x10(%ebp)
40f438:	ff 75 0c             	push   0xc(%ebp)
40f43b:	50                   	push   %eax
40f43c:	e8 e8 fe ff ff       	call   0x40f329
40f441:	83 c4 1c             	add    $0x1c,%esp
40f444:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
40f448:	74 07                	je     0x40f451
40f44a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40f44d:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
40f451:	c9                   	leave
40f452:	c3                   	ret
40f453:	55                   	push   %ebp
40f454:	8b ec                	mov    %esp,%ebp
40f456:	8b 45 10             	mov    0x10(%ebp),%eax
40f459:	83 ec 14             	sub    $0x14,%esp
40f45c:	56                   	push   %esi
40f45d:	57                   	push   %edi
40f45e:	8b 7d 08             	mov    0x8(%ebp),%edi
40f461:	33 f6                	xor    %esi,%esi
40f463:	85 ff                	test   %edi,%edi
40f465:	74 0d                	je     0x40f474
40f467:	85 c0                	test   %eax,%eax
40f469:	0f 84 3f 01 00 00    	je     0x40f5ae
40f46f:	33 c0                	xor    %eax,%eax
40f471:	66 89 07             	mov    %ax,(%edi)
40f474:	53                   	push   %ebx
40f475:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40f478:	85 db                	test   %ebx,%ebx
40f47a:	75 18                	jne    0x40f494
40f47c:	e8 fc 8c ff ff       	call   0x40817d
40f481:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40f487:	e8 69 c1 ff ff       	call   0x40b5f5
40f48c:	83 c8 ff             	or     $0xffffffff,%eax
40f48f:	e9 19 01 00 00       	jmp    0x40f5ad
40f494:	ff 75 14             	push   0x14(%ebp)
40f497:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40f49a:	e8 5e 5d ff ff       	call   0x4051fd
40f49f:	8b 45 ec             	mov    -0x14(%ebp),%eax
40f4a2:	85 ff                	test   %edi,%edi
40f4a4:	0f 84 bb 00 00 00    	je     0x40f565
40f4aa:	39 b0 a8 00 00 00    	cmp    %esi,0xa8(%eax)
40f4b0:	75 28                	jne    0x40f4da
40f4b2:	39 75 10             	cmp    %esi,0x10(%ebp)
40f4b5:	0f 86 e3 00 00 00    	jbe    0x40f59e
40f4bb:	0f b6 04 1e          	movzbl (%esi,%ebx,1),%eax
40f4bf:	66 89 07             	mov    %ax,(%edi)
40f4c2:	80 3c 1e 00          	cmpb   $0x0,(%esi,%ebx,1)
40f4c6:	0f 84 d2 00 00 00    	je     0x40f59e
40f4cc:	46                   	inc    %esi
40f4cd:	83 c7 02             	add    $0x2,%edi
40f4d0:	3b 75 10             	cmp    0x10(%ebp),%esi
40f4d3:	72 e6                	jb     0x40f4bb
40f4d5:	e9 c4 00 00 00       	jmp    0x40f59e
40f4da:	ff 75 10             	push   0x10(%ebp)
40f4dd:	83 ce ff             	or     $0xffffffff,%esi
40f4e0:	57                   	push   %edi
40f4e1:	56                   	push   %esi
40f4e2:	53                   	push   %ebx
40f4e3:	6a 09                	push   $0x9
40f4e5:	ff 70 04             	push   0x4(%eax)
40f4e8:	ff 15 74 90 41 00    	call   *0x419074
40f4ee:	85 c0                	test   %eax,%eax
40f4f0:	0f 85 a5 00 00 00    	jne    0x40f59b
40f4f6:	ff 15 18 90 41 00    	call   *0x419018
40f4fc:	83 f8 7a             	cmp    $0x7a,%eax
40f4ff:	75 52                	jne    0x40f553
40f501:	8b 4d 10             	mov    0x10(%ebp),%ecx
40f504:	8b c3                	mov    %ebx,%eax
40f506:	eb 2a                	jmp    0x40f532
40f508:	49                   	dec    %ecx
40f509:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40f50c:	8a 08                	mov    (%eax),%cl
40f50e:	84 c9                	test   %cl,%cl
40f510:	74 27                	je     0x40f539
40f512:	8d 45 ec             	lea    -0x14(%ebp),%eax
40f515:	50                   	push   %eax
40f516:	0f b6 c1             	movzbl %cl,%eax
40f519:	50                   	push   %eax
40f51a:	e8 58 1d 00 00       	call   0x411277
40f51f:	59                   	pop    %ecx
40f520:	85 c0                	test   %eax,%eax
40f522:	8b 45 08             	mov    0x8(%ebp),%eax
40f525:	59                   	pop    %ecx
40f526:	74 06                	je     0x40f52e
40f528:	40                   	inc    %eax
40f529:	80 38 00             	cmpb   $0x0,(%eax)
40f52c:	74 25                	je     0x40f553
40f52e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f531:	40                   	inc    %eax
40f532:	89 45 08             	mov    %eax,0x8(%ebp)
40f535:	85 c9                	test   %ecx,%ecx
40f537:	75 cf                	jne    0x40f508
40f539:	ff 75 10             	push   0x10(%ebp)
40f53c:	2b c3                	sub    %ebx,%eax
40f53e:	57                   	push   %edi
40f53f:	50                   	push   %eax
40f540:	8b 45 ec             	mov    -0x14(%ebp),%eax
40f543:	53                   	push   %ebx
40f544:	6a 01                	push   $0x1
40f546:	ff 70 04             	push   0x4(%eax)
40f549:	ff 15 74 90 41 00    	call   *0x419074
40f54f:	85 c0                	test   %eax,%eax
40f551:	75 21                	jne    0x40f574
40f553:	e8 25 8c ff ff       	call   0x40817d
40f558:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
40f55e:	33 c0                	xor    %eax,%eax
40f560:	66 89 07             	mov    %ax,(%edi)
40f563:	eb 39                	jmp    0x40f59e
40f565:	39 b0 a8 00 00 00    	cmp    %esi,0xa8(%eax)
40f56b:	75 0b                	jne    0x40f578
40f56d:	53                   	push   %ebx
40f56e:	e8 7d 67 ff ff       	call   0x405cf0
40f573:	59                   	pop    %ecx
40f574:	8b f0                	mov    %eax,%esi
40f576:	eb 26                	jmp    0x40f59e
40f578:	56                   	push   %esi
40f579:	56                   	push   %esi
40f57a:	83 ce ff             	or     $0xffffffff,%esi
40f57d:	56                   	push   %esi
40f57e:	53                   	push   %ebx
40f57f:	6a 09                	push   $0x9
40f581:	ff 70 04             	push   0x4(%eax)
40f584:	ff 15 74 90 41 00    	call   *0x419074
40f58a:	85 c0                	test   %eax,%eax
40f58c:	75 0d                	jne    0x40f59b
40f58e:	e8 ea 8b ff ff       	call   0x40817d
40f593:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
40f599:	eb 03                	jmp    0x40f59e
40f59b:	8d 70 ff             	lea    -0x1(%eax),%esi
40f59e:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
40f5a2:	74 07                	je     0x40f5ab
40f5a4:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40f5a7:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
40f5ab:	8b c6                	mov    %esi,%eax
40f5ad:	5b                   	pop    %ebx
40f5ae:	5f                   	pop    %edi
40f5af:	5e                   	pop    %esi
40f5b0:	c9                   	leave
40f5b1:	c3                   	ret
40f5b2:	55                   	push   %ebp
40f5b3:	8b ec                	mov    %esp,%ebp
40f5b5:	83 ec 10             	sub    $0x10,%esp
40f5b8:	53                   	push   %ebx
40f5b9:	8b 5d 10             	mov    0x10(%ebp),%ebx
40f5bc:	56                   	push   %esi
40f5bd:	57                   	push   %edi
40f5be:	8b 7d 0c             	mov    0xc(%ebp),%edi
40f5c1:	33 f6                	xor    %esi,%esi
40f5c3:	85 ff                	test   %edi,%edi
40f5c5:	75 06                	jne    0x40f5cd
40f5c7:	85 db                	test   %ebx,%ebx
40f5c9:	74 1f                	je     0x40f5ea
40f5cb:	eb 04                	jmp    0x40f5d1
40f5cd:	85 db                	test   %ebx,%ebx
40f5cf:	75 14                	jne    0x40f5e5
40f5d1:	e8 a7 8b ff ff       	call   0x40817d
40f5d6:	6a 16                	push   $0x16
40f5d8:	5e                   	pop    %esi
40f5d9:	89 30                	mov    %esi,(%eax)
40f5db:	e8 15 c0 ff ff       	call   0x40b5f5
40f5e0:	e9 a2 00 00 00       	jmp    0x40f687
40f5e5:	33 c0                	xor    %eax,%eax
40f5e7:	66 89 07             	mov    %ax,(%edi)
40f5ea:	8b 45 08             	mov    0x8(%ebp),%eax
40f5ed:	85 c0                	test   %eax,%eax
40f5ef:	74 02                	je     0x40f5f3
40f5f1:	89 30                	mov    %esi,(%eax)
40f5f3:	ff 75 1c             	push   0x1c(%ebp)
40f5f6:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40f5f9:	e8 ff 5b ff ff       	call   0x4051fd
40f5fe:	8b c3                	mov    %ebx,%eax
40f600:	39 5d 18             	cmp    %ebx,0x18(%ebp)
40f603:	77 03                	ja     0x40f608
40f605:	8b 45 18             	mov    0x18(%ebp),%eax
40f608:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
40f60d:	76 09                	jbe    0x40f618
40f60f:	e8 69 8b ff ff       	call   0x40817d
40f614:	6a 16                	push   $0x16
40f616:	eb 43                	jmp    0x40f65b
40f618:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40f61b:	51                   	push   %ecx
40f61c:	50                   	push   %eax
40f61d:	ff 75 14             	push   0x14(%ebp)
40f620:	57                   	push   %edi
40f621:	e8 2d fe ff ff       	call   0x40f453
40f626:	83 c4 10             	add    $0x10,%esp
40f629:	83 f8 ff             	cmp    $0xffffffff,%eax
40f62c:	75 12                	jne    0x40f640
40f62e:	85 ff                	test   %edi,%edi
40f630:	74 05                	je     0x40f637
40f632:	33 c0                	xor    %eax,%eax
40f634:	66 89 07             	mov    %ax,(%edi)
40f637:	e8 41 8b ff ff       	call   0x40817d
40f63c:	8b 30                	mov    (%eax),%esi
40f63e:	eb 3a                	jmp    0x40f67a
40f640:	40                   	inc    %eax
40f641:	85 ff                	test   %edi,%edi
40f643:	74 2c                	je     0x40f671
40f645:	3b c3                	cmp    %ebx,%eax
40f647:	76 21                	jbe    0x40f66a
40f649:	83 7d 18 ff          	cmpl   $0xffffffff,0x18(%ebp)
40f64d:	74 16                	je     0x40f665
40f64f:	33 c0                	xor    %eax,%eax
40f651:	66 89 07             	mov    %ax,(%edi)
40f654:	e8 24 8b ff ff       	call   0x40817d
40f659:	6a 22                	push   $0x22
40f65b:	5e                   	pop    %esi
40f65c:	89 30                	mov    %esi,(%eax)
40f65e:	e8 92 bf ff ff       	call   0x40b5f5
40f663:	eb 15                	jmp    0x40f67a
40f665:	6a 50                	push   $0x50
40f667:	8b c3                	mov    %ebx,%eax
40f669:	5e                   	pop    %esi
40f66a:	33 c9                	xor    %ecx,%ecx
40f66c:	66 89 4c 47 fe       	mov    %cx,-0x2(%edi,%eax,2)
40f671:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f674:	85 c9                	test   %ecx,%ecx
40f676:	74 02                	je     0x40f67a
40f678:	89 01                	mov    %eax,(%ecx)
40f67a:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
40f67e:	74 07                	je     0x40f687
40f680:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40f683:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
40f687:	5f                   	pop    %edi
40f688:	8b c6                	mov    %esi,%eax
40f68a:	5e                   	pop    %esi
40f68b:	5b                   	pop    %ebx
40f68c:	c9                   	leave
40f68d:	c3                   	ret
40f68e:	55                   	push   %ebp
40f68f:	8b ec                	mov    %esp,%ebp
40f691:	6a 00                	push   $0x0
40f693:	ff 75 18             	push   0x18(%ebp)
40f696:	ff 75 14             	push   0x14(%ebp)
40f699:	ff 75 10             	push   0x10(%ebp)
40f69c:	ff 75 0c             	push   0xc(%ebp)
40f69f:	ff 75 08             	push   0x8(%ebp)
40f6a2:	e8 0b ff ff ff       	call   0x40f5b2
40f6a7:	83 c4 18             	add    $0x18,%esp
40f6aa:	5d                   	pop    %ebp
40f6ab:	c3                   	ret
40f6ac:	55                   	push   %ebp
40f6ad:	8b ec                	mov    %esp,%ebp
40f6af:	83 ec 2c             	sub    $0x2c,%esp
40f6b2:	a1 90 08 42 00       	mov    0x420890,%eax
40f6b7:	33 c5                	xor    %ebp,%eax
40f6b9:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f6bc:	8b 45 08             	mov    0x8(%ebp),%eax
40f6bf:	53                   	push   %ebx
40f6c0:	8b 5d 10             	mov    0x10(%ebp),%ebx
40f6c3:	56                   	push   %esi
40f6c4:	57                   	push   %edi
40f6c5:	8b 7d 0c             	mov    0xc(%ebp),%edi
40f6c8:	33 f6                	xor    %esi,%esi
40f6ca:	89 45 e8             	mov    %eax,-0x18(%ebp)
40f6cd:	89 7d ec             	mov    %edi,-0x14(%ebp)
40f6d0:	89 75 f0             	mov    %esi,-0x10(%ebp)
40f6d3:	85 c0                	test   %eax,%eax
40f6d5:	74 0b                	je     0x40f6e2
40f6d7:	85 db                	test   %ebx,%ebx
40f6d9:	75 07                	jne    0x40f6e2
40f6db:	33 c0                	xor    %eax,%eax
40f6dd:	e9 20 02 00 00       	jmp    0x40f902
40f6e2:	85 ff                	test   %edi,%edi
40f6e4:	75 18                	jne    0x40f6fe
40f6e6:	e8 92 8a ff ff       	call   0x40817d
40f6eb:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40f6f1:	e8 ff be ff ff       	call   0x40b5f5
40f6f6:	83 c8 ff             	or     $0xffffffff,%eax
40f6f9:	e9 04 02 00 00       	jmp    0x40f902
40f6fe:	ff 75 14             	push   0x14(%ebp)
40f701:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
40f704:	e8 f4 5a ff ff       	call   0x4051fd
40f709:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40f70c:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40f70f:	85 c9                	test   %ecx,%ecx
40f711:	0f 84 82 01 00 00    	je     0x40f899
40f717:	39 b0 a8 00 00 00    	cmp    %esi,0xa8(%eax)
40f71d:	75 34                	jne    0x40f753
40f71f:	85 db                	test   %ebx,%ebx
40f721:	0f 84 98 01 00 00    	je     0x40f8bf
40f727:	ba ff 00 00 00       	mov    $0xff,%edx
40f72c:	66 39 17             	cmp    %dx,(%edi)
40f72f:	0f 87 54 01 00 00    	ja     0x40f889
40f735:	8a 07                	mov    (%edi),%al
40f737:	88 04 31             	mov    %al,(%ecx,%esi,1)
40f73a:	66 8b 07             	mov    (%edi),%ax
40f73d:	83 c7 02             	add    $0x2,%edi
40f740:	66 85 c0             	test   %ax,%ax
40f743:	0f 84 76 01 00 00    	je     0x40f8bf
40f749:	46                   	inc    %esi
40f74a:	3b f3                	cmp    %ebx,%esi
40f74c:	72 de                	jb     0x40f72c
40f74e:	e9 6c 01 00 00       	jmp    0x40f8bf
40f753:	83 78 74 01          	cmpl   $0x1,0x74(%eax)
40f757:	75 61                	jne    0x40f7ba
40f759:	85 db                	test   %ebx,%ebx
40f75b:	74 22                	je     0x40f77f
40f75d:	8b c7                	mov    %edi,%eax
40f75f:	8b d3                	mov    %ebx,%edx
40f761:	66 39 30             	cmp    %si,(%eax)
40f764:	74 06                	je     0x40f76c
40f766:	83 c0 02             	add    $0x2,%eax
40f769:	4a                   	dec    %edx
40f76a:	75 f5                	jne    0x40f761
40f76c:	85 d2                	test   %edx,%edx
40f76e:	74 0c                	je     0x40f77c
40f770:	66 39 30             	cmp    %si,(%eax)
40f773:	75 07                	jne    0x40f77c
40f775:	8b d8                	mov    %eax,%ebx
40f777:	2b df                	sub    %edi,%ebx
40f779:	d1 fb                	sar    $1,%ebx
40f77b:	43                   	inc    %ebx
40f77c:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40f77f:	8d 55 f0             	lea    -0x10(%ebp),%edx
40f782:	52                   	push   %edx
40f783:	56                   	push   %esi
40f784:	53                   	push   %ebx
40f785:	51                   	push   %ecx
40f786:	53                   	push   %ebx
40f787:	57                   	push   %edi
40f788:	56                   	push   %esi
40f789:	ff 70 04             	push   0x4(%eax)
40f78c:	ff 15 4c 90 41 00    	call   *0x41904c
40f792:	8b f0                	mov    %eax,%esi
40f794:	85 f6                	test   %esi,%esi
40f796:	0f 84 ed 00 00 00    	je     0x40f889
40f79c:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
40f7a0:	0f 85 e3 00 00 00    	jne    0x40f889
40f7a6:	8b 45 e8             	mov    -0x18(%ebp),%eax
40f7a9:	80 7c 30 ff 00       	cmpb   $0x0,-0x1(%eax,%esi,1)
40f7ae:	0f 85 0b 01 00 00    	jne    0x40f8bf