typedef   signed char       int8;
typedef unsigned char      uint8;
typedef   signed short      int16;
typedef unsigned short     uint16;
typedef   signed int        int32;
typedef unsigned int       uint32;
typedef   signed long long  int64;
typedef unsigned long long uint64;
typedef struct { char *data; int64 len; int64 size; } FBSTRING;
typedef int8 boolean;
struct $16__FB_ARRAYDIMTB$ {
	int64 ELEMENTS;
	int64 LBOUND;
	int64 UBOUND;
};
#define __FB_STATIC_ASSERT( expr ) extern int __$fb_structsizecheck[(expr) ? 1 : -1]
__FB_STATIC_ASSERT( sizeof( struct $16__FB_ARRAYDIMTB$ ) == 24 );
struct $8FBARRAY1IlE {
	int64* DATA;
	int64* PTR;
	int64 SIZE;
	int64 ELEMENT_LEN;
	int64 DIMENSIONS;
	int64 FLAGS;
	struct $16__FB_ARRAYDIMTB$ DIMTB[1];
};
__FB_STATIC_ASSERT( sizeof( struct $8FBARRAY1IlE ) == 72 );
struct $8FBARRAY1IhE {
	uint8* DATA;
	uint8* PTR;
	int64 SIZE;
	int64 ELEMENT_LEN;
	int64 DIMENSIONS;
	int64 FLAGS;
	struct $16__FB_ARRAYDIMTB$ DIMTB[1];
};
__FB_STATIC_ASSERT( sizeof( struct $8FBARRAY1IhE ) == 72 );
typedef int64 $13FBFILE_FORMAT;
struct $7FBARRAYIvE {
	void* DATA;
	void* PTR;
	int64 SIZE;
	int64 ELEMENT_LEN;
	int64 DIMENSIONS;
	int64 FLAGS;
	struct $16__FB_ARRAYDIMTB$ DIMTB[8];
};
__FB_STATIC_ASSERT( sizeof( struct $7FBARRAYIvE ) == 240 );
struct $8HASHITEM;
struct $8HASHITEM {
	char* NAME;
	void* DATA;
	struct $8HASHITEM* PREV;
	struct $8HASHITEM* NEXT;
};
__FB_STATIC_ASSERT( sizeof( struct $8HASHITEM ) == 32 );
struct $11TSTRSETITEM {
	FBSTRING S;
	int64 USERDATA;
	struct $8HASHITEM* HASHITEM;
};
__FB_STATIC_ASSERT( sizeof( struct $11TSTRSETITEM ) == 40 );
void* fb_ErrorThrowAt( const int32, const char*, const void*, const void* );
int32 fb_FileOpen( const FBSTRING*, const uint32, const uint32, const uint32, const int32, const int32 );
int32 fb_FileClose( const int32 );
int32 fb_FileGetArrayLarge( const int32, const int64, struct $7FBARRAYIvE* );
int32 fb_FileSeekLarge( const int32, const int64 );
int32 fb_FileFree( void );
FBSTRING* fb_StrInit( void*, const int64, const void*, const int64, const int32 );
FBSTRING* fb_StrAssign( void*, const int64, const void*, const int64, const int32 );
void fb_StrDelete( const FBSTRING* );
FBSTRING* fb_StrConcat( FBSTRING*, const void*, const int64, const void*, const int64 );
int32 fb_StrCompare( const void*, const int64, const void*, const int64 );
FBSTRING* fb_StrConcatAssign( void*, const int64, const void*, const int64, const int32 );
FBSTRING* fb_StrAllocTempResult( const FBSTRING* );
FBSTRING* fb_StrAllocTempDescZ( const char* );
FBSTRING* fb_StrAllocTempDescZEx( const char*, const int64 );
FBSTRING* fb_LongintToStr( const int64 );
FBSTRING* fb_StrMid( const FBSTRING*, const int64, const int64 );
int64 fb_StrLen( const void*, const int64 );
int64 fb_StrInstr( const int64, const FBSTRING*, const FBSTRING* );
FBSTRING* fb_RTrimEx( const FBSTRING*, const FBSTRING* );
FBSTRING* fb_HEXEx_l( const uint64, const int32 );
FBSTRING* fb_LEFT( const FBSTRING*, const int64 );
FBSTRING* fb_RIGHT( const FBSTRING*, const int64 );
FBSTRING* fb_StrLcase2( const FBSTRING*, const int32 );
FBSTRING* fb_CurDir( void );
static void fb_ctor__hlp( void ) __attribute__(( constructor ));
static void _ZN11TSTRSETITEMaSERKS_( struct $11TSTRSETITEM*, const struct $11TSTRSETITEM* );
void ERRREPORT( int64, int64, const char* );
FBSTRING* PATHNORMALIZEHOST( FBSTRING* );
FBSTRING* PATHSTRIPDIV( FBSTRING* );
FBSTRING* HCURDIR( void );
static int64 HFINDEXTBEGIN( FBSTRING* );
static int64 STRISQUOTED( FBSTRING* );
typedef int64 $13AST_NODECLASS;
typedef int64 $11AST_OPFLAGS;
typedef int64 $6AST_OP;
struct $10AST_OPINFO {
	$13AST_NODECLASS CLASS;
	$11AST_OPFLAGS FLAGS;
	char* ID;
	$6AST_OP SELFOP;
};
__FB_STATIC_ASSERT( sizeof( struct $10AST_OPINFO ) == 32 );
struct $8FBARRAY1I10AST_OPINFOE {
	struct $10AST_OPINFO* DATA;
	struct $10AST_OPINFO* PTR;
	int64 SIZE;
	int64 ELEMENT_LEN;
	int64 DIMENSIONS;
	int64 FLAGS;
	struct $16__FB_ARRAYDIMTB$ DIMTB[1];
};
__FB_STATIC_ASSERT( sizeof( struct $8FBARRAY1I10AST_OPINFOE ) == 72 );
static struct $8FBARRAY1I10AST_OPINFOE tmp$83$;
typedef int64 $12FB_DATACLASS;
typedef int64 $11FB_DATATYPE;
struct $13SYMB_DATATYPE {
	$12FB_DATACLASS CLASS;
	int64 SIZE;
	int64 SIGNED;
	int64 INTRANK;
	$11FB_DATATYPE REMAPTYPE;
	int64 SIZETYPE;
	char* NAME;
};
__FB_STATIC_ASSERT( sizeof( struct $13SYMB_DATATYPE ) == 56 );
struct $8FBARRAY1I13SYMB_DATATYPEE {
	struct $13SYMB_DATATYPE* DATA;
	struct $13SYMB_DATATYPE* PTR;
	int64 SIZE;
	int64 ELEMENT_LEN;
	int64 DIMENSIONS;
	int64 FLAGS;
	struct $16__FB_ARRAYDIMTB$ DIMTB[1];
};
__FB_STATIC_ASSERT( sizeof( struct $8FBARRAY1I13SYMB_DATATYPEE ) == 72 );
static struct $8FBARRAY1I13SYMB_DATATYPEE tmp$84$;
struct $8FBARRAY2IlE {
	int64* DATA;
	int64* PTR;
	int64 SIZE;
	int64 ELEMENT_LEN;
	int64 DIMENSIONS;
	int64 FLAGS;
	struct $16__FB_ARRAYDIMTB$ DIMTB[2];
};
__FB_STATIC_ASSERT( sizeof( struct $8FBARRAY2IlE ) == 96 );
static struct $8FBARRAY2IlE tmp$85$;

