40452f:	33 c0                	xor    %eax,%eax
404531:	89 45 fc             	mov    %eax,-0x4(%ebp)
404534:	89 46 08             	mov    %eax,0x8(%esi)
404537:	89 46 0c             	mov    %eax,0xc(%esi)
40453a:	89 46 10             	mov    %eax,0x10(%esi)
40453d:	8a 45 08             	mov    0x8(%ebp),%al
404540:	68 20 a2 41 00       	push   $0x41a220
404545:	8d 4e 18             	lea    0x18(%esi),%ecx
404548:	c7 06 1c a2 41 00    	movl   $0x41a21c,(%esi)
40454e:	88 46 14             	mov    %al,0x14(%esi)
404551:	e8 5a de ff ff       	call   0x4023b0
404556:	8b c6                	mov    %esi,%eax
404558:	e8 41 21 00 00       	call   0x40669e
40455d:	c2 04 00             	ret    $0x4
404560:	6a 04                	push   $0x4
404562:	b8 f9 96 41 00       	mov    $0x4196f9,%eax
404567:	e8 c9 20 00 00       	call   0x406635
40456c:	8b f1                	mov    %ecx,%esi
40456e:	89 75 f0             	mov    %esi,-0x10(%ebp)
404571:	c7 06 1c a2 41 00    	movl   $0x41a21c,(%esi)
404577:	56                   	push   %esi
404578:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40457f:	e8 98 fe ff ff       	call   0x40441c
404584:	59                   	pop    %ecx
404585:	6a 00                	push   $0x0
404587:	6a 01                	push   $0x1
404589:	8d 4e 18             	lea    0x18(%esi),%ecx
40458c:	e8 af ec ff ff       	call   0x403240
404591:	c7 06 14 a2 41 00    	movl   $0x41a214,(%esi)
404597:	e8 02 21 00 00       	call   0x40669e
40459c:	c3                   	ret
40459d:	8b ff                	mov    %edi,%edi
40459f:	55                   	push   %ebp
4045a0:	8b ec                	mov    %esp,%ebp
4045a2:	56                   	push   %esi
4045a3:	8b f1                	mov    %ecx,%esi
4045a5:	e8 b6 ff ff ff       	call   0x404560
4045aa:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
4045ae:	74 07                	je     0x4045b7
4045b0:	56                   	push   %esi
4045b1:	e8 80 0d 00 00       	call   0x405336
4045b6:	59                   	pop    %ecx
4045b7:	8b c6                	mov    %esi,%eax
4045b9:	5e                   	pop    %esi
4045ba:	5d                   	pop    %ebp
4045bb:	c2 04 00             	ret    $0x4
4045be:	6a 08                	push   $0x8
4045c0:	b8 26 97 41 00       	mov    $0x419726,%eax
4045c5:	e8 6b 20 00 00       	call   0x406635
4045ca:	a1 04 06 43 00       	mov    0x430604,%eax
4045cf:	8b f0                	mov    %eax,%esi
4045d1:	85 c0                	test   %eax,%eax
4045d3:	75 7b                	jne    0x404650
4045d5:	50                   	push   %eax
4045d6:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4045d9:	e8 30 01 00 00       	call   0x40470e
4045de:	a1 04 06 43 00       	mov    0x430604,%eax
4045e3:	21 75 fc             	and    %esi,-0x4(%ebp)
4045e6:	8b f0                	mov    %eax,%esi
4045e8:	85 c0                	test   %eax,%eax
4045ea:	75 58                	jne    0x404644
4045ec:	6a 34                	push   $0x34
4045ee:	e8 8a 12 00 00       	call   0x40587d
4045f3:	59                   	pop    %ecx
4045f4:	8b c8                	mov    %eax,%ecx
4045f6:	89 4d ec             	mov    %ecx,-0x14(%ebp)
4045f9:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4045fd:	85 c9                	test   %ecx,%ecx
4045ff:	74 0a                	je     0x40460b
404601:	56                   	push   %esi
404602:	e8 10 ff ff ff       	call   0x404517
404607:	8b f0                	mov    %eax,%esi
404609:	eb 02                	jmp    0x40460d
40460b:	33 f6                	xor    %esi,%esi
40460d:	56                   	push   %esi
40460e:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
404612:	e8 db fd ff ff       	call   0x4043f2
404617:	8d 4e 18             	lea    0x18(%esi),%ecx
40461a:	c7 46 10 3f 00 00 00 	movl   $0x3f,0x10(%esi)
404621:	c7 04 24 24 a2 41 00 	movl   $0x41a224,(%esp)
404628:	e8 e3 eb ff ff       	call   0x403210
40462d:	8b ce                	mov    %esi,%ecx
40462f:	89 35 08 06 43 00    	mov    %esi,0x430608
404635:	e8 f6 cc ff ff       	call   0x401330
40463a:	a1 08 06 43 00       	mov    0x430608,%eax
40463f:	a3 20 06 43 00       	mov    %eax,0x430620
404644:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
404648:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40464b:	e8 e6 00 00 00       	call   0x404736
404650:	8b c6                	mov    %esi,%eax
404652:	e8 47 20 00 00       	call   0x40669e
404657:	c3                   	ret
404658:	8b ff                	mov    %edi,%edi
40465a:	55                   	push   %ebp
40465b:	8b ec                	mov    %esp,%ebp
40465d:	8b 45 0c             	mov    0xc(%ebp),%eax
404660:	83 78 18 10          	cmpl   $0x10,0x18(%eax)
404664:	56                   	push   %esi
404665:	57                   	push   %edi
404666:	72 05                	jb     0x40466d
404668:	8b 70 04             	mov    0x4(%eax),%esi
40466b:	eb 03                	jmp    0x404670
40466d:	8d 70 04             	lea    0x4(%eax),%esi
404670:	6a 00                	push   $0x0
404672:	6a 00                	push   $0x0
404674:	e8 7b 30 00 00       	call   0x4076f4
404679:	59                   	pop    %ecx
40467a:	59                   	pop    %ecx
40467b:	85 c0                	test   %eax,%eax
40467d:	75 05                	jne    0x404684
40467f:	b8 26 a2 41 00       	mov    $0x41a226,%eax
404684:	8b 7d 08             	mov    0x8(%ebp),%edi
404687:	50                   	push   %eax
404688:	8d 4f 3c             	lea    0x3c(%edi),%ecx
40468b:	e8 80 eb ff ff       	call   0x403210
404690:	85 f6                	test   %esi,%esi
404692:	74 0e                	je     0x4046a2
404694:	56                   	push   %esi
404695:	6a 00                	push   $0x0
404697:	e8 58 30 00 00       	call   0x4076f4
40469c:	59                   	pop    %ecx
40469d:	59                   	pop    %ecx
40469e:	85 c0                	test   %eax,%eax
4046a0:	75 05                	jne    0x4046a7
4046a2:	b8 20 a2 41 00       	mov    $0x41a220,%eax
4046a7:	50                   	push   %eax
4046a8:	8d 4f 58             	lea    0x58(%edi),%ecx
4046ab:	e8 60 eb ff ff       	call   0x403210
4046b0:	5f                   	pop    %edi
4046b1:	5e                   	pop    %esi
4046b2:	5d                   	pop    %ebp
4046b3:	c3                   	ret
4046b4:	8b ff                	mov    %edi,%edi
4046b6:	57                   	push   %edi
4046b7:	68 30 b0 42 00       	push   $0x42b030
4046bc:	8b f9                	mov    %ecx,%edi
4046be:	ff 15 74 a0 41 00    	call   *0x41a074
4046c4:	85 c0                	test   %eax,%eax
4046c6:	75 19                	jne    0x4046e1
4046c8:	56                   	push   %esi
4046c9:	be 30 06 43 00       	mov    $0x430630,%esi
4046ce:	56                   	push   %esi
4046cf:	e8 0b 06 00 00       	call   0x404cdf
4046d4:	83 c6 18             	add    $0x18,%esi
4046d7:	81 fe 90 06 43 00    	cmp    $0x430690,%esi
4046dd:	59                   	pop    %ecx
4046de:	7c ee                	jl     0x4046ce
4046e0:	5e                   	pop    %esi
4046e1:	8b c7                	mov    %edi,%eax
4046e3:	5f                   	pop    %edi
4046e4:	c3                   	ret
4046e5:	68 30 b0 42 00       	push   $0x42b030
4046ea:	ff 15 78 a0 41 00    	call   *0x41a078
4046f0:	85 c0                	test   %eax,%eax
4046f2:	7d 19                	jge    0x40470d
4046f4:	56                   	push   %esi
4046f5:	be 30 06 43 00       	mov    $0x430630,%esi
4046fa:	56                   	push   %esi
4046fb:	e8 ef 05 00 00       	call   0x404cef
404700:	83 c6 18             	add    $0x18,%esi
404703:	81 fe 90 06 43 00    	cmp    $0x430690,%esi
404709:	59                   	pop    %ecx
40470a:	7c ee                	jl     0x4046fa
40470c:	5e                   	pop    %esi
40470d:	c3                   	ret
40470e:	8b ff                	mov    %edi,%edi
404710:	55                   	push   %ebp
404711:	8b ec                	mov    %esp,%ebp
404713:	8b 45 08             	mov    0x8(%ebp),%eax
404716:	83 f8 04             	cmp    $0x4,%eax
404719:	56                   	push   %esi
40471a:	8b f1                	mov    %ecx,%esi
40471c:	89 06                	mov    %eax,(%esi)
40471e:	7d 0f                	jge    0x40472f
404720:	6b c0 18             	imul   $0x18,%eax,%eax
404723:	05 30 06 43 00       	add    $0x430630,%eax
404728:	50                   	push   %eax
404729:	e8 d1 05 00 00       	call   0x404cff
40472e:	59                   	pop    %ecx
40472f:	8b c6                	mov    %esi,%eax
404731:	5e                   	pop    %esi
404732:	5d                   	pop    %ebp
404733:	c2 04 00             	ret    $0x4
404736:	8b 01                	mov    (%ecx),%eax
404738:	83 f8 04             	cmp    $0x4,%eax
40473b:	7d 0f                	jge    0x40474c
40473d:	6b c0 18             	imul   $0x18,%eax,%eax
404740:	05 30 06 43 00       	add    $0x430630,%eax
404745:	50                   	push   %eax
404746:	e8 c4 05 00 00       	call   0x404d0f
40474b:	59                   	pop    %ecx
40474c:	c3                   	ret
40474d:	8b ff                	mov    %edi,%edi
40474f:	55                   	push   %ebp
404750:	8b ec                	mov    %esp,%ebp
404752:	56                   	push   %esi
404753:	ff 75 08             	push   0x8(%ebp)
404756:	8b f1                	mov    %ecx,%esi
404758:	e8 f3 c8 ff ff       	call   0x401050
40475d:	c7 06 44 a2 41 00    	movl   $0x41a244,(%esi)
404763:	8b c6                	mov    %esi,%eax
404765:	5e                   	pop    %esi
404766:	5d                   	pop    %ebp
404767:	c2 04 00             	ret    $0x4
40476a:	c7 01 44 a2 41 00    	movl   $0x41a244,(%ecx)
404770:	e9 3b c9 ff ff       	jmp    0x4010b0
404775:	8b ff                	mov    %edi,%edi
404777:	55                   	push   %ebp
404778:	8b ec                	mov    %esp,%ebp
40477a:	56                   	push   %esi
40477b:	8b f1                	mov    %ecx,%esi
40477d:	c7 06 44 a2 41 00    	movl   $0x41a244,(%esi)
404783:	e8 28 c9 ff ff       	call   0x4010b0
404788:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
40478c:	74 07                	je     0x404795
40478e:	56                   	push   %esi
40478f:	e8 a2 0b 00 00       	call   0x405336
404794:	59                   	pop    %ecx
404795:	8b c6                	mov    %esi,%eax
404797:	5e                   	pop    %esi
404798:	5d                   	pop    %ebp
404799:	c2 04 00             	ret    $0x4
40479c:	6a 44                	push   $0x44
40479e:	b8 49 97 41 00       	mov    $0x419749,%eax
4047a3:	e8 8d 1e 00 00       	call   0x406635
4047a8:	68 4c a2 41 00       	push   $0x41a24c
4047ad:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4047b0:	e8 fb db ff ff       	call   0x4023b0
4047b5:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4047b9:	8d 45 d8             	lea    -0x28(%ebp),%eax
4047bc:	50                   	push   %eax
4047bd:	8d 4d b0             	lea    -0x50(%ebp),%ecx
4047c0:	e8 8b c9 ff ff       	call   0x401150
4047c5:	68 10 9c 42 00       	push   $0x429c10
4047ca:	8d 45 b0             	lea    -0x50(%ebp),%eax
4047cd:	50                   	push   %eax
4047ce:	e8 df 1e 00 00       	call   0x4066b2
4047d3:	cc                   	int3
4047d4:	6a 44                	push   $0x44
4047d6:	b8 49 97 41 00       	mov    $0x419749,%eax
4047db:	e8 55 1e 00 00       	call   0x406635
4047e0:	68 5c a2 41 00       	push   $0x41a25c
4047e5:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4047e8:	e8 c3 db ff ff       	call   0x4023b0
4047ed:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4047f1:	8d 45 d8             	lea    -0x28(%ebp),%eax
4047f4:	50                   	push   %eax
4047f5:	8d 4d b0             	lea    -0x50(%ebp),%ecx
4047f8:	e8 50 ff ff ff       	call   0x40474d
4047fd:	68 b4 94 42 00       	push   $0x4294b4
404802:	8d 45 b0             	lea    -0x50(%ebp),%eax
404805:	50                   	push   %eax
404806:	e8 a7 1e 00 00       	call   0x4066b2
40480b:	cc                   	int3
40480c:	8b ff                	mov    %edi,%edi
40480e:	55                   	push   %ebp
40480f:	8b ec                	mov    %esp,%ebp
404811:	56                   	push   %esi
404812:	ff 75 08             	push   0x8(%ebp)
404815:	8b f1                	mov    %ecx,%esi
404817:	e8 44 cc ff ff       	call   0x401460
40481c:	c7 06 44 a2 41 00    	movl   $0x41a244,(%esi)
404822:	8b c6                	mov    %esi,%eax
404824:	5e                   	pop    %esi
404825:	5d                   	pop    %ebp
404826:	c2 04 00             	ret    $0x4
404829:	8b ff                	mov    %edi,%edi
40482b:	56                   	push   %esi
40482c:	6a 18                	push   $0x18
40482e:	8b f1                	mov    %ecx,%esi
404830:	e8 48 10 00 00       	call   0x40587d
404835:	50                   	push   %eax
404836:	89 06                	mov    %eax,(%esi)
404838:	e8 a2 04 00 00       	call   0x404cdf
40483d:	59                   	pop    %ecx
40483e:	59                   	pop    %ecx
40483f:	8b c6                	mov    %esi,%eax
404841:	5e                   	pop    %esi
404842:	c3                   	ret
404843:	8b ff                	mov    %edi,%edi
404845:	56                   	push   %esi
404846:	8b f1                	mov    %ecx,%esi
404848:	ff 36                	push   (%esi)
40484a:	e8 a0 04 00 00       	call   0x404cef
40484f:	ff 36                	push   (%esi)
404851:	e8 e0 0a 00 00       	call   0x405336
404856:	59                   	pop    %ecx
404857:	59                   	pop    %ecx
404858:	5e                   	pop    %esi
404859:	c3                   	ret
40485a:	8b ff                	mov    %edi,%edi
40485c:	55                   	push   %ebp
40485d:	8b ec                	mov    %esp,%ebp
40485f:	51                   	push   %ecx
404860:	57                   	push   %edi
404861:	8b 7d 08             	mov    0x8(%ebp),%edi
404864:	0f b7 c7             	movzwl %di,%eax
404867:	b9 ff ff 00 00       	mov    $0xffff,%ecx
40486c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40486f:	66 3b f9             	cmp    %cx,%di
404872:	74 50                	je     0x4048c4
404874:	8b 55 0c             	mov    0xc(%ebp),%edx
404877:	56                   	push   %esi
404878:	8b 32                	mov    (%edx),%esi
40487a:	b9 00 01 00 00       	mov    $0x100,%ecx
40487f:	85 f6                	test   %esi,%esi
404881:	75 1a                	jne    0x40489d
404883:	53                   	push   %ebx
404884:	8b d9                	mov    %ecx,%ebx
404886:	66 3b fb             	cmp    %bx,%di
404889:	5b                   	pop    %ebx
40488a:	73 11                	jae    0x40489d
40488c:	8d 4f bf             	lea    -0x41(%edi),%ecx
40488f:	66 83 f9 19          	cmp    $0x19,%cx
404893:	77 2e                	ja     0x4048c3
404895:	83 c7 20             	add    $0x20,%edi
404898:	0f b7 c7             	movzwl %di,%eax
40489b:	eb 26                	jmp    0x4048c3
40489d:	ff 72 04             	push   0x4(%edx)
4048a0:	8d 45 fc             	lea    -0x4(%ebp),%eax
4048a3:	6a 01                	push   $0x1
4048a5:	50                   	push   %eax
4048a6:	6a 01                	push   $0x1
4048a8:	8d 45 08             	lea    0x8(%ebp),%eax
4048ab:	50                   	push   %eax
4048ac:	51                   	push   %ecx
4048ad:	56                   	push   %esi
4048ae:	6a 00                	push   $0x0
4048b0:	e8 36 30 00 00       	call   0x4078eb
4048b5:	83 c4 20             	add    $0x20,%esp
4048b8:	85 c0                	test   %eax,%eax
4048ba:	0f b7 45 08          	movzwl 0x8(%ebp),%eax
4048be:	74 03                	je     0x4048c3
4048c0:	8b 45 fc             	mov    -0x4(%ebp),%eax
4048c3:	5e                   	pop    %esi
4048c4:	5f                   	pop    %edi
4048c5:	c9                   	leave
4048c6:	c3                   	ret
4048c7:	8b ff                	mov    %edi,%edi
4048c9:	55                   	push   %ebp
4048ca:	8b ec                	mov    %esp,%ebp
4048cc:	51                   	push   %ecx
4048cd:	56                   	push   %esi
4048ce:	8b 75 08             	mov    0x8(%ebp),%esi
4048d1:	0f b7 c6             	movzwl %si,%eax
4048d4:	b9 ff ff 00 00       	mov    $0xffff,%ecx
4048d9:	89 45 fc             	mov    %eax,-0x4(%ebp)
4048dc:	66 3b f1             	cmp    %cx,%si
4048df:	74 50                	je     0x404931
4048e1:	8b 4d 0c             	mov    0xc(%ebp),%ecx