40441a:	ff 15 3c e0 40 00    	call   *0x40e03c
404420:	5e                   	pop    %esi
404421:	8b 45 08             	mov    0x8(%ebp),%eax
404424:	89 07                	mov    %eax,(%edi)
404426:	5f                   	pop    %edi
404427:	5b                   	pop    %ebx
404428:	5d                   	pop    %ebp
404429:	c2 04 00             	ret    $0x4
40442c:	68 20 02 00 00       	push   $0x220
404431:	b8 4a ad 40 00       	mov    $0x40ad4a,%eax
404436:	e8 d9 67 00 00       	call   0x40ac14
40443b:	8b da                	mov    %edx,%ebx
40443d:	83 23 00             	andl   $0x0,(%ebx)
404440:	51                   	push   %ecx
404441:	6a 40                	push   $0x40
404443:	ff 15 ac e0 40 00    	call   *0x40e0ac
404449:	50                   	push   %eax
40444a:	68 04 18 40 00       	push   $0x401804
40444f:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
404455:	68 04 01 00 00       	push   $0x104
40445a:	50                   	push   %eax
40445b:	e8 1b e2 ff ff       	call   0x40267b
404460:	33 c9                	xor    %ecx,%ecx
404462:	83 c4 18             	add    $0x18,%esp
404465:	89 8d e4 fd ff ff    	mov    %ecx,-0x21c(%ebp)
40446b:	68 01 00 1f 00       	push   $0x1f0001
404470:	51                   	push   %ecx
404471:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
404477:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40447a:	50                   	push   %eax
40447b:	51                   	push   %ecx
40447c:	ff 15 e0 e0 40 00    	call   *0x40e0e0
404482:	50                   	push   %eax
404483:	8d 8d e4 fd ff ff    	lea    -0x21c(%ebp),%ecx
404489:	e8 6d ff ff ff       	call   0x4043fb
40448e:	8b b5 e4 fd ff ff    	mov    -0x21c(%ebp),%esi
404494:	85 f6                	test   %esi,%esi
404496:	75 0c                	jne    0x4044a4
404498:	e8 26 e8 ff ff       	call   0x402cc3
40449d:	8b f8                	mov    %eax,%edi
40449f:	e9 ad 00 00 00       	jmp    0x404551
4044a4:	83 ec 0c             	sub    $0xc,%esp
4044a7:	8d 85 e0 fd ff ff    	lea    -0x220(%ebp),%eax
4044ad:	8d 8d e4 fd ff ff    	lea    -0x21c(%ebp),%ecx
4044b3:	50                   	push   %eax
4044b4:	e8 83 03 00 00       	call   0x40483c
4044b9:	33 c0                	xor    %eax,%eax
4044bb:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4044bf:	8b f0                	mov    %eax,%esi
4044c1:	89 85 d4 fd ff ff    	mov    %eax,-0x22c(%ebp)
4044c7:	89 85 d8 fd ff ff    	mov    %eax,-0x228(%ebp)
4044cd:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
4044d3:	51                   	push   %ecx
4044d4:	50                   	push   %eax
4044d5:	8d 8d e8 fd ff ff    	lea    -0x218(%ebp),%ecx
4044db:	e8 38 f3 ff ff       	call   0x403818
4044e0:	8b f8                	mov    %eax,%edi
4044e2:	85 ff                	test   %edi,%edi
4044e4:	79 11                	jns    0x4044f7
4044e6:	57                   	push   %edi
4044e7:	51                   	push   %ecx
4044e8:	8b 4d 04             	mov    0x4(%ebp),%ecx
4044eb:	6a 62                	push   $0x62
4044ed:	5a                   	pop    %edx
4044ee:	e8 40 f0 ff ff       	call   0x403533
4044f3:	8b c6                	mov    %esi,%eax
4044f5:	eb 08                	jmp    0x4044ff
4044f7:	8b 85 d4 fd ff ff    	mov    -0x22c(%ebp),%eax
4044fd:	33 ff                	xor    %edi,%edi
4044ff:	85 ff                	test   %edi,%edi
404501:	79 0f                	jns    0x404512
404503:	57                   	push   %edi
404504:	51                   	push   %ecx
404505:	8b 4d 04             	mov    0x4(%ebp),%ecx
404508:	6a 6b                	push   $0x6b
40450a:	5a                   	pop    %edx
40450b:	e8 23 f0 ff ff       	call   0x403533
404510:	eb 07                	jmp    0x404519
404512:	8b f0                	mov    %eax,%esi
404514:	c1 e6 02             	shl    $0x2,%esi
404517:	33 ff                	xor    %edi,%edi
404519:	85 ff                	test   %edi,%edi
40451b:	79 07                	jns    0x404524
40451d:	ba 26 01 00 00       	mov    $0x126,%edx
404522:	eb 60                	jmp    0x404584
404524:	85 f6                	test   %esi,%esi
404526:	74 3f                	je     0x404567
404528:	89 33                	mov    %esi,(%ebx)
40452a:	8b 0e                	mov    (%esi),%ecx
40452c:	8b 03                	mov    (%ebx),%eax
40452e:	41                   	inc    %ecx
40452f:	89 08                	mov    %ecx,(%eax)
404531:	33 ff                	xor    %edi,%edi
404533:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
404537:	83 bd e0 fd ff ff 00 	cmpl   $0x0,-0x220(%ebp)
40453e:	74 0b                	je     0x40454b
404540:	ff b5 e0 fd ff ff    	push   -0x220(%ebp)
404546:	e8 84 f0 ff ff       	call   0x4035cf
40454b:	8b b5 e4 fd ff ff    	mov    -0x21c(%ebp),%esi
404551:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
404555:	85 f6                	test   %esi,%esi
404557:	74 06                	je     0x40455f
404559:	56                   	push   %esi
40455a:	e8 4b f0 ff ff       	call   0x4035aa
40455f:	8b c7                	mov    %edi,%eax
404561:	e8 69 66 00 00       	call   0x40abcf
404566:	c3                   	ret
404567:	53                   	push   %ebx
404568:	8d 95 e4 fd ff ff    	lea    -0x21c(%ebp),%edx
40456e:	8d 8d e8 fd ff ff    	lea    -0x218(%ebp),%ecx
404574:	e8 6e 01 00 00       	call   0x4046e7
404579:	8b f8                	mov    %eax,%edi
40457b:	85 ff                	test   %edi,%edi
40457d:	79 b2                	jns    0x404531
40457f:	ba 2e 01 00 00       	mov    $0x12e,%edx
404584:	57                   	push   %edi
404585:	51                   	push   %ecx
404586:	8b 4d 04             	mov    0x4(%ebp),%ecx
404589:	e8 a5 ef ff ff       	call   0x403533
40458e:	eb a3                	jmp    0x404533
404590:	8b ff                	mov    %edi,%edi
404592:	55                   	push   %ebp
404593:	8b ec                	mov    %esp,%ebp
404595:	51                   	push   %ecx
404596:	80 3d 34 d5 40 00 00 	cmpb   $0x0,0x40d534
40459d:	53                   	push   %ebx
40459e:	56                   	push   %esi
40459f:	57                   	push   %edi
4045a0:	8b d9                	mov    %ecx,%ebx
4045a2:	0f 85 ac 00 00 00    	jne    0x404654
4045a8:	8b 3d 20 d5 40 00    	mov    0x40d520,%edi
4045ae:	33 f6                	xor    %esi,%esi
4045b0:	85 ff                	test   %edi,%edi
4045b2:	74 0f                	je     0x4045c3
4045b4:	8b cf                	mov    %edi,%ecx
4045b6:	ff 15 f0 e1 40 00    	call   *0x40e1f0
4045bc:	ff d7                	call   *%edi
4045be:	0f b6 c0             	movzbl %al,%eax
4045c1:	eb 02                	jmp    0x4045c5
4045c3:	8b c6                	mov    %esi,%eax
4045c5:	85 c0                	test   %eax,%eax
4045c7:	0f 85 87 00 00 00    	jne    0x404654
4045cd:	83 ec 0c             	sub    $0xc,%esp
4045d0:	8d 4d fc             	lea    -0x4(%ebp),%ecx
4045d3:	51                   	push   %ecx
4045d4:	8d 4b 04             	lea    0x4(%ebx),%ecx
4045d7:	e8 60 02 00 00       	call   0x40483c
4045dc:	8b 03                	mov    (%ebx),%eax
4045de:	83 e8 01             	sub    $0x1,%eax
4045e1:	89 03                	mov    %eax,(%ebx)
4045e3:	75 60                	jne    0x404645
4045e5:	8d 7b 08             	lea    0x8(%ebx),%edi
4045e8:	56                   	push   %esi
4045e9:	8b cf                	mov    %edi,%ecx
4045eb:	e8 0b fe ff ff       	call   0x4043fb
4045f0:	56                   	push   %esi
4045f1:	8d 4f 04             	lea    0x4(%edi),%ecx
4045f4:	e8 02 fe ff ff       	call   0x4043fb
4045f9:	39 75 fc             	cmp    %esi,-0x4(%ebp)
4045fc:	74 1a                	je     0x404618
4045fe:	ff 15 44 e0 40 00    	call   *0x40e044
404604:	ff 75 fc             	push   -0x4(%ebp)
404607:	8b f8                	mov    %eax,%edi
404609:	e8 c1 ef ff ff       	call   0x4035cf
40460e:	57                   	push   %edi
40460f:	ff 15 3c e0 40 00    	call   *0x40e03c
404615:	8d 7b 08             	lea    0x8(%ebx),%edi
404618:	8d 4b 18             	lea    0x18(%ebx),%ecx
40461b:	e8 c7 01 00 00       	call   0x4047e7
404620:	8b cf                	mov    %edi,%ecx
404622:	e8 71 00 00 00       	call   0x404698
404627:	39 73 04             	cmp    %esi,0x4(%ebx)
40462a:	74 08                	je     0x404634
40462c:	ff 73 04             	push   0x4(%ebx)
40462f:	e8 76 ef ff ff       	call   0x4035aa
404634:	53                   	push   %ebx
404635:	56                   	push   %esi
404636:	ff 15 68 e0 40 00    	call   *0x40e068
40463c:	50                   	push   %eax
40463d:	ff 15 64 e0 40 00    	call   *0x40e064
404643:	eb 03                	jmp    0x404648
404645:	8b 75 fc             	mov    -0x4(%ebp),%esi
404648:	85 f6                	test   %esi,%esi
40464a:	74 0a                	je     0x404656
40464c:	56                   	push   %esi
40464d:	e8 7d ef ff ff       	call   0x4035cf
404652:	eb 02                	jmp    0x404656
404654:	ff 0b                	decl   (%ebx)
404656:	5f                   	pop    %edi
404657:	5e                   	pop    %esi
404658:	5b                   	pop    %ebx
404659:	c9                   	leave
40465a:	c3                   	ret
40465b:	8b ff                	mov    %edi,%edi
40465d:	55                   	push   %ebp
40465e:	8b ec                	mov    %esp,%ebp
404660:	6a ff                	push   $0xffffffff
404662:	68 c9 ac 40 00       	push   $0x40acc9
404667:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40466d:	50                   	push   %eax
40466e:	a1 50 d1 40 00       	mov    0x40d150,%eax
404673:	33 c5                	xor    %ebp,%eax
404675:	50                   	push   %eax
404676:	8d 45 f4             	lea    -0xc(%ebp),%eax
404679:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40467f:	83 39 00             	cmpl   $0x0,(%ecx)
404682:	74 07                	je     0x40468b
404684:	ff 31                	push   (%ecx)
404686:	e8 1f ef ff ff       	call   0x4035aa
40468b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40468e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
404695:	59                   	pop    %ecx
404696:	c9                   	leave
404697:	c3                   	ret
404698:	8b ff                	mov    %edi,%edi
40469a:	55                   	push   %ebp
40469b:	8b ec                	mov    %esp,%ebp
40469d:	6a ff                	push   $0xffffffff
40469f:	68 72 ad 40 00       	push   $0x40ad72
4046a4:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4046aa:	50                   	push   %eax
4046ab:	56                   	push   %esi
4046ac:	a1 50 d1 40 00       	mov    0x40d150,%eax
4046b1:	33 c5                	xor    %ebp,%eax
4046b3:	50                   	push   %eax
4046b4:	8d 45 f4             	lea    -0xc(%ebp),%eax
4046b7:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4046bd:	8b f1                	mov    %ecx,%esi
4046bf:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
4046c3:	74 08                	je     0x4046cd
4046c5:	ff 76 04             	push   0x4(%esi)
4046c8:	e8 dd ee ff ff       	call   0x4035aa
4046cd:	83 3e 00             	cmpl   $0x0,(%esi)
4046d0:	74 07                	je     0x4046d9
4046d2:	ff 36                	push   (%esi)
4046d4:	e8 d1 ee ff ff       	call   0x4035aa
4046d9:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4046dc:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4046e3:	59                   	pop    %ecx
4046e4:	5e                   	pop    %esi
4046e5:	c9                   	leave
4046e6:	c3                   	ret
4046e7:	8b ff                	mov    %edi,%edi
4046e9:	55                   	push   %ebp
4046ea:	8b ec                	mov    %esp,%ebp
4046ec:	83 e4 f8             	and    $0xfffffff8,%esp
4046ef:	83 ec 1c             	sub    $0x1c,%esp
4046f2:	a1 50 d1 40 00       	mov    0x40d150,%eax
4046f7:	33 c4                	xor    %esp,%eax
4046f9:	89 44 24 18          	mov    %eax,0x18(%esp)
4046fd:	8b 45 08             	mov    0x8(%ebp),%eax
404700:	53                   	push   %ebx
404701:	56                   	push   %esi
404702:	57                   	push   %edi
404703:	6a 40                	push   $0x40
404705:	89 54 24 14          	mov    %edx,0x14(%esp)
404709:	8b f1                	mov    %ecx,%esi
40470b:	5a                   	pop    %edx
40470c:	6a 08                	push   $0x8
40470e:	33 ff                	xor    %edi,%edi
404710:	89 44 24 18          	mov    %eax,0x18(%esp)
404714:	59                   	pop    %ecx
404715:	89 38                	mov    %edi,(%eax)
404717:	e8 97 e2 ff ff       	call   0x4029b3
40471c:	8b d8                	mov    %eax,%ebx
40471e:	89 5c 24 20          	mov    %ebx,0x20(%esp)
404722:	85 db                	test   %ebx,%ebx
404724:	75 19                	jne    0x40473f
404726:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
40472b:	ba 42 01 00 00       	mov    $0x142,%edx
404730:	57                   	push   %edi
404731:	51                   	push   %ecx
404732:	8b 4d 04             	mov    0x4(%ebp),%ecx
404735:	e8 f9 ed ff ff       	call   0x403533
40473a:	e9 8c 00 00 00       	jmp    0x4047cb
40473f:	89 7c 24 18          	mov    %edi,0x18(%esp)
404743:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
404747:	f6 c3 03             	test   $0x3,%bl
40474a:	0f 85 91 00 00 00    	jne    0x4047e1
404750:	57                   	push   %edi
404751:	c1 e8 02             	shr    $0x2,%eax
404754:	50                   	push   %eax
404755:	51                   	push   %ecx
404756:	56                   	push   %esi
404757:	8d 4c 24 28          	lea    0x28(%esp),%ecx
40475b:	e8 d1 ee ff ff       	call   0x403631
404760:	8b f8                	mov    %eax,%edi
404762:	85 ff                	test   %edi,%edi
404764:	79 15                	jns    0x40477b
404766:	57                   	push   %edi
404767:	51                   	push   %ecx
404768:	8b 4d 04             	mov    0x4(%ebp),%ecx
40476b:	ba 45 01 00 00       	mov    $0x145,%edx
404770:	e8 be ed ff ff       	call   0x403533
404775:	8b 74 24 20          	mov    0x20(%esp),%esi
404779:	eb 1c                	jmp    0x404797
40477b:	8d 44 24 18          	lea    0x18(%esp),%eax
40477f:	8b cb                	mov    %ebx,%ecx
404781:	50                   	push   %eax
404782:	ff 74 24 14          	push   0x14(%esp)
404786:	e8 f9 00 00 00       	call   0x404884
40478b:	8b 44 24 14          	mov    0x14(%esp),%eax
40478f:	33 f6                	xor    %esi,%esi
404791:	33 ff                	xor    %edi,%edi
404793:	89 18                	mov    %ebx,(%eax)
404795:	33 db                	xor    %ebx,%ebx
404797:	83 7c 24 1c 00       	cmpl   $0x0,0x1c(%esp)
40479c:	74 09                	je     0x4047a7
40479e:	ff 74 24 1c          	push   0x1c(%esp)
4047a2:	e8 03 ee ff ff       	call   0x4035aa
4047a7:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
4047ac:	74 09                	je     0x4047b7
4047ae:	ff 74 24 18          	push   0x18(%esp)
4047b2:	e8 f3 ed ff ff       	call   0x4035aa
4047b7:	85 db                	test   %ebx,%ebx
4047b9:	74 10                	je     0x4047cb
4047bb:	56                   	push   %esi
4047bc:	6a 00                	push   $0x0
4047be:	ff 15 68 e0 40 00    	call   *0x40e068
4047c4:	50                   	push   %eax
4047c5:	ff 15 64 e0 40 00    	call   *0x40e064
4047cb:	8b 4c 24 24          	mov    0x24(%esp),%ecx
4047cf:	8b c7                	mov    %edi,%eax
4047d1:	5f                   	pop    %edi
4047d2:	5e                   	pop    %esi
4047d3:	5b                   	pop    %ebx
4047d4:	33 cc                	xor    %esp,%ecx
4047d6:	e8 85 56 00 00       	call   0x409e60
4047db:	8b e5                	mov    %ebp,%esp
4047dd:	5d                   	pop    %ebp
4047de:	c2 04 00             	ret    $0x4
4047e1:	e8 be ed ff ff       	call   0x4035a4
4047e6:	cc                   	int3
4047e7:	8b ff                	mov    %edi,%edi
4047e9:	55                   	push   %ebp
4047ea:	8b ec                	mov    %esp,%ebp
4047ec:	51                   	push   %ecx
4047ed:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4047f0:	8d 41 28             	lea    0x28(%ecx),%eax
4047f3:	57                   	push   %edi
4047f4:	8b 7d fc             	mov    -0x4(%ebp),%edi
4047f7:	89 45 fc             	mov    %eax,-0x4(%ebp)
4047fa:	3b f8                	cmp    %eax,%edi
4047fc:	74 3b                	je     0x404839
4047fe:	53                   	push   %ebx
4047ff:	56                   	push   %esi
404800:	8b 1f                	mov    (%edi),%ebx
404802:	85 db                	test   %ebx,%ebx
404804:	74 24                	je     0x40482a
404806:	8b f3                	mov    %ebx,%esi