char* HHEXUINT( uint64 VALUE$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	char* fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$10:;
	static char RES$1[9];
	static char* P$1;
	static int64 LGT$1;
	static int64 MAXLEN$1;
	static int64 HEXTB$1[16] = { 48ll, 49ll, 50ll, 51ll, 52ll, 53ll, 54ll, 55ll, 56ll, 57ll, 65ll, 66ll, 67ll, 68ll, 69ll, 70ll };
	static struct $8FBARRAY1IlE tmp$95$1 = { (int64*)HEXTB$1, (int64*)HEXTB$1, 128ll, 8ll, 1ll, 49ll, { { 16ll, 0ll, 15ll } } };
	MAXLEN$1 = 4ll;
	if( VALUE$1 <= 65535ull) goto label$13;
	{
		MAXLEN$1 = 8ll;
	}
	label$13:;
	label$12:;
	P$1 = (char*)((uint8*)RES$1 + 7ll);
	LGT$1 = 0ll;
	label$14:;
	{
		*P$1 = (uint8)*(int64*)((uint64)(int64*)HEXTB$1 + ((int64)(VALUE$1 & 15ull) << (3ll & 63ll)));
		LGT$1 = LGT$1 + 1ll;
		if( LGT$1 != MAXLEN$1) goto label$18;
		{
			goto label$15;
		}
		label$18:;
		label$17:;
		P$1 = (char*)((uint8*)P$1 + -1ll);
		VALUE$1 = VALUE$1 >> (4ll & 63ll);
	}
	label$16:;
	goto label$14;
	label$15:;
	fb$result$1 = P$1;
	label$11:;
	return fb$result$1;
}

FBSTRING* HFLOATTOHEX( double VALUE$1, int64 DTYPE$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 TMP$110$1;
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$19:;
	if( (DTYPE$1 & 480ll) == 0ll) goto label$21;
	TMP$110$1 = 24ll;
	goto label$24;
	label$21:;
	TMP$110$1 = DTYPE$1 & 31ll;
	label$24:;
	if( TMP$110$1 != 16ll) goto label$23;
	{
		fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)"0x", 3ll, 0 );
		FBSTRING* vr$4 = fb_HEXEx_l( *(uint64*)&VALUE$1, 16 );
		fb_StrConcatAssign( (void*)&fb$result$1, -1ll, (void*)vr$4, -1ll, 0 );
	}
	goto label$22;
	label$23:;
	{
		float SINGLEVALUE$2;
		SINGLEVALUE$2 = (float)VALUE$1;
		fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)"0x", 3ll, 0 );
		FBSTRING* vr$9 = fb_HEXEx_l( (uint64)*(uint32*)&SINGLEVALUE$2, 8 );
		fb_StrConcatAssign( (void*)&fb$result$1, -1ll, (void*)vr$9, -1ll, 0 );
	}
	label$22:;
	label$20:;
	FBSTRING* vr$12 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$12;
}

