47c2f4:	23 d6                	and    %esi,%edx
47c2f6:	0b c2                	or     %edx,%eax
47c2f8:	75 07                	jne    0x47c301
47c2fa:	8a c3                	mov    %bl,%al
47c2fc:	88 5d fe             	mov    %bl,-0x2(%ebp)
47c2ff:	eb 05                	jmp    0x47c306
47c301:	b0 01                	mov    $0x1,%al
47c303:	88 45 fe             	mov    %al,-0x2(%ebp)
47c306:	84 c9                	test   %cl,%cl
47c308:	75 04                	jne    0x47c30e
47c30a:	84 c0                	test   %al,%al
47c30c:	74 35                	je     0x47c343
47c30e:	e8 c1 d6 00 00       	call   0x4899d4
47c313:	85 c0                	test   %eax,%eax
47c315:	74 1b                	je     0x47c332
47c317:	3d 00 01 00 00       	cmp    $0x100,%eax
47c31c:	74 0f                	je     0x47c32d
47c31e:	3d 00 02 00 00       	cmp    $0x200,%eax
47c323:	75 1e                	jne    0x47c343
47c325:	8a 5d 14             	mov    0x14(%ebp),%bl
47c328:	80 f3 01             	xor    $0x1,%bl
47c32b:	eb 16                	jmp    0x47c343
47c32d:	8a 5d 14             	mov    0x14(%ebp),%bl
47c330:	eb 11                	jmp    0x47c343
47c332:	38 5d ff             	cmp    %bl,-0x1(%ebp)
47c335:	74 0c                	je     0x47c343
47c337:	38 5d fe             	cmp    %bl,-0x2(%ebp)
47c33a:	75 05                	jne    0x47c341
47c33c:	38 5d fd             	cmp    %bl,-0x3(%ebp)
47c33f:	74 02                	je     0x47c343
47c341:	b3 01                	mov    $0x1,%bl
47c343:	8b 4d f0             	mov    -0x10(%ebp),%ecx
47c346:	8b c7                	mov    %edi,%eax
47c348:	8b d6                	mov    %esi,%edx
47c34a:	e8 21 97 01 00       	call   0x495a70
47c34f:	8b f8                	mov    %eax,%edi
47c351:	8b f2                	mov    %edx,%esi
47c353:	0f b6 c3             	movzbl %bl,%eax
47c356:	99                   	cltd
47c357:	03 f8                	add    %eax,%edi
47c359:	8b c7                	mov    %edi,%eax
47c35b:	13 f2                	adc    %edx,%esi
47c35d:	0b c6                	or     %esi,%eax
47c35f:	74 29                	je     0x47c38a
47c361:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
47c364:	e8 d2 21 00 00       	call   0x47e53b
47c369:	3b f2                	cmp    %edx,%esi
47c36b:	0f 82 74 01 00 00    	jb     0x47c4e5
47c371:	77 08                	ja     0x47c37b
47c373:	3b f8                	cmp    %eax,%edi
47c375:	0f 86 6a 01 00 00    	jbe    0x47c4e5
47c37b:	8b 5d 10             	mov    0x10(%ebp),%ebx
47c37e:	2b 5d ec             	sub    -0x14(%ebp),%ebx
47c381:	2b 5d f4             	sub    -0xc(%ebp),%ebx
47c384:	4b                   	dec    %ebx
47c385:	e9 5e 01 00 00       	jmp    0x47c4e8
47c38a:	ff 75 1c             	push   0x1c(%ebp)
47c38d:	ff 75 14             	push   0x14(%ebp)
47c390:	e8 25 03 00 00       	call   0x47c6ba
47c395:	59                   	pop    %ecx
47c396:	59                   	pop    %ecx
47c397:	6a 02                	push   $0x2
47c399:	e9 2f 01 00 00       	jmp    0x47c4cd
47c39e:	8b 4d ec             	mov    -0x14(%ebp),%ecx
47c3a1:	e9 32 01 00 00       	jmp    0x47c4d8
47c3a6:	85 d2                	test   %edx,%edx
47c3a8:	0f 89 25 01 00 00    	jns    0x47c4d3
47c3ae:	f7 da                	neg    %edx
47c3b0:	89 55 f4             	mov    %edx,-0xc(%ebp)
47c3b3:	83 fa 40             	cmp    $0x40,%edx
47c3b6:	72 09                	jb     0x47c3c1
47c3b8:	8b fb                	mov    %ebx,%edi
47c3ba:	8b f3                	mov    %ebx,%esi
47c3bc:	e9 c9 00 00 00       	jmp    0x47c48a
47c3c1:	33 c0                	xor    %eax,%eax
47c3c3:	8d 4a ff             	lea    -0x1(%edx),%ecx
47c3c6:	40                   	inc    %eax
47c3c7:	33 d2                	xor    %edx,%edx
47c3c9:	e8 82 96 01 00       	call   0x495a50
47c3ce:	8b 4d f4             	mov    -0xc(%ebp),%ecx
47c3d1:	89 45 dc             	mov    %eax,-0x24(%ebp)
47c3d4:	83 c0 ff             	add    $0xffffffff,%eax
47c3d7:	89 55 e0             	mov    %edx,-0x20(%ebp)
47c3da:	83 d2 ff             	adc    $0xffffffff,%edx
47c3dd:	89 45 e4             	mov    %eax,-0x1c(%ebp)
47c3e0:	33 c0                	xor    %eax,%eax
47c3e2:	89 55 e8             	mov    %edx,-0x18(%ebp)
47c3e5:	40                   	inc    %eax
47c3e6:	33 d2                	xor    %edx,%edx
47c3e8:	e8 63 96 01 00       	call   0x495a50
47c3ed:	23 c7                	and    %edi,%eax
47c3ef:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
47c3f3:	23 d6                	and    %esi,%edx
47c3f5:	0b c2                	or     %edx,%eax
47c3f7:	75 03                	jne    0x47c3fc
47c3f9:	88 5d ff             	mov    %bl,-0x1(%ebp)
47c3fc:	8b 45 dc             	mov    -0x24(%ebp),%eax
47c3ff:	8b 4d e0             	mov    -0x20(%ebp),%ecx
47c402:	23 c7                	and    %edi,%eax
47c404:	23 ce                	and    %esi,%ecx
47c406:	0b c1                	or     %ecx,%eax
47c408:	74 07                	je     0x47c411
47c40a:	b1 01                	mov    $0x1,%cl
47c40c:	88 4d fd             	mov    %cl,-0x3(%ebp)
47c40f:	eb 05                	jmp    0x47c416
47c411:	8a cb                	mov    %bl,%cl
47c413:	88 5d fd             	mov    %bl,-0x3(%ebp)
47c416:	38 5d 18             	cmp    %bl,0x18(%ebp)
47c419:	74 15                	je     0x47c430
47c41b:	8b 45 e4             	mov    -0x1c(%ebp),%eax
47c41e:	8b 55 e8             	mov    -0x18(%ebp),%edx
47c421:	23 c7                	and    %edi,%eax
47c423:	23 d6                	and    %esi,%edx
47c425:	0b c2                	or     %edx,%eax
47c427:	75 07                	jne    0x47c430
47c429:	8a c3                	mov    %bl,%al
47c42b:	88 5d fe             	mov    %bl,-0x2(%ebp)
47c42e:	eb 05                	jmp    0x47c435
47c430:	b0 01                	mov    $0x1,%al
47c432:	88 45 fe             	mov    %al,-0x2(%ebp)
47c435:	84 c9                	test   %cl,%cl
47c437:	75 04                	jne    0x47c43d
47c439:	84 c0                	test   %al,%al
47c43b:	74 35                	je     0x47c472
47c43d:	e8 92 d5 00 00       	call   0x4899d4
47c442:	85 c0                	test   %eax,%eax
47c444:	74 1b                	je     0x47c461
47c446:	3d 00 01 00 00       	cmp    $0x100,%eax
47c44b:	74 0f                	je     0x47c45c
47c44d:	3d 00 02 00 00       	cmp    $0x200,%eax
47c452:	75 1e                	jne    0x47c472
47c454:	8a 5d 14             	mov    0x14(%ebp),%bl
47c457:	80 f3 01             	xor    $0x1,%bl
47c45a:	eb 16                	jmp    0x47c472
47c45c:	8a 5d 14             	mov    0x14(%ebp),%bl
47c45f:	eb 11                	jmp    0x47c472
47c461:	38 5d fd             	cmp    %bl,-0x3(%ebp)
47c464:	74 0c                	je     0x47c472
47c466:	38 5d fe             	cmp    %bl,-0x2(%ebp)
47c469:	75 05                	jne    0x47c470
47c46b:	38 5d ff             	cmp    %bl,-0x1(%ebp)
47c46e:	74 02                	je     0x47c472
47c470:	b3 01                	mov    $0x1,%bl
47c472:	8b 4d f4             	mov    -0xc(%ebp),%ecx
47c475:	8b c7                	mov    %edi,%eax
47c477:	8b d6                	mov    %esi,%edx
47c479:	e8 f2 95 01 00       	call   0x495a70
47c47e:	8b f8                	mov    %eax,%edi
47c480:	8b f2                	mov    %edx,%esi
47c482:	0f b6 c3             	movzbl %bl,%eax
47c485:	99                   	cltd
47c486:	03 f8                	add    %eax,%edi
47c488:	13 f2                	adc    %edx,%esi
47c48a:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
47c48d:	e8 79 25 00 00       	call   0x47ea0b
47c492:	3b f2                	cmp    %edx,%esi
47c494:	72 4f                	jb     0x47c4e5
47c496:	77 04                	ja     0x47c49c
47c498:	3b f8                	cmp    %eax,%edi
47c49a:	76 49                	jbe    0x47c4e5
47c49c:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
47c49f:	33 c0                	xor    %eax,%eax
47c4a1:	8b 5d f8             	mov    -0x8(%ebp),%ebx
47c4a4:	0f ac f7 01          	shrd   $0x1,%esi,%edi
47c4a8:	d1 ee                	shr    $1,%esi
47c4aa:	43                   	inc    %ebx
47c4ab:	38 41 04             	cmp    %al,0x4(%ecx)
47c4ae:	0f 94 c0             	sete   %al
47c4b1:	48                   	dec    %eax
47c4b2:	25 80 03 00 00       	and    $0x380,%eax
47c4b7:	83 c0 7f             	add    $0x7f,%eax
47c4ba:	3b d8                	cmp    %eax,%ebx
47c4bc:	7e 2a                	jle    0x47c4e8
47c4be:	8b c1                	mov    %ecx,%eax
47c4c0:	50                   	push   %eax
47c4c1:	ff 75 14             	push   0x14(%ebp)
47c4c4:	e8 c6 fc ff ff       	call   0x47c18f
47c4c9:	59                   	pop    %ecx
47c4ca:	59                   	pop    %ecx
47c4cb:	6a 03                	push   $0x3
47c4cd:	58                   	pop    %eax
47c4ce:	5f                   	pop    %edi
47c4cf:	5e                   	pop    %esi
47c4d0:	5b                   	pop    %ebx
47c4d1:	c9                   	leave
47c4d2:	c3                   	ret
47c4d3:	7e 10                	jle    0x47c4e5
47c4d5:	8b 4d f4             	mov    -0xc(%ebp),%ecx
47c4d8:	8b d6                	mov    %esi,%edx
47c4da:	8b c7                	mov    %edi,%eax
47c4dc:	e8 6f 95 01 00       	call   0x495a50
47c4e1:	8b f2                	mov    %edx,%esi
47c4e3:	8b f8                	mov    %eax,%edi
47c4e5:	8b 5d f8             	mov    -0x8(%ebp),%ebx
47c4e8:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
47c4eb:	e8 4b 20 00 00       	call   0x47e53b
47c4f0:	23 f8                	and    %eax,%edi
47c4f2:	23 f2                	and    %edx,%esi
47c4f4:	8b 45 1c             	mov    0x1c(%ebp),%eax
47c4f7:	8b c8                	mov    %eax,%ecx
47c4f9:	80 78 04 00          	cmpb   $0x0,0x4(%eax)
47c4fd:	74 13                	je     0x47c512
47c4ff:	e8 41 fc ff ff       	call   0x47c145
47c504:	50                   	push   %eax
47c505:	56                   	push   %esi
47c506:	57                   	push   %edi
47c507:	53                   	push   %ebx
47c508:	ff 75 14             	push   0x14(%ebp)
47c50b:	e8 cd e0 ff ff       	call   0x47a5dd
47c510:	eb 11                	jmp    0x47c523
47c512:	e8 53 fc ff ff       	call   0x47c16a
47c517:	50                   	push   %eax
47c518:	56                   	push   %esi
47c519:	57                   	push   %edi
47c51a:	53                   	push   %ebx
47c51b:	ff 75 14             	push   0x14(%ebp)
47c51e:	e8 8a e0 ff ff       	call   0x47a5ad
47c523:	83 c4 14             	add    $0x14,%esp
47c526:	eb a6                	jmp    0x47c4ce
47c528:	8b ff                	mov    %edi,%edi
47c52a:	55                   	push   %ebp
47c52b:	8b ec                	mov    %esp,%ebp
47c52d:	83 ec 1c             	sub    $0x1c,%esp
47c530:	33 d2                	xor    %edx,%edx
47c532:	53                   	push   %ebx
47c533:	8b 5d 18             	mov    0x18(%ebp),%ebx
47c536:	56                   	push   %esi
47c537:	57                   	push   %edi
47c538:	8b 7d 0c             	mov    0xc(%ebp),%edi
47c53b:	38 53 04             	cmp    %dl,0x4(%ebx)
47c53e:	0f 94 c2             	sete   %dl
47c541:	4a                   	dec    %edx
47c542:	83 e2 1d             	and    $0x1d,%edx
47c545:	83 c2 17             	add    $0x17,%edx
47c548:	83 ff 40             	cmp    $0x40,%edi
47c54b:	77 35                	ja     0x47c582
47c54d:	8b 75 08             	mov    0x8(%ebp),%esi
47c550:	83 3e 00             	cmpl   $0x0,(%esi)
47c553:	76 0d                	jbe    0x47c562
47c555:	83 3e 01             	cmpl   $0x1,(%esi)
47c558:	8b 4e 04             	mov    0x4(%esi),%ecx
47c55b:	76 07                	jbe    0x47c564
47c55d:	8b 76 08             	mov    0x8(%esi),%esi
47c560:	eb 04                	jmp    0x47c566
47c562:	33 c9                	xor    %ecx,%ecx
47c564:	33 f6                	xor    %esi,%esi
47c566:	8a 45 14             	mov    0x14(%ebp),%al
47c569:	34 01                	xor    $0x1,%al
47c56b:	53                   	push   %ebx
47c56c:	0f b6 c0             	movzbl %al,%eax
47c56f:	50                   	push   %eax
47c570:	ff 75 10             	push   0x10(%ebp)
47c573:	33 c0                	xor    %eax,%eax
47c575:	03 c1                	add    %ecx,%eax
47c577:	52                   	push   %edx
47c578:	83 d6 00             	adc    $0x0,%esi
47c57b:	56                   	push   %esi
47c57c:	50                   	push   %eax
47c57d:	e9 2b 01 00 00       	jmp    0x47c6ad
47c582:	8b c7                	mov    %edi,%eax
47c584:	c1 ef 05             	shr    $0x5,%edi
47c587:	83 e0 1f             	and    $0x1f,%eax
47c58a:	89 45 f0             	mov    %eax,-0x10(%ebp)
47c58d:	8d 77 fe             	lea    -0x2(%edi),%esi
47c590:	8b c6                	mov    %esi,%eax
47c592:	c1 e0 05             	shl    $0x5,%eax
47c595:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
47c599:	89 45 f8             	mov    %eax,-0x8(%ebp)
47c59c:	8b 45 08             	mov    0x8(%ebp),%eax
47c59f:	8b 4c b0 04          	mov    0x4(%eax,%esi,4),%ecx
47c5a3:	89 4d e8             	mov    %ecx,-0x18(%ebp)
47c5a6:	8b 0c b8             	mov    (%eax,%edi,4),%ecx
47c5a9:	89 4d f4             	mov    %ecx,-0xc(%ebp)
47c5ac:	75 4a                	jne    0x47c5f8
47c5ae:	03 55 f8             	add    -0x8(%ebp),%edx
47c5b1:	33 ff                	xor    %edi,%edi
47c5b3:	03 7c b0 04          	add    0x4(%eax,%esi,4),%edi
47c5b7:	89 55 e8             	mov    %edx,-0x18(%ebp)
47c5ba:	83 d1 00             	adc    $0x0,%ecx
47c5bd:	89 4d f4             	mov    %ecx,-0xc(%ebp)
47c5c0:	8a 4d 14             	mov    0x14(%ebp),%cl
47c5c3:	80 f1 01             	xor    $0x1,%cl
47c5c6:	88 4d f0             	mov    %cl,-0x10(%ebp)
47c5c9:	85 f6                	test   %esi,%esi
47c5cb:	74 18                	je     0x47c5e5
47c5cd:	8d 50 04             	lea    0x4(%eax),%edx
47c5d0:	83 3a 00             	cmpl   $0x0,(%edx)
47c5d3:	8d 52 04             	lea    0x4(%edx),%edx
47c5d6:	0f 95 c0             	setne  %al
47c5d9:	fe c8                	dec    %al
47c5db:	22 c8                	and    %al,%cl
47c5dd:	83 ee 01             	sub    $0x1,%esi
47c5e0:	75 ee                	jne    0x47c5d0
47c5e2:	88 4d f0             	mov    %cl,-0x10(%ebp)
47c5e5:	53                   	push   %ebx
47c5e6:	ff 75 f0             	push   -0x10(%ebp)
47c5e9:	ff 75 10             	push   0x10(%ebp)
47c5ec:	ff 75 e8             	push   -0x18(%ebp)
47c5ef:	ff 75 f4             	push   -0xc(%ebp)
47c5f2:	57                   	push   %edi
47c5f3:	e9 b5 00 00 00       	jmp    0x47c6ad
47c5f8:	8b 45 f0             	mov    -0x10(%ebp),%eax
47c5fb:	33 db                	xor    %ebx,%ebx
47c5fd:	8b c8                	mov    %eax,%ecx
47c5ff:	43                   	inc    %ebx
47c600:	89 5d fc             	mov    %ebx,-0x4(%ebp)
47c603:	d3 65 fc             	shll   %cl,-0x4(%ebp)
47c606:	ff 4d fc             	decl   -0x4(%ebp)
47c609:	6a 40                	push   $0x40
47c60b:	59                   	pop    %ecx
47c60c:	2b c8                	sub    %eax,%ecx
47c60e:	03 45 f8             	add    -0x8(%ebp),%eax
47c611:	03 c2                	add    %edx,%eax
47c613:	89 4d ec             	mov    %ecx,-0x14(%ebp)
47c616:	89 45 e4             	mov    %eax,-0x1c(%ebp)
47c619:	33 d2                	xor    %edx,%edx
47c61b:	8b 45 f4             	mov    -0xc(%ebp),%eax
47c61e:	8d 49 e0             	lea    -0x20(%ecx),%ecx
47c621:	e8 2a 94 01 00       	call   0x495a50
47c626:	8b 4d f0             	mov    -0x10(%ebp),%ecx
47c629:	89 45 f8             	mov    %eax,-0x8(%ebp)
47c62c:	8b 45 fc             	mov    -0x4(%ebp),%eax
47c62f:	f7 d0                	not    %eax
47c631:	89 55 f4             	mov    %edx,-0xc(%ebp)
47c634:	23 45 e8             	and    -0x18(%ebp),%eax
47c637:	33 d2                	xor    %edx,%edx
47c639:	e8 32 94 01 00       	call   0x495a70
47c63e:	01 45 f8             	add    %eax,-0x8(%ebp)
47c641:	8b 45 08             	mov    0x8(%ebp),%eax
47c644:	11 55 f4             	adc    %edx,-0xc(%ebp)
47c647:	33 d2                	xor    %edx,%edx
47c649:	8b 4d ec             	mov    -0x14(%ebp),%ecx
47c64c:	8b 44 b8 04          	mov    0x4(%eax,%edi,4),%eax
47c650:	8b 7d fc             	mov    -0x4(%ebp),%edi
47c653:	23 c7                	and    %edi,%eax
47c655:	e8 f6 93 01 00       	call   0x495a50
47c65a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
47c65d:	03 c8                	add    %eax,%ecx
47c65f:	8b 45 f4             	mov    -0xc(%ebp),%eax
47c662:	89 4d f8             	mov    %ecx,-0x8(%ebp)
47c665:	13 c2                	adc    %edx,%eax
47c667:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
47c66b:	89 45 f4             	mov    %eax,-0xc(%ebp)
47c66e:	75 05                	jne    0x47c675
47c670:	85 7d e8             	test   %edi,-0x18(%ebp)
47c673:	74 02                	je     0x47c677
47c675:	32 db                	xor    %bl,%bl
47c677:	88 5d f0             	mov    %bl,-0x10(%ebp)
47c67a:	85 f6                	test   %esi,%esi
47c67c:	74 21                	je     0x47c69f