589d27:	e8 78 ec ff ff       	call   0x5889a4
589d2c:	85 c0                	test   %eax,%eax
589d2e:	75 0d                	jne    0x589d3d
589d30:	8b 44 24 40          	mov    0x40(%esp),%eax
589d34:	c1 e0 02             	shl    $0x2,%eax
589d37:	89 86 04 01 00 00    	mov    %eax,0x104(%esi)
589d3d:	81 c4 54 21 00 00    	add    $0x2154,%esp
589d43:	5d                   	pop    %ebp
589d44:	5f                   	pop    %edi
589d45:	5e                   	pop    %esi
589d46:	5b                   	pop    %ebx
589d47:	c3                   	ret
589d48:	00 00                	add    %al,(%eax)
589d4a:	c8 42 00 00          	enter  $0x42,$0x0
589d4e:	00 40 4b             	add    %al,0x4b(%eax)
589d51:	4f                   	dec    %edi
589d52:	44                   	inc    %esp
589d53:	41                   	inc    %ecx
589d54:	4b                   	dec    %ebx
589d55:	00 00                	add    %al,(%eax)
589d57:	00 53 56             	add    %dl,0x56(%ebx)
589d5a:	57                   	push   %edi
589d5b:	55                   	push   %ebp
589d5c:	83 c4 c8             	add    $0xffffffc8,%esp
589d5f:	8b f0                	mov    %eax,%esi
589d61:	8b de                	mov    %esi,%ebx
589d63:	8b fb                	mov    %ebx,%edi
589d65:	8b c3                	mov    %ebx,%eax
589d67:	e8 58 f4 ff ff       	call   0x5891c4
589d6c:	ba bc 37 6a 00       	mov    $0x6a37bc,%edx
589d71:	8b c3                	mov    %ebx,%eax
589d73:	33 c9                	xor    %ecx,%ecx
589d75:	e8 6e f4 ff ff       	call   0x5891e8
589d7a:	8b 87 d8 00 00 00    	mov    0xd8(%edi),%eax
589d80:	99                   	cltd
589d81:	52                   	push   %edx
589d82:	50                   	push   %eax
589d83:	8b 47 04             	mov    0x4(%edi),%eax
589d86:	e8 4d 49 e9 ff       	call   0x41e6d8
589d8b:	c7 44 24 10 04 00 00 	movl   $0x4,0x10(%esp)
589d92:	00
589d93:	8d 5c 24 28          	lea    0x28(%esp),%ebx
589d97:	8b 57 04             	mov    0x4(%edi),%edx
589d9a:	8b c6                	mov    %esi,%eax
589d9c:	e8 b3 ed ff ff       	call   0x588b54
589da1:	0f b7 c0             	movzwl %ax,%eax
589da4:	89 03                	mov    %eax,(%ebx)
589da6:	83 c3 04             	add    $0x4,%ebx
589da9:	ff 4c 24 10          	decl   0x10(%esp)
589dad:	75 e8                	jne    0x589d97
589daf:	8b 57 04             	mov    0x4(%edi),%edx
589db2:	8b c6                	mov    %esi,%eax
589db4:	e8 9b ed ff ff       	call   0x588b54
589db9:	0f b7 c0             	movzwl %ax,%eax
589dbc:	89 44 24 08          	mov    %eax,0x8(%esp)
589dc0:	8b 44 24 08          	mov    0x8(%esp),%eax
589dc4:	03 c0                	add    %eax,%eax
589dc6:	e8 e9 f2 e7 ff       	call   0x4090b4
589dcb:	89 44 24 18          	mov    %eax,0x18(%esp)
589dcf:	ba a4 9f 58 00       	mov    $0x589fa4,%edx
589dd4:	8b 44 24 18          	mov    0x18(%esp),%eax
589dd8:	e8 e7 ec ff ff       	call   0x588ac4
589ddd:	8b 44 24 08          	mov    0x8(%esp),%eax
589de1:	48                   	dec    %eax
589de2:	85 c0                	test   %eax,%eax
589de4:	7c 2d                	jl     0x589e13
589de6:	40                   	inc    %eax
589de7:	89 44 24 1c          	mov    %eax,0x1c(%esp)
589deb:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
589df2:	00
589df3:	8b 57 04             	mov    0x4(%edi),%edx
589df6:	8b c6                	mov    %esi,%eax
589df8:	e8 57 ed ff ff       	call   0x588b54
589dfd:	8b 54 24 18          	mov    0x18(%esp),%edx
589e01:	8b 4c 24 10          	mov    0x10(%esp),%ecx
589e05:	66 89 04 4a          	mov    %ax,(%edx,%ecx,2)
589e09:	ff 44 24 10          	incl   0x10(%esp)
589e0d:	ff 4c 24 1c          	decl   0x1c(%esp)
589e11:	75 e0                	jne    0x589df3
589e13:	8b 87 d4 00 00 00    	mov    0xd4(%edi),%eax
589e19:	99                   	cltd
589e1a:	52                   	push   %edx
589e1b:	50                   	push   %eax
589e1c:	8b 47 04             	mov    0x4(%edi),%eax
589e1f:	e8 b4 48 e9 ff       	call   0x41e6d8
589e24:	8b c6                	mov    %esi,%eax
589e26:	83 ca ff             	or     $0xffffffff,%edx
589e29:	e8 ee f2 ff ff       	call   0x58911c
589e2e:	db 87 f8 00 00 00    	fildl  0xf8(%edi)
589e34:	d8 3d c0 9f 58 00    	fdivrs 0x589fc0
589e3a:	d8 35 c4 9f 58 00    	fdivs  0x589fc4
589e40:	dd 9f c0 f4 00 00    	fstpl  0xf4c0(%edi)
589e46:	9b                   	fwait
589e47:	8b 87 f8 00 00 00    	mov    0xf8(%edi),%eax
589e4d:	48                   	dec    %eax
589e4e:	85 c0                	test   %eax,%eax
589e50:	0f 8c 3b 01 00 00    	jl     0x589f91
589e56:	40                   	inc    %eax
589e57:	89 44 24 1c          	mov    %eax,0x1c(%esp)
589e5b:	c7 44 24 0c 00 00 00 	movl   $0x0,0xc(%esp)
589e62:	00
589e63:	8d 9f a8 f4 00 00    	lea    0xf4a8(%edi),%ebx
589e69:	66 83 7b 02 00       	cmpw   $0x0,0x2(%ebx)
589e6e:	74 16                	je     0x589e86
589e70:	db 44 24 0c          	fildl  0xc(%esp)
589e74:	dc 4b 18             	fmull  0x18(%ebx)
589e77:	e8 50 8e e7 ff       	call   0x402ccc
589e7c:	8b c8                	mov    %eax,%ecx
589e7e:	8b 53 08             	mov    0x8(%ebx),%edx
589e81:	8b 43 04             	mov    0x4(%ebx),%eax
589e84:	ff 13                	call   *(%ebx)
589e86:	8b 87 ec 00 00 00    	mov    0xec(%edi),%eax
589e8c:	48                   	dec    %eax
589e8d:	85 c0                	test   %eax,%eax
589e8f:	0f 8c ee 00 00 00    	jl     0x589f83
589e95:	40                   	inc    %eax
589e96:	89 44 24 20          	mov    %eax,0x20(%esp)
589e9a:	33 ed                	xor    %ebp,%ebp
589e9c:	8b c4                	mov    %esp,%eax
589e9e:	89 44 24 24          	mov    %eax,0x24(%esp)
589ea2:	8d 9f 98 94 00 00    	lea    0x9498(%edi),%ebx
589ea8:	eb 0f                	jmp    0x589eb9
589eaa:	8b c6                	mov    %esi,%eax
589eac:	ba 01 00 00 00       	mov    $0x1,%edx
589eb1:	e8 66 f2 ff ff       	call   0x58911c
589eb6:	8b 1c 83             	mov    (%ebx,%eax,4),%ebx
589eb9:	83 3b 00             	cmpl   $0x0,(%ebx)
589ebc:	75 ec                	jne    0x589eaa
589ebe:	8b 43 08             	mov    0x8(%ebx),%eax
589ec1:	89 44 24 14          	mov    %eax,0x14(%esp)
589ec5:	8b c6                	mov    %esi,%eax
589ec7:	8b 54 24 14          	mov    0x14(%esp),%edx
589ecb:	e8 4c f2 ff ff       	call   0x58911c
589ed0:	8b d8                	mov    %eax,%ebx
589ed2:	8b 4c 24 14          	mov    0x14(%esp),%ecx
589ed6:	49                   	dec    %ecx
589ed7:	b8 01 00 00 00       	mov    $0x1,%eax
589edc:	d3 e0                	shl    %cl,%eax
589ede:	85 d8                	test   %ebx,%eax
589ee0:	75 0e                	jne    0x589ef0
589ee2:	8b 4c 24 14          	mov    0x14(%esp),%ecx
589ee6:	b8 01 00 00 00       	mov    $0x1,%eax
589eeb:	d3 e0                	shl    %cl,%eax
589eed:	48                   	dec    %eax
589eee:	2b d8                	sub    %eax,%ebx
589ef0:	83 fd 02             	cmp    $0x2,%ebp
589ef3:	7d 2c                	jge    0x589f21
589ef5:	8b 44 24 0c          	mov    0xc(%esp),%eax
589ef9:	83 e0 01             	and    $0x1,%eax
589efc:	03 c0                	add    %eax,%eax
589efe:	8b d5                	mov    %ebp,%edx
589f00:	83 e2 01             	and    $0x1,%edx
589f03:	03 c2                	add    %edx,%eax
589f05:	89 44 24 10          	mov    %eax,0x10(%esp)
589f09:	8b 44 24 10          	mov    0x10(%esp),%eax
589f0d:	01 5c 84 28          	add    %ebx,0x28(%esp,%eax,4)
589f11:	8b 44 24 10          	mov    0x10(%esp),%eax
589f15:	8b 44 84 28          	mov    0x28(%esp,%eax,4),%eax
589f19:	8b 54 24 24          	mov    0x24(%esp),%edx
589f1d:	89 02                	mov    %eax,(%edx)
589f1f:	eb 08                	jmp    0x589f29
589f21:	8b c5                	mov    %ebp,%eax
589f23:	83 e0 01             	and    $0x1,%eax
589f26:	01 1c 84             	add    %ebx,(%esp,%eax,4)
589f29:	8b c5                	mov    %ebp,%eax
589f2b:	2b 87 f4 00 00 00    	sub    0xf4(%edi),%eax
589f31:	3b 87 fc 00 00 00    	cmp    0xfc(%edi),%eax
589f37:	7d 3a                	jge    0x589f73
589f39:	8b c5                	mov    %ebp,%eax
589f3b:	83 e0 01             	and    $0x1,%eax
589f3e:	8b 1c 84             	mov    (%esp,%eax,4),%ebx
589f41:	85 db                	test   %ebx,%ebx
589f43:	7d 02                	jge    0x589f47
589f45:	33 db                	xor    %ebx,%ebx
589f47:	3b 5c 24 08          	cmp    0x8(%esp),%ebx
589f4b:	7c 05                	jl     0x589f52
589f4d:	8b 5c 24 08          	mov    0x8(%esp),%ebx
589f51:	4b                   	dec    %ebx
589f52:	8b cd                	mov    %ebp,%ecx
589f54:	2b 8f f4 00 00 00    	sub    0xf4(%edi),%ecx
589f5a:	8b c6                	mov    %esi,%eax
589f5c:	8b 54 24 0c          	mov    0xc(%esp),%edx
589f60:	e8 97 ea ff ff       	call   0x5889fc
589f65:	8b 54 24 18          	mov    0x18(%esp),%edx
589f69:	66 8b 14 5a          	mov    (%edx,%ebx,2),%dx
589f6d:	c1 e2 02             	shl    $0x2,%edx
589f70:	66 89 10             	mov    %dx,(%eax)
589f73:	45                   	inc    %ebp
589f74:	83 44 24 24 04       	addl   $0x4,0x24(%esp)
589f79:	ff 4c 24 20          	decl   0x20(%esp)
589f7d:	0f 85 1f ff ff ff    	jne    0x589ea2
589f83:	ff 44 24 0c          	incl   0xc(%esp)
589f87:	ff 4c 24 1c          	decl   0x1c(%esp)
589f8b:	0f 85 d2 fe ff ff    	jne    0x589e63
589f91:	8b 44 24 18          	mov    0x18(%esp),%eax
589f95:	e8 32 88 e7 ff       	call   0x4027cc
589f9a:	83 c4 38             	add    $0x38,%esp
589f9d:	5d                   	pop    %ebp
589f9e:	5f                   	pop    %edi
589f9f:	5e                   	pop    %esi
589fa0:	5b                   	pop    %ebx
589fa1:	c3                   	ret
589fa2:	00 00                	add    %al,(%eax)
589fa4:	6e                   	outsb  %ds:(%esi),(%dx)
589fa5:	69 6b 6f 6e 5f 63 6f 	imul   $0x6f635f6e,0x6f(%ebx),%ebp
589fac:	6d                   	insl   (%dx),%es:(%edi)
589fad:	70 72                	jo     0x58a021
589faf:	65 73 73             	gs jae 0x58a025
589fb2:	65 64 5f             	gs fs pop %edi
589fb5:	6c                   	insb   (%dx),%es:(%edi)
589fb6:	6f                   	outsl  %ds:(%esi),(%dx)
589fb7:	61                   	popa
589fb8:	64 5f                	fs pop %edi
589fba:	72 61                	jb     0x58a01d
589fbc:	77 28                	ja     0x589fe6
589fbe:	29 00                	sub    %eax,(%eax)
589fc0:	00 00                	add    %al,(%eax)
589fc2:	c8 42 00 00          	enter  $0x42,$0x0
589fc6:	00 40 55             	add    %al,0x55(%eax)
589fc9:	8b ec                	mov    %esp,%ebp
589fcb:	83 c4 e4             	add    $0xffffffe4,%esp
589fce:	53                   	push   %ebx
589fcf:	56                   	push   %esi
589fd0:	57                   	push   %edi
589fd1:	33 d2                	xor    %edx,%edx
589fd3:	89 55 e4             	mov    %edx,-0x1c(%ebp)
589fd6:	89 45 fc             	mov    %eax,-0x4(%ebp)
589fd9:	33 c0                	xor    %eax,%eax
589fdb:	55                   	push   %ebp
589fdc:	68 79 a1 58 00       	push   $0x58a179
589fe1:	64 ff 30             	push   %fs:(%eax)
589fe4:	64 89 20             	mov    %esp,%fs:(%eax)
589fe7:	8b 45 fc             	mov    -0x4(%ebp),%eax
589fea:	8b d8                	mov    %eax,%ebx
589fec:	83 ca ff             	or     $0xffffffff,%edx
589fef:	e8 28 f1 ff ff       	call   0x58911c
589ff4:	db 83 f8 00 00 00    	fildl  0xf8(%ebx)
589ffa:	d8 3d 88 a1 58 00    	fdivrs 0x58a188
58a000:	d8 35 8c a1 58 00    	fdivs  0x58a18c
58a006:	dd 9b c0 f4 00 00    	fstpl  0xf4c0(%ebx)
58a00c:	9b                   	fwait
58a00d:	8b 83 f8 00 00 00    	mov    0xf8(%ebx),%eax
58a013:	48                   	dec    %eax
58a014:	85 c0                	test   %eax,%eax
58a016:	0f 8c 47 01 00 00    	jl     0x58a163
58a01c:	40                   	inc    %eax
58a01d:	89 45 ec             	mov    %eax,-0x14(%ebp)
58a020:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
58a027:	8d b3 a8 f4 00 00    	lea    0xf4a8(%ebx),%esi
58a02d:	66 83 7e 02 00       	cmpw   $0x0,0x2(%esi)
58a032:	74 15                	je     0x58a049
58a034:	db 45 f4             	fildl  -0xc(%ebp)
58a037:	dc 4e 18             	fmull  0x18(%esi)
58a03a:	e8 8d 8c e7 ff       	call   0x402ccc
58a03f:	8b c8                	mov    %eax,%ecx
58a041:	8b 56 08             	mov    0x8(%esi),%edx
58a044:	8b 46 04             	mov    0x4(%esi),%eax
58a047:	ff 16                	call   *(%esi)
58a049:	8b 45 f8             	mov    -0x8(%ebp),%eax
58a04c:	89 45 f4             	mov    %eax,-0xc(%ebp)
58a04f:	80 7b 4a 45          	cmpb   $0x45,0x4a(%ebx)
58a053:	0f 85 84 00 00 00    	jne    0x58a0dd
58a059:	8b 8b f8 00 00 00    	mov    0xf8(%ebx),%ecx
58a05f:	8b c1                	mov    %ecx,%eax
58a061:	d1 f8                	sar    $1,%eax
58a063:	79 03                	jns    0x58a068
58a065:	83 d0 00             	adc    $0x0,%eax
58a068:	50                   	push   %eax
58a069:	8b 45 f8             	mov    -0x8(%ebp),%eax
58a06c:	5a                   	pop    %edx
58a06d:	8b f2                	mov    %edx,%esi
58a06f:	99                   	cltd
58a070:	f7 fe                	idiv   %esi
58a072:	8b f0                	mov    %eax,%esi
58a074:	8b 45 f8             	mov    -0x8(%ebp),%eax
58a077:	03 c0                	add    %eax,%eax
58a079:	99                   	cltd
58a07a:	f7 f9                	idiv   %ecx
58a07c:	03 f2                	add    %edx,%esi
58a07e:	89 75 f4             	mov    %esi,-0xc(%ebp)
58a081:	83 7d f4 01          	cmpl   $0x1,-0xc(%ebp)
58a085:	75 56                	jne    0x58a0dd
58a087:	8d 45 e4             	lea    -0x1c(%ebp),%eax
58a08a:	8d 53 4b             	lea    0x4b(%ebx),%edx
58a08d:	e8 c6 a9 e7 ff       	call   0x404a58
58a092:	8b 45 e4             	mov    -0x1c(%ebp),%eax
58a095:	33 d2                	xor    %edx,%edx
58a097:	e8 44 f6 e7 ff       	call   0x4096e0
58a09c:	3d 88 13 00 00       	cmp    $0x1388,%eax
58a0a1:	7d 3a                	jge    0x58a0dd
58a0a3:	8b 73 04             	mov    0x4(%ebx),%esi
58a0a6:	8b c6                	mov    %esi,%eax
58a0a8:	e8 3f 46 e9 ff       	call   0x41e6ec
58a0ad:	52                   	push   %edx
58a0ae:	50                   	push   %eax
58a0af:	8b c6                	mov    %esi,%eax
58a0b1:	e8 22 46 e9 ff       	call   0x41e6d8
58a0b6:	6a 00                	push   $0x0
58a0b8:	6a 02                	push   $0x2
58a0ba:	8b 73 04             	mov    0x4(%ebx),%esi
58a0bd:	8b c6                	mov    %esi,%eax
58a0bf:	e8 f4 45 e9 ff       	call   0x41e6b8
58a0c4:	e8 df b9 e7 ff       	call   0x405aa8
58a0c9:	52                   	push   %edx
58a0ca:	50                   	push   %eax
58a0cb:	8b c6                	mov    %esi,%eax
58a0cd:	e8 06 46 e9 ff       	call   0x41e6d8
58a0d2:	8b 45 fc             	mov    -0x4(%ebp),%eax
58a0d5:	83 ca ff             	or     $0xffffffff,%edx
58a0d8:	e8 3f f0 ff ff       	call   0x58911c
58a0dd:	8b 83 ec 00 00 00    	mov    0xec(%ebx),%eax
58a0e3:	48                   	dec    %eax
58a0e4:	85 c0                	test   %eax,%eax
58a0e6:	7c 6f                	jl     0x58a157
58a0e8:	40                   	inc    %eax
58a0e9:	89 45 e8             	mov    %eax,-0x18(%ebp)
58a0ec:	33 f6                	xor    %esi,%esi
58a0ee:	8b 45 fc             	mov    -0x4(%ebp),%eax
58a0f1:	ba 0c 00 00 00       	mov    $0xc,%edx
58a0f6:	e8 21 f0 ff ff       	call   0x58911c
58a0fb:	89 45 f0             	mov    %eax,-0x10(%ebp)
58a0fe:	8b fe                	mov    %esi,%edi
58a100:	2b bb f4 00 00 00    	sub    0xf4(%ebx),%edi
58a106:	3b bb fc 00 00 00    	cmp    0xfc(%ebx),%edi
58a10c:	7d 1b                	jge    0x58a129
58a10e:	85 ff                	test   %edi,%edi
58a110:	7c 17                	jl     0x58a129
58a112:	8b cf                	mov    %edi,%ecx
58a114:	8b 45 fc             	mov    -0x4(%ebp),%eax
58a117:	8b 55 f4             	mov    -0xc(%ebp),%edx
58a11a:	e8 dd e8 ff ff       	call   0x5889fc
58a11f:	66 8b 55 f0          	mov    -0x10(%ebp),%dx
58a123:	c1 e2 02             	shl    $0x2,%edx
58a126:	66 89 10             	mov    %dx,(%eax)
58a129:	81 bb e0 00 00 00 99 	cmpl   $0x8799,0xe0(%ebx)
58a130:	87 00 00
58a133:	75 1c                	jne    0x58a151
58a135:	8b c6                	mov    %esi,%eax
58a137:	b9 0a 00 00 00       	mov    $0xa,%ecx
58a13c:	99                   	cltd
58a13d:	f7 f9                	idiv   %ecx
58a13f:	83 fa 09             	cmp    $0x9,%edx
58a142:	75 0d                	jne    0x58a151
58a144:	8b 45 fc             	mov    -0x4(%ebp),%eax
58a147:	ba 08 00 00 00       	mov    $0x8,%edx
58a14c:	e8 cb ef ff ff       	call   0x58911c
58a151:	46                   	inc    %esi
58a152:	ff 4d e8             	decl   -0x18(%ebp)
58a155:	75 97                	jne    0x58a0ee
58a157:	ff 45 f8             	incl   -0x8(%ebp)