FBSTRING* HFLOATTOHEX_C99( double VALUE$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	char* TMP$117$1;
	FBSTRING TMP$118$1;
	FBSTRING TMP$119$1;
	FBSTRING TMP$120$1;
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$25:;
	uint64 N$1;
	N$1 = *(uint64*)&VALUE$1;
	int64 SIGN$1;
	SIGN$1 = (int64)(N$1 >> (63ll & 63ll));
	int64 EXP2$1;
	EXP2$1 = (int64)((N$1 >> (52ll & 63ll)) & 2047ull);
	uint64 MANTISSA$1;
	MANTISSA$1 = N$1 & 4503599627370495ull;
	FBSTRING RET$1;
	__builtin_memset( &RET$1, 0, 24ll );
	if( SIGN$1 == 0ll) goto label$28;
	{
		fb_StrAssign( (void*)&RET$1, -1ll, (void*)"-0x", 4ll, 0 );
	}
	goto label$27;
	label$28:;
	{
		fb_StrAssign( (void*)&RET$1, -1ll, (void*)"0x", 3ll, 0 );
	}
	label$27:;
	EXP2$1 = EXP2$1 + -1023ll;
	if( EXP2$1 <= -1023ll) goto label$30;
	{
		fb_StrConcatAssign( (void*)&RET$1, -1ll, (void*)"1.", 3ll, 0 );
		FBSTRING* vr$10 = fb_HEXEx_l( MANTISSA$1, 13 );
		fb_StrConcatAssign( (void*)&RET$1, -1ll, (void*)vr$10, -1ll, 0 );
		FBSTRING* vr$13 = fb_RIGHT( (FBSTRING*)&RET$1, 1ll );
		int32 vr$14 = fb_StrCompare( (void*)vr$13, -1ll, (void*)"0", 2ll );
		if( (int64)vr$14 != 0ll) goto label$32;
		{
			FBSTRING* vr$16 = fb_StrAllocTempDescZEx( (char*)"0", 1ll );
			FBSTRING* vr$18 = fb_RTrimEx( (FBSTRING*)&RET$1, (FBSTRING*)vr$16 );
			fb_StrAssign( (void*)&RET$1, -1ll, (void*)vr$18, -1ll, 0 );
			label$32:;
		}
	}
	goto label$29;
	label$30:;
	{
		if( MANTISSA$1 != 0ull) goto label$34;
		{
			fb_StrConcatAssign( (void*)&RET$1, -1ll, (void*)"0", 2ll, 0 );
			EXP2$1 = 0ll;
		}
		goto label$33;
		label$34:;
		{
			EXP2$1 = EXP2$1 + 1ll;
			fb_StrConcatAssign( (void*)&RET$1, -1ll, (void*)"0.", 3ll, 0 );
			FBSTRING* vr$23 = fb_HEXEx_l( MANTISSA$1, 13 );
			fb_StrConcatAssign( (void*)&RET$1, -1ll, (void*)vr$23, -1ll, 0 );
			FBSTRING* vr$26 = fb_RIGHT( (FBSTRING*)&RET$1, 1ll );
			int32 vr$27 = fb_StrCompare( (void*)vr$26, -1ll, (void*)"0", 2ll );
			if( (int64)vr$27 != 0ll) goto label$36;
			{
				FBSTRING* vr$29 = fb_StrAllocTempDescZEx( (char*)"0", 1ll );
				FBSTRING* vr$31 = fb_RTrimEx( (FBSTRING*)&RET$1, (FBSTRING*)vr$29 );
				fb_StrAssign( (void*)&RET$1, -1ll, (void*)vr$31, -1ll, 0 );
				label$36:;
			}
		}
		label$33:;
	}
	label$29:;
	FBSTRING* vr$34 = fb_LongintToStr( __builtin_llabs( EXP2$1 ) );
	if( EXP2$1 < 0ll) goto label$37;
	TMP$117$1 = (char*)"+";
	goto label$38;
	label$37:;
	TMP$117$1 = (char*)"-";
	label$38:;
	__builtin_memset( &TMP$118$1, 0, 24ll );
	FBSTRING* vr$37 = fb_StrConcat( &TMP$118$1, (void*)TMP$117$1, 0ll, (void*)vr$34, -1ll );
	__builtin_memset( &TMP$119$1, 0, 24ll );
	FBSTRING* vr$40 = fb_StrConcat( &TMP$119$1, (void*)"p", 2ll, (void*)vr$37, -1ll );
	__builtin_memset( &TMP$120$1, 0, 24ll );
	FBSTRING* vr$44 = fb_StrConcat( &TMP$120$1, (void*)&RET$1, -1ll, (void*)vr$40, -1ll );
	fb_StrAssign( (void*)&RET$1, -1ll, (void*)vr$44, -1ll, 0 );
	fb_StrInit( (void*)&fb$result$1, -1ll, (void*)&RET$1, -1ll, 0 );
	fb_StrDelete( (FBSTRING*)&RET$1 );
	goto label$26;
	fb_StrDelete( (FBSTRING*)&RET$1 );
	label$26:;
	FBSTRING* vr$51 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$51;
}

int64 HFBRELOP2IRRELOP( int64 TK$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$39:;
	static int64 OP$1;
	{
		uint64 TMP$121$2;
		TMP$121$2 = (uint64)TK$1;
		goto label$42;
		label$43:;
		{
			OP$1 = 45ll;
		}
		goto label$41;
		label$44:;
		{
			OP$1 = 46ll;
		}
		goto label$41;
		label$45:;
		{
			OP$1 = 47ll;
		}
		goto label$41;
		label$46:;
		{
			OP$1 = 48ll;
		}
		goto label$41;
		label$47:;
		{
			OP$1 = 50ll;
		}
		goto label$41;
		label$48:;
		{
			OP$1 = 49ll;
		}
		goto label$41;
		label$49:;
		{
			ERRREPORT( 285ll, 0ll, (char*)0ull );
			OP$1 = 45ll;
		}
		goto label$41;
		label$42:;
		static const void* tmp$122[6ll] = {
			&&label$43,
			&&label$44,
			&&label$45,
			&&label$46,
			&&label$47,
			&&label$48,
		};
		if( (TMP$121$2 - 299ull) > 5ull ) goto label$49;
		goto *tmp$122[TMP$121$2 - 299ull];
		label$41:;
	}
	fb$result$1 = OP$1;
	label$40:;
	return fb$result$1;
}

int64 HFILEEXISTS( char* FILENAME$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$50:;
	static int64 F$1;
	int32 vr$1 = fb_FileFree(  );
	F$1 = (int64)vr$1;
	FBSTRING* vr$4 = fb_StrAllocTempDescZ( (char*)FILENAME$1 );
	int32 vr$5 = fb_FileOpen( (FBSTRING*)vr$4, 2u, 0u, 0u, (int32)F$1, 0 );
	if( (int64)vr$5 != 0ll) goto label$53;
	{
		fb$result$1 = -1ll;
		int32 vr$8 = fb_FileClose( (int32)F$1 );
		if( (int64)vr$8 == 0ll) goto label$54;
		void* vr$10 = fb_ErrorThrowAt( 165, (char*)"/home/jkfirth/fbc-resolute-package-src-1.20.2-11/src/compiler/hlp.bas", (void*)0ull, (void*)0ull );
		goto *vr$10;
		label$54:;
	}
	goto label$52;
	label$53:;
	{
		fb$result$1 = 0ll;
	}
	label$52:;
	label$51:;
	return fb$result$1;
}

void HUCASE( const char* SRC$1, char* DST$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$55:;
	static int64 C$1;
	static char* S$1;
	static char* D$1;
	S$1 = (char*)SRC$1;
	D$1 = DST$1;
	label$57:;
	{
		C$1 = (int64)(uint8)*S$1;
		if( C$1 < 97ll) goto label$61;
		{
			if( C$1 > 122ll) goto label$63;
			{
				C$1 = C$1 + -32ll;
			}
			label$63:;
			label$62:;
		}
		goto label$60;
		label$61:;
		if( C$1 != 0ll) goto label$64;
		{
			goto label$58;
		}
		label$64:;
		label$60:;
		*D$1 = (uint8)C$1;
		S$1 = (char*)((uint8*)S$1 + 1ll);
		D$1 = (char*)((uint8*)D$1 + 1ll);
	}
	label$59:;
	goto label$57;
	label$58:;
	*D$1 = (uint8)0u;
	label$56:;
}

