40447c:	50                   	push   %eax
40447d:	c7 45 c8 41 00 00 00 	movl   $0x41,-0x38(%ebp)
404484:	ff 15 54 71 40 00    	call   *0x407154
40448a:	85 c0                	test   %eax,%eax
40448c:	74 56                	je     0x4044e4
40448e:	50                   	push   %eax
40448f:	ff 15 78 72 40 00    	call   *0x407278
404495:	56                   	push   %esi
404496:	e8 be 11 00 00       	call   0x405659
40449b:	a1 b0 3e 42 00       	mov    0x423eb0,%eax
4044a0:	8b 80 1c 01 00 00    	mov    0x11c(%eax),%eax
4044a6:	85 c0                	test   %eax,%eax
4044a8:	74 28                	je     0x4044d2
4044aa:	81 fe 00 94 42 00    	cmp    $0x429400,%esi
4044b0:	75 20                	jne    0x4044d2
4044b2:	50                   	push   %eax
4044b3:	6a 00                	push   $0x0
4044b5:	e8 ce 16 00 00       	call   0x405b88
4044ba:	57                   	push   %edi
4044bb:	bf 40 2e 42 00       	mov    $0x422e40,%edi
4044c0:	57                   	push   %edi
4044c1:	ff 15 f0 70 40 00    	call   *0x4070f0
4044c7:	85 c0                	test   %eax,%eax
4044c9:	74 07                	je     0x4044d2
4044cb:	57                   	push   %edi
4044cc:	56                   	push   %esi
4044cd:	e8 b0 16 00 00       	call   0x405b82
4044d2:	ff 05 8c 04 42 00    	incl   0x42048c
4044d8:	56                   	push   %esi
4044d9:	53                   	push   %ebx
4044da:	ff 75 08             	push   0x8(%ebp)
4044dd:	e8 23 0f 00 00       	call   0x405405
4044e2:	eb 07                	jmp    0x4044eb
4044e4:	c7 45 0c 0f 04 00 00 	movl   $0x40f,0xc(%ebp)
4044eb:	81 7d 0c 0f 04 00 00 	cmpl   $0x40f,0xc(%ebp)
4044f2:	74 0d                	je     0x404501
4044f4:	81 7d 0c 05 04 00 00 	cmpl   $0x405,0xc(%ebp)
4044fb:	0f 85 75 01 00 00    	jne    0x404676
404501:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
404505:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
404509:	56                   	push   %esi
40450a:	53                   	push   %ebx
40450b:	e8 fb 0e 00 00       	call   0x40540b
404510:	56                   	push   %esi
404511:	e8 24 12 00 00       	call   0x40573a
404516:	85 c0                	test   %eax,%eax
404518:	75 07                	jne    0x404521
40451a:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
404521:	bf 68 f4 41 00       	mov    $0x41f468,%edi
404526:	56                   	push   %esi
404527:	57                   	push   %edi
404528:	e8 39 16 00 00       	call   0x405b66
40452d:	33 db                	xor    %ebx,%ebx
40452f:	53                   	push   %ebx
404530:	e8 53 19 00 00       	call   0x405e88
404535:	3b c3                	cmp    %ebx,%eax
404537:	89 45 f4             	mov    %eax,-0xc(%ebp)
40453a:	74 35                	je     0x404571
40453c:	33 c0                	xor    %eax,%eax
40453e:	3b c7                	cmp    %edi,%eax
404540:	74 2d                	je     0x40456f
404542:	8d 45 e4             	lea    -0x1c(%ebp),%eax
404545:	50                   	push   %eax
404546:	8d 45 ec             	lea    -0x14(%ebp),%eax
404549:	50                   	push   %eax
40454a:	8d 45 d8             	lea    -0x28(%ebp),%eax
40454d:	50                   	push   %eax
40454e:	57                   	push   %edi
40454f:	ff 55 f4             	call   *-0xc(%ebp)
404552:	85 c0                	test   %eax,%eax
404554:	75 6c                	jne    0x4045c2
404556:	85 db                	test   %ebx,%ebx
404558:	74 03                	je     0x40455d
40455a:	66 21 03             	and    %ax,(%ebx)
40455d:	57                   	push   %edi
40455e:	e8 3d 11 00 00       	call   0x4056a0
404563:	8b d8                	mov    %eax,%ebx
404565:	4b                   	dec    %ebx
404566:	3b df                	cmp    %edi,%ebx
404568:	66 c7 03 5c 00       	movw   $0x5c,(%ebx)
40456d:	75 d3                	jne    0x404542
40456f:	33 db                	xor    %ebx,%ebx
404571:	56                   	push   %esi
404572:	57                   	push   %edi
404573:	e8 ee 15 00 00       	call   0x405b66
404578:	57                   	push   %edi
404579:	e8 6f 11 00 00       	call   0x4056ed
40457e:	3b c3                	cmp    %ebx,%eax
404580:	74 03                	je     0x404585
404582:	80 20 00             	andb   $0x0,(%eax)
404585:	8d 45 dc             	lea    -0x24(%ebp),%eax
404588:	50                   	push   %eax
404589:	8d 45 f4             	lea    -0xc(%ebp),%eax
40458c:	50                   	push   %eax
40458d:	8d 45 e8             	lea    -0x18(%ebp),%eax
404590:	50                   	push   %eax
404591:	8d 45 f0             	lea    -0x10(%ebp),%eax
404594:	50                   	push   %eax
404595:	57                   	push   %edi
404596:	ff 15 c0 70 40 00    	call   *0x4070c0
40459c:	85 c0                	test   %eax,%eax
40459e:	74 3a                	je     0x4045da
4045a0:	8b 45 f0             	mov    -0x10(%ebp),%eax
4045a3:	be 00 04 00 00       	mov    $0x400,%esi
4045a8:	0f af 45 e8          	imul   -0x18(%ebp),%eax
4045ac:	56                   	push   %esi
4045ad:	ff 75 f4             	push   -0xc(%ebp)
4045b0:	50                   	push   %eax
4045b1:	ff 15 30 71 40 00    	call   *0x407130
4045b7:	8b f8                	mov    %eax,%edi
4045b9:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
4045c0:	eb 20                	jmp    0x4045e2
4045c2:	8b 7d d8             	mov    -0x28(%ebp),%edi
4045c5:	8b 45 dc             	mov    -0x24(%ebp),%eax
4045c8:	0f ac c7 0a          	shrd   $0xa,%eax,%edi
4045cc:	c1 e8 0a             	shr    $0xa,%eax
4045cf:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
4045d6:	33 db                	xor    %ebx,%ebx
4045d8:	eb 03                	jmp    0x4045dd
4045da:	8b 7d 0c             	mov    0xc(%ebp),%edi
4045dd:	be 00 04 00 00       	mov    $0x400,%esi
4045e2:	6a 05                	push   $0x5
4045e4:	e8 bd 01 00 00       	call   0x4047a6
4045e9:	39 5d f8             	cmp    %ebx,-0x8(%ebp)
4045ec:	74 0b                	je     0x4045f9
4045ee:	3b f8                	cmp    %eax,%edi
4045f0:	73 07                	jae    0x4045f9
4045f2:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
4045f9:	8b 0d 7c 36 42 00    	mov    0x42367c,%ecx
4045ff:	39 59 10             	cmp    %ebx,0x10(%ecx)
404602:	74 2b                	je     0x40462f
404604:	50                   	push   %eax
404605:	6a fb                	push   $0xfffffffb
404607:	68 ff 03 00 00       	push   $0x3ff
40460c:	e8 e0 00 00 00       	call   0x4046f1
404611:	39 5d f8             	cmp    %ebx,-0x8(%ebp)
404614:	74 0b                	je     0x404621
404616:	57                   	push   %edi
404617:	6a fc                	push   $0xfffffffc
404619:	56                   	push   %esi
40461a:	e8 d2 00 00 00       	call   0x4046f1
40461f:	eb 0e                	jmp    0x40462f
404621:	68 58 f4 41 00       	push   $0x41f458
404626:	56                   	push   %esi
404627:	ff 75 08             	push   0x8(%ebp)
40462a:	e8 d6 0d 00 00       	call   0x405405
40462f:	8b 45 fc             	mov    -0x4(%ebp),%eax
404632:	3b c3                	cmp    %ebx,%eax
404634:	a3 44 3f 42 00       	mov    %eax,0x423f44
404639:	75 0a                	jne    0x404645
40463b:	6a 07                	push   $0x7
40463d:	e8 c9 cd ff ff       	call   0x40140b
404642:	89 45 fc             	mov    %eax,-0x4(%ebp)
404645:	8b 45 e0             	mov    -0x20(%ebp),%eax
404648:	85 70 14             	test   %esi,0x14(%eax)
40464b:	74 03                	je     0x404650
40464d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
404650:	33 c0                	xor    %eax,%eax
404652:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
404655:	0f 94 c0             	sete   %al
404658:	50                   	push   %eax
404659:	e8 dc f8 ff ff       	call   0x403f3a
40465e:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
404661:	75 0d                	jne    0x404670
404663:	39 1d 8c 04 42 00    	cmp    %ebx,0x42048c
404669:	75 05                	jne    0x404670
40466b:	e8 7b fc ff ff       	call   0x4042eb
404670:	89 1d 8c 04 42 00    	mov    %ebx,0x42048c
404676:	ff 75 14             	push   0x14(%ebp)
404679:	ff 75 10             	push   0x10(%ebp)
40467c:	ff 75 0c             	push   0xc(%ebp)
40467f:	e8 fb f8 ff ff       	call   0x403f7f
404684:	5f                   	pop    %edi
404685:	5e                   	pop    %esi
404686:	5b                   	pop    %ebx
404687:	c9                   	leave
404688:	c2 10 00             	ret    $0x10
40468b:	55                   	push   %ebp
40468c:	8b ec                	mov    %esp,%ebp
40468e:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
404692:	56                   	push   %esi
404693:	8b 35 44 72 40 00    	mov    0x407244,%esi
404699:	75 1c                	jne    0x4046b7
40469b:	ff 75 14             	push   0x14(%ebp)
40469e:	68 fb 03 00 00       	push   $0x3fb
4046a3:	e8 63 0d 00 00       	call   0x40540b
4046a8:	ff 75 14             	push   0x14(%ebp)
4046ab:	6a 01                	push   $0x1
4046ad:	68 66 04 00 00       	push   $0x466
4046b2:	ff 75 08             	push   0x8(%ebp)
4046b5:	ff d6                	call   *%esi
4046b7:	83 7d 0c 02          	cmpl   $0x2,0xc(%ebp)
4046bb:	75 2d                	jne    0x4046ea
4046bd:	ff 75 14             	push   0x14(%ebp)
4046c0:	ff 75 10             	push   0x10(%ebp)
4046c3:	ff 15 50 71 40 00    	call   *0x407150
4046c9:	85 c0                	test   %eax,%eax
4046cb:	74 0e                	je     0x4046db
4046cd:	6a 07                	push   $0x7
4046cf:	e8 37 cd ff ff       	call   0x40140b
4046d4:	85 c0                	test   %eax,%eax
4046d6:	75 03                	jne    0x4046db
4046d8:	40                   	inc    %eax
4046d9:	eb 02                	jmp    0x4046dd
4046db:	33 c0                	xor    %eax,%eax
4046dd:	50                   	push   %eax
4046de:	6a 00                	push   $0x0
4046e0:	68 65 04 00 00       	push   $0x465
4046e5:	ff 75 08             	push   0x8(%ebp)
4046e8:	ff d6                	call   *%esi
4046ea:	33 c0                	xor    %eax,%eax
4046ec:	5e                   	pop    %esi
4046ed:	5d                   	pop    %ebp
4046ee:	c2 10 00             	ret    $0x10
4046f1:	55                   	push   %ebp
4046f2:	8b ec                	mov    %esp,%ebp
4046f4:	83 ec 40             	sub    $0x40,%esp
4046f7:	53                   	push   %ebx
4046f8:	56                   	push   %esi
4046f9:	8b 75 10             	mov    0x10(%ebp),%esi
4046fc:	57                   	push   %edi
4046fd:	6a 14                	push   $0x14
4046ff:	81 fe 00 00 10 00    	cmp    $0x100000,%esi
404705:	5f                   	pop    %edi
404706:	6a dc                	push   $0xffffffdc
404708:	5b                   	pop    %ebx
404709:	73 06                	jae    0x404711
40470b:	6a 0a                	push   $0xa
40470d:	5f                   	pop    %edi
40470e:	6a dd                	push   $0xffffffdd
404710:	5b                   	pop    %ebx
404711:	81 fe 00 04 00 00    	cmp    $0x400,%esi
404717:	73 05                	jae    0x40471e
404719:	6a de                	push   $0xffffffde
40471b:	33 ff                	xor    %edi,%edi
40471d:	5b                   	pop    %ebx
40471e:	81 fe 33 33 ff ff    	cmp    $0xffff3333,%esi
404724:	73 0f                	jae    0x404735
404726:	33 c0                	xor    %eax,%eax
404728:	8b cf                	mov    %edi,%ecx
40472a:	40                   	inc    %eax
40472b:	6a 14                	push   $0x14
40472d:	d3 e0                	shl    %cl,%eax
40472f:	59                   	pop    %ecx
404730:	99                   	cltd
404731:	f7 f9                	idiv   %ecx
404733:	03 f0                	add    %eax,%esi
404735:	8d 45 e0             	lea    -0x20(%ebp),%eax
404738:	6a df                	push   $0xffffffdf
40473a:	50                   	push   %eax
40473b:	e8 48 14 00 00       	call   0x405b88
404740:	50                   	push   %eax
404741:	8d 45 c0             	lea    -0x40(%ebp),%eax
404744:	53                   	push   %ebx
404745:	50                   	push   %eax
404746:	e8 3d 14 00 00       	call   0x405b88
40474b:	50                   	push   %eax
40474c:	8b c6                	mov    %esi,%eax
40474e:	25 ff ff ff 00       	and    $0xffffff,%eax
404753:	8b cf                	mov    %edi,%ecx
404755:	6a 0a                	push   $0xa
404757:	33 d2                	xor    %edx,%edx
404759:	8d 04 80             	lea    (%eax,%eax,4),%eax
40475c:	03 c0                	add    %eax,%eax
40475e:	d3 e8                	shr    %cl,%eax
404760:	59                   	pop    %ecx
404761:	f7 f1                	div    %ecx
404763:	8b cf                	mov    %edi,%ecx
404765:	d3 ee                	shr    %cl,%esi
404767:	52                   	push   %edx
404768:	56                   	push   %esi
404769:	68 ec 91 40 00       	push   $0x4091ec
40476e:	be a0 04 42 00       	mov    $0x4204a0,%esi
404773:	ff 75 0c             	push   0xc(%ebp)
404776:	56                   	push   %esi
404777:	e8 0c 14 00 00       	call   0x405b88
40477c:	56                   	push   %esi
40477d:	8b f8                	mov    %eax,%edi
40477f:	e8 f8 13 00 00       	call   0x405b7c
404784:	03 f8                	add    %eax,%edi
404786:	57                   	push   %edi
404787:	ff 15 00 72 40 00    	call   *0x407200
40478d:	83 c4 18             	add    $0x18,%esp
404790:	56                   	push   %esi
404791:	ff 75 08             	push   0x8(%ebp)
404794:	ff 35 78 36 42 00    	push   0x423678
40479a:	e8 66 0c 00 00       	call   0x405405
40479f:	5f                   	pop    %edi
4047a0:	5e                   	pop    %esi
4047a1:	5b                   	pop    %ebx
4047a2:	c9                   	leave
4047a3:	c2 0c 00             	ret    $0xc
4047a6:	8b 15 cc 3e 42 00    	mov    0x423ecc,%edx
4047ac:	8b 0d c8 3e 42 00    	mov    0x423ec8,%ecx
4047b2:	33 c0                	xor    %eax,%eax
4047b4:	85 d2                	test   %edx,%edx
4047b6:	74 18                	je     0x4047d0
4047b8:	56                   	push   %esi
4047b9:	f6 41 08 01          	testb  $0x1,0x8(%ecx)
4047bd:	74 07                	je     0x4047c6
4047bf:	8b 74 24 08          	mov    0x8(%esp),%esi
4047c3:	03 04 b1             	add    (%ecx,%esi,4),%eax
4047c6:	81 c1 18 04 00 00    	add    $0x418,%ecx
4047cc:	4a                   	dec    %edx
4047cd:	75 ea                	jne    0x4047b9
4047cf:	5e                   	pop    %esi
4047d0:	c2 04 00             	ret    $0x4
4047d3:	55                   	push   %ebp
4047d4:	8b ec                	mov    %esp,%ebp
4047d6:	83 ec 38             	sub    $0x38,%esp
4047d9:	56                   	push   %esi
4047da:	8b 35 44 72 40 00    	mov    0x407244,%esi
4047e0:	57                   	push   %edi
4047e1:	8b 7d 08             	mov    0x8(%ebp),%edi
4047e4:	6a 00                	push   $0x0
4047e6:	6a 09                	push   $0x9
4047e8:	68 0a 11 00 00       	push   $0x110a
4047ed:	57                   	push   %edi
4047ee:	ff d6                	call   *%esi
4047f0:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4047f4:	74 3c                	je     0x404832
4047f6:	ff 15 a0 71 40 00    	call   *0x4071a0
4047fc:	0f bf c8             	movswl %ax,%ecx
4047ff:	c1 e8 10             	shr    $0x10,%eax
404802:	0f bf c0             	movswl %ax,%eax
404805:	89 45 f4             	mov    %eax,-0xc(%ebp)
404808:	8d 45 f0             	lea    -0x10(%ebp),%eax
40480b:	50                   	push   %eax
40480c:	57                   	push   %edi
40480d:	89 4d f0             	mov    %ecx,-0x10(%ebp)
404810:	ff 15 70 71 40 00    	call   *0x407170
404816:	8d 45 f0             	lea    -0x10(%ebp),%eax
404819:	50                   	push   %eax
40481a:	6a 00                	push   $0x0
40481c:	68 11 11 00 00       	push   $0x1111
404821:	57                   	push   %edi
404822:	ff d6                	call   *%esi
404824:	f6 45 f8 66          	testb  $0x66,-0x8(%ebp)
404828:	75 05                	jne    0x40482f
40482a:	83 c8 ff             	or     $0xffffffff,%eax
40482d:	eb 1e                	jmp    0x40484d
40482f:	8b 45 fc             	mov    -0x4(%ebp),%eax
404832:	89 45 cc             	mov    %eax,-0x34(%ebp)
404835:	8d 45 c8             	lea    -0x38(%ebp),%eax
404838:	50                   	push   %eax
404839:	6a 00                	push   $0x0
40483b:	68 0c 11 00 00       	push   $0x110c
404840:	57                   	push   %edi
404841:	c7 45 c8 04 00 00 00 	movl   $0x4,-0x38(%ebp)
404848:	ff d6                	call   *%esi