508bf7:	5e                   	pop    %esi
508bf8:	c3                   	ret
508bf9:	cc                   	int3
508bfa:	cc                   	int3
508bfb:	cc                   	int3
508bfc:	cc                   	int3
508bfd:	cc                   	int3
508bfe:	cc                   	int3
508bff:	cc                   	int3
508c00:	b8 10 00 00 00       	mov    $0x10,%eax
508c05:	e8 a6 8b 0c 00       	call   0x5d17b0
508c0a:	53                   	push   %ebx
508c0b:	55                   	push   %ebp
508c0c:	56                   	push   %esi
508c0d:	57                   	push   %edi
508c0e:	8b 7c 24 24          	mov    0x24(%esp),%edi
508c12:	57                   	push   %edi
508c13:	e8 08 12 fd ff       	call   0x4d9e20
508c18:	6a 48                	push   $0x48
508c1a:	68 f0 ad 62 00       	push   $0x62adf0
508c1f:	8d 34 40             	lea    (%eax,%eax,2),%esi
508c22:	b8 d3 4d 62 10       	mov    $0x10624dd3,%eax
508c27:	f7 ee                	imul   %esi
508c29:	b8 67 66 66 66       	mov    $0x66666667,%eax
508c2e:	c1 fa 06             	sar    $0x6,%edx
508c31:	8b ca                	mov    %edx,%ecx
508c33:	c1 e9 1f             	shr    $0x1f,%ecx
508c36:	03 ca                	add    %edx,%ecx
508c38:	f7 ee                	imul   %esi
508c3a:	c1 fa 02             	sar    $0x2,%edx
508c3d:	8b c2                	mov    %edx,%eax
508c3f:	03 ca                	add    %edx,%ecx
508c41:	c1 e8 1f             	shr    $0x1f,%eax
508c44:	83 c0 02             	add    $0x2,%eax
508c47:	03 c8                	add    %eax,%ecx
508c49:	b8 39 8e e3 38       	mov    $0x38e38e39,%eax
508c4e:	f7 e9                	imul   %ecx
508c50:	8d 59 03             	lea    0x3(%ecx),%ebx
508c53:	d1 fa                	sar    $1,%edx
508c55:	8b c2                	mov    %edx,%eax
508c57:	89 5c 24 24          	mov    %ebx,0x24(%esp)
508c5b:	c1 e8 1f             	shr    $0x1f,%eax
508c5e:	42                   	inc    %edx
508c5f:	03 c2                	add    %edx,%eax
508c61:	89 44 24 28          	mov    %eax,0x28(%esp)
508c65:	c1 e0 02             	shl    $0x2,%eax
508c68:	50                   	push   %eax
508c69:	e8 e2 7a fd ff       	call   0x4e0750
508c6e:	6a 49                	push   $0x49
508c70:	68 f0 ad 62 00       	push   $0x62adf0
508c75:	53                   	push   %ebx
508c76:	8b e8                	mov    %eax,%ebp
508c78:	e8 d3 7a fd ff       	call   0x4e0750
508c7d:	8b f0                	mov    %eax,%esi
508c7f:	83 c4 1c             	add    $0x1c,%esp
508c82:	89 74 24 10          	mov    %esi,0x10(%esp)
508c86:	85 f6                	test   %esi,%esi
508c88:	0f 84 1d 01 00 00    	je     0x508dab
508c8e:	85 ed                	test   %ebp,%ebp
508c90:	0f 84 15 01 00 00    	je     0x508dab
508c96:	57                   	push   %edi
508c97:	e8 b4 0e fd ff       	call   0x4d9b50
508c9c:	8b d8                	mov    %eax,%ebx
508c9e:	83 c4 04             	add    $0x4,%esp
508ca1:	85 db                	test   %ebx,%ebx
508ca3:	0f 84 19 01 00 00    	je     0x508dc2
508ca9:	8b fe                	mov    %esi,%edi
508cab:	8b f5                	mov    %ebp,%esi
508cad:	53                   	push   %ebx
508cae:	e8 ad 10 fd ff       	call   0x4d9d60
508cb3:	83 c4 04             	add    $0x4,%esp
508cb6:	85 c0                	test   %eax,%eax
508cb8:	74 0c                	je     0x508cc6
508cba:	8b c7                	mov    %edi,%eax
508cbc:	66 c7 00 30 00       	movw   $0x30,(%eax)
508cc1:	e9 c3 00 00 00       	jmp    0x508d89
508cc6:	53                   	push   %ebx
508cc7:	e8 14 10 fd ff       	call   0x4d9ce0
508ccc:	83 c4 04             	add    $0x4,%esp
508ccf:	85 c0                	test   %eax,%eax
508cd1:	74 08                	je     0x508cdb
508cd3:	8b c7                	mov    %edi,%eax
508cd5:	c6 00 2d             	movb   $0x2d,(%eax)
508cd8:	8d 78 01             	lea    0x1(%eax),%edi
508cdb:	53                   	push   %ebx
508cdc:	e8 7f 10 fd ff       	call   0x4d9d60
508ce1:	83 c4 04             	add    $0x4,%esp
508ce4:	85 c0                	test   %eax,%eax
508ce6:	75 47                	jne    0x508d2f
508ce8:	89 44 24 14          	mov    %eax,0x14(%esp)
508cec:	0f 1f 40 00          	nopl   0x0(%eax)
508cf0:	c1 f8 02             	sar    $0x2,%eax
508cf3:	3b 44 24 1c          	cmp    0x1c(%esp),%eax
508cf7:	0f 8d c5 00 00 00    	jge    0x508dc2
508cfd:	68 00 ca 9a 3b       	push   $0x3b9aca00
508d02:	53                   	push   %ebx
508d03:	e8 e8 39 ff ff       	call   0x4fc6f0
508d08:	83 c4 08             	add    $0x8,%esp
508d0b:	89 06                	mov    %eax,(%esi)
508d0d:	83 f8 ff             	cmp    $0xffffffff,%eax
508d10:	0f 84 ac 00 00 00    	je     0x508dc2
508d16:	83 44 24 14 04       	addl   $0x4,0x14(%esp)
508d1b:	83 c6 04             	add    $0x4,%esi
508d1e:	53                   	push   %ebx
508d1f:	e8 3c 10 fd ff       	call   0x4d9d60
508d24:	83 c4 04             	add    $0x4,%esp
508d27:	85 c0                	test   %eax,%eax
508d29:	8b 44 24 14          	mov    0x14(%esp),%eax
508d2d:	74 c1                	je     0x508cf0
508d2f:	ff 76 fc             	push   -0x4(%esi)
508d32:	8b 44 24 1c          	mov    0x1c(%esp),%eax
508d36:	83 ee 04             	sub    $0x4,%esi
508d39:	2b c7                	sub    %edi,%eax
508d3b:	03 44 24 14          	add    0x14(%esp),%eax
508d3f:	68 ec 5c 60 00       	push   $0x605cec
508d44:	50                   	push   %eax
508d45:	57                   	push   %edi
508d46:	e8 e5 98 fd ff       	call   0x4e2630
508d4b:	83 c4 10             	add    $0x10,%esp
508d4e:	85 c0                	test   %eax,%eax
508d50:	78 70                	js     0x508dc2
508d52:	03 f8                	add    %eax,%edi
508d54:	3b f5                	cmp    %ebp,%esi
508d56:	74 31                	je     0x508d89
508d58:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
508d5f:	00
508d60:	ff 76 fc             	push   -0x4(%esi)
508d63:	8b 44 24 1c          	mov    0x1c(%esp),%eax
508d67:	83 ee 04             	sub    $0x4,%esi
508d6a:	2b c7                	sub    %edi,%eax
508d6c:	03 44 24 14          	add    0x14(%esp),%eax
508d70:	68 08 ae 62 00       	push   $0x62ae08
508d75:	50                   	push   %eax
508d76:	57                   	push   %edi
508d77:	e8 b4 98 fd ff       	call   0x4e2630
508d7c:	83 c4 10             	add    $0x10,%esp
508d7f:	85 c0                	test   %eax,%eax
508d81:	78 3f                	js     0x508dc2
508d83:	03 f8                	add    %eax,%edi
508d85:	3b f5                	cmp    %ebp,%esi
508d87:	75 d7                	jne    0x508d60
508d89:	6a 76                	push   $0x76
508d8b:	68 f0 ad 62 00       	push   $0x62adf0
508d90:	55                   	push   %ebp
508d91:	e8 ea 79 fd ff       	call   0x4e0780
508d96:	53                   	push   %ebx
508d97:	e8 84 0e fd ff       	call   0x4d9c20
508d9c:	8b 44 24 20          	mov    0x20(%esp),%eax
508da0:	83 c4 10             	add    $0x10,%esp
508da3:	5f                   	pop    %edi
508da4:	5e                   	pop    %esi
508da5:	5d                   	pop    %ebp
508da6:	5b                   	pop    %ebx
508da7:	83 c4 10             	add    $0x10,%esp
508daa:	c3                   	ret
508dab:	6a 4b                	push   $0x4b
508dad:	68 f0 ad 62 00       	push   $0x62adf0
508db2:	6a 41                	push   $0x41
508db4:	6a 68                	push   $0x68
508db6:	6a 03                	push   $0x3
508db8:	e8 c3 01 fd ff       	call   0x4d8f80
508dbd:	83 c4 14             	add    $0x14,%esp
508dc0:	33 db                	xor    %ebx,%ebx
508dc2:	6a 76                	push   $0x76
508dc4:	68 f0 ad 62 00       	push   $0x62adf0
508dc9:	55                   	push   %ebp
508dca:	e8 b1 79 fd ff       	call   0x4e0780
508dcf:	53                   	push   %ebx
508dd0:	e8 4b 0e fd ff       	call   0x4d9c20
508dd5:	6a 7a                	push   $0x7a
508dd7:	68 f0 ad 62 00       	push   $0x62adf0
508ddc:	ff 74 24 28          	push   0x28(%esp)
508de0:	e8 9b 79 fd ff       	call   0x4e0780
508de5:	83 c4 1c             	add    $0x1c,%esp
508de8:	33 c0                	xor    %eax,%eax
508dea:	5f                   	pop    %edi
508deb:	5e                   	pop    %esi
508dec:	5d                   	pop    %ebp
508ded:	5b                   	pop    %ebx
508dee:	83 c4 10             	add    $0x10,%esp
508df1:	c3                   	ret
508df2:	cc                   	int3
508df3:	cc                   	int3
508df4:	cc                   	int3
508df5:	cc                   	int3
508df6:	cc                   	int3
508df7:	cc                   	int3
508df8:	cc                   	int3
508df9:	cc                   	int3
508dfa:	cc                   	int3
508dfb:	cc                   	int3
508dfc:	cc                   	int3
508dfd:	cc                   	int3
508dfe:	cc                   	int3
508dff:	cc                   	int3
508e00:	b8 04 00 00 00       	mov    $0x4,%eax
508e05:	e8 a6 89 0c 00       	call   0x5d17b0
508e0a:	53                   	push   %ebx
508e0b:	55                   	push   %ebp
508e0c:	8b 6c 24 10          	mov    0x10(%esp),%ebp
508e10:	33 db                	xor    %ebx,%ebx
508e12:	55                   	push   %ebp
508e13:	e8 48 0f fd ff       	call   0x4d9d60
508e18:	83 c4 04             	add    $0x4,%esp
508e1b:	85 c0                	test   %eax,%eax
508e1d:	74 18                	je     0x508e37
508e1f:	6a 1b                	push   $0x1b
508e21:	68 f0 ad 62 00       	push   $0x62adf0
508e26:	68 b8 25 60 00       	push   $0x6025b8
508e2b:	e8 a0 92 fd ff       	call   0x4e20d0
508e30:	83 c4 0c             	add    $0xc,%esp
508e33:	5d                   	pop    %ebp
508e34:	5b                   	pop    %ebx
508e35:	59                   	pop    %ecx
508e36:	c3                   	ret
508e37:	8b 45 04             	mov    0x4(%ebp),%eax
508e3a:	6a 1c                	push   $0x1c
508e3c:	68 f0 ad 62 00       	push   $0x62adf0
508e41:	8d 04 c5 02 00 00 00 	lea    0x2(,%eax,8),%eax
508e48:	50                   	push   %eax
508e49:	e8 02 79 fd ff       	call   0x4e0750
508e4e:	83 c4 0c             	add    $0xc,%esp
508e51:	89 44 24 08          	mov    %eax,0x8(%esp)
508e55:	85 c0                	test   %eax,%eax
508e57:	75 1d                	jne    0x508e76
508e59:	6a 1e                	push   $0x1e
508e5b:	68 f0 ad 62 00       	push   $0x62adf0
508e60:	6a 41                	push   $0x41
508e62:	6a 69                	push   $0x69
508e64:	6a 03                	push   $0x3
508e66:	e8 15 01 fd ff       	call   0x4d8f80
508e6b:	8b 44 24 1c          	mov    0x1c(%esp),%eax
508e6f:	83 c4 14             	add    $0x14,%esp
508e72:	5d                   	pop    %ebp
508e73:	5b                   	pop    %ebx
508e74:	59                   	pop    %ecx
508e75:	c3                   	ret
508e76:	56                   	push   %esi
508e77:	8b f0                	mov    %eax,%esi
508e79:	57                   	push   %edi
508e7a:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
508e7d:	74 06                	je     0x508e85
508e7f:	c6 00 2d             	movb   $0x2d,(%eax)
508e82:	8d 70 01             	lea    0x1(%eax),%esi
508e85:	8b 7d 04             	mov    0x4(%ebp),%edi
508e88:	83 ef 01             	sub    $0x1,%edi
508e8b:	78 48                	js     0x508ed5
508e8d:	0f 1f 00             	nopl   (%eax)
508e90:	ba 18 00 00 00       	mov    $0x18,%edx
508e95:	8b 45 00             	mov    0x0(%ebp),%eax
508e98:	8b ca                	mov    %edx,%ecx
508e9a:	8b 04 b8             	mov    (%eax,%edi,4),%eax
508e9d:	d3 e8                	shr    %cl,%eax
508e9f:	0f b6 c0             	movzbl %al,%eax
508ea2:	85 db                	test   %ebx,%ebx
508ea4:	75 04                	jne    0x508eaa
508ea6:	85 c0                	test   %eax,%eax
508ea8:	74 21                	je     0x508ecb
508eaa:	8b c8                	mov    %eax,%ecx
508eac:	bb 01 00 00 00       	mov    $0x1,%ebx
508eb1:	c1 e9 04             	shr    $0x4,%ecx
508eb4:	83 e0 0f             	and    $0xf,%eax
508eb7:	8a 89 dc ad 62 00    	mov    0x62addc(%ecx),%cl
508ebd:	88 0e                	mov    %cl,(%esi)
508ebf:	8a 80 dc ad 62 00    	mov    0x62addc(%eax),%al
508ec5:	88 46 01             	mov    %al,0x1(%esi)
508ec8:	83 c6 02             	add    $0x2,%esi
508ecb:	83 ea 08             	sub    $0x8,%edx
508ece:	79 c5                	jns    0x508e95
508ed0:	83 ef 01             	sub    $0x1,%edi
508ed3:	79 bb                	jns    0x508e90
508ed5:	5f                   	pop    %edi
508ed6:	c6 06 00             	movb   $0x0,(%esi)
508ed9:	5e                   	pop    %esi
508eda:	8b 44 24 08          	mov    0x8(%esp),%eax
508ede:	5d                   	pop    %ebp
508edf:	5b                   	pop    %ebx
508ee0:	59                   	pop    %ecx
508ee1:	c3                   	ret
508ee2:	cc                   	int3
508ee3:	cc                   	int3
508ee4:	cc                   	int3
508ee5:	cc                   	int3
508ee6:	cc                   	int3
508ee7:	cc                   	int3
508ee8:	cc                   	int3
508ee9:	cc                   	int3
508eea:	cc                   	int3
508eeb:	cc                   	int3
508eec:	cc                   	int3
508eed:	cc                   	int3
508eee:	cc                   	int3
508eef:	cc                   	int3
508ef0:	b8 04 00 00 00       	mov    $0x4,%eax
508ef5:	e8 b6 88 0c 00       	call   0x5d17b0
508efa:	8b 44 24 0c          	mov    0xc(%esp),%eax
508efe:	53                   	push   %ebx
508eff:	55                   	push   %ebp
508f00:	56                   	push   %esi
508f01:	57                   	push   %edi
508f02:	33 ff                	xor    %edi,%edi
508f04:	85 c0                	test   %eax,%eax
508f06:	0f 84 5b 01 00 00    	je     0x509067
508f0c:	8a 08                	mov    (%eax),%cl
508f0e:	84 c9                	test   %cl,%cl
508f10:	0f 84 51 01 00 00    	je     0x509067
508f16:	80 f9 2d             	cmp    $0x2d,%cl
508f19:	8d 68 01             	lea    0x1(%eax),%ebp
508f1c:	0f 45 e8             	cmovne %eax,%ebp
508f1f:	33 db                	xor    %ebx,%ebx
508f21:	80 f9 2d             	cmp    $0x2d,%cl
508f24:	0f 94 c3             	sete   %bl
508f27:	33 f6                	xor    %esi,%esi
508f29:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
508f2d:	0f 1f 00             	nopl   (%eax)
508f30:	0f be 04 2e          	movsbl (%esi,%ebp,1),%eax
508f34:	6a 04                	push   $0x4
508f36:	50                   	push   %eax
508f37:	e8 64 b1 fd ff       	call   0x4e40a0
508f3c:	83 c4 08             	add    $0x8,%esp
508f3f:	85 c0                	test   %eax,%eax
508f41:	74 09                	je     0x508f4c
508f43:	46                   	inc    %esi
508f44:	81 fe ff ff ff 1f    	cmp    $0x1fffffff,%esi
508f4a:	7e e4                	jle    0x508f30
508f4c:	85 f6                	test   %esi,%esi
508f4e:	0f 84 01 01 00 00    	je     0x509055
508f54:	81 fe ff ff ff 1f    	cmp    $0x1fffffff,%esi
508f5a:	0f 87 f5 00 00 00    	ja     0x509055
508f60:	8d 04 33             	lea    (%ebx,%esi,1),%eax
508f63:	89 44 24 10          	mov    %eax,0x10(%esp)
508f67:	8b 44 24 18          	mov    0x18(%esp),%eax
508f6b:	85 c0                	test   %eax,%eax
508f6d:	0f 84 d8 00 00 00    	je     0x50904b
508f73:	8b 38                	mov    (%eax),%edi
508f75:	85 ff                	test   %edi,%edi
508f77:	75 11                	jne    0x508f8a
508f79:	e8 62 0e fd ff       	call   0x4d9de0
508f7e:	8b f8                	mov    %eax,%edi
508f80:	85 ff                	test   %edi,%edi
508f82:	75 11                	jne    0x508f95
508f84:	5f                   	pop    %edi
508f85:	5e                   	pop    %esi
508f86:	5d                   	pop    %ebp
508f87:	5b                   	pop    %ebx
508f88:	59                   	pop    %ecx
508f89:	c3                   	ret
508f8a:	6a 00                	push   $0x0
508f8c:	57                   	push   %edi
508f8d:	e8 4e 11 fd ff       	call   0x4da0e0