524226:	8b 40 d8             	mov    -0x28(%eax),%eax
524229:	8a 00                	mov    (%eax),%al
52422b:	3c 1f                	cmp    $0x1f,%al
52422d:	72 07                	jb     0x524236
52422f:	8b 55 08             	mov    0x8(%ebp),%edx
524232:	3c 7f                	cmp    $0x7f,%al
524234:	75 06                	jne    0x52423c
524236:	c6 45 ff 20          	movb   $0x20,-0x1(%ebp)
52423a:	eb 06                	jmp    0x524242
52423c:	8b 55 08             	mov    0x8(%ebp),%edx
52423f:	88 45 ff             	mov    %al,-0x1(%ebp)
524242:	8b 45 08             	mov    0x8(%ebp),%eax
524245:	8b 48 84             	mov    -0x7c(%eax),%ecx
524248:	8b 16                	mov    (%esi),%edx
52424a:	8b 03                	mov    (%ebx),%eax
52424c:	e8 eb f8 ff ff       	call   0x523b3c
524251:	8b 16                	mov    (%esi),%edx
524253:	8b 03                	mov    (%ebx),%eax
524255:	e8 76 fb ff ff       	call   0x523dd0
52425a:	48                   	dec    %eax
52425b:	0f 84 9e 00 00 00    	je     0x5242ff
524261:	8b 16                	mov    (%esi),%edx
524263:	8b 03                	mov    (%ebx),%eax
524265:	e8 66 fb ff ff       	call   0x523dd0
52426a:	85 c0                	test   %eax,%eax
52426c:	75 28                	jne    0x524296
52426e:	8d 45 f8             	lea    -0x8(%ebp),%eax
524271:	8a 55 ff             	mov    -0x1(%ebp),%dl
524274:	e8 cf 07 ee ff       	call   0x404a48
524279:	8b 55 f8             	mov    -0x8(%ebp),%edx
52427c:	8b 45 08             	mov    0x8(%ebp),%eax
52427f:	8b 40 84             	mov    -0x7c(%eax),%eax
524282:	e8 75 48 f0 ff       	call   0x428afc
524287:	8b 16                	mov    (%esi),%edx
524289:	8b 0b                	mov    (%ebx),%ecx
52428b:	8b 89 6c 02 00 00    	mov    0x26c(%ecx),%ecx
524291:	88 04 11             	mov    %al,(%ecx,%edx,1)
524294:	eb 77                	jmp    0x52430d
524296:	8d 45 f4             	lea    -0xc(%ebp),%eax
524299:	8b 55 08             	mov    0x8(%ebp),%edx
52429c:	8b 52 d8             	mov    -0x28(%edx),%edx
52429f:	4a                   	dec    %edx
5242a0:	8a 12                	mov    (%edx),%dl
5242a2:	88 50 01             	mov    %dl,0x1(%eax)
5242a5:	c6 00 01             	movb   $0x1,(%eax)
5242a8:	8d 55 f4             	lea    -0xc(%ebp),%edx
5242ab:	8d 45 f0             	lea    -0x10(%ebp),%eax
5242ae:	e8 71 ee ed ff       	call   0x403124
5242b3:	8d 45 ec             	lea    -0x14(%ebp),%eax
5242b6:	8b 55 08             	mov    0x8(%ebp),%edx
5242b9:	8b 52 d8             	mov    -0x28(%edx),%edx
5242bc:	8a 12                	mov    (%edx),%dl
5242be:	88 50 01             	mov    %dl,0x1(%eax)
5242c1:	c6 00 01             	movb   $0x1,(%eax)
5242c4:	8d 55 ec             	lea    -0x14(%ebp),%edx
5242c7:	8d 45 f0             	lea    -0x10(%ebp),%eax
5242ca:	b1 02                	mov    $0x2,%cl
5242cc:	e8 23 ee ed ff       	call   0x4030f4
5242d1:	8d 55 f0             	lea    -0x10(%ebp),%edx
5242d4:	8b 45 08             	mov    0x8(%ebp),%eax
5242d7:	83 c0 80             	add    $0xffffff80,%eax
5242da:	e8 e5 07 ee ff       	call   0x404ac4
5242df:	8b 45 08             	mov    0x8(%ebp),%eax
5242e2:	8b 50 80             	mov    -0x80(%eax),%edx
5242e5:	8b 45 08             	mov    0x8(%ebp),%eax
5242e8:	8b 40 84             	mov    -0x7c(%eax),%eax
5242eb:	e8 0c 48 f0 ff       	call   0x428afc
5242f0:	8b 16                	mov    (%esi),%edx
5242f2:	8b 0b                	mov    (%ebx),%ecx
5242f4:	8b 89 6c 02 00 00    	mov    0x26c(%ecx),%ecx
5242fa:	88 04 11             	mov    %al,(%ecx,%edx,1)
5242fd:	eb 0e                	jmp    0x52430d
5242ff:	8b 06                	mov    (%esi),%eax
524301:	8b 13                	mov    (%ebx),%edx
524303:	8b 92 6c 02 00 00    	mov    0x26c(%edx),%edx
524309:	c6 04 02 00          	movb   $0x0,(%edx,%eax,1)
52430d:	8b 06                	mov    (%esi),%eax
52430f:	8b 13                	mov    (%ebx),%edx
524311:	8b 92 6c 02 00 00    	mov    0x26c(%edx),%edx
524317:	0f b6 04 02          	movzbl (%edx,%eax,1),%eax
52431b:	8b 55 08             	mov    0x8(%ebp),%edx
52431e:	89 82 7c ff ff ff    	mov    %eax,-0x84(%edx)
524324:	8b 16                	mov    (%esi),%edx
524326:	8b 03                	mov    (%ebx),%eax
524328:	8b 80 68 02 00 00    	mov    0x268(%eax),%eax
52432e:	80 3c 10 00          	cmpb   $0x0,(%eax,%edx,1)
524332:	75 6b                	jne    0x52439f
524334:	8b 13                	mov    (%ebx),%edx
524336:	83 ba 64 02 00 00 00 	cmpl   $0x0,0x264(%edx)
52433d:	75 45                	jne    0x524384
52433f:	8b 45 08             	mov    0x8(%ebp),%eax
524342:	83 c0 88             	add    $0xffffff88,%eax
524345:	50                   	push   %eax
524346:	8b 45 08             	mov    0x8(%ebp),%eax
524349:	8b 40 84             	mov    -0x7c(%eax),%eax
52434c:	e8 6f 49 f0 ff       	call   0x428cc0
524351:	50                   	push   %eax
524352:	e8 e9 32 ee ff       	call   0x407640
524357:	8b 06                	mov    (%esi),%eax
524359:	8b 13                	mov    (%ebx),%edx
52435b:	8b 92 68 02 00 00    	mov    0x268(%edx),%edx
524361:	8b 4d 08             	mov    0x8(%ebp),%ecx
524364:	8a 49 88             	mov    -0x78(%ecx),%cl
524367:	88 0c 02             	mov    %cl,(%edx,%eax,1)
52436a:	8b 45 08             	mov    0x8(%ebp),%eax
52436d:	8b 40 94             	mov    -0x6c(%eax),%eax
524370:	99                   	cltd
524371:	33 c2                	xor    %edx,%eax
524373:	2b c2                	sub    %edx,%eax
524375:	8b 16                	mov    (%esi),%edx
524377:	8b 0b                	mov    (%ebx),%ecx
524379:	8b 89 70 02 00 00    	mov    0x270(%ecx),%ecx
52437f:	88 04 11             	mov    %al,(%ecx,%edx,1)
524382:	eb 1b                	jmp    0x52439f
524384:	8b 16                	mov    (%esi),%edx
524386:	8b 0b                	mov    (%ebx),%ecx
524388:	8a 89 64 02 00 00    	mov    0x264(%ecx),%cl
52438e:	88 0c 10             	mov    %cl,(%eax,%edx,1)
524391:	8b 06                	mov    (%esi),%eax
524393:	8b 13                	mov    (%ebx),%edx
524395:	8b 92 70 02 00 00    	mov    0x270(%edx),%edx
52439b:	c6 04 02 00          	movb   $0x0,(%edx,%eax,1)
52439f:	8b 06                	mov    (%esi),%eax
5243a1:	8b 13                	mov    (%ebx),%edx
5243a3:	8b 92 68 02 00 00    	mov    0x268(%edx),%edx
5243a9:	0f b6 04 02          	movzbl (%edx,%eax,1),%eax
5243ad:	8b 55 08             	mov    0x8(%ebp),%edx
5243b0:	89 82 78 ff ff ff    	mov    %eax,-0x88(%edx)
5243b6:	8b 06                	mov    (%esi),%eax
5243b8:	8b 13                	mov    (%ebx),%edx
5243ba:	8b 92 70 02 00 00    	mov    0x270(%edx),%edx
5243c0:	0f b6 04 02          	movzbl (%edx,%eax,1),%eax
5243c4:	8b 55 08             	mov    0x8(%ebp),%edx
5243c7:	89 82 74 ff ff ff    	mov    %eax,-0x8c(%edx)
5243cd:	8b 45 08             	mov    0x8(%ebp),%eax
5243d0:	80 78 f3 00          	cmpb   $0x0,-0xd(%eax)
5243d4:	74 5e                	je     0x524434
5243d6:	8b 45 08             	mov    0x8(%ebp),%eax
5243d9:	8b 80 78 ff ff ff    	mov    -0x88(%eax),%eax
5243df:	8b 55 08             	mov    0x8(%ebp),%edx
5243e2:	89 42 cc             	mov    %eax,-0x34(%edx)
5243e5:	8b 45 08             	mov    0x8(%ebp),%eax
5243e8:	8b 80 74 ff ff ff    	mov    -0x8c(%eax),%eax
5243ee:	8b 55 08             	mov    0x8(%ebp),%edx
5243f1:	89 42 c8             	mov    %eax,-0x38(%edx)
5243f4:	8b 45 08             	mov    0x8(%ebp),%eax
5243f7:	8b 80 78 ff ff ff    	mov    -0x88(%eax),%eax
5243fd:	8b 55 08             	mov    0x8(%ebp),%edx
524400:	3b 42 d4             	cmp    -0x2c(%edx),%eax
524403:	7e 0f                	jle    0x524414
524405:	8b 45 08             	mov    0x8(%ebp),%eax
524408:	8b 80 78 ff ff ff    	mov    -0x88(%eax),%eax
52440e:	8b 55 08             	mov    0x8(%ebp),%edx
524411:	89 42 d4             	mov    %eax,-0x2c(%edx)
524414:	8b 45 08             	mov    0x8(%ebp),%eax
524417:	8b 80 74 ff ff ff    	mov    -0x8c(%eax),%eax
52441d:	8b 55 08             	mov    0x8(%ebp),%edx
524420:	3b 42 c4             	cmp    -0x3c(%edx),%eax
524423:	7e 0f                	jle    0x524434
524425:	8b 45 08             	mov    0x8(%ebp),%eax
524428:	8b 80 74 ff ff ff    	mov    -0x8c(%eax),%eax
52442e:	8b 55 08             	mov    0x8(%ebp),%edx
524431:	89 42 c4             	mov    %eax,-0x3c(%edx)
524434:	33 c0                	xor    %eax,%eax
524436:	5a                   	pop    %edx
524437:	59                   	pop    %ecx
524438:	59                   	pop    %ecx
524439:	64 89 10             	mov    %edx,%fs:(%eax)
52443c:	68 51 44 52 00       	push   $0x524451
524441:	8d 45 f8             	lea    -0x8(%ebp),%eax
524444:	e8 1f 04 ee ff       	call   0x404868
524449:	c3                   	ret
52444a:	e9 bd fd ed ff       	jmp    0x40420c
52444f:	eb f0                	jmp    0x524441
524451:	5e                   	pop    %esi
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