4773b5:	8b 15 9c 03 47 00    	mov    0x47039c,%edx
4773bb:	e8 44 c8 f8 ff       	call   0x403c04
4773c0:	84 c0                	test   %al,%al
4773c2:	0f 85 f6 02 00 00    	jne    0x4776be
4773c8:	56                   	push   %esi
4773c9:	57                   	push   %edi
4773ca:	8d 75 d0             	lea    -0x30(%ebp),%esi
4773cd:	8d 7d c0             	lea    -0x40(%ebp),%edi
4773d0:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4773d1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4773d2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4773d3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4773d4:	5f                   	pop    %edi
4773d5:	5e                   	pop    %esi
4773d6:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4773d9:	f7 d8                	neg    %eax
4773db:	50                   	push   %eax
4773dc:	8b 45 c0             	mov    -0x40(%ebp),%eax
4773df:	f7 d8                	neg    %eax
4773e1:	50                   	push   %eax
4773e2:	8d 45 c0             	lea    -0x40(%ebp),%eax
4773e5:	50                   	push   %eax
4773e6:	e8 8d 08 f9 ff       	call   0x407c78
4773eb:	3b be 8c 00 00 00    	cmp    0x8c(%esi),%edi
4773f1:	0f 94 c0             	sete   %al
4773f4:	3b be ac 00 00 00    	cmp    0xac(%esi),%edi
4773fa:	0f 94 c3             	sete   %bl
4773fd:	84 db                	test   %bl,%bl
4773ff:	74 13                	je     0x477414
477401:	84 c0                	test   %al,%al
477403:	75 13                	jne    0x477418
477405:	80 be 88 00 00 00 00 	cmpb   $0x0,0x88(%esi)
47740c:	74 06                	je     0x477414
47740e:	80 7e 40 00          	cmpb   $0x0,0x40(%esi)
477412:	75 04                	jne    0x477418
477414:	33 c0                	xor    %eax,%eax
477416:	eb 02                	jmp    0x47741a
477418:	b0 01                	mov    $0x1,%al
47741a:	88 45 eb             	mov    %al,-0x15(%ebp)
47741d:	8b c7                	mov    %edi,%eax
47741f:	8b 10                	mov    (%eax),%edx
477421:	ff 52 50             	call   *0x50(%edx)
477424:	88 45 ea             	mov    %al,-0x16(%ebp)
477427:	8b 45 fc             	mov    -0x4(%ebp),%eax
47742a:	e8 91 18 fb ff       	call   0x428cc0
47742f:	89 45 f4             	mov    %eax,-0xc(%ebp)
477432:	33 c0                	xor    %eax,%eax
477434:	89 45 f8             	mov    %eax,-0x8(%ebp)
477437:	8b 45 fc             	mov    -0x4(%ebp),%eax
47743a:	e8 8d 14 fb ff       	call   0x4288cc
47743f:	8b 45 f4             	mov    -0xc(%ebp),%eax
477442:	50                   	push   %eax
477443:	e8 a8 02 f9 ff       	call   0x4076f0
477448:	89 45 e4             	mov    %eax,-0x1c(%ebp)
47744b:	33 d2                	xor    %edx,%edx
47744d:	55                   	push   %ebp
47744e:	68 b7 76 47 00       	push   $0x4776b7
477453:	64 ff 32             	push   %fs:(%edx)
477456:	64 89 22             	mov    %esp,%fs:(%edx)
477459:	8b 45 dc             	mov    -0x24(%ebp),%eax
47745c:	50                   	push   %eax
47745d:	8b 45 d8             	mov    -0x28(%ebp),%eax
477460:	50                   	push   %eax
477461:	8b 45 d4             	mov    -0x2c(%ebp),%eax
477464:	50                   	push   %eax
477465:	8b 45 d0             	mov    -0x30(%ebp),%eax
477468:	50                   	push   %eax
477469:	8b 45 f4             	mov    -0xc(%ebp),%eax
47746c:	50                   	push   %eax
47746d:	e8 e6 01 f9 ff       	call   0x407658
477472:	8d 45 b0             	lea    -0x50(%ebp),%eax
477475:	50                   	push   %eax
477476:	8b 45 f4             	mov    -0xc(%ebp),%eax
477479:	50                   	push   %eax
47747a:	e8 01 01 f9 ff       	call   0x407580
47747f:	8d 45 b0             	lea    -0x50(%ebp),%eax
477482:	50                   	push   %eax
477483:	e8 58 07 f9 ff       	call   0x407be0
477488:	85 c0                	test   %eax,%eax
47748a:	74 0a                	je     0x477496
47748c:	e8 5f ce f8 ff       	call   0x4042f0
477491:	e9 28 02 00 00       	jmp    0x4776be
477496:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
47749a:	75 2f                	jne    0x4774cb
47749c:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
47749f:	8b 55 d0             	mov    -0x30(%ebp),%edx
4774a2:	8b 45 f4             	mov    -0xc(%ebp),%eax
4774a5:	e8 36 fc fc ff       	call   0x4470e0
4774aa:	6a 00                	push   $0x0
4774ac:	8b 45 d4             	mov    -0x2c(%ebp),%eax
4774af:	83 e0 01             	and    $0x1,%eax
4774b2:	50                   	push   %eax
4774b3:	8b 45 d0             	mov    -0x30(%ebp),%eax
4774b6:	83 e0 01             	and    $0x1,%eax
4774b9:	50                   	push   %eax
4774ba:	8b 45 f4             	mov    -0xc(%ebp),%eax
4774bd:	50                   	push   %eax
4774be:	e8 65 02 f9 ff       	call   0x407728
4774c3:	8b 45 fc             	mov    -0x4(%ebp),%eax
4774c6:	89 45 ec             	mov    %eax,-0x14(%ebp)
4774c9:	eb 7c                	jmp    0x477547
4774cb:	b2 01                	mov    $0x1,%dl
4774cd:	a1 ec 6a 42 00       	mov    0x426aec,%eax
4774d2:	e8 f9 5c fb ff       	call   0x42d1d0
4774d7:	89 45 f8             	mov    %eax,-0x8(%ebp)
4774da:	8b 55 c8             	mov    -0x38(%ebp),%edx
4774dd:	8b 45 f8             	mov    -0x8(%ebp),%eax
4774e0:	8b 08                	mov    (%eax),%ecx
4774e2:	ff 51 40             	call   *0x40(%ecx)
4774e5:	8b 55 cc             	mov    -0x34(%ebp),%edx
4774e8:	8b 45 f8             	mov    -0x8(%ebp),%eax
4774eb:	8b 08                	mov    (%eax),%ecx
4774ed:	ff 51 34             	call   *0x34(%ecx)
4774f0:	8b 45 f8             	mov    -0x8(%ebp),%eax
4774f3:	e8 a0 62 fb ff       	call   0x42d798
4774f8:	89 45 ec             	mov    %eax,-0x14(%ebp)
4774fb:	8b 45 ec             	mov    -0x14(%ebp),%eax
4774fe:	e8 bd 17 fb ff       	call   0x428cc0
477503:	89 45 f0             	mov    %eax,-0x10(%ebp)
477506:	8b 45 f0             	mov    -0x10(%ebp),%eax
477509:	50                   	push   %eax
47750a:	e8 e1 01 f9 ff       	call   0x4076f0
47750f:	89 45 e0             	mov    %eax,-0x20(%ebp)
477512:	6a 00                	push   $0x0
477514:	8b 45 d4             	mov    -0x2c(%ebp),%eax
477517:	50                   	push   %eax
477518:	8b 45 d0             	mov    -0x30(%ebp),%eax
47751b:	50                   	push   %eax
47751c:	8b 45 f0             	mov    -0x10(%ebp),%eax
47751f:	50                   	push   %eax
477520:	e8 83 02 f9 ff       	call   0x4077a8
477525:	6a 00                	push   $0x0
477527:	8b 86 c8 00 00 00    	mov    0xc8(%esi),%eax
47752d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
477530:	ba 14 00 00 00       	mov    $0x14,%edx
477535:	e8 7e 24 fd ff       	call   0x4499b8
47753a:	8b 45 e0             	mov    -0x20(%ebp),%eax
47753d:	50                   	push   %eax
47753e:	8b 45 f0             	mov    -0x10(%ebp),%eax
477541:	50                   	push   %eax
477542:	e8 99 01 f9 ff       	call   0x4076e0
477547:	8a 45 ea             	mov    -0x16(%ebp),%al
47754a:	34 01                	xor    $0x1,%al
47754c:	22 c3                	and    %bl,%al
47754e:	84 c0                	test   %al,%al
477550:	74 2d                	je     0x47757f
477552:	e8 85 4b ff ff       	call   0x46c0dc
477557:	84 c0                	test   %al,%al
477559:	74 12                	je     0x47756d
47755b:	8b 45 ec             	mov    -0x14(%ebp),%eax
47755e:	8b 40 14             	mov    0x14(%eax),%eax
477561:	ba 1d 00 00 80       	mov    $0x8000001d,%edx
477566:	e8 19 0d fb ff       	call   0x428284
47756b:	eb 1f                	jmp    0x47758c
47756d:	8b 45 ec             	mov    -0x14(%ebp),%eax
477570:	8b 40 14             	mov    0x14(%eax),%eax
477573:	ba 0d 00 00 80       	mov    $0x8000000d,%edx
477578:	e8 07 0d fb ff       	call   0x428284
47757d:	eb 0d                	jmp    0x47758c
47757f:	8b 45 ec             	mov    -0x14(%ebp),%eax
477582:	8b 40 14             	mov    0x14(%eax),%eax
477585:	b2 01                	mov    $0x1,%dl
477587:	e8 14 0e fb ff       	call   0x4283a0
47758c:	8b c6                	mov    %esi,%eax
47758e:	8b 10                	mov    (%eax),%edx
477590:	ff 52 50             	call   *0x50(%edx)
477593:	8b d0                	mov    %eax,%edx
477595:	8b 45 ec             	mov    -0x14(%ebp),%eax
477598:	8b 40 0c             	mov    0xc(%eax),%eax
47759b:	8b 08                	mov    (%eax),%ecx
47759d:	ff 51 08             	call   *0x8(%ecx)
4775a0:	8b 47 1c             	mov    0x1c(%edi),%eax
4775a3:	80 78 3e 00          	cmpb   $0x0,0x3e(%eax)
4775a7:	74 49                	je     0x4775f2
4775a9:	8a 45 ea             	mov    -0x16(%ebp),%al
4775ac:	34 01                	xor    $0x1,%al
4775ae:	22 c3                	and    %bl,%al
4775b0:	84 c0                	test   %al,%al
4775b2:	74 12                	je     0x4775c6
4775b4:	8b 45 ec             	mov    -0x14(%ebp),%eax
4775b7:	8b 40 0c             	mov    0xc(%eax),%eax
4775ba:	ba 0e 00 00 80       	mov    $0x8000000e,%edx
4775bf:	e8 d4 04 fb ff       	call   0x427a98
4775c4:	eb 28                	jmp    0x4775ee
4775c6:	80 7d ea 00          	cmpb   $0x0,-0x16(%ebp)
4775ca:	74 12                	je     0x4775de
4775cc:	8b 45 ec             	mov    -0x14(%ebp),%eax
4775cf:	8b 40 0c             	mov    0xc(%eax),%eax
4775d2:	ba 12 00 00 80       	mov    $0x80000012,%edx
4775d7:	e8 bc 04 fb ff       	call   0x427a98
4775dc:	eb 10                	jmp    0x4775ee
4775de:	8b 45 ec             	mov    -0x14(%ebp),%eax
4775e1:	8b 40 0c             	mov    0xc(%eax),%eax
4775e4:	ba 07 00 00 80       	mov    $0x80000007,%edx
4775e9:	e8 aa 04 fb ff       	call   0x427a98
4775ee:	33 c0                	xor    %eax,%eax
4775f0:	eb 4c                	jmp    0x47763e
4775f2:	8b 45 ec             	mov    -0x14(%ebp),%eax
4775f5:	8b 40 0c             	mov    0xc(%eax),%eax
4775f8:	ba 11 00 00 80       	mov    $0x80000011,%edx
4775fd:	e8 96 04 fb ff       	call   0x427a98
477602:	8b 86 c8 00 00 00    	mov    0xc8(%esi),%eax
477608:	8b 40 70             	mov    0x70(%eax),%eax
47760b:	e8 c8 ff fa ff       	call   0x4275d8
477610:	8b f0                	mov    %eax,%esi
477612:	80 7d ea 00          	cmpb   $0x0,-0x16(%ebp)
477616:	75 24                	jne    0x47763c
477618:	84 db                	test   %bl,%bl
47761a:	75 0e                	jne    0x47762a
47761c:	b8 0f 00 00 80       	mov    $0x8000000f,%eax
477621:	e8 b2 ff fa ff       	call   0x4275d8
477626:	3b f0                	cmp    %eax,%esi
477628:	74 12                	je     0x47763c
47762a:	b8 11 00 00 80       	mov    $0x80000011,%eax
47762f:	e8 a4 ff fa ff       	call   0x4275d8
477634:	3b f0                	cmp    %eax,%esi
477636:	74 04                	je     0x47763c
477638:	33 c0                	xor    %eax,%eax
47763a:	eb 02                	jmp    0x47763e
47763c:	b0 01                	mov    $0x1,%al
47763e:	53                   	push   %ebx
47763f:	8a 55 eb             	mov    -0x15(%ebp),%dl
477642:	52                   	push   %edx
477643:	50                   	push   %eax
477644:	8d 4d c0             	lea    -0x40(%ebp),%ecx
477647:	8b 55 ec             	mov    -0x14(%ebp),%edx
47764a:	8b c7                	mov    %edi,%eax
47764c:	8b 18                	mov    (%eax),%ebx
47764e:	ff 53 44             	call   *0x44(%ebx)
477651:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
477655:	74 35                	je     0x47768c
477657:	68 20 00 cc 00       	push   $0xcc0020
47765c:	6a 00                	push   $0x0
47765e:	6a 00                	push   $0x0
477660:	8b 45 ec             	mov    -0x14(%ebp),%eax
477663:	e8 58 16 fb ff       	call   0x428cc0
477668:	50                   	push   %eax
477669:	8b 45 f8             	mov    -0x8(%ebp),%eax
47766c:	8b 10                	mov    (%eax),%edx
47766e:	ff 52 20             	call   *0x20(%edx)
477671:	50                   	push   %eax
477672:	8b 45 f8             	mov    -0x8(%ebp),%eax
477675:	8b 10                	mov    (%eax),%edx
477677:	ff 52 2c             	call   *0x2c(%edx)
47767a:	50                   	push   %eax
47767b:	8b 45 d4             	mov    -0x2c(%ebp),%eax
47767e:	50                   	push   %eax
47767f:	8b 45 d0             	mov    -0x30(%ebp),%eax
477682:	50                   	push   %eax
477683:	8b 45 f4             	mov    -0xc(%ebp),%eax
477686:	50                   	push   %eax
477687:	e8 ac fd f8 ff       	call   0x407438
47768c:	33 c0                	xor    %eax,%eax
47768e:	5a                   	pop    %edx
47768f:	59                   	pop    %ecx
477690:	59                   	pop    %ecx
477691:	64 89 10             	mov    %edx,%fs:(%eax)
477694:	68 be 76 47 00       	push   $0x4776be
477699:	8b 45 fc             	mov    -0x4(%ebp),%eax
47769c:	e8 2b 12 fb ff       	call   0x4288cc
4776a1:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4776a4:	50                   	push   %eax
4776a5:	8b 45 f4             	mov    -0xc(%ebp),%eax
4776a8:	50                   	push   %eax
4776a9:	e8 32 00 f9 ff       	call   0x4076e0
4776ae:	8b 45 f8             	mov    -0x8(%ebp),%eax
4776b1:	e8 c2 c3 f8 ff       	call   0x403a78
4776b6:	c3                   	ret
4776b7:	e9 50 cb f8 ff       	jmp    0x40420c
4776bc:	eb db                	jmp    0x477699
4776be:	5f                   	pop    %edi
4776bf:	5e                   	pop    %esi
4776c0:	5b                   	pop    %ebx
4776c1:	8b e5                	mov    %ebp,%esp
4776c3:	5d                   	pop    %ebp
4776c4:	c2 04 00             	ret    $0x4
4776c7:	90                   	nop
4776c8:	53                   	push   %ebx
4776c9:	56                   	push   %esi
4776ca:	57                   	push   %edi
4776cb:	55                   	push   %ebp
4776cc:	8b ea                	mov    %edx,%ebp
4776ce:	8b d8                	mov    %eax,%ebx
4776d0:	8b bb c0 00 00 00    	mov    0xc0(%ebx),%edi
4776d6:	4f                   	dec    %edi
4776d7:	85 ff                	test   %edi,%edi
4776d9:	7c 35                	jl     0x477710
4776db:	47                   	inc    %edi
4776dc:	33 f6                	xor    %esi,%esi
4776de:	f6 83 b3 00 00 00 04 	testb  $0x4,0xb3(%ebx)
4776e5:	75 11                	jne    0x4776f8
4776e7:	8b 83 c4 00 00 00    	mov    0xc4(%ebx),%eax
4776ed:	8b 04 b0             	mov    (%eax,%esi,4),%eax
4776f0:	3b 83 ac 00 00 00    	cmp    0xac(%ebx),%eax
4776f6:	74 14                	je     0x47770c
4776f8:	6a 00                	push   $0x0
4776fa:	8b 83 c4 00 00 00    	mov    0xc4(%ebx),%eax
477700:	8b 14 b0             	mov    (%eax,%esi,4),%edx
477703:	8b cd                	mov    %ebp,%ecx
477705:	8b c3                	mov    %ebx,%eax
477707:	e8 58 fc ff ff       	call   0x477364
47770c:	46                   	inc    %esi
47770d:	4f                   	dec    %edi
47770e:	75 ce                	jne    0x4776de
477710:	f6 83 b3 00 00 00 04 	testb  $0x4,0xb3(%ebx)
477717:	75 1a                	jne    0x477733
477719:	83 bb ac 00 00 00 00 	cmpl   $0x0,0xac(%ebx)
477720:	74 11                	je     0x477733
477722:	6a 00                	push   $0x0
477724:	8b cd                	mov    %ebp,%ecx
477726:	8b 93 ac 00 00 00    	mov    0xac(%ebx),%edx
47772c:	8b c3                	mov    %ebx,%eax
47772e:	e8 31 fc ff ff       	call   0x477364
477733:	80 a3 b3 00 00 00 fb 	andb   $0xfb,0xb3(%ebx)
47773a:	5d                   	pop    %ebp
47773b:	5f                   	pop    %edi
47773c:	5e                   	pop    %esi
47773d:	5b                   	pop    %ebx
47773e:	c3                   	ret
47773f:	90                   	nop
477740:	53                   	push   %ebx
477741:	56                   	push   %esi
477742:	8b f2                	mov    %edx,%esi
477744:	8b d8                	mov    %eax,%ebx
477746:	80 bb bd 00 00 00 00 	cmpb   $0x0,0xbd(%ebx)
47774d:	74 58                	je     0x4777a7
47774f:	83 bb c8 00 00 00 00 	cmpl   $0x0,0xc8(%ebx)
477756:	74 4f                	je     0x4777a7
477758:	8b 83 c8 00 00 00    	mov    0xc8(%ebx),%eax
47775e:	e8 f5 7a fd ff       	call   0x44f258
477763:	84 c0                	test   %al,%al
477765:	74 40                	je     0x4777a7
477767:	80 7e 21 00          	cmpb   $0x0,0x21(%esi)
47776b:	74 3a                	je     0x4777a7
47776d:	8d 46 04             	lea    0x4(%esi),%eax
477770:	50                   	push   %eax
477771:	e8 6a 04 f9 ff       	call   0x407be0
477776:	85 c0                	test   %eax,%eax
477778:	75 2d                	jne    0x4777a7
47777a:	8b 46 1c             	mov    0x1c(%esi),%eax
47777d:	8b 15 9c 03 47 00    	mov    0x47039c,%edx
477783:	e8 7c c4 f8 ff       	call   0x403c04
477788:	84 c0                	test   %al,%al
47778a:	75 1b                	jne    0x4777a7
47778c:	80 4e 2c 01          	orb    $0x1,0x2c(%esi)
477790:	6a 00                	push   $0x0
477792:	8d 46 04             	lea    0x4(%esi),%eax
477795:	50                   	push   %eax
477796:	8b 83 c8 00 00 00    	mov    0xc8(%ebx),%eax
47779c:	e8 b3 77 fd ff       	call   0x44ef54