478461:	5d                   	pop    %ebp
478462:	ff 25 24 41 49 00    	jmp    *0x494124
478468:	8b ff                	mov    %edi,%edi
47846a:	55                   	push   %ebp
47846b:	8b ec                	mov    %esp,%ebp
47846d:	51                   	push   %ecx
47846e:	56                   	push   %esi
47846f:	8b 75 08             	mov    0x8(%ebp),%esi
478472:	83 fe fe             	cmp    $0xfffffffe,%esi
478475:	75 15                	jne    0x47848c
478477:	e8 a0 49 fd ff       	call   0x44ce1c
47847c:	83 20 00             	andl   $0x0,(%eax)
47847f:	e8 ab 49 fd ff       	call   0x44ce2f
478484:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
47848a:	eb 53                	jmp    0x4784df
47848c:	85 f6                	test   %esi,%esi
47848e:	78 37                	js     0x4784c7
478490:	3b 35 00 c2 4b 00    	cmp    0x4bc200,%esi
478496:	73 2f                	jae    0x4784c7
478498:	8b c6                	mov    %esi,%eax
47849a:	8b d6                	mov    %esi,%edx
47849c:	83 e0 3f             	and    $0x3f,%eax
47849f:	c1 fa 06             	sar    $0x6,%edx
4784a2:	6b c8 30             	imul   $0x30,%eax,%ecx
4784a5:	8b 04 95 00 c0 4b 00 	mov    0x4bc000(,%edx,4),%eax
4784ac:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
4784b1:	74 14                	je     0x4784c7
4784b3:	8d 45 08             	lea    0x8(%ebp),%eax
4784b6:	89 45 fc             	mov    %eax,-0x4(%ebp)
4784b9:	8d 45 fc             	lea    -0x4(%ebp),%eax
4784bc:	50                   	push   %eax
4784bd:	56                   	push   %esi
4784be:	e8 94 fe ff ff       	call   0x478357
4784c3:	59                   	pop    %ecx
4784c4:	59                   	pop    %ecx
4784c5:	eb 1b                	jmp    0x4784e2
4784c7:	e8 50 49 fd ff       	call   0x44ce1c
4784cc:	83 20 00             	andl   $0x0,(%eax)
4784cf:	e8 5b 49 fd ff       	call   0x44ce2f
4784d4:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4784da:	e8 f7 47 fd ff       	call   0x44ccd6
4784df:	83 c8 ff             	or     $0xffffffff,%eax
4784e2:	5e                   	pop    %esi
4784e3:	8b e5                	mov    %ebp,%esp
4784e5:	5d                   	pop    %ebp
4784e6:	c3                   	ret
4784e7:	8b ff                	mov    %edi,%edi
4784e9:	55                   	push   %ebp
4784ea:	8b ec                	mov    %esp,%ebp
4784ec:	56                   	push   %esi
4784ed:	57                   	push   %edi
4784ee:	8b 7d 08             	mov    0x8(%ebp),%edi
4784f1:	57                   	push   %edi
4784f2:	e8 cb 70 00 00       	call   0x47f5c2
4784f7:	59                   	pop    %ecx
4784f8:	83 f8 ff             	cmp    $0xffffffff,%eax
4784fb:	75 04                	jne    0x478501
4784fd:	33 f6                	xor    %esi,%esi
4784ff:	eb 4e                	jmp    0x47854f
478501:	a1 00 c0 4b 00       	mov    0x4bc000,%eax
478506:	83 ff 01             	cmp    $0x1,%edi
478509:	75 09                	jne    0x478514
47850b:	f6 80 88 00 00 00 01 	testb  $0x1,0x88(%eax)
478512:	75 0b                	jne    0x47851f
478514:	83 ff 02             	cmp    $0x2,%edi
478517:	75 1c                	jne    0x478535
478519:	f6 40 58 01          	testb  $0x1,0x58(%eax)
47851d:	74 16                	je     0x478535
47851f:	6a 02                	push   $0x2
478521:	e8 9c 70 00 00       	call   0x47f5c2
478526:	6a 01                	push   $0x1
478528:	8b f0                	mov    %eax,%esi
47852a:	e8 93 70 00 00       	call   0x47f5c2
47852f:	59                   	pop    %ecx
478530:	59                   	pop    %ecx
478531:	3b c6                	cmp    %esi,%eax
478533:	74 c8                	je     0x4784fd
478535:	57                   	push   %edi
478536:	e8 87 70 00 00       	call   0x47f5c2
47853b:	59                   	pop    %ecx
47853c:	50                   	push   %eax
47853d:	ff 15 20 41 49 00    	call   *0x494120
478543:	85 c0                	test   %eax,%eax
478545:	75 b6                	jne    0x4784fd
478547:	ff 15 24 41 49 00    	call   *0x494124
47854d:	8b f0                	mov    %eax,%esi
47854f:	57                   	push   %edi
478550:	e8 dc 6f 00 00       	call   0x47f531
478555:	59                   	pop    %ecx
478556:	8b cf                	mov    %edi,%ecx
478558:	83 e7 3f             	and    $0x3f,%edi
47855b:	c1 f9 06             	sar    $0x6,%ecx
47855e:	6b d7 30             	imul   $0x30,%edi,%edx
478561:	8b 0c 8d 00 c0 4b 00 	mov    0x4bc000(,%ecx,4),%ecx
478568:	c6 44 11 28 00       	movb   $0x0,0x28(%ecx,%edx,1)
47856d:	85 f6                	test   %esi,%esi
47856f:	74 0c                	je     0x47857d
478571:	56                   	push   %esi
478572:	e8 82 48 fd ff       	call   0x44cdf9
478577:	59                   	pop    %ecx
478578:	83 c8 ff             	or     $0xffffffff,%eax
47857b:	eb 02                	jmp    0x47857f
47857d:	33 c0                	xor    %eax,%eax
47857f:	5f                   	pop    %edi
478580:	5e                   	pop    %esi
478581:	5d                   	pop    %ebp
478582:	c3                   	ret
478583:	8b ff                	mov    %edi,%edi
478585:	55                   	push   %ebp
478586:	8b ec                	mov    %esp,%ebp
478588:	57                   	push   %edi
478589:	ff 75 0c             	push   0xc(%ebp)
47858c:	e8 e5 fb ff ff       	call   0x478176
478591:	59                   	pop    %ecx
478592:	8b 4d 0c             	mov    0xc(%ebp),%ecx
478595:	8b f8                	mov    %eax,%edi
478597:	8b 49 0c             	mov    0xc(%ecx),%ecx
47859a:	f6 c1 06             	test   $0x6,%cl
47859d:	75 1f                	jne    0x4785be
47859f:	e8 8b 48 fd ff       	call   0x44ce2f
4785a4:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4785aa:	8b 45 0c             	mov    0xc(%ebp),%eax
4785ad:	6a 10                	push   $0x10
4785af:	59                   	pop    %ecx
4785b0:	83 c0 0c             	add    $0xc,%eax
4785b3:	f0 09 08             	lock or %ecx,(%eax)
4785b6:	83 c8 ff             	or     $0xffffffff,%eax
4785b9:	e9 d3 00 00 00       	jmp    0x478691
4785be:	8b 45 0c             	mov    0xc(%ebp),%eax
4785c1:	8b 40 0c             	mov    0xc(%eax),%eax
4785c4:	c1 e8 0c             	shr    $0xc,%eax
4785c7:	a8 01                	test   $0x1,%al
4785c9:	74 0d                	je     0x4785d8
4785cb:	e8 5f 48 fd ff       	call   0x44ce2f
4785d0:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
4785d6:	eb d2                	jmp    0x4785aa
4785d8:	8b 45 0c             	mov    0xc(%ebp),%eax
4785db:	8b 40 0c             	mov    0xc(%eax),%eax
4785de:	a8 01                	test   $0x1,%al
4785e0:	74 28                	je     0x47860a
4785e2:	8b 45 0c             	mov    0xc(%ebp),%eax
4785e5:	83 60 08 00          	andl   $0x0,0x8(%eax)
4785e9:	8b 45 0c             	mov    0xc(%ebp),%eax
4785ec:	8b 40 0c             	mov    0xc(%eax),%eax
4785ef:	c1 e8 03             	shr    $0x3,%eax
4785f2:	a8 01                	test   $0x1,%al
4785f4:	8b 45 0c             	mov    0xc(%ebp),%eax
4785f7:	74 b4                	je     0x4785ad
4785f9:	8b 48 04             	mov    0x4(%eax),%ecx
4785fc:	89 08                	mov    %ecx,(%eax)
4785fe:	8b 45 0c             	mov    0xc(%ebp),%eax
478601:	6a fe                	push   $0xfffffffe
478603:	59                   	pop    %ecx
478604:	83 c0 0c             	add    $0xc,%eax
478607:	f0 21 08             	lock and %ecx,(%eax)
47860a:	8b 45 0c             	mov    0xc(%ebp),%eax
47860d:	53                   	push   %ebx
47860e:	6a 02                	push   $0x2
478610:	5b                   	pop    %ebx
478611:	83 c0 0c             	add    $0xc,%eax
478614:	f0 09 18             	lock or %ebx,(%eax)
478617:	8b 45 0c             	mov    0xc(%ebp),%eax
47861a:	6a f7                	push   $0xfffffff7
47861c:	59                   	pop    %ecx
47861d:	83 c0 0c             	add    $0xc,%eax
478620:	f0 21 08             	lock and %ecx,(%eax)
478623:	8b 45 0c             	mov    0xc(%ebp),%eax
478626:	83 60 08 00          	andl   $0x0,0x8(%eax)
47862a:	8b 45 0c             	mov    0xc(%ebp),%eax
47862d:	8b 40 0c             	mov    0xc(%eax),%eax
478630:	a9 c0 04 00 00       	test   $0x4c0,%eax
478635:	75 33                	jne    0x47866a
478637:	56                   	push   %esi
478638:	8b 75 0c             	mov    0xc(%ebp),%esi
47863b:	6a 01                	push   $0x1
47863d:	e8 c5 ba fd ff       	call   0x454107
478642:	59                   	pop    %ecx
478643:	3b f0                	cmp    %eax,%esi
478645:	74 0e                	je     0x478655
478647:	8b 75 0c             	mov    0xc(%ebp),%esi
47864a:	53                   	push   %ebx
47864b:	e8 b7 ba fd ff       	call   0x454107
478650:	59                   	pop    %ecx
478651:	3b f0                	cmp    %eax,%esi
478653:	75 0b                	jne    0x478660
478655:	57                   	push   %edi
478656:	e8 06 e5 00 00       	call   0x486b61
47865b:	59                   	pop    %ecx
47865c:	85 c0                	test   %eax,%eax
47865e:	75 09                	jne    0x478669
478660:	ff 75 0c             	push   0xc(%ebp)
478663:	e8 4f e5 00 00       	call   0x486bb7
478668:	59                   	pop    %ecx
478669:	5e                   	pop    %esi
47866a:	ff 75 0c             	push   0xc(%ebp)
47866d:	8b 5d 08             	mov    0x8(%ebp),%ebx
478670:	53                   	push   %ebx
478671:	e8 33 01 00 00       	call   0x4787a9
478676:	59                   	pop    %ecx
478677:	59                   	pop    %ecx
478678:	84 c0                	test   %al,%al
47867a:	75 11                	jne    0x47868d
47867c:	8b 45 0c             	mov    0xc(%ebp),%eax
47867f:	6a 10                	push   $0x10
478681:	59                   	pop    %ecx
478682:	83 c0 0c             	add    $0xc,%eax
478685:	f0 09 08             	lock or %ecx,(%eax)
478688:	83 c8 ff             	or     $0xffffffff,%eax
47868b:	eb 03                	jmp    0x478690
47868d:	0f b6 c3             	movzbl %bl,%eax
478690:	5b                   	pop    %ebx
478691:	5f                   	pop    %edi
478692:	5d                   	pop    %ebp
478693:	c3                   	ret
478694:	8b ff                	mov    %edi,%edi
478696:	55                   	push   %ebp
478697:	8b ec                	mov    %esp,%ebp
478699:	57                   	push   %edi
47869a:	ff 75 0c             	push   0xc(%ebp)
47869d:	e8 d4 fa ff ff       	call   0x478176
4786a2:	59                   	pop    %ecx
4786a3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4786a6:	8b f8                	mov    %eax,%edi
4786a8:	8b 49 0c             	mov    0xc(%ecx),%ecx
4786ab:	f6 c1 06             	test   $0x6,%cl
4786ae:	75 21                	jne    0x4786d1
4786b0:	e8 7a 47 fd ff       	call   0x44ce2f
4786b5:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4786bb:	8b 45 0c             	mov    0xc(%ebp),%eax
4786be:	6a 10                	push   $0x10
4786c0:	59                   	pop    %ecx
4786c1:	83 c0 0c             	add    $0xc,%eax
4786c4:	f0 09 08             	lock or %ecx,(%eax)
4786c7:	b8 ff ff 00 00       	mov    $0xffff,%eax
4786cc:	e9 d5 00 00 00       	jmp    0x4787a6
4786d1:	8b 45 0c             	mov    0xc(%ebp),%eax
4786d4:	8b 40 0c             	mov    0xc(%eax),%eax
4786d7:	c1 e8 0c             	shr    $0xc,%eax
4786da:	a8 01                	test   $0x1,%al
4786dc:	74 0d                	je     0x4786eb
4786de:	e8 4c 47 fd ff       	call   0x44ce2f
4786e3:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
4786e9:	eb d0                	jmp    0x4786bb
4786eb:	8b 45 0c             	mov    0xc(%ebp),%eax
4786ee:	8b 40 0c             	mov    0xc(%eax),%eax
4786f1:	a8 01                	test   $0x1,%al
4786f3:	74 28                	je     0x47871d
4786f5:	8b 45 0c             	mov    0xc(%ebp),%eax
4786f8:	83 60 08 00          	andl   $0x0,0x8(%eax)
4786fc:	8b 45 0c             	mov    0xc(%ebp),%eax
4786ff:	8b 40 0c             	mov    0xc(%eax),%eax
478702:	c1 e8 03             	shr    $0x3,%eax
478705:	a8 01                	test   $0x1,%al
478707:	8b 45 0c             	mov    0xc(%ebp),%eax
47870a:	74 b2                	je     0x4786be
47870c:	8b 48 04             	mov    0x4(%eax),%ecx
47870f:	89 08                	mov    %ecx,(%eax)
478711:	8b 45 0c             	mov    0xc(%ebp),%eax
478714:	6a fe                	push   $0xfffffffe
478716:	59                   	pop    %ecx
478717:	83 c0 0c             	add    $0xc,%eax
47871a:	f0 21 08             	lock and %ecx,(%eax)
47871d:	8b 45 0c             	mov    0xc(%ebp),%eax
478720:	53                   	push   %ebx
478721:	56                   	push   %esi
478722:	6a 02                	push   $0x2
478724:	5b                   	pop    %ebx
478725:	83 c0 0c             	add    $0xc,%eax
478728:	f0 09 18             	lock or %ebx,(%eax)
47872b:	8b 45 0c             	mov    0xc(%ebp),%eax
47872e:	6a f7                	push   $0xfffffff7
478730:	59                   	pop    %ecx
478731:	83 c0 0c             	add    $0xc,%eax
478734:	f0 21 08             	lock and %ecx,(%eax)
478737:	8b 45 0c             	mov    0xc(%ebp),%eax
47873a:	83 60 08 00          	andl   $0x0,0x8(%eax)
47873e:	8b 45 0c             	mov    0xc(%ebp),%eax
478741:	8b 40 0c             	mov    0xc(%eax),%eax
478744:	a9 c0 04 00 00       	test   $0x4c0,%eax
478749:	75 31                	jne    0x47877c
47874b:	8b 75 0c             	mov    0xc(%ebp),%esi
47874e:	6a 01                	push   $0x1
478750:	e8 b2 b9 fd ff       	call   0x454107
478755:	59                   	pop    %ecx
478756:	3b f0                	cmp    %eax,%esi
478758:	74 0e                	je     0x478768
47875a:	8b 75 0c             	mov    0xc(%ebp),%esi
47875d:	53                   	push   %ebx
47875e:	e8 a4 b9 fd ff       	call   0x454107
478763:	59                   	pop    %ecx
478764:	3b f0                	cmp    %eax,%esi
478766:	75 0b                	jne    0x478773
478768:	57                   	push   %edi
478769:	e8 f3 e3 00 00       	call   0x486b61
47876e:	59                   	pop    %ecx
47876f:	85 c0                	test   %eax,%eax
478771:	75 09                	jne    0x47877c
478773:	ff 75 0c             	push   0xc(%ebp)
478776:	e8 3c e4 00 00       	call   0x486bb7
47877b:	59                   	pop    %ecx
47877c:	ff 75 0c             	push   0xc(%ebp)
47877f:	8b 75 08             	mov    0x8(%ebp),%esi
478782:	56                   	push   %esi
478783:	e8 ed 00 00 00       	call   0x478875
478788:	59                   	pop    %ecx
478789:	59                   	pop    %ecx
47878a:	84 c0                	test   %al,%al
47878c:	75 13                	jne    0x4787a1
47878e:	8b 45 0c             	mov    0xc(%ebp),%eax
478791:	6a 10                	push   $0x10
478793:	59                   	pop    %ecx
478794:	83 c0 0c             	add    $0xc,%eax
478797:	f0 09 08             	lock or %ecx,(%eax)
47879a:	b8 ff ff 00 00       	mov    $0xffff,%eax
47879f:	eb 03                	jmp    0x4787a4
4787a1:	0f b7 c6             	movzwl %si,%eax
4787a4:	5e                   	pop    %esi
4787a5:	5b                   	pop    %ebx
4787a6:	5f                   	pop    %edi
4787a7:	5d                   	pop    %ebp
4787a8:	c3                   	ret
4787a9:	8b ff                	mov    %edi,%edi
4787ab:	55                   	push   %ebp
4787ac:	8b ec                	mov    %esp,%ebp
4787ae:	56                   	push   %esi
4787af:	57                   	push   %edi
4787b0:	ff 75 0c             	push   0xc(%ebp)
4787b3:	e8 be f9 ff ff       	call   0x478176
4787b8:	59                   	pop    %ecx
4787b9:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4787bc:	8b d0                	mov    %eax,%edx
4787be:	8b 49 0c             	mov    0xc(%ecx),%ecx
4787c1:	f6 c1 c0             	test   $0xc0,%cl
4787c4:	0f 84 92 00 00 00    	je     0x47885c
4787ca:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4787cd:	33 ff                	xor    %edi,%edi
4787cf:	8b 41 04             	mov    0x4(%ecx),%eax
4787d2:	8b 31                	mov    (%ecx),%esi
4787d4:	2b f0                	sub    %eax,%esi
4787d6:	40                   	inc    %eax
4787d7:	89 01                	mov    %eax,(%ecx)
4787d9:	8b 45 0c             	mov    0xc(%ebp),%eax
4787dc:	8b 48 18             	mov    0x18(%eax),%ecx
4787df:	49                   	dec    %ecx
4787e0:	89 48 08             	mov    %ecx,0x8(%eax)
4787e3:	85 f6                	test   %esi,%esi
4787e5:	7e 26                	jle    0x47880d
4787e7:	8b 45 0c             	mov    0xc(%ebp),%eax
4787ea:	56                   	push   %esi
4787eb:	ff 70 04             	push   0x4(%eax)