584359:	8b c2                	mov    %edx,%eax
58435b:	eb 27                	jmp    0x584384
58435d:	8b d7                	mov    %edi,%edx
58435f:	8b c6                	mov    %esi,%eax
584361:	e8 ca ff ff ff       	call   0x584330
584366:	89 04 24             	mov    %eax,(%esp)
584369:	db 04 24             	fildl  (%esp)
58436c:	89 5c 24 04          	mov    %ebx,0x4(%esp)
584370:	db 44 24 04          	fildl  0x4(%esp)
584374:	de f1                	fdivp  %st,%st(1)
584376:	e8 51 e9 e7 ff       	call   0x402ccc
58437b:	8b d8                	mov    %eax,%ebx
58437d:	8b c3                	mov    %ebx,%eax
58437f:	99                   	cltd
584380:	f7 fe                	idiv   %esi
584382:	8b c2                	mov    %edx,%eax
584384:	59                   	pop    %ecx
584385:	5a                   	pop    %edx
584386:	5f                   	pop    %edi
584387:	5e                   	pop    %esi
584388:	5b                   	pop    %ebx
584389:	c3                   	ret
58438a:	8b c0                	mov    %eax,%eax
58438c:	53                   	push   %ebx
58438d:	56                   	push   %esi
58438e:	57                   	push   %edi
58438f:	55                   	push   %ebp
584390:	83 c4 b0             	add    $0xffffffb0,%esp
584393:	8b d9                	mov    %ecx,%ebx
584395:	89 54 24 04          	mov    %edx,0x4(%esp)
584399:	66 89 04 24          	mov    %ax,(%esp)
58439d:	c7 44 24 08 01 00 00 	movl   $0x1,0x8(%esp)
5843a4:	00
5843a5:	c7 44 24 0c 00 00 01 	movl   $0x10000,0xc(%esp)
5843ac:	00
5843ad:	33 f6                	xor    %esi,%esi
5843af:	33 ff                	xor    %edi,%edi
5843b1:	eb 01                	jmp    0x5843b4
5843b3:	47                   	inc    %edi
5843b4:	8b 44 24 04          	mov    0x4(%esp),%eax
5843b8:	66 83 3c 78 00       	cmpw   $0x0,(%eax,%edi,2)
5843bd:	75 08                	jne    0x5843c7
5843bf:	0f b7 43 0c          	movzwl 0xc(%ebx),%eax
5843c3:	3b f8                	cmp    %eax,%edi
5843c5:	7c ec                	jl     0x5843b3
5843c7:	33 ed                	xor    %ebp,%ebp
5843c9:	eb 01                	jmp    0x5843cc
5843cb:	45                   	inc    %ebp
5843cc:	0f b7 43 0c          	movzwl 0xc(%ebx),%eax
5843d0:	8b d0                	mov    %eax,%edx
5843d2:	2b d5                	sub    %ebp,%edx
5843d4:	8b 4c 24 04          	mov    0x4(%esp),%ecx
5843d8:	66 81 3c 51 ff ff    	cmpw   $0xffff,(%ecx,%edx,2)
5843de:	75 04                	jne    0x5843e4
5843e0:	3b c5                	cmp    %ebp,%eax
5843e2:	7f e7                	jg     0x5843cb
5843e4:	83 ff 01             	cmp    $0x1,%edi
5843e7:	7f 05                	jg     0x5843ee
5843e9:	83 fd 01             	cmp    $0x1,%ebp
5843ec:	7e 76                	jle    0x584464
5843ee:	66 83 3c 24 00       	cmpw   $0x0,(%esp)
5843f3:	75 07                	jne    0x5843fc
5843f5:	33 c0                	xor    %eax,%eax
5843f7:	e9 ef 01 00 00       	jmp    0x5845eb
5843fc:	66 81 3c 24 ff ff    	cmpw   $0xffff,(%esp)
584402:	75 09                	jne    0x58440d
584404:	66 b8 ff ff          	mov    $0xffff,%ax
584408:	e9 de 01 00 00       	jmp    0x5845eb
58440d:	4f                   	dec    %edi
58440e:	8b c7                	mov    %edi,%eax
584410:	c1 e0 10             	shl    $0x10,%eax
584413:	2b c7                	sub    %edi,%eax
584415:	89 44 24 48          	mov    %eax,0x48(%esp)
584419:	db 44 24 48          	fildl  0x48(%esp)
58441d:	0f b7 43 0c          	movzwl 0xc(%ebx),%eax
584421:	89 44 24 4c          	mov    %eax,0x4c(%esp)
584425:	db 44 24 4c          	fildl  0x4c(%esp)
584429:	de f9                	fdivrp %st,%st(1)
58442b:	e8 9c e8 e7 ff       	call   0x402ccc
584430:	8b f8                	mov    %eax,%edi
584432:	0f b7 43 0c          	movzwl 0xc(%ebx),%eax
584436:	2b c5                	sub    %ebp,%eax
584438:	8b d0                	mov    %eax,%edx
58443a:	c1 e0 10             	shl    $0x10,%eax
58443d:	2b c2                	sub    %edx,%eax
58443f:	89 44 24 48          	mov    %eax,0x48(%esp)
584443:	db 44 24 48          	fildl  0x48(%esp)
584447:	0f b7 43 0c          	movzwl 0xc(%ebx),%eax
58444b:	89 44 24 4c          	mov    %eax,0x4c(%esp)
58444f:	db 44 24 4c          	fildl  0x4c(%esp)
584453:	de f9                	fdivrp %st,%st(1)
584455:	e8 72 e8 e7 ff       	call   0x402ccc
58445a:	4f                   	dec    %edi
58445b:	89 7c 24 08          	mov    %edi,0x8(%esp)
58445f:	40                   	inc    %eax
584460:	89 44 24 0c          	mov    %eax,0xc(%esp)
584464:	8b 44 24 0c          	mov    0xc(%esp),%eax
584468:	3b 44 24 08          	cmp    0x8(%esp),%eax
58446c:	7e 5d                	jle    0x5844cb
58446e:	8b 44 24 08          	mov    0x8(%esp),%eax
584472:	03 44 24 0c          	add    0xc(%esp),%eax
584476:	89 44 24 48          	mov    %eax,0x48(%esp)
58447a:	db 44 24 48          	fildl  0x48(%esp)
58447e:	d8 35 f4 45 58 00    	fdivs  0x5845f4
584484:	e8 43 e8 e7 ff       	call   0x402ccc
584489:	8b f0                	mov    %eax,%esi
58448b:	8b fe                	mov    %esi,%edi
58448d:	4f                   	dec    %edi
58448e:	8b c7                	mov    %edi,%eax
584490:	8b cb                	mov    %ebx,%ecx
584492:	8b 54 24 04          	mov    0x4(%esp),%edx
584496:	e8 e5 83 ff ff       	call   0x57c880
58449b:	0f b7 c0             	movzwl %ax,%eax
58449e:	0f b7 14 24          	movzwl (%esp),%edx
5844a2:	3b c2                	cmp    %edx,%eax
5844a4:	75 07                	jne    0x5844ad
5844a6:	8b c7                	mov    %edi,%eax
5844a8:	e9 3e 01 00 00       	jmp    0x5845eb
5844ad:	3b d0                	cmp    %eax,%edx
5844af:	7d 09                	jge    0x5844ba
5844b1:	8b c6                	mov    %esi,%eax
5844b3:	48                   	dec    %eax
5844b4:	89 44 24 0c          	mov    %eax,0xc(%esp)
5844b8:	eb 07                	jmp    0x5844c1
5844ba:	8d 46 01             	lea    0x1(%esi),%eax
5844bd:	89 44 24 08          	mov    %eax,0x8(%esp)
5844c1:	8b 44 24 0c          	mov    0xc(%esp),%eax
5844c5:	3b 44 24 08          	cmp    0x8(%esp),%eax
5844c9:	7f a3                	jg     0x58446e
5844cb:	0f b7 43 0c          	movzwl 0xc(%ebx),%eax
5844cf:	89 44 24 48          	mov    %eax,0x48(%esp)
5844d3:	db 44 24 48          	fildl  0x48(%esp)
5844d7:	8b c6                	mov    %esi,%eax
5844d9:	48                   	dec    %eax
5844da:	89 44 24 4c          	mov    %eax,0x4c(%esp)
5844de:	db 44 24 4c          	fildl  0x4c(%esp)
5844e2:	d8 35 f8 45 58 00    	fdivs  0x5845f8
5844e8:	de c9                	fmulp  %st,%st(1)
5844ea:	dd 5c 24 10          	fstpl  0x10(%esp)
5844ee:	9b dd 44 24 10       	fldl   0x10(%esp)
5844f3:	83 c4 f4             	add    $0xfffffff4,%esp
5844f6:	db 3c 24             	fstpt  (%esp)
5844f9:	9b                   	fwait
5844fa:	e8 01 e2 06 00       	call   0x5f2700
5844ff:	8b f8                	mov    %eax,%edi
584501:	dd 44 24 10          	fldl   0x10(%esp)
584505:	83 c4 f4             	add    $0xfffffff4,%esp
584508:	db 3c 24             	fstpt  (%esp)
58450b:	9b                   	fwait
58450c:	e8 9f 4d 02 00       	call   0x5a92b0
584511:	3b c7                	cmp    %edi,%eax
584513:	75 07                	jne    0x58451c
584515:	8b c6                	mov    %esi,%eax
584517:	e9 cf 00 00 00       	jmp    0x5845eb
58451c:	8b 54 24 04          	mov    0x4(%esp),%edx
584520:	0f b7 14 7a          	movzwl (%edx,%edi,2),%edx
584524:	89 54 24 48          	mov    %edx,0x48(%esp)
584528:	db 44 24 48          	fildl  0x48(%esp)
58452c:	dd 5c 24 18          	fstpl  0x18(%esp)
584530:	9b                   	fwait
584531:	8b d7                	mov    %edi,%edx
584533:	c1 e2 10             	shl    $0x10,%edx
584536:	2b d7                	sub    %edi,%edx
584538:	89 54 24 48          	mov    %edx,0x48(%esp)
58453c:	db 44 24 48          	fildl  0x48(%esp)
584540:	0f b7 53 0c          	movzwl 0xc(%ebx),%edx
584544:	89 54 24 4c          	mov    %edx,0x4c(%esp)
584548:	db 44 24 4c          	fildl  0x4c(%esp)
58454c:	de f9                	fdivrp %st,%st(1)
58454e:	dd 5c 24 28          	fstpl  0x28(%esp)
584552:	9b                   	fwait
584553:	8b 54 24 04          	mov    0x4(%esp),%edx
584557:	0f b7 14 42          	movzwl (%edx,%eax,2),%edx
58455b:	89 54 24 48          	mov    %edx,0x48(%esp)
58455f:	db 44 24 48          	fildl  0x48(%esp)
584563:	dd 5c 24 20          	fstpl  0x20(%esp)
584567:	9b                   	fwait
584568:	8b d0                	mov    %eax,%edx
58456a:	c1 e0 10             	shl    $0x10,%eax
58456d:	2b c2                	sub    %edx,%eax
58456f:	89 44 24 48          	mov    %eax,0x48(%esp)
584573:	db 44 24 48          	fildl  0x48(%esp)
584577:	0f b7 43 0c          	movzwl 0xc(%ebx),%eax
58457b:	89 44 24 4c          	mov    %eax,0x4c(%esp)
58457f:	db 44 24 4c          	fildl  0x4c(%esp)
584583:	de f9                	fdivrp %st,%st(1)
584585:	dd 5c 24 30          	fstpl  0x30(%esp)
584589:	9b dd 44 24 20       	fldl   0x20(%esp)
58458e:	dc 64 24 18          	fsubl  0x18(%esp)
584592:	dd 44 24 30          	fldl   0x30(%esp)
584596:	dc 64 24 28          	fsubl  0x28(%esp)
58459a:	de f9                	fdivrp %st,%st(1)
58459c:	dd 5c 24 38          	fstpl  0x38(%esp)
5845a0:	9b dd 44 24 38       	fldl   0x38(%esp)
5845a5:	dc 4c 24 28          	fmull  0x28(%esp)
5845a9:	dc 6c 24 18          	fsubrl 0x18(%esp)
5845ad:	dd 5c 24 40          	fstpl  0x40(%esp)
5845b1:	9b dd 44 24 38       	fldl   0x38(%esp)
5845b6:	d8 1d fc 45 58 00    	fcomps 0x5845fc
5845bc:	df e0                	fnstsw %ax
5845be:	9e                   	sahf
5845bf:	75 04                	jne    0x5845c5
5845c1:	8b c6                	mov    %esi,%eax
5845c3:	eb 26                	jmp    0x5845eb
5845c5:	0f b7 04 24          	movzwl (%esp),%eax
5845c9:	89 44 24 48          	mov    %eax,0x48(%esp)
5845cd:	db 44 24 48          	fildl  0x48(%esp)
5845d1:	dc 64 24 40          	fsubl  0x40(%esp)
5845d5:	dc 74 24 38          	fdivl  0x38(%esp)
5845d9:	d8 05 00 46 58 00    	fadds  0x584600
5845df:	83 c4 f4             	add    $0xfffffff4,%esp
5845e2:	db 3c 24             	fstpt  (%esp)
5845e5:	9b                   	fwait
5845e6:	e8 15 e1 06 00       	call   0x5f2700
5845eb:	83 c4 50             	add    $0x50,%esp
5845ee:	5d                   	pop    %ebp
5845ef:	5f                   	pop    %edi
5845f0:	5e                   	pop    %esi
5845f1:	5b                   	pop    %ebx
5845f2:	c3                   	ret
5845f3:	00 00                	add    %al,(%eax)
5845f5:	00 00                	add    %al,(%eax)
5845f7:	40                   	inc    %eax
5845f8:	00 ff                	add    %bh,%bh
5845fa:	7f 47                	jg     0x584643
5845fc:	00 00                	add    %al,(%eax)
5845fe:	00 00                	add    %al,(%eax)
584600:	00 00                	add    %al,(%eax)
584602:	00 3f                	add    %bh,(%edi)
584604:	55                   	push   %ebp
584605:	8b ec                	mov    %esp,%ebp
584607:	83 c4 90             	add    $0xffffff90,%esp
58460a:	53                   	push   %ebx
58460b:	56                   	push   %esi
58460c:	57                   	push   %edi
58460d:	89 4d f8             	mov    %ecx,-0x8(%ebp)
584610:	89 55 fc             	mov    %edx,-0x4(%ebp)
584613:	8b f0                	mov    %eax,%esi
584615:	8b 56 28             	mov    0x28(%esi),%edx
584618:	8b 46 38             	mov    0x38(%esi),%eax
58461b:	e8 10 fd ff ff       	call   0x584330
584620:	33 d2                	xor    %edx,%edx
584622:	89 55 ec             	mov    %edx,-0x14(%ebp)
584625:	48                   	dec    %eax
584626:	85 c0                	test   %eax,%eax
584628:	0f 8c 6c 01 00 00    	jl     0x58479a
58462e:	40                   	inc    %eax
58462f:	89 45 e8             	mov    %eax,-0x18(%ebp)
584632:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
584639:	8b 5e 28             	mov    0x28(%esi),%ebx
58463c:	4b                   	dec    %ebx
58463d:	85 db                	test   %ebx,%ebx
58463f:	7c 5e                	jl     0x58469f
584641:	43                   	inc    %ebx
584642:	33 ff                	xor    %edi,%edi
584644:	8d 45 bc             	lea    -0x44(%ebp),%eax
584647:	89 45 e4             	mov    %eax,-0x1c(%ebp)
58464a:	8b 4e 28             	mov    0x28(%esi),%ecx
58464d:	2b cf                	sub    %edi,%ecx
58464f:	49                   	dec    %ecx
584650:	8b 56 38             	mov    0x38(%esi),%edx
584653:	8b 45 f4             	mov    -0xc(%ebp),%eax
584656:	e8 e9 fc ff ff       	call   0x584344
58465b:	89 45 f0             	mov    %eax,-0x10(%ebp)
58465e:	8b 45 f0             	mov    -0x10(%ebp),%eax
584661:	8b d0                	mov    %eax,%edx
584663:	c1 e0 10             	shl    $0x10,%eax
584666:	2b c2                	sub    %edx,%eax
584668:	89 45 98             	mov    %eax,-0x68(%ebp)
58466b:	db 45 98             	fildl  -0x68(%ebp)
58466e:	8b 46 38             	mov    0x38(%esi),%eax
584671:	48                   	dec    %eax
584672:	89 45 90             	mov    %eax,-0x70(%ebp)
584675:	33 c0                	xor    %eax,%eax
584677:	89 45 94             	mov    %eax,-0x6c(%ebp)
58467a:	df 6d 90             	fildll -0x70(%ebp)
58467d:	de f9                	fdivrp %st,%st(1)
58467f:	d8 05 a8 47 58 00    	fadds  0x5847a8
584685:	83 c4 f4             	add    $0xfffffff4,%esp
584688:	db 3c 24             	fstpt  (%esp)
58468b:	9b                   	fwait
58468c:	e8 6f e0 06 00       	call   0x5f2700
584691:	8b 55 e4             	mov    -0x1c(%ebp),%edx
584694:	66 89 02             	mov    %ax,(%edx)
584697:	47                   	inc    %edi
584698:	83 45 e4 02          	addl   $0x2,-0x1c(%ebp)
58469c:	4b                   	dec    %ebx
58469d:	75 ab                	jne    0x58464a
58469f:	f6 45 08 02          	testb  $0x2,0x8(%ebp)
5846a3:	74 34                	je     0x5846d9
5846a5:	8b 5e 28             	mov    0x28(%esi),%ebx
5846a8:	4b                   	dec    %ebx
5846a9:	85 db                	test   %ebx,%ebx
5846ab:	7c 2c                	jl     0x5846d9
5846ad:	43                   	inc    %ebx
5846ae:	33 ff                	xor    %edi,%edi
5846b0:	8d 45 bc             	lea    -0x44(%ebp),%eax
5846b3:	89 45 e0             	mov    %eax,-0x20(%ebp)
5846b6:	8d 8e c4 00 00 00    	lea    0xc4(%esi),%ecx
5846bc:	8b 54 be 3c          	mov    0x3c(%esi,%edi,4),%edx
5846c0:	8b 45 e0             	mov    -0x20(%ebp),%eax
5846c3:	66 8b 00             	mov    (%eax),%ax
5846c6:	e8 c1 fc ff ff       	call   0x58438c
5846cb:	8b 55 e0             	mov    -0x20(%ebp),%edx
5846ce:	66 89 02             	mov    %ax,(%edx)
5846d1:	47                   	inc    %edi
5846d2:	83 45 e0 02          	addl   $0x2,-0x20(%ebp)
5846d6:	4b                   	dec    %ebx
5846d7:	75 dd                	jne    0x5846b6
5846d9:	f6 45 0b 01          	testb  $0x1,0xb(%ebp)
5846dd:	74 27                	je     0x584706
5846df:	8b 5e 2c             	mov    0x2c(%esi),%ebx
5846e2:	4b                   	dec    %ebx
5846e3:	85 db                	test   %ebx,%ebx
5846e5:	7c 1f                	jl     0x584706
5846e7:	43                   	inc    %ebx
5846e8:	33 ff                	xor    %edi,%edi
5846ea:	8d 45 9c             	lea    -0x64(%ebp),%eax
5846ed:	8b 55 ec             	mov    -0x14(%ebp),%edx
5846f0:	03 d7                	add    %edi,%edx
5846f2:	8b 8e bc 00 00 00    	mov    0xbc(%esi),%ecx
5846f8:	66 8b 14 51          	mov    (%ecx,%edx,2),%dx
5846fc:	66 89 10             	mov    %dx,(%eax)
5846ff:	47                   	inc    %edi
584700:	83 c0 02             	add    $0x2,%eax
584703:	4b                   	dec    %ebx
584704:	75 e7                	jne    0x5846ed
584706:	8d 55 9c             	lea    -0x64(%ebp),%edx
584709:	8d 45 bc             	lea    -0x44(%ebp),%eax
58470c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
58470f:	ff 55 fc             	call   *-0x4(%ebp)
584712:	85 c0                	test   %eax,%eax
584714:	75 07                	jne    0x58471d
584716:	33 c0                	xor    %eax,%eax
584718:	e9 80 00 00 00       	jmp    0x58479d
58471d:	f6 45 0b 01          	testb  $0x1,0xb(%ebp)
584721:	75 65                	jne    0x584788
584723:	f6 45 08 08          	testb  $0x8,0x8(%ebp)
584727:	74 34                	je     0x58475d
584729:	8b 5e 2c             	mov    0x2c(%esi),%ebx
58472c:	4b                   	dec    %ebx
58472d:	85 db                	test   %ebx,%ebx
58472f:	7c 2c                	jl     0x58475d
584731:	43                   	inc    %ebx
584732:	33 ff                	xor    %edi,%edi
584734:	8d 45 9c             	lea    -0x64(%ebp),%eax
584737:	89 45 dc             	mov    %eax,-0x24(%ebp)
58473a:	8d 8e fa 00 00 00    	lea    0xfa(%esi),%ecx
584740:	8b 54 be 7c          	mov    0x7c(%esi,%edi,4),%edx
584744:	8b 45 dc             	mov    -0x24(%ebp),%eax