50c392:	68 94 c4 6b 00       	push   $0x6bc494
50c397:	68 78 c4 6b 00       	push   $0x6bc478
50c39c:	6a 0b                	push   $0xb
50c39e:	e8 3d 3c fd ff       	call   0x4dffe0
50c3a3:	8b 75 fc             	mov    -0x4(%ebp),%esi
50c3a6:	83 c4 14             	add    $0x14,%esp
50c3a9:	8b c6                	mov    %esi,%eax
50c3ab:	5f                   	pop    %edi
50c3ac:	5e                   	pop    %esi
50c3ad:	5b                   	pop    %ebx
50c3ae:	8b e5                	mov    %ebp,%esp
50c3b0:	5d                   	pop    %ebp
50c3b1:	c3                   	ret
50c3b2:	8b 55 ec             	mov    -0x14(%ebp),%edx
50c3b5:	8b 45 08             	mov    0x8(%ebp),%eax
50c3b8:	0f b7 cb             	movzwl %bx,%ecx
50c3bb:	89 4d f4             	mov    %ecx,-0xc(%ebp)
50c3be:	8b 40 34             	mov    0x34(%eax),%eax
50c3c1:	8b 40 24             	mov    0x24(%eax),%eax
50c3c4:	89 45 e0             	mov    %eax,-0x20(%ebp)
50c3c7:	83 c0 fc             	add    $0xfffffffc,%eax
50c3ca:	3b c8                	cmp    %eax,%ecx
50c3cc:	76 2a                	jbe    0x50c3f8
50c3ce:	68 fc c4 6b 00       	push   $0x6bc4fc
50c3d3:	68 2c 01 01 00       	push   $0x1012c
50c3d8:	68 94 c4 6b 00       	push   $0x6bc494
50c3dd:	68 78 c4 6b 00       	push   $0x6bc478
50c3e2:	6a 0b                	push   $0xb
50c3e4:	e8 f7 3b fd ff       	call   0x4dffe0
50c3e9:	8b 75 fc             	mov    -0x4(%ebp),%esi
50c3ec:	83 c4 14             	add    $0x14,%esp
50c3ef:	8b c6                	mov    %esi,%eax
50c3f1:	5f                   	pop    %edi
50c3f2:	5e                   	pop    %esi
50c3f3:	5b                   	pop    %ebx
50c3f4:	8b e5                	mov    %ebp,%esp
50c3f6:	5d                   	pop    %ebp
50c3f7:	c3                   	ret
50c3f8:	8b 4d f0             	mov    -0x10(%ebp),%ecx
50c3fb:	66 85 db             	test   %bx,%bx
50c3fe:	0f 84 94 00 00 00    	je     0x50c498
50c404:	8d 41 03             	lea    0x3(%ecx),%eax
50c407:	3b 45 f4             	cmp    -0xc(%ebp),%eax
50c40a:	0f 82 88 00 00 00    	jb     0x50c498
50c410:	8a c3                	mov    %bl,%al
50c412:	8b 5d f4             	mov    -0xc(%ebp),%ebx
50c415:	2a c1                	sub    %cl,%al
50c417:	88 45 0f             	mov    %al,0xf(%ebp)
50c41a:	3b cb                	cmp    %ebx,%ecx
50c41c:	76 2a                	jbe    0x50c448
50c41e:	68 fc c4 6b 00       	push   $0x6bc4fc
50c423:	68 38 01 01 00       	push   $0x10138
50c428:	68 94 c4 6b 00       	push   $0x6bc494
50c42d:	68 78 c4 6b 00       	push   $0x6bc478
50c432:	6a 0b                	push   $0xb
50c434:	e8 a7 3b fd ff       	call   0x4dffe0
50c439:	8b 75 fc             	mov    -0x4(%ebp),%esi
50c43c:	83 c4 14             	add    $0x14,%esp
50c43f:	8b c6                	mov    %esi,%eax
50c441:	5f                   	pop    %edi
50c442:	5e                   	pop    %esi
50c443:	5b                   	pop    %ebx
50c444:	8b e5                	mov    %ebp,%esp
50c446:	5d                   	pop    %ebp
50c447:	c3                   	ret
50c448:	0f b6 4c 33 02       	movzbl 0x2(%ebx,%esi,1),%ecx
50c44d:	0f b6 44 33 03       	movzbl 0x3(%ebx,%esi,1),%eax
50c452:	c1 e1 08             	shl    $0x8,%ecx
50c455:	0b c8                	or     %eax,%ecx
50c457:	03 cb                	add    %ebx,%ecx
50c459:	89 4d f0             	mov    %ecx,-0x10(%ebp)
50c45c:	3b 4d e0             	cmp    -0x20(%ebp),%ecx
50c45f:	76 19                	jbe    0x50c47a
50c461:	68 3b 01 01 00       	push   $0x1013b
50c466:	e8 45 39 01 00       	call   0x51fdb0
50c46b:	8b 75 fc             	mov    -0x4(%ebp),%esi
50c46e:	83 c4 04             	add    $0x4,%esp
50c471:	8b c6                	mov    %esi,%eax
50c473:	5f                   	pop    %edi
50c474:	5e                   	pop    %esi
50c475:	5b                   	pop    %ebx
50c476:	8b e5                	mov    %ebp,%esp
50c478:	5d                   	pop    %ebp
50c479:	c3                   	ret
50c47a:	2b ca                	sub    %edx,%ecx
50c47c:	0f b7 c1             	movzwl %cx,%eax
50c47f:	0f b6 4c 33 01       	movzbl 0x1(%ebx,%esi,1),%ecx
50c484:	89 45 e8             	mov    %eax,-0x18(%ebp)
50c487:	0f b6 04 33          	movzbl (%ebx,%esi,1),%eax
50c48b:	66 c1 e0 08          	shl    $0x8,%ax
50c48f:	66 0b c8             	or     %ax,%cx
50c492:	0f b7 d9             	movzwl %cx,%ebx
50c495:	8b 4d f0             	mov    -0x10(%ebp),%ecx
50c498:	0f b6 45 13          	movzbl 0x13(%ebp),%eax
50c49c:	89 45 e0             	mov    %eax,-0x20(%ebp)
50c49f:	0f b7 c7             	movzwl %di,%eax
50c4a2:	89 45 f8             	mov    %eax,-0x8(%ebp)
50c4a5:	8b 45 e0             	mov    -0x20(%ebp),%eax
50c4a8:	40                   	inc    %eax
50c4a9:	39 45 f8             	cmp    %eax,-0x8(%ebp)
50c4ac:	76 71                	jbe    0x50c51f
50c4ae:	8b 45 f8             	mov    -0x8(%ebp),%eax
50c4b1:	0f b6 44 30 02       	movzbl 0x2(%eax,%esi,1),%eax
50c4b6:	c1 e0 08             	shl    $0x8,%eax
50c4b9:	89 45 f4             	mov    %eax,-0xc(%ebp)
50c4bc:	8b 45 f8             	mov    -0x8(%ebp),%eax
50c4bf:	0f b6 44 30 03       	movzbl 0x3(%eax,%esi,1),%eax
50c4c4:	09 45 f4             	or     %eax,-0xc(%ebp)
50c4c7:	8b 45 f4             	mov    -0xc(%ebp),%eax
50c4ca:	03 45 f8             	add    -0x8(%ebp),%eax
50c4cd:	89 45 f4             	mov    %eax,-0xc(%ebp)
50c4d0:	83 c0 03             	add    $0x3,%eax
50c4d3:	3b 45 e4             	cmp    -0x1c(%ebp),%eax
50c4d6:	7c 47                	jl     0x50c51f
50c4d8:	8b 45 f4             	mov    -0xc(%ebp),%eax
50c4db:	3b 45 e4             	cmp    -0x1c(%ebp),%eax
50c4de:	7e 2a                	jle    0x50c50a
50c4e0:	68 fc c4 6b 00       	push   $0x6bc4fc
50c4e5:	68 48 01 01 00       	push   $0x10148
50c4ea:	68 94 c4 6b 00       	push   $0x6bc494
50c4ef:	68 78 c4 6b 00       	push   $0x6bc478
50c4f4:	6a 0b                	push   $0xb
50c4f6:	e8 e5 3a fd ff       	call   0x4dffe0
50c4fb:	8b 75 fc             	mov    -0x4(%ebp),%esi
50c4fe:	83 c4 14             	add    $0x14,%esp
50c501:	8b c6                	mov    %esi,%eax
50c503:	5f                   	pop    %edi
50c504:	5e                   	pop    %esi
50c505:	5b                   	pop    %ebx
50c506:	8b e5                	mov    %ebp,%esp
50c508:	5d                   	pop    %ebp
50c509:	c3                   	ret
50c50a:	2a d0                	sub    %al,%dl
50c50c:	8b c1                	mov    %ecx,%eax
50c50e:	00 55 0f             	add    %dl,0xf(%ebp)
50c511:	2b c7                	sub    %edi,%eax
50c513:	0f b7 c0             	movzwl %ax,%eax
50c516:	0f b7 d7             	movzwl %di,%edx
50c519:	89 45 e8             	mov    %eax,-0x18(%ebp)
50c51c:	89 55 ec             	mov    %edx,-0x14(%ebp)
50c51f:	8b 7d e0             	mov    -0x20(%ebp),%edi
50c522:	8a 4d 0f             	mov    0xf(%ebp),%cl
50c525:	8a 44 37 07          	mov    0x7(%edi,%esi,1),%al
50c529:	3a c8                	cmp    %al,%cl
50c52b:	76 2a                	jbe    0x50c557
50c52d:	68 fc c4 6b 00       	push   $0x6bc4fc
50c532:	68 4e 01 01 00       	push   $0x1014e
50c537:	68 94 c4 6b 00       	push   $0x6bc494
50c53c:	68 78 c4 6b 00       	push   $0x6bc478
50c541:	6a 0b                	push   $0xb
50c543:	e8 98 3a fd ff       	call   0x4dffe0
50c548:	8b 75 fc             	mov    -0x4(%ebp),%esi
50c54b:	83 c4 14             	add    $0x14,%esp
50c54e:	8b c6                	mov    %esi,%eax
50c550:	5f                   	pop    %edi
50c551:	5e                   	pop    %esi
50c552:	5b                   	pop    %ebx
50c553:	8b e5                	mov    %ebp,%esp
50c555:	5d                   	pop    %ebp
50c556:	c3                   	ret
50c557:	2a c1                	sub    %cl,%al
50c559:	88 44 37 07          	mov    %al,0x7(%edi,%esi,1)
50c55d:	0f b6 7d 13          	movzbl 0x13(%ebp),%edi
50c561:	0f b6 4c 37 05       	movzbl 0x5(%edi,%esi,1),%ecx
50c566:	0f b6 44 37 06       	movzbl 0x6(%edi,%esi,1),%eax
50c56b:	66 c1 e1 08          	shl    $0x8,%cx
50c56f:	66 0b c8             	or     %ax,%cx
50c572:	0f b7 c1             	movzwl %cx,%eax
50c575:	66 3b d0             	cmp    %ax,%dx
50c578:	0f 87 7d 00 00 00    	ja     0x50c5fb
50c57e:	73 2a                	jae    0x50c5aa
50c580:	68 fc c4 6b 00       	push   $0x6bc4fc
50c585:	68 56 01 01 00       	push   $0x10156
50c58a:	68 94 c4 6b 00       	push   $0x6bc494
50c58f:	68 78 c4 6b 00       	push   $0x6bc478
50c594:	6a 0b                	push   $0xb
50c596:	e8 45 3a fd ff       	call   0x4dffe0
50c59b:	8b 75 fc             	mov    -0x4(%ebp),%esi
50c59e:	83 c4 14             	add    $0x14,%esp
50c5a1:	8b c6                	mov    %esi,%eax
50c5a3:	5f                   	pop    %edi
50c5a4:	5e                   	pop    %esi
50c5a5:	5b                   	pop    %ebx
50c5a6:	8b e5                	mov    %ebp,%esp
50c5a8:	5d                   	pop    %ebp
50c5a9:	c3                   	ret
50c5aa:	8d 47 01             	lea    0x1(%edi),%eax
50c5ad:	39 45 f8             	cmp    %eax,-0x8(%ebp)
50c5b0:	74 2a                	je     0x50c5dc
50c5b2:	68 fc c4 6b 00       	push   $0x6bc4fc
50c5b7:	68 57 01 01 00       	push   $0x10157
50c5bc:	68 94 c4 6b 00       	push   $0x6bc494
50c5c1:	68 78 c4 6b 00       	push   $0x6bc478
50c5c6:	6a 0b                	push   $0xb
50c5c8:	e8 13 3a fd ff       	call   0x4dffe0
50c5cd:	8b 75 fc             	mov    -0x4(%ebp),%esi
50c5d0:	83 c4 14             	add    $0x14,%esp
50c5d3:	8b c6                	mov    %esi,%eax
50c5d5:	5f                   	pop    %edi
50c5d6:	5e                   	pop    %esi
50c5d7:	5b                   	pop    %ebx
50c5d8:	8b e5                	mov    %ebp,%esp
50c5da:	5d                   	pop    %ebp
50c5db:	c3                   	ret
50c5dc:	8b 4d f0             	mov    -0x10(%ebp),%ecx
50c5df:	8b c3                	mov    %ebx,%eax
50c5e1:	c1 e8 08             	shr    $0x8,%eax
50c5e4:	88 44 37 01          	mov    %al,0x1(%edi,%esi,1)
50c5e8:	8b c1                	mov    %ecx,%eax
50c5ea:	c1 e8 08             	shr    $0x8,%eax
50c5ed:	88 5c 37 02          	mov    %bl,0x2(%edi,%esi,1)
50c5f1:	88 44 37 05          	mov    %al,0x5(%edi,%esi,1)
50c5f5:	88 4c 37 06          	mov    %cl,0x6(%edi,%esi,1)
50c5f9:	eb 0f                	jmp    0x50c60a
50c5fb:	8b 4d f8             	mov    -0x8(%ebp),%ecx
50c5fe:	8b c2                	mov    %edx,%eax
50c600:	c1 e8 08             	shr    $0x8,%eax
50c603:	88 04 31             	mov    %al,(%ecx,%esi,1)
50c606:	88 54 31 01          	mov    %dl,0x1(%ecx,%esi,1)
50c60a:	8b 7d 08             	mov    0x8(%ebp),%edi
50c60d:	8b 47 34             	mov    0x34(%edi),%eax
50c610:	f6 40 16 0c          	testb  $0xc,0x16(%eax)
50c614:	74 1a                	je     0x50c630
50c616:	8b 45 e8             	mov    -0x18(%ebp),%eax
50c619:	0f b7 c0             	movzwl %ax,%eax
50c61c:	50                   	push   %eax
50c61d:	0f b7 c2             	movzwl %dx,%eax
50c620:	03 c6                	add    %esi,%eax
50c622:	6a 00                	push   $0x0
50c624:	50                   	push   %eax
50c625:	e8 d6 73 0d 00       	call   0x5e3a00
50c62a:	8b 55 ec             	mov    -0x14(%ebp),%edx
50c62d:	83 c4 0c             	add    $0xc,%esp
50c630:	0f b7 d2             	movzwl %dx,%edx
50c633:	8b c3                	mov    %ebx,%eax
50c635:	03 d6                	add    %esi,%edx
50c637:	c1 e8 08             	shr    $0x8,%eax
50c63a:	88 02                	mov    %al,(%edx)
50c63c:	8b 45 e8             	mov    -0x18(%ebp),%eax
50c63f:	8b c8                	mov    %eax,%ecx
50c641:	c1 e9 08             	shr    $0x8,%ecx
50c644:	88 42 03             	mov    %al,0x3(%edx)
50c647:	8b 45 dc             	mov    -0x24(%ebp),%eax
50c64a:	88 5a 01             	mov    %bl,0x1(%edx)
50c64d:	88 4a 02             	mov    %cl,0x2(%edx)
50c650:	01 47 14             	add    %eax,0x14(%edi)
50c653:	8b 75 fc             	mov    -0x4(%ebp),%esi
50c656:	5f                   	pop    %edi
50c657:	8b c6                	mov    %esi,%eax
50c659:	5e                   	pop    %esi
50c65a:	5b                   	pop    %ebx
50c65b:	8b e5                	mov    %ebp,%esp
50c65d:	5d                   	pop    %ebp
50c65e:	c3                   	ret
50c65f:	cc                   	int3
50c660:	55                   	push   %ebp
50c661:	8b ec                	mov    %esp,%ebp
50c663:	83 ec 10             	sub    $0x10,%esp
50c666:	8b 45 10             	mov    0x10(%ebp),%eax
50c669:	53                   	push   %ebx
50c66a:	8b 5d 08             	mov    0x8(%ebp),%ebx
50c66d:	56                   	push   %esi
50c66e:	8b 10                	mov    (%eax),%edx
50c670:	8b 75 18             	mov    0x18(%ebp),%esi
50c673:	8b 45 1c             	mov    0x1c(%ebp),%eax
50c676:	8b 5b 38             	mov    0x38(%ebx),%ebx
50c679:	03 c6                	add    %esi,%eax
50c67b:	89 5d fc             	mov    %ebx,-0x4(%ebp)
50c67e:	89 55 18             	mov    %edx,0x18(%ebp)
50c681:	89 45 f4             	mov    %eax,-0xc(%ebp)
50c684:	3b c6                	cmp    %esi,%eax
50c686:	7f 08                	jg     0x50c690
50c688:	5e                   	pop    %esi
50c689:	33 c0                	xor    %eax,%eax
50c68b:	5b                   	pop    %ebx
50c68c:	8b e5                	mov    %ebp,%esp
50c68e:	5d                   	pop    %ebp
50c68f:	c3                   	ret
50c690:	57                   	push   %edi
50c691:	8b 7d 20             	mov    0x20(%ebp),%edi
50c694:	33 c9                	xor    %ecx,%ecx
50c696:	39 77 28             	cmp    %esi,0x28(%edi)
50c699:	8d 47 28             	lea    0x28(%edi),%eax
50c69c:	7f 0f                	jg     0x50c6ad
50c69e:	66 90                	xchg   %ax,%ax
50c6a0:	83 f9 06             	cmp    $0x6,%ecx
50c6a3:	7d 08                	jge    0x50c6ad
50c6a5:	83 c0 04             	add    $0x4,%eax
50c6a8:	41                   	inc    %ecx
50c6a9:	39 30                	cmp    %esi,(%eax)
50c6ab:	7e f3                	jle    0x50c6a0
50c6ad:	8d 47 10             	lea    0x10(%edi),%eax
50c6b0:	8d 04 88             	lea    (%eax,%ecx,4),%eax
50c6b3:	89 45 1c             	mov    %eax,0x1c(%ebp)
50c6b6:	8b 00                	mov    (%eax),%eax
50c6b8:	89 45 f8             	mov    %eax,-0x8(%ebp)
50c6bb:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
50c6c0:	80 7b 01 00          	cmpb   $0x0,0x1(%ebx)
50c6c4:	8b 47 0c             	mov    0xc(%edi),%eax
50c6c7:	0f b7 3c 70          	movzwl (%eax,%esi,2),%edi
50c6cb:	75 06                	jne    0x50c6d3
50c6cd:	80 7b 02 00          	cmpb   $0x0,0x2(%ebx)
50c6d1:	74 19                	je     0x50c6ec
50c6d3:	8d 45 f0             	lea    -0x10(%ebp),%eax
50c6d6:	50                   	push   %eax
50c6d7:	57                   	push   %edi
50c6d8:	ff 75 08             	push   0x8(%ebp)
50c6db:	e8 30 fa ff ff       	call   0x50c110
50c6e0:	8b d8                	mov    %eax,%ebx
50c6e2:	83 c4 0c             	add    $0xc,%esp
50c6e5:	85 db                	test   %ebx,%ebx
50c6e7:	75 17                	jne    0x50c700
50c6e9:	8b 55 18             	mov    0x18(%ebp),%edx
50c6ec:	8b c2                	mov    %edx,%eax
50c6ee:	2b 45 0c             	sub    0xc(%ebp),%eax
50c6f1:	3b c7                	cmp    %edi,%eax
50c6f3:	0f 8c 8c 00 00 00    	jl     0x50c785
50c6f9:	2b d7                	sub    %edi,%edx
50c6fb:	89 55 18             	mov    %edx,0x18(%ebp)
50c6fe:	8b da                	mov    %edx,%ebx
50c700:	8b 45 20             	mov    0x20(%ebp),%eax
50c703:	8b 55 f8             	mov    -0x8(%ebp),%edx
50c706:	8b 40 08             	mov    0x8(%eax),%eax
50c709:	8b 0c b0             	mov    (%eax,%esi,4),%ecx
50c70c:	8d 04 39             	lea    (%ecx,%edi,1),%eax
50c70f:	3b c2                	cmp    %edx,%eax
50c711:	76 04                	jbe    0x50c717
50c713:	3b ca                	cmp    %edx,%ecx
50c715:	72 50                	jb     0x50c767
50c717:	57                   	push   %edi
50c718:	51                   	push   %ecx
50c719:	53                   	push   %ebx
50c71a:	e8 61 6d 0d 00       	call   0x5e3480
50c71f:	8b 55 14             	mov    0x14(%ebp),%edx
50c722:	8b c3                	mov    %ebx,%eax
50c724:	8b 4d fc             	mov    -0x4(%ebp),%ecx
50c727:	46                   	inc    %esi
50c728:	2b c1                	sub    %ecx,%eax
50c72a:	2a d9                	sub    %cl,%bl
50c72c:	c1 f8 08             	sar    $0x8,%eax
50c72f:	83 c4 0c             	add    $0xc,%esp
50c732:	88 02                	mov    %al,(%edx)
50c734:	88 5a 01             	mov    %bl,0x1(%edx)
50c737:	83 c2 02             	add    $0x2,%edx
50c73a:	89 55 14             	mov    %edx,0x14(%ebp)
50c73d:	3b 75 f4             	cmp    -0xc(%ebp),%esi
50c740:	7d 4f                	jge    0x50c791
50c742:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
50c745:	8b 55 18             	mov    0x18(%ebp),%edx
50c748:	8b 5d fc             	mov    -0x4(%ebp),%ebx