58fcd2:	8d 54 24 1c          	lea    0x1c(%esp),%edx
58fcd6:	8b 43 04             	mov    0x4(%ebx),%eax
58fcd9:	b9 40 00 00 00       	mov    $0x40,%ecx
58fcde:	8b 30                	mov    (%eax),%esi
58fce0:	ff 56 08             	call   *0x8(%esi)
58fce3:	ba cc fe 58 00       	mov    $0x58fecc,%edx
58fce8:	8d 44 24 1c          	lea    0x1c(%esp),%eax
58fcec:	b9 05 00 00 00       	mov    $0x5,%ecx
58fcf1:	e8 be 8c ff ff       	call   0x5889b4
58fcf6:	85 c0                	test   %eax,%eax
58fcf8:	0f 85 ca 00 00 00    	jne    0x58fdc8
58fcfe:	c6 43 0a 00          	movb   $0x0,0xa(%ebx)
58fd02:	e9 c1 00 00 00       	jmp    0x58fdc8
58fd07:	8b c3                	mov    %ebx,%eax
58fd09:	e8 4a fc ff ff       	call   0x58f958
58fd0e:	e9 b5 00 00 00       	jmp    0x58fdc8
58fd13:	ba d4 fe 58 00       	mov    $0x58fed4,%edx
58fd18:	8d 43 0a             	lea    0xa(%ebx),%eax
58fd1b:	e8 0c a1 e7 ff       	call   0x409e2c
58fd20:	8b 44 24 0c          	mov    0xc(%esp),%eax
58fd24:	89 83 ec 00 00 00    	mov    %eax,0xec(%ebx)
58fd2a:	8b 44 24 10          	mov    0x10(%esp),%eax
58fd2e:	89 83 e8 00 00 00    	mov    %eax,0xe8(%ebx)
58fd34:	4f                   	dec    %edi
58fd35:	7e 12                	jle    0x58fd49
58fd37:	8b 53 04             	mov    0x4(%ebx),%edx
58fd3a:	8b c3                	mov    %ebx,%eax
58fd3c:	e8 6b 8e ff ff       	call   0x588bac
58fd41:	89 83 d4 00 00 00    	mov    %eax,0xd4(%ebx)
58fd47:	eb 7f                	jmp    0x58fdc8
58fd49:	89 b3 d4 00 00 00    	mov    %esi,0xd4(%ebx)
58fd4f:	eb 77                	jmp    0x58fdc8
58fd51:	83 ff 02             	cmp    $0x2,%edi
58fd54:	7e 16                	jle    0x58fd6c
58fd56:	ba dc fe 58 00       	mov    $0x58fedc,%edx
58fd5b:	8d 43 0a             	lea    0xa(%ebx),%eax
58fd5e:	e8 49 8c ff ff       	call   0x5889ac
58fd63:	85 c0                	test   %eax,%eax
58fd65:	75 05                	jne    0x58fd6c
58fd67:	bf 02 00 00 00       	mov    $0x2,%edi
58fd6c:	83 ff 01             	cmp    $0x1,%edi
58fd6f:	7e 41                	jle    0x58fdb2
58fd71:	85 ff                	test   %edi,%edi
58fd73:	74 53                	je     0x58fdc8
58fd75:	4f                   	dec    %edi
58fd76:	8b 04 24             	mov    (%esp),%eax
58fd79:	03 c6                	add    %esi,%eax
58fd7b:	99                   	cltd
58fd7c:	52                   	push   %edx
58fd7d:	50                   	push   %eax
58fd7e:	8b 43 04             	mov    0x4(%ebx),%eax
58fd81:	e8 52 e9 e8 ff       	call   0x41e6d8
58fd86:	8b 6b 04             	mov    0x4(%ebx),%ebp
58fd89:	8b d5                	mov    %ebp,%edx
58fd8b:	8b c3                	mov    %ebx,%eax
58fd8d:	e8 1a 8e ff ff       	call   0x588bac
58fd92:	03 04 24             	add    (%esp),%eax
58fd95:	99                   	cltd
58fd96:	52                   	push   %edx
58fd97:	50                   	push   %eax
58fd98:	8b c5                	mov    %ebp,%eax
58fd9a:	e8 39 e9 e8 ff       	call   0x41e6d8
58fd9f:	8b c3                	mov    %ebx,%eax
58fda1:	8b 14 24             	mov    (%esp),%edx
58fda4:	e8 ff f5 ff ff       	call   0x58f3a8
58fda9:	83 c6 04             	add    $0x4,%esi
58fdac:	85 ff                	test   %edi,%edi
58fdae:	75 c5                	jne    0x58fd75
58fdb0:	eb 16                	jmp    0x58fdc8
58fdb2:	8b c3                	mov    %ebx,%eax
58fdb4:	8b 14 24             	mov    (%esp),%edx
58fdb7:	e8 ec f5 ff ff       	call   0x58f3a8
58fdbc:	eb 0a                	jmp    0x58fdc8
58fdbe:	8b c3                	mov    %ebx,%eax
58fdc0:	8b 14 24             	mov    (%esp),%edx
58fdc3:	e8 a8 fb ff ff       	call   0x58f970
58fdc8:	8b 44 24 08          	mov    0x8(%esp),%eax
58fdcc:	99                   	cltd
58fdcd:	52                   	push   %edx
58fdce:	50                   	push   %eax
58fdcf:	8b 43 04             	mov    0x4(%ebx),%eax
58fdd2:	e8 01 e9 e8 ff       	call   0x41e6d8
58fdd7:	83 7c 24 04 00       	cmpl   $0x0,0x4(%esp)
58fddc:	0f 85 01 fd ff ff    	jne    0x58fae3
58fde2:	8b 53 04             	mov    0x4(%ebx),%edx
58fde5:	8b c3                	mov    %ebx,%eax
58fde7:	e8 c0 8d ff ff       	call   0x588bac
58fdec:	8b f0                	mov    %eax,%esi
58fdee:	85 f6                	test   %esi,%esi
58fdf0:	74 2c                	je     0x58fe1e
58fdf2:	8b 43 04             	mov    0x4(%ebx),%eax
58fdf5:	e8 f2 e8 e8 ff       	call   0x41e6ec
58fdfa:	52                   	push   %edx
58fdfb:	50                   	push   %eax
58fdfc:	8b 44 24 08          	mov    0x8(%esp),%eax
58fe00:	03 c6                	add    %esi,%eax
58fe02:	99                   	cltd
58fe03:	3b 54 24 04          	cmp    0x4(%esp),%edx
58fe07:	75 0d                	jne    0x58fe16
58fe09:	3b 04 24             	cmp    (%esp),%eax
58fe0c:	5a                   	pop    %edx
58fe0d:	58                   	pop    %eax
58fe0e:	0f 82 a3 fc ff ff    	jb     0x58fab7
58fe14:	eb 08                	jmp    0x58fe1e
58fe16:	5a                   	pop    %edx
58fe17:	58                   	pop    %eax
58fe18:	0f 8c 99 fc ff ff    	jl     0x58fab7
58fe1e:	ba e4 fe 58 00       	mov    $0x58fee4,%edx
58fe23:	8d 43 0a             	lea    0xa(%ebx),%eax
58fe26:	b9 07 00 00 00       	mov    $0x7,%ecx
58fe2b:	e8 84 8b ff ff       	call   0x5889b4
58fe30:	85 c0                	test   %eax,%eax
58fe32:	75 29                	jne    0x58fe5d
58fe34:	c6 43 11 00          	movb   $0x0,0x11(%ebx)
58fe38:	8b 44 24 0c          	mov    0xc(%esp),%eax
58fe3c:	89 83 ec 00 00 00    	mov    %eax,0xec(%ebx)
58fe42:	8b 44 24 10          	mov    0x10(%esp),%eax
58fe46:	f7 d8                	neg    %eax
58fe48:	83 e0 fe             	and    $0xfffffffe,%eax
58fe4b:	f7 d8                	neg    %eax
58fe4d:	89 83 e8 00 00 00    	mov    %eax,0xe8(%ebx)
58fe53:	8b 44 24 18          	mov    0x18(%esp),%eax
58fe57:	89 83 d4 00 00 00    	mov    %eax,0xd4(%ebx)
58fe5d:	ba ec fe 58 00       	mov    $0x58feec,%edx
58fe62:	8d 43 0a             	lea    0xa(%ebx),%eax
58fe65:	e8 42 8b ff ff       	call   0x5889ac
58fe6a:	85 c0                	test   %eax,%eax
58fe6c:	75 1b                	jne    0x58fe89
58fe6e:	ba f4 fe 58 00       	mov    $0x58fef4,%edx
58fe73:	8d 43 4a             	lea    0x4a(%ebx),%eax
58fe76:	e8 31 8b ff ff       	call   0x5889ac
58fe7b:	85 c0                	test   %eax,%eax
58fe7d:	74 0a                	je     0x58fe89
58fe7f:	8b 44 24 14          	mov    0x14(%esp),%eax
58fe83:	89 83 d4 00 00 00    	mov    %eax,0xd4(%ebx)
58fe89:	80 7b 0a 00          	cmpb   $0x0,0xa(%ebx)
58fe8d:	75 2e                	jne    0x58febd
58fe8f:	81 7c 24 0c a8 02 00 	cmpl   $0x2a8,0xc(%esp)
58fe96:	00
58fe97:	75 24                	jne    0x58febd
58fe99:	81 7c 24 10 a8 02 00 	cmpl   $0x2a8,0x10(%esp)
58fea0:	00
58fea1:	75 1a                	jne    0x58febd
58fea3:	ba 00 ff 58 00       	mov    $0x58ff00,%edx
58fea8:	8d 43 0a             	lea    0xa(%ebx),%eax
58feab:	e8 7c 9f e7 ff       	call   0x409e2c
58feb0:	ba 08 ff 58 00       	mov    $0x58ff08,%edx
58feb5:	8d 43 4a             	lea    0x4a(%ebx),%eax
58feb8:	e8 6f 9f e7 ff       	call   0x409e2c
58febd:	83 c4 60             	add    $0x60,%esp
58fec0:	5d                   	pop    %ebp
58fec1:	5f                   	pop    %edi
58fec2:	5e                   	pop    %esi
58fec3:	5b                   	pop    %ebx
58fec4:	c3                   	ret
58fec5:	00 00                	add    %al,(%eax)
58fec7:	00 00                	add    %al,(%eax)
58fec9:	00 80 43 41 64 6f    	add    %al,0x6f644143(%eax)
58fecf:	62 65 00             	bound  %esp,0x0(%ebp)
58fed2:	00 00                	add    %al,(%eax)
58fed4:	4c                   	dec    %esp
58fed5:	65 61                	gs popa
58fed7:	66 00 00             	data16 add %al,(%eax)
58feda:	00 00                	add    %al,(%eax)
58fedc:	4b                   	dec    %ebx
58fedd:	6f                   	outsl  %ds:(%esi),(%dx)
58fede:	64 61                	fs popa
58fee0:	6b 00 00             	imul   $0x0,(%eax),%eax
58fee3:	00 4f 4c             	add    %cl,0x4c(%edi)
58fee6:	59                   	pop    %ecx
58fee7:	4d                   	dec    %ebp
58fee8:	50                   	push   %eax
58fee9:	55                   	push   %ebp
58feea:	53                   	push   %ebx
58feeb:	00 43 61             	add    %al,0x61(%ebx)
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