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
586e4d:	eb 5e                	jmp    0x586ead
586e4f:	57                   	push   %edi
586e50:	e8 8b c5 f2 ff       	call   0x4b33e0
586e55:	ba 01 00 00 00       	mov    $0x1,%edx
586e5a:	83 c4 04             	add    $0x4,%esp
586e5d:	8d 48 ff             	lea    -0x1(%eax),%ecx
586e60:	d3 e2                	shl    %cl,%edx
586e62:	8d 04 12             	lea    (%edx,%edx,1),%eax
586e65:	3b fa                	cmp    %edx,%edi
586e67:	75 28                	jne    0x586e91
586e69:	03 c0                	add    %eax,%eax
586e6b:	3b 43 08             	cmp    0x8(%ebx),%eax
586e6e:	7f 04                	jg     0x586e74
586e70:	8b c3                	mov    %ebx,%eax
586e72:	eb 0a                	jmp    0x586e7e
586e74:	50                   	push   %eax
586e75:	53                   	push   %ebx
586e76:	e8 25 c8 f2 ff       	call   0x4b36a0
586e7b:	83 c4 08             	add    $0x8,%esp
586e7e:	85 c0                	test   %eax,%eax
586e80:	74 7b                	je     0x586efd
586e82:	ff 33                	push   (%ebx)
586e84:	57                   	push   %edi
586e85:	ff 75 00             	push   0x0(%ebp)
586e88:	ff 36                	push   (%esi)
586e8a:	e8 61 01 00 00       	call   0x586ff0
586e8f:	eb 27                	jmp    0x586eb8
586e91:	8d 04 3f             	lea    (%edi,%edi,1),%eax
586e94:	3b 43 08             	cmp    0x8(%ebx),%eax
586e97:	7f 04                	jg     0x586e9d
586e99:	8b c3                	mov    %ebx,%eax
586e9b:	eb 0a                	jmp    0x586ea7
586e9d:	50                   	push   %eax
586e9e:	53                   	push   %ebx
586e9f:	e8 fc c7 f2 ff       	call   0x4b36a0
586ea4:	83 c4 08             	add    $0x8,%esp
586ea7:	85 c0                	test   %eax,%eax
586ea9:	74 52                	je     0x586efd
586eab:	ff 33                	push   (%ebx)
586ead:	57                   	push   %edi
586eae:	ff 75 00             	push   0x0(%ebp)
586eb1:	ff 36                	push   (%esi)
586eb3:	e8 78 00 00 00       	call   0x586f30
586eb8:	83 c4 10             	add    $0x10,%esp
586ebb:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
586ec2:	8b 45 00             	mov    0x0(%ebp),%eax
586ec5:	8b 4c b8 fc          	mov    -0x4(%eax,%edi,4),%ecx
586ec9:	0f b7 c1             	movzwl %cx,%eax
586ecc:	3b c8                	cmp    %eax,%ecx
586ece:	75 09                	jne    0x586ed9
586ed0:	8d 04 7d ff ff ff ff 	lea    -0x1(,%edi,2),%eax
586ed7:	eb 03                	jmp    0x586edc
586ed9:	8d 04 3f             	lea    (%edi,%edi,1),%eax
586edc:	89 46 04             	mov    %eax,0x4(%esi)
586edf:	8b 44 24 18          	mov    0x18(%esp),%eax
586ee3:	3b c6                	cmp    %esi,%eax
586ee5:	74 0e                	je     0x586ef5
586ee7:	56                   	push   %esi
586ee8:	50                   	push   %eax
586ee9:	e8 e2 c1 f2 ff       	call   0x4b30d0
586eee:	83 c4 08             	add    $0x8,%esp
586ef1:	85 c0                	test   %eax,%eax
586ef3:	74 08                	je     0x586efd
586ef5:	c7 44 24 14 01 00 00 	movl   $0x1,0x14(%esp)
586efc:	00
586efd:	ff 74 24 10          	push   0x10(%esp)
586f01:	e8 4a 0e f5 ff       	call   0x4d7d50
586f06:	8b 44 24 18          	mov    0x18(%esp),%eax
586f0a:	83 c4 04             	add    $0x4,%esp
586f0d:	8b 8c 24 9c 00 00 00 	mov    0x9c(%esp),%ecx
586f14:	5f                   	pop    %edi
586f15:	5e                   	pop    %esi
586f16:	5d                   	pop    %ebp
586f17:	5b                   	pop    %ebx
586f18:	33 cc                	xor    %esp,%ecx
586f1a:	e8 bb a5 05 00       	call   0x5e14da
586f1f:	81 c4 90 00 00 00    	add    $0x90,%esp
586f25:	c3                   	ret
586f26:	cc                   	int3
586f27:	cc                   	int3
586f28:	cc                   	int3
586f29:	cc                   	int3
586f2a:	cc                   	int3
586f2b:	cc                   	int3
586f2c:	cc                   	int3
586f2d:	cc                   	int3
586f2e:	cc                   	int3
586f2f:	cc                   	int3
586f30:	b8 04 00 00 00       	mov    $0x4,%eax
586f35:	e8 b6 a5 05 00       	call   0x5e14f0
586f3a:	8b 44 24 10          	mov    0x10(%esp),%eax
586f3e:	8b 54 24 0c          	mov    0xc(%esp),%edx
586f42:	53                   	push   %ebx
586f43:	55                   	push   %ebp
586f44:	8b 6c 24 10          	mov    0x10(%esp),%ebp
586f48:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
586f4b:	56                   	push   %esi
586f4c:	8d 70 ff             	lea    -0x1(%eax),%esi
586f4f:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
586f53:	8b da                	mov    %edx,%ebx
586f55:	c7 44 8d fc 00 00 00 	movl   $0x0,-0x4(%ebp,%ecx,4)
586f5c:	00
586f5d:	c7 45 00 00 00 00 00 	movl   $0x0,0x0(%ebp)
586f64:	57                   	push   %edi
586f65:	8d 7d 04             	lea    0x4(%ebp),%edi
586f68:	85 f6                	test   %esi,%esi
586f6a:	7e 1a                	jle    0x586f86
586f6c:	ff 32                	push   (%edx)
586f6e:	8d 5a 04             	lea    0x4(%edx),%ebx
586f71:	56                   	push   %esi
586f72:	53                   	push   %ebx
586f73:	57                   	push   %edi
586f74:	e8 b7 42 f4 ff       	call   0x4cb230
586f79:	89 04 b7             	mov    %eax,(%edi,%esi,4)
586f7c:	83 c4 10             	add    $0x10,%esp
586f7f:	8b 44 24 20          	mov    0x20(%esp),%eax
586f83:	83 c7 08             	add    $0x8,%edi
586f86:	83 c0 fe             	add    $0xfffffffe,%eax
586f89:	85 c0                	test   %eax,%eax
586f8b:	7e 23                	jle    0x586fb0
586f8d:	8d 6e ff             	lea    -0x1(%esi),%ebp
586f90:	ff 33                	push   (%ebx)
586f92:	83 c3 04             	add    $0x4,%ebx
586f95:	4e                   	dec    %esi
586f96:	56                   	push   %esi
586f97:	53                   	push   %ebx
586f98:	57                   	push   %edi
586f99:	4d                   	dec    %ebp
586f9a:	e8 c1 39 f4 ff       	call   0x4ca960
586f9f:	89 04 b7             	mov    %eax,(%edi,%esi,4)
586fa2:	83 c4 10             	add    $0x10,%esp
586fa5:	83 c7 08             	add    $0x8,%edi
586fa8:	85 ed                	test   %ebp,%ebp
586faa:	7f e4                	jg     0x586f90
586fac:	8b 6c 24 18          	mov    0x18(%esp),%ebp
586fb0:	8b 7c 24 10          	mov    0x10(%esp),%edi
586fb4:	57                   	push   %edi
586fb5:	55                   	push   %ebp
586fb6:	55                   	push   %ebp
586fb7:	55                   	push   %ebp
586fb8:	e8 93 38 f4 ff       	call   0x4ca850
586fbd:	ff 74 24 30          	push   0x30(%esp)
586fc1:	8b 74 24 38          	mov    0x38(%esp),%esi
586fc5:	ff 74 24 30          	push   0x30(%esp)
586fc9:	56                   	push   %esi
586fca:	e8 e1 49 f4 ff       	call   0x4cb9b0
586fcf:	57                   	push   %edi
586fd0:	56                   	push   %esi
586fd1:	55                   	push   %ebp
586fd2:	55                   	push   %ebp
586fd3:	e8 78 38 f4 ff       	call   0x4ca850
586fd8:	83 c4 2c             	add    $0x2c,%esp
586fdb:	5f                   	pop    %edi
586fdc:	5e                   	pop    %esi
586fdd:	5d                   	pop    %ebp
586fde:	5b                   	pop    %ebx
586fdf:	59                   	pop    %ecx
586fe0:	c3                   	ret
586fe1:	cc                   	int3
586fe2:	cc                   	int3
586fe3:	cc                   	int3
586fe4:	cc                   	int3
586fe5:	cc                   	int3
586fe6:	cc                   	int3
586fe7:	cc                   	int3
586fe8:	cc                   	int3
586fe9:	cc                   	int3
586fea:	cc                   	int3
586feb:	cc                   	int3
586fec:	cc                   	int3
586fed:	cc                   	int3
586fee:	cc                   	int3
586fef:	cc                   	int3
586ff0:	b8 04 00 00 00       	mov    $0x4,%eax
586ff5:	e8 f6 a4 05 00       	call   0x5e14f0