50148c:	3b 4d 08             	cmp    0x8(%ebp),%ecx
50148f:	7c 9f                	jl     0x501430
501491:	5f                   	pop    %edi
501492:	5e                   	pop    %esi
501493:	5b                   	pop    %ebx
501494:	8b e5                	mov    %ebp,%esp
501496:	5d                   	pop    %ebp
501497:	c2 04 00             	ret    $0x4
50149a:	90                   	nop
50149b:	90                   	nop
50149c:	55                   	push   %ebp
50149d:	8b ec                	mov    %esp,%ebp
50149f:	83 c4 e4             	add    $0xffffffe4,%esp
5014a2:	53                   	push   %ebx
5014a3:	56                   	push   %esi
5014a4:	57                   	push   %edi
5014a5:	8b 98 c4 01 00 00    	mov    0x1c4(%eax),%ebx
5014ab:	8b 73 18             	mov    0x18(%ebx),%esi
5014ae:	8b 3e                	mov    (%esi),%edi
5014b0:	89 7d fc             	mov    %edi,-0x4(%ebp)
5014b3:	8b 7e 04             	mov    0x4(%esi),%edi
5014b6:	89 7d f8             	mov    %edi,-0x8(%ebp)
5014b9:	8b 5e 08             	mov    0x8(%esi),%ebx
5014bc:	89 5d f4             	mov    %ebx,-0xc(%ebp)
5014bf:	8b 40 6c             	mov    0x6c(%eax),%eax
5014c2:	89 45 ec             	mov    %eax,-0x14(%ebp)
5014c5:	33 c0                	xor    %eax,%eax
5014c7:	89 45 f0             	mov    %eax,-0x10(%ebp)
5014ca:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
5014cd:	89 55 e8             	mov    %edx,-0x18(%ebp)
5014d0:	8b 45 f0             	mov    -0x10(%ebp),%eax
5014d3:	3b 45 08             	cmp    0x8(%ebp),%eax
5014d6:	7d 54                	jge    0x50152c
5014d8:	8b 55 e8             	mov    -0x18(%ebp),%edx
5014db:	8b 02                	mov    (%edx),%eax
5014dd:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5014e0:	8b 0a                	mov    (%edx),%ecx
5014e2:	8b 75 ec             	mov    -0x14(%ebp),%esi
5014e5:	85 f6                	test   %esi,%esi
5014e7:	76 30                	jbe    0x501519
5014e9:	33 d2                	xor    %edx,%edx
5014eb:	8b 5d fc             	mov    -0x4(%ebp),%ebx
5014ee:	8a 10                	mov    (%eax),%dl
5014f0:	40                   	inc    %eax
5014f1:	8b 7d f8             	mov    -0x8(%ebp),%edi
5014f4:	4e                   	dec    %esi
5014f5:	0f b6 14 13          	movzbl (%ebx,%edx,1),%edx
5014f9:	33 db                	xor    %ebx,%ebx
5014fb:	8a 18                	mov    (%eax),%bl
5014fd:	40                   	inc    %eax
5014fe:	0f b6 1c 1f          	movzbl (%edi,%ebx,1),%ebx
501502:	03 d3                	add    %ebx,%edx
501504:	33 db                	xor    %ebx,%ebx
501506:	8a 18                	mov    (%eax),%bl
501508:	8b 7d f4             	mov    -0xc(%ebp),%edi
50150b:	40                   	inc    %eax
50150c:	0f b6 1c 1f          	movzbl (%edi,%ebx,1),%ebx
501510:	03 d3                	add    %ebx,%edx
501512:	88 11                	mov    %dl,(%ecx)
501514:	41                   	inc    %ecx
501515:	85 f6                	test   %esi,%esi
501517:	77 d0                	ja     0x5014e9
501519:	ff 45 f0             	incl   -0x10(%ebp)
50151c:	83 45 e4 04          	addl   $0x4,-0x1c(%ebp)
501520:	83 45 e8 04          	addl   $0x4,-0x18(%ebp)
501524:	8b 45 f0             	mov    -0x10(%ebp),%eax
501527:	3b 45 08             	cmp    0x8(%ebp),%eax
50152a:	7c ac                	jl     0x5014d8
50152c:	5f                   	pop    %edi
50152d:	5e                   	pop    %esi
50152e:	5b                   	pop    %ebx
50152f:	8b e5                	mov    %ebp,%esp
501531:	5d                   	pop    %ebp
501532:	c2 04 00             	ret    $0x4
501535:	90                   	nop
501536:	90                   	nop
501537:	90                   	nop
501538:	55                   	push   %ebp
501539:	8b ec                	mov    %esp,%ebp
50153b:	83 c4 cc             	add    $0xffffffcc,%esp
50153e:	53                   	push   %ebx
50153f:	56                   	push   %esi
501540:	57                   	push   %edi
501541:	8b 98 c4 01 00 00    	mov    0x1c4(%eax),%ebx
501547:	89 5d fc             	mov    %ebx,-0x4(%ebp)
50154a:	8b 58 74             	mov    0x74(%eax),%ebx
50154d:	89 5d ec             	mov    %ebx,-0x14(%ebp)
501550:	8b 40 6c             	mov    0x6c(%eax),%eax
501553:	89 45 e0             	mov    %eax,-0x20(%ebp)
501556:	33 c0                	xor    %eax,%eax
501558:	89 45 e4             	mov    %eax,-0x1c(%ebp)
50155b:	89 55 cc             	mov    %edx,-0x34(%ebp)
50155e:	89 4d dc             	mov    %ecx,-0x24(%ebp)
501561:	8b 45 e4             	mov    -0x1c(%ebp),%eax
501564:	3b 45 08             	cmp    0x8(%ebp),%eax
501567:	0f 8d d5 00 00 00    	jge    0x501642
50156d:	8b 55 e0             	mov    -0x20(%ebp),%edx
501570:	52                   	push   %edx
501571:	6a 00                	push   $0x0
501573:	8b 4d dc             	mov    -0x24(%ebp),%ecx
501576:	8b 01                	mov    (%ecx),%eax
501578:	50                   	push   %eax
501579:	e8 36 9d ff ff       	call   0x4fb2b4
50157e:	8b 55 fc             	mov    -0x4(%ebp),%edx
501581:	33 c0                	xor    %eax,%eax
501583:	83 c4 0c             	add    $0xc,%esp
501586:	8b 4a 30             	mov    0x30(%edx),%ecx
501589:	89 4d f0             	mov    %ecx,-0x10(%ebp)
50158c:	89 45 e8             	mov    %eax,-0x18(%ebp)
50158f:	8b 55 fc             	mov    -0x4(%ebp),%edx
501592:	8d 4a 34             	lea    0x34(%edx),%ecx
501595:	89 4d d0             	mov    %ecx,-0x30(%ebp)
501598:	8b 45 dc             	mov    -0x24(%ebp),%eax
50159b:	8b d0                	mov    %eax,%edx
50159d:	89 55 d4             	mov    %edx,-0x2c(%ebp)
5015a0:	8b 4d cc             	mov    -0x34(%ebp),%ecx
5015a3:	8b c1                	mov    %ecx,%eax
5015a5:	89 45 d8             	mov    %eax,-0x28(%ebp)
5015a8:	8b 55 e8             	mov    -0x18(%ebp),%edx
5015ab:	3b 55 ec             	cmp    -0x14(%ebp),%edx
5015ae:	7d 68                	jge    0x501618
5015b0:	8b 4d d8             	mov    -0x28(%ebp),%ecx
5015b3:	8b 45 d4             	mov    -0x2c(%ebp),%eax
5015b6:	8b 5d e8             	mov    -0x18(%ebp),%ebx
5015b9:	8b 11                	mov    (%ecx),%edx
5015bb:	8b 08                	mov    (%eax),%ecx
5015bd:	8b 45 fc             	mov    -0x4(%ebp),%eax
5015c0:	03 55 e8             	add    -0x18(%ebp),%edx
5015c3:	8b 40 18             	mov    0x18(%eax),%eax
5015c6:	8b 04 98             	mov    (%eax,%ebx,4),%eax
5015c9:	89 45 f8             	mov    %eax,-0x8(%ebp)
5015cc:	8b 45 d0             	mov    -0x30(%ebp),%eax
5015cf:	8b 5d f0             	mov    -0x10(%ebp),%ebx
5015d2:	c1 e3 06             	shl    $0x6,%ebx
5015d5:	8b 00                	mov    (%eax),%eax
5015d7:	03 c3                	add    %ebx,%eax
5015d9:	89 45 f4             	mov    %eax,-0xc(%ebp)
5015dc:	33 c0                	xor    %eax,%eax
5015de:	8b 75 e0             	mov    -0x20(%ebp),%esi
5015e1:	85 f6                	test   %esi,%esi
5015e3:	76 24                	jbe    0x501609
5015e5:	33 db                	xor    %ebx,%ebx
5015e7:	8b 7d f8             	mov    -0x8(%ebp),%edi
5015ea:	8a 1a                	mov    (%edx),%bl
5015ec:	4e                   	dec    %esi
5015ed:	8d 1c 1f             	lea    (%edi,%ebx,1),%ebx
5015f0:	53                   	push   %ebx
5015f1:	8b 5d f4             	mov    -0xc(%ebp),%ebx
5015f4:	5f                   	pop    %edi
5015f5:	8b 1c 83             	mov    (%ebx,%eax,4),%ebx
5015f8:	40                   	inc    %eax
5015f9:	83 e0 0f             	and    $0xf,%eax
5015fc:	8a 1c 1f             	mov    (%edi,%ebx,1),%bl
5015ff:	00 19                	add    %bl,(%ecx)
501601:	41                   	inc    %ecx
501602:	03 55 ec             	add    -0x14(%ebp),%edx
501605:	85 f6                	test   %esi,%esi
501607:	77 dc                	ja     0x5015e5
501609:	ff 45 e8             	incl   -0x18(%ebp)
50160c:	83 45 d0 04          	addl   $0x4,-0x30(%ebp)
501610:	8b 55 e8             	mov    -0x18(%ebp),%edx
501613:	3b 55 ec             	cmp    -0x14(%ebp),%edx
501616:	7c 98                	jl     0x5015b0
501618:	8b 4d f0             	mov    -0x10(%ebp),%ecx
50161b:	41                   	inc    %ecx
50161c:	83 e1 0f             	and    $0xf,%ecx
50161f:	89 4d f0             	mov    %ecx,-0x10(%ebp)
501622:	8b 45 fc             	mov    -0x4(%ebp),%eax
501625:	8b 55 f0             	mov    -0x10(%ebp),%edx
501628:	89 50 30             	mov    %edx,0x30(%eax)
50162b:	ff 45 e4             	incl   -0x1c(%ebp)
50162e:	83 45 cc 04          	addl   $0x4,-0x34(%ebp)
501632:	83 45 dc 04          	addl   $0x4,-0x24(%ebp)
501636:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
501639:	3b 4d 08             	cmp    0x8(%ebp),%ecx
50163c:	0f 8c 2b ff ff ff    	jl     0x50156d
501642:	5f                   	pop    %edi
501643:	5e                   	pop    %esi
501644:	5b                   	pop    %ebx
501645:	8b e5                	mov    %ebp,%esp
501647:	5d                   	pop    %ebp
501648:	c2 04 00             	ret    $0x4
50164b:	90                   	nop
50164c:	55                   	push   %ebp
50164d:	8b ec                	mov    %esp,%ebp
50164f:	83 c4 cc             	add    $0xffffffcc,%esp
501652:	53                   	push   %ebx
501653:	56                   	push   %esi
501654:	57                   	push   %edi
501655:	8b 98 c4 01 00 00    	mov    0x1c4(%eax),%ebx
50165b:	89 5d fc             	mov    %ebx,-0x4(%ebp)
50165e:	8b 5d fc             	mov    -0x4(%ebp),%ebx
501661:	8b 5b 18             	mov    0x18(%ebx),%ebx
501664:	8b 33                	mov    (%ebx),%esi
501666:	89 75 f8             	mov    %esi,-0x8(%ebp)
501669:	8b 73 04             	mov    0x4(%ebx),%esi
50166c:	89 75 f4             	mov    %esi,-0xc(%ebp)
50166f:	8b 5b 08             	mov    0x8(%ebx),%ebx
501672:	89 5d f0             	mov    %ebx,-0x10(%ebp)
501675:	8b 40 6c             	mov    0x6c(%eax),%eax
501678:	89 45 d4             	mov    %eax,-0x2c(%ebp)
50167b:	33 c0                	xor    %eax,%eax
50167d:	89 45 dc             	mov    %eax,-0x24(%ebp)
501680:	89 4d cc             	mov    %ecx,-0x34(%ebp)
501683:	89 55 d0             	mov    %edx,-0x30(%ebp)
501686:	8b 45 dc             	mov    -0x24(%ebp),%eax
501689:	3b 45 08             	cmp    0x8(%ebp),%eax
50168c:	0f 8d c9 00 00 00    	jge    0x50175b
501692:	8b 55 fc             	mov    -0x4(%ebp),%edx
501695:	8b 4a 30             	mov    0x30(%edx),%ecx
501698:	89 4d e0             	mov    %ecx,-0x20(%ebp)
50169b:	8b 55 cc             	mov    -0x34(%ebp),%edx
50169e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5016a1:	8b 45 d0             	mov    -0x30(%ebp),%eax
5016a4:	8b 32                	mov    (%edx),%esi
5016a6:	8b 55 e0             	mov    -0x20(%ebp),%edx
5016a9:	8b 49 34             	mov    0x34(%ecx),%ecx
5016ac:	c1 e2 06             	shl    $0x6,%edx
5016af:	8b 00                	mov    (%eax),%eax
5016b1:	03 ca                	add    %edx,%ecx
5016b3:	89 4d ec             	mov    %ecx,-0x14(%ebp)
5016b6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5016b9:	8b 49 38             	mov    0x38(%ecx),%ecx
5016bc:	03 ca                	add    %edx,%ecx
5016be:	89 4d e8             	mov    %ecx,-0x18(%ebp)
5016c1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5016c4:	8b 49 3c             	mov    0x3c(%ecx),%ecx
5016c7:	03 ca                	add    %edx,%ecx
5016c9:	33 d2                	xor    %edx,%edx
5016cb:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
5016ce:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5016d1:	89 4d d8             	mov    %ecx,-0x28(%ebp)
5016d4:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
5016d8:	76 57                	jbe    0x501731
5016da:	33 c9                	xor    %ecx,%ecx
5016dc:	8b 5d f8             	mov    -0x8(%ebp),%ebx
5016df:	8a 08                	mov    (%eax),%cl
5016e1:	40                   	inc    %eax
5016e2:	8b 7d f4             	mov    -0xc(%ebp),%edi
5016e5:	8d 0c 0b             	lea    (%ebx,%ecx,1),%ecx
5016e8:	8b 5d ec             	mov    -0x14(%ebp),%ebx
5016eb:	8b 1c 93             	mov    (%ebx,%edx,4),%ebx
5016ee:	0f b6 0c 19          	movzbl (%ecx,%ebx,1),%ecx
5016f2:	33 db                	xor    %ebx,%ebx
5016f4:	8a 18                	mov    (%eax),%bl
5016f6:	40                   	inc    %eax
5016f7:	8d 1c 1f             	lea    (%edi,%ebx,1),%ebx
5016fa:	53                   	push   %ebx
5016fb:	8b 5d e8             	mov    -0x18(%ebp),%ebx
5016fe:	5f                   	pop    %edi
5016ff:	8b 1c 93             	mov    (%ebx,%edx,4),%ebx
501702:	0f b6 1c 1f          	movzbl (%edi,%ebx,1),%ebx
501706:	03 cb                	add    %ebx,%ecx
501708:	33 db                	xor    %ebx,%ebx
50170a:	8a 18                	mov    (%eax),%bl
50170c:	8b 7d f0             	mov    -0x10(%ebp),%edi
50170f:	40                   	inc    %eax
501710:	8d 1c 1f             	lea    (%edi,%ebx,1),%ebx
501713:	53                   	push   %ebx
501714:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
501717:	5f                   	pop    %edi
501718:	8b 1c 93             	mov    (%ebx,%edx,4),%ebx
50171b:	42                   	inc    %edx
50171c:	83 e2 0f             	and    $0xf,%edx
50171f:	0f b6 1c 1f          	movzbl (%edi,%ebx,1),%ebx
501723:	03 cb                	add    %ebx,%ecx
501725:	88 0e                	mov    %cl,(%esi)
501727:	46                   	inc    %esi
501728:	ff 4d d8             	decl   -0x28(%ebp)
50172b:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
50172f:	77 a9                	ja     0x5016da
501731:	8b 45 e0             	mov    -0x20(%ebp),%eax
501734:	40                   	inc    %eax
501735:	83 e0 0f             	and    $0xf,%eax
501738:	89 45 e0             	mov    %eax,-0x20(%ebp)
50173b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
50173e:	8b 45 e0             	mov    -0x20(%ebp),%eax
501741:	89 41 30             	mov    %eax,0x30(%ecx)
501744:	ff 45 dc             	incl   -0x24(%ebp)
501747:	83 45 cc 04          	addl   $0x4,-0x34(%ebp)
50174b:	83 45 d0 04          	addl   $0x4,-0x30(%ebp)
50174f:	8b 55 dc             	mov    -0x24(%ebp),%edx
501752:	3b 55 08             	cmp    0x8(%ebp),%edx
501755:	0f 8c 37 ff ff ff    	jl     0x501692
50175b:	5f                   	pop    %edi
50175c:	5e                   	pop    %esi
50175d:	5b                   	pop    %ebx
50175e:	8b e5                	mov    %ebp,%esp
501760:	5d                   	pop    %ebp
501761:	c2 04 00             	ret    $0x4
501764:	55                   	push   %ebp
501765:	8b ec                	mov    %esp,%ebp
501767:	83 c4 b0             	add    $0xffffffb0,%esp
50176a:	53                   	push   %ebx
50176b:	56                   	push   %esi
50176c:	8b 98 c4 01 00 00    	mov    0x1c4(%eax),%ebx
501772:	89 5d fc             	mov    %ebx,-0x4(%ebp)
501775:	8b 58 74             	mov    0x74(%eax),%ebx
501778:	89 5d dc             	mov    %ebx,-0x24(%ebp)
50177b:	8b 58 6c             	mov    0x6c(%eax),%ebx
50177e:	89 5d c8             	mov    %ebx,-0x38(%ebp)
501781:	8b 80 3c 01 00 00    	mov    0x13c(%eax),%eax
501787:	89 45 c4             	mov    %eax,-0x3c(%ebp)
50178a:	33 c0                	xor    %eax,%eax
50178c:	89 45 d0             	mov    %eax,-0x30(%ebp)
50178f:	89 55 b0             	mov    %edx,-0x50(%ebp)
501792:	89 4d c0             	mov    %ecx,-0x40(%ebp)
501795:	8b 45 d0             	mov    -0x30(%ebp),%eax
501798:	3b 45 08             	cmp    0x8(%ebp),%eax
50179b:	0f 8d 7e 01 00 00    	jge    0x50191f
5017a1:	8b 55 c8             	mov    -0x38(%ebp),%edx
5017a4:	52                   	push   %edx
5017a5:	6a 00                	push   $0x0
5017a7:	8b 4d c0             	mov    -0x40(%ebp),%ecx
5017aa:	8b 01                	mov    (%ecx),%eax
5017ac:	50                   	push   %eax
5017ad:	e8 02 9b ff ff       	call   0x4fb2b4
5017b2:	83 c4 0c             	add    $0xc,%esp
5017b5:	33 d2                	xor    %edx,%edx
5017b7:	89 55 d4             	mov    %edx,-0x2c(%ebp)
5017ba:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5017bd:	8d 41 44             	lea    0x44(%ecx),%eax
5017c0:	89 45 b4             	mov    %eax,-0x4c(%ebp)
5017c3:	8b 55 c0             	mov    -0x40(%ebp),%edx
5017c6:	8b ca                	mov    %edx,%ecx
5017c8:	89 4d b8             	mov    %ecx,-0x48(%ebp)
5017cb:	8b 45 b0             	mov    -0x50(%ebp),%eax
5017ce:	8b d0                	mov    %eax,%edx
5017d0:	89 55 bc             	mov    %edx,-0x44(%ebp)
5017d3:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5017d6:	3b 4d dc             	cmp    -0x24(%ebp),%ecx
5017d9:	0f 8d 11 01 00 00    	jge    0x5018f0
5017df:	8b 45 bc             	mov    -0x44(%ebp),%eax
5017e2:	8b 10                	mov    (%eax),%edx
5017e4:	03 55 d4             	add    -0x2c(%ebp),%edx
5017e7:	89 55 ec             	mov    %edx,-0x14(%ebp)
5017ea:	8b 4d b8             	mov    -0x48(%ebp),%ecx
5017ed:	8b 01                	mov    (%ecx),%eax
5017ef:	89 45 e8             	mov    %eax,-0x18(%ebp)
5017f2:	8b 55 fc             	mov    -0x4(%ebp),%edx
5017f5:	83 7a 54 00          	cmpl   $0x0,0x54(%edx)
5017f9:	74 2a                	je     0x501825
5017fb:	8b 45 c8             	mov    -0x38(%ebp),%eax
5017fe:	83 ce ff             	or     $0xffffffff,%esi
501801:	48                   	dec    %eax
501802:	8b d0                	mov    %eax,%edx
501804:	0f af 55 dc          	imul   -0x24(%ebp),%edx
501808:	01 55 ec             	add    %edx,-0x14(%ebp)
50180b:	01 45 e8             	add    %eax,-0x18(%ebp)
50180e:	8b 45 dc             	mov    -0x24(%ebp),%eax