4ae248:	89 55 e0             	mov    %edx,-0x20(%ebp)
4ae24b:	53                   	push   %ebx
4ae24c:	3b cf                	cmp    %edi,%ecx
4ae24e:	73 1e                	jae    0x4ae26e
4ae250:	8b c7                	mov    %edi,%eax
4ae252:	2b c1                	sub    %ecx,%eax
4ae254:	50                   	push   %eax
4ae255:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
4ae258:	6a 2e                	push   $0x2e
4ae25a:	50                   	push   %eax
4ae25b:	e8 f0 4b 13 00       	call   0x5e2e50
4ae260:	8b d8                	mov    %eax,%ebx
4ae262:	83 c4 0c             	add    $0xc,%esp
4ae265:	85 db                	test   %ebx,%ebx
4ae267:	74 05                	je     0x4ae26e
4ae269:	2b 5d e0             	sub    -0x20(%ebp),%ebx
4ae26c:	eb 03                	jmp    0x4ae271
4ae26e:	83 cb ff             	or     $0xffffffff,%ebx
4ae271:	8b 55 dc             	mov    -0x24(%ebp),%edx
4ae274:	83 fb ff             	cmp    $0xffffffff,%ebx
4ae277:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
4ae27e:	0f 44 df             	cmove  %edi,%ebx
4ae281:	c7 45 f8 0f 00 00 00 	movl   $0xf,-0x8(%ebp)
4ae288:	8b cb                	mov    %ebx,%ecx
4ae28a:	c6 45 e4 00          	movb   $0x0,-0x1c(%ebp)
4ae28e:	8b 02                	mov    (%edx),%eax
4ae290:	2b c8                	sub    %eax,%ecx
4ae292:	3b f8                	cmp    %eax,%edi
4ae294:	0f 82 80 00 00 00    	jb     0x4ae31a
4ae29a:	2b f8                	sub    %eax,%edi
4ae29c:	3b f9                	cmp    %ecx,%edi
4ae29e:	0f 42 cf             	cmovb  %edi,%ecx
4ae2a1:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
4ae2a5:	72 02                	jb     0x4ae2a9
4ae2a7:	8b 36                	mov    (%esi),%esi
4ae2a9:	51                   	push   %ecx
4ae2aa:	03 c6                	add    %esi,%eax
4ae2ac:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
4ae2af:	50                   	push   %eax
4ae2b0:	e8 8b 6f f9 ff       	call   0x445240
4ae2b5:	83 7d f8 10          	cmpl   $0x10,-0x8(%ebp)
4ae2b9:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4ae2bc:	6a 0a                	push   $0xa
4ae2be:	0f 43 45 e4          	cmovae -0x1c(%ebp),%eax
4ae2c2:	6a 00                	push   $0x0
4ae2c4:	50                   	push   %eax
4ae2c5:	e8 3e fa 13 00       	call   0x5edd08
4ae2ca:	8b 55 f8             	mov    -0x8(%ebp),%edx
4ae2cd:	83 c4 0c             	add    $0xc,%esp
4ae2d0:	8b f0                	mov    %eax,%esi
4ae2d2:	83 fa 10             	cmp    $0x10,%edx
4ae2d5:	72 28                	jb     0x4ae2ff
4ae2d7:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
4ae2da:	42                   	inc    %edx
4ae2db:	8b c1                	mov    %ecx,%eax
4ae2dd:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
4ae2e3:	72 10                	jb     0x4ae2f5
4ae2e5:	8b 49 fc             	mov    -0x4(%ecx),%ecx
4ae2e8:	83 c2 23             	add    $0x23,%edx
4ae2eb:	2b c1                	sub    %ecx,%eax
4ae2ed:	83 c0 fc             	add    $0xfffffffc,%eax
4ae2f0:	83 f8 1f             	cmp    $0x1f,%eax
4ae2f3:	77 2a                	ja     0x4ae31f
4ae2f5:	52                   	push   %edx
4ae2f6:	51                   	push   %ecx
4ae2f7:	e8 76 2d 13 00       	call   0x5e1072
4ae2fc:	83 c4 08             	add    $0x8,%esp
4ae2ff:	8b 4d dc             	mov    -0x24(%ebp),%ecx
4ae302:	8d 43 01             	lea    0x1(%ebx),%eax
4ae305:	5b                   	pop    %ebx
4ae306:	5f                   	pop    %edi
4ae307:	89 01                	mov    %eax,(%ecx)
4ae309:	8b c6                	mov    %esi,%eax
4ae30b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4ae30e:	33 cd                	xor    %ebp,%ecx
4ae310:	5e                   	pop    %esi
4ae311:	e8 c4 31 13 00       	call   0x5e14da
4ae316:	8b e5                	mov    %ebp,%esp
4ae318:	5d                   	pop    %ebp
4ae319:	c3                   	ret
4ae31a:	e8 31 6d f9 ff       	call   0x445050
4ae31f:	e8 0b ec 13 00       	call   0x5ecf2f
4ae324:	cc                   	int3
4ae325:	cc                   	int3
4ae326:	cc                   	int3
4ae327:	cc                   	int3
4ae328:	cc                   	int3
4ae329:	cc                   	int3
4ae32a:	cc                   	int3
4ae32b:	cc                   	int3
4ae32c:	cc                   	int3
4ae32d:	cc                   	int3
4ae32e:	cc                   	int3
4ae32f:	cc                   	int3
4ae330:	56                   	push   %esi
4ae331:	8b 74 24 08          	mov    0x8(%esp),%esi
4ae335:	85 f6                	test   %esi,%esi
4ae337:	74 23                	je     0x4ae35c
4ae339:	8b 46 10             	mov    0x10(%esi),%eax
4ae33c:	85 c0                	test   %eax,%eax
4ae33e:	75 21                	jne    0x4ae361
4ae340:	8b 16                	mov    (%esi),%edx
4ae342:	85 d2                	test   %edx,%edx
4ae344:	7e 16                	jle    0x4ae35c
4ae346:	8b 4e 04             	mov    0x4(%esi),%ecx
4ae349:	8b 74 24 0c          	mov    0xc(%esp),%esi
4ae34d:	0f 1f 00             	nopl   (%eax)
4ae350:	39 31                	cmp    %esi,(%ecx)
4ae352:	74 56                	je     0x4ae3aa
4ae354:	40                   	inc    %eax
4ae355:	83 c1 04             	add    $0x4,%ecx
4ae358:	3b c2                	cmp    %edx,%eax
4ae35a:	7c f4                	jl     0x4ae350
4ae35c:	83 c8 ff             	or     $0xffffffff,%eax
4ae35f:	5e                   	pop    %esi
4ae360:	c3                   	ret
4ae361:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
4ae365:	75 17                	jne    0x4ae37e
4ae367:	50                   	push   %eax
4ae368:	6a 04                	push   $0x4
4ae36a:	ff 36                	push   (%esi)
4ae36c:	ff 76 04             	push   0x4(%esi)
4ae36f:	e8 6c 09 15 00       	call   0x5fece0
4ae374:	83 c4 10             	add    $0x10,%esp
4ae377:	c7 46 08 01 00 00 00 	movl   $0x1,0x8(%esi)
4ae37e:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
4ae383:	74 d7                	je     0x4ae35c
4ae385:	ff 74 24 10          	push   0x10(%esp)
4ae389:	8d 44 24 10          	lea    0x10(%esp),%eax
4ae38d:	ff 76 10             	push   0x10(%esi)
4ae390:	6a 04                	push   $0x4
4ae392:	ff 36                	push   (%esi)
4ae394:	ff 76 04             	push   0x4(%esi)
4ae397:	50                   	push   %eax
4ae398:	e8 e3 92 ff ff       	call   0x4a7680
4ae39d:	83 c4 18             	add    $0x18,%esp
4ae3a0:	85 c0                	test   %eax,%eax
4ae3a2:	74 b8                	je     0x4ae35c
4ae3a4:	2b 46 04             	sub    0x4(%esi),%eax
4ae3a7:	c1 f8 02             	sar    $0x2,%eax
4ae3aa:	5e                   	pop    %esi
4ae3ab:	c3                   	ret
4ae3ac:	cc                   	int3
4ae3ad:	cc                   	int3
4ae3ae:	cc                   	int3
4ae3af:	cc                   	int3
4ae3b0:	56                   	push   %esi
4ae3b1:	8b 74 24 08          	mov    0x8(%esp),%esi
4ae3b5:	57                   	push   %edi
4ae3b6:	85 f6                	test   %esi,%esi
4ae3b8:	74 31                	je     0x4ae3eb
4ae3ba:	8b 4c 24 10          	mov    0x10(%esp),%ecx
4ae3be:	85 c9                	test   %ecx,%ecx
4ae3c0:	78 29                	js     0x4ae3eb
4ae3c2:	8b 3e                	mov    (%esi),%edi
4ae3c4:	3b cf                	cmp    %edi,%ecx
4ae3c6:	7d 23                	jge    0x4ae3eb
4ae3c8:	8b 46 04             	mov    0x4(%esi),%eax
4ae3cb:	4f                   	dec    %edi
4ae3cc:	53                   	push   %ebx
4ae3cd:	8b 1c 88             	mov    (%eax,%ecx,4),%ebx
4ae3d0:	3b cf                	cmp    %edi,%ecx
4ae3d2:	7d 0f                	jge    0x4ae3e3
4ae3d4:	8b 46 04             	mov    0x4(%esi),%eax
4ae3d7:	8b 54 88 04          	mov    0x4(%eax,%ecx,4),%edx
4ae3db:	89 14 88             	mov    %edx,(%eax,%ecx,4)
4ae3de:	41                   	inc    %ecx
4ae3df:	3b cf                	cmp    %edi,%ecx
4ae3e1:	7c f1                	jl     0x4ae3d4
4ae3e3:	ff 0e                	decl   (%esi)
4ae3e5:	8b c3                	mov    %ebx,%eax
4ae3e7:	5b                   	pop    %ebx
4ae3e8:	5f                   	pop    %edi
4ae3e9:	5e                   	pop    %esi
4ae3ea:	c3                   	ret
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