4791bd:	49                   	dec    %ecx
4791be:	89 45 f8             	mov    %eax,-0x8(%ebp)
4791c1:	8b 45 f0             	mov    -0x10(%ebp),%eax
4791c4:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4791c7:	8b 04 85 00 c0 4b 00 	mov    0x4bc000(,%eax,4),%eax
4791ce:	c6 44 02 2b 0a       	movb   $0xa,0x2b(%edx,%eax,1)
4791d3:	8a 45 ff             	mov    -0x1(%ebp),%al
4791d6:	3a 45 ec             	cmp    -0x14(%ebp),%al
4791d9:	75 3e                	jne    0x479219
4791db:	8b 45 f0             	mov    -0x10(%ebp),%eax
4791de:	8b 04 85 00 c0 4b 00 	mov    0x4bc000(,%eax,4),%eax
4791e5:	8a 44 02 2c          	mov    0x2c(%edx,%eax,1),%al
4791e9:	88 45 fe             	mov    %al,-0x2(%ebp)
4791ec:	3c 0a                	cmp    $0xa,%al
4791ee:	74 29                	je     0x479219
4791f0:	85 c9                	test   %ecx,%ecx
4791f2:	74 25                	je     0x479219
4791f4:	8b 45 f8             	mov    -0x8(%ebp),%eax
4791f7:	8a 5d fe             	mov    -0x2(%ebp),%bl
4791fa:	6a 03                	push   $0x3
4791fc:	5f                   	pop    %edi
4791fd:	88 18                	mov    %bl,(%eax)
4791ff:	40                   	inc    %eax
479200:	8b 5d 08             	mov    0x8(%ebp),%ebx
479203:	49                   	dec    %ecx
479204:	89 45 f8             	mov    %eax,-0x8(%ebp)
479207:	8b 45 f0             	mov    -0x10(%ebp),%eax
47920a:	89 4d f4             	mov    %ecx,-0xc(%ebp)
47920d:	8b 04 85 00 c0 4b 00 	mov    0x4bc000(,%eax,4),%eax
479214:	c6 44 02 2c 0a       	movb   $0xa,0x2c(%edx,%eax,1)
479219:	53                   	push   %ebx
47921a:	e8 42 d9 00 00       	call   0x486b61
47921f:	59                   	pop    %ecx
479220:	85 c0                	test   %eax,%eax
479222:	74 71                	je     0x479295
479224:	8b 45 f0             	mov    -0x10(%ebp),%eax
479227:	8b 4d e8             	mov    -0x18(%ebp),%ecx
47922a:	8b 04 85 00 c0 4b 00 	mov    0x4bc000(,%eax,4),%eax
479231:	f6 44 01 28 80       	testb  $0x80,0x28(%ecx,%eax,1)
479236:	74 5d                	je     0x479295
479238:	8d 45 d8             	lea    -0x28(%ebp),%eax
47923b:	50                   	push   %eax
47923c:	ff 75 e4             	push   -0x1c(%ebp)
47923f:	ff 15 5c 40 49 00    	call   *0x49405c
479245:	85 c0                	test   %eax,%eax
479247:	74 4c                	je     0x479295
479249:	80 7d ff 02          	cmpb   $0x2,-0x1(%ebp)
47924d:	75 4a                	jne    0x479299
47924f:	6a 00                	push   $0x0
479251:	8d 45 e0             	lea    -0x20(%ebp),%eax
479254:	50                   	push   %eax
479255:	8b 45 f4             	mov    -0xc(%ebp),%eax
479258:	d1 e8                	shr    $1,%eax
47925a:	50                   	push   %eax
47925b:	ff 75 f8             	push   -0x8(%ebp)
47925e:	ff 75 e4             	push   -0x1c(%ebp)
479261:	ff 15 58 40 49 00    	call   *0x494058
479267:	85 c0                	test   %eax,%eax
479269:	75 1f                	jne    0x47928a
47926b:	ff 15 24 41 49 00    	call   *0x494124
479271:	50                   	push   %eax
479272:	e8 82 3b fd ff       	call   0x44cdf9
479277:	59                   	pop    %ecx
479278:	83 cf ff             	or     $0xffffffff,%edi
47927b:	56                   	push   %esi
47927c:	e8 b8 90 ff ff       	call   0x472339
479281:	59                   	pop    %ecx
479282:	8b c7                	mov    %edi,%eax
479284:	5e                   	pop    %esi
479285:	e9 d6 00 00 00       	jmp    0x479360
47928a:	8b 45 e0             	mov    -0x20(%ebp),%eax
47928d:	8b 4d 10             	mov    0x10(%ebp),%ecx
479290:	8d 3c 47             	lea    (%edi,%eax,2),%edi
479293:	eb 29                	jmp    0x4792be
479295:	c6 45 ec 00          	movb   $0x0,-0x14(%ebp)
479299:	6a 00                	push   $0x0
47929b:	8d 45 e0             	lea    -0x20(%ebp),%eax
47929e:	50                   	push   %eax
47929f:	8b 45 f4             	mov    -0xc(%ebp),%eax
4792a2:	50                   	push   %eax
4792a3:	ff 75 f8             	push   -0x8(%ebp)
4792a6:	ff 75 e4             	push   -0x1c(%ebp)
4792a9:	ff 15 1c 41 49 00    	call   *0x49411c
4792af:	85 c0                	test   %eax,%eax
4792b1:	74 5a                	je     0x47930d
4792b3:	8b 4d 10             	mov    0x10(%ebp),%ecx
4792b6:	39 4d e0             	cmp    %ecx,-0x20(%ebp)
4792b9:	77 52                	ja     0x47930d
4792bb:	03 7d e0             	add    -0x20(%ebp),%edi
4792be:	8b 45 f0             	mov    -0x10(%ebp),%eax
4792c1:	8b 55 e8             	mov    -0x18(%ebp),%edx
4792c4:	8b 04 85 00 c0 4b 00 	mov    0x4bc000(,%eax,4),%eax
4792cb:	f6 44 02 28 80       	testb  $0x80,0x28(%edx,%eax,1)
4792d0:	74 a9                	je     0x47927b
4792d2:	80 7d ff 02          	cmpb   $0x2,-0x1(%ebp)
4792d6:	74 17                	je     0x4792ef
4792d8:	d1 e9                	shr    $1,%ecx
4792da:	51                   	push   %ecx
4792db:	ff 75 0c             	push   0xc(%ebp)
4792de:	57                   	push   %edi
4792df:	ff 75 f8             	push   -0x8(%ebp)
4792e2:	53                   	push   %ebx
4792e3:	e8 e5 f9 ff ff       	call   0x478ccd
4792e8:	83 c4 14             	add    $0x14,%esp
4792eb:	8b f8                	mov    %eax,%edi
4792ed:	eb 8c                	jmp    0x47927b
4792ef:	d1 ef                	shr    $1,%edi
4792f1:	80 7d ec 00          	cmpb   $0x0,-0x14(%ebp)
4792f5:	57                   	push   %edi
4792f6:	ff 75 dc             	push   -0x24(%ebp)
4792f9:	53                   	push   %ebx
4792fa:	74 0a                	je     0x479306
4792fc:	e8 1c fb ff ff       	call   0x478e1d
479301:	83 c4 0c             	add    $0xc,%esp
479304:	eb e5                	jmp    0x4792eb
479306:	e8 ab f7 ff ff       	call   0x478ab6
47930b:	eb f4                	jmp    0x479301
47930d:	ff 15 24 41 49 00    	call   *0x494124
479313:	6a 05                	push   $0x5
479315:	5f                   	pop    %edi
479316:	3b c7                	cmp    %edi,%eax
479318:	75 17                	jne    0x479331
47931a:	e8 10 3b fd ff       	call   0x44ce2f
47931f:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
479325:	e8 f2 3a fd ff       	call   0x44ce1c
47932a:	89 38                	mov    %edi,(%eax)
47932c:	e9 47 ff ff ff       	jmp    0x479278
479331:	83 f8 6d             	cmp    $0x6d,%eax
479334:	0f 85 37 ff ff ff    	jne    0x479271
47933a:	33 ff                	xor    %edi,%edi
47933c:	e9 3a ff ff ff       	jmp    0x47927b
479341:	33 c0                	xor    %eax,%eax
479343:	eb 1b                	jmp    0x479360
479345:	e8 d2 3a fd ff       	call   0x44ce1c
47934a:	83 20 00             	andl   $0x0,(%eax)
47934d:	e8 dd 3a fd ff       	call   0x44ce2f
479352:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
479358:	e8 79 39 fd ff       	call   0x44ccd6
47935d:	83 c8 ff             	or     $0xffffffff,%eax
479360:	5f                   	pop    %edi
479361:	5b                   	pop    %ebx
479362:	8b e5                	mov    %ebp,%esp
479364:	5d                   	pop    %ebp
479365:	c3                   	ret
479366:	8b ff                	mov    %edi,%edi
479368:	55                   	push   %ebp
479369:	8b ec                	mov    %esp,%ebp
47936b:	8b 45 08             	mov    0x8(%ebp),%eax
47936e:	56                   	push   %esi
47936f:	85 c0                	test   %eax,%eax
479371:	75 18                	jne    0x47938b
479373:	e8 b7 3a fd ff       	call   0x44ce2f
479378:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
47937e:	e8 53 39 fd ff       	call   0x44ccd6
479383:	83 c8 ff             	or     $0xffffffff,%eax
479386:	e9 5b 01 00 00       	jmp    0x4794e6
47938b:	8b 40 0c             	mov    0xc(%eax),%eax
47938e:	53                   	push   %ebx
47938f:	33 db                	xor    %ebx,%ebx
479391:	c1 e8 0d             	shr    $0xd,%eax
479394:	43                   	inc    %ebx
479395:	84 c3                	test   %al,%bl
479397:	0f 84 45 01 00 00    	je     0x4794e2
47939d:	8b 45 08             	mov    0x8(%ebp),%eax
4793a0:	8b 40 0c             	mov    0xc(%eax),%eax
4793a3:	c1 e8 0c             	shr    $0xc,%eax
4793a6:	84 c3                	test   %al,%bl
4793a8:	0f 85 34 01 00 00    	jne    0x4794e2
4793ae:	8b 45 08             	mov    0x8(%ebp),%eax
4793b1:	8b 40 0c             	mov    0xc(%eax),%eax
4793b4:	d1 e8                	shr    $1,%eax
4793b6:	84 c3                	test   %al,%bl
4793b8:	8b 45 08             	mov    0x8(%ebp),%eax
4793bb:	74 0e                	je     0x4793cb
4793bd:	6a 10                	push   $0x10
4793bf:	59                   	pop    %ecx
4793c0:	83 c0 0c             	add    $0xc,%eax
4793c3:	f0 09 08             	lock or %ecx,(%eax)
4793c6:	e9 17 01 00 00       	jmp    0x4794e2
4793cb:	83 c0 0c             	add    $0xc,%eax
4793ce:	f0 09 18             	lock or %ebx,(%eax)
4793d1:	8b 45 08             	mov    0x8(%ebp),%eax
4793d4:	8b 40 0c             	mov    0xc(%eax),%eax
4793d7:	a9 c0 04 00 00       	test   $0x4c0,%eax
4793dc:	75 09                	jne    0x4793e7
4793de:	ff 75 08             	push   0x8(%ebp)
4793e1:	e8 d1 d7 00 00       	call   0x486bb7
4793e6:	59                   	pop    %ecx
4793e7:	8b 45 08             	mov    0x8(%ebp),%eax
4793ea:	8b 48 04             	mov    0x4(%eax),%ecx
4793ed:	89 08                	mov    %ecx,(%eax)
4793ef:	8b 75 08             	mov    0x8(%ebp),%esi
4793f2:	ff 76 18             	push   0x18(%esi)
4793f5:	ff 76 04             	push   0x4(%esi)
4793f8:	56                   	push   %esi
4793f9:	e8 78 ed ff ff       	call   0x478176
4793fe:	59                   	pop    %ecx
4793ff:	50                   	push   %eax
479400:	e8 99 fa ff ff       	call   0x478e9e
479405:	89 46 08             	mov    %eax,0x8(%esi)
479408:	83 c4 0c             	add    $0xc,%esp
47940b:	8b 45 08             	mov    0x8(%ebp),%eax
47940e:	8b 50 08             	mov    0x8(%eax),%edx
479411:	85 d2                	test   %edx,%edx
479413:	0f 84 ae 00 00 00    	je     0x4794c7
479419:	83 fa ff             	cmp    $0xffffffff,%edx
47941c:	0f 84 a5 00 00 00    	je     0x4794c7
479422:	8b 40 0c             	mov    0xc(%eax),%eax
479425:	a8 06                	test   $0x6,%al
479427:	75 5f                	jne    0x479488
479429:	ff 75 08             	push   0x8(%ebp)
47942c:	e8 45 ed ff ff       	call   0x478176
479431:	59                   	pop    %ecx
479432:	83 f8 ff             	cmp    $0xffffffff,%eax
479435:	74 37                	je     0x47946e
479437:	ff 75 08             	push   0x8(%ebp)
47943a:	e8 37 ed ff ff       	call   0x478176
47943f:	59                   	pop    %ecx
479440:	83 f8 fe             	cmp    $0xfffffffe,%eax
479443:	74 29                	je     0x47946e
479445:	8b 75 08             	mov    0x8(%ebp),%esi
479448:	57                   	push   %edi
479449:	56                   	push   %esi
47944a:	e8 27 ed ff ff       	call   0x478176
47944f:	8b f8                	mov    %eax,%edi
479451:	56                   	push   %esi
479452:	c1 ff 06             	sar    $0x6,%edi
479455:	e8 1c ed ff ff       	call   0x478176
47945a:	59                   	pop    %ecx
47945b:	83 e0 3f             	and    $0x3f,%eax
47945e:	59                   	pop    %ecx
47945f:	6b c8 30             	imul   $0x30,%eax,%ecx
479462:	8b 04 bd 00 c0 4b 00 	mov    0x4bc000(,%edi,4),%eax
479469:	5f                   	pop    %edi
47946a:	03 c1                	add    %ecx,%eax
47946c:	eb 05                	jmp    0x479473
47946e:	b8 08 83 4b 00       	mov    $0x4b8308,%eax
479473:	8a 40 28             	mov    0x28(%eax),%al
479476:	24 82                	and    $0x82,%al
479478:	3c 82                	cmp    $0x82,%al
47947a:	75 0c                	jne    0x479488
47947c:	8b 45 08             	mov    0x8(%ebp),%eax
47947f:	6a 20                	push   $0x20
479481:	59                   	pop    %ecx
479482:	83 c0 0c             	add    $0xc,%eax
479485:	f0 09 08             	lock or %ecx,(%eax)
479488:	8b 45 08             	mov    0x8(%ebp),%eax
47948b:	81 78 18 00 02 00 00 	cmpl   $0x200,0x18(%eax)
479492:	75 24                	jne    0x4794b8
479494:	8b 40 0c             	mov    0xc(%eax),%eax
479497:	c1 e8 06             	shr    $0x6,%eax
47949a:	84 c3                	test   %al,%bl
47949c:	74 17                	je     0x4794b5
47949e:	8b 45 08             	mov    0x8(%ebp),%eax
4794a1:	8b 40 0c             	mov    0xc(%eax),%eax
4794a4:	c1 e8 08             	shr    $0x8,%eax
4794a7:	84 c3                	test   %al,%bl
4794a9:	75 0a                	jne    0x4794b5
4794ab:	8b 45 08             	mov    0x8(%ebp),%eax
4794ae:	c7 40 18 00 10 00 00 	movl   $0x1000,0x18(%eax)
4794b5:	8b 45 08             	mov    0x8(%ebp),%eax
4794b8:	ff 48 08             	decl   0x8(%eax)
4794bb:	8b 08                	mov    (%eax),%ecx
4794bd:	8a 11                	mov    (%ecx),%dl
4794bf:	41                   	inc    %ecx
4794c0:	89 08                	mov    %ecx,(%eax)
4794c2:	0f b6 c2             	movzbl %dl,%eax
4794c5:	eb 1e                	jmp    0x4794e5
4794c7:	33 c9                	xor    %ecx,%ecx
4794c9:	85 d2                	test   %edx,%edx
4794cb:	0f 95 c1             	setne  %cl
4794ce:	83 c0 0c             	add    $0xc,%eax
4794d1:	8d 0c cd 08 00 00 00 	lea    0x8(,%ecx,8),%ecx
4794d8:	f0 09 08             	lock or %ecx,(%eax)
4794db:	8b 4d 08             	mov    0x8(%ebp),%ecx
4794de:	83 61 08 00          	andl   $0x0,0x8(%ecx)
4794e2:	83 c8 ff             	or     $0xffffffff,%eax
4794e5:	5b                   	pop    %ebx
4794e6:	5e                   	pop    %esi
4794e7:	5d                   	pop    %ebp
4794e8:	c3                   	ret
4794e9:	8b ff                	mov    %edi,%edi
4794eb:	55                   	push   %ebp
4794ec:	8b ec                	mov    %esp,%ebp
4794ee:	8b 45 08             	mov    0x8(%ebp),%eax
4794f1:	56                   	push   %esi
4794f2:	85 c0                	test   %eax,%eax
4794f4:	75 1a                	jne    0x479510
4794f6:	e8 34 39 fd ff       	call   0x44ce2f
4794fb:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
479501:	e8 d0 37 fd ff       	call   0x44ccd6
479506:	b8 ff ff 00 00       	mov    $0xffff,%eax
47950b:	e9 94 01 00 00       	jmp    0x4796a4
479510:	8b 40 0c             	mov    0xc(%eax),%eax
479513:	53                   	push   %ebx
479514:	33 db                	xor    %ebx,%ebx
479516:	c1 e8 0d             	shr    $0xd,%eax
479519:	43                   	inc    %ebx
47951a:	84 c3                	test   %al,%bl
47951c:	0f 84 7c 01 00 00    	je     0x47969e
479522:	8b 45 08             	mov    0x8(%ebp),%eax
479525:	8b 40 0c             	mov    0xc(%eax),%eax
479528:	c1 e8 0c             	shr    $0xc,%eax
47952b:	84 c3                	test   %al,%bl
47952d:	0f 85 6b 01 00 00    	jne    0x47969e
479533:	8b 45 08             	mov    0x8(%ebp),%eax
479536:	8b 40 0c             	mov    0xc(%eax),%eax
479539:	d1 e8                	shr    $1,%eax
47953b:	84 c3                	test   %al,%bl
47953d:	8b 45 08             	mov    0x8(%ebp),%eax
479540:	74 0e                	je     0x479550
479542:	6a 10                	push   $0x10
479544:	59                   	pop    %ecx
479545:	83 c0 0c             	add    $0xc,%eax
479548:	f0 09 08             	lock or %ecx,(%eax)
47954b:	e9 4e 01 00 00       	jmp    0x47969e
479550:	83 c0 0c             	add    $0xc,%eax
479553:	f0 09 18             	lock or %ebx,(%eax)
479556:	8b 45 08             	mov    0x8(%ebp),%eax
479559:	8b 40 0c             	mov    0xc(%eax),%eax
47955c:	a9 c0 04 00 00       	test   $0x4c0,%eax
479561:	75 09                	jne    0x47956c
479563:	ff 75 08             	push   0x8(%ebp)
479566:	e8 4c d6 00 00       	call   0x486bb7
47956b:	59                   	pop    %ecx
47956c:	8b 45 08             	mov    0x8(%ebp),%eax
47956f:	39 58 08             	cmp    %ebx,0x8(%eax)
479572:	75 06                	jne    0x47957a
479574:	8b 08                	mov    (%eax),%ecx
479576:	8a 39                	mov    (%ecx),%bh
479578:	eb 04                	jmp    0x47957e
47957a:	32 db                	xor    %bl,%bl
47957c:	32 ff                	xor    %bh,%bh
47957e:	8b 48 04             	mov    0x4(%eax),%ecx
479581:	89 08                	mov    %ecx,(%eax)
479583:	8b 75 08             	mov    0x8(%ebp),%esi
479586:	ff 76 18             	push   0x18(%esi)
479589:	ff 76 04             	push   0x4(%esi)
47958c:	56                   	push   %esi
47958d:	e8 e4 eb ff ff       	call   0x478176
479592:	59                   	pop    %ecx
479593:	50                   	push   %eax
479594:	e8 05 f9 ff ff       	call   0x478e9e
479599:	89 46 08             	mov    %eax,0x8(%esi)
47959c:	83 c4 0c             	add    $0xc,%esp
47959f:	8b 45 08             	mov    0x8(%ebp),%eax
4795a2:	8b 50 08             	mov    0x8(%eax),%edx
4795a5:	85 d2                	test   %edx,%edx
4795a7:	0f 84 d6 00 00 00    	je     0x479683
4795ad:	83 fa 01             	cmp    $0x1,%edx