47527e:	83 c8 ff             	or     $0xffffffff,%eax
475281:	5f                   	pop    %edi
475282:	5b                   	pop    %ebx
475283:	5e                   	pop    %esi
475284:	c9                   	leave
475285:	c3                   	ret
475286:	8b ff                	mov    %edi,%edi
475288:	55                   	push   %ebp
475289:	8b ec                	mov    %esp,%ebp
47528b:	81 ec 74 04 00 00    	sub    $0x474,%esp
475291:	a1 14 40 4c 00       	mov    0x4c4014,%eax
475296:	33 c5                	xor    %ebp,%eax
475298:	89 45 fc             	mov    %eax,-0x4(%ebp)
47529b:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
47529f:	8b 45 10             	mov    0x10(%ebp),%eax
4752a2:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
4752a5:	53                   	push   %ebx
4752a6:	56                   	push   %esi
4752a7:	8b 75 14             	mov    0x14(%ebp),%esi
4752aa:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
4752b0:	75 23                	jne    0x4752d5
4752b2:	51                   	push   %ecx
4752b3:	33 db                	xor    %ebx,%ebx
4752b5:	c6 41 1c 01          	movb   $0x1,0x1c(%ecx)
4752b9:	53                   	push   %ebx
4752ba:	53                   	push   %ebx
4752bb:	53                   	push   %ebx
4752bc:	53                   	push   %ebx
4752bd:	53                   	push   %ebx
4752be:	c7 41 18 16 00 00 00 	movl   $0x16,0x18(%ecx)
4752c5:	e8 da 42 00 00       	call   0x4795a4
4752ca:	83 c4 18             	add    $0x18,%esp
4752cd:	83 c8 ff             	or     $0xffffffff,%eax
4752d0:	e9 17 01 00 00       	jmp    0x4753ec
4752d5:	85 f6                	test   %esi,%esi
4752d7:	74 04                	je     0x4752dd
4752d9:	85 c0                	test   %eax,%eax
4752db:	74 d5                	je     0x4752b2
4752dd:	8b 55 08             	mov    0x8(%ebp),%edx
4752e0:	33 c0                	xor    %eax,%eax
4752e2:	57                   	push   %edi
4752e3:	8d bd 90 fb ff ff    	lea    -0x470(%ebp),%edi
4752e9:	33 db                	xor    %ebx,%ebx
4752eb:	ab                   	stos   %eax,%es:(%edi)
4752ec:	ab                   	stos   %eax,%es:(%edi)
4752ed:	ab                   	stos   %eax,%es:(%edi)
4752ee:	ab                   	stos   %eax,%es:(%edi)
4752ef:	8b c2                	mov    %edx,%eax
4752f1:	8b bd a0 fb ff ff    	mov    -0x460(%ebp),%edi
4752f7:	83 e0 02             	and    $0x2,%eax
4752fa:	89 85 8c fb ff ff    	mov    %eax,-0x474(%ebp)
475300:	0b c3                	or     %ebx,%eax
475302:	89 bd 90 fb ff ff    	mov    %edi,-0x470(%ebp)
475308:	89 b5 94 fb ff ff    	mov    %esi,-0x46c(%ebp)
47530e:	89 9d 98 fb ff ff    	mov    %ebx,-0x468(%ebp)
475314:	75 0a                	jne    0x475320
475316:	88 9d 9c fb ff ff    	mov    %bl,-0x464(%ebp)
47531c:	85 ff                	test   %edi,%edi
47531e:	75 07                	jne    0x475327
475320:	c6 85 9c fb ff ff 01 	movb   $0x1,-0x464(%ebp)
475327:	ff 75 20             	push   0x20(%ebp)
47532a:	8d 85 90 fb ff ff    	lea    -0x470(%ebp),%eax
475330:	51                   	push   %ecx
475331:	ff 75 18             	push   0x18(%ebp)
475334:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
47533a:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
475340:	ff 75 0c             	push   0xc(%ebp)
475343:	8d 85 a0 fb ff ff    	lea    -0x460(%ebp),%eax
475349:	52                   	push   %edx
47534a:	50                   	push   %eax
47534b:	e8 bc 1e 00 00       	call   0x47720c
475350:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
475356:	89 5d f4             	mov    %ebx,-0xc(%ebp)
475359:	e8 70 23 00 00       	call   0x4776ce
47535e:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
475364:	85 ff                	test   %edi,%edi
475366:	74 70                	je     0x4753d8
475368:	8b 4d 08             	mov    0x8(%ebp),%ecx
47536b:	83 e1 01             	and    $0x1,%ecx
47536e:	0b cb                	or     %ebx,%ecx
475370:	74 21                	je     0x475393
475372:	85 f6                	test   %esi,%esi
475374:	75 04                	jne    0x47537a
475376:	85 c0                	test   %eax,%eax
475378:	75 43                	jne    0x4753bd
47537a:	8b 8d 98 fb ff ff    	mov    -0x468(%ebp),%ecx
475380:	3b ce                	cmp    %esi,%ecx
475382:	74 05                	je     0x475389
475384:	88 1c 0f             	mov    %bl,(%edi,%ecx,1)
475387:	eb 4f                	jmp    0x4753d8
475389:	85 c0                	test   %eax,%eax
47538b:	78 4b                	js     0x4753d8
47538d:	3b c6                	cmp    %esi,%eax
47538f:	77 2c                	ja     0x4753bd
475391:	eb 45                	jmp    0x4753d8
475393:	8b 8d 8c fb ff ff    	mov    -0x474(%ebp),%ecx
475399:	0b cb                	or     %ebx,%ecx
47539b:	74 1c                	je     0x4753b9
47539d:	85 f6                	test   %esi,%esi
47539f:	74 37                	je     0x4753d8
4753a1:	85 c0                	test   %eax,%eax
4753a3:	79 04                	jns    0x4753a9
4753a5:	88 1f                	mov    %bl,(%edi)
4753a7:	eb 2f                	jmp    0x4753d8
4753a9:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
4753af:	3b c6                	cmp    %esi,%eax
4753b1:	75 22                	jne    0x4753d5
4753b3:	88 5c 3e ff          	mov    %bl,-0x1(%esi,%edi,1)
4753b7:	eb 1f                	jmp    0x4753d8
4753b9:	85 f6                	test   %esi,%esi
4753bb:	75 05                	jne    0x4753c2
4753bd:	83 ce ff             	or     $0xffffffff,%esi
4753c0:	eb 1c                	jmp    0x4753de
4753c2:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
4753c8:	3b c6                	cmp    %esi,%eax
4753ca:	75 09                	jne    0x4753d5
4753cc:	6a fe                	push   $0xfffffffe
4753ce:	88 5c 3e ff          	mov    %bl,-0x1(%esi,%edi,1)
4753d2:	5e                   	pop    %esi
4753d3:	eb 09                	jmp    0x4753de
4753d5:	88 1c 07             	mov    %bl,(%edi,%eax,1)
4753d8:	8b b5 a0 fb ff ff    	mov    -0x460(%ebp),%esi
4753de:	8d 8d e0 fb ff ff    	lea    -0x420(%ebp),%ecx
4753e4:	e8 93 1f 00 00       	call   0x47737c
4753e9:	8b c6                	mov    %esi,%eax
4753eb:	5f                   	pop    %edi
4753ec:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4753ef:	5e                   	pop    %esi
4753f0:	33 cd                	xor    %ebp,%ecx
4753f2:	5b                   	pop    %ebx
4753f3:	e8 d2 45 ff ff       	call   0x4699ca
4753f8:	c9                   	leave
4753f9:	c3                   	ret
4753fa:	8b ff                	mov    %edi,%edi
4753fc:	55                   	push   %ebp
4753fd:	8b ec                	mov    %esp,%ebp
4753ff:	81 ec 74 04 00 00    	sub    $0x474,%esp
475405:	a1 14 40 4c 00       	mov    0x4c4014,%eax
47540a:	33 c5                	xor    %ebp,%eax
47540c:	89 45 fc             	mov    %eax,-0x4(%ebp)
47540f:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
475413:	8b 45 10             	mov    0x10(%ebp),%eax
475416:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
475419:	53                   	push   %ebx
47541a:	56                   	push   %esi
47541b:	8b 75 14             	mov    0x14(%ebp),%esi
47541e:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
475424:	75 23                	jne    0x475449
475426:	51                   	push   %ecx
475427:	33 db                	xor    %ebx,%ebx
475429:	c6 41 1c 01          	movb   $0x1,0x1c(%ecx)
47542d:	53                   	push   %ebx
47542e:	53                   	push   %ebx
47542f:	53                   	push   %ebx
475430:	53                   	push   %ebx
475431:	53                   	push   %ebx
475432:	c7 41 18 16 00 00 00 	movl   $0x16,0x18(%ecx)
475439:	e8 66 41 00 00       	call   0x4795a4
47543e:	83 c4 18             	add    $0x18,%esp
475441:	83 c8 ff             	or     $0xffffffff,%eax
475444:	e9 26 01 00 00       	jmp    0x47556f
475449:	85 f6                	test   %esi,%esi
47544b:	74 04                	je     0x475451
47544d:	85 c0                	test   %eax,%eax
47544f:	74 d5                	je     0x475426
475451:	8b 55 08             	mov    0x8(%ebp),%edx
475454:	33 c0                	xor    %eax,%eax
475456:	57                   	push   %edi
475457:	8d bd 90 fb ff ff    	lea    -0x470(%ebp),%edi
47545d:	33 db                	xor    %ebx,%ebx
47545f:	ab                   	stos   %eax,%es:(%edi)
475460:	ab                   	stos   %eax,%es:(%edi)
475461:	ab                   	stos   %eax,%es:(%edi)
475462:	ab                   	stos   %eax,%es:(%edi)
475463:	8b c2                	mov    %edx,%eax
475465:	8b bd a0 fb ff ff    	mov    -0x460(%ebp),%edi
47546b:	83 e0 02             	and    $0x2,%eax
47546e:	89 85 8c fb ff ff    	mov    %eax,-0x474(%ebp)
475474:	0b c3                	or     %ebx,%eax
475476:	89 bd 90 fb ff ff    	mov    %edi,-0x470(%ebp)
47547c:	89 b5 94 fb ff ff    	mov    %esi,-0x46c(%ebp)
475482:	89 9d 98 fb ff ff    	mov    %ebx,-0x468(%ebp)
475488:	75 0a                	jne    0x475494
47548a:	88 9d 9c fb ff ff    	mov    %bl,-0x464(%ebp)
475490:	85 ff                	test   %edi,%edi
475492:	75 07                	jne    0x47549b
475494:	c6 85 9c fb ff ff 01 	movb   $0x1,-0x464(%ebp)
47549b:	ff 75 20             	push   0x20(%ebp)
47549e:	8d 85 90 fb ff ff    	lea    -0x470(%ebp),%eax
4754a4:	51                   	push   %ecx
4754a5:	ff 75 18             	push   0x18(%ebp)
4754a8:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
4754ae:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
4754b4:	ff 75 0c             	push   0xc(%ebp)
4754b7:	8d 85 a0 fb ff ff    	lea    -0x460(%ebp),%eax
4754bd:	52                   	push   %edx
4754be:	50                   	push   %eax
4754bf:	e8 af 1d 00 00       	call   0x477273
4754c4:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
4754ca:	89 5d f4             	mov    %ebx,-0xc(%ebp)
4754cd:	e8 b4 27 00 00       	call   0x477c86
4754d2:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
4754d8:	85 ff                	test   %edi,%edi
4754da:	74 7f                	je     0x47555b
4754dc:	8b 4d 08             	mov    0x8(%ebp),%ecx
4754df:	83 e1 01             	and    $0x1,%ecx
4754e2:	0b cb                	or     %ebx,%ecx
4754e4:	74 24                	je     0x47550a
4754e6:	85 f6                	test   %esi,%esi
4754e8:	75 04                	jne    0x4754ee
4754ea:	85 c0                	test   %eax,%eax
4754ec:	75 4c                	jne    0x47553a
4754ee:	8b 8d 98 fb ff ff    	mov    -0x468(%ebp),%ecx
4754f4:	3b ce                	cmp    %esi,%ecx
4754f6:	74 08                	je     0x475500
4754f8:	33 c0                	xor    %eax,%eax
4754fa:	66 89 04 4f          	mov    %ax,(%edi,%ecx,2)
4754fe:	eb 5b                	jmp    0x47555b
475500:	85 c0                	test   %eax,%eax
475502:	78 57                	js     0x47555b
475504:	3b c6                	cmp    %esi,%eax
475506:	77 32                	ja     0x47553a
475508:	eb 51                	jmp    0x47555b
47550a:	8b 8d 8c fb ff ff    	mov    -0x474(%ebp),%ecx
475510:	0b cb                	or     %ebx,%ecx
475512:	74 22                	je     0x475536
475514:	85 f6                	test   %esi,%esi
475516:	74 43                	je     0x47555b
475518:	85 c0                	test   %eax,%eax
47551a:	79 07                	jns    0x475523
47551c:	33 c0                	xor    %eax,%eax
47551e:	66 89 07             	mov    %ax,(%edi)
475521:	eb 38                	jmp    0x47555b
475523:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
475529:	3b c6                	cmp    %esi,%eax
47552b:	75 28                	jne    0x475555
47552d:	33 c0                	xor    %eax,%eax
47552f:	66 89 44 77 fe       	mov    %ax,-0x2(%edi,%esi,2)
475534:	eb 25                	jmp    0x47555b
475536:	85 f6                	test   %esi,%esi
475538:	75 05                	jne    0x47553f
47553a:	83 ce ff             	or     $0xffffffff,%esi
47553d:	eb 22                	jmp    0x475561
47553f:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
475545:	3b c6                	cmp    %esi,%eax
475547:	75 0c                	jne    0x475555
475549:	33 c0                	xor    %eax,%eax
47554b:	6a fe                	push   $0xfffffffe
47554d:	66 89 44 77 fe       	mov    %ax,-0x2(%edi,%esi,2)
475552:	5e                   	pop    %esi
475553:	eb 0c                	jmp    0x475561
475555:	33 c9                	xor    %ecx,%ecx
475557:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
47555b:	8b b5 a0 fb ff ff    	mov    -0x460(%ebp),%esi
475561:	8d 8d e0 fb ff ff    	lea    -0x420(%ebp),%ecx
475567:	e8 10 1e 00 00       	call   0x47737c
47556c:	8b c6                	mov    %esi,%eax
47556e:	5f                   	pop    %edi
47556f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
475572:	5e                   	pop    %esi
475573:	33 cd                	xor    %ebp,%ecx
475575:	5b                   	pop    %ebx
475576:	e8 4f 44 ff ff       	call   0x4699ca
47557b:	c9                   	leave
47557c:	c3                   	ret
47557d:	8b ff                	mov    %edi,%edi
47557f:	55                   	push   %ebp
475580:	8b ec                	mov    %esp,%ebp
475582:	81 ec 74 04 00 00    	sub    $0x474,%esp
475588:	a1 14 40 4c 00       	mov    0x4c4014,%eax
47558d:	33 c5                	xor    %ebp,%eax
47558f:	89 45 fc             	mov    %eax,-0x4(%ebp)
475592:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
475596:	8b 45 10             	mov    0x10(%ebp),%eax
475599:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
47559c:	53                   	push   %ebx
47559d:	56                   	push   %esi
47559e:	8b 75 14             	mov    0x14(%ebp),%esi
4755a1:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
4755a7:	75 23                	jne    0x4755cc
4755a9:	51                   	push   %ecx
4755aa:	33 db                	xor    %ebx,%ebx
4755ac:	c6 41 1c 01          	movb   $0x1,0x1c(%ecx)
4755b0:	53                   	push   %ebx
4755b1:	53                   	push   %ebx
4755b2:	53                   	push   %ebx
4755b3:	53                   	push   %ebx
4755b4:	53                   	push   %ebx
4755b5:	c7 41 18 16 00 00 00 	movl   $0x16,0x18(%ecx)
4755bc:	e8 e3 3f 00 00       	call   0x4795a4
4755c1:	83 c4 18             	add    $0x18,%esp
4755c4:	83 c8 ff             	or     $0xffffffff,%eax
4755c7:	e9 17 01 00 00       	jmp    0x4756e3
4755cc:	85 f6                	test   %esi,%esi
4755ce:	74 04                	je     0x4755d4
4755d0:	85 c0                	test   %eax,%eax
4755d2:	74 d5                	je     0x4755a9
4755d4:	8b 55 08             	mov    0x8(%ebp),%edx
4755d7:	33 c0                	xor    %eax,%eax
4755d9:	57                   	push   %edi
4755da:	8d bd 90 fb ff ff    	lea    -0x470(%ebp),%edi
4755e0:	33 db                	xor    %ebx,%ebx
4755e2:	ab                   	stos   %eax,%es:(%edi)
4755e3:	ab                   	stos   %eax,%es:(%edi)
4755e4:	ab                   	stos   %eax,%es:(%edi)
4755e5:	ab                   	stos   %eax,%es:(%edi)
4755e6:	8b c2                	mov    %edx,%eax
4755e8:	8b bd a0 fb ff ff    	mov    -0x460(%ebp),%edi
4755ee:	83 e0 02             	and    $0x2,%eax
4755f1:	89 85 8c fb ff ff    	mov    %eax,-0x474(%ebp)
4755f7:	0b c3                	or     %ebx,%eax
4755f9:	89 bd 90 fb ff ff    	mov    %edi,-0x470(%ebp)
4755ff:	89 b5 94 fb ff ff    	mov    %esi,-0x46c(%ebp)
475605:	89 9d 98 fb ff ff    	mov    %ebx,-0x468(%ebp)
47560b:	75 0a                	jne    0x475617
47560d:	88 9d 9c fb ff ff    	mov    %bl,-0x464(%ebp)
475613:	85 ff                	test   %edi,%edi
475615:	75 07                	jne    0x47561e
475617:	c6 85 9c fb ff ff 01 	movb   $0x1,-0x464(%ebp)
47561e:	ff 75 20             	push   0x20(%ebp)
475621:	8d 85 90 fb ff ff    	lea    -0x470(%ebp),%eax
475627:	51                   	push   %ecx
475628:	ff 75 18             	push   0x18(%ebp)
47562b:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
475631:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
475637:	ff 75 0c             	push   0xc(%ebp)
47563a:	8d 85 a0 fb ff ff    	lea    -0x460(%ebp),%eax
475640:	52                   	push   %edx
475641:	50                   	push   %eax
475642:	e8 c5 1b 00 00       	call   0x47720c
475647:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
47564d:	89 5d f4             	mov    %ebx,-0xc(%ebp)
475650:	e8 5d 23 00 00       	call   0x4779b2
475655:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
47565b:	85 ff                	test   %edi,%edi
47565d:	74 70                	je     0x4756cf
47565f:	8b 4d 08             	mov    0x8(%ebp),%ecx
475662:	83 e1 01             	and    $0x1,%ecx
475665:	0b cb                	or     %ebx,%ecx
475667:	74 21                	je     0x47568a
475669:	85 f6                	test   %esi,%esi
47566b:	75 04                	jne    0x475671
47566d:	85 c0                	test   %eax,%eax
47566f:	75 43                	jne    0x4756b4
475671:	8b 8d 98 fb ff ff    	mov    -0x468(%ebp),%ecx
475677:	3b ce                	cmp    %esi,%ecx
475679:	74 05                	je     0x475680
47567b:	88 1c 0f             	mov    %bl,(%edi,%ecx,1)
47567e:	eb 4f                	jmp    0x4756cf
475680:	85 c0                	test   %eax,%eax