void HCLEARNAME( char* SRC$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$65:;
	static char* P$1;
	P$1 = SRC$1;
	label$67:;
	{
		{
			uint64 TMP$124$3;
			TMP$124$3 = (uint64)(uint8)*P$1;
			goto label$71;
			label$72:;
			{
				goto label$68;
			}
			goto label$70;
			label$73:;
			{
			}
			goto label$70;
			label$74:;
			{
				*P$1 = (uint8)122u;
			}
			goto label$70;
			label$71:;
			static const void* tmp$125[123ll] = {
				&&label$72,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$74,
				&&label$73,
				&&label$74,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
				&&label$73,
			};
			if( TMP$124$3 > 122ull ) goto label$74;
			goto *tmp$125[TMP$124$3 - 0ull];
			label$70:;
		}
		P$1 = (char*)((uint8*)P$1 + 1ll);
	}
	label$69:;
	goto label$67;
	label$68:;
	label$66:;
}

FBSTRING* HSTRIPEXT( FBSTRING* PATH$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$86:;
	int64 vr$1 = HFINDEXTBEGIN( PATH$1 );
	FBSTRING* vr$2 = fb_LEFT( (FBSTRING*)PATH$1, vr$1 );
	fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)vr$2, -1ll, 0 );
	label$87:;
	FBSTRING* vr$5 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$5;
}

FBSTRING* HSTRIPPATH( char* FILENAME$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$88:;
	static int64 LP$1;
	static int64 P_FOUND$1;
	static int64 P$1[2];
	static struct $8FBARRAY1IlE tmp$127$1 = { (int64*)((uint8*)P$1 + -8ll), (int64*)P$1, 16ll, 8ll, 1ll, 49ll, { { 2ll, 1ll, 2ll } } };
	LP$1 = 0ll;
	label$90:;
	{
		FBSTRING* vr$1 = fb_StrAllocTempDescZEx( (char*)"\x5C", 1ll );
		FBSTRING* vr$2 = fb_StrAllocTempDescZ( (char*)FILENAME$1 );
		int64 vr$4 = fb_StrInstr( LP$1 + 1ll, (FBSTRING*)vr$2, (FBSTRING*)vr$1 );
		*(int64*)P$1 = vr$4;
		FBSTRING* vr$5 = fb_StrAllocTempDescZEx( (char*)"/", 1ll );
		FBSTRING* vr$6 = fb_StrAllocTempDescZ( (char*)FILENAME$1 );
		int64 vr$8 = fb_StrInstr( LP$1 + 1ll, (FBSTRING*)vr$6, (FBSTRING*)vr$5 );
		*(int64*)((uint64)(int64*)P$1 + 8ll) = vr$8;
		if( ((int64)-(*(int64*)P$1 == 0ll) | ((int64)-(*(int64*)((uint64)(int64*)P$1 + 8ll) > 0ll) & (int64)-(*(int64*)((uint64)(int64*)P$1 + 8ll) < *(int64*)P$1))) == 0ll) goto label$94;
		{
			P_FOUND$1 = *(int64*)((uint64)(int64*)P$1 + 8ll);
		}
		goto label$93;
		label$94:;
		{
			P_FOUND$1 = *(int64*)P$1;
		}
		label$93:;
		if( P_FOUND$1 != 0ll) goto label$96;
		{
			goto label$91;
		}
		label$96:;
		label$95:;
		LP$1 = P_FOUND$1;
	}
	label$92:;
	goto label$90;
	label$91:;
	if( LP$1 <= 0ll) goto label$98;
	{
		FBSTRING* vr$15 = fb_StrAllocTempDescZ( (char*)FILENAME$1 );
		FBSTRING* vr$16 = fb_StrMid( (FBSTRING*)vr$15, LP$1 + 1ll, -1ll );
		fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)vr$16, -1ll, 0 );
	}
	goto label$97;
	label$98:;
	{
		fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)FILENAME$1, 0ll, 0 );
	}
	label$97:;
	label$89:;
	FBSTRING* vr$20 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$20;
}

FBSTRING* HSTRIPFILENAME( char* FILENAME$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$99:;
	static int64 LP$1;
	static int64 P_FOUND$1;
	static int64 P$1[2];
	static struct $8FBARRAY1IlE tmp$129$1 = { (int64*)((uint8*)P$1 + -8ll), (int64*)P$1, 16ll, 8ll, 1ll, 49ll, { { 2ll, 1ll, 2ll } } };
	LP$1 = 0ll;
	label$101:;
	{
		FBSTRING* vr$1 = fb_StrAllocTempDescZEx( (char*)"\x5C", 1ll );
		FBSTRING* vr$2 = fb_StrAllocTempDescZ( (char*)FILENAME$1 );
		int64 vr$4 = fb_StrInstr( LP$1 + 1ll, (FBSTRING*)vr$2, (FBSTRING*)vr$1 );
		*(int64*)P$1 = vr$4;
		FBSTRING* vr$5 = fb_StrAllocTempDescZEx( (char*)"/", 1ll );
		FBSTRING* vr$6 = fb_StrAllocTempDescZ( (char*)FILENAME$1 );
		int64 vr$8 = fb_StrInstr( LP$1 + 1ll, (FBSTRING*)vr$6, (FBSTRING*)vr$5 );
		*(int64*)((uint64)(int64*)P$1 + 8ll) = vr$8;
		if( ((int64)-(*(int64*)P$1 == 0ll) | ((int64)-(*(int64*)((uint64)(int64*)P$1 + 8ll) > 0ll) & (int64)-(*(int64*)((uint64)(int64*)P$1 + 8ll) < *(int64*)P$1))) == 0ll) goto label$105;
		{
			P_FOUND$1 = *(int64*)((uint64)(int64*)P$1 + 8ll);
		}
		goto label$104;
		label$105:;
		{
			P_FOUND$1 = *(int64*)P$1;
		}
		label$104:;
		if( P_FOUND$1 != 0ll) goto label$107;
		{
			goto label$102;
		}
		label$107:;
		label$106:;
		LP$1 = P_FOUND$1;
	}
	label$103:;
	goto label$101;
	label$102:;
	if( LP$1 <= 0ll) goto label$109;
	{
		FBSTRING* vr$14 = fb_StrAllocTempDescZ( (char*)FILENAME$1 );
		FBSTRING* vr$15 = fb_LEFT( (FBSTRING*)vr$14, LP$1 );
		fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)vr$15, -1ll, 0 );
	}
	goto label$108;
	label$109:;
	{
		fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)"", 1ll, 0 );
	}
	label$108:;
	label$100:;
	FBSTRING* vr$19 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$19;
}

