58946e:	dd 9f c0 f4 00 00    	fstpl  0xf4c0(%edi)
589474:	9b                   	fwait
589475:	e9 fa 02 00 00       	jmp    0x589774
58947a:	8d 9f a8 f4 00 00    	lea    0xf4a8(%edi),%ebx
589480:	66 83 7b 02 00       	cmpw   $0x0,0x2(%ebx)
589485:	74 16                	je     0x58949d
589487:	db 44 24 10          	fildl  0x10(%esp)
58948b:	dc 4b 18             	fmull  0x18(%ebx)
58948e:	e8 39 98 e7 ff       	call   0x402ccc
589493:	8b c8                	mov    %eax,%ecx
589495:	8b 53 08             	mov    0x8(%ebx),%edx
589498:	8b 43 04             	mov    0x4(%ebx),%eax
58949b:	ff 13                	call   *(%ebx)
58949d:	8b af ec 00 00 00    	mov    0xec(%edi),%ebp
5894a3:	c1 ed 03             	shr    $0x3,%ebp
5894a6:	4d                   	dec    %ebp
5894a7:	85 ed                	test   %ebp,%ebp
5894a9:	0f 8c 14 01 00 00    	jl     0x5895c3
5894af:	45                   	inc    %ebp
5894b0:	c7 44 24 24 00 00 00 	movl   $0x0,0x24(%esp)
5894b7:	00
5894b8:	8d 44 24 48          	lea    0x48(%esp),%eax
5894bc:	b9 00 01 00 00       	mov    $0x100,%ecx
5894c1:	33 d2                	xor    %edx,%edx
5894c3:	e8 ec fc ff ff       	call   0x5891b4
5894c8:	8d 87 98 94 00 00    	lea    0x9498(%edi),%eax
5894ce:	89 44 24 20          	mov    %eax,0x20(%esp)
5894d2:	33 f6                	xor    %esi,%esi
5894d4:	8b 5c 24 20          	mov    0x20(%esp),%ebx
5894d8:	eb 10                	jmp    0x5894ea
5894da:	8b 04 24             	mov    (%esp),%eax
5894dd:	ba 01 00 00 00       	mov    $0x1,%edx
5894e2:	e8 35 fc ff ff       	call   0x58911c
5894e7:	8b 1c 83             	mov    (%ebx,%eax,4),%ebx
5894ea:	83 3b 00             	cmpl   $0x0,(%ebx)
5894ed:	75 eb                	jne    0x5894da
5894ef:	8b 43 08             	mov    0x8(%ebx),%eax
5894f2:	8b 97 98 f4 00 00    	mov    0xf498(%edi),%edx
5894f8:	89 54 24 20          	mov    %edx,0x20(%esp)
5894fc:	85 c0                	test   %eax,%eax
5894fe:	75 04                	jne    0x589504
589500:	85 f6                	test   %esi,%esi
589502:	75 50                	jne    0x589554
589504:	3d ff 00 00 00       	cmp    $0xff,%eax
589509:	75 03                	jne    0x58950e
58950b:	46                   	inc    %esi
58950c:	eb 41                	jmp    0x58954f
58950e:	8b d0                	mov    %eax,%edx
589510:	c1 ea 04             	shr    $0x4,%edx
589513:	03 f2                	add    %edx,%esi
589515:	8b d8                	mov    %eax,%ebx
589517:	83 e3 0f             	and    $0xf,%ebx
58951a:	85 db                	test   %ebx,%ebx
58951c:	75 03                	jne    0x589521
58951e:	46                   	inc    %esi
58951f:	eb 2e                	jmp    0x58954f
589521:	8b 04 24             	mov    (%esp),%eax
589524:	8b d3                	mov    %ebx,%edx
589526:	e8 f1 fb ff ff       	call   0x58911c
58952b:	8b cb                	mov    %ebx,%ecx
58952d:	49                   	dec    %ecx
58952e:	ba 01 00 00 00       	mov    $0x1,%edx
589533:	d3 e2                	shl    %cl,%edx
589535:	85 c2                	test   %eax,%edx
589537:	75 0c                	jne    0x589545
589539:	8b cb                	mov    %ebx,%ecx
58953b:	ba 01 00 00 00       	mov    $0x1,%edx
589540:	d3 e2                	shl    %cl,%edx
589542:	4a                   	dec    %edx
589543:	2b c2                	sub    %edx,%eax
589545:	83 fe 40             	cmp    $0x40,%esi
589548:	7d 04                	jge    0x58954e
58954a:	89 44 b4 48          	mov    %eax,0x48(%esp,%esi,4)
58954e:	46                   	inc    %esi
58954f:	83 fe 40             	cmp    $0x40,%esi
589552:	7c 80                	jl     0x5894d4
589554:	8b 44 24 28          	mov    0x28(%esp),%eax
589558:	01 44 24 48          	add    %eax,0x48(%esp)
58955c:	8b 44 24 48          	mov    0x48(%esp),%eax
589560:	89 44 24 28          	mov    %eax,0x28(%esp)
589564:	33 f6                	xor    %esi,%esi
589566:	8d 4c 24 48          	lea    0x48(%esp),%ecx
58956a:	8b 44 24 2c          	mov    0x2c(%esp),%eax
58956e:	99                   	cltd
58956f:	f7 bf ec 00 00 00    	idivl  0xec(%edi)
589575:	85 d2                	test   %edx,%edx
589577:	75 0d                	jne    0x589586
589579:	b8 00 02 00 00       	mov    $0x200,%eax
58957e:	89 44 24 34          	mov    %eax,0x34(%esp)
589582:	89 44 24 30          	mov    %eax,0x30(%esp)
589586:	ff 44 24 2c          	incl   0x2c(%esp)
58958a:	8b 11                	mov    (%ecx),%edx
58958c:	8b c6                	mov    %esi,%eax
58958e:	83 e0 01             	and    $0x1,%eax
589591:	01 54 84 30          	add    %edx,0x30(%esp,%eax,4)
589595:	8b 54 24 24          	mov    0x24(%esp),%edx
589599:	c1 e2 06             	shl    $0x6,%edx
58959c:	03 d6                	add    %esi,%edx
58959e:	8b 5c 24 04          	mov    0x4(%esp),%ebx
5895a2:	8d 14 53             	lea    (%ebx,%edx,2),%edx
5895a5:	52                   	push   %edx
5895a6:	66 8b 44 84 34       	mov    0x34(%esp,%eax,4),%ax
5895ab:	5a                   	pop    %edx
5895ac:	66 89 02             	mov    %ax,(%edx)
5895af:	46                   	inc    %esi
5895b0:	83 c1 04             	add    $0x4,%ecx
5895b3:	83 fe 40             	cmp    $0x40,%esi
5895b6:	75 b2                	jne    0x58956a
5895b8:	ff 44 24 24          	incl   0x24(%esp)
5895bc:	4d                   	dec    %ebp
5895bd:	0f 85 f5 fe ff ff    	jne    0x5894b8
5895c3:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
5895c8:	0f 84 99 00 00 00    	je     0x589667
5895ce:	8b 47 04             	mov    0x4(%edi),%eax
5895d1:	e8 e6 f3 ff ff       	call   0x5889bc
5895d6:	89 44 24 18          	mov    %eax,0x18(%esp)
5895da:	8b 87 ec 00 00 00    	mov    0xec(%edi),%eax
5895e0:	f7 6c 24 10          	imull  0x10(%esp)
5895e4:	85 c0                	test   %eax,%eax
5895e6:	79 03                	jns    0x5895eb
5895e8:	83 c0 03             	add    $0x3,%eax
5895eb:	c1 f8 02             	sar    $0x2,%eax
5895ee:	83 c0 1a             	add    $0x1a,%eax
5895f1:	99                   	cltd
5895f2:	52                   	push   %edx
5895f3:	50                   	push   %eax
5895f4:	8b 47 04             	mov    0x4(%edi),%eax
5895f7:	e8 dc 50 e9 ff       	call   0x41e6d8
5895fc:	8b 5c 24 04          	mov    0x4(%esp),%ebx
589600:	8b af ec 00 00 00    	mov    0xec(%edi),%ebp
589606:	03 ed                	add    %ebp,%ebp
589608:	4d                   	dec    %ebp
589609:	85 ed                	test   %ebp,%ebp
58960b:	7c 4b                	jl     0x589658
58960d:	45                   	inc    %ebp
58960e:	8b 47 04             	mov    0x4(%edi),%eax
589611:	e8 b2 f3 ff ff       	call   0x5889c8
589616:	88 44 24 38          	mov    %al,0x38(%esp)
58961a:	33 f6                	xor    %esi,%esi
58961c:	8b ce                	mov    %esi,%ecx
58961e:	33 c0                	xor    %eax,%eax
589620:	8a 44 24 38          	mov    0x38(%esp),%al
589624:	d3 e8                	shr    %cl,%eax
589626:	83 e0 03             	and    $0x3,%eax
589629:	0f b7 13             	movzwl (%ebx),%edx
58962c:	c1 e2 02             	shl    $0x2,%edx
58962f:	03 c2                	add    %edx,%eax
589631:	81 bf ec 00 00 00 70 	cmpl   $0xa70,0xec(%edi)
589638:	0a 00 00
58963b:	75 0a                	jne    0x589647
58963d:	3d 00 02 00 00       	cmp    $0x200,%eax
589642:	7d 03                	jge    0x589647
589644:	83 c0 02             	add    $0x2,%eax
589647:	66 89 03             	mov    %ax,(%ebx)
58964a:	83 c6 02             	add    $0x2,%esi
58964d:	83 c3 02             	add    $0x2,%ebx
589650:	83 fe 08             	cmp    $0x8,%esi
589653:	7c c7                	jl     0x58961c
589655:	4d                   	dec    %ebp
589656:	75 b6                	jne    0x58960e
589658:	8b 44 24 18          	mov    0x18(%esp),%eax
58965c:	99                   	cltd
58965d:	52                   	push   %edx
58965e:	50                   	push   %eax
58965f:	8b 47 04             	mov    0x4(%edi),%eax
589662:	e8 71 50 e9 ff       	call   0x41e6d8
589667:	33 f6                	xor    %esi,%esi
589669:	8b 44 24 10          	mov    0x10(%esp),%eax
58966d:	2b 87 f0 00 00 00    	sub    0xf0(%edi),%eax
589673:	03 c6                	add    %esi,%eax
589675:	89 44 24 1c          	mov    %eax,0x1c(%esp)
589679:	8b 87 f8 00 00 00    	mov    0xf8(%edi),%eax
58967f:	3b 44 24 1c          	cmp    0x1c(%esp),%eax
589683:	0f 86 dc 00 00 00    	jbe    0x589765
589689:	83 7c 24 1c 00       	cmpl   $0x0,0x1c(%esp)
58968e:	0f 82 d1 00 00 00    	jb     0x589765
589694:	8b af ec 00 00 00    	mov    0xec(%edi),%ebp
58969a:	4d                   	dec    %ebp
58969b:	85 ed                	test   %ebp,%ebp
58969d:	0f 8c c2 00 00 00    	jl     0x589765
5896a3:	45                   	inc    %ebp
5896a4:	c7 44 24 14 00 00 00 	movl   $0x0,0x14(%esp)
5896ab:	00
5896ac:	8b 5c 24 14          	mov    0x14(%esp),%ebx
5896b0:	2b 9f f4 00 00 00    	sub    0xf4(%edi),%ebx
5896b6:	8b 87 fc 00 00 00    	mov    0xfc(%edi),%eax
5896bc:	3b c3                	cmp    %ebx,%eax
5896be:	76 7c                	jbe    0x58973c
5896c0:	85 db                	test   %ebx,%ebx
5896c2:	72 78                	jb     0x58973c
5896c4:	8b 87 10 01 00 00    	mov    0x110(%edi),%eax
5896ca:	99                   	cltd
5896cb:	52                   	push   %edx
5896cc:	50                   	push   %eax
5896cd:	8b 8f 14 01 00 00    	mov    0x114(%edi),%ecx
5896d3:	8b 44 24 24          	mov    0x24(%esp),%eax
5896d7:	d3 e8                	shr    %cl,%eax
5896d9:	33 d2                	xor    %edx,%edx
5896db:	e8 a4 c3 e7 ff       	call   0x405a84
5896e0:	52                   	push   %edx
5896e1:	50                   	push   %eax
5896e2:	8b 8f 14 01 00 00    	mov    0x114(%edi),%ecx
5896e8:	8b c3                	mov    %ebx,%eax
5896ea:	d3 e8                	shr    %cl,%eax
5896ec:	33 d2                	xor    %edx,%edx
5896ee:	03 04 24             	add    (%esp),%eax
5896f1:	13 54 24 04          	adc    0x4(%esp),%edx
5896f5:	83 c4 08             	add    $0x8,%esp
5896f8:	8b 17                	mov    (%edi),%edx
5896fa:	8d 04 c2             	lea    (%edx,%eax,8),%eax
5896fd:	50                   	push   %eax
5896fe:	8b 4c 24 20          	mov    0x20(%esp),%ecx
589702:	03 c9                	add    %ecx,%ecx
589704:	83 e1 0e             	and    $0xe,%ecx
589707:	83 e3 01             	and    $0x1,%ebx
58970a:	03 cb                	add    %ebx,%ecx
58970c:	03 c9                	add    %ecx,%ecx
58970e:	8b 87 3c 01 00 00    	mov    0x13c(%edi),%eax
589714:	d3 e8                	shr    %cl,%eax
589716:	83 e0 03             	and    $0x3,%eax
589719:	5a                   	pop    %edx
58971a:	8b 8f ec 00 00 00    	mov    0xec(%edi),%ecx
589720:	0f af ce             	imul   %esi,%ecx
589723:	03 4c 24 14          	add    0x14(%esp),%ecx
589727:	8b 5c 24 04          	mov    0x4(%esp),%ebx
58972b:	66 8b 1c 4b          	mov    (%ebx,%ecx,2),%bx
58972f:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
589733:	66 d3 e3             	shl    %cl,%bx
589736:	66 89 1c 42          	mov    %bx,(%edx,%eax,2)
58973a:	eb 1e                	jmp    0x58975a
58973c:	8b 87 ec 00 00 00    	mov    0xec(%edi),%eax
589742:	f7 ee                	imul   %esi
589744:	03 44 24 14          	add    0x14(%esp),%eax
589748:	8b 54 24 04          	mov    0x4(%esp),%edx
58974c:	0f b7 04 42          	movzwl (%edx,%eax,2),%eax
589750:	33 d2                	xor    %edx,%edx
589752:	01 44 24 40          	add    %eax,0x40(%esp)
589756:	11 54 24 44          	adc    %edx,0x44(%esp)
58975a:	ff 44 24 14          	incl   0x14(%esp)
58975e:	4d                   	dec    %ebp
58975f:	0f 85 47 ff ff ff    	jne    0x5896ac
589765:	46                   	inc    %esi
589766:	83 fe 08             	cmp    $0x8,%esi
589769:	0f 85 fa fe ff ff    	jne    0x589669
58976f:	83 44 24 10 08       	addl   $0x8,0x10(%esp)
589774:	8b 87 e8 00 00 00    	mov    0xe8(%edi),%eax
58977a:	3b 44 24 10          	cmp    0x10(%esp),%eax
58977e:	0f 8f f6 fc ff ff    	jg     0x58947a
589784:	8b 44 24 04          	mov    0x4(%esp),%eax
589788:	e8 3f 90 e7 ff       	call   0x4027cc
58978d:	8b 87 fc 00 00 00    	mov    0xfc(%edi),%eax
589793:	3b 87 ec 00 00 00    	cmp    0xec(%edi),%eax
589799:	7d 31                	jge    0x5897cc
58979b:	8b 87 ec 00 00 00    	mov    0xec(%edi),%eax
5897a1:	2b 87 fc 00 00 00    	sub    0xfc(%edi),%eax
5897a7:	f7 af f8 00 00 00    	imull  0xf8(%edi)
5897ad:	99                   	cltd
5897ae:	52                   	push   %edx
5897af:	50                   	push   %eax
5897b0:	8b 44 24 48          	mov    0x48(%esp),%eax
5897b4:	8b 54 24 4c          	mov    0x4c(%esp),%edx
5897b8:	8b 4c 24 14          	mov    0x14(%esp),%ecx
5897bc:	e8 7b c4 e7 ff       	call   0x405c3c
5897c1:	e8 e2 c2 e7 ff       	call   0x405aa8
5897c6:	89 87 04 01 00 00    	mov    %eax,0x104(%edi)
5897cc:	81 c4 48 01 00 00    	add    $0x148,%esp
5897d2:	5d                   	pop    %ebp
5897d3:	5f                   	pop    %edi
5897d4:	5e                   	pop    %esi
5897d5:	5b                   	pop    %ebx
5897d6:	c3                   	ret
5897d7:	00 63 61             	add    %ah,0x61(%ebx)
5897da:	6e                   	outsb  %ds:(%esi),(%dx)
5897db:	6f                   	outsl  %ds:(%esi),(%dx)
5897dc:	6e                   	outsb  %ds:(%esi),(%dx)
5897dd:	5f                   	pop    %edi
5897de:	63 6f 6d             	arpl   %ebp,0x6d(%edi)
5897e1:	70 72                	jo     0x589855
5897e3:	65 73 73             	gs jae 0x589859
5897e6:	65 64 5f             	gs fs pop %edi
5897e9:	6c                   	insb   (%dx),%es:(%edi)
5897ea:	6f                   	outsl  %ds:(%esi),(%dx)
5897eb:	61                   	popa
5897ec:	64 5f                	fs pop %edi
5897ee:	72 61                	jb     0x589851
5897f0:	77 28                	ja     0x58981a
5897f2:	29 00                	sub    %eax,(%eax)
5897f4:	00 00                	add    %al,(%eax)
5897f6:	c8 42 00 00          	enter  $0x42,$0x0
5897fa:	00 40 53             	add    %al,0x53(%eax)
5897fd:	56                   	push   %esi
5897fe:	57                   	push   %edi
5897ff:	55                   	push   %ebp
589800:	51                   	push   %ecx
589801:	8b fa                	mov    %edx,%edi
589803:	8b f0                	mov    %eax,%esi
589805:	33 db                	xor    %ebx,%ebx
589807:	66 89 1c 5f          	mov    %bx,(%edi,%ebx,2)
58980b:	43                   	inc    %ebx
58980c:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
589812:	75 f3                	jne    0x589807
589814:	ba 0c 99 58 00       	mov    $0x58990c,%edx
589819:	8d 46 0a             	lea    0xa(%esi),%eax
58981c:	e8 83 f1 ff ff       	call   0x5889a4
589821:	85 c0                	test   %eax,%eax
589823:	0f 85 db 00 00 00    	jne    0x589904
589829:	83 be d8 00 00 00 00 	cmpl   $0x0,0xd8(%esi)
589830:	74 67                	je     0x589899
589832:	6a 00                	push   $0x0
589834:	6a 0c                	push   $0xc
589836:	8b 46 04             	mov    0x4(%esi),%eax
589839:	e8 9a 4e e9 ff       	call   0x41e6d8
58983e:	8b 56 04             	mov    0x4(%esi),%edx
589841:	8b c6                	mov    %esi,%eax
589843:	e8 0c f3 ff ff       	call   0x588b54
589848:	0f b7 d8             	movzwl %ax,%ebx
58984b:	85 db                	test   %ebx,%ebx
58984d:	74 4a                	je     0x589899
58984f:	4b                   	dec    %ebx
589850:	8b 56 04             	mov    0x4(%esi),%edx
589853:	8b c6                	mov    %esi,%eax
589855:	e8 fa f2 ff ff       	call   0x588b54
58985a:	0f b7 e8             	movzwl %ax,%ebp
58985d:	8b 56 04             	mov    0x4(%esi),%edx
589860:	8b c6                	mov    %esi,%eax
589862:	e8 ed f2 ff ff       	call   0x588b54
589867:	8b 56 04             	mov    0x4(%esi),%edx
58986a:	8b c6                	mov    %esi,%eax
58986c:	e8 3b f3 ff ff       	call   0x588bac
589871:	89 04 24             	mov    %eax,(%esp)
589874:	8b 56 04             	mov    0x4(%esi),%edx
589877:	8b c6                	mov    %esi,%eax
589879:	e8 2e f3 ff ff       	call   0x588bac
58987e:	81 fd 0d 09 00 00    	cmp    $0x90d,%ebp
589884:	75 0f                	jne    0x589895
589886:	89 86 d8 00 00 00    	mov    %eax,0xd8(%esi)
58988c:	8b 04 24             	mov    (%esp),%eax
58988f:	89 86 dc 00 00 00    	mov    %eax,0xdc(%esi)
589895:	85 db                	test   %ebx,%ebx
589897:	75 b6                	jne    0x58984f
589899:	8b 8e d8 00 00 00    	mov    0xd8(%esi),%ecx
58989f:	85 c9                	test   %ecx,%ecx
5898a1:	74 50                	je     0x5898f3
5898a3:	8b c1                	mov    %ecx,%eax
5898a5:	99                   	cltd
5898a6:	52                   	push   %edx
5898a7:	50                   	push   %eax
5898a8:	8b 46 04             	mov    0x4(%esi),%eax
5898ab:	e8 28 4e e9 ff       	call   0x41e6d8
5898b0:	33 db                	xor    %ebx,%ebx