46e3ee:	c1 f8 05             	sar    $0x5,%eax
46e3f1:	50                   	push   %eax
46e3f2:	6a 00                	push   $0x0
46e3f4:	53                   	push   %ebx
46e3f5:	e8 56 fa ff ff       	call   0x46de50
46e3fa:	83 c4 14             	add    $0x14,%esp
46e3fd:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
46e404:	83 7d e8 09          	cmpl   $0x9,-0x18(%ebp)
46e408:	75 30                	jne    0x46e43a
46e40a:	8b 55 e4             	mov    -0x1c(%ebp),%edx
46e40d:	83 fa 10             	cmp    $0x10,%edx
46e410:	72 28                	jb     0x46e43a
46e412:	8b 4d d0             	mov    -0x30(%ebp),%ecx
46e415:	42                   	inc    %edx
46e416:	8b c1                	mov    %ecx,%eax
46e418:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
46e41e:	72 10                	jb     0x46e430
46e420:	8b 49 fc             	mov    -0x4(%ecx),%ecx
46e423:	83 c2 23             	add    $0x23,%edx
46e426:	2b c1                	sub    %ecx,%eax
46e428:	83 c0 fc             	add    $0xfffffffc,%eax
46e42b:	83 f8 1f             	cmp    $0x1f,%eax
46e42e:	77 20                	ja     0x46e450
46e430:	52                   	push   %edx
46e431:	51                   	push   %ecx
46e432:	e8 1e 2e 16 00       	call   0x5d1255
46e437:	83 c4 08             	add    $0x8,%esp
46e43a:	83 ee 20             	sub    $0x20,%esi
46e43d:	8b c6                	mov    %esi,%eax
46e43f:	83 e0 e0             	and    $0xffffffe0,%eax
46e442:	83 f8 40             	cmp    $0x40,%eax
46e445:	0f 8d 75 ff ff ff    	jge    0x46e3c0
46e44b:	e9 38 ff ff ff       	jmp    0x46e388
46e450:	e8 9b 7d 16 00       	call   0x5d61f0
46e455:	cc                   	int3
46e456:	cc                   	int3
46e457:	cc                   	int3
46e458:	cc                   	int3
46e459:	cc                   	int3
46e45a:	cc                   	int3
46e45b:	cc                   	int3
46e45c:	cc                   	int3
46e45d:	cc                   	int3
46e45e:	cc                   	int3
46e45f:	cc                   	int3
46e460:	55                   	push   %ebp
46e461:	8b ec                	mov    %esp,%ebp
46e463:	56                   	push   %esi
46e464:	8b 75 10             	mov    0x10(%ebp),%esi
46e467:	83 fe 20             	cmp    $0x20,%esi
46e46a:	7f 14                	jg     0x46e480
46e46c:	ff 75 1c             	push   0x1c(%ebp)
46e46f:	ff 75 0c             	push   0xc(%ebp)
46e472:	ff 75 08             	push   0x8(%ebp)
46e475:	e8 26 de ff ff       	call   0x46c2a0
46e47a:	83 c4 0c             	add    $0xc,%esp
46e47d:	5e                   	pop    %esi
46e47e:	5d                   	pop    %ebp
46e47f:	c3                   	ret
46e480:	8b 4d 08             	mov    0x8(%ebp),%ecx
46e483:	8b 55 18             	mov    0x18(%ebp),%edx
46e486:	53                   	push   %ebx
46e487:	8b de                	mov    %esi,%ebx
46e489:	d1 eb                	shr    $1,%ebx
46e48b:	2b f3                	sub    %ebx,%esi
46e48d:	57                   	push   %edi
46e48e:	8b 7d 14             	mov    0x14(%ebp),%edi
46e491:	ff 75 1c             	push   0x1c(%ebp)
46e494:	8d 04 b1             	lea    (%ecx,%esi,4),%eax
46e497:	3b f2                	cmp    %edx,%esi
46e499:	7f 22                	jg     0x46e4bd
46e49b:	57                   	push   %edi
46e49c:	56                   	push   %esi
46e49d:	50                   	push   %eax
46e49e:	51                   	push   %ecx
46e49f:	e8 2c d3 ff ff       	call   0x46b7d0
46e4a4:	ff 75 1c             	push   0x1c(%ebp)
46e4a7:	8b 4d 08             	mov    0x8(%ebp),%ecx
46e4aa:	57                   	push   %edi
46e4ab:	53                   	push   %ebx
46e4ac:	ff 75 0c             	push   0xc(%ebp)
46e4af:	8d 04 b1             	lea    (%ecx,%esi,4),%eax
46e4b2:	50                   	push   %eax
46e4b3:	e8 18 d3 ff ff       	call   0x46b7d0
46e4b8:	83 c4 28             	add    $0x28,%esp
46e4bb:	eb 24                	jmp    0x46e4e1
46e4bd:	52                   	push   %edx
46e4be:	57                   	push   %edi
46e4bf:	56                   	push   %esi
46e4c0:	50                   	push   %eax
46e4c1:	51                   	push   %ecx
46e4c2:	e8 99 ff ff ff       	call   0x46e460
46e4c7:	ff 75 1c             	push   0x1c(%ebp)
46e4ca:	8b 4d 08             	mov    0x8(%ebp),%ecx
46e4cd:	ff 75 18             	push   0x18(%ebp)
46e4d0:	57                   	push   %edi
46e4d1:	53                   	push   %ebx
46e4d2:	ff 75 0c             	push   0xc(%ebp)
46e4d5:	8d 04 b1             	lea    (%ecx,%esi,4),%eax
46e4d8:	50                   	push   %eax
46e4d9:	e8 82 ff ff ff       	call   0x46e460
46e4de:	83 c4 30             	add    $0x30,%esp
46e4e1:	ff 75 1c             	push   0x1c(%ebp)
46e4e4:	8b 4d 08             	mov    0x8(%ebp),%ecx
46e4e7:	ff 75 18             	push   0x18(%ebp)
46e4ea:	57                   	push   %edi
46e4eb:	53                   	push   %ebx
46e4ec:	56                   	push   %esi
46e4ed:	ff 75 0c             	push   0xc(%ebp)
46e4f0:	8d 04 b1             	lea    (%ecx,%esi,4),%eax
46e4f3:	50                   	push   %eax
46e4f4:	51                   	push   %ecx
46e4f5:	e8 e6 cf ff ff       	call   0x46b4e0
46e4fa:	83 c4 20             	add    $0x20,%esp
46e4fd:	5f                   	pop    %edi
46e4fe:	5b                   	pop    %ebx
46e4ff:	5e                   	pop    %esi
46e500:	5d                   	pop    %ebp
46e501:	c3                   	ret
46e502:	cc                   	int3
46e503:	cc                   	int3
46e504:	cc                   	int3
46e505:	cc                   	int3
46e506:	cc                   	int3
46e507:	cc                   	int3
46e508:	cc                   	int3
46e509:	cc                   	int3
46e50a:	cc                   	int3
46e50b:	cc                   	int3
46e50c:	cc                   	int3
46e50d:	cc                   	int3
46e50e:	cc                   	int3
46e50f:	cc                   	int3
46e510:	55                   	push   %ebp
46e511:	8b ec                	mov    %esp,%ebp
46e513:	8b 55 08             	mov    0x8(%ebp),%edx
46e516:	53                   	push   %ebx
46e517:	8b 5d 14             	mov    0x14(%ebp),%ebx
46e51a:	56                   	push   %esi
46e51b:	8b 75 10             	mov    0x10(%ebp),%esi
46e51e:	57                   	push   %edi
46e51f:	8b 7d 0c             	mov    0xc(%ebp),%edi
46e522:	3b df                	cmp    %edi,%ebx
46e524:	8b cf                	mov    %edi,%ecx
46e526:	0f 42 cb             	cmovb  %ebx,%ecx
46e529:	83 e9 04             	sub    $0x4,%ecx
46e52c:	72 13                	jb     0x46e541
46e52e:	66 90                	xchg   %ax,%ax
46e530:	8b 02                	mov    (%edx),%eax
46e532:	3b 06                	cmp    (%esi),%eax
46e534:	75 10                	jne    0x46e546
46e536:	83 c2 04             	add    $0x4,%edx
46e539:	83 c6 04             	add    $0x4,%esi
46e53c:	83 e9 04             	sub    $0x4,%ecx
46e53f:	73 ef                	jae    0x46e530
46e541:	83 f9 fc             	cmp    $0xfffffffc,%ecx
46e544:	74 34                	je     0x46e57a
46e546:	8a 02                	mov    (%edx),%al
46e548:	3a 06                	cmp    (%esi),%al
46e54a:	75 27                	jne    0x46e573
46e54c:	83 f9 fd             	cmp    $0xfffffffd,%ecx
46e54f:	74 29                	je     0x46e57a
46e551:	8a 42 01             	mov    0x1(%edx),%al
46e554:	3a 46 01             	cmp    0x1(%esi),%al
46e557:	75 1a                	jne    0x46e573
46e559:	83 f9 fe             	cmp    $0xfffffffe,%ecx
46e55c:	74 1c                	je     0x46e57a
46e55e:	8a 42 02             	mov    0x2(%edx),%al
46e561:	3a 46 02             	cmp    0x2(%esi),%al
46e564:	75 0d                	jne    0x46e573
46e566:	83 f9 ff             	cmp    $0xffffffff,%ecx
46e569:	74 0f                	je     0x46e57a
46e56b:	8a 42 03             	mov    0x3(%edx),%al
46e56e:	3a 46 03             	cmp    0x3(%esi),%al
46e571:	74 07                	je     0x46e57a
46e573:	1b c0                	sbb    %eax,%eax
46e575:	83 c8 01             	or     $0x1,%eax
46e578:	eb 02                	jmp    0x46e57c
46e57a:	33 c0                	xor    %eax,%eax
46e57c:	85 c0                	test   %eax,%eax
46e57e:	75 10                	jne    0x46e590
46e580:	3b df                	cmp    %edi,%ebx
46e582:	76 08                	jbe    0x46e58c
46e584:	5f                   	pop    %edi
46e585:	5e                   	pop    %esi
46e586:	83 c8 ff             	or     $0xffffffff,%eax
46e589:	5b                   	pop    %ebx
46e58a:	5d                   	pop    %ebp
46e58b:	c3                   	ret
46e58c:	1b c0                	sbb    %eax,%eax
46e58e:	f7 d8                	neg    %eax
46e590:	5f                   	pop    %edi
46e591:	5e                   	pop    %esi
46e592:	5b                   	pop    %ebx
46e593:	5d                   	pop    %ebp
46e594:	c3                   	ret
46e595:	cc                   	int3
46e596:	cc                   	int3
46e597:	cc                   	int3
46e598:	cc                   	int3
46e599:	cc                   	int3
46e59a:	cc                   	int3
46e59b:	cc                   	int3
46e59c:	cc                   	int3
46e59d:	cc                   	int3
46e59e:	cc                   	int3
46e59f:	cc                   	int3
46e5a0:	55                   	push   %ebp
46e5a1:	8b ec                	mov    %esp,%ebp
46e5a3:	6a ff                	push   $0xffffffff
46e5a5:	68 ad 9a 5f 00       	push   $0x5f9aad
46e5aa:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
46e5b0:	50                   	push   %eax
46e5b1:	83 ec 24             	sub    $0x24,%esp
46e5b4:	a1 c0 14 69 00       	mov    0x6914c0,%eax
46e5b9:	33 c5                	xor    %ebp,%eax
46e5bb:	89 45 f0             	mov    %eax,-0x10(%ebp)
46e5be:	56                   	push   %esi
46e5bf:	57                   	push   %edi
46e5c0:	50                   	push   %eax
46e5c1:	8d 45 f4             	lea    -0xc(%ebp),%eax
46e5c4:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
46e5ca:	8b 75 08             	mov    0x8(%ebp),%esi
46e5cd:	8d 4d d0             	lea    -0x30(%ebp),%ecx
46e5d0:	8b 7d 0c             	mov    0xc(%ebp),%edi
46e5d3:	56                   	push   %esi
46e5d4:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
46e5db:	e8 10 0f 00 00       	call   0x46f4f0
46e5e0:	57                   	push   %edi
46e5e1:	8b ce                	mov    %esi,%ecx
46e5e3:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
46e5ea:	e8 01 0f 00 00       	call   0x46f4f0
46e5ef:	8d 45 d0             	lea    -0x30(%ebp),%eax
46e5f2:	8b cf                	mov    %edi,%ecx
46e5f4:	50                   	push   %eax
46e5f5:	e8 f6 0e 00 00       	call   0x46f4f0
46e5fa:	83 7d e8 09          	cmpl   $0x9,-0x18(%ebp)
46e5fe:	75 08                	jne    0x46e608
46e600:	8d 4d d0             	lea    -0x30(%ebp),%ecx
46e603:	e8 98 84 fe ff       	call   0x456aa0
46e608:	8b 4d f4             	mov    -0xc(%ebp),%ecx
46e60b:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
46e612:	59                   	pop    %ecx
46e613:	5f                   	pop    %edi
46e614:	5e                   	pop    %esi
46e615:	8b 4d f0             	mov    -0x10(%ebp),%ecx
46e618:	33 cd                	xor    %ebp,%ecx
46e61a:	e8 07 34 16 00       	call   0x5d1a26
46e61f:	8b e5                	mov    %ebp,%esp
46e621:	5d                   	pop    %ebp
46e622:	c3                   	ret
46e623:	cc                   	int3
46e624:	cc                   	int3
46e625:	cc                   	int3
46e626:	cc                   	int3
46e627:	cc                   	int3
46e628:	cc                   	int3
46e629:	cc                   	int3
46e62a:	cc                   	int3
46e62b:	cc                   	int3
46e62c:	cc                   	int3
46e62d:	cc                   	int3
46e62e:	cc                   	int3
46e62f:	cc                   	int3
46e630:	55                   	push   %ebp
46e631:	8b ec                	mov    %esp,%ebp
46e633:	6a ff                	push   $0xffffffff
46e635:	68 25 98 5f 00       	push   $0x5f9825
46e63a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
46e640:	50                   	push   %eax
46e641:	81 ec 80 00 00 00    	sub    $0x80,%esp
46e647:	a1 c0 14 69 00       	mov    0x6914c0,%eax
46e64c:	33 c5                	xor    %ebp,%eax
46e64e:	89 45 f0             	mov    %eax,-0x10(%ebp)
46e651:	53                   	push   %ebx
46e652:	56                   	push   %esi
46e653:	57                   	push   %edi
46e654:	50                   	push   %eax
46e655:	8d 45 f4             	lea    -0xc(%ebp),%eax
46e658:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
46e65e:	8b 4d 08             	mov    0x8(%ebp),%ecx
46e661:	8b 7d 0c             	mov    0xc(%ebp),%edi
46e664:	8b 55 10             	mov    0x10(%ebp),%edx
46e667:	2b f9                	sub    %ecx,%edi
46e669:	c1 ff 02             	sar    $0x2,%edi
46e66c:	89 4d 88             	mov    %ecx,-0x78(%ebp)
46e66f:	89 95 7c ff ff ff    	mov    %edx,-0x84(%ebp)
46e675:	85 ff                	test   %edi,%edi
46e677:	0f 8e 99 02 00 00    	jle    0x46e916
46e67d:	8b 45 14             	mov    0x14(%ebp),%eax
46e680:	89 45 84             	mov    %eax,-0x7c(%ebp)
46e683:	8b df                	mov    %edi,%ebx
46e685:	d1 eb                	shr    $1,%ebx
46e687:	8b 34 99             	mov    (%ecx,%ebx,4),%esi
46e68a:	8d 04 99             	lea    (%ecx,%ebx,4),%eax
46e68d:	8b 0a                	mov    (%edx),%ecx
46e68f:	89 4d 94             	mov    %ecx,-0x6c(%ebp)
46e692:	8d 8d 74 ff ff ff    	lea    -0x8c(%ebp),%ecx
46e698:	89 45 80             	mov    %eax,-0x80(%ebp)
46e69b:	8b 06                	mov    (%esi),%eax
46e69d:	51                   	push   %ecx
46e69e:	8b ce                	mov    %esi,%ecx
46e6a0:	89 5d 90             	mov    %ebx,-0x70(%ebp)
46e6a3:	ff 50 48             	call   *0x48(%eax)
46e6a6:	8b 4d 84             	mov    -0x7c(%ebp),%ecx
46e6a9:	8b 40 04             	mov    0x4(%eax),%eax
46e6ac:	89 45 98             	mov    %eax,-0x68(%ebp)
46e6af:	e8 ec aa fe ff       	call   0x4591a0
46e6b4:	8b 04 85 98 7b 60 00 	mov    0x607b98(,%eax,4),%eax
46e6bb:	48                   	dec    %eax
46e6bc:	83 f8 08             	cmp    $0x8,%eax
46e6bf:	0f 87 f3 01 00 00    	ja     0x46e8b8
46e6c5:	ff 24 85 3c e9 46 00 	jmp    *0x46e93c(,%eax,4)
46e6cc:	ff 75 14             	push   0x14(%ebp)
46e6cf:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46e6d2:	56                   	push   %esi
46e6d3:	e8 78 5c ff ff       	call   0x464350
46e6d8:	ff 75 14             	push   0x14(%ebp)
46e6db:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46e6de:	8a d8                	mov    %al,%bl
46e6e0:	ff 75 94             	push   -0x6c(%ebp)
46e6e3:	e8 68 5c ff ff       	call   0x464350
46e6e8:	3a d8                	cmp    %al,%bl
46e6ea:	8b 5d 90             	mov    -0x70(%ebp),%ebx
46e6ed:	0f 92 c0             	setb   %al
46e6f0:	e9 b8 01 00 00       	jmp    0x46e8ad
46e6f5:	ff 75 14             	push   0x14(%ebp)
46e6f8:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46e6fb:	56                   	push   %esi
46e6fc:	e8 2f 62 ff ff       	call   0x464930
46e701:	ff 75 14             	push   0x14(%ebp)
46e704:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46e707:	8b f0                	mov    %eax,%esi
46e709:	ff 75 94             	push   -0x6c(%ebp)
46e70c:	e8 1f 62 ff ff       	call   0x464930
46e711:	3b f0                	cmp    %eax,%esi
46e713:	0f 9c c0             	setl   %al
46e716:	e9 92 01 00 00       	jmp    0x46e8ad
46e71b:	ff 75 14             	push   0x14(%ebp)
46e71e:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46e721:	56                   	push   %esi
46e722:	e8 e9 62 ff ff       	call   0x464a10
46e727:	ff 75 14             	push   0x14(%ebp)
46e72a:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46e72d:	8b f2                	mov    %edx,%esi
46e72f:	ff 75 94             	push   -0x6c(%ebp)
46e732:	89 45 90             	mov    %eax,-0x70(%ebp)
46e735:	e8 d6 62 ff ff       	call   0x464a10
46e73a:	3b f2                	cmp    %edx,%esi
46e73c:	0f 8f 6f 01 00 00    	jg     0x46e8b1