47829e:	55                   	push   %ebp
47829f:	8b ec                	mov    %esp,%ebp
4782a1:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
4782a5:	74 2c                	je     0x4782d3
4782a7:	56                   	push   %esi
4782a8:	8b 75 0c             	mov    0xc(%ebp),%esi
4782ab:	57                   	push   %edi
4782ac:	8d 7e 0c             	lea    0xc(%esi),%edi
4782af:	8b 07                	mov    (%edi),%eax
4782b1:	c1 e8 09             	shr    $0x9,%eax
4782b4:	a8 01                	test   $0x1,%al
4782b6:	74 19                	je     0x4782d1
4782b8:	56                   	push   %esi
4782b9:	e8 2e db ff ff       	call   0x475dec
4782be:	59                   	pop    %ecx
4782bf:	b8 7f fd ff ff       	mov    $0xfffffd7f,%eax
4782c4:	f0 21 07             	lock and %eax,(%edi)
4782c7:	33 c0                	xor    %eax,%eax
4782c9:	89 46 18             	mov    %eax,0x18(%esi)
4782cc:	89 46 04             	mov    %eax,0x4(%esi)
4782cf:	89 06                	mov    %eax,(%esi)
4782d1:	5f                   	pop    %edi
4782d2:	5e                   	pop    %esi
4782d3:	5d                   	pop    %ebp
4782d4:	c3                   	ret
4782d5:	6a 0c                	push   $0xc
4782d7:	68 a0 4e 4b 00       	push   $0x4b4ea0
4782dc:	e8 7f 86 fc ff       	call   0x440960
4782e1:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
4782e5:	8b 45 08             	mov    0x8(%ebp),%eax
4782e8:	ff 30                	push   (%eax)
4782ea:	e8 56 70 00 00       	call   0x47f345
4782ef:	59                   	pop    %ecx
4782f0:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4782f4:	8b 45 0c             	mov    0xc(%ebp),%eax
4782f7:	8b 00                	mov    (%eax),%eax
4782f9:	8b 30                	mov    (%eax),%esi
4782fb:	8b d6                	mov    %esi,%edx
4782fd:	c1 fa 06             	sar    $0x6,%edx
478300:	8b c6                	mov    %esi,%eax
478302:	83 e0 3f             	and    $0x3f,%eax
478305:	6b c8 30             	imul   $0x30,%eax,%ecx
478308:	8b 04 95 00 c0 4b 00 	mov    0x4bc000(,%edx,4),%eax
47830f:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
478314:	74 0b                	je     0x478321
478316:	56                   	push   %esi
478317:	e8 cb 01 00 00       	call   0x4784e7
47831c:	59                   	pop    %ecx
47831d:	8b f0                	mov    %eax,%esi
47831f:	eb 0e                	jmp    0x47832f
478321:	e8 09 4b fd ff       	call   0x44ce2f
478326:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
47832c:	83 ce ff             	or     $0xffffffff,%esi
47832f:	89 75 e4             	mov    %esi,-0x1c(%ebp)
478332:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
478339:	e8 0d 00 00 00       	call   0x47834b
47833e:	8b c6                	mov    %esi,%eax
478340:	e8 61 86 fc ff       	call   0x4409a6
478345:	c2 0c 00             	ret    $0xc
478348:	8b 75 e4             	mov    -0x1c(%ebp),%esi
47834b:	8b 45 10             	mov    0x10(%ebp),%eax
47834e:	ff 30                	push   (%eax)
478350:	e8 a7 70 00 00       	call   0x47f3fc
478355:	59                   	pop    %ecx
478356:	c3                   	ret
478357:	8b ff                	mov    %edi,%edi
478359:	55                   	push   %ebp
47835a:	8b ec                	mov    %esp,%ebp
47835c:	83 ec 0c             	sub    $0xc,%esp
47835f:	8b 45 08             	mov    0x8(%ebp),%eax
478362:	8d 4d ff             	lea    -0x1(%ebp),%ecx
478365:	89 45 f8             	mov    %eax,-0x8(%ebp)
478368:	89 45 f4             	mov    %eax,-0xc(%ebp)
47836b:	8d 45 f8             	lea    -0x8(%ebp),%eax
47836e:	50                   	push   %eax
47836f:	ff 75 0c             	push   0xc(%ebp)
478372:	8d 45 f4             	lea    -0xc(%ebp),%eax
478375:	50                   	push   %eax
478376:	e8 5a ff ff ff       	call   0x4782d5
47837b:	8b e5                	mov    %ebp,%esp
47837d:	5d                   	pop    %ebp
47837e:	c3                   	ret
47837f:	8b ff                	mov    %edi,%edi
478381:	55                   	push   %ebp
478382:	8b ec                	mov    %esp,%ebp
478384:	8b 45 08             	mov    0x8(%ebp),%eax
478387:	8b 00                	mov    (%eax),%eax
478389:	89 01                	mov    %eax,(%ecx)
47838b:	8b c1                	mov    %ecx,%eax
47838d:	5d                   	pop    %ebp
47838e:	c2 04 00             	ret    $0x4
478391:	8b ff                	mov    %edi,%edi
478393:	55                   	push   %ebp
478394:	8b ec                	mov    %esp,%ebp
478396:	8b 45 08             	mov    0x8(%ebp),%eax
478399:	8b 00                	mov    (%eax),%eax
47839b:	89 01                	mov    %eax,(%ecx)
47839d:	8b c1                	mov    %ecx,%eax
47839f:	5d                   	pop    %ebp
4783a0:	c2 04 00             	ret    $0x4
4783a3:	8b ff                	mov    %edi,%edi
4783a5:	55                   	push   %ebp
4783a6:	8b ec                	mov    %esp,%ebp
4783a8:	8b 45 08             	mov    0x8(%ebp),%eax
4783ab:	89 01                	mov    %eax,(%ecx)
4783ad:	8b c1                	mov    %ecx,%eax
4783af:	5d                   	pop    %ebp
4783b0:	c2 04 00             	ret    $0x4
4783b3:	ff 31                	push   (%ecx)
4783b5:	e8 8b 6f 00 00       	call   0x47f345
4783ba:	59                   	pop    %ecx
4783bb:	c3                   	ret
4783bc:	ff 31                	push   (%ecx)
4783be:	e8 39 70 00 00       	call   0x47f3fc
4783c3:	59                   	pop    %ecx
4783c4:	c3                   	ret
4783c5:	8b 01                	mov    (%ecx),%eax
4783c7:	56                   	push   %esi
4783c8:	8b 30                	mov    (%eax),%esi
4783ca:	8b c6                	mov    %esi,%eax
4783cc:	83 e0 3f             	and    $0x3f,%eax
4783cf:	8b d6                	mov    %esi,%edx
4783d1:	c1 fa 06             	sar    $0x6,%edx
4783d4:	6b c8 30             	imul   $0x30,%eax,%ecx
4783d7:	8b 04 95 00 c0 4b 00 	mov    0x4bc000(,%edx,4),%eax
4783de:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
4783e3:	74 09                	je     0x4783ee
4783e5:	56                   	push   %esi
4783e6:	e8 fc 00 00 00       	call   0x4784e7
4783eb:	59                   	pop    %ecx
4783ec:	5e                   	pop    %esi
4783ed:	c3                   	ret
4783ee:	e8 3c 4a fd ff       	call   0x44ce2f
4783f3:	5e                   	pop    %esi
4783f4:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4783fa:	83 c8 ff             	or     $0xffffffff,%eax
4783fd:	c3                   	ret
4783fe:	8b ff                	mov    %edi,%edi
478400:	55                   	push   %ebp
478401:	8b ec                	mov    %esp,%ebp
478403:	ff 75 08             	push   0x8(%ebp)
478406:	e8 b7 71 00 00       	call   0x47f5c2
47840b:	59                   	pop    %ecx
47840c:	83 f8 ff             	cmp    $0xffffffff,%eax
47840f:	75 04                	jne    0x478415
478411:	33 c0                	xor    %eax,%eax
478413:	5d                   	pop    %ebp
478414:	c3                   	ret
478415:	83 7d 08 01          	cmpl   $0x1,0x8(%ebp)
478419:	a1 00 c0 4b 00       	mov    0x4bc000,%eax
47841e:	75 09                	jne    0x478429
478420:	f6 80 88 00 00 00 01 	testb  $0x1,0x88(%eax)
478427:	75 0c                	jne    0x478435
478429:	83 7d 08 02          	cmpl   $0x2,0x8(%ebp)
47842d:	75 1e                	jne    0x47844d
47842f:	f6 40 58 01          	testb  $0x1,0x58(%eax)
478433:	74 18                	je     0x47844d
478435:	56                   	push   %esi
478436:	6a 02                	push   $0x2
478438:	e8 85 71 00 00       	call   0x47f5c2
47843d:	6a 01                	push   $0x1
47843f:	8b f0                	mov    %eax,%esi
478441:	e8 7c 71 00 00       	call   0x47f5c2
478446:	59                   	pop    %ecx
478447:	59                   	pop    %ecx
478448:	3b c6                	cmp    %esi,%eax
47844a:	5e                   	pop    %esi
47844b:	74 c4                	je     0x478411
47844d:	ff 75 08             	push   0x8(%ebp)
478450:	e8 6d 71 00 00       	call   0x47f5c2
478455:	59                   	pop    %ecx
478456:	50                   	push   %eax
478457:	ff 15 20 41 49 00    	call   *0x494120
47845d:	85 c0                	test   %eax,%eax
47845f:	75 b0                	jne    0x478411
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