54a24f:	33 c9                	xor    %ecx,%ecx
54a251:	8a 5f fb             	mov    -0x5(%edi),%bl
54a254:	8a 4f fc             	mov    -0x4(%edi),%cl
54a257:	0f b7 db             	movzwl %bx,%ebx
54a25a:	0f b7 c9             	movzwl %cx,%ecx
54a25d:	c1 e3 08             	shl    $0x8,%ebx
54a260:	0b cb                	or     %ebx,%ecx
54a262:	8b 5c 24 04          	mov    0x4(%esp),%ebx
54a266:	0f b7 5b 02          	movzwl 0x2(%ebx),%ebx
54a26a:	3b cb                	cmp    %ebx,%ecx
54a26c:	75 4b                	jne    0x54a2b9
54a26e:	33 db                	xor    %ebx,%ebx
54a270:	33 c9                	xor    %ecx,%ecx
54a272:	8a 5f fd             	mov    -0x3(%edi),%bl
54a275:	8a 4f fe             	mov    -0x2(%edi),%cl
54a278:	0f b7 db             	movzwl %bx,%ebx
54a27b:	0f b7 c9             	movzwl %cx,%ecx
54a27e:	c1 e3 08             	shl    $0x8,%ebx
54a281:	0b cb                	or     %ebx,%ecx
54a283:	8b 5c 24 04          	mov    0x4(%esp),%ebx
54a287:	0f b7 5b 04          	movzwl 0x4(%ebx),%ebx
54a28b:	3b cb                	cmp    %ebx,%ecx
54a28d:	75 2a                	jne    0x54a2b9
54a28f:	33 db                	xor    %ebx,%ebx
54a291:	33 c9                	xor    %ecx,%ecx
54a293:	8a 5f ff             	mov    -0x1(%edi),%bl
54a296:	8a 0f                	mov    (%edi),%cl
54a298:	0f b7 db             	movzwl %bx,%ebx
54a29b:	0f b7 c9             	movzwl %cx,%ecx
54a29e:	c1 e3 08             	shl    $0x8,%ebx
54a2a1:	0b cb                	or     %ebx,%ecx
54a2a3:	8b 5c 24 04          	mov    0x4(%esp),%ebx
54a2a7:	0f b7 5b 06          	movzwl 0x6(%ebx),%ebx
54a2ab:	3b cb                	cmp    %ebx,%ecx
54a2ad:	75 0a                	jne    0x54a2b9
54a2af:	c6 06 00             	movb   $0x0,(%esi)
54a2b2:	4e                   	dec    %esi
54a2b3:	c6 06 00             	movb   $0x0,(%esi)
54a2b6:	4e                   	dec    %esi
54a2b7:	eb 08                	jmp    0x54a2c1
54a2b9:	c6 06 ff             	movb   $0xff,(%esi)
54a2bc:	4e                   	dec    %esi
54a2bd:	c6 06 ff             	movb   $0xff,(%esi)
54a2c0:	4e                   	dec    %esi
54a2c1:	8a 0f                	mov    (%edi),%cl
54a2c3:	4f                   	dec    %edi
54a2c4:	88 0e                	mov    %cl,(%esi)
54a2c6:	4e                   	dec    %esi
54a2c7:	8a 0f                	mov    (%edi),%cl
54a2c9:	4f                   	dec    %edi
54a2ca:	88 0e                	mov    %cl,(%esi)
54a2cc:	4e                   	dec    %esi
54a2cd:	8a 0f                	mov    (%edi),%cl
54a2cf:	4f                   	dec    %edi
54a2d0:	88 0e                	mov    %cl,(%esi)
54a2d2:	4e                   	dec    %esi
54a2d3:	8a 0f                	mov    (%edi),%cl
54a2d5:	4f                   	dec    %edi
54a2d6:	88 0e                	mov    %cl,(%esi)
54a2d8:	4e                   	dec    %esi
54a2d9:	8a 0f                	mov    (%edi),%cl
54a2db:	4f                   	dec    %edi
54a2dc:	88 0e                	mov    %cl,(%esi)
54a2de:	4e                   	dec    %esi
54a2df:	8a 0f                	mov    (%edi),%cl
54a2e1:	4f                   	dec    %edi
54a2e2:	88 0e                	mov    %cl,(%esi)
54a2e4:	4e                   	dec    %esi
54a2e5:	45                   	inc    %ebp
54a2e6:	3b d5                	cmp    %ebp,%edx
54a2e8:	0f 87 5f ff ff ff    	ja     0x54a24d
54a2ee:	c6 40 08 06          	movb   $0x6,0x8(%eax)
54a2f2:	c6 40 0a 04          	movb   $0x4,0xa(%eax)
54a2f6:	8a 48 09             	mov    0x9(%eax),%cl
54a2f9:	c1 e1 02             	shl    $0x2,%ecx
54a2fc:	88 48 0b             	mov    %cl,0xb(%eax)
54a2ff:	81 e1 ff 00 00 00    	and    $0xff,%ecx
54a305:	0f af ca             	imul   %edx,%ecx
54a308:	c1 e9 03             	shr    $0x3,%ecx
54a30b:	89 48 04             	mov    %ecx,0x4(%eax)
54a30e:	83 c4 14             	add    $0x14,%esp
54a311:	5d                   	pop    %ebp
54a312:	5f                   	pop    %edi
54a313:	5e                   	pop    %esi
54a314:	5b                   	pop    %ebx
54a315:	c3                   	ret
54a316:	90                   	nop
54a317:	90                   	nop
54a318:	55                   	push   %ebp
54a319:	8b ec                	mov    %esp,%ebp
54a31b:	83 c4 d8             	add    $0xffffffd8,%esp
54a31e:	53                   	push   %ebx
54a31f:	56                   	push   %esi
54a320:	57                   	push   %edi
54a321:	89 4d fc             	mov    %ecx,-0x4(%ebp)
54a324:	8b 4d 08             	mov    0x8(%ebp),%ecx
54a327:	8b 18                	mov    (%eax),%ebx
54a329:	89 5d f8             	mov    %ebx,-0x8(%ebp)
54a32c:	8a 58 08             	mov    0x8(%eax),%bl
54a32f:	80 fb 02             	cmp    $0x2,%bl
54a332:	0f 85 9c 00 00 00    	jne    0x54a3d4
54a338:	8b 5d fc             	mov    -0x4(%ebp),%ebx
54a33b:	85 db                	test   %ebx,%ebx
54a33d:	0f 84 91 00 00 00    	je     0x54a3d4
54a343:	8a 58 09             	mov    0x9(%eax),%bl
54a346:	80 fb 08             	cmp    $0x8,%bl
54a349:	0f 85 85 00 00 00    	jne    0x54a3d4
54a34f:	8b f2                	mov    %edx,%esi
54a351:	8b ca                	mov    %edx,%ecx
54a353:	33 d2                	xor    %edx,%edx
54a355:	8b 5d f8             	mov    -0x8(%ebp),%ebx
54a358:	3b d3                	cmp    %ebx,%edx
54a35a:	73 54                	jae    0x54a3b0
54a35c:	33 db                	xor    %ebx,%ebx
54a35e:	42                   	inc    %edx
54a35f:	8a 1e                	mov    (%esi),%bl
54a361:	46                   	inc    %esi
54a362:	89 5d f4             	mov    %ebx,-0xc(%ebp)
54a365:	33 db                	xor    %ebx,%ebx
54a367:	8a 1e                	mov    (%esi),%bl
54a369:	46                   	inc    %esi
54a36a:	89 5d f0             	mov    %ebx,-0x10(%ebp)
54a36d:	33 db                	xor    %ebx,%ebx
54a36f:	8a 1e                	mov    (%esi),%bl
54a371:	46                   	inc    %esi
54a372:	89 5d ec             	mov    %ebx,-0x14(%ebp)
54a375:	8b 5d f4             	mov    -0xc(%ebp),%ebx
54a378:	8b 7d f0             	mov    -0x10(%ebp),%edi
54a37b:	c1 ff 03             	sar    $0x3,%edi
54a37e:	c1 fb 03             	sar    $0x3,%ebx
54a381:	83 e7 1f             	and    $0x1f,%edi
54a384:	83 e3 1f             	and    $0x1f,%ebx
54a387:	c1 e3 0a             	shl    $0xa,%ebx
54a38a:	c1 e7 05             	shl    $0x5,%edi
54a38d:	0b df                	or     %edi,%ebx
54a38f:	8b 7d ec             	mov    -0x14(%ebp),%edi
54a392:	c1 ff 03             	sar    $0x3,%edi
54a395:	83 e7 1f             	and    $0x1f,%edi
54a398:	0b df                	or     %edi,%ebx
54a39a:	89 5d e8             	mov    %ebx,-0x18(%ebp)
54a39d:	8b 5d fc             	mov    -0x4(%ebp),%ebx
54a3a0:	8b 7d e8             	mov    -0x18(%ebp),%edi
54a3a3:	8a 1c 3b             	mov    (%ebx,%edi,1),%bl
54a3a6:	88 19                	mov    %bl,(%ecx)
54a3a8:	41                   	inc    %ecx
54a3a9:	8b 5d f8             	mov    -0x8(%ebp),%ebx
54a3ac:	3b d3                	cmp    %ebx,%edx
54a3ae:	72 ac                	jb     0x54a35c
54a3b0:	c6 40 08 03          	movb   $0x3,0x8(%eax)
54a3b4:	c6 40 0a 01          	movb   $0x1,0xa(%eax)
54a3b8:	8a 50 09             	mov    0x9(%eax),%dl
54a3bb:	33 c9                	xor    %ecx,%ecx
54a3bd:	88 50 0b             	mov    %dl,0xb(%eax)
54a3c0:	8a ca                	mov    %dl,%cl
54a3c2:	0f af 4d f8          	imul   -0x8(%ebp),%ecx
54a3c6:	83 c1 07             	add    $0x7,%ecx
54a3c9:	c1 e9 03             	shr    $0x3,%ecx
54a3cc:	89 48 04             	mov    %ecx,0x4(%eax)
54a3cf:	e9 d6 00 00 00       	jmp    0x54a4aa
54a3d4:	8a 58 08             	mov    0x8(%eax),%bl
54a3d7:	80 fb 06             	cmp    $0x6,%bl
54a3da:	0f 85 9a 00 00 00    	jne    0x54a47a
54a3e0:	8b 5d fc             	mov    -0x4(%ebp),%ebx
54a3e3:	85 db                	test   %ebx,%ebx
54a3e5:	0f 84 8f 00 00 00    	je     0x54a47a
54a3eb:	8a 58 09             	mov    0x9(%eax),%bl
54a3ee:	80 fb 08             	cmp    $0x8,%bl
54a3f1:	0f 85 83 00 00 00    	jne    0x54a47a
54a3f7:	8b f2                	mov    %edx,%esi
54a3f9:	8b ca                	mov    %edx,%ecx
54a3fb:	33 d2                	xor    %edx,%edx
54a3fd:	8b 5d f8             	mov    -0x8(%ebp),%ebx
54a400:	3b d3                	cmp    %ebx,%edx
54a402:	73 55                	jae    0x54a459
54a404:	33 db                	xor    %ebx,%ebx
54a406:	42                   	inc    %edx
54a407:	8a 1e                	mov    (%esi),%bl
54a409:	46                   	inc    %esi
54a40a:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
54a40d:	33 db                	xor    %ebx,%ebx
54a40f:	8a 1e                	mov    (%esi),%bl
54a411:	46                   	inc    %esi
54a412:	89 5d e0             	mov    %ebx,-0x20(%ebp)
54a415:	33 db                	xor    %ebx,%ebx
54a417:	8a 1e                	mov    (%esi),%bl
54a419:	46                   	inc    %esi
54a41a:	89 5d dc             	mov    %ebx,-0x24(%ebp)
54a41d:	46                   	inc    %esi
54a41e:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
54a421:	8b 7d e0             	mov    -0x20(%ebp),%edi
54a424:	c1 ff 03             	sar    $0x3,%edi
54a427:	c1 fb 03             	sar    $0x3,%ebx
54a42a:	83 e7 1f             	and    $0x1f,%edi
54a42d:	83 e3 1f             	and    $0x1f,%ebx
54a430:	c1 e3 0a             	shl    $0xa,%ebx
54a433:	c1 e7 05             	shl    $0x5,%edi
54a436:	0b df                	or     %edi,%ebx
54a438:	8b 7d dc             	mov    -0x24(%ebp),%edi
54a43b:	c1 ff 03             	sar    $0x3,%edi
54a43e:	83 e7 1f             	and    $0x1f,%edi
54a441:	0b df                	or     %edi,%ebx
54a443:	89 5d d8             	mov    %ebx,-0x28(%ebp)
54a446:	8b 5d fc             	mov    -0x4(%ebp),%ebx
54a449:	8b 7d d8             	mov    -0x28(%ebp),%edi
54a44c:	8a 1c 3b             	mov    (%ebx,%edi,1),%bl
54a44f:	88 19                	mov    %bl,(%ecx)
54a451:	41                   	inc    %ecx
54a452:	8b 5d f8             	mov    -0x8(%ebp),%ebx
54a455:	3b d3                	cmp    %ebx,%edx
54a457:	72 ab                	jb     0x54a404
54a459:	c6 40 08 03          	movb   $0x3,0x8(%eax)
54a45d:	c6 40 0a 01          	movb   $0x1,0xa(%eax)
54a461:	8a 50 09             	mov    0x9(%eax),%dl
54a464:	33 c9                	xor    %ecx,%ecx
54a466:	88 50 0b             	mov    %dl,0xb(%eax)
54a469:	8a ca                	mov    %dl,%cl
54a46b:	0f af 4d f8          	imul   -0x8(%ebp),%ecx
54a46f:	83 c1 07             	add    $0x7,%ecx
54a472:	c1 e9 03             	shr    $0x3,%ecx
54a475:	89 48 04             	mov    %ecx,0x4(%eax)
54a478:	eb 30                	jmp    0x54a4aa
54a47a:	8a 58 08             	mov    0x8(%eax),%bl
54a47d:	80 fb 03             	cmp    $0x3,%bl
54a480:	75 28                	jne    0x54a4aa
54a482:	85 c9                	test   %ecx,%ecx
54a484:	74 24                	je     0x54a4aa
54a486:	8a 40 09             	mov    0x9(%eax),%al
54a489:	3c 08                	cmp    $0x8,%al
54a48b:	75 1d                	jne    0x54a4aa
54a48d:	8b f2                	mov    %edx,%esi
54a48f:	33 d2                	xor    %edx,%edx
54a491:	8b 45 f8             	mov    -0x8(%ebp),%eax
54a494:	3b d0                	cmp    %eax,%edx
54a496:	73 12                	jae    0x54a4aa
54a498:	33 c0                	xor    %eax,%eax
54a49a:	8a 06                	mov    (%esi),%al
54a49c:	8a 04 01             	mov    (%ecx,%eax,1),%al
54a49f:	88 06                	mov    %al,(%esi)
54a4a1:	42                   	inc    %edx
54a4a2:	46                   	inc    %esi
54a4a3:	8b 45 f8             	mov    -0x8(%ebp),%eax
54a4a6:	3b d0                	cmp    %eax,%edx
54a4a8:	72 ee                	jb     0x54a498
54a4aa:	5f                   	pop    %edi
54a4ab:	5e                   	pop    %esi
54a4ac:	5b                   	pop    %ebx
54a4ad:	8b e5                	mov    %ebp,%esp
54a4af:	5d                   	pop    %ebp
54a4b0:	c2 04 00             	ret    $0x4
54a4b3:	90                   	nop
54a4b4:	53                   	push   %ebx
54a4b5:	56                   	push   %esi
54a4b6:	8b f0                	mov    %eax,%esi
54a4b8:	57                   	push   %edi
54a4b9:	55                   	push   %ebp
54a4ba:	83 c4 98             	add    $0xffffff98,%esp
54a4bd:	d9 86 1c 01 00 00    	flds   0x11c(%esi)
54a4c3:	d8 1d 04 ab 54 00    	fcomps 0x54ab04
54a4c9:	df e0                	fnstsw %ax
54a4cb:	9e                   	sahf
54a4cc:	0f 84 29 06 00 00    	je     0x54aafb
54a4d2:	8a 96 e7 00 00 00    	mov    0xe7(%esi),%dl
54a4d8:	80 fa 08             	cmp    $0x8,%dl
54a4db:	0f 87 98 01 00 00    	ja     0x54a679
54a4e1:	d9 86 20 01 00 00    	flds   0x120(%esi)
54a4e7:	dc 1d 08 ab 54 00    	fcompl 0x54ab08
54a4ed:	df e0                	fnstsw %ax
54a4ef:	9e                   	sahf
54a4f0:	76 17                	jbe    0x54a509
54a4f2:	d9 86 1c 01 00 00    	flds   0x11c(%esi)
54a4f8:	d8 8e 20 01 00 00    	fmuls  0x120(%esi)
54a4fe:	d8 3d 10 ab 54 00    	fdivrs 0x54ab10
54a504:	dd 1c 24             	fstpl  (%esp)
54a507:	eb 0d                	jmp    0x54a516
54a509:	33 d2                	xor    %edx,%edx
54a50b:	89 14 24             	mov    %edx,(%esp)
54a50e:	c7 44 24 04 00 00 f0 	movl   $0x3ff00000,0x4(%esp)
54a515:	3f
54a516:	ba 00 01 00 00       	mov    $0x100,%edx
54a51b:	8b c6                	mov    %esi,%eax
54a51d:	e8 46 08 00 00       	call   0x54ad68
54a522:	89 86 24 01 00 00    	mov    %eax,0x124(%esi)
54a528:	33 db                	xor    %ebx,%ebx
54a52a:	ff 74 24 04          	push   0x4(%esp)
54a52e:	ff 74 24 04          	push   0x4(%esp)
54a532:	89 5c 24 40          	mov    %ebx,0x40(%esp)
54a536:	db 44 24 40          	fildl  0x40(%esp)
54a53a:	db 2d 14 ab 54 00    	fldt   0x54ab14
54a540:	de c9                	fmulp  %st,%st(1)
54a542:	83 c4 f8             	add    $0xfffffff8,%esp
54a545:	dd 1c 24             	fstpl  (%esp)
54a548:	e8 0b bf fd ff       	call   0x526458
54a54d:	83 c4 10             	add    $0x10,%esp
54a550:	d8 0d 20 ab 54 00    	fmuls  0x54ab20
54a556:	d8 05 24 ab 54 00    	fadds  0x54ab24
54a55c:	e8 b7 bf fd ff       	call   0x526518
54a561:	8b 96 24 01 00 00    	mov    0x124(%esi),%edx
54a567:	88 04 1a             	mov    %al,(%edx,%ebx,1)
54a56a:	43                   	inc    %ebx
54a56b:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
54a571:	7c b7                	jl     0x54a52a
54a573:	f7 46 30 80 00 60 00 	testl  $0x600080,0x30(%esi)
54a57a:	0f 84 7b 05 00 00    	je     0x54aafb
54a580:	d9 05 10 ab 54 00    	flds   0x54ab10
54a586:	d8 b6 1c 01 00 00    	fdivs  0x11c(%esi)
54a58c:	dd 1c 24             	fstpl  (%esp)
54a58f:	ba 00 01 00 00       	mov    $0x100,%edx
54a594:	8b c6                	mov    %esi,%eax
54a596:	e8 cd 07 00 00       	call   0x54ad68
54a59b:	89 86 2c 01 00 00    	mov    %eax,0x12c(%esi)
54a5a1:	33 db                	xor    %ebx,%ebx
54a5a3:	ff 74 24 04          	push   0x4(%esp)
54a5a7:	ff 74 24 04          	push   0x4(%esp)
54a5ab:	89 5c 24 44          	mov    %ebx,0x44(%esp)
54a5af:	db 44 24 44          	fildl  0x44(%esp)
54a5b3:	db 2d 14 ab 54 00    	fldt   0x54ab14
54a5b9:	de c9                	fmulp  %st,%st(1)
54a5bb:	83 c4 f8             	add    $0xfffffff8,%esp
54a5be:	dd 1c 24             	fstpl  (%esp)
54a5c1:	e8 92 be fd ff       	call   0x526458
54a5c6:	83 c4 10             	add    $0x10,%esp
54a5c9:	d8 0d 20 ab 54 00    	fmuls  0x54ab20
54a5cf:	d8 05 24 ab 54 00    	fadds  0x54ab24
54a5d5:	e8 3e bf fd ff       	call   0x526518
54a5da:	8b 96 2c 01 00 00    	mov    0x12c(%esi),%edx
54a5e0:	88 04 1a             	mov    %al,(%edx,%ebx,1)
54a5e3:	43                   	inc    %ebx
54a5e4:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
54a5ea:	7c b7                	jl     0x54a5a3
54a5ec:	ba 00 01 00 00       	mov    $0x100,%edx
54a5f1:	8b c6                	mov    %esi,%eax
54a5f3:	e8 70 07 00 00       	call   0x54ad68
54a5f8:	89 86 28 01 00 00    	mov    %eax,0x128(%esi)
54a5fe:	d9 86 20 01 00 00    	flds   0x120(%esi)
54a604:	dc 1d 08 ab 54 00    	fcompl 0x54ab08
54a60a:	df e0                	fnstsw %ax
54a60c:	9e                   	sahf
54a60d:	76 11                	jbe    0x54a620
54a60f:	d9 05 10 ab 54 00    	flds   0x54ab10
54a615:	d8 b6 20 01 00 00    	fdivs  0x120(%esi)
54a61b:	dd 1c 24             	fstpl  (%esp)
54a61e:	eb 09                	jmp    0x54a629
54a620:	d9 86 1c 01 00 00    	flds   0x11c(%esi)
54a626:	dd 1c 24             	fstpl  (%esp)
54a629:	33 db                	xor    %ebx,%ebx
54a62b:	ff 74 24 04          	push   0x4(%esp)
54a62f:	ff 74 24 04          	push   0x4(%esp)
54a633:	89 5c 24 48          	mov    %ebx,0x48(%esp)
54a637:	db 44 24 48          	fildl  0x48(%esp)
54a63b:	db 2d 14 ab 54 00    	fldt   0x54ab14