58adb2:	57                   	push   %edi
58adb3:	50                   	push   %eax
58adb4:	b8 02 00 00 00       	mov    $0x2,%eax
58adb9:	81 c4 04 f0 ff ff    	add    $0xfffff004,%esp
58adbf:	50                   	push   %eax
58adc0:	48                   	dec    %eax
58adc1:	75 f6                	jne    0x58adb9
58adc3:	8b 84 24 00 20 00 00 	mov    0x2000(%esp),%eax
58adca:	83 c4 04             	add    $0x4,%esp
58adcd:	89 04 24             	mov    %eax,(%esp)
58add0:	8b 3c 24             	mov    (%esp),%edi
58add3:	6a 00                	push   $0x0
58add5:	68 e8 c0 00 00       	push   $0xc0e8
58adda:	8b 47 04             	mov    0x4(%edi),%eax
58addd:	e8 f6 38 e9 ff       	call   0x41e6d8
58ade2:	db 87 f8 00 00 00    	fildl  0xf8(%edi)
58ade8:	d8 3d c8 ae 58 00    	fdivrs 0x58aec8
58adee:	d8 35 cc ae 58 00    	fdivs  0x58aecc
58adf4:	dd 9f c0 f4 00 00    	fstpl  0xf4c0(%edi)
58adfa:	9b                   	fwait
58adfb:	8b 87 f8 00 00 00    	mov    0xf8(%edi),%eax
58ae01:	89 44 24 04          	mov    %eax,0x4(%esp)
58ae05:	ff 4c 24 04          	decl   0x4(%esp)
58ae09:	83 7c 24 04 00       	cmpl   $0x0,0x4(%esp)
58ae0e:	0f 8c a7 00 00 00    	jl     0x58aebb
58ae14:	8d 9f a8 f4 00 00    	lea    0xf4a8(%edi),%ebx
58ae1a:	66 83 7b 02 00       	cmpw   $0x0,0x2(%ebx)
58ae1f:	74 2a                	je     0x58ae4b
58ae21:	8b 87 f8 00 00 00    	mov    0xf8(%edi),%eax
58ae27:	2b 44 24 04          	sub    0x4(%esp),%eax
58ae2b:	89 84 24 fc 1f 00 00 	mov    %eax,0x1ffc(%esp)
58ae32:	db 84 24 fc 1f 00 00 	fildl  0x1ffc(%esp)
58ae39:	dc 4b 18             	fmull  0x18(%ebx)
58ae3c:	e8 8b 7e e7 ff       	call   0x402ccc
58ae41:	8b c8                	mov    %eax,%ecx
58ae43:	8b 53 08             	mov    0x8(%ebx),%edx
58ae46:	8b 43 04             	mov    0x4(%ebx),%eax
58ae49:	ff 13                	call   *(%ebx)
58ae4b:	8d 54 24 08          	lea    0x8(%esp),%edx
58ae4f:	8b 47 04             	mov    0x4(%edi),%eax
58ae52:	b9 f4 1f 00 00       	mov    $0x1ff4,%ecx
58ae57:	8b 18                	mov    (%eax),%ebx
58ae59:	ff 53 08             	call   *0x8(%ebx)
58ae5c:	66 b8 55 aa          	mov    $0xaa55,%ax
58ae60:	e8 2b f8 ff ff       	call   0x58a690
58ae65:	66 3d 55 aa          	cmp    $0xaa55,%ax
58ae69:	75 10                	jne    0x58ae7b
58ae6b:	8d 44 24 08          	lea    0x8(%esp),%eax
58ae6f:	8b d0                	mov    %eax,%edx
58ae71:	b9 f4 1f 00 00       	mov    $0x1ff4,%ecx
58ae76:	e8 49 f9 ff ff       	call   0x58a7c4
58ae7b:	8b b7 fc 00 00 00    	mov    0xfc(%edi),%esi
58ae81:	4e                   	dec    %esi
58ae82:	85 f6                	test   %esi,%esi
58ae84:	7c 26                	jl     0x58aeac
58ae86:	46                   	inc    %esi
58ae87:	33 db                	xor    %ebx,%ebx
58ae89:	8b 04 24             	mov    (%esp),%eax
58ae8c:	8b cb                	mov    %ebx,%ecx
58ae8e:	8b 54 24 04          	mov    0x4(%esp),%edx
58ae92:	e8 65 db ff ff       	call   0x5889fc
58ae97:	8b 97 fc 00 00 00    	mov    0xfc(%edi),%edx
58ae9d:	4a                   	dec    %edx
58ae9e:	2b d3                	sub    %ebx,%edx
58aea0:	66 8b 54 54 08       	mov    0x8(%esp,%edx,2),%dx
58aea5:	66 89 10             	mov    %dx,(%eax)
58aea8:	43                   	inc    %ebx
58aea9:	4e                   	dec    %esi
58aeaa:	75 dd                	jne    0x58ae89
58aeac:	ff 4c 24 04          	decl   0x4(%esp)
58aeb0:	83 7c 24 04 00       	cmpl   $0x0,0x4(%esp)
58aeb5:	0f 8d 59 ff ff ff    	jge    0x58ae14
58aebb:	81 c4 00 20 00 00    	add    $0x2000,%esp
58aec1:	5f                   	pop    %edi
58aec2:	5e                   	pop    %esi
58aec3:	5b                   	pop    %ebx
58aec4:	c3                   	ret
58aec5:	00 00                	add    %al,(%eax)
58aec7:	00 00                	add    %al,(%eax)
58aec9:	00 c8                	add    %cl,%al
58aecb:	42                   	inc    %edx
58aecc:	00 00                	add    %al,(%eax)
58aece:	00 40 53             	add    %al,0x53(%eax)
58aed1:	56                   	push   %esi
58aed2:	57                   	push   %edi
58aed3:	55                   	push   %ebp
58aed4:	83 c4 f4             	add    $0xfffffff4,%esp
58aed7:	8b f0                	mov    %eax,%esi
58aed9:	8b c6                	mov    %esi,%eax
58aedb:	89 44 24 04          	mov    %eax,0x4(%esp)
58aedf:	83 ca ff             	or     $0xffffffff,%edx
58aee2:	e8 35 e2 ff ff       	call   0x58911c
58aee7:	8b 44 24 04          	mov    0x4(%esp),%eax
58aeeb:	db 80 f8 00 00 00    	fildl  0xf8(%eax)
58aef1:	d8 3d d0 af 58 00    	fdivrs 0x58afd0
58aef7:	d8 35 d4 af 58 00    	fdivs  0x58afd4
58aefd:	8b 44 24 04          	mov    0x4(%esp),%eax
58af01:	dd 98 c0 f4 00 00    	fstpl  0xf4c0(%eax)
58af07:	9b                   	fwait
58af08:	8b 44 24 04          	mov    0x4(%esp),%eax
58af0c:	8b 80 f8 00 00 00    	mov    0xf8(%eax),%eax
58af12:	48                   	dec    %eax
58af13:	85 c0                	test   %eax,%eax
58af15:	0f 8c aa 00 00 00    	jl     0x58afc5
58af1b:	40                   	inc    %eax
58af1c:	89 44 24 08          	mov    %eax,0x8(%esp)
58af20:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
58af27:	8b 44 24 04          	mov    0x4(%esp),%eax
58af2b:	8d 98 a8 f4 00 00    	lea    0xf4a8(%eax),%ebx
58af31:	66 83 7b 02 00       	cmpw   $0x0,0x2(%ebx)
58af36:	74 15                	je     0x58af4d
58af38:	db 04 24             	fildl  (%esp)
58af3b:	dc 4b 18             	fmull  0x18(%ebx)
58af3e:	e8 89 7d e7 ff       	call   0x402ccc
58af43:	8b c8                	mov    %eax,%ecx
58af45:	8b 53 08             	mov    0x8(%ebx),%edx
58af48:	8b 43 04             	mov    0x4(%ebx),%eax
58af4b:	ff 13                	call   *(%ebx)
58af4d:	8b 44 24 04          	mov    0x4(%esp),%eax
58af51:	8b 98 fc 00 00 00    	mov    0xfc(%eax),%ebx
58af57:	4b                   	dec    %ebx
58af58:	85 db                	test   %ebx,%ebx
58af5a:	7c 29                	jl     0x58af85
58af5c:	43                   	inc    %ebx
58af5d:	33 ff                	xor    %edi,%edi
58af5f:	8b ee                	mov    %esi,%ebp
58af61:	8b c5                	mov    %ebp,%eax
58af63:	8b cf                	mov    %edi,%ecx
58af65:	8b 14 24             	mov    (%esp),%edx
58af68:	e8 8f da ff ff       	call   0x5889fc
58af6d:	50                   	push   %eax
58af6e:	8b c5                	mov    %ebp,%eax
58af70:	ba 0c 00 00 00       	mov    $0xc,%edx
58af75:	e8 a2 e1 ff ff       	call   0x58911c
58af7a:	c1 e0 02             	shl    $0x2,%eax
58af7d:	5a                   	pop    %edx
58af7e:	66 89 02             	mov    %ax,(%edx)
58af81:	47                   	inc    %edi
58af82:	4b                   	dec    %ebx
58af83:	75 da                	jne    0x58af5f
58af85:	8b 44 24 04          	mov    0x4(%esp),%eax
58af89:	8b b8 fc 00 00 00    	mov    0xfc(%eax),%edi
58af8f:	8d 3c 7f             	lea    (%edi,%edi,2),%edi
58af92:	d1 ff                	sar    $1,%edi
58af94:	79 03                	jns    0x58af99
58af96:	83 d7 00             	adc    $0x0,%edi
58af99:	8b 44 24 04          	mov    0x4(%esp),%eax
58af9d:	8b 98 ec 00 00 00    	mov    0xec(%eax),%ebx
58afa3:	4b                   	dec    %ebx
58afa4:	2b df                	sub    %edi,%ebx
58afa6:	7c 10                	jl     0x58afb8
58afa8:	43                   	inc    %ebx
58afa9:	8b c6                	mov    %esi,%eax
58afab:	ba 08 00 00 00       	mov    $0x8,%edx
58afb0:	e8 67 e1 ff ff       	call   0x58911c
58afb5:	4b                   	dec    %ebx
58afb6:	75 f1                	jne    0x58afa9
58afb8:	ff 04 24             	incl   (%esp)
58afbb:	ff 4c 24 08          	decl   0x8(%esp)
58afbf:	0f 85 62 ff ff ff    	jne    0x58af27
58afc5:	83 c4 0c             	add    $0xc,%esp
58afc8:	5d                   	pop    %ebp
58afc9:	5f                   	pop    %edi
58afca:	5e                   	pop    %esi
58afcb:	5b                   	pop    %ebx
58afcc:	c3                   	ret
58afcd:	00 00                	add    %al,(%eax)
58afcf:	00 00                	add    %al,(%eax)
58afd1:	00 c8                	add    %cl,%al
58afd3:	42                   	inc    %edx
58afd4:	00 00                	add    %al,(%eax)
58afd6:	00 40 53             	add    %al,0x53(%eax)
58afd9:	56                   	push   %esi
58afda:	57                   	push   %edi
58afdb:	83 c4 ec             	add    $0xffffffec,%esp
58afde:	89 4c 24 04          	mov    %ecx,0x4(%esp)
58afe2:	89 14 24             	mov    %edx,(%esp)
58afe5:	8b f0                	mov    %eax,%esi
58afe7:	8b 86 ec 00 00 00    	mov    0xec(%esi),%eax
58afed:	03 c0                	add    %eax,%eax
58afef:	e8 c0 e0 e7 ff       	call   0x4090b4
58aff4:	89 44 24 08          	mov    %eax,0x8(%esp)
58aff8:	ba f4 b0 58 00       	mov    $0x58b0f4,%edx
58affd:	8b 44 24 08          	mov    0x8(%esp),%eax
58b001:	e8 be da ff ff       	call   0x588ac4
58b006:	db 86 f8 00 00 00    	fildl  0xf8(%esi)
58b00c:	d8 3d 08 b1 58 00    	fdivrs 0x58b108
58b012:	d8 35 0c b1 58 00    	fdivs  0x58b10c
58b018:	dd 9e c0 f4 00 00    	fstpl  0xf4c0(%esi)
58b01e:	9b                   	fwait
58b01f:	8b 86 f8 00 00 00    	mov    0xf8(%esi),%eax
58b025:	48                   	dec    %eax
58b026:	85 c0                	test   %eax,%eax
58b028:	0f 8c b6 00 00 00    	jl     0x58b0e4
58b02e:	40                   	inc    %eax
58b02f:	89 44 24 10          	mov    %eax,0x10(%esp)
58b033:	c7 44 24 0c 00 00 00 	movl   $0x0,0xc(%esp)
58b03a:	00
58b03b:	66 83 be aa f4 00 00 	cmpw   $0x0,0xf4aa(%esi)
58b042:	00
58b043:	74 23                	je     0x58b068
58b045:	db 44 24 0c          	fildl  0xc(%esp)
58b049:	dc 8e c0 f4 00 00    	fmull  0xf4c0(%esi)
58b04f:	e8 78 7c e7 ff       	call   0x402ccc
58b054:	8b c8                	mov    %eax,%ecx
58b056:	8b 96 b0 f4 00 00    	mov    0xf4b0(%esi),%edx
58b05c:	8b 86 ac f4 00 00    	mov    0xf4ac(%esi),%eax
58b062:	ff 96 a8 f4 00 00    	call   *0xf4a8(%esi)
58b068:	8b 8e ec 00 00 00    	mov    0xec(%esi),%ecx
58b06e:	03 c9                	add    %ecx,%ecx
58b070:	8b 54 24 08          	mov    0x8(%esp),%edx
58b074:	8b 46 04             	mov    0x4(%esi),%eax
58b077:	8b 18                	mov    (%eax),%ebx
58b079:	ff 53 08             	call   *0x8(%ebx)
58b07c:	66 b8 aa 55          	mov    $0x55aa,%ax
58b080:	e8 0b f6 ff ff       	call   0x58a690
58b085:	0f b7 c0             	movzwl %ax,%eax
58b088:	3b 04 24             	cmp    (%esp),%eax
58b08b:	74 13                	je     0x58b0a0
58b08d:	8b 8e fc 00 00 00    	mov    0xfc(%esi),%ecx
58b093:	03 c9                	add    %ecx,%ecx
58b095:	8b 44 24 08          	mov    0x8(%esp),%eax
58b099:	8b d0                	mov    %eax,%edx
58b09b:	e8 24 f7 ff ff       	call   0x58a7c4
58b0a0:	8b be fc 00 00 00    	mov    0xfc(%esi),%edi
58b0a6:	4f                   	dec    %edi
58b0a7:	85 ff                	test   %edi,%edi
58b0a9:	7c 2b                	jl     0x58b0d6
58b0ab:	47                   	inc    %edi
58b0ac:	33 db                	xor    %ebx,%ebx
58b0ae:	8b c6                	mov    %esi,%eax
58b0b0:	8b cb                	mov    %ebx,%ecx
58b0b2:	8b 54 24 0c          	mov    0xc(%esp),%edx
58b0b6:	e8 41 d9 ff ff       	call   0x5889fc
58b0bb:	8b 4c 24 04          	mov    0x4(%esp),%ecx
58b0bf:	83 c1 08             	add    $0x8,%ecx
58b0c2:	8b 54 24 08          	mov    0x8(%esp),%edx
58b0c6:	0f b7 14 5a          	movzwl (%edx,%ebx,2),%edx
58b0ca:	c1 e2 08             	shl    $0x8,%edx
58b0cd:	d3 ea                	shr    %cl,%edx
58b0cf:	66 89 10             	mov    %dx,(%eax)
58b0d2:	43                   	inc    %ebx
58b0d3:	4f                   	dec    %edi
58b0d4:	75 d8                	jne    0x58b0ae
58b0d6:	ff 44 24 0c          	incl   0xc(%esp)
58b0da:	ff 4c 24 10          	decl   0x10(%esp)
58b0de:	0f 85 57 ff ff ff    	jne    0x58b03b
58b0e4:	8b 44 24 08          	mov    0x8(%esp),%eax
58b0e8:	e8 df 76 e7 ff       	call   0x4027cc
58b0ed:	83 c4 14             	add    $0x14,%esp
58b0f0:	5f                   	pop    %edi
58b0f1:	5e                   	pop    %esi
58b0f2:	5b                   	pop    %ebx
58b0f3:	c3                   	ret
58b0f4:	75 6e                	jne    0x58b164
58b0f6:	70 61                	jo     0x58b159
58b0f8:	63 6b 65             	arpl   %ebp,0x65(%ebx)
58b0fb:	64 5f                	fs pop %edi
58b0fd:	6c                   	insb   (%dx),%es:(%edi)
58b0fe:	6f                   	outsl  %ds:(%esi),(%dx)
58b0ff:	61                   	popa
58b100:	64 5f                	fs pop %edi
58b102:	72 61                	jb     0x58b165
58b104:	77 28                	ja     0x58b12e
58b106:	29 00                	sub    %eax,(%eax)
58b108:	00 00                	add    %al,(%eax)
58b10a:	c8 42 00 00          	enter  $0x42,$0x0
58b10e:	00 40 33             	add    %al,0x33(%eax)
58b111:	c9                   	leave
58b112:	ba aa 55 00 00       	mov    $0x55aa,%edx
58b117:	e8 bc fe ff ff       	call   0x58afd8
58b11c:	c3                   	ret
58b11d:	8d 40 00             	lea    0x0(%eax),%eax
58b120:	b9 02 00 00 00       	mov    $0x2,%ecx
58b125:	ba aa 55 00 00       	mov    $0x55aa,%edx
58b12a:	e8 a9 fe ff ff       	call   0x58afd8
58b12f:	c3                   	ret
58b130:	b9 fe ff ff ff       	mov    $0xfffffffe,%ecx
58b135:	ba aa 55 00 00       	mov    $0x55aa,%edx
58b13a:	e8 99 fe ff ff       	call   0x58afd8
58b13f:	c3                   	ret
58b140:	b9 fc ff ff ff       	mov    $0xfffffffc,%ecx
58b145:	ba aa 55 00 00       	mov    $0x55aa,%edx
58b14a:	e8 89 fe ff ff       	call   0x58afd8
58b14f:	c3                   	ret
58b150:	b9 02 00 00 00       	mov    $0x2,%ecx
58b155:	ba 55 aa 00 00       	mov    $0xaa55,%edx
58b15a:	e8 79 fe ff ff       	call   0x58afd8
58b15f:	c3                   	ret
58b160:	53                   	push   %ebx
58b161:	56                   	push   %esi
58b162:	57                   	push   %edi
58b163:	55                   	push   %ebp
58b164:	83 c4 f0             	add    $0xfffffff0,%esp
58b167:	8b f0                	mov    %eax,%esi
58b169:	89 74 24 08          	mov    %esi,0x8(%esp)
58b16d:	8b 44 24 08          	mov    0x8(%esp),%eax
58b171:	db 80 f8 00 00 00    	fildl  0xf8(%eax)
58b177:	d8 3d a4 b2 58 00    	fdivrs 0x58b2a4
58b17d:	d8 35 a8 b2 58 00    	fdivs  0x58b2a8
58b183:	8b 44 24 08          	mov    0x8(%esp),%eax
58b187:	dd 98 c0 f4 00 00    	fstpl  0xf4c0(%eax)
58b18d:	9b                   	fwait
58b18e:	8b 44 24 08          	mov    0x8(%esp),%eax
58b192:	8b 80 f8 00 00 00    	mov    0xf8(%eax),%eax
58b198:	48                   	dec    %eax
58b199:	85 c0                	test   %eax,%eax
58b19b:	0f 8c f8 00 00 00    	jl     0x58b299
58b1a1:	40                   	inc    %eax
58b1a2:	89 44 24 0c          	mov    %eax,0xc(%esp)
58b1a6:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
58b1ad:	8b 44 24 08          	mov    0x8(%esp),%eax
58b1b1:	8d 98 a8 f4 00 00    	lea    0xf4a8(%eax),%ebx
58b1b7:	66 83 7b 02 00       	cmpw   $0x0,0x2(%ebx)
58b1bc:	74 15                	je     0x58b1d3
58b1be:	db 04 24             	fildl  (%esp)
58b1c1:	dc 4b 18             	fmull  0x18(%ebx)
58b1c4:	e8 03 7b e7 ff       	call   0x402ccc
58b1c9:	8b c8                	mov    %eax,%ecx
58b1cb:	8b 53 08             	mov    0x8(%ebx),%edx
58b1ce:	8b 43 04             	mov    0x4(%ebx),%eax
58b1d1:	ff 13                	call   *(%ebx)
58b1d3:	8b 04 24             	mov    (%esp),%eax
58b1d6:	03 c0                	add    %eax,%eax
58b1d8:	8b 54 24 08          	mov    0x8(%esp),%edx
58b1dc:	8b 8a f8 00 00 00    	mov    0xf8(%edx),%ecx
58b1e2:	99                   	cltd
58b1e3:	f7 f9                	idiv   %ecx
58b1e5:	8b da                	mov    %edx,%ebx
58b1e7:	8b c1                	mov    %ecx,%eax
58b1e9:	d1 f8                	sar    $1,%eax
58b1eb:	79 03                	jns    0x58b1f0
58b1ed:	83 d0 00             	adc    $0x0,%eax
58b1f0:	50                   	push   %eax
58b1f1:	8b 44 24 04          	mov    0x4(%esp),%eax
58b1f5:	5a                   	pop    %edx
58b1f6:	8b fa                	mov    %edx,%edi
58b1f8:	99                   	cltd
58b1f9:	f7 ff                	idiv   %edi
58b1fb:	03 d8                	add    %eax,%ebx
58b1fd:	89 5c 24 04          	mov    %ebx,0x4(%esp)
58b201:	83 7c 24 04 02       	cmpl   $0x2,0x4(%esp)
58b206:	7d 4b                	jge    0x58b253
58b208:	8b 44 24 08          	mov    0x8(%esp),%eax
58b20c:	8b 80 fc 00 00 00    	mov    0xfc(%eax),%eax
58b212:	f7 d8                	neg    %eax
58b214:	f7 e9                	imul   %ecx
58b216:	8d 04 40             	lea    (%eax,%eax,2),%eax
58b219:	85 c0                	test   %eax,%eax
58b21b:	79 03                	jns    0x58b220