4ae3eb:	5f                   	pop    %edi
4ae3ec:	33 c0                	xor    %eax,%eax
4ae3ee:	5e                   	pop    %esi
4ae3ef:	c3                   	ret
4ae3f0:	53                   	push   %ebx
4ae3f1:	56                   	push   %esi
4ae3f2:	8b 74 24 0c          	mov    0xc(%esp),%esi
4ae3f6:	33 c0                	xor    %eax,%eax
4ae3f8:	57                   	push   %edi
4ae3f9:	8b 16                	mov    (%esi),%edx
4ae3fb:	85 d2                	test   %edx,%edx
4ae3fd:	7e 15                	jle    0x4ae414
4ae3ff:	8b 5e 04             	mov    0x4(%esi),%ebx
4ae402:	8b cb                	mov    %ebx,%ecx
4ae404:	8b 7c 24 14          	mov    0x14(%esp),%edi
4ae408:	39 39                	cmp    %edi,(%ecx)
4ae40a:	74 0e                	je     0x4ae41a
4ae40c:	40                   	inc    %eax
4ae40d:	83 c1 04             	add    $0x4,%ecx
4ae410:	3b c2                	cmp    %edx,%eax
4ae412:	7c f4                	jl     0x4ae408
4ae414:	5f                   	pop    %edi
4ae415:	5e                   	pop    %esi
4ae416:	33 c0                	xor    %eax,%eax
4ae418:	5b                   	pop    %ebx
4ae419:	c3                   	ret
4ae41a:	85 c0                	test   %eax,%eax
4ae41c:	78 2a                	js     0x4ae448
4ae41e:	3b c2                	cmp    %edx,%eax
4ae420:	7d 26                	jge    0x4ae448
4ae422:	8b 1c 83             	mov    (%ebx,%eax,4),%ebx
4ae425:	8d 7a ff             	lea    -0x1(%edx),%edi
4ae428:	3b c7                	cmp    %edi,%eax
4ae42a:	7d 14                	jge    0x4ae440
4ae42c:	0f 1f 40 00          	nopl   0x0(%eax)
4ae430:	8b 4e 04             	mov    0x4(%esi),%ecx
4ae433:	8d 14 81             	lea    (%ecx,%eax,4),%edx
4ae436:	40                   	inc    %eax
4ae437:	8b 4a 04             	mov    0x4(%edx),%ecx
4ae43a:	89 0a                	mov    %ecx,(%edx)
4ae43c:	3b c7                	cmp    %edi,%eax
4ae43e:	7c f0                	jl     0x4ae430
4ae440:	ff 0e                	decl   (%esi)
4ae442:	8b c3                	mov    %ebx,%eax
4ae444:	5f                   	pop    %edi
4ae445:	5e                   	pop    %esi
4ae446:	5b                   	pop    %ebx
4ae447:	c3                   	ret
4ae448:	5f                   	pop    %edi
4ae449:	33 db                	xor    %ebx,%ebx
4ae44b:	5e                   	pop    %esi
4ae44c:	8b c3                	mov    %ebx,%eax
4ae44e:	5b                   	pop    %ebx
4ae44f:	c3                   	ret
4ae450:	6a 02                	push   $0x2
4ae452:	ff 74 24 0c          	push   0xc(%esp)
4ae456:	ff 74 24 0c          	push   0xc(%esp)
4ae45a:	e8 d1 fe ff ff       	call   0x4ae330
4ae45f:	83 c4 0c             	add    $0xc,%esp
4ae462:	c3                   	ret
4ae463:	cc                   	int3
4ae464:	cc                   	int3
4ae465:	cc                   	int3
4ae466:	cc                   	int3
4ae467:	cc                   	int3
4ae468:	cc                   	int3
4ae469:	cc                   	int3
4ae46a:	cc                   	int3
4ae46b:	cc                   	int3
4ae46c:	cc                   	int3
4ae46d:	cc                   	int3
4ae46e:	cc                   	int3
4ae46f:	cc                   	int3
4ae470:	56                   	push   %esi
4ae471:	8b 74 24 08          	mov    0x8(%esp),%esi
4ae475:	85 f6                	test   %esi,%esi
4ae477:	74 19                	je     0x4ae492
4ae479:	8b 46 04             	mov    0x4(%esi),%eax
4ae47c:	85 c0                	test   %eax,%eax
4ae47e:	74 09                	je     0x4ae489
4ae480:	50                   	push   %eax
4ae481:	e8 aa 1c ff ff       	call   0x4a0130
4ae486:	83 c4 04             	add    $0x4,%esp
4ae489:	56                   	push   %esi
4ae48a:	e8 a1 1c ff ff       	call   0x4a0130
4ae48f:	83 c4 04             	add    $0x4,%esp
4ae492:	5e                   	pop    %esi
4ae493:	c3                   	ret
4ae494:	cc                   	int3
4ae495:	cc                   	int3
4ae496:	cc                   	int3
4ae497:	cc                   	int3
4ae498:	cc                   	int3
4ae499:	cc                   	int3
4ae49a:	cc                   	int3
4ae49b:	cc                   	int3
4ae49c:	cc                   	int3
4ae49d:	cc                   	int3
4ae49e:	cc                   	int3
4ae49f:	cc                   	int3
4ae4a0:	56                   	push   %esi
4ae4a1:	8b 74 24 08          	mov    0x8(%esp),%esi
4ae4a5:	85 f6                	test   %esi,%esi
4ae4a7:	75 04                	jne    0x4ae4ad
4ae4a9:	33 c0                	xor    %eax,%eax
4ae4ab:	5e                   	pop    %esi
4ae4ac:	c3                   	ret
4ae4ad:	8b 06                	mov    (%esi),%eax
4ae4af:	8b 4e 0c             	mov    0xc(%esi),%ecx
4ae4b2:	40                   	inc    %eax
4ae4b3:	3b c8                	cmp    %eax,%ecx
4ae4b5:	7f 2c                	jg     0x4ae4e3
4ae4b7:	68 bb 00 00 00       	push   $0xbb
4ae4bc:	68 4c 9b 6a 00       	push   $0x6a9b4c
4ae4c1:	8d 04 cd 00 00 00 00 	lea    0x0(,%ecx,8),%eax
4ae4c8:	50                   	push   %eax
4ae4c9:	ff 76 04             	push   0x4(%esi)
4ae4cc:	e8 4f 1d ff ff       	call   0x4a0220
4ae4d1:	83 c4 10             	add    $0x10,%esp
4ae4d4:	85 c0                	test   %eax,%eax
4ae4d6:	74 d1                	je     0x4ae4a9
4ae4d8:	89 46 04             	mov    %eax,0x4(%esi)
4ae4db:	8b 46 0c             	mov    0xc(%esi),%eax
4ae4de:	03 c0                	add    %eax,%eax
4ae4e0:	89 46 0c             	mov    %eax,0xc(%esi)
4ae4e3:	8b 16                	mov    (%esi),%edx
4ae4e5:	57                   	push   %edi
4ae4e6:	8b 7c 24 14          	mov    0x14(%esp),%edi
4ae4ea:	3b fa                	cmp    %edx,%edi
4ae4ec:	7d 3e                	jge    0x4ae52c
4ae4ee:	85 ff                	test   %edi,%edi
4ae4f0:	78 3a                	js     0x4ae52c
4ae4f2:	53                   	push   %ebx
4ae4f3:	8b 5e 04             	mov    0x4(%esi),%ebx
4ae4f6:	8d 43 04             	lea    0x4(%ebx),%eax
4ae4f9:	3b d7                	cmp    %edi,%edx
4ae4fb:	7c 16                	jl     0x4ae513
4ae4fd:	8d 0c 90             	lea    (%eax,%edx,4),%ecx
4ae500:	2b d8                	sub    %eax,%ebx
4ae502:	2b d7                	sub    %edi,%edx
4ae504:	42                   	inc    %edx
4ae505:	8b 04 0b             	mov    (%ebx,%ecx,1),%eax
4ae508:	8d 49 fc             	lea    -0x4(%ecx),%ecx
4ae50b:	89 41 04             	mov    %eax,0x4(%ecx)
4ae50e:	83 ea 01             	sub    $0x1,%edx
4ae511:	75 f2                	jne    0x4ae505
4ae513:	8b 4e 04             	mov    0x4(%esi),%ecx
4ae516:	8b 44 24 14          	mov    0x14(%esp),%eax
4ae51a:	5b                   	pop    %ebx
4ae51b:	89 04 b9             	mov    %eax,(%ecx,%edi,4)
4ae51e:	ff 06                	incl   (%esi)
4ae520:	8b 06                	mov    (%esi),%eax
4ae522:	5f                   	pop    %edi
4ae523:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
4ae52a:	5e                   	pop    %esi
4ae52b:	c3                   	ret
4ae52c:	8b 4e 04             	mov    0x4(%esi),%ecx
4ae52f:	8b 44 24 10          	mov    0x10(%esp),%eax
4ae533:	5f                   	pop    %edi
4ae534:	89 04 91             	mov    %eax,(%ecx,%edx,4)
4ae537:	ff 06                	incl   (%esi)
4ae539:	8b 06                	mov    (%esi),%eax
4ae53b:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
4ae542:	5e                   	pop    %esi
4ae543:	c3                   	ret
4ae544:	cc                   	int3
4ae545:	cc                   	int3
4ae546:	cc                   	int3
4ae547:	cc                   	int3
4ae548:	cc                   	int3
4ae549:	cc                   	int3
4ae54a:	cc                   	int3
4ae54b:	cc                   	int3
4ae54c:	cc                   	int3
4ae54d:	cc                   	int3
4ae54e:	cc                   	int3
4ae54f:	cc                   	int3
4ae550:	8b 44 24 04          	mov    0x4(%esp),%eax
4ae554:	85 c0                	test   %eax,%eax
4ae556:	75 06                	jne    0x4ae55e
4ae558:	b8 01 00 00 00       	mov    $0x1,%eax
4ae55d:	c3                   	ret
4ae55e:	8b 40 08             	mov    0x8(%eax),%eax
4ae561:	c3                   	ret
4ae562:	cc                   	int3
4ae563:	cc                   	int3
4ae564:	cc                   	int3
4ae565:	cc                   	int3
4ae566:	cc                   	int3
4ae567:	cc                   	int3
4ae568:	cc                   	int3
4ae569:	cc                   	int3
4ae56a:	cc                   	int3
4ae56b:	cc                   	int3
4ae56c:	cc                   	int3
4ae56d:	cc                   	int3
4ae56e:	cc                   	int3
4ae56f:	cc                   	int3
4ae570:	56                   	push   %esi
4ae571:	68 a2 00 00 00       	push   $0xa2
4ae576:	68 4c 9b 6a 00       	push   $0x6a9b4c
4ae57b:	6a 14                	push   $0x14
4ae57d:	e8 2e 1c ff ff       	call   0x4a01b0
4ae582:	8b f0                	mov    %eax,%esi
4ae584:	83 c4 0c             	add    $0xc,%esp
4ae587:	85 f6                	test   %esi,%esi
4ae589:	74 24                	je     0x4ae5af
4ae58b:	68 a4 00 00 00       	push   $0xa4
4ae590:	68 4c 9b 6a 00       	push   $0x6a9b4c
4ae595:	6a 10                	push   $0x10
4ae597:	e8 14 1c ff ff       	call   0x4a01b0
4ae59c:	83 c4 0c             	add    $0xc,%esp
4ae59f:	89 46 04             	mov    %eax,0x4(%esi)
4ae5a2:	85 c0                	test   %eax,%eax
4ae5a4:	75 0d                	jne    0x4ae5b3
4ae5a6:	56                   	push   %esi
4ae5a7:	e8 84 1b ff ff       	call   0x4a0130
4ae5ac:	83 c4 04             	add    $0x4,%esp
4ae5af:	33 c0                	xor    %eax,%eax
4ae5b1:	5e                   	pop    %esi
4ae5b2:	c3                   	ret
4ae5b3:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
4ae5b9:	8b 46 04             	mov    0x4(%esi),%eax
4ae5bc:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
4ae5c3:	8b 46 04             	mov    0x4(%esi),%eax
4ae5c6:	c7 40 08 00 00 00 00 	movl   $0x0,0x8(%eax)
4ae5cd:	8b 46 04             	mov    0x4(%esi),%eax
4ae5d0:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)
4ae5d7:	8b 44 24 08          	mov    0x8(%esp),%eax
4ae5db:	89 46 10             	mov    %eax,0x10(%esi)
4ae5de:	8b c6                	mov    %esi,%eax
4ae5e0:	c7 46 0c 04 00 00 00 	movl   $0x4,0xc(%esi)
4ae5e7:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
4ae5ed:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
4ae5f4:	5e                   	pop    %esi
4ae5f5:	c3                   	ret
4ae5f6:	cc                   	int3
4ae5f7:	cc                   	int3
4ae5f8:	cc                   	int3
4ae5f9:	cc                   	int3
4ae5fa:	cc                   	int3
4ae5fb:	cc                   	int3
4ae5fc:	cc                   	int3
4ae5fd:	cc                   	int3
4ae5fe:	cc                   	int3
4ae5ff:	cc                   	int3
4ae600:	6a 00                	push   $0x0
4ae602:	e8 69 ff ff ff       	call   0x4ae570
4ae607:	83 c4 04             	add    $0x4,%esp
4ae60a:	c3                   	ret
4ae60b:	cc                   	int3
4ae60c:	cc                   	int3
4ae60d:	cc                   	int3
4ae60e:	cc                   	int3
4ae60f:	cc                   	int3
4ae610:	8b 44 24 04          	mov    0x4(%esp),%eax
4ae614:	85 c0                	test   %eax,%eax
4ae616:	75 04                	jne    0x4ae61c
4ae618:	83 c8 ff             	or     $0xffffffff,%eax
4ae61b:	c3                   	ret
4ae61c:	8b 00                	mov    (%eax),%eax
4ae61e:	c3                   	ret
4ae61f:	cc                   	int3
4ae620:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4ae624:	85 c9                	test   %ecx,%ecx
4ae626:	75 03                	jne    0x4ae62b
4ae628:	33 c0                	xor    %eax,%eax
4ae62a:	c3                   	ret
4ae62b:	8b 01                	mov    (%ecx),%eax
4ae62d:	85 c0                	test   %eax,%eax
4ae62f:	7e f7                	jle    0x4ae628
4ae631:	48                   	dec    %eax
4ae632:	50                   	push   %eax
4ae633:	51                   	push   %ecx
4ae634:	e8 77 fd ff ff       	call   0x4ae3b0
4ae639:	83 c4 08             	add    $0x8,%esp
4ae63c:	c3                   	ret
4ae63d:	cc                   	int3
4ae63e:	cc                   	int3
4ae63f:	cc                   	int3
4ae640:	57                   	push   %edi
4ae641:	8b 7c 24 08          	mov    0x8(%esp),%edi
4ae645:	85 ff                	test   %edi,%edi
4ae647:	74 3c                	je     0x4ae685
4ae649:	56                   	push   %esi
4ae64a:	33 f6                	xor    %esi,%esi
4ae64c:	39 37                	cmp    %esi,(%edi)
4ae64e:	7e 1b                	jle    0x4ae66b
4ae650:	53                   	push   %ebx
4ae651:	8b 5c 24 14          	mov    0x14(%esp),%ebx
4ae655:	8b 47 04             	mov    0x4(%edi),%eax
4ae658:	8b 04 b0             	mov    (%eax,%esi,4),%eax
4ae65b:	85 c0                	test   %eax,%eax
4ae65d:	74 06                	je     0x4ae665
4ae65f:	50                   	push   %eax
4ae660:	ff d3                	call   *%ebx
4ae662:	83 c4 04             	add    $0x4,%esp
4ae665:	46                   	inc    %esi
4ae666:	3b 37                	cmp    (%edi),%esi
4ae668:	7c eb                	jl     0x4ae655
4ae66a:	5b                   	pop    %ebx
4ae66b:	8b 47 04             	mov    0x4(%edi),%eax
4ae66e:	5e                   	pop    %esi
4ae66f:	85 c0                	test   %eax,%eax
4ae671:	74 09                	je     0x4ae67c
4ae673:	50                   	push   %eax
4ae674:	e8 b7 1a ff ff       	call   0x4a0130
4ae679:	83 c4 04             	add    $0x4,%esp
4ae67c:	57                   	push   %edi
4ae67d:	e8 ae 1a ff ff       	call   0x4a0130
4ae682:	83 c4 04             	add    $0x4,%esp
4ae685:	5f                   	pop    %edi
4ae686:	c3                   	ret
4ae687:	cc                   	int3
4ae688:	cc                   	int3
4ae689:	cc                   	int3
4ae68a:	cc                   	int3
4ae68b:	cc                   	int3
4ae68c:	cc                   	int3
4ae68d:	cc                   	int3
4ae68e:	cc                   	int3
4ae68f:	cc                   	int3
4ae690:	8b 44 24 04          	mov    0x4(%esp),%eax
4ae694:	ff 30                	push   (%eax)
4ae696:	ff 74 24 0c          	push   0xc(%esp)
4ae69a:	50                   	push   %eax
4ae69b:	e8 00 fe ff ff       	call   0x4ae4a0
4ae6a0:	83 c4 0c             	add    $0xc,%esp
4ae6a3:	c3                   	ret
4ae6a4:	cc                   	int3
4ae6a5:	cc                   	int3
4ae6a6:	cc                   	int3
4ae6a7:	cc                   	int3
4ae6a8:	cc                   	int3
4ae6a9:	cc                   	int3
4ae6aa:	cc                   	int3
4ae6ab:	cc                   	int3
4ae6ac:	cc                   	int3
4ae6ad:	cc                   	int3
4ae6ae:	cc                   	int3
4ae6af:	cc                   	int3
4ae6b0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4ae6b4:	85 c9                	test   %ecx,%ecx
4ae6b6:	74 17                	je     0x4ae6cf
4ae6b8:	8b 54 24 08          	mov    0x8(%esp),%edx
4ae6bc:	85 d2                	test   %edx,%edx
4ae6be:	78 0f                	js     0x4ae6cf
4ae6c0:	3b 11                	cmp    (%ecx),%edx
4ae6c2:	7d 0b                	jge    0x4ae6cf
4ae6c4:	8b 49 04             	mov    0x4(%ecx),%ecx