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
5898b2:	eb 0f                	jmp    0x5898c3
5898b4:	8b 56 04             	mov    0x4(%esi),%edx
5898b7:	8b c6                	mov    %esi,%eax
5898b9:	e8 96 f2 ff ff       	call   0x588b54
5898be:	66 89 04 5f          	mov    %ax,(%edi,%ebx,2)
5898c2:	43                   	inc    %ebx
5898c3:	3b 9e dc 00 00 00    	cmp    0xdc(%esi),%ebx
5898c9:	7c e9                	jl     0x5898b4
5898cb:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
5898d1:	7d 12                	jge    0x5898e5
5898d3:	66 8b 44 5f fe       	mov    -0x2(%edi,%ebx,2),%ax
5898d8:	66 89 04 5f          	mov    %ax,(%edi,%ebx,2)
5898dc:	43                   	inc    %ebx
5898dd:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
5898e3:	7c ee                	jl     0x5898d3
5898e5:	0f b7 44 5f fe       	movzwl -0x2(%edi,%ebx,2),%eax
5898ea:	c1 e0 02             	shl    $0x2,%eax
5898ed:	89 86 08 01 00 00    	mov    %eax,0x108(%esi)
5898f3:	8b 86 d4 00 00 00    	mov    0xd4(%esi),%eax
5898f9:	99                   	cltd
5898fa:	52                   	push   %edx
5898fb:	50                   	push   %eax
5898fc:	8b 46 04             	mov    0x4(%esi),%eax
5898ff:	e8 d4 4d e9 ff       	call   0x41e6d8
589904:	5a                   	pop    %edx
589905:	5d                   	pop    %ebp
589906:	5f                   	pop    %edi
589907:	5e                   	pop    %esi
589908:	5b                   	pop    %ebx
589909:	c3                   	ret
58990a:	00 00                	add    %al,(%eax)
58990c:	4b                   	dec    %ebx
58990d:	4f                   	dec    %edi
58990e:	44                   	inc    %esp
58990f:	41                   	inc    %ecx
589910:	4b                   	dec    %ebx
589911:	00 00                	add    %al,(%eax)
589913:	00 53 56             	add    %dl,0x56(%ebx)
589916:	57                   	push   %edi
589917:	55                   	push   %ebp
589918:	50                   	push   %eax
589919:	b8 02 00 00 00       	mov    $0x2,%eax
58991e:	81 c4 04 f0 ff ff    	add    $0xfffff004,%esp
589924:	50                   	push   %eax
589925:	48                   	dec    %eax
589926:	75 f6                	jne    0x58991e
589928:	8b 84 24 00 20 00 00 	mov    0x2000(%esp),%eax
58992f:	81 c4 b0 fe ff ff    	add    $0xfffffeb0,%esp
589935:	8b f8                	mov    %eax,%edi
589937:	8b df                	mov    %edi,%ebx
589939:	8b f3                	mov    %ebx,%esi
58993b:	33 c0                	xor    %eax,%eax
58993d:	89 44 24 04          	mov    %eax,0x4(%esp)
589941:	33 c0                	xor    %eax,%eax
589943:	89 44 24 08          	mov    %eax,0x8(%esp)
589947:	c7 44 24 1c 00 08 00 	movl   $0x800,0x1c(%esp)
58994e:	00
58994f:	c7 44 24 20 00 08 00 	movl   $0x800,0x20(%esp)
589956:	00
589957:	c7 44 24 38 00 00 00 	movl   $0x0,0x38(%esp)
58995e:	00
58995f:	c7 44 24 3c 00 00 00 	movl   $0x0,0x3c(%esp)
589966:	00
589967:	c7 44 24 40 ff ff ff 	movl   $0x7fffffff,0x40(%esp)
58996e:	7f
58996f:	8d 94 24 54 01 00 00 	lea    0x154(%esp),%edx
589976:	8b c3                	mov    %ebx,%eax
589978:	e8 7f fe ff ff       	call   0x5897fc
58997d:	66 c7 46 08 4d 4d    	movw   $0x4d4d,0x8(%esi)
589983:	8b c3                	mov    %ebx,%eax
589985:	8b 56 04             	mov    0x4(%esi),%edx
589988:	e8 c7 f1 ff ff       	call   0x588b54
58998d:	66 3d d8 ff          	cmp    $0xffd8,%ax
589991:	0f 85 a6 03 00 00    	jne    0x589d3d
589997:	8b ef                	mov    %edi,%ebp
589999:	8b c5                	mov    %ebp,%eax
58999b:	8b 56 04             	mov    0x4(%esi),%edx
58999e:	e8 b1 f1 ff ff       	call   0x588b54
5899a3:	0f b7 d8             	movzwl %ax,%ebx
5899a6:	8b c5                	mov    %ebp,%eax
5899a8:	8b 56 04             	mov    0x4(%esi),%edx
5899ab:	e8 a4 f1 ff ff       	call   0x588b54
5899b0:	0f b7 c0             	movzwl %ax,%eax
5899b3:	83 e8 02             	sub    $0x2,%eax
5899b6:	89 04 24             	mov    %eax,(%esp)
5899b9:	81 fb 00 ff 00 00    	cmp    $0xff00,%ebx
5899bf:	0f 8e 78 03 00 00    	jle    0x589d3d
5899c5:	81 3c 24 ff 00 00 00 	cmpl   $0xff,(%esp)
5899cc:	0f 8f 6b 03 00 00    	jg     0x589d3d
5899d2:	8d 54 24 54          	lea    0x54(%esp),%edx
5899d6:	8b 0c 24             	mov    (%esp),%ecx
5899d9:	8b 46 04             	mov    0x4(%esi),%eax
5899dc:	8b 28                	mov    (%eax),%ebp
5899de:	ff 55 08             	call   *0x8(%ebp)
5899e1:	8b c3                	mov    %ebx,%eax
5899e3:	2d c3 ff 00 00       	sub    $0xffc3,%eax
5899e8:	74 05                	je     0x5899ef
5899ea:	48                   	dec    %eax
5899eb:	74 30                	je     0x589a1d
5899ed:	eb 72                	jmp    0x589a61
5899ef:	33 c0                	xor    %eax,%eax
5899f1:	8a 44 24 55          	mov    0x55(%esp),%al
5899f5:	c1 e0 08             	shl    $0x8,%eax
5899f8:	33 d2                	xor    %edx,%edx
5899fa:	8a 54 24 56          	mov    0x56(%esp),%dl
5899fe:	03 c2                	add    %edx,%eax
589a00:	89 44 24 04          	mov    %eax,0x4(%esp)
589a04:	33 c0                	xor    %eax,%eax
589a06:	8a 44 24 57          	mov    0x57(%esp),%al
589a0a:	c1 e0 08             	shl    $0x8,%eax
589a0d:	33 d2                	xor    %edx,%edx
589a0f:	8a 54 24 58          	mov    0x58(%esp),%dl
589a13:	03 c2                	add    %edx,%eax
589a15:	03 c0                	add    %eax,%eax
589a17:	89 44 24 08          	mov    %eax,0x8(%esp)
589a1b:	eb 44                	jmp    0x589a61
589a1d:	8b c7                	mov    %edi,%eax
589a1f:	e8 a0 f7 ff ff       	call   0x5891c4
589a24:	8b 86 9c f4 00 00    	mov    0xf49c(%esi),%eax
589a2a:	89 44 24 30          	mov    %eax,0x30(%esp)
589a2e:	89 44 24 2c          	mov    %eax,0x2c(%esp)
589a32:	8d 44 24 54          	lea    0x54(%esp),%eax
589a36:	eb 19                	jmp    0x589a51
589a38:	33 d2                	xor    %edx,%edx
589a3a:	8a 10                	mov    (%eax),%dl
589a3c:	8b 8e 9c f4 00 00    	mov    0xf49c(%esi),%ecx
589a42:	89 4c 94 2c          	mov    %ecx,0x2c(%esp,%edx,4)
589a46:	40                   	inc    %eax
589a47:	8b d7                	mov    %edi,%edx
589a49:	33 c9                	xor    %ecx,%ecx
589a4b:	92                   	xchg   %eax,%edx
589a4c:	e8 97 f7 ff ff       	call   0x5891e8
589a51:	8d 54 24 54          	lea    0x54(%esp),%edx
589a55:	03 14 24             	add    (%esp),%edx
589a58:	3b d0                	cmp    %eax,%edx
589a5a:	7e 05                	jle    0x589a61
589a5c:	80 38 02             	cmpb   $0x2,(%eax)
589a5f:	72 d7                	jb     0x589a38
589a61:	81 fb da ff 00 00    	cmp    $0xffda,%ebx
589a67:	0f 85 2a ff ff ff    	jne    0x589997
589a6d:	db 44 24 04          	fildl  0x4(%esp)
589a71:	d8 3d 48 9d 58 00    	fdivrs 0x589d48
589a77:	d8 35 4c 9d 58 00    	fdivs  0x589d4c
589a7d:	dd 9e c0 f4 00 00    	fstpl  0xf4c0(%esi)
589a83:	9b                   	fwait
589a84:	c7 86 38 01 00 00 01 	movl   $0x1,0x138(%esi)
589a8b:	00 00 00
589a8e:	8b c7                	mov    %edi,%eax
589a90:	83 ca ff             	or     $0xffffffff,%edx
589a93:	e8 84 f6 ff ff       	call   0x58911c
589a98:	8b 44 24 04          	mov    0x4(%esp),%eax
589a9c:	48                   	dec    %eax
589a9d:	85 c0                	test   %eax,%eax
589a9f:	0f 8c 3d 02 00 00    	jl     0x589ce2
589aa5:	40                   	inc    %eax
589aa6:	89 44 24 44          	mov    %eax,0x44(%esp)
589aaa:	c7 44 24 0c 00 00 00 	movl   $0x0,0xc(%esp)
589ab1:	00
589ab2:	8d 9e a8 f4 00 00    	lea    0xf4a8(%esi),%ebx
589ab8:	66 83 7b 02 00       	cmpw   $0x0,0x2(%ebx)
589abd:	74 16                	je     0x589ad5
589abf:	db 44 24 0c          	fildl  0xc(%esp)
589ac3:	dc 4b 18             	fmull  0x18(%ebx)
589ac6:	e8 01 92 e7 ff       	call   0x402ccc
589acb:	8b c8                	mov    %eax,%ecx
589acd:	8b 53 08             	mov    0x8(%ebx),%edx
589ad0:	8b 43 04             	mov    0x4(%ebx),%eax
589ad3:	ff 13                	call   *(%ebx)
589ad5:	8b 44 24 08          	mov    0x8(%esp),%eax
589ad9:	48                   	dec    %eax
589ada:	85 c0                	test   %eax,%eax
589adc:	0f 8c f2 01 00 00    	jl     0x589cd4
589ae2:	40                   	inc    %eax
589ae3:	89 44 24 48          	mov    %eax,0x48(%esp)
589ae7:	33 ed                	xor    %ebp,%ebp