58feee:	6e                   	outsb  %ds:(%esi),(%dx)
58feef:	6f                   	outsl  %ds:(%esi),(%dx)
58fef0:	6e                   	outsb  %ds:(%esi),(%dx)
58fef1:	00 00                	add    %al,(%eax)
58fef3:	00 45 4f             	add    %al,0x4f(%ebp)
58fef6:	53                   	push   %ebx
58fef7:	20 44 32 30          	and    %al,0x30(%edx,%esi,1)
58fefb:	30 30                	xor    %dh,(%eax)
58fefd:	43                   	inc    %ebx
58fefe:	00 00                	add    %al,(%eax)
58ff00:	49                   	dec    %ecx
58ff01:	6d                   	insl   (%dx),%es:(%edi)
58ff02:	61                   	popa
58ff03:	63 6f 6e             	arpl   %ebp,0x6e(%edi)
58ff06:	00 00                	add    %al,(%eax)
58ff08:	49                   	dec    %ecx
58ff09:	78 70                	js     0x58ff7b
58ff0b:	72 65                	jb     0x58ff72
58ff0d:	73 73                	jae    0x58ff82
58ff0f:	00 53 56             	add    %dl,0x56(%ebx)
58ff12:	57                   	push   %edi
58ff13:	55                   	push   %ebp
58ff14:	83 c4 ec             	add    $0xffffffec,%esp
58ff17:	89 04 24             	mov    %eax,(%esp)
58ff1a:	33 ff                	xor    %edi,%edi
58ff1c:	33 c0                	xor    %eax,%eax
58ff1e:	89 44 24 0c          	mov    %eax,0xc(%esp)
58ff22:	8b 14 24             	mov    (%esp),%edx
58ff25:	8b 52 04             	mov    0x4(%edx),%edx
58ff28:	8b 04 24             	mov    (%esp),%eax
58ff2b:	e8 24 8c ff ff       	call   0x588b54
58ff30:	8b 14 24             	mov    (%esp),%edx
58ff33:	8b 52 04             	mov    0x4(%edx),%edx
58ff36:	8b 04 24             	mov    (%esp),%eax
58ff39:	e8 6e 8c ff ff       	call   0x588bac
58ff3e:	3d 08 00 08 00       	cmp    $0x80008,%eax
58ff43:	0f 85 c8 00 00 00    	jne    0x590011
58ff49:	8b 14 24             	mov    (%esp),%edx
58ff4c:	8b 52 04             	mov    0x4(%edx),%edx
58ff4f:	8b 04 24             	mov    (%esp),%eax
58ff52:	e8 55 8c ff ff       	call   0x588bac
58ff57:	85 c0                	test   %eax,%eax
58ff59:	0f 84 b2 00 00 00    	je     0x590011
58ff5f:	8b 14 24             	mov    (%esp),%edx
58ff62:	8b 52 04             	mov    0x4(%edx),%edx
58ff65:	8b 04 24             	mov    (%esp),%eax
58ff68:	e8 e7 8b ff ff       	call   0x588b54
58ff6d:	0f b7 f0             	movzwl %ax,%esi
58ff70:	83 fe 0a             	cmp    $0xa,%esi
58ff73:	74 09                	je     0x58ff7e
58ff75:	83 fe 0c             	cmp    $0xc,%esi
58ff78:	0f 85 93 00 00 00    	jne    0x590011
58ff7e:	33 c0                	xor    %eax,%eax
58ff80:	89 44 24 04          	mov    %eax,0x4(%esp)
58ff84:	c7 44 24 08 08 00 00 	movl   $0x8,0x8(%esp)
58ff8b:	00
58ff8c:	8b 04 24             	mov    (%esp),%eax
58ff8f:	05 40 01 00 00       	add    $0x140,%eax
58ff94:	89 44 24 10          	mov    %eax,0x10(%esp)
58ff98:	bd 08 00 00 00       	mov    $0x8,%ebp
58ff9d:	8b 44 24 10          	mov    0x10(%esp),%eax
58ffa1:	8b d8                	mov    %eax,%ebx
58ffa3:	3b f7                	cmp    %edi,%esi
58ffa5:	7e 34                	jle    0x58ffdb
58ffa7:	8b 14 24             	mov    (%esp),%edx
58ffaa:	8b 52 04             	mov    0x4(%edx),%edx
58ffad:	8b 04 24             	mov    (%esp),%eax
58ffb0:	e8 9f 8b ff ff       	call   0x588b54
58ffb5:	8b 54 24 04          	mov    0x4(%esp),%edx
58ffb9:	83 e2 01             	and    $0x1,%edx
58ffbc:	66 33 04 55 94 48 6a 	xor    0x6a4894(,%edx,2),%ax
58ffc3:	00
58ffc4:	0f b7 c0             	movzwl %ax,%eax
58ffc7:	8b 54 24 0c          	mov    0xc(%esp),%edx
58ffcb:	c1 e2 10             	shl    $0x10,%edx
58ffce:	0b c2                	or     %edx,%eax
58ffd0:	89 44 24 0c          	mov    %eax,0xc(%esp)
58ffd4:	ff 44 24 04          	incl   0x4(%esp)
58ffd8:	83 c7 10             	add    $0x10,%edi
58ffdb:	b9 20 00 00 00       	mov    $0x20,%ecx
58ffe0:	2b cf                	sub    %edi,%ecx
58ffe2:	8b 44 24 0c          	mov    0xc(%esp),%eax
58ffe6:	d3 e0                	shl    %cl,%eax
58ffe8:	b9 20 00 00 00       	mov    $0x20,%ecx
58ffed:	2b ce                	sub    %esi,%ecx
58ffef:	d3 e8                	shr    %cl,%eax
58fff1:	b9 0e 00 00 00       	mov    $0xe,%ecx
58fff6:	2b ce                	sub    %esi,%ecx
58fff8:	66 d3 e0             	shl    %cl,%ax
58fffb:	66 89 03             	mov    %ax,(%ebx)
58fffe:	2b fe                	sub    %esi,%edi
590000:	83 c3 02             	add    $0x2,%ebx
590003:	4d                   	dec    %ebp
590004:	75 9d                	jne    0x58ffa3
590006:	83 44 24 10 10       	addl   $0x10,0x10(%esp)
59000b:	ff 4c 24 08          	decl   0x8(%esp)
59000f:	75 87                	jne    0x58ff98
590011:	83 c4 14             	add    $0x14,%esp
590014:	5d                   	pop    %ebp
590015:	5f                   	pop    %edi
590016:	5e                   	pop    %esi
590017:	5b                   	pop    %ebx
590018:	c3                   	ret
590019:	8d 40 00             	lea    0x0(%eax),%eax
59001c:	53                   	push   %ebx
59001d:	56                   	push   %esi
59001e:	57                   	push   %edi
59001f:	55                   	push   %ebp
590020:	83 c4 e4             	add    $0xffffffe4,%esp
590023:	89 14 24             	mov    %edx,(%esp)
590026:	8b d8                	mov    %eax,%ebx
590028:	c7 44 24 10 ff ff ff 	movl   $0xffffffff,0x10(%esp)
59002f:	ff
590030:	8b 04 24             	mov    (%esp),%eax
590033:	03 c1                	add    %ecx,%eax
590035:	83 e8 04             	sub    $0x4,%eax
590038:	99                   	cltd
590039:	52                   	push   %edx
59003a:	50                   	push   %eax
59003b:	8b 43 04             	mov    0x4(%ebx),%eax
59003e:	e8 95 e6 e8 ff       	call   0x41e6d8
590043:	8b 53 04             	mov    0x4(%ebx),%edx
590046:	8b c3                	mov    %ebx,%eax
590048:	e8 5f 8b ff ff       	call   0x588bac
59004d:	8b c8                	mov    %eax,%ecx
59004f:	03 0c 24             	add    (%esp),%ecx
590052:	8b c1                	mov    %ecx,%eax
590054:	99                   	cltd
590055:	52                   	push   %edx
590056:	50                   	push   %eax
590057:	8b 43 04             	mov    0x4(%ebx),%eax
59005a:	e8 79 e6 e8 ff       	call   0x41e6d8
59005f:	8b 53 04             	mov    0x4(%ebx),%edx
590062:	8b c3                	mov    %ebx,%eax
590064:	e8 eb 8a ff ff       	call   0x588b54
590069:	0f b7 c0             	movzwl %ax,%eax
59006c:	89 44 24 04          	mov    %eax,0x4(%esp)
590070:	8b 44 24 04          	mov    0x4(%esp),%eax
590074:	48                   	dec    %eax
590075:	85 c0                	test   %eax,%eax
590077:	0f 8c bc 04 00 00    	jl     0x590539
59007d:	40                   	inc    %eax
59007e:	89 44 24 14          	mov    %eax,0x14(%esp)
590082:	8b 53 04             	mov    0x4(%ebx),%edx
590085:	8b c3                	mov    %ebx,%eax
590087:	e8 c8 8a ff ff       	call   0x588b54
59008c:	0f b7 f0             	movzwl %ax,%esi
59008f:	8b 53 04             	mov    0x4(%ebx),%edx
590092:	8b c3                	mov    %ebx,%eax
590094:	e8 13 8b ff ff       	call   0x588bac
590099:	89 44 24 08          	mov    %eax,0x8(%esp)
59009d:	8b 53 04             	mov    0x4(%ebx),%edx
5900a0:	8b c3                	mov    %ebx,%eax
5900a2:	e8 05 8b ff ff       	call   0x588bac
5900a7:	8b 3c 24             	mov    (%esp),%edi
5900aa:	03 f8                	add    %eax,%edi
5900ac:	8b 43 04             	mov    0x4(%ebx),%eax
5900af:	e8 08 89 ff ff       	call   0x5889bc
5900b4:	89 44 24 0c          	mov    %eax,0xc(%esp)
5900b8:	81 fe 0a 08 00 00    	cmp    $0x80a,%esi
5900be:	75 56                	jne    0x590116
5900c0:	8b c7                	mov    %edi,%eax
5900c2:	99                   	cltd
5900c3:	52                   	push   %edx
5900c4:	50                   	push   %eax
5900c5:	8b 43 04             	mov    0x4(%ebx),%eax
5900c8:	e8 0b e6 e8 ff       	call   0x41e6d8
5900cd:	8d 53 0a             	lea    0xa(%ebx),%edx
5900d0:	8b 43 04             	mov    0x4(%ebx),%eax
5900d3:	b9 40 00 00 00       	mov    $0x40,%ecx
5900d8:	8b 28                	mov    (%eax),%ebp
5900da:	ff 55 08             	call   *0x8(%ebp)
5900dd:	8d 43 0a             	lea    0xa(%ebx),%eax
5900e0:	e8 0b 9d e7 ff       	call   0x409df0
5900e5:	33 d2                	xor    %edx,%edx
5900e7:	52                   	push   %edx
5900e8:	50                   	push   %eax
5900e9:	8b c7                	mov    %edi,%eax
5900eb:	99                   	cltd
5900ec:	03 04 24             	add    (%esp),%eax
5900ef:	13 54 24 04          	adc    0x4(%esp),%edx
5900f3:	83 c4 08             	add    $0x8,%esp
5900f6:	83 c0 01             	add    $0x1,%eax
5900f9:	83 d2 00             	adc    $0x0,%edx
5900fc:	52                   	push   %edx
5900fd:	50                   	push   %eax
5900fe:	8b 43 04             	mov    0x4(%ebx),%eax
590101:	e8 d2 e5 e8 ff       	call   0x41e6d8
590106:	8d 53 4a             	lea    0x4a(%ebx),%edx
590109:	8b 43 04             	mov    0x4(%ebx),%eax
59010c:	b9 40 00 00 00       	mov    $0x40,%ecx
590111:	8b 28                	mov    (%eax),%ebp
590113:	ff 55 08             	call   *0x8(%ebp)
590116:	81 fe 2a 10 00 00    	cmp    $0x102a,%esi
59011c:	75 4c                	jne    0x59016a
59011e:	8d 47 0e             	lea    0xe(%edi),%eax
590121:	99                   	cltd
590122:	52                   	push   %edx
590123:	50                   	push   %eax
590124:	8b 43 04             	mov    0x4(%ebx),%eax
590127:	e8 ac e5 e8 ff       	call   0x41e6d8
59012c:	8b 53 04             	mov    0x4(%ebx),%edx
59012f:	8b c3                	mov    %ebx,%eax
590131:	e8 1e 8a ff ff       	call   0x588b54
590136:	0f b7 c0             	movzwl %ax,%eax
590139:	89 44 24 10          	mov    %eax,0x10(%esp)
59013d:	ba 64 05 59 00       	mov    $0x590564,%edx
590142:	8d 43 4a             	lea    0x4a(%ebx),%eax
590145:	e8 62 88 ff ff       	call   0x5889ac
59014a:	85 c0                	test   %eax,%eax
59014c:	74 11                	je     0x59015f
59014e:	ba 7c 05 59 00       	mov    $0x59057c,%edx
590153:	8d 43 4a             	lea    0x4a(%ebx),%eax
590156:	e8 51 88 ff ff       	call   0x5889ac
59015b:	85 c0                	test   %eax,%eax
59015d:	75 0b                	jne    0x59016a
59015f:	83 7c 24 10 06       	cmpl   $0x6,0x10(%esp)
590164:	75 04                	jne    0x59016a
590166:	ff 44 24 10          	incl   0x10(%esp)
59016a:	81 fe 2c 10 00 00    	cmp    $0x102c,%esi
590170:	0f 85 bf 00 00 00    	jne    0x590235
590176:	ba 94 05 59 00       	mov    $0x590594,%edx
59017b:	8d 43 4a             	lea    0x4a(%ebx),%eax
59017e:	e8 29 88 ff ff       	call   0x5889ac
590183:	85 c0                	test   %eax,%eax
590185:	74 11                	je     0x590198
590187:	ba a8 05 59 00       	mov    $0x5905a8,%edx
59018c:	8d 43 4a             	lea    0x4a(%ebx),%eax
59018f:	e8 18 88 ff ff       	call   0x5889ac
590194:	85 c0                	test   %eax,%eax
590196:	75 60                	jne    0x5901f8
590198:	8d 47 78             	lea    0x78(%edi),%eax
59019b:	99                   	cltd
59019c:	52                   	push   %edx
59019d:	50                   	push   %eax
59019e:	8b 43 04             	mov    0x4(%ebx),%eax
5901a1:	e8 32 e5 e8 ff       	call   0x41e6d8
5901a6:	8b 53 04             	mov    0x4(%ebx),%edx
5901a9:	8b c3                	mov    %ebx,%eax
5901ab:	e8 a4 89 ff ff       	call   0x588b54
5901b0:	c1 e0 04             	shl    $0x4,%eax
5901b3:	66 89 83 42 01 00 00 	mov    %ax,0x142(%ebx)
5901ba:	8b 53 04             	mov    0x4(%ebx),%edx
5901bd:	8b c3                	mov    %ebx,%eax
5901bf:	e8 90 89 ff ff       	call   0x588b54
5901c4:	c1 e0 04             	shl    $0x4,%eax
5901c7:	66 89 83 40 01 00 00 	mov    %ax,0x140(%ebx)
5901ce:	8b 53 04             	mov    0x4(%ebx),%edx
5901d1:	8b c3                	mov    %ebx,%eax
5901d3:	e8 7c 89 ff ff       	call   0x588b54
5901d8:	c1 e0 04             	shl    $0x4,%eax
5901db:	66 89 83 50 01 00 00 	mov    %ax,0x150(%ebx)
5901e2:	8b 53 04             	mov    0x4(%ebx),%edx
5901e5:	8b c3                	mov    %ebx,%eax
5901e7:	e8 68 89 ff ff       	call   0x588b54
5901ec:	c1 e0 04             	shl    $0x4,%eax
5901ef:	66 89 83 52 01 00 00 	mov    %ax,0x152(%ebx)
5901f6:	eb 3d                	jmp    0x590235
5901f8:	8d 47 64             	lea    0x64(%edi),%eax
5901fb:	99                   	cltd
5901fc:	52                   	push   %edx
5901fd:	50                   	push   %eax
5901fe:	8b 43 04             	mov    0x4(%ebx),%eax
590201:	e8 d2 e4 e8 ff       	call   0x41e6d8
590206:	83 7c 24 10 06       	cmpl   $0x6,0x10(%esp)
59020b:	75 18                	jne    0x590225
59020d:	8b 53 04             	mov    0x4(%ebx),%edx
590210:	8b c3                	mov    %ebx,%eax
590212:	e8 95 89 ff ff       	call   0x588bac
590217:	85 c0                	test   %eax,%eax
590219:	75 0a                	jne    0x590225
59021b:	c7 44 24 10 0f 00 00 	movl   $0xf,0x10(%esp)
590222:	00
590223:	eb 10                	jmp    0x590235
590225:	8d 47 64             	lea    0x64(%edi),%eax
590228:	99                   	cltd
590229:	52                   	push   %edx
59022a:	50                   	push   %eax
59022b:	8b 43 04             	mov    0x4(%ebx),%eax
59022e:	e8 a5 e4 e8 ff       	call   0x41e6d8
590233:	eb 2c                	jmp    0x590261
590235:	83 fe 32             	cmp    $0x32,%esi
590238:	0f 85 f8 00 00 00    	jne    0x590336
59023e:	ba c4 05 59 00       	mov    $0x5905c4,%edx
590243:	8d 43 4a             	lea    0x4a(%ebx),%eax
590246:	e8 61 87 ff ff       	call   0x5889ac
59024b:	85 c0                	test   %eax,%eax
59024d:	0f 85 a1 00 00 00    	jne    0x5902f4
590253:	8d 47 48             	lea    0x48(%edi),%eax
590256:	99                   	cltd
590257:	52                   	push   %edx
590258:	50                   	push   %eax
590259:	8b 43 04             	mov    0x4(%ebx),%eax
59025c:	e8 77 e4 e8 ff       	call   0x41e6d8
590261:	8b 53 04             	mov    0x4(%ebx),%edx
590264:	8b c3                	mov    %ebx,%eax
590266:	e8 e9 88 ff ff       	call   0x588b54
59026b:	0f b7 c0             	movzwl %ax,%eax
59026e:	89 44 24 18          	mov    %eax,0x18(%esp)
590272:	db 44 24 18          	fildl  0x18(%esp)
590276:	d9 9b ec 01 00 00    	fstps  0x1ec(%ebx)
59027c:	9b d9 83 ec 01 00 00 	flds   0x1ec(%ebx)
590283:	d8 1d d4 05 59 00    	fcomps 0x5905d4
590289:	df e0                	fnstsw %ax
59028b:	9e                   	sahf
59028c:	74 22                	je     0x5902b0
59028e:	8b 53 04             	mov    0x4(%ebx),%edx
590291:	8b c3                	mov    %ebx,%eax
590293:	e8 bc 88 ff ff       	call   0x588b54
590298:	0f b7 c0             	movzwl %ax,%eax
59029b:	89 44 24 18          	mov    %eax,0x18(%esp)
59029f:	db 44 24 18          	fildl  0x18(%esp)
5902a3:	d8 b3 ec 01 00 00    	fdivs  0x1ec(%ebx)
5902a9:	d9 9b ec 01 00 00    	fstps  0x1ec(%ebx)
5902af:	9b                   	fwait
5902b0:	8b 53 04             	mov    0x4(%ebx),%edx
5902b3:	8b c3                	mov    %ebx,%eax
5902b5:	e8 9a 88 ff ff       	call   0x588b54
5902ba:	0f b7 c0             	movzwl %ax,%eax
5902bd:	89 44 24 18          	mov    %eax,0x18(%esp)
5902c1:	db 44 24 18          	fildl  0x18(%esp)
5902c5:	d9 9b f0 01 00 00    	fstps  0x1f0(%ebx)
5902cb:	9b                   	fwait
5902cc:	8b 53 04             	mov    0x4(%ebx),%edx
5902cf:	8b c3                	mov    %ebx,%eax
5902d1:	e8 7e 88 ff ff       	call   0x588b54
5902d6:	0f b7 c0             	movzwl %ax,%eax
5902d9:	85 c0                	test   %eax,%eax
5902db:	74 59                	je     0x590336
5902dd:	89 44 24 18          	mov    %eax,0x18(%esp)
5902e1:	db 44 24 18          	fildl  0x18(%esp)
5902e5:	d8 bb f0 01 00 00    	fdivrs 0x1f0(%ebx)
5902eb:	d9 9b f0 01 00 00    	fstps  0x1f0(%ebx)
5902f1:	9b                   	fwait
5902f2:	eb 42                	jmp    0x590336
5902f4:	83 7c 24 10 06       	cmpl   $0x6,0x10(%esp)
5902f9:	0f 9c c0             	setl   %al
5902fc:	8b 54 24 10          	mov    0x10(%esp),%edx
590300:	8b 14 95 98 48 6a 00 	mov    0x6a4898(,%edx,4),%edx
590307:	c1 e2 03             	shl    $0x3,%edx
59030a:	33 c9                	xor    %ecx,%ecx
59030c:	e8 f7 45 07 00       	call   0x604908
590311:	8d 57 50             	lea    0x50(%edi),%edx
590314:	03 c2                	add    %edx,%eax
590316:	99                   	cltd
590317:	52                   	push   %edx
590318:	50                   	push   %eax
590319:	8b 43 04             	mov    0x4(%ebx),%eax
59031c:	e8 b7 e3 e8 ff       	call   0x41e6d8
590321:	d9 83 ec 01 00 00    	flds   0x1ec(%ebx)