524452:	5b                   	pop    %ebx
524453:	8b e5                	mov    %ebp,%esp
524455:	5d                   	pop    %ebp
524456:	c3                   	ret
524457:	90                   	nop
524458:	55                   	push   %ebp
524459:	8b ec                	mov    %esp,%ebp
52445b:	81 c4 f8 fe ff ff    	add    $0xfffffef8,%esp
524461:	53                   	push   %ebx
524462:	56                   	push   %esi
524463:	57                   	push   %edi
524464:	33 db                	xor    %ebx,%ebx
524466:	89 9d f8 fe ff ff    	mov    %ebx,-0x108(%ebp)
52446c:	89 9d fc fe ff ff    	mov    %ebx,-0x104(%ebp)
524472:	89 9d 04 ff ff ff    	mov    %ebx,-0xfc(%ebp)
524478:	89 9d 08 ff ff ff    	mov    %ebx,-0xf8(%ebp)
52447e:	89 9d 0c ff ff ff    	mov    %ebx,-0xf4(%ebp)
524484:	89 9d 1c ff ff ff    	mov    %ebx,-0xe4(%ebp)
52448a:	89 9d 20 ff ff ff    	mov    %ebx,-0xe0(%ebp)
524490:	89 5d 80             	mov    %ebx,-0x80(%ebp)
524493:	89 9d 30 ff ff ff    	mov    %ebx,-0xd0(%ebp)
524499:	89 8d 70 ff ff ff    	mov    %ecx,-0x90(%ebp)
52449f:	89 55 84             	mov    %edx,-0x7c(%ebp)
5244a2:	89 45 f4             	mov    %eax,-0xc(%ebp)
5244a5:	8d 7d f4             	lea    -0xc(%ebp),%edi
5244a8:	33 c0                	xor    %eax,%eax
5244aa:	55                   	push   %ebp
5244ab:	68 a8 53 52 00       	push   $0x5253a8
5244b0:	64 ff 30             	push   %fs:(%eax)
5244b3:	64 89 20             	mov    %esp,%fs:(%eax)
5244b6:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
5244ba:	0f 8e 97 0e 00 00    	jle    0x525357
5244c0:	83 7d 08 01          	cmpl   $0x1,0x8(%ebp)
5244c4:	0f 8e 8d 0e 00 00    	jle    0x525357
5244ca:	8b 07                	mov    (%edi),%eax
5244cc:	05 88 02 00 00       	add    $0x288,%eax
5244d1:	e8 92 03 ee ff       	call   0x404868
5244d6:	33 c0                	xor    %eax,%eax
5244d8:	89 85 6c ff ff ff    	mov    %eax,-0x94(%ebp)
5244de:	33 c0                	xor    %eax,%eax
5244e0:	89 85 68 ff ff ff    	mov    %eax,-0x98(%ebp)
5244e6:	33 c0                	xor    %eax,%eax
5244e8:	89 85 64 ff ff ff    	mov    %eax,-0x9c(%ebp)
5244ee:	c7 85 54 ff ff ff ff 	movl   $0xffffffff,-0xac(%ebp)
5244f5:	ff ff ff
5244f8:	33 c0                	xor    %eax,%eax
5244fa:	89 45 f8             	mov    %eax,-0x8(%ebp)
5244fd:	c7 45 fc 00 00 f0 3f 	movl   $0x3ff00000,-0x4(%ebp)
524504:	33 c0                	xor    %eax,%eax
524506:	89 45 c0             	mov    %eax,-0x40(%ebp)
524509:	33 c0                	xor    %eax,%eax
52450b:	89 85 38 ff ff ff    	mov    %eax,-0xc8(%ebp)
524511:	8b 07                	mov    (%edi),%eax
524513:	dd 80 40 02 00 00    	fldl   0x240(%eax)
524519:	d8 1d b8 53 52 00    	fcomps 0x5253b8
52451f:	df e0                	fnstsw %ax
524521:	9e                   	sahf
524522:	74 23                	je     0x524547
524524:	8b 07                	mov    (%edi),%eax
524526:	8b 80 14 02 00 00    	mov    0x214(%eax),%eax
52452c:	03 c0                	add    %eax,%eax
52452e:	8d 04 80             	lea    (%eax,%eax,4),%eax
524531:	c1 e0 04             	shl    $0x4,%eax
524534:	e8 73 e2 ed ff       	call   0x4027ac
524539:	89 85 40 ff ff ff    	mov    %eax,-0xc0(%ebp)
52453f:	8b 9d 40 ff ff ff    	mov    -0xc0(%ebp),%ebx
524545:	eb 0a                	jmp    0x524551
524547:	33 c0                	xor    %eax,%eax
524549:	89 85 40 ff ff ff    	mov    %eax,-0xc0(%ebp)
52454f:	33 db                	xor    %ebx,%ebx
524551:	8b 07                	mov    (%edi),%eax
524553:	8b 80 38 02 00 00    	mov    0x238(%eax),%eax
524559:	e8 3a 3e f0 ff       	call   0x428398
52455e:	3c 01                	cmp    $0x1,%al
524560:	75 0a                	jne    0x52456c
524562:	8b 07                	mov    (%edi),%eax
524564:	33 d2                	xor    %edx,%edx
524566:	89 90 a0 02 00 00    	mov    %edx,0x2a0(%eax)
52456c:	8b 07                	mov    (%edi),%eax
52456e:	8b 80 2c 02 00 00    	mov    0x22c(%eax),%eax
524574:	8b 50 18             	mov    0x18(%eax),%edx
524577:	8b 45 84             	mov    -0x7c(%ebp),%eax
52457a:	8b 40 0c             	mov    0xc(%eax),%eax
52457d:	e8 16 35 f0 ff       	call   0x427a98
524582:	8b 07                	mov    (%edi),%eax
524584:	8b 80 2c 02 00 00    	mov    0x22c(%eax),%eax
52458a:	8b 50 18             	mov    0x18(%eax),%edx
52458d:	8b 45 84             	mov    -0x7c(%ebp),%eax
524590:	8b 40 10             	mov    0x10(%eax),%eax
524593:	e8 ec 39 f0 ff       	call   0x427f84
524598:	8b 07                	mov    (%edi),%eax
52459a:	8b 90 a0 02 00 00    	mov    0x2a0(%eax),%edx
5245a0:	8b 45 84             	mov    -0x7c(%ebp),%eax
5245a3:	8b 40 10             	mov    0x10(%eax),%eax
5245a6:	e8 05 3b f0 ff       	call   0x4280b0
5245ab:	8b 07                	mov    (%edi),%eax
5245ad:	8b 80 34 02 00 00    	mov    0x234(%eax),%eax
5245b3:	e8 c4 39 f0 ff       	call   0x427f7c
5245b8:	8b d0                	mov    %eax,%edx
5245ba:	8b 45 84             	mov    -0x7c(%ebp),%eax
5245bd:	8b 40 10             	mov    0x10(%eax),%eax
5245c0:	e8 bf 39 f0 ff       	call   0x427f84
5245c5:	8b 07                	mov    (%edi),%eax
5245c7:	8b 80 34 02 00 00    	mov    0x234(%eax),%eax
5245cd:	e8 a6 3a f0 ff       	call   0x428078
5245d2:	8b d0                	mov    %eax,%edx
5245d4:	8b 45 84             	mov    -0x7c(%ebp),%eax
5245d7:	8b 40 10             	mov    0x10(%eax),%eax
5245da:	e8 a1 3a f0 ff       	call   0x428080
5245df:	8b 07                	mov    (%edi),%eax
5245e1:	8b 80 38 02 00 00    	mov    0x238(%eax),%eax
5245e7:	e8 90 3c f0 ff       	call   0x42827c
5245ec:	8b d0                	mov    %eax,%edx
5245ee:	8b 45 84             	mov    -0x7c(%ebp),%eax
5245f1:	8b 40 14             	mov    0x14(%eax),%eax
5245f4:	e8 8b 3c f0 ff       	call   0x428284
5245f9:	8b 07                	mov    (%edi),%eax
5245fb:	8b 80 38 02 00 00    	mov    0x238(%eax),%eax
524601:	e8 92 3d f0 ff       	call   0x428398
524606:	8b d0                	mov    %eax,%edx
524608:	8b 45 84             	mov    -0x7c(%ebp),%eax
52460b:	8b 40 14             	mov    0x14(%eax),%eax
52460e:	e8 8d 3d f0 ff       	call   0x4283a0
524613:	8b 45 84             	mov    -0x7c(%ebp),%eax
524616:	8b 40 10             	mov    0x10(%eax),%eax
524619:	b2 04                	mov    $0x4,%dl
52461b:	e8 44 3a f0 ff       	call   0x428064
524620:	8b 07                	mov    (%edi),%eax
524622:	dd 80 40 02 00 00    	fldl   0x240(%eax)
524628:	d8 1d b8 53 52 00    	fcomps 0x5253b8
52462e:	df e0                	fnstsw %ax
524630:	9e                   	sahf
524631:	74 22                	je     0x524655
524633:	8b 07                	mov    (%edi),%eax
524635:	db 80 a0 02 00 00    	fildl  0x2a0(%eax)
52463b:	8b 07                	mov    (%edi),%eax
52463d:	dc 88 40 02 00 00    	fmull  0x240(%eax)
524643:	e8 78 e6 ed ff       	call   0x402cc0
524648:	8b d0                	mov    %eax,%edx
52464a:	8b 45 84             	mov    -0x7c(%ebp),%eax
52464d:	8b 40 10             	mov    0x10(%eax),%eax
524650:	e8 5b 3a f0 ff       	call   0x4280b0
524655:	8b 07                	mov    (%edi),%eax
524657:	83 b8 a0 02 00 00 00 	cmpl   $0x0,0x2a0(%eax)
52465e:	0f 8c 2f 01 00 00    	jl     0x524793
524664:	8b 07                	mov    (%edi),%eax
524666:	8b 80 38 02 00 00    	mov    0x238(%eax),%eax
52466c:	e8 27 3d f0 ff       	call   0x428398
524671:	3c 01                	cmp    $0x1,%al
524673:	0f 84 1a 01 00 00    	je     0x524793
524679:	8b 07                	mov    (%edi),%eax
52467b:	80 b8 9c 02 00 00 00 	cmpb   $0x0,0x29c(%eax)
524682:	0f 84 89 00 00 00    	je     0x524711
524688:	db 45 0c             	fildl  0xc(%ebp)
52468b:	8b 07                	mov    (%edi),%eax
52468d:	dc 88 40 02 00 00    	fmull  0x240(%eax)
524693:	e8 28 e6 ed ff       	call   0x402cc0
524698:	8b 95 70 ff ff ff    	mov    -0x90(%ebp),%edx
52469e:	03 c2                	add    %edx,%eax
5246a0:	8b 17                	mov    (%edi),%edx
5246a2:	8b 92 a0 02 00 00    	mov    0x2a0(%edx),%edx
5246a8:	d1 fa                	sar    $1,%edx
5246aa:	79 03                	jns    0x5246af
5246ac:	83 d2 00             	adc    $0x0,%edx
5246af:	2b c2                	sub    %edx,%eax
5246b1:	50                   	push   %eax
5246b2:	db 45 08             	fildl  0x8(%ebp)
5246b5:	8b 07                	mov    (%edi),%eax
5246b7:	dc 88 40 02 00 00    	fmull  0x240(%eax)
5246bd:	e8 fe e5 ed ff       	call   0x402cc0
5246c2:	8b 55 10             	mov    0x10(%ebp),%edx
5246c5:	03 c2                	add    %edx,%eax
5246c7:	8b 17                	mov    (%edi),%edx
5246c9:	8b 92 a0 02 00 00    	mov    0x2a0(%edx),%edx
5246cf:	d1 fa                	sar    $1,%edx
5246d1:	79 03                	jns    0x5246d6
5246d3:	83 d2 00             	adc    $0x0,%edx
5246d6:	2b c2                	sub    %edx,%eax
5246d8:	50                   	push   %eax
5246d9:	6a 14                	push   $0x14
5246db:	6a 14                	push   $0x14
5246dd:	8b 07                	mov    (%edi),%eax
5246df:	8b 88 a0 02 00 00    	mov    0x2a0(%eax),%ecx
5246e5:	d1 f9                	sar    $1,%ecx
5246e7:	79 03                	jns    0x5246ec
5246e9:	83 d1 00             	adc    $0x0,%ecx
5246ec:	03 4d 10             	add    0x10(%ebp),%ecx
5246ef:	8b 07                	mov    (%edi),%eax
5246f1:	8b 90 a0 02 00 00    	mov    0x2a0(%eax),%edx
5246f7:	d1 fa                	sar    $1,%edx
5246f9:	79 03                	jns    0x5246fe
5246fb:	83 d2 00             	adc    $0x0,%edx
5246fe:	03 95 70 ff ff ff    	add    -0x90(%ebp),%edx
524704:	8b 45 84             	mov    -0x7c(%ebp),%eax
524707:	e8 c8 41 f0 ff       	call   0x4288d4
52470c:	e9 82 00 00 00       	jmp    0x524793
524711:	db 45 0c             	fildl  0xc(%ebp)
524714:	8b 07                	mov    (%edi),%eax
524716:	dc 88 40 02 00 00    	fmull  0x240(%eax)
52471c:	e8 9f e5 ed ff       	call   0x402cc0
524721:	8b 95 70 ff ff ff    	mov    -0x90(%ebp),%edx
524727:	03 c2                	add    %edx,%eax
524729:	8b 17                	mov    (%edi),%edx
52472b:	8b 92 a0 02 00 00    	mov    0x2a0(%edx),%edx
524731:	4a                   	dec    %edx
524732:	d1 fa                	sar    $1,%edx
524734:	79 03                	jns    0x524739
524736:	83 d2 00             	adc    $0x0,%edx
524739:	2b c2                	sub    %edx,%eax
52473b:	50                   	push   %eax
52473c:	db 45 08             	fildl  0x8(%ebp)
52473f:	8b 07                	mov    (%edi),%eax
524741:	dc 88 40 02 00 00    	fmull  0x240(%eax)
524747:	e8 74 e5 ed ff       	call   0x402cc0
52474c:	8b 55 10             	mov    0x10(%ebp),%edx
52474f:	03 c2                	add    %edx,%eax
524751:	8b 17                	mov    (%edi),%edx
524753:	8b 92 a0 02 00 00    	mov    0x2a0(%edx),%edx
524759:	4a                   	dec    %edx
52475a:	d1 fa                	sar    $1,%edx
52475c:	79 03                	jns    0x524761
52475e:	83 d2 00             	adc    $0x0,%edx
524761:	2b c2                	sub    %edx,%eax
524763:	50                   	push   %eax
524764:	8b 07                	mov    (%edi),%eax
524766:	8b 88 a0 02 00 00    	mov    0x2a0(%eax),%ecx
52476c:	d1 f9                	sar    $1,%ecx
52476e:	79 03                	jns    0x524773
524770:	83 d1 00             	adc    $0x0,%ecx
524773:	03 4d 10             	add    0x10(%ebp),%ecx
524776:	8b 07                	mov    (%edi),%eax
524778:	8b 90 a0 02 00 00    	mov    0x2a0(%eax),%edx
52477e:	d1 fa                	sar    $1,%edx
524780:	79 03                	jns    0x524785
524782:	83 d2 00             	adc    $0x0,%edx
524785:	03 95 70 ff ff ff    	add    -0x90(%ebp),%edx
52478b:	8b 45 84             	mov    -0x7c(%ebp),%eax
52478e:	e8 dd 40 f0 ff       	call   0x428870
524793:	8b 45 84             	mov    -0x7c(%ebp),%eax
524796:	8b 40 10             	mov    0x10(%eax),%eax
524799:	33 d2                	xor    %edx,%edx
52479b:	e8 e0 38 f0 ff       	call   0x428080
5247a0:	8b 07                	mov    (%edi),%eax
5247a2:	8b 80 a0 02 00 00    	mov    0x2a0(%eax),%eax
5247a8:	8b f0                	mov    %eax,%esi
5247aa:	83 c6 04             	add    $0x4,%esi
5247ad:	83 c0 03             	add    $0x3,%eax
5247b0:	89 85 44 ff ff ff    	mov    %eax,-0xbc(%ebp)
5247b6:	8b c6                	mov    %esi,%eax
5247b8:	03 c0                	add    %eax,%eax
5247ba:	83 e8 04             	sub    $0x4,%eax
5247bd:	29 45 0c             	sub    %eax,0xc(%ebp)
5247c0:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
5247c6:	03 c0                	add    %eax,%eax
5247c8:	29 45 08             	sub    %eax,0x8(%ebp)
5247cb:	6a 18                	push   $0x18
5247cd:	8b 45 84             	mov    -0x7c(%ebp),%eax
5247d0:	e8 eb 44 f0 ff       	call   0x428cc0
5247d5:	50                   	push   %eax
5247d6:	e8 9d 2f ee ff       	call   0x407778
5247db:	89 85 48 ff ff ff    	mov    %eax,-0xb8(%ebp)
5247e1:	8b 07                	mov    (%edi),%eax
5247e3:	8b 80 10 02 00 00    	mov    0x210(%eax),%eax
5247e9:	89 45 d8             	mov    %eax,-0x28(%ebp)
5247ec:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
5247f0:	0f 84 38 05 00 00    	je     0x524d2e
5247f6:	c6 45 f3 01          	movb   $0x1,-0xd(%ebp)
5247fa:	8b 45 d8             	mov    -0x28(%ebp),%eax
5247fd:	89 45 dc             	mov    %eax,-0x24(%ebp)
524800:	33 c0                	xor    %eax,%eax
524802:	89 45 d4             	mov    %eax,-0x2c(%ebp)
524805:	33 c0                	xor    %eax,%eax
524807:	89 45 c4             	mov    %eax,-0x3c(%ebp)
52480a:	33 c0                	xor    %eax,%eax
52480c:	89 45 d0             	mov    %eax,-0x30(%ebp)
52480f:	33 c0                	xor    %eax,%eax
524811:	89 45 e8             	mov    %eax,-0x18(%ebp)
524814:	33 c0                	xor    %eax,%eax
524816:	89 45 e4             	mov    %eax,-0x1c(%ebp)
524819:	33 c0                	xor    %eax,%eax
52481b:	89 45 e0             	mov    %eax,-0x20(%ebp)
52481e:	33 c0                	xor    %eax,%eax
524820:	89 45 cc             	mov    %eax,-0x34(%ebp)
524823:	33 c0                	xor    %eax,%eax
524825:	89 45 c8             	mov    %eax,-0x38(%ebp)
524828:	8b 07                	mov    (%edi),%eax
52482a:	8b 55 d8             	mov    -0x28(%ebp),%edx
52482d:	2b 90 10 02 00 00    	sub    0x210(%eax),%edx
524833:	89 55 ec             	mov    %edx,-0x14(%ebp)
524836:	8b 07                	mov    (%edi),%eax
524838:	8b 80 74 02 00 00    	mov    0x274(%eax),%eax
52483e:	8b 55 ec             	mov    -0x14(%ebp),%edx
524841:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
524844:	03 ce                	add    %esi,%ecx
524846:	89 0c 90             	mov    %ecx,(%eax,%edx,4)
524849:	8b 07                	mov    (%edi),%eax
52484b:	8b 80 78 02 00 00    	mov    0x278(%eax),%eax
524851:	8b 55 ec             	mov    -0x14(%ebp),%edx
524854:	8b 8d 44 ff ff ff    	mov    -0xbc(%ebp),%ecx
52485a:	03 4d d0             	add    -0x30(%ebp),%ecx
52485d:	89 0c 90             	mov    %ecx,(%eax,%edx,4)
524860:	8b 45 d8             	mov    -0x28(%ebp),%eax
524863:	8a 00                	mov    (%eax),%al
524865:	2c 01                	sub    $0x1,%al
524867:	72 09                	jb     0x524872
524869:	2c 09                	sub    $0x9,%al
52486b:	74 1d                	je     0x52488a
52486d:	e9 d2 00 00 00       	jmp    0x524944
524872:	80 7d f3 00          	cmpb   $0x0,-0xd(%ebp)
524876:	0f 84 b2 04 00 00    	je     0x524d2e
52487c:	55                   	push   %ebp
52487d:	e8 c2 f7 ff ff       	call   0x524044
524882:	59                   	pop    %ecx
524883:	33 c0                	xor    %eax,%eax
524885:	89 45 c0             	mov    %eax,-0x40(%ebp)
524888:	eb 9e                	jmp    0x524828
52488a:	83 bd 54 ff ff ff ff 	cmpl   $0xffffffff,-0xac(%ebp)
524891:	75 09                	jne    0x52489c
524893:	8b 45 ec             	mov    -0x14(%ebp),%eax
524896:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
52489c:	55                   	push   %ebp
52489d:	e8 5a f9 ff ff       	call   0x5241fc
5248a2:	59                   	pop    %ecx
5248a3:	ff 45 d8             	incl   -0x28(%ebp)
5248a6:	8b 07                	mov    (%edi),%eax
5248a8:	8b 80 18 02 00 00    	mov    0x218(%eax),%eax
5248ae:	3b 85 54 ff ff ff    	cmp    -0xac(%ebp),%eax
5248b4:	75 2e                	jne    0x5248e4
5248b6:	8b 45 ec             	mov    -0x14(%ebp),%eax
5248b9:	3b 85 54 ff ff ff    	cmp    -0xac(%ebp),%eax
5248bf:	75 23                	jne    0x5248e4
5248c1:	8d 06                	lea    (%esi),%eax
5248c3:	8b 17                	mov    (%edi),%edx
5248c5:	89 82 20 02 00 00    	mov    %eax,0x220(%edx)
5248cb:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
5248d1:	8b 17                	mov    (%edi),%edx
5248d3:	89 82 24 02 00 00    	mov    %eax,0x224(%edx)
5248d9:	8b 07                	mov    (%edi),%eax
5248db:	8b 55 d4             	mov    -0x2c(%ebp),%edx
5248de:	89 90 28 02 00 00    	mov    %edx,0x228(%eax)
5248e4:	8b 07                	mov    (%edi),%eax
5248e6:	8b 80 18 02 00 00    	mov    0x218(%eax),%eax
5248ec:	3b 45 ec             	cmp    -0x14(%ebp),%eax
5248ef:	7e 29                	jle    0x52491a
5248f1:	8d 06                	lea    (%esi),%eax
5248f3:	8b 17                	mov    (%edi),%edx
5248f5:	89 82 20 02 00 00    	mov    %eax,0x220(%edx)
5248fb:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
524901:	03 45 d0             	add    -0x30(%ebp),%eax
524904:	03 45 d4             	add    -0x2c(%ebp),%eax