4fd3d1:	2b c2                	sub    %edx,%eax
4fd3d3:	85 c0                	test   %eax,%eax
4fd3d5:	7e 48                	jle    0x4fd41f
4fd3d7:	8b f8                	mov    %eax,%edi
4fd3d9:	0f af 7c 24 08       	imul   0x8(%esp),%edi
4fd3de:	83 7c 24 04 00       	cmpl   $0x0,0x4(%esp)
4fd3e3:	74 17                	je     0x4fd3fc
4fd3e5:	8b 44 24 0c          	mov    0xc(%esp),%eax
4fd3e9:	50                   	push   %eax
4fd3ea:	57                   	push   %edi
4fd3eb:	8b 13                	mov    (%ebx),%edx
4fd3ed:	8b 44 24 08          	mov    0x8(%esp),%eax
4fd3f1:	8b 0c b2             	mov    (%edx,%esi,4),%ecx
4fd3f4:	8d 53 30             	lea    0x30(%ebx),%edx
4fd3f7:	ff 53 34             	call   *0x34(%ebx)
4fd3fa:	eb 15                	jmp    0x4fd411
4fd3fc:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
4fd400:	8d 53 30             	lea    0x30(%ebx),%edx
4fd403:	51                   	push   %ecx
4fd404:	57                   	push   %edi
4fd405:	8b 03                	mov    (%ebx),%eax
4fd407:	8b 0c b0             	mov    (%eax,%esi,4),%ecx
4fd40a:	8b 44 24 08          	mov    0x8(%esp),%eax
4fd40e:	ff 53 30             	call   *0x30(%ebx)
4fd411:	01 7c 24 0c          	add    %edi,0xc(%esp)
4fd415:	03 73 14             	add    0x14(%ebx),%esi
4fd418:	8b 43 10             	mov    0x10(%ebx),%eax
4fd41b:	3b f0                	cmp    %eax,%esi
4fd41d:	7c 82                	jl     0x4fd3a1
4fd41f:	83 c4 10             	add    $0x10,%esp
4fd422:	5f                   	pop    %edi
4fd423:	5e                   	pop    %esi
4fd424:	5b                   	pop    %ebx
4fd425:	c3                   	ret
4fd426:	90                   	nop
4fd427:	90                   	nop
4fd428:	55                   	push   %ebp
4fd429:	8b ec                	mov    %esp,%ebp
4fd42b:	83 c4 f4             	add    $0xfffffff4,%esp
4fd42e:	53                   	push   %ebx
4fd42f:	56                   	push   %esi
4fd430:	57                   	push   %edi
4fd431:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4fd434:	8b da                	mov    %edx,%ebx
4fd436:	89 45 fc             	mov    %eax,-0x4(%ebp)
4fd439:	8b 45 0c             	mov    0xc(%ebp),%eax
4fd43c:	8b 7d f8             	mov    -0x8(%ebp),%edi
4fd43f:	03 f8                	add    %eax,%edi
4fd441:	3b 7b 04             	cmp    0x4(%ebx),%edi
4fd444:	77 0a                	ja     0x4fd450
4fd446:	3b 43 0c             	cmp    0xc(%ebx),%eax
4fd449:	77 05                	ja     0x4fd450
4fd44b:	83 3b 00             	cmpl   $0x0,(%ebx)
4fd44e:	75 13                	jne    0x4fd463
4fd450:	8b 45 fc             	mov    -0x4(%ebp),%eax
4fd453:	8b 10                	mov    (%eax),%edx
4fd455:	c7 42 14 14 00 00 00 	movl   $0x14,0x14(%edx)
4fd45c:	8b 45 fc             	mov    -0x4(%ebp),%eax
4fd45f:	8b 10                	mov    (%eax),%edx
4fd461:	ff 12                	call   *(%edx)
4fd463:	8b 43 18             	mov    0x18(%ebx),%eax
4fd466:	3b 45 f8             	cmp    -0x8(%ebp),%eax
4fd469:	77 07                	ja     0x4fd472
4fd46b:	03 43 10             	add    0x10(%ebx),%eax
4fd46e:	3b f8                	cmp    %eax,%edi
4fd470:	76 5d                	jbe    0x4fd4cf
4fd472:	83 7b 28 00          	cmpl   $0x0,0x28(%ebx)
4fd476:	75 13                	jne    0x4fd48b
4fd478:	8b 55 fc             	mov    -0x4(%ebp),%edx
4fd47b:	8b 0a                	mov    (%edx),%ecx
4fd47d:	c7 41 14 44 00 00 00 	movl   $0x44,0x14(%ecx)
4fd484:	8b 45 fc             	mov    -0x4(%ebp),%eax
4fd487:	8b 10                	mov    (%eax),%edx
4fd489:	ff 12                	call   *(%edx)
4fd48b:	83 7b 24 00          	cmpl   $0x0,0x24(%ebx)
4fd48f:	74 14                	je     0x4fd4a5
4fd491:	b9 01 00 00 00       	mov    $0x1,%ecx
4fd496:	8b d3                	mov    %ebx,%edx
4fd498:	8b 45 fc             	mov    -0x4(%ebp),%eax
4fd49b:	e8 2c fe ff ff       	call   0x4fd2cc
4fd4a0:	33 c9                	xor    %ecx,%ecx
4fd4a2:	89 4b 24             	mov    %ecx,0x24(%ebx)
4fd4a5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4fd4a8:	3b 43 18             	cmp    0x18(%ebx),%eax
4fd4ab:	76 08                	jbe    0x4fd4b5
4fd4ad:	8b 55 f8             	mov    -0x8(%ebp),%edx
4fd4b0:	89 53 18             	mov    %edx,0x18(%ebx)
4fd4b3:	eb 0e                	jmp    0x4fd4c3
4fd4b5:	8b c7                	mov    %edi,%eax
4fd4b7:	2b 43 10             	sub    0x10(%ebx),%eax
4fd4ba:	85 c0                	test   %eax,%eax
4fd4bc:	7d 02                	jge    0x4fd4c0
4fd4be:	33 c0                	xor    %eax,%eax
4fd4c0:	89 43 18             	mov    %eax,0x18(%ebx)
4fd4c3:	33 c9                	xor    %ecx,%ecx
4fd4c5:	8b d3                	mov    %ebx,%edx
4fd4c7:	8b 45 fc             	mov    -0x4(%ebp),%eax
4fd4ca:	e8 fd fd ff ff       	call   0x4fd2cc
4fd4cf:	8b 43 1c             	mov    0x1c(%ebx),%eax
4fd4d2:	3b f8                	cmp    %eax,%edi
4fd4d4:	76 7a                	jbe    0x4fd550
4fd4d6:	3b 45 f8             	cmp    -0x8(%ebp),%eax
4fd4d9:	73 1e                	jae    0x4fd4f9
4fd4db:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4fd4df:	74 13                	je     0x4fd4f4
4fd4e1:	8b 55 fc             	mov    -0x4(%ebp),%edx
4fd4e4:	8b 0a                	mov    (%edx),%ecx
4fd4e6:	c7 41 14 14 00 00 00 	movl   $0x14,0x14(%ecx)
4fd4ed:	8b 45 fc             	mov    -0x4(%ebp),%eax
4fd4f0:	8b 10                	mov    (%eax),%edx
4fd4f2:	ff 12                	call   *(%edx)
4fd4f4:	8b 75 f8             	mov    -0x8(%ebp),%esi
4fd4f7:	eb 03                	jmp    0x4fd4fc
4fd4f9:	8b 73 1c             	mov    0x1c(%ebx),%esi
4fd4fc:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4fd500:	74 03                	je     0x4fd505
4fd502:	89 7b 1c             	mov    %edi,0x1c(%ebx)
4fd505:	83 7b 20 00          	cmpl   $0x0,0x20(%ebx)
4fd509:	74 2c                	je     0x4fd537
4fd50b:	8b 43 08             	mov    0x8(%ebx),%eax
4fd50e:	89 45 f4             	mov    %eax,-0xc(%ebp)
4fd511:	8b 43 18             	mov    0x18(%ebx),%eax
4fd514:	2b f0                	sub    %eax,%esi
4fd516:	2b f8                	sub    %eax,%edi
4fd518:	3b fe                	cmp    %esi,%edi
4fd51a:	76 34                	jbe    0x4fd550
4fd51c:	8b 55 f4             	mov    -0xc(%ebp),%edx
4fd51f:	52                   	push   %edx
4fd520:	6a 00                	push   $0x0
4fd522:	8b 0b                	mov    (%ebx),%ecx
4fd524:	8b 04 b1             	mov    (%ecx,%esi,4),%eax
4fd527:	50                   	push   %eax
4fd528:	e8 87 dd ff ff       	call   0x4fb2b4
4fd52d:	83 c4 0c             	add    $0xc,%esp
4fd530:	46                   	inc    %esi
4fd531:	3b fe                	cmp    %esi,%edi
4fd533:	77 e7                	ja     0x4fd51c
4fd535:	eb 19                	jmp    0x4fd550
4fd537:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4fd53b:	75 13                	jne    0x4fd550
4fd53d:	8b 55 fc             	mov    -0x4(%ebp),%edx
4fd540:	8b 0a                	mov    (%edx),%ecx
4fd542:	c7 41 14 14 00 00 00 	movl   $0x14,0x14(%ecx)
4fd549:	8b 45 fc             	mov    -0x4(%ebp),%eax
4fd54c:	8b 10                	mov    (%eax),%edx
4fd54e:	ff 12                	call   *(%edx)
4fd550:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4fd554:	74 07                	je     0x4fd55d
4fd556:	c7 43 24 01 00 00 00 	movl   $0x1,0x24(%ebx)
4fd55d:	8b 45 f8             	mov    -0x8(%ebp),%eax
4fd560:	2b 43 18             	sub    0x18(%ebx),%eax
4fd563:	c1 e0 02             	shl    $0x2,%eax
4fd566:	03 03                	add    (%ebx),%eax
4fd568:	5f                   	pop    %edi
4fd569:	5e                   	pop    %esi
4fd56a:	5b                   	pop    %ebx
4fd56b:	8b e5                	mov    %ebp,%esp
4fd56d:	5d                   	pop    %ebp
4fd56e:	c2 08 00             	ret    $0x8
4fd571:	90                   	nop
4fd572:	90                   	nop
4fd573:	90                   	nop
4fd574:	55                   	push   %ebp
4fd575:	8b ec                	mov    %esp,%ebp
4fd577:	83 c4 f4             	add    $0xfffffff4,%esp
4fd57a:	53                   	push   %ebx
4fd57b:	56                   	push   %esi
4fd57c:	57                   	push   %edi
4fd57d:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4fd580:	8b da                	mov    %edx,%ebx
4fd582:	89 45 fc             	mov    %eax,-0x4(%ebp)
4fd585:	8b 45 0c             	mov    0xc(%ebp),%eax
4fd588:	8b 7d f8             	mov    -0x8(%ebp),%edi
4fd58b:	03 f8                	add    %eax,%edi
4fd58d:	3b 7b 04             	cmp    0x4(%ebx),%edi
4fd590:	77 0a                	ja     0x4fd59c
4fd592:	3b 43 0c             	cmp    0xc(%ebx),%eax
4fd595:	77 05                	ja     0x4fd59c
4fd597:	83 3b 00             	cmpl   $0x0,(%ebx)
4fd59a:	75 13                	jne    0x4fd5af
4fd59c:	8b 45 fc             	mov    -0x4(%ebp),%eax
4fd59f:	8b 10                	mov    (%eax),%edx
4fd5a1:	c7 42 14 14 00 00 00 	movl   $0x14,0x14(%edx)
4fd5a8:	8b 45 fc             	mov    -0x4(%ebp),%eax
4fd5ab:	8b 10                	mov    (%eax),%edx
4fd5ad:	ff 12                	call   *(%edx)
4fd5af:	8b 43 18             	mov    0x18(%ebx),%eax
4fd5b2:	3b 45 f8             	cmp    -0x8(%ebp),%eax
4fd5b5:	77 07                	ja     0x4fd5be
4fd5b7:	03 43 10             	add    0x10(%ebx),%eax
4fd5ba:	3b f8                	cmp    %eax,%edi
4fd5bc:	76 5d                	jbe    0x4fd61b
4fd5be:	83 7b 28 00          	cmpl   $0x0,0x28(%ebx)
4fd5c2:	75 13                	jne    0x4fd5d7
4fd5c4:	8b 55 fc             	mov    -0x4(%ebp),%edx
4fd5c7:	8b 0a                	mov    (%edx),%ecx
4fd5c9:	c7 41 14 44 00 00 00 	movl   $0x44,0x14(%ecx)
4fd5d0:	8b 45 fc             	mov    -0x4(%ebp),%eax
4fd5d3:	8b 10                	mov    (%eax),%edx
4fd5d5:	ff 12                	call   *(%edx)
4fd5d7:	83 7b 24 00          	cmpl   $0x0,0x24(%ebx)
4fd5db:	74 14                	je     0x4fd5f1
4fd5dd:	b9 01 00 00 00       	mov    $0x1,%ecx
4fd5e2:	8b d3                	mov    %ebx,%edx
4fd5e4:	8b 45 fc             	mov    -0x4(%ebp),%eax
4fd5e7:	e8 8c fd ff ff       	call   0x4fd378
4fd5ec:	33 c9                	xor    %ecx,%ecx
4fd5ee:	89 4b 24             	mov    %ecx,0x24(%ebx)
4fd5f1:	8b 45 f8             	mov    -0x8(%ebp),%eax
4fd5f4:	3b 43 18             	cmp    0x18(%ebx),%eax
4fd5f7:	76 08                	jbe    0x4fd601
4fd5f9:	8b 55 f8             	mov    -0x8(%ebp),%edx
4fd5fc:	89 53 18             	mov    %edx,0x18(%ebx)
4fd5ff:	eb 0e                	jmp    0x4fd60f
4fd601:	8b c7                	mov    %edi,%eax
4fd603:	2b 43 10             	sub    0x10(%ebx),%eax
4fd606:	85 c0                	test   %eax,%eax
4fd608:	7d 02                	jge    0x4fd60c
4fd60a:	33 c0                	xor    %eax,%eax
4fd60c:	89 43 18             	mov    %eax,0x18(%ebx)
4fd60f:	33 c9                	xor    %ecx,%ecx
4fd611:	8b d3                	mov    %ebx,%edx
4fd613:	8b 45 fc             	mov    -0x4(%ebp),%eax
4fd616:	e8 5d fd ff ff       	call   0x4fd378
4fd61b:	8b 43 1c             	mov    0x1c(%ebx),%eax
4fd61e:	3b f8                	cmp    %eax,%edi
4fd620:	76 7d                	jbe    0x4fd69f
4fd622:	3b 45 f8             	cmp    -0x8(%ebp),%eax
4fd625:	73 1e                	jae    0x4fd645
4fd627:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4fd62b:	74 13                	je     0x4fd640
4fd62d:	8b 55 fc             	mov    -0x4(%ebp),%edx
4fd630:	8b 0a                	mov    (%edx),%ecx
4fd632:	c7 41 14 14 00 00 00 	movl   $0x14,0x14(%ecx)
4fd639:	8b 45 fc             	mov    -0x4(%ebp),%eax
4fd63c:	8b 10                	mov    (%eax),%edx
4fd63e:	ff 12                	call   *(%edx)
4fd640:	8b 75 f8             	mov    -0x8(%ebp),%esi
4fd643:	eb 03                	jmp    0x4fd648
4fd645:	8b 73 1c             	mov    0x1c(%ebx),%esi
4fd648:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4fd64c:	74 03                	je     0x4fd651
4fd64e:	89 7b 1c             	mov    %edi,0x1c(%ebx)
4fd651:	83 7b 20 00          	cmpl   $0x0,0x20(%ebx)
4fd655:	74 2f                	je     0x4fd686
4fd657:	8b 43 08             	mov    0x8(%ebx),%eax
4fd65a:	c1 e0 07             	shl    $0x7,%eax
4fd65d:	89 45 f4             	mov    %eax,-0xc(%ebp)
4fd660:	8b 43 18             	mov    0x18(%ebx),%eax
4fd663:	2b f0                	sub    %eax,%esi
4fd665:	2b f8                	sub    %eax,%edi
4fd667:	3b fe                	cmp    %esi,%edi
4fd669:	76 34                	jbe    0x4fd69f
4fd66b:	8b 55 f4             	mov    -0xc(%ebp),%edx
4fd66e:	52                   	push   %edx
4fd66f:	6a 00                	push   $0x0
4fd671:	8b 0b                	mov    (%ebx),%ecx
4fd673:	8b 04 b1             	mov    (%ecx,%esi,4),%eax
4fd676:	50                   	push   %eax
4fd677:	e8 38 dc ff ff       	call   0x4fb2b4
4fd67c:	83 c4 0c             	add    $0xc,%esp
4fd67f:	46                   	inc    %esi
4fd680:	3b fe                	cmp    %esi,%edi
4fd682:	77 e7                	ja     0x4fd66b
4fd684:	eb 19                	jmp    0x4fd69f
4fd686:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4fd68a:	75 13                	jne    0x4fd69f
4fd68c:	8b 55 fc             	mov    -0x4(%ebp),%edx
4fd68f:	8b 0a                	mov    (%edx),%ecx
4fd691:	c7 41 14 14 00 00 00 	movl   $0x14,0x14(%ecx)
4fd698:	8b 45 fc             	mov    -0x4(%ebp),%eax
4fd69b:	8b 10                	mov    (%eax),%edx
4fd69d:	ff 12                	call   *(%edx)
4fd69f:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4fd6a3:	74 07                	je     0x4fd6ac
4fd6a5:	c7 43 24 01 00 00 00 	movl   $0x1,0x24(%ebx)
4fd6ac:	8b 45 f8             	mov    -0x8(%ebp),%eax
4fd6af:	2b 43 18             	sub    0x18(%ebx),%eax
4fd6b2:	c1 e0 02             	shl    $0x2,%eax
4fd6b5:	03 03                	add    (%ebx),%eax
4fd6b7:	5f                   	pop    %edi
4fd6b8:	5e                   	pop    %esi
4fd6b9:	5b                   	pop    %ebx
4fd6ba:	8b e5                	mov    %ebp,%esp
4fd6bc:	5d                   	pop    %ebp
4fd6bd:	c2 08 00             	ret    $0x8
4fd6c0:	53                   	push   %ebx
4fd6c1:	56                   	push   %esi
4fd6c2:	57                   	push   %edi
4fd6c3:	83 c4 f4             	add    $0xfffffff4,%esp
4fd6c6:	89 14 24             	mov    %edx,(%esp)
4fd6c9:	8b f8                	mov    %eax,%edi
4fd6cb:	8b 77 04             	mov    0x4(%edi),%esi
4fd6ce:	83 3c 24 00          	cmpl   $0x0,(%esp)
4fd6d2:	7c 06                	jl     0x4fd6da
4fd6d4:	83 3c 24 02          	cmpl   $0x2,(%esp)
4fd6d8:	7c 15                	jl     0x4fd6ef
4fd6da:	8b 07                	mov    (%edi),%eax
4fd6dc:	c7 40 14 0c 00 00 00 	movl   $0xc,0x14(%eax)
4fd6e3:	8b 14 24             	mov    (%esp),%edx
4fd6e6:	89 50 18             	mov    %edx,0x18(%eax)
4fd6e9:	8b c7                	mov    %edi,%eax
4fd6eb:	8b 10                	mov    (%eax),%edx
4fd6ed:	ff 12                	call   *(%edx)
4fd6ef:	83 3c 24 01          	cmpl   $0x1,(%esp)
4fd6f3:	75 4c                	jne    0x4fd741
4fd6f5:	8b 5e 40             	mov    0x40(%esi),%ebx
4fd6f8:	85 db                	test   %ebx,%ebx
4fd6fa:	74 1a                	je     0x4fd716
4fd6fc:	83 7b 28 00          	cmpl   $0x0,0x28(%ebx)
4fd700:	74 0d                	je     0x4fd70f
4fd702:	33 c0                	xor    %eax,%eax
4fd704:	8d 53 30             	lea    0x30(%ebx),%edx
4fd707:	89 43 28             	mov    %eax,0x28(%ebx)
4fd70a:	8b c7                	mov    %edi,%eax
4fd70c:	ff 53 38             	call   *0x38(%ebx)
4fd70f:	8b 5b 2c             	mov    0x2c(%ebx),%ebx
4fd712:	85 db                	test   %ebx,%ebx
4fd714:	75 e6                	jne    0x4fd6fc
4fd716:	33 d2                	xor    %edx,%edx
4fd718:	89 56 40             	mov    %edx,0x40(%esi)
4fd71b:	8b 5e 44             	mov    0x44(%esi),%ebx
4fd71e:	85 db                	test   %ebx,%ebx
4fd720:	74 1a                	je     0x4fd73c
4fd722:	83 7b 28 00          	cmpl   $0x0,0x28(%ebx)
4fd726:	74 0d                	je     0x4fd735
4fd728:	33 c0                	xor    %eax,%eax
4fd72a:	8d 53 30             	lea    0x30(%ebx),%edx
4fd72d:	89 43 28             	mov    %eax,0x28(%ebx)
4fd730:	8b c7                	mov    %edi,%eax
4fd732:	ff 53 38             	call   *0x38(%ebx)
4fd735:	8b 5b 2c             	mov    0x2c(%ebx),%ebx
4fd738:	85 db                	test   %ebx,%ebx
4fd73a:	75 e6                	jne    0x4fd722
4fd73c:	33 d2                	xor    %edx,%edx
4fd73e:	89 56 44             	mov    %edx,0x44(%esi)
4fd741:	8b 0c 24             	mov    (%esp),%ecx
4fd744:	8b 14 24             	mov    (%esp),%edx
4fd747:	8b 44 8e 38          	mov    0x38(%esi,%ecx,4),%eax
4fd74b:	33 c9                	xor    %ecx,%ecx
4fd74d:	89 4c 96 38          	mov    %ecx,0x38(%esi,%edx,4)
4fd751:	85 c0                	test   %eax,%eax
4fd753:	74 2a                	je     0x4fd77f
4fd755:	8b 10                	mov    (%eax),%edx
4fd757:	89 54 24 04          	mov    %edx,0x4(%esp)
4fd75b:	8b d0                	mov    %eax,%edx
4fd75d:	8b 58 04             	mov    0x4(%eax),%ebx
4fd760:	03 58 08             	add    0x8(%eax),%ebx
4fd763:	8b c7                	mov    %edi,%eax
4fd765:	83 c3 0c             	add    $0xc,%ebx