FBSTRING* HGETFILEEXT( char* FNAME$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$110:;
	static int64 P$1;
	static int64 LP$1;
	static FBSTRING RES$1;
	LP$1 = 0ll;
	label$112:;
	{
		FBSTRING* vr$1 = fb_StrAllocTempDescZEx( (char*)".", 1ll );
		FBSTRING* vr$2 = fb_StrAllocTempDescZ( (char*)FNAME$1 );
		int64 vr$4 = fb_StrInstr( LP$1 + 1ll, (FBSTRING*)vr$2, (FBSTRING*)vr$1 );
		P$1 = vr$4;
		if( P$1 != 0ll) goto label$116;
		{
			goto label$113;
		}
		label$116:;
		label$115:;
		LP$1 = P$1;
	}
	label$114:;
	goto label$112;
	label$113:;
	if( LP$1 != 0ll) goto label$118;
	{
		fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)"", 1ll, 0 );
	}
	goto label$117;
	label$118:;
	{
		FBSTRING* vr$7 = fb_StrAllocTempDescZ( (char*)FNAME$1 );
		FBSTRING* vr$8 = fb_StrMid( (FBSTRING*)vr$7, LP$1 + 1ll, -1ll );
		FBSTRING* vr$9 = fb_StrLcase2( (FBSTRING*)vr$8, 0 );
		fb_StrAssign( (void*)&RES$1, -1ll, (void*)vr$9, -1ll, 0 );
		FBSTRING* vr$10 = fb_StrAllocTempDescZEx( (char*)"\x5C", 1ll );
		int64 vr$11 = fb_StrInstr( 1ll, (FBSTRING*)&RES$1, (FBSTRING*)vr$10 );
		FBSTRING* vr$13 = fb_StrAllocTempDescZEx( (char*)"/", 1ll );
		int64 vr$14 = fb_StrInstr( 1ll, (FBSTRING*)&RES$1, (FBSTRING*)vr$13 );
		if( ((int64)-(vr$11 > 0ll) | (int64)-(vr$14 > 0ll)) == 0ll) goto label$120;
		{
			fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)"", 1ll, 0 );
		}
		goto label$119;
		label$120:;
		int64 vr$18 = fb_StrLen( (void*)&RES$1, -1ll );
		if( vr$18 <= 0ll) goto label$121;
		{
			if( ((int64)-((uint64)(int64)*(uint8*)*(char**)&RES$1 == 92ull) | (int64)-((uint64)(int64)*(uint8*)*(char**)&RES$1 == 47ull)) == 0ll) goto label$123;
			{
				fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)"", 1ll, 0 );
			}
			goto label$122;
			label$123:;
			{
				fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)&RES$1, -1ll, 0 );
			}
			label$122:;
		}
		label$121:;
		label$119:;
	}
	label$117:;
	label$111:;
	FBSTRING* vr$29 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$29;
}

void HREPLACESLASH( char* S$1, int64 CHAR$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$124:;
	{
		int64 I$2;
		I$2 = 0ll;
		int64 TMP$130$2;
		int64 vr$0 = fb_StrLen( (void*)S$1, 0ll );
		TMP$130$2 = vr$0 + -1ll;
		goto label$126;
		label$129:;
		{
			if( ((int64)-((int64)(uint8)*(char*)((uint8*)S$1 + I$2) == 92ll) | (int64)-((int64)(uint8)*(char*)((uint8*)S$1 + I$2) == 47ll)) == 0ll) goto label$131;
			{
				*(char*)((uint8*)S$1 + I$2) = (uint8)CHAR$1;
			}
			label$131:;
			label$130:;
		}
		label$127:;
		I$2 = I$2 + 1ll;
		label$126:;
		if( I$2 <= TMP$130$2) goto label$129;
		label$128:;
	}
	label$125:;
}

FBSTRING* PATHNORMALIZEHOST( FBSTRING* PATH$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$132:;
	fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)PATH$1, -1ll, 0 );
	label$133:;
	FBSTRING* vr$3 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$3;
}

FBSTRING* PATHSTRIPDIV( FBSTRING* PATH$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$134:;
	int64 LENGTH$1;
	int64 vr$1 = fb_StrLen( (void*)PATH$1, -1ll );
	LENGTH$1 = vr$1;
	if( LENGTH$1 <= 0ll) goto label$137;
	{
		LENGTH$1 = LENGTH$1 + -1ll;
		{
			uint8 TMP$131$3;
			TMP$131$3 = *(uint8*)((uint8*)*(char**)PATH$1 + LENGTH$1);
			if( (uint64)(int64)TMP$131$3 != 47ull) goto label$139;
			label$140:;
			{
				FBSTRING* vr$6 = fb_LEFT( (FBSTRING*)PATH$1, LENGTH$1 );
				fb_StrInit( (void*)&fb$result$1, -1ll, (void*)vr$6, -1ll, 0 );
				goto label$135;
			}
			label$139:;
			label$138:;
		}
	}
	label$137:;
	label$136:;
	fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)PATH$1, -1ll, 0 );
	label$135:;
	FBSTRING* vr$10 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$10;
}

int64 PATHISABSOLUTE( char* PATH$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$141:;
	fb$result$1 = (int64)-((uint64)(int64)*(uint8*)PATH$1 == 47ull);
	label$142:;
	return fb$result$1;
}

