40445a:	6a 48                	push   $0x48
40445c:	b8 47 5d 41 00       	mov    $0x415d47,%eax
404461:	e8 85 23 00 00       	call   0x4067eb
404466:	8b f1                	mov    %ecx,%esi
404468:	89 75 f0             	mov    %esi,-0x10(%ebp)
40446b:	6a 00                	push   $0x0
40446d:	e8 04 0b 00 00       	call   0x404f76
404472:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
404476:	8d 4e 04             	lea    0x4(%esi),%ecx
404479:	e8 43 f6 ff ff       	call   0x403ac1
40447e:	8d 4e 20             	lea    0x20(%esi),%ecx
404481:	e8 3b f6 ff ff       	call   0x403ac1
404486:	8d 4e 3c             	lea    0x3c(%esi),%ecx
404489:	e8 33 f6 ff ff       	call   0x403ac1
40448e:	8d 4e 58             	lea    0x58(%esi),%ecx
404491:	e8 2b f6 ff ff       	call   0x403ac1
404496:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40449a:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
40449e:	75 2b                	jne    0x4044cb
4044a0:	68 78 75 41 00       	push   $0x417578
4044a5:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
4044a8:	e8 73 df ff ff       	call   0x402420
4044ad:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4044b0:	50                   	push   %eax
4044b1:	8d 4d ac             	lea    -0x54(%ebp),%ecx
4044b4:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
4044b8:	e8 a3 de ff ff       	call   0x402360
4044bd:	68 54 a5 41 00       	push   $0x41a554
4044c2:	8d 45 ac             	lea    -0x54(%ebp),%eax
4044c5:	50                   	push   %eax
4044c6:	e8 77 1b 00 00       	call   0x406042
4044cb:	ff 75 08             	push   0x8(%ebp)
4044ce:	56                   	push   %esi
4044cf:	e8 96 0d 00 00       	call   0x40526a
4044d4:	59                   	pop    %ecx
4044d5:	59                   	pop    %ecx
4044d6:	8b c6                	mov    %esi,%eax
4044d8:	e8 ad 23 00 00       	call   0x40688a
4044dd:	c2 04 00             	ret    $0x4
4044e0:	6a 7c                	push   $0x7c
4044e2:	b8 6d 5d 41 00       	mov    $0x415d6d,%eax
4044e7:	e8 68 23 00 00       	call   0x406854
4044ec:	8b 45 08             	mov    0x8(%ebp),%eax
4044ef:	8b f1                	mov    %ecx,%esi
4044f1:	89 b5 78 ff ff ff    	mov    %esi,-0x88(%ebp)
4044f7:	89 46 04             	mov    %eax,0x4(%esi)
4044fa:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4044fe:	68 ac 75 41 00       	push   $0x4175ac
404503:	8d 8d 7c ff ff ff    	lea    -0x84(%ebp),%ecx
404509:	c7 06 8c 75 41 00    	movl   $0x41758c,(%esi)
40450f:	e8 46 ff ff ff       	call   0x40445a
404514:	e8 f1 09 00 00       	call   0x404f0a
404519:	8d 8d 7c ff ff ff    	lea    -0x84(%ebp),%ecx
40451f:	89 46 08             	mov    %eax,0x8(%esi)
404522:	89 56 0c             	mov    %edx,0xc(%esi)
404525:	e8 d2 f7 ff ff       	call   0x403cfc
40452a:	8b c6                	mov    %esi,%eax
40452c:	e8 6d 23 00 00       	call   0x40689e
404531:	c2 04 00             	ret    $0x4
404534:	55                   	push   %ebp
404535:	8b ec                	mov    %esp,%ebp
404537:	51                   	push   %ecx
404538:	8b 45 0c             	mov    0xc(%ebp),%eax
40453b:	53                   	push   %ebx
40453c:	8b 5d 10             	mov    0x10(%ebp),%ebx
40453f:	56                   	push   %esi
404540:	8b 75 14             	mov    0x14(%ebp),%esi
404543:	89 06                	mov    %eax,(%esi)
404545:	8b 45 18             	mov    0x18(%ebp),%eax
404548:	57                   	push   %edi
404549:	8b 7d 20             	mov    0x20(%ebp),%edi
40454c:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40454f:	33 c9                	xor    %ecx,%ecx
404551:	89 07                	mov    %eax,(%edi)
404553:	8b 06                	mov    (%esi),%eax
404555:	3b c3                	cmp    %ebx,%eax
404557:	0f 95 c1             	setne  %cl
40455a:	3b c3                	cmp    %ebx,%eax
40455c:	89 4d 14             	mov    %ecx,0x14(%ebp)
40455f:	74 5d                	je     0x4045be
404561:	8b 0f                	mov    (%edi),%ecx
404563:	3b 4d 1c             	cmp    0x1c(%ebp),%ecx
404566:	74 56                	je     0x4045be
404568:	8b 55 fc             	mov    -0x4(%ebp),%edx
40456b:	8b 06                	mov    (%esi),%eax
40456d:	83 c2 08             	add    $0x8,%edx
404570:	52                   	push   %edx
404571:	ff 75 08             	push   0x8(%ebp)
404574:	8b d3                	mov    %ebx,%edx
404576:	2b d0                	sub    %eax,%edx
404578:	52                   	push   %edx
404579:	50                   	push   %eax
40457a:	51                   	push   %ecx
40457b:	e8 92 0f 00 00       	call   0x405512
404580:	83 c4 14             	add    $0x14,%esp
404583:	83 f8 fe             	cmp    $0xfffffffe,%eax
404586:	74 34                	je     0x4045bc
404588:	83 f8 ff             	cmp    $0xffffffff,%eax
40458b:	74 2a                	je     0x4045b7
40458d:	85 c0                	test   %eax,%eax
40458f:	75 10                	jne    0x4045a1
404591:	8b 0f                	mov    (%edi),%ecx
404593:	66 39 01             	cmp    %ax,(%ecx)
404596:	75 10                	jne    0x4045a8
404598:	ff 36                	push   (%esi)
40459a:	e8 c1 21 00 00       	call   0x406760
40459f:	59                   	pop    %ecx
4045a0:	40                   	inc    %eax
4045a1:	83 f8 fd             	cmp    $0xfffffffd,%eax
4045a4:	75 02                	jne    0x4045a8
4045a6:	33 c0                	xor    %eax,%eax
4045a8:	01 06                	add    %eax,(%esi)
4045aa:	83 07 02             	addl   $0x2,(%edi)
4045ad:	83 65 14 00          	andl   $0x0,0x14(%ebp)
4045b1:	39 1e                	cmp    %ebx,(%esi)
4045b3:	75 ac                	jne    0x404561
4045b5:	eb 07                	jmp    0x4045be
4045b7:	6a 02                	push   $0x2
4045b9:	58                   	pop    %eax
4045ba:	eb 05                	jmp    0x4045c1
4045bc:	89 1e                	mov    %ebx,(%esi)
4045be:	8b 45 14             	mov    0x14(%ebp),%eax
4045c1:	5f                   	pop    %edi
4045c2:	5e                   	pop    %esi
4045c3:	5b                   	pop    %ebx
4045c4:	c9                   	leave
4045c5:	c2 1c 00             	ret    $0x1c
4045c8:	55                   	push   %ebp
4045c9:	8b ec                	mov    %esp,%ebp
4045cb:	83 ec 20             	sub    $0x20,%esp
4045ce:	a1 20 c5 41 00       	mov    0x41c520,%eax
4045d3:	33 c5                	xor    %ebp,%eax
4045d5:	89 45 fc             	mov    %eax,-0x4(%ebp)
4045d8:	8b 45 1c             	mov    0x1c(%ebp),%eax
4045db:	53                   	push   %ebx
4045dc:	8b 5d 08             	mov    0x8(%ebp),%ebx
4045df:	89 45 ec             	mov    %eax,-0x14(%ebp)
4045e2:	8b 45 0c             	mov    0xc(%ebp),%eax
4045e5:	56                   	push   %esi
4045e6:	8b 75 14             	mov    0x14(%ebp),%esi
4045e9:	89 06                	mov    %eax,(%esi)
4045eb:	8b 45 18             	mov    0x18(%ebp),%eax
4045ee:	57                   	push   %edi
4045ef:	8b 7d 20             	mov    0x20(%ebp),%edi
4045f2:	33 d2                	xor    %edx,%edx
4045f4:	89 07                	mov    %eax,(%edi)
4045f6:	8b 06                	mov    (%esi),%eax
4045f8:	3b 45 10             	cmp    0x10(%ebp),%eax
4045fb:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4045fe:	0f 95 c2             	setne  %dl
404601:	3b 45 10             	cmp    0x10(%ebp),%eax
404604:	89 5d e8             	mov    %ebx,-0x18(%ebp)
404607:	89 55 f0             	mov    %edx,-0x10(%ebp)
40460a:	0f 84 96 00 00 00    	je     0x4046a6
404610:	eb 03                	jmp    0x404615
404612:	8b 4d e0             	mov    -0x20(%ebp),%ecx
404615:	8b 07                	mov    (%edi),%eax
404617:	3b 45 ec             	cmp    -0x14(%ebp),%eax
40461a:	0f 84 86 00 00 00    	je     0x4046a6
404620:	8b 55 ec             	mov    -0x14(%ebp),%edx
404623:	83 c1 08             	add    $0x8,%ecx
404626:	2b d0                	sub    %eax,%edx
404628:	83 fa 05             	cmp    $0x5,%edx
40462b:	51                   	push   %ecx
40462c:	53                   	push   %ebx
40462d:	7c 1a                	jl     0x404649
40462f:	8b 0e                	mov    (%esi),%ecx
404631:	0f b7 09             	movzwl (%ecx),%ecx
404634:	51                   	push   %ecx
404635:	50                   	push   %eax
404636:	e8 4e 08 00 00       	call   0x404e89
40463b:	83 c4 10             	add    $0x10,%esp
40463e:	85 c0                	test   %eax,%eax
404640:	7c 57                	jl     0x404699
404642:	83 06 02             	addl   $0x2,(%esi)
404645:	01 07                	add    %eax,(%edi)
404647:	eb 3f                	jmp    0x404688
404649:	8b 03                	mov    (%ebx),%eax
40464b:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40464e:	8b 06                	mov    (%esi),%eax
404650:	0f b7 00             	movzwl (%eax),%eax
404653:	50                   	push   %eax
404654:	8d 45 f4             	lea    -0xc(%ebp),%eax
404657:	50                   	push   %eax
404658:	e8 2c 08 00 00       	call   0x404e89
40465d:	8b d8                	mov    %eax,%ebx
40465f:	83 c4 10             	add    $0x10,%esp
404662:	85 db                	test   %ebx,%ebx
404664:	7c 33                	jl     0x404699
404666:	8b 07                	mov    (%edi),%eax
404668:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40466b:	2b c8                	sub    %eax,%ecx
40466d:	3b cb                	cmp    %ebx,%ecx
40466f:	7c 2d                	jl     0x40469e
404671:	53                   	push   %ebx
404672:	8d 55 f4             	lea    -0xc(%ebp),%edx
404675:	52                   	push   %edx
404676:	51                   	push   %ecx
404677:	50                   	push   %eax
404678:	e8 b7 13 00 00       	call   0x405a34
40467d:	83 06 02             	addl   $0x2,(%esi)
404680:	83 c4 10             	add    $0x10,%esp
404683:	01 1f                	add    %ebx,(%edi)
404685:	8b 5d e8             	mov    -0x18(%ebp),%ebx
404688:	8b 45 10             	mov    0x10(%ebp),%eax
40468b:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
40468f:	39 06                	cmp    %eax,(%esi)
404691:	0f 85 7b ff ff ff    	jne    0x404612
404697:	eb 0d                	jmp    0x4046a6
404699:	6a 02                	push   $0x2
40469b:	58                   	pop    %eax
40469c:	eb 0b                	jmp    0x4046a9
40469e:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4046a1:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4046a4:	89 01                	mov    %eax,(%ecx)
4046a6:	8b 45 f0             	mov    -0x10(%ebp),%eax
4046a9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4046ac:	5f                   	pop    %edi
4046ad:	5e                   	pop    %esi
4046ae:	33 cd                	xor    %ebp,%ecx
4046b0:	5b                   	pop    %ebx
4046b1:	e8 7f 18 00 00       	call   0x405f35
4046b6:	c9                   	leave
4046b7:	c2 1c 00             	ret    $0x1c
4046ba:	55                   	push   %ebp
4046bb:	8b ec                	mov    %esp,%ebp
4046bd:	83 ec 18             	sub    $0x18,%esp
4046c0:	a1 20 c5 41 00       	mov    0x41c520,%eax
4046c5:	33 c5                	xor    %ebp,%eax
4046c7:	89 45 fc             	mov    %eax,-0x4(%ebp)
4046ca:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
4046ce:	53                   	push   %ebx
4046cf:	56                   	push   %esi
4046d0:	8b 75 14             	mov    0x14(%ebp),%esi
4046d3:	8b c1                	mov    %ecx,%eax
4046d5:	8b 4d 10             	mov    0x10(%ebp),%ecx
4046d8:	57                   	push   %edi
4046d9:	8b 7d 08             	mov    0x8(%ebp),%edi
4046dc:	83 c0 08             	add    $0x8,%eax
4046df:	50                   	push   %eax
4046e0:	89 4d ec             	mov    %ecx,-0x14(%ebp)
4046e3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4046e6:	57                   	push   %edi
4046e7:	89 0e                	mov    %ecx,(%esi)
4046e9:	8b 0f                	mov    (%edi),%ecx
4046eb:	8d 45 f4             	lea    -0xc(%ebp),%eax
4046ee:	6a 00                	push   $0x0
4046f0:	50                   	push   %eax
4046f1:	89 4d e8             	mov    %ecx,-0x18(%ebp)
4046f4:	e8 90 07 00 00       	call   0x404e89
4046f9:	8b d8                	mov    %eax,%ebx
4046fb:	83 c4 10             	add    $0x10,%esp
4046fe:	85 db                	test   %ebx,%ebx
404700:	7f 09                	jg     0x40470b
404702:	c7 45 f0 02 00 00 00 	movl   $0x2,-0x10(%ebp)
404709:	eb 2f                	jmp    0x40473a
40470b:	8b 06                	mov    (%esi),%eax
40470d:	8b 4d ec             	mov    -0x14(%ebp),%ecx
404710:	4b                   	dec    %ebx
404711:	2b c8                	sub    %eax,%ecx
404713:	3b cb                	cmp    %ebx,%ecx
404715:	7d 0e                	jge    0x404725
404717:	8b 45 e8             	mov    -0x18(%ebp),%eax
40471a:	89 07                	mov    %eax,(%edi)
40471c:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
404723:	eb 15                	jmp    0x40473a
404725:	85 db                	test   %ebx,%ebx
404727:	7e 11                	jle    0x40473a
404729:	53                   	push   %ebx
40472a:	8d 55 f4             	lea    -0xc(%ebp),%edx
40472d:	52                   	push   %edx
40472e:	51                   	push   %ecx
40472f:	50                   	push   %eax
404730:	e8 ff 12 00 00       	call   0x405a34
404735:	83 c4 10             	add    $0x10,%esp
404738:	01 1e                	add    %ebx,(%esi)
40473a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40473d:	8b 45 f0             	mov    -0x10(%ebp),%eax
404740:	5f                   	pop    %edi
404741:	5e                   	pop    %esi
404742:	33 cd                	xor    %ebp,%ecx
404744:	5b                   	pop    %ebx
404745:	e8 eb 17 00 00       	call   0x405f35
40474a:	c9                   	leave
40474b:	c2 10 00             	ret    $0x10
40474e:	55                   	push   %ebp
40474f:	8b ec                	mov    %esp,%ebp
404751:	51                   	push   %ecx
404752:	8b 45 08             	mov    0x8(%ebp),%eax
404755:	8b 00                	mov    (%eax),%eax
404757:	53                   	push   %ebx
404758:	56                   	push   %esi
404759:	8b 75 0c             	mov    0xc(%ebp),%esi
40475c:	33 db                	xor    %ebx,%ebx
40475e:	39 5d 14             	cmp    %ebx,0x14(%ebp)
404761:	57                   	push   %edi
404762:	8b f9                	mov    %ecx,%edi
404764:	89 45 fc             	mov    %eax,-0x4(%ebp)
404767:	76 4b                	jbe    0x4047b4
404769:	3b 75 10             	cmp    0x10(%ebp),%esi
40476c:	74 46                	je     0x4047b4
40476e:	8d 47 08             	lea    0x8(%edi),%eax
404771:	50                   	push   %eax
404772:	8d 45 fc             	lea    -0x4(%ebp),%eax
404775:	50                   	push   %eax
404776:	8b 45 10             	mov    0x10(%ebp),%eax
404779:	2b c6                	sub    %esi,%eax
40477b:	50                   	push   %eax
40477c:	8d 45 08             	lea    0x8(%ebp),%eax
40477f:	56                   	push   %esi
404780:	50                   	push   %eax
404781:	e8 8c 0d 00 00       	call   0x405512
404786:	83 c4 14             	add    $0x14,%esp
404789:	83 f8 fe             	cmp    $0xfffffffe,%eax
40478c:	74 26                	je     0x4047b4
40478e:	83 f8 ff             	cmp    $0xffffffff,%eax
404791:	74 21                	je     0x4047b4
404793:	85 c0                	test   %eax,%eax
404795:	75 0e                	jne    0x4047a5
404797:	66 39 45 08          	cmp    %ax,0x8(%ebp)
40479b:	75 0f                	jne    0x4047ac
40479d:	56                   	push   %esi
40479e:	e8 bd 1f 00 00       	call   0x406760
4047a3:	59                   	pop    %ecx
4047a4:	40                   	inc    %eax
4047a5:	83 f8 fd             	cmp    $0xfffffffd,%eax
4047a8:	75 02                	jne    0x4047ac
4047aa:	33 c0                	xor    %eax,%eax
4047ac:	03 f0                	add    %eax,%esi
4047ae:	43                   	inc    %ebx
4047af:	3b 5d 14             	cmp    0x14(%ebp),%ebx
4047b2:	72 b5                	jb     0x404769
4047b4:	5f                   	pop    %edi
4047b5:	5e                   	pop    %esi
4047b6:	8b c3                	mov    %ebx,%eax
4047b8:	5b                   	pop    %ebx
4047b9:	c9                   	leave
4047ba:	c2 10 00             	ret    $0x10
4047bd:	32 c0                	xor    %al,%al
4047bf:	c3                   	ret
4047c0:	6a 05                	push   $0x5
4047c2:	58                   	pop    %eax
4047c3:	c3                   	ret
4047c4:	33 c0                	xor    %eax,%eax
4047c6:	c3                   	ret
4047c7:	6a 00                	push   $0x0
4047c9:	b8 9f 5d 41 00       	mov    $0x415d9f,%eax
4047ce:	e8 18 20 00 00       	call   0x4067eb
4047d3:	8b 75 08             	mov    0x8(%ebp),%esi
4047d6:	85 f6                	test   %esi,%esi