586a31:	50                   	push   %eax
586a32:	8d 45 f4             	lea    -0xc(%ebp),%eax
586a35:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
586a3b:	8b f9                	mov    %ecx,%edi
586a3d:	8b 5d 08             	mov    0x8(%ebp),%ebx
586a40:	8b cb                	mov    %ebx,%ecx
586a42:	e8 d9 b6 ff ff       	call   0x582120
586a47:	83 f8 07             	cmp    $0x7,%eax
586a4a:	0f 87 89 02 00 00    	ja     0x586cd9
586a50:	ff 24 85 fc 6c 58 00 	jmp    *0x586cfc(,%eax,4)
586a57:	80 7f 1d 00          	cmpb   $0x0,0x1d(%edi)
586a5b:	0f 85 78 02 00 00    	jne    0x586cd9
586a61:	6a 04                	push   $0x4
586a63:	68 5c 37 6c 00       	push   $0x6c375c
586a68:	8d 4f 04             	lea    0x4(%edi),%ecx
586a6b:	e8 50 e6 eb ff       	call   0x4450c0
586a70:	e9 64 02 00 00       	jmp    0x586cd9
586a75:	8b cb                	mov    %ebx,%ecx
586a77:	e8 34 a2 ff ff       	call   0x580cb0
586a7c:	52                   	push   %edx
586a7d:	50                   	push   %eax
586a7e:	8d 45 d8             	lea    -0x28(%ebp),%eax
586a81:	50                   	push   %eax
586a82:	e8 99 fd ff ff       	call   0x586820
586a87:	83 c4 0c             	add    $0xc,%esp
586a8a:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
586a91:	83 78 14 10          	cmpl   $0x10,0x14(%eax)
586a95:	8b c8                	mov    %eax,%ecx
586a97:	72 02                	jb     0x586a9b
586a99:	8b 08                	mov    (%eax),%ecx
586a9b:	ff 70 10             	push   0x10(%eax)
586a9e:	51                   	push   %ecx
586a9f:	8d 4f 04             	lea    0x4(%edi),%ecx
586aa2:	e8 19 e6 eb ff       	call   0x4450c0
586aa7:	8d 4d d8             	lea    -0x28(%ebp),%ecx
586aaa:	e8 01 1c eb ff       	call   0x4386b0
586aaf:	e9 25 02 00 00       	jmp    0x586cd9
586ab4:	8b cb                	mov    %ebx,%ecx
586ab6:	e8 95 a3 ff ff       	call   0x580e50
586abb:	52                   	push   %edx
586abc:	50                   	push   %eax
586abd:	8d 45 d8             	lea    -0x28(%ebp),%eax
586ac0:	50                   	push   %eax
586ac1:	e8 2a fe ff ff       	call   0x5868f0
586ac6:	83 c4 0c             	add    $0xc,%esp
586ac9:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
586ad0:	eb bf                	jmp    0x586a91
586ad2:	8b cb                	mov    %ebx,%ecx
586ad4:	e8 c7 a0 ff ff       	call   0x580ba0
586ad9:	6a 11                	push   $0x11
586adb:	6a 00                	push   $0x0
586add:	83 ec 08             	sub    $0x8,%esp
586ae0:	8d 45 d8             	lea    -0x28(%ebp),%eax
586ae3:	dd 5d b4             	fstpl  -0x4c(%ebp)
586ae6:	f2 0f 10 45 b4       	movsd  -0x4c(%ebp),%xmm0
586aeb:	f2 0f 11 04 24       	movsd  %xmm0,(%esp)
586af0:	50                   	push   %eax
586af1:	e8 9a fb ff ff       	call   0x586690
586af6:	83 c4 14             	add    $0x14,%esp
586af9:	83 7d ec 10          	cmpl   $0x10,-0x14(%ebp)
586afd:	8d 45 d8             	lea    -0x28(%ebp),%eax
586b00:	ff 75 e8             	push   -0x18(%ebp)
586b03:	0f 43 45 d8          	cmovae -0x28(%ebp),%eax
586b07:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
586b0e:	50                   	push   %eax
586b0f:	eb 8e                	jmp    0x586a9f
586b11:	8d 45 bc             	lea    -0x44(%ebp),%eax
586b14:	8b cb                	mov    %ebx,%ecx
586b16:	50                   	push   %eax
586b17:	8d 45 b8             	lea    -0x48(%ebp),%eax
586b1a:	50                   	push   %eax
586b1b:	e8 b0 ac ff ff       	call   0x5817d0
586b20:	84 c0                	test   %al,%al
586b22:	0f 84 b1 01 00 00    	je     0x586cd9
586b28:	8b 45 bc             	mov    -0x44(%ebp),%eax
586b2b:	8b 4d b8             	mov    -0x48(%ebp),%ecx
586b2e:	2b c1                	sub    %ecx,%eax
586b30:	50                   	push   %eax
586b31:	51                   	push   %ecx
586b32:	8d 45 d8             	lea    -0x28(%ebp),%eax
586b35:	50                   	push   %eax
586b36:	e8 d5 f5 ff ff       	call   0x586110
586b3b:	83 c4 0c             	add    $0xc,%esp
586b3e:	50                   	push   %eax
586b3f:	8d 4f 04             	lea    0x4(%edi),%ecx
586b42:	c7 45 fc 03 00 00 00 	movl   $0x3,-0x4(%ebp)
586b49:	e8 b2 f4 ff ff       	call   0x586000
586b4e:	8d 4d d8             	lea    -0x28(%ebp),%ecx
586b51:	e8 5a 1b eb ff       	call   0x4386b0
586b56:	e9 7e 01 00 00       	jmp    0x586cd9
586b5b:	8b cb                	mov    %ebx,%ecx
586b5d:	e8 ae 9e ff ff       	call   0x580a10
586b62:	0f b6 c0             	movzbl %al,%eax
586b65:	50                   	push   %eax
586b66:	8d 45 d8             	lea    -0x28(%ebp),%eax
586b69:	50                   	push   %eax
586b6a:	e8 01 fe ff ff       	call   0x586970
586b6f:	83 c4 08             	add    $0x8,%esp
586b72:	c7 45 fc 04 00 00 00 	movl   $0x4,-0x4(%ebp)
586b79:	e9 13 ff ff ff       	jmp    0x586a91
586b7e:	6a 5b                	push   $0x5b
586b80:	8d 4f 04             	lea    0x4(%edi),%ecx
586b83:	e8 28 35 f0 ff       	call   0x48a0b0
586b88:	8b cb                	mov    %ebx,%ecx
586b8a:	e8 f1 b3 ff ff       	call   0x581f80
586b8f:	33 f6                	xor    %esi,%esi
586b91:	89 45 b8             	mov    %eax,-0x48(%ebp)
586b94:	85 c0                	test   %eax,%eax
586b96:	74 24                	je     0x586bbc
586b98:	85 f6                	test   %esi,%esi
586b9a:	74 0a                	je     0x586ba6
586b9c:	6a 2c                	push   $0x2c
586b9e:	8d 4f 04             	lea    0x4(%edi),%ecx
586ba1:	e8 0a 35 f0 ff       	call   0x48a0b0
586ba6:	56                   	push   %esi
586ba7:	8b cb                	mov    %ebx,%ecx
586ba9:	e8 52 9a ff ff       	call   0x580600
586bae:	50                   	push   %eax
586baf:	8b cf                	mov    %edi,%ecx
586bb1:	e8 5a fe ff ff       	call   0x586a10
586bb6:	46                   	inc    %esi
586bb7:	3b 75 b8             	cmp    -0x48(%ebp),%esi
586bba:	72 dc                	jb     0x586b98
586bbc:	6a 5d                	push   $0x5d
586bbe:	8d 4f 04             	lea    0x4(%edi),%ecx
586bc1:	e8 ea 34 f0 ff       	call   0x48a0b0
586bc6:	e9 0e 01 00 00       	jmp    0x586cd9
586bcb:	8d 45 a8             	lea    -0x58(%ebp),%eax
586bce:	8b cb                	mov    %ebx,%ecx
586bd0:	50                   	push   %eax
586bd1:	e8 0a aa ff ff       	call   0x5815e0
586bd6:	8d 47 04             	lea    0x4(%edi),%eax
586bd9:	c7 45 fc 05 00 00 00 	movl   $0x5,-0x4(%ebp)
586be0:	6a 7b                	push   $0x7b
586be2:	8b c8                	mov    %eax,%ecx
586be4:	89 45 bc             	mov    %eax,-0x44(%ebp)
586be7:	e8 c4 34 f0 ff       	call   0x48a0b0
586bec:	8b 45 a8             	mov    -0x58(%ebp),%eax
586bef:	8b f0                	mov    %eax,%esi
586bf1:	3b 75 ac             	cmp    -0x54(%ebp),%esi
586bf4:	0f 84 cd 00 00 00    	je     0x586cc7
586bfa:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
586c00:	3b f0                	cmp    %eax,%esi
586c02:	74 0a                	je     0x586c0e
586c04:	6a 2c                	push   $0x2c
586c06:	8d 4f 04             	lea    0x4(%edi),%ecx
586c09:	e8 a2 34 f0 ff       	call   0x48a0b0
586c0e:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
586c12:	8b c6                	mov    %esi,%eax
586c14:	72 02                	jb     0x586c18
586c16:	8b 06                	mov    (%esi),%eax
586c18:	ff 76 10             	push   0x10(%esi)
586c1b:	50                   	push   %eax
586c1c:	8d 45 c0             	lea    -0x40(%ebp),%eax
586c1f:	50                   	push   %eax
586c20:	e8 eb f4 ff ff       	call   0x586110
586c25:	83 c4 0c             	add    $0xc,%esp
586c28:	83 78 14 10          	cmpl   $0x10,0x14(%eax)
586c2c:	8b c8                	mov    %eax,%ecx
586c2e:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
586c32:	72 02                	jb     0x586c36
586c34:	8b 08                	mov    (%eax),%ecx
586c36:	ff 70 10             	push   0x10(%eax)
586c39:	51                   	push   %ecx
586c3a:	8d 4f 04             	lea    0x4(%edi),%ecx
586c3d:	e8 7e e4 eb ff       	call   0x4450c0
586c42:	8b 55 d4             	mov    -0x2c(%ebp),%edx
586c45:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
586c49:	83 fa 10             	cmp    $0x10,%edx
586c4c:	72 2c                	jb     0x586c7a
586c4e:	8b 4d c0             	mov    -0x40(%ebp),%ecx
586c51:	42                   	inc    %edx
586c52:	8b c1                	mov    %ecx,%eax
586c54:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
586c5a:	72 14                	jb     0x586c70
586c5c:	8b 49 fc             	mov    -0x4(%ecx),%ecx
586c5f:	83 c2 23             	add    $0x23,%edx
586c62:	2b c1                	sub    %ecx,%eax
586c64:	83 c0 fc             	add    $0xfffffffc,%eax
586c67:	83 f8 1f             	cmp    $0x1f,%eax
586c6a:	0f 87 87 00 00 00    	ja     0x586cf7
586c70:	52                   	push   %edx
586c71:	51                   	push   %ecx
586c72:	e8 fb a3 05 00       	call   0x5e1072
586c77:	83 c4 08             	add    $0x8,%esp
586c7a:	80 7f 1c 00          	cmpb   $0x0,0x1c(%edi)
586c7e:	b8 d8 f1 68 00       	mov    $0x68f1d8,%eax
586c83:	ba a0 c3 68 00       	mov    $0x68c3a0,%edx
586c88:	0f 44 d0             	cmove  %eax,%edx
586c8b:	8b ca                	mov    %edx,%ecx
586c8d:	8d 41 01             	lea    0x1(%ecx),%eax
586c90:	89 45 b8             	mov    %eax,-0x48(%ebp)
586c93:	8a 01                	mov    (%ecx),%al
586c95:	41                   	inc    %ecx
586c96:	84 c0                	test   %al,%al
586c98:	75 f9                	jne    0x586c93
586c9a:	2b 4d b8             	sub    -0x48(%ebp),%ecx
586c9d:	51                   	push   %ecx
586c9e:	52                   	push   %edx
586c9f:	8d 4f 04             	lea    0x4(%edi),%ecx
586ca2:	e8 19 e4 eb ff       	call   0x4450c0
586ca7:	56                   	push   %esi
586ca8:	8b cb                	mov    %ebx,%ecx
586caa:	e8 71 98 ff ff       	call   0x580520
586caf:	50                   	push   %eax
586cb0:	8b cf                	mov    %edi,%ecx
586cb2:	e8 59 fd ff ff       	call   0x586a10
586cb7:	83 c6 18             	add    $0x18,%esi
586cba:	3b 75 ac             	cmp    -0x54(%ebp),%esi
586cbd:	74 08                	je     0x586cc7
586cbf:	8b 45 a8             	mov    -0x58(%ebp),%eax
586cc2:	e9 39 ff ff ff       	jmp    0x586c00
586cc7:	8b 4d bc             	mov    -0x44(%ebp),%ecx
586cca:	6a 7d                	push   $0x7d
586ccc:	e8 df 33 f0 ff       	call   0x48a0b0
586cd1:	8d 4d a8             	lea    -0x58(%ebp),%ecx
586cd4:	e8 27 df eb ff       	call   0x444c00
586cd9:	8b 4d f4             	mov    -0xc(%ebp),%ecx
586cdc:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
586ce3:	59                   	pop    %ecx
586ce4:	5f                   	pop    %edi
586ce5:	5e                   	pop    %esi
586ce6:	5b                   	pop    %ebx
586ce7:	8b 4d f0             	mov    -0x10(%ebp),%ecx
586cea:	33 cd                	xor    %ebp,%ecx
586cec:	e8 e9 a7 05 00       	call   0x5e14da
586cf1:	8b e5                	mov    %ebp,%esp
586cf3:	5d                   	pop    %ebp
586cf4:	c2 04 00             	ret    $0x4
586cf7:	e8 33 62 06 00       	call   0x5ecf2f
586cfc:	57                   	push   %edi
586cfd:	6a 58                	push   $0x58
586cff:	00 75 6a             	add    %dh,0x6a(%ebp)
586d02:	58                   	pop    %eax
586d03:	00 b4 6a 58 00 d2 6a 	add    %dh,0x6ad20058(%edx,%ebp,2)
586d0a:	58                   	pop    %eax
586d0b:	00 11                	add    %dl,(%ecx)
586d0d:	6b 58 00 5b          	imul   $0x5b,0x0(%eax),%ebx
586d11:	6b 58 00 7e          	imul   $0x7e,0x0(%eax),%ebx
586d15:	6b 58 00 cb          	imul   $0xffffffcb,0x0(%eax),%ebx
586d19:	6b 58 00 cc          	imul   $0xffffffcc,0x0(%eax),%ebx
586d1d:	cc                   	int3
586d1e:	cc                   	int3
586d1f:	cc                   	int3
586d20:	55                   	push   %ebp
586d21:	8b ec                	mov    %esp,%ebp
586d23:	8d 45 10             	lea    0x10(%ebp),%eax
586d26:	50                   	push   %eax
586d27:	6a 00                	push   $0x0
586d29:	ff 75 0c             	push   0xc(%ebp)
586d2c:	6a ff                	push   $0xffffffff
586d2e:	ff 75 08             	push   0x8(%ebp)
586d31:	e8 8a 27 eb ff       	call   0x4394c0
586d36:	8b 08                	mov    (%eax),%ecx
586d38:	ff 70 04             	push   0x4(%eax)
586d3b:	83 c9 01             	or     $0x1,%ecx
586d3e:	51                   	push   %ecx
586d3f:	e8 5c af 06 00       	call   0x5f1ca0
586d44:	83 c9 ff             	or     $0xffffffff,%ecx
586d47:	83 c4 1c             	add    $0x1c,%esp
586d4a:	85 c0                	test   %eax,%eax
586d4c:	0f 48 c1             	cmovs  %ecx,%eax
586d4f:	5d                   	pop    %ebp
586d50:	c3                   	ret
586d51:	cc                   	int3
586d52:	cc                   	int3
586d53:	cc                   	int3
586d54:	cc                   	int3
586d55:	cc                   	int3
586d56:	cc                   	int3
586d57:	cc                   	int3
586d58:	cc                   	int3
586d59:	cc                   	int3
586d5a:	cc                   	int3
586d5b:	cc                   	int3
586d5c:	cc                   	int3
586d5d:	cc                   	int3
586d5e:	cc                   	int3
586d5f:	cc                   	int3
586d60:	b8 90 00 00 00       	mov    $0x90,%eax
586d65:	e8 86 a7 05 00       	call   0x5e14f0
586d6a:	a1 d4 89 72 00       	mov    0x7289d4,%eax
586d6f:	33 c4                	xor    %esp,%eax
586d71:	89 84 24 8c 00 00 00 	mov    %eax,0x8c(%esp)
586d78:	53                   	push   %ebx
586d79:	8b 9c 24 98 00 00 00 	mov    0x98(%esp),%ebx
586d80:	55                   	push   %ebp
586d81:	8b ac 24 a0 00 00 00 	mov    0xa0(%esp),%ebp
586d88:	56                   	push   %esi
586d89:	8b b4 24 a8 00 00 00 	mov    0xa8(%esp),%esi
586d90:	57                   	push   %edi
586d91:	8b 7d 04             	mov    0x4(%ebp),%edi
586d94:	89 5c 24 18          	mov    %ebx,0x18(%esp)
586d98:	89 74 24 10          	mov    %esi,0x10(%esp)
586d9c:	c7 44 24 14 00 00 00 	movl   $0x0,0x14(%esp)
586da3:	00
586da4:	85 ff                	test   %edi,%edi
586da6:	7f 18                	jg     0x586dc0
586da8:	c7 43 04 00 00 00 00 	movl   $0x0,0x4(%ebx)
586daf:	b8 01 00 00 00       	mov    $0x1,%eax
586db4:	c7 43 0c 00 00 00 00 	movl   $0x0,0xc(%ebx)
586dbb:	e9 4d 01 00 00       	jmp    0x586f0d
586dc0:	56                   	push   %esi
586dc1:	e8 da 10 f5 ff       	call   0x4d7ea0
586dc6:	83 c4 04             	add    $0x4,%esp
586dc9:	3b eb                	cmp    %ebx,%ebp
586dcb:	74 04                	je     0x586dd1
586dcd:	8b f3                	mov    %ebx,%esi
586dcf:	eb 0b                	jmp    0x586ddc
586dd1:	56                   	push   %esi
586dd2:	e8 e9 0f f5 ff       	call   0x4d7dc0
586dd7:	83 c4 04             	add    $0x4,%esp
586dda:	8b f0                	mov    %eax,%esi
586ddc:	ff 74 24 10          	push   0x10(%esp)
586de0:	e8 db 0f f5 ff       	call   0x4d7dc0
586de5:	83 c4 04             	add    $0x4,%esp
586de8:	8b d8                	mov    %eax,%ebx
586dea:	85 f6                	test   %esi,%esi
586dec:	0f 84 0b 01 00 00    	je     0x586efd
586df2:	85 db                	test   %ebx,%ebx
586df4:	0f 84 03 01 00 00    	je     0x586efd
586dfa:	8d 04 3f             	lea    (%edi,%edi,1),%eax
586dfd:	3b 46 08             	cmp    0x8(%esi),%eax
586e00:	7f 04                	jg     0x586e06
586e02:	8b c6                	mov    %esi,%eax
586e04:	eb 0a                	jmp    0x586e10
586e06:	50                   	push   %eax
586e07:	56                   	push   %esi
586e08:	e8 93 c8 f2 ff       	call   0x4b36a0
586e0d:	83 c4 08             	add    $0x8,%esp
586e10:	85 c0                	test   %eax,%eax
586e12:	0f 84 e5 00 00 00    	je     0x586efd
586e18:	83 ff 04             	cmp    $0x4,%edi
586e1b:	75 12                	jne    0x586e2f
586e1d:	ff 75 00             	push   0x0(%ebp)
586e20:	ff 36                	push   (%esi)
586e22:	e8 b9 44 f4 ff       	call   0x4cb2e0
586e27:	83 c4 08             	add    $0x8,%esp
586e2a:	e9 8c 00 00 00       	jmp    0x586ebb
586e2f:	83 ff 08             	cmp    $0x8,%edi
586e32:	75 0f                	jne    0x586e43
586e34:	ff 75 00             	push   0x0(%ebp)
586e37:	ff 36                	push   (%esi)
586e39:	e8 02 46 f4 ff       	call   0x4cb440
586e3e:	83 c4 08             	add    $0x8,%esp
586e41:	eb 78                	jmp    0x586ebb
586e43:	83 ff 10             	cmp    $0x10,%edi
586e46:	7d 07                	jge    0x586e4f
586e48:	8d 44 24 1c          	lea    0x1c(%esp),%eax
586e4c:	50                   	push   %eax