int64 HCHECKFILEFORMAT( int64 F$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$143:;
	uint8 BOM$1[4];
	__builtin_memset( (uint8*)BOM$1, 0, 4ll );
	struct $8FBARRAY1IhE tmp$132$1;
	*(uint8**)&tmp$132$1 = (uint8*)BOM$1;
	*(uint8**)((uint8*)&tmp$132$1 + 8ll) = (uint8*)BOM$1;
	*(int64*)((uint8*)&tmp$132$1 + 16ll) = 4ll;
	*(int64*)((uint8*)&tmp$132$1 + 24ll) = 1ll;
	*(int64*)((uint8*)&tmp$132$1 + 32ll) = 1ll;
	*(int64*)((uint8*)&tmp$132$1 + 40ll) = 49ll;
	*(int64*)((uint8*)&tmp$132$1 + 48ll) = 4ll;
	*(int64*)((uint8*)&tmp$132$1 + 56ll) = 0ll;
	*(int64*)((uint8*)&tmp$132$1 + 64ll) = 3ll;
	$13FBFILE_FORMAT FMT$1;
	__builtin_memset( &FMT$1, 0, 8ll );
	FMT$1 = 0ll;
	int32 vr$7 = fb_FileGetArrayLarge( (int32)F$1, 0ll, (struct $7FBARRAYIvE*)&tmp$132$1 );
	if( (int64)vr$7 != 0ll) goto label$146;
	{
		int64 TMP$133$2;
		int64 TMP$134$2;
		int64 TMP$135$2;
		int64 TMP$136$2;
		int64 TMP$137$2;
		int64 TMP$138$2;
		if( (int64)*(uint8*)BOM$1 != 0ll) goto label$147;
		TMP$133$2 = (int64)-((int64)*(uint8*)((uint64)(uint8*)BOM$1 + 1ll) == 0ll);
		goto label$180;
		label$147:;
		TMP$133$2 = 0ll;
		label$180:;
		if( TMP$133$2 == 0ll) goto label$148;
		TMP$134$2 = (int64)-((int64)*(uint8*)((uint64)(uint8*)BOM$1 + 2ll) == 254ll);
		goto label$181;
		label$148:;
		TMP$134$2 = 0ll;
		label$181:;
		if( TMP$134$2 == 0ll) goto label$149;
		TMP$135$2 = (int64)-((int64)*(uint8*)((uint64)(uint8*)BOM$1 + 3ll) == 255ll);
		goto label$182;
		label$149:;
		TMP$135$2 = 0ll;
		label$182:;
		if( TMP$135$2 == 0ll) goto label$151;
		{
			FMT$1 = 5ll;
		}
		goto label$150;
		label$151:;
		if( (int64)*(uint8*)BOM$1 != 255ll) goto label$153;
		TMP$136$2 = (int64)-((int64)*(uint8*)((uint64)(uint8*)BOM$1 + 1ll) == 254ll);
		goto label$183;
		label$153:;
		TMP$136$2 = 0ll;
		label$183:;
		if( TMP$136$2 == 0ll) goto label$154;
		TMP$137$2 = (int64)-((int64)*(uint8*)((uint64)(uint8*)BOM$1 + 2ll) == 0ll);
		goto label$184;
		label$154:;
		TMP$137$2 = 0ll;
		label$184:;
		if( TMP$137$2 == 0ll) goto label$155;
		TMP$138$2 = (int64)-((int64)*(uint8*)((uint64)(uint8*)BOM$1 + 3ll) == 0ll);
		goto label$185;
		label$155:;
		TMP$138$2 = 0ll;
		label$185:;
		if( TMP$138$2 == 0ll) goto label$152;
		{
			FMT$1 = 4ll;
		}
		goto label$150;
		label$152:;
		{
			int64 TMP$139$3;
			int64 TMP$140$3;
			if( (int64)*(uint8*)BOM$1 != 239ll) goto label$156;
			TMP$139$3 = (int64)-((int64)*(uint8*)((uint64)(uint8*)BOM$1 + 1ll) == 187ll);
			goto label$186;
			label$156:;
			TMP$139$3 = 0ll;
			label$186:;
			if( TMP$139$3 == 0ll) goto label$157;
			TMP$140$3 = (int64)-((int64)*(uint8*)((uint64)(uint8*)BOM$1 + 2ll) == 191ll);
			goto label$187;
			label$157:;
			TMP$140$3 = 0ll;
			label$187:;
			if( TMP$140$3 == 0ll) goto label$159;
			{
				FMT$1 = 1ll;
			}
			goto label$158;
			label$159:;
			{
				int64 TMP$141$4;
				int64 TMP$142$4;
				if( (int64)*(uint8*)BOM$1 != 255ll) goto label$160;
				TMP$141$4 = (int64)-((int64)*(uint8*)((uint64)(uint8*)BOM$1 + 1ll) == 254ll);
				goto label$188;
				label$160:;
				TMP$141$4 = 0ll;
				label$188:;
				if( TMP$141$4 == 0ll) goto label$162;
				{
					FMT$1 = 2ll;
				}
				goto label$161;
				label$162:;
				if( (int64)*(uint8*)BOM$1 != 254ll) goto label$164;
				TMP$142$4 = (int64)-((int64)*(uint8*)((uint64)(uint8*)BOM$1 + 1ll) == 255ll);
				goto label$189;
				label$164:;
				TMP$142$4 = 0ll;
				label$189:;
				if( TMP$142$4 == 0ll) goto label$163;
				{
					FMT$1 = 3ll;
				}
				label$163:;
				label$161:;
			}
			label$158:;
		}
		label$150:;
		{
			if( FMT$1 != 0ll) goto label$166;
			label$167:;
			{
				int32 vr$35 = fb_FileSeekLarge( (int32)F$1, 1ll );
				if( (int64)vr$35 == 0ll) goto label$168;
				void* vr$37 = fb_ErrorThrowAt( 492, (char*)"/home/jkfirth/fbc-resolute-package-src-1.20.2-11/src/compiler/hlp.bas", (void*)0ull, (void*)0ull );
				goto *vr$37;
				label$168:;
			}
			goto label$165;
			label$166:;
			if( FMT$1 != 1ll) goto label$169;
			label$170:;
			{
				int32 vr$39 = fb_FileSeekLarge( (int32)F$1, 4ll );
				if( (int64)vr$39 == 0ll) goto label$171;
				void* vr$41 = fb_ErrorThrowAt( 495, (char*)"/home/jkfirth/fbc-resolute-package-src-1.20.2-11/src/compiler/hlp.bas", (void*)0ull, (void*)0ull );
				goto *vr$41;
				label$171:;
			}
			goto label$165;
			label$169:;
			if( FMT$1 == 2ll) goto label$173;
			label$174:;
			if( FMT$1 != 3ll) goto label$172;
			label$173:;
			{
				int32 vr$43 = fb_FileSeekLarge( (int32)F$1, 3ll );
				if( (int64)vr$43 == 0ll) goto label$175;
				void* vr$45 = fb_ErrorThrowAt( 499, (char*)"/home/jkfirth/fbc-resolute-package-src-1.20.2-11/src/compiler/hlp.bas", (void*)0ull, (void*)0ull );
				goto *vr$45;
				label$175:;
			}
			goto label$165;
			label$172:;
			if( FMT$1 == 4ll) goto label$177;
			label$178:;
			if( FMT$1 != 5ll) goto label$176;
			label$177:;
			{
				int32 vr$47 = fb_FileSeekLarge( (int32)F$1, 5ll );
				if( (int64)vr$47 == 0ll) goto label$179;
				void* vr$49 = fb_ErrorThrowAt( 503, (char*)"/home/jkfirth/fbc-resolute-package-src-1.20.2-11/src/compiler/hlp.bas", (void*)0ull, (void*)0ull );
				goto *vr$49;
				label$179:;
			}
			label$176:;
			label$165:;
		}
	}
	label$146:;
	label$145:;
	fb$result$1 = FMT$1;
	label$144:;
	return fb$result$1;
}

