49d2ee:	83 c4 0c             	add    $0xc,%esp
49d2f1:	83 c7 44             	add    $0x44,%edi
49d2f4:	3b f3                	cmp    %ebx,%esi
49d2f6:	75 e8                	jne    0x49d2e0
49d2f8:	8b c7                	mov    %edi,%eax
49d2fa:	5f                   	pop    %edi
49d2fb:	5e                   	pop    %esi
49d2fc:	5b                   	pop    %ebx
49d2fd:	8b e5                	mov    %ebp,%esp
49d2ff:	5d                   	pop    %ebp
49d300:	c2 0c 00             	ret    $0xc
49d303:	cc                   	int3
49d304:	cc                   	int3
49d305:	cc                   	int3
49d306:	cc                   	int3
49d307:	cc                   	int3
49d308:	cc                   	int3
49d309:	cc                   	int3
49d30a:	cc                   	int3
49d30b:	cc                   	int3
49d30c:	cc                   	int3
49d30d:	cc                   	int3
49d30e:	cc                   	int3
49d30f:	cc                   	int3
49d310:	55                   	push   %ebp
49d311:	8b ec                	mov    %esp,%ebp
49d313:	83 ec 24             	sub    $0x24,%esp
49d316:	53                   	push   %ebx
49d317:	8b 5d 0c             	mov    0xc(%ebp),%ebx
49d31a:	56                   	push   %esi
49d31b:	8b 75 08             	mov    0x8(%ebp),%esi
49d31e:	89 4d ec             	mov    %ecx,-0x14(%ebp)
49d321:	3b f3                	cmp    %ebx,%esi
49d323:	75 0a                	jne    0x49d32f
49d325:	5e                   	pop    %esi
49d326:	8b c3                	mov    %ebx,%eax
49d328:	5b                   	pop    %ebx
49d329:	8b e5                	mov    %ebp,%esp
49d32b:	5d                   	pop    %ebp
49d32c:	c2 08 00             	ret    $0x8
49d32f:	83 7e 1c 10          	cmpl   $0x10,0x1c(%esi)
49d333:	8b 41 04             	mov    0x4(%ecx),%eax
49d336:	57                   	push   %edi
49d337:	8d 79 04             	lea    0x4(%ecx),%edi
49d33a:	89 45 e4             	mov    %eax,-0x1c(%ebp)
49d33d:	8b 41 0c             	mov    0xc(%ecx),%eax
49d340:	8d 4e 08             	lea    0x8(%esi),%ecx
49d343:	89 45 e8             	mov    %eax,-0x18(%ebp)
49d346:	8b 46 04             	mov    0x4(%esi),%eax
49d349:	89 7d dc             	mov    %edi,-0x24(%ebp)
49d34c:	89 45 fc             	mov    %eax,-0x4(%ebp)
49d34f:	89 4d f8             	mov    %ecx,-0x8(%ebp)
49d352:	72 05                	jb     0x49d359
49d354:	8b 01                	mov    (%ecx),%eax
49d356:	89 45 f8             	mov    %eax,-0x8(%ebp)
49d359:	33 c9                	xor    %ecx,%ecx
49d35b:	ba c5 9d 1c 81       	mov    $0x811c9dc5,%edx
49d360:	39 4e 18             	cmp    %ecx,0x18(%esi)
49d363:	76 18                	jbe    0x49d37d
49d365:	8b 5d f8             	mov    -0x8(%ebp),%ebx
49d368:	0f b6 04 19          	movzbl (%ecx,%ebx,1),%eax
49d36c:	41                   	inc    %ecx
49d36d:	33 c2                	xor    %edx,%eax
49d36f:	69 d0 93 01 00 01    	imul   $0x1000193,%eax,%edx
49d375:	3b 4e 18             	cmp    0x18(%esi),%ecx
49d378:	72 ee                	jb     0x49d368
49d37a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
49d37d:	8b 45 ec             	mov    -0x14(%ebp),%eax
49d380:	8b 4d e8             	mov    -0x18(%ebp),%ecx
49d383:	ff 75 08             	push   0x8(%ebp)
49d386:	8b 36                	mov    (%esi),%esi
49d388:	8b 40 18             	mov    0x18(%eax),%eax
49d38b:	23 c2                	and    %edx,%eax
49d38d:	57                   	push   %edi
49d38e:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
49d391:	8b 08                	mov    (%eax),%ecx
49d393:	89 45 f8             	mov    %eax,-0x8(%ebp)
49d396:	8b 40 04             	mov    0x4(%eax),%eax
49d399:	89 4d f0             	mov    %ecx,-0x10(%ebp)
49d39c:	89 45 f4             	mov    %eax,-0xc(%ebp)
49d39f:	e8 cc cb fd ff       	call   0x479f70
49d3a4:	ff 4f 04             	decl   0x4(%edi)
49d3a7:	83 c4 08             	add    $0x8,%esp
49d3aa:	8b 45 08             	mov    0x8(%ebp),%eax
49d3ad:	3b 45 f4             	cmp    -0xc(%ebp),%eax
49d3b0:	74 21                	je     0x49d3d3
49d3b2:	89 75 e0             	mov    %esi,-0x20(%ebp)
49d3b5:	3b f3                	cmp    %ebx,%esi
49d3b7:	74 29                	je     0x49d3e2
49d3b9:	56                   	push   %esi
49d3ba:	8b 36                	mov    (%esi),%esi
49d3bc:	57                   	push   %edi
49d3bd:	e8 ae cb fd ff       	call   0x479f70
49d3c2:	ff 4f 04             	decl   0x4(%edi)
49d3c5:	83 c4 08             	add    $0x8,%esp
49d3c8:	8b 45 f4             	mov    -0xc(%ebp),%eax
49d3cb:	39 45 e0             	cmp    %eax,-0x20(%ebp)
49d3ce:	75 e2                	jne    0x49d3b2
49d3d0:	8b 45 08             	mov    0x8(%ebp),%eax
49d3d3:	8b 4d f8             	mov    -0x8(%ebp),%ecx
49d3d6:	39 45 f0             	cmp    %eax,-0x10(%ebp)
49d3d9:	75 27                	jne    0x49d402
49d3db:	8b 45 e4             	mov    -0x1c(%ebp),%eax
49d3de:	89 01                	mov    %eax,(%ecx)
49d3e0:	eb 23                	jmp    0x49d405
49d3e2:	8b 4d f0             	mov    -0x10(%ebp),%ecx
49d3e5:	3b 4d 08             	cmp    0x8(%ebp),%ecx
49d3e8:	75 05                	jne    0x49d3ef
49d3ea:	8b 4d f8             	mov    -0x8(%ebp),%ecx
49d3ed:	89 31                	mov    %esi,(%ecx)
49d3ef:	8b 45 fc             	mov    -0x4(%ebp),%eax
49d3f2:	5f                   	pop    %edi
49d3f3:	89 30                	mov    %esi,(%eax)
49d3f5:	89 46 04             	mov    %eax,0x4(%esi)
49d3f8:	8b c3                	mov    %ebx,%eax
49d3fa:	5e                   	pop    %esi
49d3fb:	5b                   	pop    %ebx
49d3fc:	8b e5                	mov    %ebp,%esp
49d3fe:	5d                   	pop    %ebp
49d3ff:	c2 08 00             	ret    $0x8
49d402:	8b 45 fc             	mov    -0x4(%ebp),%eax
49d405:	89 41 04             	mov    %eax,0x4(%ecx)
49d408:	3b f3                	cmp    %ebx,%esi
49d40a:	74 e3                	je     0x49d3ef
49d40c:	0f 1f 40 00          	nopl   0x0(%eax)
49d410:	83 7e 1c 10          	cmpl   $0x10,0x1c(%esi)
49d414:	8d 46 08             	lea    0x8(%esi),%eax
49d417:	89 75 f4             	mov    %esi,-0xc(%ebp)
49d41a:	89 45 08             	mov    %eax,0x8(%ebp)
49d41d:	72 05                	jb     0x49d424
49d41f:	8b 08                	mov    (%eax),%ecx
49d421:	89 4d 08             	mov    %ecx,0x8(%ebp)
49d424:	8b 40 10             	mov    0x10(%eax),%eax
49d427:	33 c9                	xor    %ecx,%ecx
49d429:	89 45 e0             	mov    %eax,-0x20(%ebp)
49d42c:	ba c5 9d 1c 81       	mov    $0x811c9dc5,%edx
49d431:	85 c0                	test   %eax,%eax
49d433:	74 22                	je     0x49d457
49d435:	8b 5d 08             	mov    0x8(%ebp),%ebx
49d438:	8b f8                	mov    %eax,%edi
49d43a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
49d440:	0f b6 04 19          	movzbl (%ecx,%ebx,1),%eax
49d444:	41                   	inc    %ecx
49d445:	33 c2                	xor    %edx,%eax
49d447:	69 d0 93 01 00 01    	imul   $0x1000193,%eax,%edx
49d44d:	3b cf                	cmp    %edi,%ecx
49d44f:	72 ef                	jb     0x49d440
49d451:	8b 7d dc             	mov    -0x24(%ebp),%edi
49d454:	8b 5d 0c             	mov    0xc(%ebp),%ebx
49d457:	8b 45 ec             	mov    -0x14(%ebp),%eax
49d45a:	8b 4d e8             	mov    -0x18(%ebp),%ecx
49d45d:	56                   	push   %esi
49d45e:	8b 36                	mov    (%esi),%esi
49d460:	8b 40 18             	mov    0x18(%eax),%eax
49d463:	23 c2                	and    %edx,%eax
49d465:	57                   	push   %edi
49d466:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
49d469:	89 45 f0             	mov    %eax,-0x10(%ebp)
49d46c:	8b 40 04             	mov    0x4(%eax),%eax
49d46f:	89 45 08             	mov    %eax,0x8(%ebp)
49d472:	e8 f9 ca fd ff       	call   0x479f70
49d477:	ff 4f 04             	decl   0x4(%edi)
49d47a:	83 c4 08             	add    $0x8,%esp
49d47d:	8b 45 f4             	mov    -0xc(%ebp),%eax
49d480:	3b 45 08             	cmp    0x8(%ebp),%eax
49d483:	74 20                	je     0x49d4a5
49d485:	8b 45 0c             	mov    0xc(%ebp),%eax
49d488:	8b de                	mov    %esi,%ebx
49d48a:	3b f0                	cmp    %eax,%esi
49d48c:	74 3d                	je     0x49d4cb
49d48e:	56                   	push   %esi
49d48f:	8b 36                	mov    (%esi),%esi
49d491:	57                   	push   %edi
49d492:	e8 d9 ca fd ff       	call   0x479f70
49d497:	ff 4f 04             	decl   0x4(%edi)
49d49a:	83 c4 08             	add    $0x8,%esp
49d49d:	3b 5d 08             	cmp    0x8(%ebp),%ebx
49d4a0:	75 e3                	jne    0x49d485
49d4a2:	8b 5d 0c             	mov    0xc(%ebp),%ebx
49d4a5:	8b 4d f0             	mov    -0x10(%ebp),%ecx
49d4a8:	8b 55 e4             	mov    -0x1c(%ebp),%edx
49d4ab:	89 11                	mov    %edx,(%ecx)
49d4ad:	89 51 04             	mov    %edx,0x4(%ecx)
49d4b0:	3b f3                	cmp    %ebx,%esi
49d4b2:	0f 85 58 ff ff ff    	jne    0x49d410
49d4b8:	8b 45 fc             	mov    -0x4(%ebp),%eax
49d4bb:	5f                   	pop    %edi
49d4bc:	89 30                	mov    %esi,(%eax)
49d4be:	89 46 04             	mov    %eax,0x4(%esi)
49d4c1:	8b c3                	mov    %ebx,%eax
49d4c3:	5e                   	pop    %esi
49d4c4:	5b                   	pop    %ebx
49d4c5:	8b e5                	mov    %ebp,%esp
49d4c7:	5d                   	pop    %ebp
49d4c8:	c2 08 00             	ret    $0x8
49d4cb:	8b 4d f0             	mov    -0x10(%ebp),%ecx
49d4ce:	5f                   	pop    %edi
49d4cf:	89 31                	mov    %esi,(%ecx)
49d4d1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
49d4d4:	89 31                	mov    %esi,(%ecx)
49d4d6:	89 4e 04             	mov    %ecx,0x4(%esi)
49d4d9:	5e                   	pop    %esi
49d4da:	5b                   	pop    %ebx
49d4db:	8b e5                	mov    %ebp,%esp
49d4dd:	5d                   	pop    %ebp
49d4de:	c2 08 00             	ret    $0x8
49d4e1:	cc                   	int3
49d4e2:	cc                   	int3
49d4e3:	cc                   	int3
49d4e4:	cc                   	int3
49d4e5:	cc                   	int3
49d4e6:	cc                   	int3
49d4e7:	cc                   	int3
49d4e8:	cc                   	int3
49d4e9:	cc                   	int3
49d4ea:	cc                   	int3
49d4eb:	cc                   	int3
49d4ec:	cc                   	int3
49d4ed:	cc                   	int3
49d4ee:	cc                   	int3
49d4ef:	cc                   	int3
49d4f0:	68 a4 a5 60 00       	push   $0x60a5a4
49d4f5:	e8 fc 36 13 00       	call   0x5d0bf6
49d4fa:	cc                   	int3
49d4fb:	cc                   	int3
49d4fc:	cc                   	int3
49d4fd:	cc                   	int3
49d4fe:	cc                   	int3
49d4ff:	cc                   	int3
49d500:	55                   	push   %ebp
49d501:	8b ec                	mov    %esp,%ebp
49d503:	8b 45 08             	mov    0x8(%ebp),%eax
49d506:	3d 66 66 66 06       	cmp    $0x6666666,%eax
49d50b:	77 47                	ja     0x49d554
49d50d:	8d 04 80             	lea    (%eax,%eax,4),%eax
49d510:	c1 e0 03             	shl    $0x3,%eax
49d513:	3d 00 10 00 00       	cmp    $0x1000,%eax
49d518:	72 23                	jb     0x49d53d
49d51a:	8d 48 23             	lea    0x23(%eax),%ecx
49d51d:	3b c8                	cmp    %eax,%ecx
49d51f:	76 33                	jbe    0x49d554
49d521:	51                   	push   %ecx
49d522:	e8 fe 3c 13 00       	call   0x5d1225
49d527:	8b c8                	mov    %eax,%ecx
49d529:	83 c4 04             	add    $0x4,%esp
49d52c:	85 c9                	test   %ecx,%ecx
49d52e:	74 29                	je     0x49d559
49d530:	8d 41 23             	lea    0x23(%ecx),%eax
49d533:	83 e0 e0             	and    $0xffffffe0,%eax
49d536:	89 48 fc             	mov    %ecx,-0x4(%eax)
49d539:	5d                   	pop    %ebp
49d53a:	c2 04 00             	ret    $0x4
49d53d:	85 c0                	test   %eax,%eax
49d53f:	74 0d                	je     0x49d54e
49d541:	50                   	push   %eax
49d542:	e8 de 3c 13 00       	call   0x5d1225
49d547:	83 c4 04             	add    $0x4,%esp
49d54a:	5d                   	pop    %ebp
49d54b:	c2 04 00             	ret    $0x4
49d54e:	33 c0                	xor    %eax,%eax
49d550:	5d                   	pop    %ebp
49d551:	c2 04 00             	ret    $0x4
49d554:	e8 97 a0 fa ff       	call   0x4475f0
49d559:	e8 92 8c 13 00       	call   0x5d61f0
49d55e:	cc                   	int3
49d55f:	cc                   	int3
49d560:	55                   	push   %ebp
49d561:	8b ec                	mov    %esp,%ebp
49d563:	8b 45 08             	mov    0x8(%ebp),%eax
49d566:	3d ff ff ff 1f       	cmp    $0x1fffffff,%eax
49d56b:	77 44                	ja     0x49d5b1
49d56d:	c1 e0 03             	shl    $0x3,%eax
49d570:	3d 00 10 00 00       	cmp    $0x1000,%eax
49d575:	72 23                	jb     0x49d59a
49d577:	8d 48 23             	lea    0x23(%eax),%ecx
49d57a:	3b c8                	cmp    %eax,%ecx
49d57c:	76 33                	jbe    0x49d5b1
49d57e:	51                   	push   %ecx
49d57f:	e8 a1 3c 13 00       	call   0x5d1225
49d584:	8b c8                	mov    %eax,%ecx
49d586:	83 c4 04             	add    $0x4,%esp
49d589:	85 c9                	test   %ecx,%ecx
49d58b:	74 29                	je     0x49d5b6
49d58d:	8d 41 23             	lea    0x23(%ecx),%eax
49d590:	83 e0 e0             	and    $0xffffffe0,%eax
49d593:	89 48 fc             	mov    %ecx,-0x4(%eax)
49d596:	5d                   	pop    %ebp
49d597:	c2 04 00             	ret    $0x4
49d59a:	85 c0                	test   %eax,%eax
49d59c:	74 0d                	je     0x49d5ab
49d59e:	50                   	push   %eax
49d59f:	e8 81 3c 13 00       	call   0x5d1225
49d5a4:	83 c4 04             	add    $0x4,%esp
49d5a7:	5d                   	pop    %ebp
49d5a8:	c2 04 00             	ret    $0x4
49d5ab:	33 c0                	xor    %eax,%eax
49d5ad:	5d                   	pop    %ebp
49d5ae:	c2 04 00             	ret    $0x4
49d5b1:	e8 3a a0 fa ff       	call   0x4475f0
49d5b6:	e8 35 8c 13 00       	call   0x5d61f0
49d5bb:	cc                   	int3
49d5bc:	cc                   	int3
49d5bd:	cc                   	int3
49d5be:	cc                   	int3
49d5bf:	cc                   	int3
49d5c0:	55                   	push   %ebp
49d5c1:	8b ec                	mov    %esp,%ebp
49d5c3:	8b 45 08             	mov    0x8(%ebp),%eax
49d5c6:	3d aa aa aa 0a       	cmp    $0xaaaaaaa,%eax
49d5cb:	77 47                	ja     0x49d614
49d5cd:	8d 04 40             	lea    (%eax,%eax,2),%eax
49d5d0:	c1 e0 03             	shl    $0x3,%eax
49d5d3:	3d 00 10 00 00       	cmp    $0x1000,%eax
49d5d8:	72 23                	jb     0x49d5fd
49d5da:	8d 48 23             	lea    0x23(%eax),%ecx
49d5dd:	3b c8                	cmp    %eax,%ecx
49d5df:	76 33                	jbe    0x49d614
49d5e1:	51                   	push   %ecx
49d5e2:	e8 3e 3c 13 00       	call   0x5d1225
49d5e7:	8b c8                	mov    %eax,%ecx
49d5e9:	83 c4 04             	add    $0x4,%esp
49d5ec:	85 c9                	test   %ecx,%ecx
49d5ee:	74 29                	je     0x49d619
49d5f0:	8d 41 23             	lea    0x23(%ecx),%eax
49d5f3:	83 e0 e0             	and    $0xffffffe0,%eax
49d5f6:	89 48 fc             	mov    %ecx,-0x4(%eax)
49d5f9:	5d                   	pop    %ebp
49d5fa:	c2 04 00             	ret    $0x4
49d5fd:	85 c0                	test   %eax,%eax
49d5ff:	74 0d                	je     0x49d60e
49d601:	50                   	push   %eax
49d602:	e8 1e 3c 13 00       	call   0x5d1225
49d607:	83 c4 04             	add    $0x4,%esp
49d60a:	5d                   	pop    %ebp
49d60b:	c2 04 00             	ret    $0x4
49d60e:	33 c0                	xor    %eax,%eax
49d610:	5d                   	pop    %ebp
49d611:	c2 04 00             	ret    $0x4
49d614:	e8 d7 9f fa ff       	call   0x4475f0
49d619:	e8 d2 8b 13 00       	call   0x5d61f0
49d61e:	cc                   	int3
49d61f:	cc                   	int3
49d620:	55                   	push   %ebp
49d621:	8b ec                	mov    %esp,%ebp
49d623:	8b 45 08             	mov    0x8(%ebp),%eax
49d626:	3d 55 55 55 15       	cmp    $0x15555555,%eax
49d62b:	77 47                	ja     0x49d674
49d62d:	8d 04 40             	lea    (%eax,%eax,2),%eax
49d630:	c1 e0 02             	shl    $0x2,%eax
49d633:	3d 00 10 00 00       	cmp    $0x1000,%eax