505445:	d9 5b 60             	fstps  0x60(%ebx)
505448:	83 c3 04             	add    $0x4,%ebx
50544b:	4f                   	dec    %edi
50544c:	85 ff                	test   %edi,%edi
50544e:	0f 8f 06 fe ff ff    	jg     0x50525a
505454:	8b 45 0c             	mov    0xc(%ebp),%eax
505457:	8d 9d b0 fe ff ff    	lea    -0x150(%ebp),%ebx
50545d:	8b d0                	mov    %eax,%edx
50545f:	33 ff                	xor    %edi,%edi
505461:	89 55 b0             	mov    %edx,-0x50(%ebp)
505464:	8b 4d b0             	mov    -0x50(%ebp),%ecx
505467:	d9 03                	flds   (%ebx)
505469:	d8 43 10             	fadds  0x10(%ebx)
50546c:	8b 31                	mov    (%ecx),%esi
50546e:	03 75 08             	add    0x8(%ebp),%esi
505471:	d9 5d dc             	fstps  -0x24(%ebp)
505474:	d9 03                	flds   (%ebx)
505476:	d8 63 10             	fsubs  0x10(%ebx)
505479:	d9 5d d8             	fstps  -0x28(%ebp)
50547c:	d9 43 08             	flds   0x8(%ebx)
50547f:	d8 43 18             	fadds  0x18(%ebx)
505482:	d9 5d d0             	fstps  -0x30(%ebp)
505485:	d9 43 08             	flds   0x8(%ebx)
505488:	d8 63 18             	fsubs  0x18(%ebx)
50548b:	d8 0d 50 56 50 00    	fmuls  0x505650
505491:	d8 65 d0             	fsubs  -0x30(%ebp)
505494:	d9 5d d4             	fstps  -0x2c(%ebp)
505497:	d9 45 dc             	flds   -0x24(%ebp)
50549a:	d8 45 d0             	fadds  -0x30(%ebp)
50549d:	d9 5d fc             	fstps  -0x4(%ebp)
5054a0:	d9 45 dc             	flds   -0x24(%ebp)
5054a3:	d8 65 d0             	fsubs  -0x30(%ebp)
5054a6:	d9 5d f0             	fstps  -0x10(%ebp)
5054a9:	d9 45 d8             	flds   -0x28(%ebp)
5054ac:	d8 45 d4             	fadds  -0x2c(%ebp)
5054af:	d9 5d f8             	fstps  -0x8(%ebp)
5054b2:	d9 45 d8             	flds   -0x28(%ebp)
5054b5:	d8 65 d4             	fsubs  -0x2c(%ebp)
5054b8:	d9 5d f4             	fstps  -0xc(%ebp)
5054bb:	d9 43 14             	flds   0x14(%ebx)
5054be:	d8 43 0c             	fadds  0xc(%ebx)
5054c1:	d9 5d bc             	fstps  -0x44(%ebp)
5054c4:	d9 43 14             	flds   0x14(%ebx)
5054c7:	d8 63 0c             	fsubs  0xc(%ebx)
5054ca:	d9 5d c8             	fstps  -0x38(%ebp)
5054cd:	d9 43 04             	flds   0x4(%ebx)
5054d0:	d8 43 1c             	fadds  0x1c(%ebx)
5054d3:	d9 5d c4             	fstps  -0x3c(%ebp)
5054d6:	d9 43 04             	flds   0x4(%ebx)
5054d9:	d8 63 1c             	fsubs  0x1c(%ebx)
5054dc:	d9 5d c0             	fstps  -0x40(%ebp)
5054df:	d9 45 c4             	flds   -0x3c(%ebp)
5054e2:	d8 45 bc             	fadds  -0x44(%ebp)
5054e5:	d9 5d e0             	fstps  -0x20(%ebp)
5054e8:	d9 45 c4             	flds   -0x3c(%ebp)
5054eb:	d8 65 bc             	fsubs  -0x44(%ebp)
5054ee:	d8 0d 50 56 50 00    	fmuls  0x505650
5054f4:	d9 5d d8             	fstps  -0x28(%ebp)
5054f7:	d9 45 c8             	flds   -0x38(%ebp)
5054fa:	d8 45 c0             	fadds  -0x40(%ebp)
5054fd:	d8 0d 54 56 50 00    	fmuls  0x505654
505503:	d9 5d cc             	fstps  -0x34(%ebp)
505506:	d9 05 58 56 50 00    	flds   0x505658
50550c:	d8 4d c0             	fmuls  -0x40(%ebp)
50550f:	d8 65 cc             	fsubs  -0x34(%ebp)
505512:	d9 5d dc             	fstps  -0x24(%ebp)
505515:	d9 05 5c 56 50 00    	flds   0x50565c
50551b:	d8 4d c8             	fmuls  -0x38(%ebp)
50551e:	d8 45 cc             	fadds  -0x34(%ebp)
505521:	d9 5d d4             	fstps  -0x2c(%ebp)
505524:	d9 45 d4             	flds   -0x2c(%ebp)
505527:	d8 65 e0             	fsubs  -0x20(%ebp)
50552a:	d9 5d e4             	fstps  -0x1c(%ebp)
50552d:	d9 45 d8             	flds   -0x28(%ebp)
505530:	d8 65 e4             	fsubs  -0x1c(%ebp)
505533:	d9 5d e8             	fstps  -0x18(%ebp)
505536:	d9 45 dc             	flds   -0x24(%ebp)
505539:	d8 45 e8             	fadds  -0x18(%ebp)
50553c:	d9 5d ec             	fstps  -0x14(%ebp)
50553f:	d9 45 fc             	flds   -0x4(%ebp)
505542:	d8 45 e0             	fadds  -0x20(%ebp)
505545:	e8 d6 5d ff ff       	call   0x4fb320
50554a:	83 c0 04             	add    $0x4,%eax
50554d:	c1 f8 03             	sar    $0x3,%eax
505550:	25 ff 03 00 00       	and    $0x3ff,%eax
505555:	8b 55 b8             	mov    -0x48(%ebp),%edx
505558:	8a 0c 02             	mov    (%edx,%eax,1),%cl
50555b:	88 0e                	mov    %cl,(%esi)
50555d:	d9 45 fc             	flds   -0x4(%ebp)
505560:	d8 65 e0             	fsubs  -0x20(%ebp)
505563:	e8 b8 5d ff ff       	call   0x4fb320
505568:	83 c0 04             	add    $0x4,%eax
50556b:	c1 f8 03             	sar    $0x3,%eax
50556e:	25 ff 03 00 00       	and    $0x3ff,%eax
505573:	8b 55 b8             	mov    -0x48(%ebp),%edx
505576:	8a 0c 02             	mov    (%edx,%eax,1),%cl
505579:	88 4e 07             	mov    %cl,0x7(%esi)
50557c:	d9 45 f8             	flds   -0x8(%ebp)
50557f:	d8 45 e4             	fadds  -0x1c(%ebp)
505582:	e8 99 5d ff ff       	call   0x4fb320
505587:	83 c0 04             	add    $0x4,%eax
50558a:	c1 f8 03             	sar    $0x3,%eax
50558d:	25 ff 03 00 00       	and    $0x3ff,%eax
505592:	8b 55 b8             	mov    -0x48(%ebp),%edx
505595:	8a 0c 02             	mov    (%edx,%eax,1),%cl
505598:	88 4e 01             	mov    %cl,0x1(%esi)
50559b:	d9 45 f8             	flds   -0x8(%ebp)
50559e:	d8 65 e4             	fsubs  -0x1c(%ebp)
5055a1:	e8 7a 5d ff ff       	call   0x4fb320
5055a6:	83 c0 04             	add    $0x4,%eax
5055a9:	c1 f8 03             	sar    $0x3,%eax
5055ac:	25 ff 03 00 00       	and    $0x3ff,%eax
5055b1:	8b 55 b8             	mov    -0x48(%ebp),%edx
5055b4:	8a 0c 02             	mov    (%edx,%eax,1),%cl
5055b7:	88 4e 06             	mov    %cl,0x6(%esi)
5055ba:	d9 45 f4             	flds   -0xc(%ebp)
5055bd:	d8 45 e8             	fadds  -0x18(%ebp)
5055c0:	e8 5b 5d ff ff       	call   0x4fb320
5055c5:	83 c0 04             	add    $0x4,%eax
5055c8:	c1 f8 03             	sar    $0x3,%eax
5055cb:	25 ff 03 00 00       	and    $0x3ff,%eax
5055d0:	8b 55 b8             	mov    -0x48(%ebp),%edx
5055d3:	8a 0c 02             	mov    (%edx,%eax,1),%cl
5055d6:	88 4e 02             	mov    %cl,0x2(%esi)
5055d9:	d9 45 f4             	flds   -0xc(%ebp)
5055dc:	d8 65 e8             	fsubs  -0x18(%ebp)
5055df:	e8 3c 5d ff ff       	call   0x4fb320
5055e4:	83 c0 04             	add    $0x4,%eax
5055e7:	c1 f8 03             	sar    $0x3,%eax
5055ea:	25 ff 03 00 00       	and    $0x3ff,%eax
5055ef:	8b 55 b8             	mov    -0x48(%ebp),%edx
5055f2:	8a 0c 02             	mov    (%edx,%eax,1),%cl
5055f5:	88 4e 05             	mov    %cl,0x5(%esi)
5055f8:	d9 45 f0             	flds   -0x10(%ebp)
5055fb:	d8 45 ec             	fadds  -0x14(%ebp)
5055fe:	e8 1d 5d ff ff       	call   0x4fb320
505603:	83 c0 04             	add    $0x4,%eax
505606:	c1 f8 03             	sar    $0x3,%eax
505609:	25 ff 03 00 00       	and    $0x3ff,%eax
50560e:	8b 55 b8             	mov    -0x48(%ebp),%edx
505611:	8a 0c 02             	mov    (%edx,%eax,1),%cl
505614:	88 4e 04             	mov    %cl,0x4(%esi)
505617:	d9 45 f0             	flds   -0x10(%ebp)
50561a:	d8 65 ec             	fsubs  -0x14(%ebp)
50561d:	e8 fe 5c ff ff       	call   0x4fb320
505622:	83 c0 04             	add    $0x4,%eax
505625:	8b 55 b8             	mov    -0x48(%ebp),%edx
505628:	c1 f8 03             	sar    $0x3,%eax
50562b:	83 c3 20             	add    $0x20,%ebx
50562e:	25 ff 03 00 00       	and    $0x3ff,%eax
505633:	47                   	inc    %edi
505634:	8a 0c 02             	mov    (%edx,%eax,1),%cl
505637:	88 4e 03             	mov    %cl,0x3(%esi)
50563a:	83 45 b0 04          	addl   $0x4,-0x50(%ebp)
50563e:	83 ff 08             	cmp    $0x8,%edi
505641:	0f 8c 1d fe ff ff    	jl     0x505464
505647:	5f                   	pop    %edi
505648:	5e                   	pop    %esi
505649:	5b                   	pop    %ebx
50564a:	8b e5                	mov    %ebp,%esp
50564c:	5d                   	pop    %ebp
50564d:	c2 08 00             	ret    $0x8
505650:	f3 04 b5             	repz add $0xb5,%al
505653:	3f                   	aas
505654:	5e                   	pop    %esi
505655:	83 ec 3f             	sub    $0x3f,%esp
505658:	d4 8b                	aam    $0x8b
50565a:	8a 3f                	mov    (%edi),%bh
50565c:	75 3d                	jne    0x50569b
50565e:	27                   	daa
50565f:	c0 55 8b ec          	rclb   $0xec,-0x75(%ebp)
505663:	81 c4 c0 fe ff ff    	add    $0xfffffec0,%esp
505669:	53                   	push   %ebx
50566a:	56                   	push   %esi
50566b:	57                   	push   %edi
50566c:	89 4d f4             	mov    %ecx,-0xc(%ebp)
50566f:	89 55 f8             	mov    %edx,-0x8(%ebp)
505672:	89 45 fc             	mov    %eax,-0x4(%ebp)
505675:	8b 45 fc             	mov    -0x4(%ebp),%eax
505678:	8b 90 3c 01 00 00    	mov    0x13c(%eax),%edx
50567e:	81 c2 80 00 00 00    	add    $0x80,%edx
505684:	89 55 c8             	mov    %edx,-0x38(%ebp)
505687:	8b 55 f4             	mov    -0xc(%ebp),%edx
50568a:	8b 45 f8             	mov    -0x8(%ebp),%eax
50568d:	8b 48 50             	mov    0x50(%eax),%ecx
505690:	89 4d cc             	mov    %ecx,-0x34(%ebp)
505693:	8d 85 c0 fe ff ff    	lea    -0x140(%ebp),%eax
505699:	c7 45 c4 08 00 00 00 	movl   $0x8,-0x3c(%ebp)
5056a0:	66 8b 4a 10          	mov    0x10(%edx),%cx
5056a4:	66 0b 4a 20          	or     0x20(%edx),%cx
5056a8:	66 0b 4a 30          	or     0x30(%edx),%cx
5056ac:	66 0b 4a 40          	or     0x40(%edx),%cx
5056b0:	66 0b 4a 50          	or     0x50(%edx),%cx
5056b4:	66 0b 4a 60          	or     0x60(%edx),%cx
5056b8:	66 0b 4a 70          	or     0x70(%edx),%cx
5056bc:	75 3b                	jne    0x5056f9
5056be:	0f bf 0a             	movswl (%edx),%ecx
5056c1:	8b 5d cc             	mov    -0x34(%ebp),%ebx
5056c4:	83 c2 02             	add    $0x2,%edx
5056c7:	0f af 0b             	imul   (%ebx),%ecx
5056ca:	89 08                	mov    %ecx,(%eax)
5056cc:	89 48 20             	mov    %ecx,0x20(%eax)
5056cf:	89 48 40             	mov    %ecx,0x40(%eax)
5056d2:	89 48 60             	mov    %ecx,0x60(%eax)
5056d5:	89 88 80 00 00 00    	mov    %ecx,0x80(%eax)
5056db:	89 88 a0 00 00 00    	mov    %ecx,0xa0(%eax)
5056e1:	89 88 c0 00 00 00    	mov    %ecx,0xc0(%eax)
5056e7:	89 88 e0 00 00 00    	mov    %ecx,0xe0(%eax)
5056ed:	83 45 cc 04          	addl   $0x4,-0x34(%ebp)
5056f1:	83 c0 04             	add    $0x4,%eax
5056f4:	e9 79 01 00 00       	jmp    0x505872
5056f9:	0f bf 0a             	movswl (%edx),%ecx
5056fc:	8b 5d cc             	mov    -0x34(%ebp),%ebx
5056ff:	0f af 0b             	imul   (%ebx),%ecx
505702:	89 4d f0             	mov    %ecx,-0x10(%ebp)
505705:	0f bf 4a 20          	movswl 0x20(%edx),%ecx
505709:	8b 5d cc             	mov    -0x34(%ebp),%ebx
50570c:	0f af 4b 40          	imul   0x40(%ebx),%ecx
505710:	89 4d ec             	mov    %ecx,-0x14(%ebp)
505713:	0f bf 4a 40          	movswl 0x40(%edx),%ecx
505717:	8b 5d cc             	mov    -0x34(%ebp),%ebx
50571a:	0f af 8b 80 00 00 00 	imul   0x80(%ebx),%ecx
505721:	89 4d e8             	mov    %ecx,-0x18(%ebp)
505724:	0f bf 4a 60          	movswl 0x60(%edx),%ecx
505728:	8b 5d cc             	mov    -0x34(%ebp),%ebx
50572b:	0f af 8b c0 00 00 00 	imul   0xc0(%ebx),%ecx
505732:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
505735:	8b 4d f0             	mov    -0x10(%ebp),%ecx
505738:	8b 5d f0             	mov    -0x10(%ebp),%ebx
50573b:	8b 75 ec             	mov    -0x14(%ebp),%esi
50573e:	03 5d e8             	add    -0x18(%ebp),%ebx
505741:	2b 4d e8             	sub    -0x18(%ebp),%ecx
505744:	03 75 e4             	add    -0x1c(%ebp),%esi
505747:	89 75 d8             	mov    %esi,-0x28(%ebp)
50574a:	8b 75 ec             	mov    -0x14(%ebp),%esi
50574d:	8b 7d d8             	mov    -0x28(%ebp),%edi
505750:	2b 75 e4             	sub    -0x1c(%ebp),%esi
505753:	69 f6 6a 01 00 00    	imul   $0x16a,%esi,%esi
505759:	c1 fe 08             	sar    $0x8,%esi
50575c:	03 fb                	add    %ebx,%edi
50575e:	2b 75 d8             	sub    -0x28(%ebp),%esi
505761:	89 7d f0             	mov    %edi,-0x10(%ebp)
505764:	2b 5d d8             	sub    -0x28(%ebp),%ebx
505767:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
50576a:	8d 1c 0e             	lea    (%esi,%ecx,1),%ebx
50576d:	2b ce                	sub    %esi,%ecx
50576f:	89 5d ec             	mov    %ebx,-0x14(%ebp)
505772:	89 4d e8             	mov    %ecx,-0x18(%ebp)
505775:	0f bf 4a 10          	movswl 0x10(%edx),%ecx
505779:	8b 5d cc             	mov    -0x34(%ebp),%ebx
50577c:	0f af 4b 20          	imul   0x20(%ebx),%ecx
505780:	89 4d e0             	mov    %ecx,-0x20(%ebp)
505783:	0f bf 4a 30          	movswl 0x30(%edx),%ecx
505787:	8b 5d cc             	mov    -0x34(%ebp),%ebx
50578a:	8b 7d cc             	mov    -0x34(%ebp),%edi
50578d:	0f bf 72 50          	movswl 0x50(%edx),%esi
505791:	0f af 4b 60          	imul   0x60(%ebx),%ecx
505795:	8b 5d cc             	mov    -0x34(%ebp),%ebx
505798:	0f af b3 a0 00 00 00 	imul   0xa0(%ebx),%esi
50579f:	0f bf 5a 70          	movswl 0x70(%edx),%ebx
5057a3:	0f af 9f e0 00 00 00 	imul   0xe0(%edi),%ebx
5057aa:	89 5d dc             	mov    %ebx,-0x24(%ebp)
5057ad:	8d 1c 31             	lea    (%ecx,%esi,1),%ebx
5057b0:	2b f1                	sub    %ecx,%esi
5057b2:	8b 4d e0             	mov    -0x20(%ebp),%ecx
5057b5:	03 4d dc             	add    -0x24(%ebp),%ecx
5057b8:	8b 7d e0             	mov    -0x20(%ebp),%edi
5057bb:	2b 7d dc             	sub    -0x24(%ebp),%edi
5057be:	83 c2 02             	add    $0x2,%edx
5057c1:	89 7d d0             	mov    %edi,-0x30(%ebp)
5057c4:	8d 3c 0b             	lea    (%ebx,%ecx,1),%edi
5057c7:	2b cb                	sub    %ebx,%ecx
5057c9:	89 7d dc             	mov    %edi,-0x24(%ebp)
5057cc:	8b 5d d0             	mov    -0x30(%ebp),%ebx
5057cf:	69 c9 6a 01 00 00    	imul   $0x16a,%ecx,%ecx
5057d5:	03 de                	add    %esi,%ebx
5057d7:	69 f6 63 fd ff ff    	imul   $0xfffffd63,%esi,%esi
5057dd:	8b fb                	mov    %ebx,%edi
5057df:	c1 e3 04             	shl    $0x4,%ebx
5057e2:	2b df                	sub    %edi,%ebx
5057e4:	c1 e3 02             	shl    $0x2,%ebx
5057e7:	2b df                	sub    %edi,%ebx
5057e9:	c1 fe 08             	sar    $0x8,%esi
5057ec:	c1 f9 08             	sar    $0x8,%ecx
5057ef:	8d 1c df             	lea    (%edi,%ebx,8),%ebx
5057f2:	c1 fb 08             	sar    $0x8,%ebx
5057f5:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
5057f8:	03 75 d4             	add    -0x2c(%ebp),%esi
5057fb:	8b 5d d0             	mov    -0x30(%ebp),%ebx
5057fe:	8b fb                	mov    %ebx,%edi
505800:	2b 75 dc             	sub    -0x24(%ebp),%esi
505803:	c1 e3 04             	shl    $0x4,%ebx
505806:	2b ce                	sub    %esi,%ecx
505808:	03 df                	add    %edi,%ebx
50580a:	8d 1c 9f             	lea    (%edi,%ebx,4),%ebx
50580d:	8d 1c 9f             	lea    (%edi,%ebx,4),%ebx
505810:	c1 fb 08             	sar    $0x8,%ebx
505813:	2b 5d d4             	sub    -0x2c(%ebp),%ebx
505816:	8d 1c 19             	lea    (%ecx,%ebx,1),%ebx
505819:	89 5d e0             	mov    %ebx,-0x20(%ebp)
50581c:	8b 5d f0             	mov    -0x10(%ebp),%ebx
50581f:	03 5d dc             	add    -0x24(%ebp),%ebx
505822:	89 18                	mov    %ebx,(%eax)
505824:	8b 5d f0             	mov    -0x10(%ebp),%ebx
505827:	2b 5d dc             	sub    -0x24(%ebp),%ebx
50582a:	89 98 e0 00 00 00    	mov    %ebx,0xe0(%eax)
505830:	8b 5d ec             	mov    -0x14(%ebp),%ebx
505833:	03 de                	add    %esi,%ebx
505835:	89 58 20             	mov    %ebx,0x20(%eax)
505838:	8b 5d ec             	mov    -0x14(%ebp),%ebx
50583b:	2b de                	sub    %esi,%ebx
50583d:	89 98 c0 00 00 00    	mov    %ebx,0xc0(%eax)
505843:	8b 5d e8             	mov    -0x18(%ebp),%ebx
505846:	03 d9                	add    %ecx,%ebx
505848:	89 58 40             	mov    %ebx,0x40(%eax)
50584b:	8b 5d e8             	mov    -0x18(%ebp),%ebx
50584e:	2b d9                	sub    %ecx,%ebx
505850:	89 98 a0 00 00 00    	mov    %ebx,0xa0(%eax)
505856:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
505859:	03 4d e0             	add    -0x20(%ebp),%ecx
50585c:	89 88 80 00 00 00    	mov    %ecx,0x80(%eax)
505862:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
505865:	2b 4d e0             	sub    -0x20(%ebp),%ecx
505868:	89 48 60             	mov    %ecx,0x60(%eax)
50586b:	83 45 cc 04          	addl   $0x4,-0x34(%ebp)
50586f:	83 c0 04             	add    $0x4,%eax
505872:	ff 4d c4             	decl   -0x3c(%ebp)
505875:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
505879:	0f 8f 21 fe ff ff    	jg     0x5056a0
50587f:	8d 85 c0 fe ff ff    	lea    -0x140(%ebp),%eax
505885:	33 d2                	xor    %edx,%edx
505887:	89 55 c4             	mov    %edx,-0x3c(%ebp)
50588a:	8b 55 0c             	mov    0xc(%ebp),%edx
50588d:	8b ca                	mov    %edx,%ecx
50588f:	89 4d c0             	mov    %ecx,-0x40(%ebp)
505892:	8b 48 04             	mov    0x4(%eax),%ecx
505895:	8b 55 c0             	mov    -0x40(%ebp),%edx
505898:	0b 48 08             	or     0x8(%eax),%ecx
50589b:	0b 48 0c             	or     0xc(%eax),%ecx
50589e:	8b 12                	mov    (%edx),%edx
5058a0:	0b 48 10             	or     0x10(%eax),%ecx
5058a3:	03 55 08             	add    0x8(%ebp),%edx
5058a6:	0b 48 14             	or     0x14(%eax),%ecx
5058a9:	0b 48 18             	or     0x18(%eax),%ecx
5058ac:	0b 48 1c             	or     0x1c(%eax),%ecx
5058af:	75 30                	jne    0x5058e1
5058b1:	8b 08                	mov    (%eax),%ecx
5058b3:	c1 f9 05             	sar    $0x5,%ecx
5058b6:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
5058bc:	8b 5d c8             	mov    -0x38(%ebp),%ebx