FBSTRING* HCURDIR( void )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING TMP$143$1;
	FBSTRING TMP$144$1;
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$190:;
	__builtin_memset( &TMP$144$1, 0, 24ll );
	__builtin_memset( &TMP$143$1, 0, 24ll );
	FBSTRING* vr$3 = fb_CurDir(  );
	fb_StrAssign( (void*)&TMP$143$1, -1ll, (void*)vr$3, -1ll, 0 );
	FBSTRING* vr$6 = PATHNORMALIZEHOST( &TMP$143$1 );
	fb_StrAssign( (void*)&TMP$144$1, -1ll, (void*)vr$6, -1ll, 0 );
	FBSTRING* vr$9 = PATHSTRIPDIV( &TMP$144$1 );
	fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)vr$9, -1ll, 0 );
	fb_StrDelete( (FBSTRING*)&TMP$144$1 );
	fb_StrDelete( (FBSTRING*)&TMP$143$1 );
	label$191:;
	FBSTRING* vr$14 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$14;
}

FBSTRING* PATHSTRIPCURDIR( FBSTRING* PATH$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING TMP$145$1;
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$192:;
	FBSTRING PWD$1;
	FBSTRING* vr$1 = HCURDIR(  );
	__builtin_memset( &TMP$145$1, 0, 24ll );
	FBSTRING* vr$4 = fb_StrConcat( &TMP$145$1, (void*)vr$1, -1ll, (void*)"/", 2ll );
	fb_StrInit( (void*)&PWD$1, -1ll, (void*)vr$4, -1ll, 0 );
	int64 vr$8 = fb_StrLen( (void*)&PWD$1, -1ll );
	FBSTRING* vr$9 = fb_LEFT( (FBSTRING*)PATH$1, vr$8 );
	int32 vr$10 = fb_StrCompare( (void*)vr$9, -1ll, (void*)&PWD$1, -1ll );
	if( (int64)vr$10 != 0ll) goto label$195;
	{
		int64 vr$12 = fb_StrLen( (void*)PATH$1, -1ll );
		int64 vr$14 = fb_StrLen( (void*)&PWD$1, -1ll );
		FBSTRING* vr$16 = fb_RIGHT( (FBSTRING*)PATH$1, vr$12 - vr$14 );
		fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)vr$16, -1ll, 0 );
	}
	goto label$194;
	label$195:;
	{
		fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)PATH$1, -1ll, 0 );
	}
	label$194:;
	fb_StrDelete( (FBSTRING*)&PWD$1 );
	label$193:;
	FBSTRING* vr$21 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$21;
}

