4fe2d8:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4fe2db:	85 db                	test   %ebx,%ebx
4fe2dd:	0f 84 d9 04 00 00    	je     0x4fe7bc
4fe2e3:	57                   	push   %edi
4fe2e4:	ff 75 14             	push   0x14(%ebp)
4fe2e7:	53                   	push   %ebx
4fe2e8:	e8 a3 5f fe ff       	call   0x4e4290
4fe2ed:	83 c4 0c             	add    $0xc,%esp
4fe2f0:	85 c0                	test   %eax,%eax
4fe2f2:	0f 84 c4 04 00 00    	je     0x4fe7bc
4fe2f8:	8b 45 0c             	mov    0xc(%ebp),%eax
4fe2fb:	39 70 0c             	cmp    %esi,0xc(%eax)
4fe2fe:	75 10                	jne    0x4fe310
4fe300:	ff 75 14             	push   0x14(%ebp)
4fe303:	50                   	push   %eax
4fe304:	e8 37 be fd ff       	call   0x4da140
4fe309:	83 c4 08             	add    $0x8,%esp
4fe30c:	85 c0                	test   %eax,%eax
4fe30e:	78 32                	js     0x4fe342
4fe310:	57                   	push   %edi
4fe311:	e8 ba 98 fe ff       	call   0x4e7bd0
4fe316:	83 c4 04             	add    $0x4,%esp
4fe319:	89 45 f4             	mov    %eax,-0xc(%ebp)
4fe31c:	85 c0                	test   %eax,%eax
4fe31e:	0f 84 92 04 00 00    	je     0x4fe7b6
4fe324:	57                   	push   %edi
4fe325:	ff 75 14             	push   0x14(%ebp)
4fe328:	ff 75 0c             	push   0xc(%ebp)
4fe32b:	50                   	push   %eax
4fe32c:	e8 8f f4 ff ff       	call   0x4fd7c0
4fe331:	83 c4 10             	add    $0x10,%esp
4fe334:	85 c0                	test   %eax,%eax
4fe336:	0f 84 7a 04 00 00    	je     0x4fe7b6
4fe33c:	8b 45 f4             	mov    -0xc(%ebp),%eax
4fe33f:	89 45 0c             	mov    %eax,0xc(%ebp)
4fe342:	8b 45 dc             	mov    -0x24(%ebp),%eax
4fe345:	3d a9 03 00 00       	cmp    $0x3a9,%eax
4fe34a:	7e 07                	jle    0x4fe353
4fe34c:	bb 06 00 00 00       	mov    $0x6,%ebx
4fe351:	eb 29                	jmp    0x4fe37c
4fe353:	3d 32 01 00 00       	cmp    $0x132,%eax
4fe358:	7e 07                	jle    0x4fe361
4fe35a:	bb 05 00 00 00       	mov    $0x5,%ebx
4fe35f:	eb 1b                	jmp    0x4fe37c
4fe361:	83 f8 59             	cmp    $0x59,%eax
4fe364:	7e 07                	jle    0x4fe36d
4fe366:	bb 04 00 00 00       	mov    $0x4,%ebx
4fe36b:	eb 0f                	jmp    0x4fe37c
4fe36d:	33 db                	xor    %ebx,%ebx
4fe36f:	83 f8 16             	cmp    $0x16,%eax
4fe372:	0f 9f c3             	setg   %bl
4fe375:	8d 1c 5d 01 00 00 00 	lea    0x1(,%ebx,2),%ebx
4fe37c:	8b 45 ec             	mov    -0x14(%ebp),%eax
4fe37f:	8b cb                	mov    %ebx,%ecx
4fe381:	ba 01 00 00 00       	mov    $0x1,%edx
4fe386:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
4fe389:	d3 e2                	shl    %cl,%edx
4fe38b:	8b ca                	mov    %edx,%ecx
4fe38d:	89 55 d8             	mov    %edx,-0x28(%ebp)
4fe390:	0f af c8             	imul   %eax,%ecx
4fe393:	8d 34 00             	lea    (%eax,%eax,1),%esi
4fe396:	3b f2                	cmp    %edx,%esi
4fe398:	0f 4e f2             	cmovle %edx,%esi
4fe39b:	03 f1                	add    %ecx,%esi
4fe39d:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4fe3a0:	c1 e6 02             	shl    $0x2,%esi
4fe3a3:	89 75 d4             	mov    %esi,-0x2c(%ebp)
4fe3a6:	8d 46 40             	lea    0x40(%esi),%eax
4fe3a9:	81 fe 00 0c 00 00    	cmp    $0xc00,%esi
4fe3af:	7d 09                	jge    0x4fe3ba
4fe3b1:	e8 ba 2e 0d 00       	call   0x5d1270
4fe3b6:	8b f4                	mov    %esp,%esi
4fe3b8:	eb 1d                	jmp    0x4fe3d7
4fe3ba:	68 d3 02 00 00       	push   $0x2d3
4fe3bf:	68 14 9c 62 00       	push   $0x629c14
4fe3c4:	50                   	push   %eax
4fe3c5:	e8 86 23 fe ff       	call   0x4e0750
4fe3ca:	8b f0                	mov    %eax,%esi
4fe3cc:	83 c4 0c             	add    $0xc,%esp
4fe3cf:	85 f6                	test   %esi,%esi
4fe3d1:	0f 84 dc 03 00 00    	je     0x4fe7b3
4fe3d7:	ff 75 d4             	push   -0x2c(%ebp)
4fe3da:	8b c6                	mov    %esi,%eax
4fe3dc:	83 e0 c0             	and    $0xffffffc0,%eax
4fe3df:	83 c0 40             	add    $0x40,%eax
4fe3e2:	6a 00                	push   $0x0
4fe3e4:	50                   	push   %eax
4fe3e5:	89 45 e8             	mov    %eax,-0x18(%ebp)
4fe3e8:	e8 83 48 0d 00       	call   0x5d2c70
4fe3ed:	8b 55 e8             	mov    -0x18(%ebp),%edx
4fe3f0:	33 c0                	xor    %eax,%eax
4fe3f2:	83 c4 0c             	add    $0xc,%esp
4fe3f5:	c7 45 a0 00 00 00 00 	movl   $0x0,-0x60(%ebp)
4fe3fc:	81 7d d4 00 0c 00 00 	cmpl   $0xc00,-0x2c(%ebp)
4fe403:	c7 45 c0 00 00 00 00 	movl   $0x0,-0x40(%ebp)
4fe40a:	0f 4d c6             	cmovge %esi,%eax
4fe40d:	c7 45 a8 00 00 00 00 	movl   $0x0,-0x58(%ebp)
4fe414:	8b f0                	mov    %eax,%esi
4fe416:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
4fe41d:	8b 45 f4             	mov    -0xc(%ebp),%eax
4fe420:	c7 45 ac 02 00 00 00 	movl   $0x2,-0x54(%ebp)
4fe427:	c7 45 cc 02 00 00 00 	movl   $0x2,-0x34(%ebp)
4fe42e:	89 75 f0             	mov    %esi,-0x10(%ebp)
4fe431:	8d 0c 82             	lea    (%edx,%eax,4),%ecx
4fe434:	89 4d bc             	mov    %ecx,-0x44(%ebp)
4fe437:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4fe43a:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4fe43d:	03 c1                	add    %ecx,%eax
4fe43f:	89 4d a4             	mov    %ecx,-0x5c(%ebp)
4fe442:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
4fe445:	8d 04 82             	lea    (%edx,%eax,4),%eax
4fe448:	8b 55 14             	mov    0x14(%ebp),%edx
4fe44b:	89 45 9c             	mov    %eax,-0x64(%ebp)
4fe44e:	8b 02                	mov    (%edx),%eax
4fe450:	83 7c 88 fc 00       	cmpl   $0x0,-0x4(%eax,%ecx,4)
4fe455:	0f 8d 41 01 00 00    	jge    0x4fe59c
4fe45b:	8b 00                	mov    (%eax),%eax
4fe45d:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4fe460:	f7 d8                	neg    %eax
4fe462:	8b 75 ec             	mov    -0x14(%ebp),%esi
4fe465:	89 01                	mov    %eax,(%ecx)
4fe467:	b9 01 00 00 00       	mov    $0x1,%ecx
4fe46c:	8d 46 ff             	lea    -0x1(%esi),%eax
4fe46f:	3b f1                	cmp    %ecx,%esi
4fe471:	0f 8e 20 01 00 00    	jle    0x4fe597
4fe477:	83 f8 10             	cmp    $0x10,%eax
4fe47a:	0f 82 f2 00 00 00    	jb     0x4fe572
4fe480:	8b 02                	mov    (%edx),%eax
4fe482:	89 45 b4             	mov    %eax,-0x4c(%ebp)
4fe485:	8b 45 bc             	mov    -0x44(%ebp),%eax
4fe488:	89 45 f4             	mov    %eax,-0xc(%ebp)
4fe48b:	8d 78 04             	lea    0x4(%eax),%edi
4fe48e:	8d 04 b0             	lea    (%eax,%esi,4),%eax
4fe491:	83 c0 fc             	add    $0xfffffffc,%eax
4fe494:	89 45 d0             	mov    %eax,-0x30(%ebp)
4fe497:	8b 45 b4             	mov    -0x4c(%ebp),%eax
4fe49a:	8d 58 04             	lea    0x4(%eax),%ebx
4fe49d:	8d 04 b0             	lea    (%eax,%esi,4),%eax
4fe4a0:	89 5d b8             	mov    %ebx,-0x48(%ebp)
4fe4a3:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
4fe4a6:	83 c0 fc             	add    $0xfffffffc,%eax
4fe4a9:	3b f8                	cmp    %eax,%edi
4fe4ab:	8b 45 d0             	mov    -0x30(%ebp),%eax
4fe4ae:	77 09                	ja     0x4fe4b9
4fe4b0:	3b 45 b8             	cmp    -0x48(%ebp),%eax
4fe4b3:	0f 83 bf 00 00 00    	jae    0x4fe578
4fe4b9:	3b fa                	cmp    %edx,%edi
4fe4bb:	77 08                	ja     0x4fe4c5
4fe4bd:	3b c2                	cmp    %edx,%eax
4fe4bf:	0f 83 b3 00 00 00    	jae    0x4fe578
4fe4c5:	8d 46 ff             	lea    -0x1(%esi),%eax
4fe4c8:	25 0f 00 00 80       	and    $0x8000000f,%eax
4fe4cd:	79 05                	jns    0x4fe4d4
4fe4cf:	48                   	dec    %eax
4fe4d0:	83 c8 f0             	or     $0xfffffff0,%eax
4fe4d3:	40                   	inc    %eax
4fe4d4:	0f 10 0d c0 3f 61 00 	movups 0x613fc0,%xmm1
4fe4db:	8b d6                	mov    %esi,%edx
4fe4dd:	be 24 00 00 00       	mov    $0x24,%esi
4fe4e2:	2b d0                	sub    %eax,%edx
4fe4e4:	8b 45 bc             	mov    -0x44(%ebp),%eax
4fe4e7:	89 55 d0             	mov    %edx,-0x30(%ebp)
4fe4ea:	ba f0 ff ff ff       	mov    $0xfffffff0,%edx
4fe4ef:	2b d0                	sub    %eax,%edx
4fe4f1:	89 55 e0             	mov    %edx,-0x20(%ebp)
4fe4f4:	ba 10 00 00 00       	mov    $0x10,%edx
4fe4f9:	8b 5d e0             	mov    -0x20(%ebp),%ebx
4fe4fc:	8d 78 24             	lea    0x24(%eax),%edi
4fe4ff:	2b d0                	sub    %eax,%edx
4fe501:	89 55 f4             	mov    %edx,-0xc(%ebp)
4fe504:	ba e0 ff ff ff       	mov    $0xffffffe0,%edx
4fe509:	2b d0                	sub    %eax,%edx
4fe50b:	89 55 b8             	mov    %edx,-0x48(%ebp)
4fe50e:	8b 55 b4             	mov    -0x4c(%ebp),%edx
4fe511:	8b 45 b8             	mov    -0x48(%ebp),%eax
4fe514:	8d 76 40             	lea    0x40(%esi),%esi
4fe517:	03 c2                	add    %edx,%eax
4fe519:	8d 7f 40             	lea    0x40(%edi),%edi
4fe51c:	83 c1 10             	add    $0x10,%ecx
4fe51f:	0f 10 44 38 c0       	movups -0x40(%eax,%edi,1),%xmm0
4fe524:	8d 04 1a             	lea    (%edx,%ebx,1),%eax
4fe527:	66 0f df c1          	pandn  %xmm1,%xmm0
4fe52b:	0f 11 47 a0          	movups %xmm0,-0x60(%edi)
4fe52f:	0f 10 44 38 c0       	movups -0x40(%eax,%edi,1),%xmm0
4fe534:	8b 45 f4             	mov    -0xc(%ebp),%eax
4fe537:	03 c2                	add    %edx,%eax
4fe539:	66 0f df c1          	pandn  %xmm1,%xmm0
4fe53d:	0f 11 47 b0          	movups %xmm0,-0x50(%edi)
4fe541:	0f 10 44 32 c0       	movups -0x40(%edx,%esi,1),%xmm0
4fe546:	66 0f df c1          	pandn  %xmm1,%xmm0
4fe54a:	0f 11 47 c0          	movups %xmm0,-0x40(%edi)
4fe54e:	0f 10 44 38 c0       	movups -0x40(%eax,%edi,1),%xmm0
4fe553:	8b c1                	mov    %ecx,%eax
4fe555:	66 0f df c1          	pandn  %xmm1,%xmm0
4fe559:	0f 11 47 d0          	movups %xmm0,-0x30(%edi)
4fe55d:	3b 4d d0             	cmp    -0x30(%ebp),%ecx
4fe560:	7c af                	jl     0x4fe511
4fe562:	8b 75 ec             	mov    -0x14(%ebp),%esi
4fe565:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
4fe568:	8b 7d 18             	mov    0x18(%ebp),%edi
4fe56b:	8b 55 14             	mov    0x14(%ebp),%edx
4fe56e:	3b c6                	cmp    %esi,%eax
4fe570:	7d 25                	jge    0x4fe597
4fe572:	8b 45 bc             	mov    -0x44(%ebp),%eax
4fe575:	89 45 f4             	mov    %eax,-0xc(%ebp)
4fe578:	8b 7d f4             	mov    -0xc(%ebp),%edi
4fe57b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
4fe580:	8b 02                	mov    (%edx),%eax
4fe582:	8b 04 88             	mov    (%eax,%ecx,4),%eax
4fe585:	f7 d0                	not    %eax
4fe587:	89 04 8f             	mov    %eax,(%edi,%ecx,4)
4fe58a:	41                   	inc    %ecx
4fe58b:	3b ce                	cmp    %esi,%ecx
4fe58d:	7d 05                	jge    0x4fe594
4fe58f:	8b 7d bc             	mov    -0x44(%ebp),%edi
4fe592:	eb ec                	jmp    0x4fe580
4fe594:	8b 7d 18             	mov    0x18(%ebp),%edi
4fe597:	89 75 c0             	mov    %esi,-0x40(%ebp)
4fe59a:	eb 1e                	jmp    0x4fe5ba
4fe59c:	57                   	push   %edi
4fe59d:	ff 75 f8             	push   -0x8(%ebp)
4fe5a0:	e8 eb bb fd ff       	call   0x4da190
4fe5a5:	50                   	push   %eax
4fe5a6:	8d 45 bc             	lea    -0x44(%ebp),%eax
4fe5a9:	50                   	push   %eax
4fe5aa:	e8 51 66 fe ff       	call   0x4e4c00
4fe5af:	83 c4 10             	add    $0x10,%esp
4fe5b2:	85 c0                	test   %eax,%eax
4fe5b4:	0f 84 f9 01 00 00    	je     0x4fe7b3
4fe5ba:	8b 75 f0             	mov    -0x10(%ebp),%esi
4fe5bd:	8d 45 9c             	lea    -0x64(%ebp),%eax
4fe5c0:	57                   	push   %edi
4fe5c1:	ff 75 f8             	push   -0x8(%ebp)
4fe5c4:	ff 75 0c             	push   0xc(%ebp)
4fe5c7:	50                   	push   %eax
4fe5c8:	e8 33 66 fe ff       	call   0x4e4c00
4fe5cd:	83 c4 10             	add    $0x10,%esp
4fe5d0:	85 c0                	test   %eax,%eax
4fe5d2:	0f 84 db 01 00 00    	je     0x4fe7b3
4fe5d8:	53                   	push   %ebx
4fe5d9:	6a 00                	push   $0x0
4fe5db:	ff 75 e8             	push   -0x18(%ebp)
4fe5de:	8d 45 bc             	lea    -0x44(%ebp),%eax
4fe5e1:	ff 75 ec             	push   -0x14(%ebp)
4fe5e4:	50                   	push   %eax
4fe5e5:	e8 d6 0b 00 00       	call   0x4ff1c0
4fe5ea:	83 c4 14             	add    $0x14,%esp
4fe5ed:	85 c0                	test   %eax,%eax
4fe5ef:	0f 84 be 01 00 00    	je     0x4fe7b3
4fe5f5:	53                   	push   %ebx
4fe5f6:	6a 01                	push   $0x1
4fe5f8:	ff 75 e8             	push   -0x18(%ebp)
4fe5fb:	8d 45 9c             	lea    -0x64(%ebp),%eax
4fe5fe:	ff 75 ec             	push   -0x14(%ebp)
4fe601:	50                   	push   %eax
4fe602:	e8 b9 0b 00 00       	call   0x4ff1c0
4fe607:	83 c4 14             	add    $0x14,%esp
4fe60a:	85 c0                	test   %eax,%eax
4fe60c:	0f 84 a1 01 00 00    	je     0x4fe7b3
4fe612:	83 fb 01             	cmp    $0x1,%ebx
4fe615:	0f 86 b7 00 00 00    	jbe    0x4fe6d2
4fe61b:	57                   	push   %edi
4fe61c:	ff 75 f8             	push   -0x8(%ebp)
4fe61f:	8d 45 9c             	lea    -0x64(%ebp),%eax
4fe622:	50                   	push   %eax
4fe623:	50                   	push   %eax
4fe624:	8d 45 bc             	lea    -0x44(%ebp),%eax
4fe627:	50                   	push   %eax
4fe628:	e8 c3 64 fe ff       	call   0x4e4af0
4fe62d:	83 c4 14             	add    $0x14,%esp
4fe630:	85 c0                	test   %eax,%eax
4fe632:	0f 84 7b 01 00 00    	je     0x4fe7b3
4fe638:	53                   	push   %ebx
4fe639:	6a 02                	push   $0x2
4fe63b:	ff 75 e8             	push   -0x18(%ebp)
4fe63e:	8d 45 bc             	lea    -0x44(%ebp),%eax
4fe641:	ff 75 ec             	push   -0x14(%ebp)
4fe644:	50                   	push   %eax
4fe645:	e8 76 0b 00 00       	call   0x4ff1c0
4fe64a:	83 c4 14             	add    $0x14,%esp
4fe64d:	85 c0                	test   %eax,%eax
4fe64f:	0f 84 5e 01 00 00    	je     0x4fe7b3
4fe655:	83 7d d8 03          	cmpl   $0x3,-0x28(%ebp)
4fe659:	c7 45 f4 03 00 00 00 	movl   $0x3,-0xc(%ebp)
4fe660:	7e 70                	jle    0x4fe6d2
4fe662:	8b 45 e8             	mov    -0x18(%ebp),%eax
4fe665:	83 c0 0c             	add    $0xc,%eax
4fe668:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4fe66b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
4fe670:	57                   	push   %edi
4fe671:	ff 75 f8             	push   -0x8(%ebp)
4fe674:	8d 45 bc             	lea    -0x44(%ebp),%eax
4fe677:	50                   	push   %eax
4fe678:	8d 45 9c             	lea    -0x64(%ebp),%eax
4fe67b:	50                   	push   %eax
4fe67c:	8d 45 bc             	lea    -0x44(%ebp),%eax
4fe67f:	50                   	push   %eax
4fe680:	e8 6b 64 fe ff       	call   0x4e4af0
4fe685:	83 c4 14             	add    $0x14,%esp
4fe688:	85 c0                	test   %eax,%eax
4fe68a:	0f 84 20 01 00 00    	je     0x4fe7b0
4fe690:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4fe693:	8b f1                	mov    %ecx,%esi
4fe695:	3b 4d c0             	cmp    -0x40(%ebp),%ecx
4fe698:	0f 4f 75 c0          	cmovg  -0x40(%ebp),%esi
4fe69c:	33 c9                	xor    %ecx,%ecx
4fe69e:	85 f6                	test   %esi,%esi
4fe6a0:	7e 20                	jle    0x4fe6c2
4fe6a2:	8b 45 d8             	mov    -0x28(%ebp),%eax
4fe6a5:	8b 55 e4             	mov    -0x1c(%ebp),%edx
4fe6a8:	c1 e0 02             	shl    $0x2,%eax
4fe6ab:	89 45 e0             	mov    %eax,-0x20(%ebp)
4fe6ae:	8b f8                	mov    %eax,%edi
4fe6b0:	8b 45 bc             	mov    -0x44(%ebp),%eax
4fe6b3:	8b 04 88             	mov    (%eax,%ecx,4),%eax
4fe6b6:	41                   	inc    %ecx
4fe6b7:	89 02                	mov    %eax,(%edx)
4fe6b9:	03 d7                	add    %edi,%edx
4fe6bb:	3b ce                	cmp    %esi,%ecx
4fe6bd:	7c f1                	jl     0x4fe6b0
4fe6bf:	8b 7d 18             	mov    0x18(%ebp),%edi
4fe6c2:	8b 75 f4             	mov    -0xc(%ebp),%esi
4fe6c5:	83 45 e4 04          	addl   $0x4,-0x1c(%ebp)
4fe6c9:	46                   	inc    %esi
4fe6ca:	89 75 f4             	mov    %esi,-0xc(%ebp)
4fe6cd:	3b 75 d8             	cmp    -0x28(%ebp),%esi
4fe6d0:	7c 9e                	jl     0x4fe670
4fe6d2:	8b 4d dc             	mov    -0x24(%ebp),%ecx
4fe6d5:	8d 41 ff             	lea    -0x1(%ecx),%eax
4fe6d8:	99                   	cltd
4fe6d9:	f7 fb                	idiv   %ebx
4fe6db:	8d 72 01             	lea    0x1(%edx),%esi
4fe6de:	2b ce                	sub    %esi,%ecx
4fe6e0:	51                   	push   %ecx
4fe6e1:	ff 75 10             	push   0x10(%ebp)
4fe6e4:	89 4d dc             	mov    %ecx,-0x24(%ebp)
4fe6e7:	e8 24 0b 00 00       	call   0x4ff210
4fe6ec:	8b d0                	mov    %eax,%edx
4fe6ee:	8b ce                	mov    %esi,%ecx
4fe6f0:	8b 75 f0             	mov    -0x10(%ebp),%esi
4fe6f3:	b8 01 00 00 00       	mov    $0x1,%eax
4fe6f8:	d3 e0                	shl    %cl,%eax
4fe6fa:	48                   	dec    %eax
4fe6fb:	53                   	push   %ebx
4fe6fc:	23 d0                	and    %eax,%edx
4fe6fe:	8d 45 bc             	lea    -0x44(%ebp),%eax
4fe701:	52                   	push   %edx
4fe702:	ff 75 e8             	push   -0x18(%ebp)
4fe705:	ff 75 ec             	push   -0x14(%ebp)
4fe708:	50                   	push   %eax