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
54a641:	de c9                	fmulp  %st,%st(1)
54a643:	83 c4 f8             	add    $0xfffffff8,%esp
54a646:	dd 1c 24             	fstpl  (%esp)
54a649:	e8 0a be fd ff       	call   0x526458
54a64e:	83 c4 10             	add    $0x10,%esp
54a651:	d8 0d 20 ab 54 00    	fmuls  0x54ab20
54a657:	d8 05 24 ab 54 00    	fadds  0x54ab24
54a65d:	e8 b6 be fd ff       	call   0x526518
54a662:	8b 96 28 01 00 00    	mov    0x128(%esi),%edx
54a668:	88 04 1a             	mov    %al,(%edx,%ebx,1)
54a66b:	43                   	inc    %ebx
54a66c:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
54a672:	7c b7                	jl     0x54a62b
54a674:	e9 82 04 00 00       	jmp    0x54aafb
54a679:	f6 86 e6 00 00 00 02 	testb  $0x2,0xe6(%esi)
54a680:	74 26                	je     0x54a6a8
54a682:	33 c0                	xor    %eax,%eax
54a684:	33 d2                	xor    %edx,%edx
54a686:	8a 96 3d 01 00 00    	mov    0x13d(%esi),%dl
54a68c:	8a 86 3c 01 00 00    	mov    0x13c(%esi),%al
54a692:	3b c2                	cmp    %edx,%eax
54a694:	7d 02                	jge    0x54a698
54a696:	8b c2                	mov    %edx,%eax
54a698:	33 d2                	xor    %edx,%edx
54a69a:	8a 96 3e 01 00 00    	mov    0x13e(%esi),%dl
54a6a0:	3b c2                	cmp    %edx,%eax
54a6a2:	7d 0c                	jge    0x54a6b0
54a6a4:	8b c2                	mov    %edx,%eax
54a6a6:	eb 08                	jmp    0x54a6b0
54a6a8:	33 c0                	xor    %eax,%eax
54a6aa:	8a 86 3f 01 00 00    	mov    0x13f(%esi),%al
54a6b0:	85 c0                	test   %eax,%eax
54a6b2:	7e 0d                	jle    0x54a6c1
54a6b4:	ba 10 00 00 00       	mov    $0x10,%edx
54a6b9:	2b d0                	sub    %eax,%edx
54a6bb:	89 54 24 10          	mov    %edx,0x10(%esp)
54a6bf:	eb 06                	jmp    0x54a6c7
54a6c1:	33 c9                	xor    %ecx,%ecx
54a6c3:	89 4c 24 10          	mov    %ecx,0x10(%esp)
54a6c7:	f6 46 31 04          	testb  $0x4,0x31(%esi)
54a6cb:	74 11                	je     0x54a6de
54a6cd:	8b 44 24 10          	mov    0x10(%esp),%eax
54a6d1:	83 f8 05             	cmp    $0x5,%eax
54a6d4:	7d 08                	jge    0x54a6de
54a6d6:	c7 44 24 10 05 00 00 	movl   $0x5,0x10(%esp)
54a6dd:	00
54a6de:	8b 54 24 10          	mov    0x10(%esp),%edx
54a6e2:	83 fa 08             	cmp    $0x8,%edx
54a6e5:	7e 08                	jle    0x54a6ef
54a6e7:	c7 44 24 10 08 00 00 	movl   $0x8,0x10(%esp)
54a6ee:	00
54a6ef:	8b 4c 24 10          	mov    0x10(%esp),%ecx
54a6f3:	85 c9                	test   %ecx,%ecx
54a6f5:	7d 06                	jge    0x54a6fd
54a6f7:	33 c0                	xor    %eax,%eax
54a6f9:	89 44 24 10          	mov    %eax,0x10(%esp)
54a6fd:	33 d2                	xor    %edx,%edx
54a6ff:	8a 54 24 10          	mov    0x10(%esp),%dl
54a703:	89 96 18 01 00 00    	mov    %edx,0x118(%esi)
54a709:	b9 08 00 00 00       	mov    $0x8,%ecx
54a70e:	8b 44 24 10          	mov    0x10(%esp),%eax
54a712:	2b c8                	sub    %eax,%ecx
54a714:	ba 01 00 00 00       	mov    $0x1,%edx
54a719:	d3 e2                	shl    %cl,%edx
54a71b:	89 54 24 14          	mov    %edx,0x14(%esp)
54a71f:	d9 86 20 01 00 00    	flds   0x120(%esi)
54a725:	dc 1d 08 ab 54 00    	fcompl 0x54ab08
54a72b:	df e0                	fnstsw %ax
54a72d:	9e                   	sahf
54a72e:	76 18                	jbe    0x54a748
54a730:	d9 86 1c 01 00 00    	flds   0x11c(%esi)
54a736:	d8 8e 20 01 00 00    	fmuls  0x120(%esi)
54a73c:	d8 3d 10 ab 54 00    	fdivrs 0x54ab10
54a742:	dd 5c 24 08          	fstpl  0x8(%esp)
54a746:	eb 0e                	jmp    0x54a756
54a748:	33 d2                	xor    %edx,%edx
54a74a:	89 54 24 08          	mov    %edx,0x8(%esp)
54a74e:	c7 44 24 0c 00 00 f0 	movl   $0x3ff00000,0xc(%esp)
54a755:	3f
54a756:	8b 54 24 14          	mov    0x14(%esp),%edx
54a75a:	8b c6                	mov    %esi,%eax
54a75c:	c1 e2 02             	shl    $0x2,%edx
54a75f:	e8 04 06 00 00       	call   0x54ad68
54a764:	89 86 30 01 00 00    	mov    %eax,0x130(%esi)
54a76a:	f7 46 30 80 04 00 00 	testl  $0x480,0x30(%esi)
54a771:	0f 84 1d 01 00 00    	je     0x54a894
54a777:	33 ff                	xor    %edi,%edi
54a779:	8b 44 24 14          	mov    0x14(%esp),%eax
54a77d:	3b f8                	cmp    %eax,%edi
54a77f:	7d 1e                	jge    0x54a79f
54a781:	ba 00 02 00 00       	mov    $0x200,%edx
54a786:	8b c6                	mov    %esi,%eax
54a788:	e8 db 05 00 00       	call   0x54ad68
54a78d:	8b 96 30 01 00 00    	mov    0x130(%esi),%edx
54a793:	89 04 ba             	mov    %eax,(%edx,%edi,4)
54a796:	47                   	inc    %edi
54a797:	8b 4c 24 14          	mov    0x14(%esp),%ecx
54a79b:	3b f9                	cmp    %ecx,%edi
54a79d:	7c e2                	jl     0x54a781
54a79f:	d9 05 10 ab 54 00    	flds   0x54ab10
54a7a5:	dc 74 24 08          	fdivl  0x8(%esp)
54a7a9:	dd 5c 24 08          	fstpl  0x8(%esp)
54a7ad:	33 db                	xor    %ebx,%ebx
54a7af:	33 ff                	xor    %edi,%edi
54a7b1:	89 7c 24 44          	mov    %edi,0x44(%esp)
54a7b5:	db 44 24 44          	fildl  0x44(%esp)
54a7b9:	d8 05 24 ab 54 00    	fadds  0x54ab24
54a7bf:	d8 0d 28 ab 54 00    	fmuls  0x54ab28
54a7c5:	dd 5c 24 20          	fstpl  0x20(%esp)
54a7c9:	ff 74 24 0c          	push   0xc(%esp)
54a7cd:	ff 74 24 0c          	push   0xc(%esp)
54a7d1:	ff 74 24 2c          	push   0x2c(%esp)
54a7d5:	ff 74 24 2c          	push   0x2c(%esp)
54a7d9:	e8 7a bc fd ff       	call   0x526458
54a7de:	83 c4 10             	add    $0x10,%esp
54a7e1:	dd 5c 24 18          	fstpl  0x18(%esp)
54a7e5:	8b 4c 24 14          	mov    0x14(%esp),%ecx
54a7e9:	c1 e1 08             	shl    $0x8,%ecx
54a7ec:	33 c0                	xor    %eax,%eax
54a7ee:	89 4c 24 48          	mov    %ecx,0x48(%esp)
54a7f2:	89 44 24 4c          	mov    %eax,0x4c(%esp)
54a7f6:	df 6c 24 48          	fildll 0x48(%esp)
54a7fa:	dc 4c 24 18          	fmull  0x18(%esp)
54a7fe:	e8 15 bd fd ff       	call   0x526518
54a803:	89 44 24 28          	mov    %eax,0x28(%esp)
54a807:	8b 54 24 28          	mov    0x28(%esp),%edx
54a80b:	3b da                	cmp    %edx,%ebx
54a80d:	77 3a                	ja     0x54a849
54a80f:	b9 08 00 00 00       	mov    $0x8,%ecx
54a814:	8b 44 24 10          	mov    0x10(%esp),%eax
54a818:	2b c8                	sub    %eax,%ecx
54a81a:	8b d3                	mov    %ebx,%edx
54a81c:	d3 ea                	shr    %cl,%edx
54a81e:	8b 4c 24 10          	mov    0x10(%esp),%ecx
54a822:	b8 ff 00 00 00       	mov    $0xff,%eax
54a827:	d3 f8                	sar    %cl,%eax
54a829:	23 c3                	and    %ebx,%eax
54a82b:	8b 8e 30 01 00 00    	mov    0x130(%esi),%ecx
54a831:	8b 04 81             	mov    (%ecx,%eax,4),%eax
54a834:	8b cf                	mov    %edi,%ecx
54a836:	c1 e1 08             	shl    $0x8,%ecx
54a839:	66 0b cf             	or     %di,%cx
54a83c:	66 89 0c 50          	mov    %cx,(%eax,%edx,2)
54a840:	43                   	inc    %ebx
54a841:	8b 54 24 28          	mov    0x28(%esp),%edx
54a845:	3b da                	cmp    %edx,%ebx
54a847:	76 c6                	jbe    0x54a80f
54a849:	47                   	inc    %edi
54a84a:	81 ff 00 01 00 00    	cmp    $0x100,%edi
54a850:	0f 8c 5b ff ff ff    	jl     0x54a7b1
54a856:	eb 2c                	jmp    0x54a884
54a858:	8b 44 24 10          	mov    0x10(%esp),%eax
54a85c:	b9 08 00 00 00       	mov    $0x8,%ecx
54a861:	2b c8                	sub    %eax,%ecx
54a863:	8b d3                	mov    %ebx,%edx
54a865:	d3 ea                	shr    %cl,%edx
54a867:	8b 4c 24 10          	mov    0x10(%esp),%ecx
54a86b:	b8 ff 00 00 00       	mov    $0xff,%eax
54a870:	d3 f8                	sar    %cl,%eax
54a872:	8b 8e 30 01 00 00    	mov    0x130(%esi),%ecx
54a878:	23 c3                	and    %ebx,%eax
54a87a:	43                   	inc    %ebx
54a87b:	8b 04 81             	mov    (%ecx,%eax,4),%eax
54a87e:	66 c7 04 50 ff ff    	movw   $0xffff,(%eax,%edx,2)
54a884:	8b 54 24 14          	mov    0x14(%esp),%edx
54a888:	c1 e2 08             	shl    $0x8,%edx
54a88b:	3b da                	cmp    %edx,%ebx
54a88d:	72 c9                	jb     0x54a858
54a88f:	e9 a7 00 00 00       	jmp    0x54a93b
54a894:	33 ff                	xor    %edi,%edi
54a896:	8b 44 24 10          	mov    0x10(%esp),%eax
54a89a:	8d 14 85 78 ac 69 00 	lea    0x69ac78(,%eax,4),%edx
54a8a1:	89 54 24 2c          	mov    %edx,0x2c(%esp)
54a8a5:	8b 4c 24 14          	mov    0x14(%esp),%ecx
54a8a9:	3b f9                	cmp    %ecx,%edi