int64 HISVALIDSYMBOLNAME( char* SYM$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 TMP$148$1;
	int64 TMP$150$1;
	int64 TMP$151$1;
	int64 TMP$153$1;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$196:;
	if( SYM$1 != (char*)0ull) goto label$199;
	{
		goto label$197;
		label$199:;
	}
	int64 SYMLEN$1;
	int64 vr$1 = fb_StrLen( (void*)SYM$1, 0ll );
	SYMLEN$1 = vr$1;
	if( SYMLEN$1 != 0ll) goto label$201;
	{
		goto label$197;
		label$201:;
	}
	if( (uint64)(int64)(uint8)*SYM$1 < 97ull) goto label$202;
	TMP$148$1 = (int64)-((uint64)(int64)(uint8)*SYM$1 <= 122ull);
	goto label$220;
	label$202:;
	TMP$148$1 = 0ll;
	label$220:;
	if( TMP$148$1 != 0ll) goto label$204;
	if( (uint64)(int64)(uint8)*SYM$1 > 90ull) goto label$203;
	TMP$150$1 = (int64)-((uint64)(int64)(uint8)*SYM$1 >= 65ull);
	goto label$222;
	label$203:;
	TMP$150$1 = 0ll;
	label$222:;
	TMP$151$1 = (int64)-(TMP$150$1 != 0ll);
	goto label$221;
	label$204:;
	TMP$151$1 = -1ll;
	label$221:;
	if( TMP$151$1 != 0ll) goto label$205;
	TMP$153$1 = (int64)-((uint64)(int64)(uint8)*SYM$1 == 95ull);
	goto label$223;
	label$205:;
	TMP$153$1 = -1ll;
	label$223:;
	if( TMP$153$1 != 0ll) goto label$207;
	{
		goto label$197;
		label$207:;
	}
	{
		int64 I$2;
		I$2 = 1ll;
		int64 TMP$154$2;
		TMP$154$2 = SYMLEN$1 + -1ll;
		goto label$208;
		label$211:;
		{
			int64 TMP$155$3;
			int64 TMP$156$3;
			int64 TMP$157$3;
			int64 TMP$158$3;
			int64 TMP$159$3;
			int64 TMP$160$3;
			if( (uint64)(int64)(uint8)*(char*)((uint8*)SYM$1 + I$2) < 97ull) goto label$212;
			TMP$155$3 = (int64)-((uint64)(int64)(uint8)*(char*)((uint8*)SYM$1 + I$2) <= 122ull);
			goto label$224;
			label$212:;
			TMP$155$3 = 0ll;
			label$224:;
			if( TMP$155$3 != 0ll) goto label$214;
			if( (uint64)(int64)(uint8)*(char*)((uint8*)SYM$1 + I$2) > 90ull) goto label$213;
			TMP$156$3 = (int64)-((uint64)(int64)(uint8)*(char*)((uint8*)SYM$1 + I$2) >= 65ull);
			goto label$226;
			label$213:;
			TMP$156$3 = 0ll;
			label$226:;
			TMP$157$3 = (int64)-(TMP$156$3 != 0ll);
			goto label$225;
			label$214:;
			TMP$157$3 = -1ll;
			label$225:;
			if( TMP$157$3 != 0ll) goto label$215;
			TMP$158$3 = (int64)-((uint64)(int64)(uint8)*(char*)((uint8*)SYM$1 + I$2) == 95ull);
			goto label$227;
			label$215:;
			TMP$158$3 = -1ll;
			label$227:;
			if( TMP$158$3 != 0ll) goto label$217;
			if( (uint64)(int64)(uint8)*(char*)((uint8*)SYM$1 + I$2) > 57ull) goto label$216;
			TMP$159$3 = (int64)-((uint64)(int64)(uint8)*(char*)((uint8*)SYM$1 + I$2) >= 48ull);
			goto label$229;
			label$216:;
			TMP$159$3 = 0ll;
			label$229:;
			TMP$160$3 = (int64)-(TMP$159$3 != 0ll);
			goto label$228;
			label$217:;
			TMP$160$3 = -1ll;
			label$228:;
			if( TMP$160$3 != 0ll) goto label$219;
			{
				goto label$197;
				label$219:;
			}
		}
		label$209:;
		I$2 = I$2 + 1ll;
		label$208:;
		if( I$2 <= TMP$154$2) goto label$211;
		label$210:;
	}
	fb$result$1 = -1ll;
	label$197:;
	return fb$result$1;
}

FBSTRING* STRUNQUOTE( FBSTRING* S$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$234:;
	int64 vr$1 = STRISQUOTED( S$1 );
	if( vr$1 == 0ll) goto label$237;
	{
		int64 vr$2 = fb_StrLen( (void*)S$1, -1ll );
		FBSTRING* vr$4 = fb_StrMid( (FBSTRING*)S$1, 2ll, vr$2 + -2ll );
		fb_StrInit( (void*)&fb$result$1, -1ll, (void*)vr$4, -1ll, 0 );
		goto label$235;
	}
	label$237:;
	label$236:;
	fb_StrInit( (void*)&fb$result$1, -1ll, (void*)S$1, -1ll, 0 );
	goto label$235;
	label$235:;
	FBSTRING* vr$8 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$8;
}

static void _ZN11TSTRSETITEMaSERKS_( struct $11TSTRSETITEM* THIS$1, const struct $11TSTRSETITEM* __FB_RHS__$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$4:;
	fb_StrAssign( (void*)THIS$1, -1ll, (void*)__FB_RHS__$1, -1ll, 0 );
	*(int64*)((uint8*)THIS$1 + 24ll) = *(int64*)((uint8*)__FB_RHS__$1 + 24ll);
	*(struct $8HASHITEM**)((uint8*)THIS$1 + 32ll) = *(struct $8HASHITEM**)((uint8*)__FB_RHS__$1 + 32ll);
	label$5:;
}

static int64 HFINDEXTBEGIN( FBSTRING* PATH$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$75:;
	{
		int64 I$2;
		int64 vr$1 = fb_StrLen( (void*)PATH$1, -1ll );
		I$2 = vr$1 + -1ll;
		goto label$77;
		label$80:;
		{
			{
				uint8 TMP$126$4;
				TMP$126$4 = *(uint8*)((uint8*)*(char**)PATH$1 + I$2);
				if( (uint64)(int64)TMP$126$4 != 46ull) goto label$82;
				label$83:;
				{
					fb$result$1 = I$2;
					goto label$76;
				}
				goto label$81;
				label$82:;
				if( (uint64)(int64)TMP$126$4 != 47ull) goto label$84;
				label$85:;
				{
					goto label$79;
				}
				label$84:;
				label$81:;
			}
		}
		label$78:;
		I$2 = I$2 + -1ll;
		label$77:;
		if( I$2 >= 0ll) goto label$80;
		label$79:;
	}
	int64 vr$8 = fb_StrLen( (void*)PATH$1, -1ll );
	fb$result$1 = vr$8;
	label$76:;
	return fb$result$1;
}

static int64 STRISQUOTED( FBSTRING* S$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$230:;
	int64 LAST$1;
	int64 vr$1 = fb_StrLen( (void*)S$1, -1ll );
	LAST$1 = vr$1 + -1ll;
	if( LAST$1 >= 1ll) goto label$233;
	{
		fb$result$1 = 0ll;
		goto label$231;
	}
	label$233:;
	label$232:;
	fb$result$1 = ((int64)-((uint64)(int64)*(uint8*)*(char**)S$1 == 34ull) & (int64)-((uint64)(int64)*(uint8*)((uint8*)*(char**)S$1 + LAST$1) == 34ull)) | ((int64)-((uint64)(int64)*(uint8*)*(char**)S$1 == 39ull) & (int64)-((uint64)(int64)*(uint8*)((uint8*)*(char**)S$1 + LAST$1) == 39ull));
	goto label$231;
	label$231:;
	return fb$result$1;
}
