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 $8HASHITEM;
struct $8HASHITEM {
	char* NAME;
	void* DATA;
	struct $8HASHITEM* PREV;
	struct $8HASHITEM* NEXT;
};
#define __FB_STATIC_ASSERT( expr ) extern int __$fb_structsizecheck[(expr) ? 1 : -1]
__FB_STATIC_ASSERT( sizeof( struct $8HASHITEM ) == 32 );
struct $11TSTRSETITEM {
	FBSTRING S;
	int64 USERDATA;
	struct $8HASHITEM* HASHITEM;
};
__FB_STATIC_ASSERT( sizeof( struct $11TSTRSETITEM ) == 40 );
struct $12SECTIONENTRY {
	FBSTRING TEXT;
	int64 OLD;
	int64 INDENT;
};
__FB_STATIC_ASSERT( sizeof( struct $12SECTIONENTRY ) == 40 );
struct $7TLISTTB;
struct $7TLISTTB {
	struct $7TLISTTB* NEXT;
	void* NODETB;
	int64 NODES;
};
__FB_STATIC_ASSERT( sizeof( struct $7TLISTTB ) == 24 );
struct $9TLISTNODE;
struct $9TLISTNODE {
	struct $9TLISTNODE* PREV;
	struct $9TLISTNODE* NEXT;
};
__FB_STATIC_ASSERT( sizeof( struct $9TLISTNODE ) == 16 );
typedef int64 $10LIST_FLAGS;
struct $5TLIST {
	struct $7TLISTTB* TBHEAD;
	struct $7TLISTTB* TBTAIL;
	int64 NODES;
	int64 NODELEN;
	struct $9TLISTNODE* FHEAD;
	void* HEAD;
	void* TAIL;
	$10LIST_FLAGS FLAGS;
};
__FB_STATIC_ASSERT( sizeof( struct $5TLIST ) == 64 );
struct $8IRHLCCTX {
	struct $12SECTIONENTRY SECTIONS[129];
	int64 SECTION;
	int64 SECTIONGOSUBLEVEL;
	int64 LINENUM;
	FBSTRING ESCAPEDINPUTFILENAME;
	uint64 USEDBUILTINS;
	struct $5TLIST ANONSTACK;
	FBSTRING VARINI;
	int64 VARINISCOPELEVEL;
	FBSTRING FBCTINF;
	FBSTRING EXPORTS;
	struct $5TLIST EXPRNODES;
	FBSTRING EXPRTEXT;
	struct $5TLIST EXPRCACHE;
	int64 GLOBALVARPASS;
};
__FB_STATIC_ASSERT( sizeof( struct $8IRHLCCTX ) == 5520 );
typedef int64 $6IR_OPT;
typedef int64 $12FB_SYMBCLASS;
typedef int64 $13FB_SYMBATTRIB;
typedef int64 $13FB_PROCATTRIB;
typedef int64 $12FB_SYMBSTATS;
struct $9FB_SYMBID {
	char* NAME;
	char* ALIAS;
	char* MANGLED;
};
__FB_STATIC_ASSERT( sizeof( struct $9FB_SYMBID ) == 24 );
typedef int64 $11FB_DATATYPE;
struct $8FBSYMBOL;
typedef int64 $13AST_NODECLASS;
union $7FBVALUE {
	struct $8FBSYMBOL* S;
	int64 I;
	double F;
};
__FB_STATIC_ASSERT( sizeof( union $7FBVALUE ) == 8 );
struct $14AST_NODE_CONST {
	union {
		union $7FBVALUE VALUE;
		struct $8FBSYMBOL* S;
		int64 I;
		double F;
	};
	int64 HASSUFFIX;
};
__FB_STATIC_ASSERT( sizeof( struct $14AST_NODE_CONST ) == 16 );
struct $12AST_NODE_VAR {
	int64 OFS;
};
__FB_STATIC_ASSERT( sizeof( struct $12AST_NODE_VAR ) == 8 );
struct $12AST_NODE_IDX {
	int64 OFS;
	int64 MULT;
};
__FB_STATIC_ASSERT( sizeof( struct $12AST_NODE_IDX ) == 16 );
struct $12AST_NODE_PTR {
	int64 OFS;
};
__FB_STATIC_ASSERT( sizeof( struct $12AST_NODE_PTR ) == 8 );
struct $7ASTNODE;
struct $19AST_TMPSTRLIST_ITEM;
struct $19AST_TMPSTRLIST_ITEM {
	struct $8FBSYMBOL* SYM;
	struct $7ASTNODE* SRCTREE;
	struct $19AST_TMPSTRLIST_ITEM* PREV;
};
__FB_STATIC_ASSERT( sizeof( struct $19AST_TMPSTRLIST_ITEM ) == 24 );
struct $13AST_NODE_CALL {
	int64 ISRTL;
	int64 ARGS;
	struct $8FBSYMBOL* CURRARG;
	struct $7ASTNODE* ARGTAIL;
	struct $19AST_TMPSTRLIST_ITEM* STRTAIL;
	struct $8FBSYMBOL* TMPRES;
	struct $7ASTNODE* PROFBEGIN;
	struct $7ASTNODE* PROFEND;
};
__FB_STATIC_ASSERT( sizeof( struct $13AST_NODE_CALL ) == 64 );
struct $12AST_NODE_ARG {
	int64 MODE;
	int64 LGT;
};
__FB_STATIC_ASSERT( sizeof( struct $12AST_NODE_ARG ) == 16 );
struct $12AST_NODE_IIF {
	struct $8FBSYMBOL* FALSELABEL;
};
__FB_STATIC_ASSERT( sizeof( struct $12AST_NODE_IIF ) == 8 );
typedef int64 $9AST_OPOPT;
struct $11AST_NODE_OP {
	int64 OP;
	$9AST_OPOPT OPTIONS;
	struct $8FBSYMBOL* EX;
};
__FB_STATIC_ASSERT( sizeof( struct $11AST_NODE_OP ) == 24 );
struct $13AST_NODE_LOAD {
	int64 ISRES;
};
__FB_STATIC_ASSERT( sizeof( struct $13AST_NODE_LOAD ) == 8 );
struct $14AST_NODE_LABEL {
	int64 FLUSH;
};
__FB_STATIC_ASSERT( sizeof( struct $14AST_NODE_LABEL ) == 8 );
struct $13AST_NODE_OFFS {
	int64 OFS;
};
__FB_STATIC_ASSERT( sizeof( struct $13AST_NODE_OFFS ) == 8 );
struct $12AST_NODE_LIT {
	char* TEXT;
};
__FB_STATIC_ASSERT( sizeof( struct $12AST_NODE_LIT ) == 8 );
typedef int64 $14AST_ASMTOKTYPE;
struct $9ASTASMTOK;
struct $9ASTASMTOK {
	$14AST_ASMTOKTYPE TYPE;
	union {
		struct $8FBSYMBOL* SYM;
		char* TEXT;
	};
	struct $9ASTASMTOK* NEXT;
};
__FB_STATIC_ASSERT( sizeof( struct $9ASTASMTOK ) == 24 );
struct $12AST_NODE_ASM {
	struct $9ASTASMTOK* TOKHEAD;
};
__FB_STATIC_ASSERT( sizeof( struct $12AST_NODE_ASM ) == 8 );
struct $14AST_NODE_JMPTB {
	uint64* VALUES;
	struct $8FBSYMBOL** LABELS;
	int64 LABELCOUNT;
	struct $8FBSYMBOL* DEFLABEL;
	uint64 BIAS;
	uint64 SPAN;
};
__FB_STATIC_ASSERT( sizeof( struct $14AST_NODE_JMPTB ) == 48 );
struct $12AST_NODE_DBG {
	int64 EX;
	char* FILENAME;
	int64 OP;
};
__FB_STATIC_ASSERT( sizeof( struct $12AST_NODE_DBG ) == 24 );
struct $12AST_NODE_MEM {
	int64 OP;
	int64 BYTES;
	int64 FILLCHAR;
};
__FB_STATIC_ASSERT( sizeof( struct $12AST_NODE_MEM ) == 24 );
struct $14AST_NODE_STACK {
	int64 OP;
};
__FB_STATIC_ASSERT( sizeof( struct $14AST_NODE_STACK ) == 8 );
struct $16AST_NODE_TYPEINI {
	int64 OFS;
	union {
		int64 BYTES;
		int64 ELEMENTS;
	};
	struct $8FBSYMBOL* SCP;
	struct $8FBSYMBOL* LASTSCP;
};
__FB_STATIC_ASSERT( sizeof( struct $16AST_NODE_TYPEINI ) == 32 );
struct $21AST_NODE_TYPEINISCOPE {
	int64 IS_ARRAY;
};
__FB_STATIC_ASSERT( sizeof( struct $21AST_NODE_TYPEINISCOPE ) == 8 );
struct $13AST_BREAKLIST {
	struct $7ASTNODE* HEAD;
	struct $7ASTNODE* TAIL;
};
__FB_STATIC_ASSERT( sizeof( struct $13AST_BREAKLIST ) == 16 );
struct $13AST_NODE_PROC {
	int64 ISMAIN;
	struct $7ASTNODE* DECL_LAST;
};
__FB_STATIC_ASSERT( sizeof( struct $13AST_NODE_PROC ) == 16 );
struct $14AST_NODE_BLOCK {
	struct $7ASTNODE* PARENT;
	int64 INISTMT;
	int64 ENDSTMT;
	struct $8FBSYMBOL* INITLABEL;
	struct $8FBSYMBOL* EXITLABEL;
	struct $13AST_BREAKLIST BREAKLIST;
	struct $13AST_NODE_PROC PROC;
};
__FB_STATIC_ASSERT( sizeof( struct $14AST_NODE_BLOCK ) == 72 );
struct $14AST_NODE_BREAK {
	struct $7ASTNODE* PARENT;
	int64 SCOPE;
	int64 LINENUM;
	int64 STMTNUM;
};
__FB_STATIC_ASSERT( sizeof( struct $14AST_NODE_BREAK ) == 32 );
struct $17AST_NODE_DATASTMT {
	union {
		int64 ID;
		int64 ELMTS;
	};
};
__FB_STATIC_ASSERT( sizeof( struct $17AST_NODE_DATASTMT ) == 8 );
struct $13AST_NODE_LINK {
	int64 RET;
};
__FB_STATIC_ASSERT( sizeof( struct $13AST_NODE_LINK ) == 8 );
struct $13AST_NODE_CAST {
	int64 DOCONV;
	int64 DO_CONVFD2FS;
	int64 CONVCONST;
};
__FB_STATIC_ASSERT( sizeof( struct $13AST_NODE_CAST ) == 24 );
struct $7ASTNODE {
	$13AST_NODECLASS CLASS;
	int64 DTYPE;
	struct $8FBSYMBOL* SUBTYPE;
	struct $8FBSYMBOL* SYM;
	int64 VECTOR;
	union {
		struct $14AST_NODE_CONST VAL;
		struct $12AST_NODE_VAR VAR_;
		struct $12AST_NODE_IDX IDX;
		struct $12AST_NODE_PTR PTR;
		struct $13AST_NODE_CALL CALL;
		struct $12AST_NODE_ARG ARG;
		struct $12AST_NODE_IIF IIF;
		struct $11AST_NODE_OP OP;
		struct $13AST_NODE_LOAD LOD;
		struct $14AST_NODE_LABEL LBL;
		struct $13AST_NODE_OFFS OFS;
		struct $12AST_NODE_LIT LIT;
		struct $12AST_NODE_ASM ASM;
		struct $14AST_NODE_JMPTB JMPTB;
		struct $12AST_NODE_DBG DBG;
		struct $12AST_NODE_MEM MEM;
		struct $14AST_NODE_STACK STACK;
		struct $16AST_NODE_TYPEINI TYPEINI;
		struct $21AST_NODE_TYPEINISCOPE TYPEINISCOPE;
		struct $14AST_NODE_BLOCK BLOCK;
		struct $14AST_NODE_BREAK BREAK;
		struct $17AST_NODE_DATASTMT DATA;
		struct $13AST_NODE_LINK LINK;
		struct $13AST_NODE_CAST CAST;
	};
	struct $7ASTNODE* L;
	struct $7ASTNODE* R;
	struct $7ASTNODE* PREV;
	struct $7ASTNODE* NEXT;
};
__FB_STATIC_ASSERT( sizeof( struct $7ASTNODE ) == 144 );
struct $10FBARRAYDIM {
	int64 LOWER;
	int64 UPPER;
};
__FB_STATIC_ASSERT( sizeof( struct $10FBARRAYDIM ) == 16 );
struct $9FBS_ARRAY {
	int64 DIMENSIONS;
	struct $10FBARRAYDIM* DIMTB;
	int64 DIFF;
	int64 ELEMENTS;
	struct $8FBSYMBOL* DESC;
	struct $8FBSYMBOL* DESCTYPE;
};
__FB_STATIC_ASSERT( sizeof( struct $9FBS_ARRAY ) == 48 );
struct $10FBVAR_DESC {
	struct $8FBSYMBOL* ARRAY;
};
__FB_STATIC_ASSERT( sizeof( struct $10FBVAR_DESC ) == 8 );
struct $10FBVAR_DATA {
	struct $8FBSYMBOL* PREV;
};
__FB_STATIC_ASSERT( sizeof( struct $10FBVAR_DATA ) == 8 );
struct $7FBS_VAR {
	union {
		char* LITTEXT;
		uint32* LITTEXTW;
		struct $7ASTNODE* INITREE;
	};
	struct $9FBS_ARRAY ARRAY;
	struct $10FBVAR_DESC DESC;
	int64 STMTNUM;
	int64 ALIGN;
	struct $10FBVAR_DATA DATA;
	int64 BITPOS;
	int64 BITS;
};
__FB_STATIC_ASSERT( sizeof( struct $7FBS_VAR ) == 104 );
struct $9FBS_CONST {
	union {
		union $7FBVALUE VALUE;
		struct $8FBSYMBOL* S;
		int64 I;
		double F;
	};
	int64 HASSUFFIX;
};
__FB_STATIC_ASSERT( sizeof( struct $9FBS_CONST ) == 16 );
struct $10FBSYMBOLTB {
	struct $8FBSYMBOL* OWNER;
	struct $8FBSYMBOL* HEAD;
	struct $8FBSYMBOL* TAIL;
};
__FB_STATIC_ASSERT( sizeof( struct $10FBSYMBOLTB ) == 24 );
struct $8HASHLIST {
	struct $8HASHITEM* HEAD;
	struct $8HASHITEM* TAIL;
};
__FB_STATIC_ASSERT( sizeof( struct $8HASHLIST ) == 16 );
struct $5THASH {
	struct $8HASHLIST* LIST;
	int64 NODES;
	int64 DELSTR;
};
__FB_STATIC_ASSERT( sizeof( struct $5THASH ) == 24 );
struct $8FBHASHTB;
struct $8FBHASHTB {
	struct $8FBSYMBOL* OWNER;
	struct $5THASH TB;
	struct $8FBHASHTB* PREV;
	struct $8FBHASHTB* NEXT;
};
__FB_STATIC_ASSERT( sizeof( struct $8FBHASHTB ) == 48 );
struct $9FBSYMLIST {
	struct $8FBSYMBOL* HEAD;
	struct $8FBSYMBOL* TAIL;
};
__FB_STATIC_ASSERT( sizeof( struct $9FBSYMLIST ) == 16 );
struct $10FBSYMCHAIN;
struct $10FBSYMCHAIN {
	struct $8FBSYMBOL* SYM;
	struct $10FBSYMCHAIN* NEXT;
	int64 ISIMPORT;
	struct $10FBSYMCHAIN* PREV;
	struct $8HASHITEM* ITEM;
	struct $10FBSYMCHAIN* IMP_NEXT;
};
__FB_STATIC_ASSERT( sizeof( struct $10FBSYMCHAIN ) == 48 );
struct $13FBNAMESPC_EXT {
	struct $9FBSYMLIST IMPLIST;
	struct $9FBSYMLIST EXPLIST;
	int64 CNT;
	struct $10FBSYMCHAIN* IMPSYM_HEAD;
	struct $10FBSYMCHAIN* IMPSYM_TAIL;
};
__FB_STATIC_ASSERT( sizeof( struct $13FBNAMESPC_EXT ) == 56 );
struct $9FBNAMESPC {
	struct $10FBSYMBOLTB SYMTB;
	struct $8FBHASHTB HASHTB;
	struct $13FBNAMESPC_EXT* EXT;
};
__FB_STATIC_ASSERT( sizeof( struct $9FBNAMESPC ) == 80 );
typedef int64 $15FB_STRUCT_INREG;
struct $13FB_STRUCT_DBG {
	int64 TYPENUM;
};
__FB_STATIC_ASSERT( sizeof( struct $13FB_STRUCT_DBG ) == 8 );
struct $12FB_STRUCTEXT {
	struct $8FBSYMBOL* CTORHEAD;
	struct $8FBSYMBOL* DEFCTOR;
	struct $8FBSYMBOL* COPYCTOR;
	struct $8FBSYMBOL* COPYCTORCONST;
	struct $8FBSYMBOL* DTOR1;
	struct $8FBSYMBOL* DTOR0;
	struct $8FBSYMBOL* COPYLETOP;
	struct $8FBSYMBOL* COPYLETOPCONST;
	struct $8FBSYMBOL* OPOVLTB[28];
	int64 VTABLEELEMENTS;
	struct $8FBSYMBOL* VTABLE;
	struct $8FBSYMBOL* RTTI;
	int64 ABSTRACTCOUNT;
};
__FB_STATIC_ASSERT( sizeof( struct $12FB_STRUCTEXT ) == 320 );
struct $10FBS_STRUCT {
	struct $9FBNAMESPC NS;
	struct $8FBSYMBOL* BASE;
	struct $8FBSYMBOL* ANONPARENT;
	int64 NATALIGN;
	int64 UNPADLGT;
	int32 OPTIONS;
	uint8 BITPOS;
	uint8 ALIGN;
	$11FB_DATATYPE RETDTYPE;
	$15FB_STRUCT_INREG RETIN2REGS;
	struct $13FB_STRUCT_DBG DBG;
	struct $12FB_STRUCTEXT* EXT;
};
__FB_STATIC_ASSERT( sizeof( struct $10FBS_STRUCT ) == 152 );
struct $8FBS_ENUM {
	struct $9FBNAMESPC NS;
	int64 ELEMENTS;
	struct $13FB_STRUCT_DBG DBG;
};
__FB_STATIC_ASSERT( sizeof( struct $8FBS_ENUM ) == 96 );
typedef int64 $11FB_FUNCMODE;
typedef int64 $21FB_PROC_RETURN_METHOD;
typedef int64 (*tmp$35)( struct $8FBSYMBOL* );
struct $10FB_PROCRTL {
	tmp$35 CALLBACK;
};
__FB_STATIC_ASSERT( sizeof( struct $10FB_PROCRTL ) == 8 );
struct $10FB_PROCOVL {
	int16 MINPARAMS;
	int16 MAXPARAMS;
	struct $8FBSYMBOL* NEXT;
};
__FB_STATIC_ASSERT( sizeof( struct $10FB_PROCOVL ) == 16 );
struct $10FB_PROCSTK {
	int64 ARGOFS;
	int64 LOCALOFS;
	int64 LOCALMAX;
};
__FB_STATIC_ASSERT( sizeof( struct $10FB_PROCSTK ) == 24 );
struct $10FB_PROCDBG {
	int64 INILINE;
	int64 ENDLINE;
	char* INCFILE;
};
__FB_STATIC_ASSERT( sizeof( struct $10FB_PROCDBG ) == 24 );
struct $10FB_PROCERR {
	struct $8FBSYMBOL* LASTHND;
	struct $8FBSYMBOL* LASTMOD;
	struct $8FBSYMBOL* LASTFUN;
};
__FB_STATIC_ASSERT( sizeof( struct $10FB_PROCERR ) == 24 );
typedef int64 $6AST_OP;
struct $12FB_PROCOPOVL {
	$6AST_OP OP;
};
__FB_STATIC_ASSERT( sizeof( struct $12FB_PROCOPOVL ) == 8 );
typedef int64 $12FB_PROCSTATS;
struct $10FB_PROCGSB {
	struct $8FBSYMBOL* CTX;
};
__FB_STATIC_ASSERT( sizeof( struct $10FB_PROCGSB ) == 8 );
struct $10FB_PROCEXT {
	struct $8FBSYMBOL* RES;
	struct $10FB_PROCSTK STK;
	struct $10FB_PROCDBG DBG;
	struct $10FB_PROCERR ERR;
	struct $12FB_PROCOPOVL OPOVL;
	struct $5TLIST* STATDTOR;
	$12FB_PROCSTATS STATS;
	int64 STMTNUM;
	int64 PRIORITY;
	struct $10FB_PROCGSB GOSUB;
	struct $7ASTNODE* BASE_INITREE;
	int64 VTABLEINDEX;
	struct $8FBSYMBOL* OVERRIDDEN;
};
__FB_STATIC_ASSERT( sizeof( struct $10FB_PROCEXT ) == 152 );
struct $8FBS_PROC {
	struct $10FBSYMBOLTB SYMTB;
	int16 PARAMS;
	int16 OPTPARAMS;
	struct $10FBSYMBOLTB PARAMTB;
	$11FB_FUNCMODE MODE;
	$11FB_DATATYPE REALDTYPE;
	struct $8FBSYMBOL* REALSUBTYPE;
	$21FB_PROC_RETURN_METHOD RETURNMETHOD;
	struct $10FB_PROCRTL RTL;
	struct $10FB_PROCOVL OVL;
	struct $10FB_PROCEXT* EXT;
};
__FB_STATIC_ASSERT( sizeof( struct $8FBS_PROC ) == 120 );
typedef int64 $12FB_PARAMMODE;
struct $9FBS_PARAM {
	$12FB_PARAMMODE MODE;
	struct $8FBSYMBOL* VAR;
	struct $7ASTNODE* OPTEXPR;
	int64 BYDESCDIMENSIONS;
	struct $8FBSYMBOL* BYDESCREALSUBTYPE;
	int64 REGNUM;
};
__FB_STATIC_ASSERT( sizeof( struct $9FBS_PARAM ) == 48 );
struct $9FBS_LABEL {
	struct $8FBSYMBOL* PARENT;
	int64 DECLARED;
	int64 STMTNUM;
	boolean GOSUB;
};
__FB_STATIC_ASSERT( sizeof( struct $9FBS_LABEL ) == 32 );
struct $11FB_DEFPARAM;
struct $11FB_DEFPARAM {
	char* NAME;
	int64 NUM;
	struct $11FB_DEFPARAM* NEXT;
};
__FB_STATIC_ASSERT( sizeof( struct $11FB_DEFPARAM ) == 24 );
typedef int64 $14FB_DEFTOK_TYPE;
struct $9FB_DEFTOK;
struct $9FB_DEFTOK {
	$14FB_DEFTOK_TYPE TYPE;
	union {
		char* TEXT;
		uint32* TEXTW;
		int64 PARAMNUM;
	};
	struct $9FB_DEFTOK* PREV;
	struct $9FB_DEFTOK* NEXT;
};
__FB_STATIC_ASSERT( sizeof( struct $9FB_DEFTOK ) == 32 );
typedef int64 $15FB_DEFINE_FLAGS;
typedef FBSTRING* (*tmp$29)( void );
struct $8DZSTRING {
	char* DATA;
	int64 LEN;
	int64 SIZE;
};
__FB_STATIC_ASSERT( sizeof( struct $8DZSTRING ) == 24 );
struct $8DWSTRING {
	uint32* DATA;
	int64 LEN;
	int64 SIZE;
};
__FB_STATIC_ASSERT( sizeof( struct $8DWSTRING ) == 24 );
struct $9LEXPP_ARG {
	union {
		struct $8DZSTRING TEXT;
		struct $8DWSTRING TEXTW;
	};
};
__FB_STATIC_ASSERT( sizeof( struct $9LEXPP_ARG ) == 24 );
struct $11LEXPP_ARGTB {
	struct $9LEXPP_ARG TB[32];
	int64 COUNT;
};
__FB_STATIC_ASSERT( sizeof( struct $11LEXPP_ARGTB ) == 776 );
typedef FBSTRING* (*tmp$30)( struct $11LEXPP_ARGTB*, int64* );
typedef uint32* (*tmp$31)( struct $11LEXPP_ARGTB*, int64* );
struct $10FBS_DEFINE {
	int64 PARAMS;
	struct $11FB_DEFPARAM* PARAMHEAD;
	union {
		struct $9FB_DEFTOK* TOKHEAD;
		char* TEXT;
		uint32* TEXTW;
	};
	int64 ISARGLESS;
	$15FB_DEFINE_FLAGS FLAGS;
	union {
		tmp$29 DPROCZ;
		tmp$30 MPROCZ;
	};
	union {
		tmp$31 MPROCW;
	};
};
__FB_STATIC_ASSERT( sizeof( struct $10FBS_DEFINE ) == 56 );
typedef int64 $10FB_TKCLASS;
struct $11FBS_KEYWORD {
	int64 ID;
	$10FB_TKCLASS TKCLASS;
};
__FB_STATIC_ASSERT( sizeof( struct $11FBS_KEYWORD ) == 16 );
struct $8FBFWDREF;
struct $8FBFWDREF {
	struct $8FBSYMBOL* REF;
	struct $8FBFWDREF* PREV;
};
__FB_STATIC_ASSERT( sizeof( struct $8FBFWDREF ) == 16 );
struct $10FBS_FWDREF {
	struct $8FBFWDREF* TAIL;
};
__FB_STATIC_ASSERT( sizeof( struct $10FBS_FWDREF ) == 8 );
struct $11FB_SCOPEDBG {
	int64 INILINE;
	int64 ENDLINE;
	struct $8FBSYMBOL* INILABEL;
	struct $8FBSYMBOL* ENDLABEL;
};
__FB_STATIC_ASSERT( sizeof( struct $11FB_SCOPEDBG ) == 32 );
struct $12FB_SCOPEEMIT {
	int64 BASEOFS;
};
__FB_STATIC_ASSERT( sizeof( struct $12FB_SCOPEEMIT ) == 8 );
struct $9FBS_SCOPE {
	struct $7ASTNODE* BACKNODE;
	struct $10FBSYMBOLTB SYMTB;
	struct $11FB_SCOPEDBG DBG;
	struct $12FB_SCOPEEMIT EMIT;
};
__FB_STATIC_ASSERT( sizeof( struct $9FBS_SCOPE ) == 72 );
struct $13FBS_NAMESPACE {
	struct $9FBNAMESPC NS;
	int64 CNT;
	struct $8FBSYMBOL* LAST_TAIL;
};
__FB_STATIC_ASSERT( sizeof( struct $13FBS_NAMESPACE ) == 96 );
struct $12FBS_NSIMPORT {
	struct $8FBSYMBOL* IMP_NS;
	struct $8FBSYMBOL* IMP_PREV;
	struct $8FBSYMBOL* IMP_NEXT;
	struct $8FBSYMBOL* EXP_NS;
	struct $8FBSYMBOL* EXP_PREV;
	struct $8FBSYMBOL* EXP_NEXT;
};
__FB_STATIC_ASSERT( sizeof( struct $12FBS_NSIMPORT ) == 48 );
struct $9FBSYMHASH {
	struct $8FBHASHTB* TB;
	struct $8HASHITEM* ITEM;
	uint64 INDEX;
	struct $8FBSYMBOL* PREV;
	struct $8FBSYMBOL* NEXT;
};
__FB_STATIC_ASSERT( sizeof( struct $9FBSYMHASH ) == 40 );
struct $8FBSYMBOL {
	$12FB_SYMBCLASS CLASS;
	$13FB_SYMBATTRIB ATTRIB;
	$13FB_PROCATTRIB PATTRIB;
	$12FB_SYMBSTATS STATS;
	struct $9FB_SYMBID ID;
	$11FB_DATATYPE TYP;
	struct $8FBSYMBOL* SUBTYPE;
	uint16 SCOPE;
	int16 MANGLING;
	int64 LGT;
	int64 OFS;
	union {
		struct $7FBS_VAR VAR_;
		struct $9FBS_CONST VAL;
		struct $10FBS_STRUCT UDT;
		struct $8FBS_ENUM ENUM_;
		struct $8FBS_PROC PROC;
		struct $9FBS_PARAM PARAM;
		struct $9FBS_LABEL LBL;
		struct $10FBS_DEFINE DEF;
		struct $11FBS_KEYWORD KEY;
		struct $10FBS_FWDREF FWD;
		struct $9FBS_SCOPE SCP;
		struct $13FBS_NAMESPACE NSPC;
		struct $12FBS_NSIMPORT NSIMP;
	};
	struct $9FBSYMHASH HASH;
	struct $10FBSYMBOLTB* SYMTB;
	struct $8FBSYMBOL* PARENT;
	struct $8FBSYMBOL* PREV;
	struct $8FBSYMBOL* NEXT;
};
__FB_STATIC_ASSERT( sizeof( struct $8FBSYMBOL ) == 320 );
typedef int64 $13FB_COMPTARGET;
typedef int64 $16EMITPROC_OPTIONS;
typedef int64 $19FB_CVA_LIST_TYPEDEF;
typedef int64 $12FB_DATACLASS;
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 );
typedef void (*tmp$44)( struct $8FBSYMBOL* );
typedef int64 $14IR_OPTIONVALUE;
struct $7FBTOKEN;
struct $7FBTOKEN {
	int64 ID;
	int64 CLASS;
	int64 DTYPE;
	union {
		char TEXT[1025];
		uint32 TEXTW[1025];
	};
	int64 LEN;
	struct $10FBSYMCHAIN* SYM_CHAIN;
	union {
		int64 PRDPOS;
		int64 HASESC;
		int64 HASSUFFIX;
	};
	int64 SUFFIXCHAR;
	int64 AFTER_SPACE;
	struct $7FBTOKEN* NEXT;
};
__FB_STATIC_ASSERT( sizeof( struct $7FBTOKEN ) == 4176 );
typedef int64 $17LEX_TKCTX_CONTEXT;
struct $9LEX_TKCTX {
	struct $7FBTOKEN TOKENTB[4];
	int64 K;
	struct $7FBTOKEN* HEAD;
	struct $7FBTOKEN* TAIL;
	uint64 CURRCHAR;
	uint64 LAHDCHAR1;
	uint64 LAHDCHAR2;
	int64 LINENUM;
	int64 LASTTK_ID;
	int64 RECLEVEL;
	struct $8FBSYMBOL* CURRMACRO;
	int64 MACRODEPTH;
	struct $8FBSYMBOL* MACROSTACK[64];
	int64 MACRORESUME[64];
	struct $8FBSYMBOL* KWDNS;
	$17LEX_TKCTX_CONTEXT KIND;
	int64 DEFLEN;
	union {
		struct {
			char* DEFPTR;
			struct $8DZSTRING DEFTEXT;
		};
		struct {
			uint32* DEFPTRW;
			struct $8DWSTRING DEFTEXTW;
		};
	};
	int64 BUFFLEN;
	union {
		struct {
			char* BUFFPTR;
			char BUFF[8193];
		};
		struct {
			uint32* BUFFPTRW;
			uint32 BUFFW[8193];
		};
	};
	int64 FILEPOS;
	int64 LASTFILEPOS;
	int64 PHYSFILEPOS;
	struct $8DZSTRING CURRLINE;
	int64 AFTER_SPACE;
};
__FB_STATIC_ASSERT( sizeof( struct $9LEX_TKCTX ) == 50720 );
typedef int64 $15IRVREGTYPE_ENUM;
typedef int64 $12IR_REGFAMILY;
struct $6IRVREG;
struct $9IRTACVREG;
struct $9IRTACVREG {
	struct $6IRVREG* VREG;
	struct $6IRVREG* PARENT;
	struct $9IRTACVREG* NEXT;
};
__FB_STATIC_ASSERT( sizeof( struct $9IRTACVREG ) == 24 );
struct $13IRTACVREG_GRP {
	struct $9IRTACVREG REG;
	struct $9IRTACVREG IDX;
	struct $9IRTACVREG AUX;
};
__FB_STATIC_ASSERT( sizeof( struct $13IRTACVREG_GRP ) == 72 );
struct $5IRTAC {
	int64 POS;
	$6AST_OP OP;
	struct $13IRTACVREG_GRP VR;
	struct $13IRTACVREG_GRP V1;
	struct $13IRTACVREG_GRP V2;
	struct $8FBSYMBOL* EX1;
	int64 EX2;
	char* EX3;
};
__FB_STATIC_ASSERT( sizeof( struct $5IRTAC ) == 256 );
struct $6IRVREG {
	$15IRVREGTYPE_ENUM TYP;
	$11FB_DATATYPE DTYPE;
	struct $8FBSYMBOL* SUBTYPE;
	int64 REG;
	$12IR_REGFAMILY REGFAMILY;
	int64 VECTOR;
	union $7FBVALUE VALUE;
	struct $8FBSYMBOL* SYM;
	int64 OFS;
	int64 MULT;
	struct $6IRVREG* VIDX;
	struct $6IRVREG* VAUX;
	struct $9IRTACVREG* TACVHEAD;
	struct $9IRTACVREG* TACVTAIL;
	struct $5IRTAC* TACLAST;
};
__FB_STATIC_ASSERT( sizeof( struct $6IRVREG ) == 120 );
struct $8EXPRNODE;
struct $8EXPRNODE {
	int64 CLASS;
	int64 DTYPE;
	struct $8FBSYMBOL* SUBTYPE;
	struct $8EXPRNODE* L;
	struct $8EXPRNODE* R;
	union {
		char* TEXT;
		union $7FBVALUE VAL;
		struct $8FBSYMBOL* SYM;
		int64 OP;
	};
};
__FB_STATIC_ASSERT( sizeof( struct $8EXPRNODE ) == 48 );
typedef int64 $11AST_OPFLAGS;
struct $10AST_OPINFO {
	$13AST_NODECLASS CLASS;
	$11AST_OPFLAGS FLAGS;
	char* ID;
	$6AST_OP SELFOP;
};
__FB_STATIC_ASSERT( sizeof( struct $10AST_OPINFO ) == 32 );
struct $13EXPRCACHENODE {
	int64 VREGID;
	struct $8EXPRNODE* EXPR;
};
__FB_STATIC_ASSERT( sizeof( struct $13EXPRCACHENODE ) == 16 );
typedef int64 $10IR_EMITOPT;
struct $9IRCALLARG {
	struct $8FBSYMBOL* PARAM;
	struct $6IRVREG* VR;
	int64 LEVEL;
};
__FB_STATIC_ASSERT( sizeof( struct $9IRCALLARG ) == 24 );
int32 fb_FileOpen( const FBSTRING*, const uint32, const uint32, const uint32, const int32, const int32 );
int32 fb_FileClose( const int32 );
int32 fb_FilePutStrLarge( const int32, const int64, const void*, const int64 );
int32 fb_FileFree( void );
int32 fb_FileKill( const FBSTRING* );
void free( 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 );
FBSTRING* fb_StrConcatByref( void*, const int64, const void*, const int64, const int32 );
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_UIntToStr( const uint32 );
FBSTRING* fb_LongintToStr( const int64 );
FBSTRING* fb_ULongintToStr( const uint64 );
FBSTRING* fb_StrMid( const FBSTRING*, const int64, const int64 );
FBSTRING* fb_StrFill2( const int64, const FBSTRING* );
int64 fb_StrLen( const void*, const int64 );
int64 fb_WstrLen( const uint32* );
FBSTRING* fb_CHR( const int32, ... );
FBSTRING* fb_TRIM( const FBSTRING* );
int64 fb_WstrValLng( const uint32* );
FBSTRING* fb_HEXEx_l( const uint64, const int32 );
FBSTRING* fb_LEFT( const FBSTRING*, const int64 );
void fb_LEFTSELF( FBSTRING*, const int64 );
FBSTRING* fb_RIGHT( const FBSTRING*, const int64 );
FBSTRING* fb_SPACE( const int64 );
static void fb_ctor__irzhlc( void ) __attribute__(( constructor ));
void LISTINIT( struct $5TLIST*, int64, int64, $10LIST_FLAGS );
void LISTEND( struct $5TLIST* );
void* LISTNEWNODE( struct $5TLIST* );
void LISTDELNODE( struct $5TLIST*, void* );
void* LISTGETHEAD( struct $5TLIST* );
void* LISTGETTAIL( struct $5TLIST* );
void* LISTGETPREV( void* );
void* LISTGETNEXT( void* );
static void _ZN11TSTRSETITEMaSERKS_( struct $11TSTRSETITEM*, const struct $11TSTRSETITEM* );
typedef int64 $12FB_ERRMSGOPT;
void ERRREPORTEX( int64, const char*, int64, $12FB_ERRMSGOPT, const char* );
int64 FBGETOPTION( int64 );
int64 FBIS64BIT( void );
int64 FBGETCPUFAMILY( void );
int64 FBGETTARGETWCHARSIZE( void );
int64 FBTARGETWCHARISUTF32( void );
int64 FBTARGETSUPPORTSCOFF( void );
int64 TYPECALCNATURALALIGN( int64, struct $8FBSYMBOL* );
void _Z21SYMBGETREALPARAMDTYPEP8FBSYMBOLRlRS0_( struct $8FBSYMBOL*, int64*, struct $8FBSYMBOL** );
int64 SYMBPROCRETURNSONSTACK( struct $8FBSYMBOL* );
int64 SYMBPROCCALCSTDCALLSUFFIXN( struct $8FBSYMBOL* );
void SYMBGETREALTYPE( struct $8FBSYMBOL*, int64*, struct $8FBSYMBOL** );
int64 SYMBHASDTOR( struct $8FBSYMBOL* );
int64 SYMBISDATADESC( struct $8FBSYMBOL* );
$19FB_CVA_LIST_TYPEDEF SYMBGETVALISTTYPE( int64, struct $8FBSYMBOL* );
int64 TYPETOUNSIGNED( int64 );
char* SYMBUNIQUEID( boolean );
char* SYMBGETMANGLEDNAME( struct $8FBSYMBOL* );
struct $8FBSYMBOL* SYMBUDTGETFIRSTFIELD( struct $8FBSYMBOL* );
struct $8FBSYMBOL* SYMBUDTGETNEXTFIELD( struct $8FBSYMBOL* );
int64 SYMBGETSTRLENGTH( struct $8FBSYMBOL* );
int64 SYMBGETWSTRLENGTH( struct $8FBSYMBOL* );
void SYMBFOREACHGLOBAL( int64, tmp$44 );
int64 HFILEEXISTS( char* );
FBSTRING* HFLOATTOHEX_C99( double );
char* ZSTRDUP( char* );
char* HUNESCAPE( char*, int64* );
uint32* HUNESCAPEW( uint32*, int64* );
FBSTRING* HREPLACE( char*, char*, char* );
int64 HCHARNEEDSESCAPING( int64, int64 );
int64 HISVALIDHEXDIGIT( int64 );
void IRHLINIT( void );
void IRHLEND( void );
void IRHLEMITPROCBEGIN( void );
void IRHLEMITPROCEND( void );
void IRHLEMITPUSHARG( struct $8FBSYMBOL*, struct $6IRVREG*, int64, int64, struct $6IRVREG* );
struct $6IRVREG* IRHLALLOCVREG( int64, struct $8FBSYMBOL* );
struct $6IRVREG* IRHLALLOCVRIMM( int64, struct $8FBSYMBOL*, int64 );
struct $6IRVREG* IRHLALLOCVRIMMF( int64, struct $8FBSYMBOL*, double );
struct $6IRVREG* IRHLALLOCVRVAR( int64, struct $8FBSYMBOL*, struct $8FBSYMBOL*, int64 );
struct $6IRVREG* IRHLALLOCVRIDX( int64, struct $8FBSYMBOL*, struct $8FBSYMBOL*, int64, int64, struct $6IRVREG* );
struct $6IRVREG* IRHLALLOCVRPTR( int64, struct $8FBSYMBOL*, int64, struct $6IRVREG* );
struct $6IRVREG* IRHLALLOCVROFS( int64, struct $8FBSYMBOL*, struct $8FBSYMBOL*, int64 );
void IRFOREACHDATASTMT( tmp$44 );
void IRHLFLUSHSTATICINITIALIZER( struct $8FBSYMBOL* );
static void _ZN12SECTIONENTRYC1Ev( struct $12SECTIONENTRY* );
static void _ZN12SECTIONENTRYaSERKS_( struct $12SECTIONENTRY*, const struct $12SECTIONENTRY* );
static void _ZN12SECTIONENTRYD1Ev( struct $12SECTIONENTRY* );
static void _ZN8IRHLCCTXC1Ev( struct $8IRHLCCTX* );
static void _ZN8IRHLCCTXaSERKS_( struct $8IRHLCCTX*, const struct $8IRHLCCTX* );
static void _ZN8IRHLCCTXD1Ev( struct $8IRHLCCTX* );
static FBSTRING* HEMITTYPE( int64, struct $8FBSYMBOL*, int64 );
static void HEMITSTRUCT( struct $8FBSYMBOL*, int64 );
static void _EMITDBG( int64, struct $8FBSYMBOL*, int64, char* );
static void EXPRFREENODE( struct $8EXPRNODE* );
static void _INIT( void );
static void _END( void );
static void SECTIONBEGIN( void );
static void SECTIONWRITELINE( FBSTRING* );
static void SECTIONINDENT( void );
static void SECTIONUNINDENT( void );
static int64 SECTIONINSIDEPROC( void );
static void SECTIONEND( void );
static int64 SECTIONGOSUB( int64 );
static void SECTIONRETURN( int64 );
static void HWRITELINE( FBSTRING*, int64 );
static void HUPDATECURRENTFILENAME( char* );
static void HWRITESTATICASSERT( FBSTRING* );
static void HAPPENDCLOBBER( FBSTRING*, char* );
static void HAPPENDPROCASMCLOBBERS( FBSTRING* );
static void HAPPENDCTORATTRIB( FBSTRING*, struct $8FBSYMBOL*, int64 );
static FBSTRING* HGETMANGLEDNAMEFORASM( struct $8FBSYMBOL*, int64 );
static int64 HNEEDALIAS( struct $8FBSYMBOL* );
static int64 HEMITMUTABLELIBCPTRPARAM( FBSTRING*, int64 );
static int64 HEMITLIBCSIZEPARAM( FBSTRING*, int64 );
static int64 HGETLIBCSIZEDTYPE( void );
static FBSTRING* HEMITLIBCPROCPTRPARAM( FBSTRING*, int64 );
static FBSTRING* HEMITPROCHEADER( struct $8FBSYMBOL*, $16EMITPROC_OPTIONS );
static FBSTRING* HGETUDTTAG( struct $8FBSYMBOL* );
static FBSTRING* HGETUDTID( struct $8FBSYMBOL* );
static FBSTRING* HGETUDTNAME( struct $8FBSYMBOL* );
static void HEMITUDT( struct $8FBSYMBOL*, int64 );
static FBSTRING* HEMITARRAYDECL( struct $8FBSYMBOL* );
static void HEMITVARDECL( int64, struct $8FBSYMBOL*, char* );
static void HMAYBEEMITLOCALVAR( struct $8FBSYMBOL* );
static void HALLOCGLOBALVAR( struct $8FBSYMBOL* );
static void HMAYBEEMITGLOBALVAR( struct $8FBSYMBOL* );
static void HMAYBEEMITGLOBALVAREXCEPTDATASTMT( struct $8FBSYMBOL* );
static void HMAYBEEMITPROCPROTO( struct $8FBSYMBOL* );
static void HEMITFIELDTYPES( struct $8FBSYMBOL* );
static struct $8FBSYMBOL** HFINDPARENTANONALREADYONSTACK( struct $8FBSYMBOL* );
static void HPUSHANONPARENTS( struct $8FBSYMBOL*, struct $8FBSYMBOL* );
static void HPOPANONPARENTS( struct $8FBSYMBOL** );
static int64 HFIELDNEEDSRUNTIMEALIGNMENT( struct $8FBSYMBOL* );
static void HEMITSTRUCTWITHFIELDS( struct $8FBSYMBOL* );
static void HWRITEX86F2I( FBSTRING*, int64, int64 );
static void HWRITEGENERICF2I( FBSTRING*, int64, int64 );
static void HWRITEF2I( FBSTRING*, int64, int64 );
static void HMAYBEEMITPROCEXPORT( struct $8FBSYMBOL* );
static int64 _EMITBEGIN( void );
static void _EMITEND( void );
static int64 _GETOPTIONVALUE( $14IR_OPTIONVALUE );
static int64 _SUPPORTSOP( int64, int64 );
static void _PROCBEGIN( struct $8FBSYMBOL* );
static void _PROCEND( struct $8FBSYMBOL* );
static void _SCOPEBEGIN( struct $8FBSYMBOL* );
static void _SCOPEEND( struct $8FBSYMBOL* );
static int64 HISSTATICWITHDTOR( struct $8FBSYMBOL* );
static void _PROCALLOCSTATICVARS( struct $8FBSYMBOL* );
static void _SETVREGDATATYPE( struct $6IRVREG*, int64, struct $8FBSYMBOL* );
static struct $8EXPRNODE* EXPRNEW( int64, int64, struct $8FBSYMBOL* );
static void EXPRFREETREE( struct $8EXPRNODE* );
static struct $8EXPRNODE* EXPRNEWTEXT( int64, struct $8FBSYMBOL*, char* );
static struct $8EXPRNODE* EXPRNEWIMMI( int64, int64 );
static struct $8EXPRNODE* EXPRNEWIMMF( double, int64 );
static int64 SYMBISCARRAY( struct $8FBSYMBOL* );
static struct $8EXPRNODE* EXPRNEWCAST( int64, struct $8FBSYMBOL*, struct $8EXPRNODE* );
static struct $8EXPRNODE* EXPRNEWMACRO( $6AST_OP, int64, struct $8FBSYMBOL*, struct $8EXPRNODE*, struct $8EXPRNODE* );
static struct $8EXPRNODE* EXPRNEWSYM( struct $8FBSYMBOL* );
static int64 TYPECBOP( int64, int64, int64 );
static struct $8EXPRNODE* EXPRNEWUOP( int64, struct $8EXPRNODE* );
static struct $8EXPRNODE* EXPRNEWBOP( int64, struct $8EXPRNODE*, struct $8EXPRNODE* );
static void EXPRCACHE( int64, struct $8EXPRNODE* );
static struct $8EXPRNODE* EXPRLOOKUP( int64 );
static FBSTRING* HEMITINT( int64, int64 );
static FBSTRING* HEMITFLOAT( int64, double );
static void HBUILDSTRLIT( FBSTRING*, char*, int64, int64 );
static uint64 HREADWSTRCHAR( uint32**, const uint32* );
static int64 HUSENUMERICWSTRLIT( void );
static void HBUILDNUMERICWSTRLIT( FBSTRING*, uint32*, int64 );
static void HBUILDWSTRLIT( FBSTRING*, uint32*, int64 );
static char* HBOPTOSTR( int64 );
static char* HUOPTOSTR( int64, int64, int64* );
static void HIMM2TEXT( FBSTRING*, struct $8EXPRNODE* );
static void HSYM2TEXT( FBSTRING*, struct $8FBSYMBOL* );
static void HEXPRFLUSH( struct $8EXPRNODE*, int64 );
static FBSTRING* EXPRFLUSH( struct $8EXPRNODE*, int64 );
static struct $8EXPRNODE* EXPRNEWOFFSET( struct $8FBSYMBOL*, int64 );
static int64 HISSCALARLOADTYPE( int64 );
static int64 HNORMALIZEOFFSETMOD( int64, int64 );
static int64 HEXPRCONSTOFFSETMOD( struct $8EXPRNODE*, int64 );
static int64 HSYMBASEMAYBEUNALIGNED( struct $8FBSYMBOL* );
static int64 HVREGBASEMAYBEUNALIGNED( struct $6IRVREG* );
static int64 HADDRNEEDSUNALIGNEDACCESS( int64, struct $8FBSYMBOL*, struct $8EXPRNODE*, int64 );
static struct $8EXPRNODE* EXPRNEWUNALIGNEDLOAD( int64, struct $8FBSYMBOL*, struct $8EXPRNODE* );
static struct $8EXPRNODE* EXPRNEWVREG( struct $6IRVREG*, int64 );
static struct $8EXPRNODE* HGETUNALIGNEDLVALUEADDR( struct $6IRVREG*, struct $8EXPRNODE* );
static void HEMITUNALIGNEDSTORE( struct $6IRVREG*, struct $8EXPRNODE*, struct $8EXPRNODE* );
static void _EMITLABEL( struct $8FBSYMBOL* );
static void EXPRSTORE( struct $6IRVREG*, struct $8EXPRNODE*, int64 );
static void _EMITBOP( int64, struct $6IRVREG*, struct $6IRVREG*, struct $6IRVREG*, struct $8FBSYMBOL*, $10IR_EMITOPT );
static void _EMITUOP( int64, struct $6IRVREG*, struct $6IRVREG* );
static void _EMITCONVERT( struct $6IRVREG*, struct $6IRVREG* );
static void _EMITSTORE( struct $6IRVREG*, struct $6IRVREG* );
static void _EMITSPILLREGS( void );
static void _EMITLOAD( struct $6IRVREG* );
static void _EMITLOADRES( struct $6IRVREG*, struct $6IRVREG* );
static void _EMITADDR( int64, struct $6IRVREG*, struct $6IRVREG* );
static void HDOCALL( FBSTRING*, int64, struct $6IRVREG*, int64 );
static void _EMITCALL( struct $8FBSYMBOL*, int64, struct $6IRVREG*, int64 );
static void _EMITCALLPTR( struct $8FBSYMBOL*, struct $6IRVREG*, struct $6IRVREG*, int64, int64 );
static void _EMITJUMPPTR( struct $6IRVREG* );
static void _EMITBRANCH( int64, struct $8FBSYMBOL* );
static void _EMITJMPTB( struct $6IRVREG*, struct $8FBSYMBOL*, uint64*, struct $8FBSYMBOL**, int64, struct $8FBSYMBOL*, uint64, uint64 );
static void _EMITMEM( int64, struct $6IRVREG*, struct $6IRVREG*, int64, int64 );
static void _EMITMACRO( int64, struct $6IRVREG*, struct $6IRVREG*, struct $6IRVREG* );
static void _EMITDECL( struct $8FBSYMBOL* );
static void _EMITCOMMENT( char* );
static int32 HFINDLABELINSEENLIST( struct $5TLIST*, struct $8FBSYMBOL* );
static FBSTRING* HSTRIPSIMPLEASMPLACEHOLDERBRACKETS( FBSTRING* );
static void _EMITASMLINE( struct $9ASTASMTOK* );
static void _EMITVARINIBEGIN( struct $8FBSYMBOL* );
static void _EMITVARINIEND( struct $8FBSYMBOL* );
static void HVARINISEPARATOR( void );
static void _EMITVARINII( struct $8FBSYMBOL*, int64 );
static void _EMITVARINIF( struct $8FBSYMBOL*, double );
static void _EMITVARINIOFS( struct $8FBSYMBOL*, struct $8FBSYMBOL*, int64 );
static void _EMITVARINISTR( int64, char*, int64, int64 );
static void _EMITVARINIWSTR( int64, uint32*, int64 );
static void _EMITVARINIPAD( int64, int64 );
static void _EMITVARINISCOPEBEGIN( struct $8FBSYMBOL*, int64 );
static void _EMITVARINISCOPEEND( void );
static void _EMITFBCTINFBEGIN( void );
static void _EMITFBCTINFSTRING( const char* );
static void _EMITFBCTINFEND( void );
static void _EMITPROCBEGIN( struct $8FBSYMBOL*, struct $8FBSYMBOL* );
static void _EMITPROCEND( struct $8FBSYMBOL*, struct $8FBSYMBOL*, struct $8FBSYMBOL* );
static void _EMITSCOPEBEGIN( struct $8FBSYMBOL* );
static void _EMITSCOPEEND( struct $8FBSYMBOL* );
static void _GLOBAL__I( void ) __attribute__(( constructor ));
static void _GLOBAL__D( void ) __attribute__(( destructor ));
typedef void (*tmp$40)( void );
typedef int64 (*tmp$41)( void );
typedef int64 (*tmp$42)( $14IR_OPTIONVALUE );
typedef int64 (*tmp$43)( int64, int64 );
typedef void (*tmp$45)( struct $8FBSYMBOL*, struct $8FBSYMBOL* );
typedef char* (*tmp$46)( void );
typedef void (*tmp$47)( struct $6IRVREG*, struct $6IRVREG* );
typedef void (*tmp$48)( int64 );
typedef void (*tmp$49)( struct $8FBSYMBOL*, struct $8FBSYMBOL*, struct $8FBSYMBOL* );
typedef void (*tmp$50)( struct $8FBSYMBOL*, struct $6IRVREG*, int64, int64, struct $6IRVREG* );
typedef void (*tmp$51)( struct $9ASTASMTOK* );
typedef void (*tmp$52)( char* );
typedef void (*tmp$53)( int64, struct $6IRVREG*, struct $6IRVREG*, struct $6IRVREG*, struct $8FBSYMBOL*, $10IR_EMITOPT );
typedef void (*tmp$54)( int64, struct $6IRVREG*, struct $6IRVREG* );
typedef void (*tmp$55)( struct $6IRVREG* );
typedef void (*tmp$56)( struct $8FBSYMBOL*, int64, struct $6IRVREG*, int64 );
typedef void (*tmp$57)( struct $8FBSYMBOL*, struct $6IRVREG*, struct $6IRVREG*, int64, int64 );
typedef void (*tmp$58)( int64, struct $8FBSYMBOL* );
typedef void (*tmp$59)( struct $6IRVREG*, struct $8FBSYMBOL*, uint64*, struct $8FBSYMBOL**, int64, struct $8FBSYMBOL*, uint64, uint64 );
typedef void (*tmp$60)( int64, struct $6IRVREG*, struct $6IRVREG*, int64, int64 );
typedef void (*tmp$61)( int64, struct $6IRVREG*, struct $6IRVREG*, struct $6IRVREG* );
typedef void (*tmp$62)( int64, struct $8FBSYMBOL*, int64, char* );
typedef void (*tmp$63)( struct $8FBSYMBOL*, int64 );
typedef void (*tmp$64)( struct $8FBSYMBOL*, double );
typedef void (*tmp$65)( struct $8FBSYMBOL*, struct $8FBSYMBOL*, int64 );
typedef void (*tmp$66)( int64, char*, int64, int64 );
typedef void (*tmp$67)( int64, uint32*, int64 );
typedef void (*tmp$68)( int64, int64 );
typedef void (*tmp$69)( struct $8FBSYMBOL*, int64 );
typedef void (*tmp$70)( const char* );
typedef struct $6IRVREG* (*tmp$71)( int64, struct $8FBSYMBOL* );
typedef struct $6IRVREG* (*tmp$72)( int64, struct $8FBSYMBOL*, int64 );
typedef struct $6IRVREG* (*tmp$73)( int64, struct $8FBSYMBOL*, double );
typedef struct $6IRVREG* (*tmp$74)( int64, struct $8FBSYMBOL*, struct $8FBSYMBOL*, int64 );
typedef struct $6IRVREG* (*tmp$75)( int64, struct $8FBSYMBOL*, struct $8FBSYMBOL*, int64, int64, struct $6IRVREG* );
typedef struct $6IRVREG* (*tmp$76)( int64, struct $8FBSYMBOL*, int64, struct $6IRVREG* );
typedef void (*tmp$77)( struct $6IRVREG*, int64, struct $8FBSYMBOL* );
typedef uint64 (*tmp$78)( struct $6IRVREG* );
struct $7IR_VTBL {
	tmp$40 INIT;
	tmp$40 END;
	tmp$41 EMITBEGIN;
	tmp$40 EMITEND;
	tmp$42 GETOPTIONVALUE;
	tmp$43 SUPPORTSOP;
	tmp$44 PROCBEGIN;
	tmp$44 PROCEND;
	tmp$45 PROCALLOCARG;
	tmp$45 PROCALLOCLOCAL;
	tmp$46 PROCGETFRAMEREGNAME;
	tmp$44 SCOPEBEGIN;
	tmp$44 SCOPEEND;
	tmp$44 PROCALLOCSTATICVARS;
	tmp$47 EMITCONVERT;
	tmp$44 EMITLABEL;
	tmp$44 EMITLABELNF;
	tmp$48 EMITRETURN;
	tmp$45 EMITPROCBEGIN;
	tmp$49 EMITPROCEND;
	tmp$50 EMITPUSHARG;
	tmp$51 EMITASMLINE;
	tmp$52 EMITCOMMENT;
	tmp$53 EMITBOP;
	tmp$54 EMITUOP;
	tmp$47 EMITSTORE;
	tmp$40 EMITSPILLREGS;
	tmp$55 EMITLOAD;
	tmp$47 EMITLOADRES;
	tmp$54 EMITSTACK;
	tmp$54 EMITADDR;
	tmp$56 EMITCALL;
	tmp$57 EMITCALLPTR;
	tmp$48 EMITSTACKALIGN;
	tmp$55 EMITJUMPPTR;
	tmp$58 EMITBRANCH;
	tmp$59 EMITJMPTB;
	tmp$60 EMITMEM;
	tmp$61 EMITMACRO;
	tmp$44 EMITSCOPEBEGIN;
	tmp$44 EMITSCOPEEND;
	tmp$44 EMITDECL;
	tmp$62 EMITDBG;
	tmp$44 EMITVARINIBEGIN;
	tmp$44 EMITVARINIEND;
	tmp$63 EMITVARINII;
	tmp$64 EMITVARINIF;
	tmp$65 EMITVARINIOFS;
	tmp$66 EMITVARINISTR;
	tmp$67 EMITVARINIWSTR;
	tmp$68 EMITVARINIPAD;
	tmp$69 EMITVARINISCOPEBEGIN;
	tmp$40 EMITVARINISCOPEEND;
	tmp$40 EMITFBCTINFBEGIN;
	tmp$70 EMITFBCTINFSTRING;
	tmp$40 EMITFBCTINFEND;
	tmp$71 ALLOCVREG;
	tmp$72 ALLOCVRIMM;
	tmp$73 ALLOCVRIMMF;
	tmp$74 ALLOCVRVAR;
	tmp$75 ALLOCVRIDX;
	tmp$76 ALLOCVRPTR;
	tmp$74 ALLOCVROFS;
	tmp$77 SETVREGDATATYPE;
	tmp$78 GETDISTANCE;
	tmp$54 LOADVR;
	tmp$47 STOREVR;
	tmp$48 XCHGTOS;
};
__FB_STATIC_ASSERT( sizeof( struct $7IR_VTBL ) == 544 );
extern struct $7IR_VTBL IRHLC_VTBL$;
struct $5IRCTX {
	struct $7IR_VTBL VTBL;
	$6IR_OPT OPTIONS;
};
__FB_STATIC_ASSERT( sizeof( struct $5IRCTX ) == 552 );
extern struct $5IRCTX IR$;
extern struct $10AST_OPINFO AST_OPTB$[122];
struct $16__FB_ARRAYDIMTB$ {
	int64 ELEMENTS;
	int64 LBOUND;
	int64 UBOUND;
};
__FB_STATIC_ASSERT( sizeof( struct $16__FB_ARRAYDIMTB$ ) == 24 );
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$;
struct $12FBHASHTBLIST {
	struct $8FBHASHTB* HEAD;
	struct $8FBHASHTB* TAIL;
};
__FB_STATIC_ASSERT( sizeof( struct $12FBHASHTBLIST ) == 16 );
struct $8TSTACKTB;
struct $10TSTACKNODE;
struct $10TSTACKNODE {
	struct $10TSTACKNODE* PREV;
	struct $10TSTACKNODE* NEXT;
};
__FB_STATIC_ASSERT( sizeof( struct $10TSTACKNODE ) == 16 );
struct $8TSTACKTB {
	struct $8TSTACKTB* NEXT;
	struct $10TSTACKNODE* NODETB;
	int64 NODES;
};
__FB_STATIC_ASSERT( sizeof( struct $8TSTACKTB ) == 24 );
struct $6TSTACK {
	struct $8TSTACKTB* TBHEAD;
	struct $8TSTACKTB* TBTAIL;
	int64 NODES;
	int64 NODELEN;
	struct $10TSTACKNODE* TOS;
	int64 CLEAR;
};
__FB_STATIC_ASSERT( sizeof( struct $6TSTACK ) == 48 );
struct $5TPOOL {
	int64 CHUNKS;
	int64 CHUNKSIZE;
	struct $5TLIST* CHUNKTB;
};
__FB_STATIC_ASSERT( sizeof( struct $5TPOOL ) == 24 );
struct $17SYMB_DEF_UNIQUEID {
	struct $5THASH DICT;
};
__FB_STATIC_ASSERT( sizeof( struct $17SYMB_DEF_UNIQUEID ) == 24 );
struct $14SYMB_DEF_PARAM {
	struct $8HASHITEM* ITEM;
	uint64 INDEX;
};
__FB_STATIC_ASSERT( sizeof( struct $14SYMB_DEF_PARAM ) == 16 );
struct $12SYMB_DEF_CTX {
	struct $5TLIST PARAMLIST;
	struct $5TLIST TOKLIST;
	struct $17SYMB_DEF_UNIQUEID UNIQUEID;
	int64 PARAM;
	struct $5THASH PARAMHASH;
	struct $14SYMB_DEF_PARAM HASH[32];
};
__FB_STATIC_ASSERT( sizeof( struct $12SYMB_DEF_CTX ) == 696 );
struct $20FB_GLOBCTORLIST_ITEM;
struct $20FB_GLOBCTORLIST_ITEM {
	struct $8FBSYMBOL* SYM;
	struct $20FB_GLOBCTORLIST_ITEM* NEXT;
};
__FB_STATIC_ASSERT( sizeof( struct $20FB_GLOBCTORLIST_ITEM ) == 16 );
struct $15FB_GLOBCTORLIST {
	struct $20FB_GLOBCTORLIST_ITEM* HEAD;
	struct $20FB_GLOBCTORLIST_ITEM* TAIL;
	struct $5TLIST LIST;
};
__FB_STATIC_ASSERT( sizeof( struct $15FB_GLOBCTORLIST ) == 80 );
struct $10SYMB_OVLOP {
	struct $8FBSYMBOL* HEAD;
};
__FB_STATIC_ASSERT( sizeof( struct $10SYMB_OVLOP ) == 8 );
struct $10FB_RTTICTX {
	struct $8FBSYMBOL* FB_RTTI;
	struct $8FBSYMBOL* FB_OBJECT;
};
__FB_STATIC_ASSERT( sizeof( struct $10FB_RTTICTX ) == 16 );
struct $7SYMBCTX {
	int64 INITED;
	struct $5TLIST SYMLIST;
	struct $12FBHASHTBLIST HASHLIST;
	struct $10FBSYMCHAIN CHAINPOOL[4096];
	int64 CHAINPOOLHEAD;
	struct $8FBSYMBOL GLOBNSPC;
	struct $8FBSYMBOL* NAMESPC;
	struct $8FBHASHTB* HASHTB;
	struct $10FBSYMBOLTB* SYMTB;
	struct $6TSTACK NESTSTK;
	struct $5THASH IMPHASHTB;
	struct $5TLIST IMPHASHLIST;
	struct $5TPOOL NAMEPOOL;
	struct $5TLIST FWDLIST;
	struct $5TLIST NSEXTLIST;
	int64 FWDREFCNT;
	struct $12SYMB_DEF_CTX DEF;
	struct $8FBSYMBOL* LASTLBL;
	struct $15FB_GLOBCTORLIST GLOBCTORLIST;
	struct $15FB_GLOBCTORLIST GLOBDTORLIST;
	struct $10SYMB_OVLOP GLOBOPOVLTB[122];
	int64 FBARRAY_DATA;
	int64 FBARRAY_PTR;
	int64 FBARRAY_SIZE;
	int64 FBARRAY_DIMTB;
	struct $8FBSYMBOL* FBARRAYDIM;
	int64 FBARRAYDIM_LBOUND;
	int64 FBARRAYDIM_UBOUND;
	struct $10FB_RTTICTX RTTI;
};
__FB_STATIC_ASSERT( sizeof( struct $7SYMBCTX ) == 199256 );
extern struct $7SYMBCTX SYMB$;
extern struct $13SYMB_DATATYPE SYMB_DTYPETB$[26];
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$;
typedef int64 $10FB_OUTTYPE;
typedef int64 $10FB_BACKEND;
typedef int64 $10FB_CPUTYPE;
typedef int64 $10FB_FPUTYPE;
typedef int64 $9FB_FPMODE;
typedef int64 $17FB_VECTORIZELEVEL;
typedef int64 $12FB_ASMSYNTAX;
typedef int64 $7FB_LANG;
typedef int64 $10FB_PDCHECK;
typedef int64 $11FB_MODEVIEW;
struct $12FBCMMLINEOPT {
	$10FB_OUTTYPE OUTTYPE;
	int64 PPONLY;
	$10FB_BACKEND BACKEND;
	$13FB_COMPTARGET TARGET;
	$10FB_CPUTYPE CPUTYPE;
	$10FB_FPUTYPE FPUTYPE;
	$9FB_FPMODE FPMODE;
	$17FB_VECTORIZELEVEL VECTORIZE;
	int64 OPTLEVEL;
	$12FB_ASMSYNTAX ASMSYNTAX;
	$7FB_LANG LANG;
	int64 FORCELANG;
	int64 DEBUG;
	int64 DEBUGINFO;
	int64 ASSERTIONS;
	int64 ERRORCHECK;
	int64 RESUMEERR;
	int64 EXTRAERRCHK;
	int64 ERRLOCATION;
	int64 ARRAYBOUNDCHK;
	int64 ARRAYDIMSCHK;
	int64 NULLPTRCHK;
	int64 UNWINDINFO;
	int64 PROFILE;
	int64 WARNINGLEVEL;
	int64 SHOWERROR;
	int64 MAXERRORS;
	$10FB_PDCHECK PDCHECKOPT;
	int64 GOSUBSETJMP;
	int64 VALISTASPTR;
	int64 NOTHISCALL;
	int64 NOFASTCALL;
	int64 FBRT;
	int64 EXPORT;
	int64 MSBITFIELDS;
	int64 MULTITHREADED;
	int64 FBGFX;
	int64 FBSFX;
	int64 PIC;
	int64 STACKSIZE;
	int64 OBJINFO;
	int64 SHOWINCLUDES;
	$11FB_MODEVIEW MODEVIEW;
	int64 NOCMDLINE;
	int64 RETURNINFLTS;
	int64 NOBUILTINS;
	int64 OPTABSTRACT;
};
__FB_STATIC_ASSERT( sizeof( struct $12FBCMMLINEOPT ) == 376 );
typedef int64 $12FB_TARGETOPT;
struct $8FBTARGET {
	char* ID;
	$11FB_DATATYPE WCHAR;
	$11FB_FUNCMODE FBCALL;
	$11FB_FUNCMODE STDCALL;
	$12FB_TARGETOPT OPTIONS;
};
__FB_STATIC_ASSERT( sizeof( struct $8FBTARGET ) == 40 );
typedef int64 $12FB_WCHARCONV;
typedef int64 $13FBFILE_FORMAT;
struct $6FBFILE {
	int64 NUM;
	char NAME[261];
	char* INCFILE;
	int64 ISMAIN;
	$13FBFILE_FORMAT FORMAT;
};
__FB_STATIC_ASSERT( sizeof( struct $6FBFILE ) == 296 );
struct $6FBMAIN {
	struct $8FBSYMBOL* PROC;
	struct $7ASTNODE* INITNODE;
};
__FB_STATIC_ASSERT( sizeof( struct $6FBMAIN ) == 16 );
typedef int64 $11FB_LANG_OPT;
struct $11FB_LANG_CTX {
	$11FB_LANG_OPT OPT;
	$11FB_DATATYPE INTEGERKEYWORDDTYPE;
	$11FB_DATATYPE INT15LITERALDTYPE;
	$11FB_DATATYPE INT16LITERALDTYPE;
	$11FB_DATATYPE INT31LITERALDTYPE;
	$11FB_DATATYPE INT32LITERALDTYPE;
	$11FB_DATATYPE INT63LITERALDTYPE;
	$11FB_DATATYPE INT64LITERALDTYPE;
	$11FB_DATATYPE FLOATLITERALDTYPE;
};
__FB_STATIC_ASSERT( sizeof( struct $11FB_LANG_CTX ) == 72 );
struct $8FBOPTION {
	int64 BASE;
	int64 PARAMMODE;
	int64 EXPLICIT;
	int64 PROCPUBLIC;
	int64 PROCPROFILE;
	int64 ESCAPESTR;
	int64 DYNAMIC;
	int64 GOSUB;
};
__FB_STATIC_ASSERT( sizeof( struct $8FBOPTION ) == 64 );
typedef int64 $16FB_RESTART_FLAGS;
struct $7TSTRSET {
	struct $5TLIST LIST;
	struct $5THASH HASH;
};
__FB_STATIC_ASSERT( sizeof( struct $7TSTRSET ) == 88 );
struct $5FBENV {
	struct $5TLIST PREDEFINES;
	struct $5TLIST PREINCLUDES;
	struct $5TLIST INCLUDEPATHS;
	struct $12FBCMMLINEOPT CLOPT;
	struct $8FBTARGET TARGET;
	$12FB_WCHARCONV WCHARCONV;
	int64 UNDERSCOREPREFIX;
	int64 POINTERSIZE;
	struct $6FBFILE INF;
	struct $6FBFILE OUTF;
	int64 PPFILE_NUM;
	struct $5THASH FILENAMEHASH;
	struct $5THASH INCFILEHASH;
	struct $5THASH INCONCEHASH;
	int64 INCLUDEREC;
	char ENTRY[128];
	struct $6FBMAIN MAIN;
	struct $11FB_LANG_CTX LANG;
	struct $8FBOPTION OPT;
	int64 INITED;
	int64 MODULE_COUNT;
	$16FB_RESTART_FLAGS RESTART_REQUEST;
	$16FB_RESTART_FLAGS RESTART_ACTION;
	$16FB_RESTART_FLAGS RESTART_STATUS;
	int64 RESTART_COUNT;
	$7FB_LANG RESTART_LANG;
	struct $7TSTRSET LIBS;
	struct $7TSTRSET LIBPATHS;
	int64 FBCTINF_STARTED;
};
__FB_STATIC_ASSERT( sizeof( struct $5FBENV ) == 1832 );
extern struct $5FBENV ENV$;
struct $7LEX_CTX {
	struct $9LEX_TKCTX CTXTB[17];
	struct $9LEX_TKCTX* CTX;
	int64 INSIDEMACRO;
};
__FB_STATIC_ASSERT( sizeof( struct $7LEX_CTX ) == 862256 );
extern struct $7LEX_CTX LEX$;
struct $10TFLISTITEM;
struct $10TFLISTITEM {
	struct $10TFLISTITEM* NEXT;
};
__FB_STATIC_ASSERT( sizeof( struct $10TFLISTITEM ) == 8 );
struct $6TFLIST {
	int64 TOTITEMS;
	int64 ITEMS;
	struct $10TFLISTITEM* ITEMTB;
	int64 INDEX;
	struct $10TFLISTITEM* LASTITEM;
	struct $5TLIST LIST;
	struct $7TLISTTB* LISTTB;
};
__FB_STATIC_ASSERT( sizeof( struct $6TFLIST ) == 112 );
struct $11IRHLCONTEXT {
	int64 REGCOUNT;
	struct $6TFLIST VREGS;
	struct $5TLIST CALLARGS;
};
__FB_STATIC_ASSERT( sizeof( struct $11IRHLCONTEXT ) == 184 );
extern struct $11IRHLCONTEXT IRHL$;
static struct $8IRHLCCTX CTX$;
static char* DTYPENAME$[26] = { (char*)"void", (char*)"boolean", (char*)"int8", (char*)"uint8", (char*)"char", (char*)"int16", (char*)"uint16", (char*)0ull, (char*)0ull, (char*)0ull, (char*)0ull, (char*)"int32", (char*)"uint32", (char*)"int64", (char*)"uint64", (char*)"float", (char*)"double", (char*)"FBSTRING", (char*)0ull, (char*)"__builtin_va_list", (char*)0ull, (char*)0ull, (char*)0ull, (char*)"void", (char*)0ull };
struct $7IR_VTBL IRHLC_VTBL$ = { (tmp$40)&_INIT, (tmp$40)&_END, (tmp$41)&_EMITBEGIN, (tmp$40)&_EMITEND, (tmp$42)&_GETOPTIONVALUE, (tmp$43)&_SUPPORTSOP, (tmp$44)&_PROCBEGIN, (tmp$44)&_PROCEND, (tmp$45)0ull, (tmp$45)0ull, (tmp$46)0ull, (tmp$44)&_SCOPEBEGIN, (tmp$44)&_SCOPEEND, (tmp$44)&_PROCALLOCSTATICVARS, (tmp$47)&_EMITCONVERT, (tmp$44)&_EMITLABEL, (tmp$44)&_EMITLABEL, (tmp$48)0ull, (tmp$45)&_EMITPROCBEGIN, (tmp$49)&_EMITPROCEND, (tmp$50)&IRHLEMITPUSHARG, (tmp$51)&_EMITASMLINE, (tmp$52)&_EMITCOMMENT, (tmp$53)&_EMITBOP, (tmp$54)&_EMITUOP, (tmp$47)&_EMITSTORE, (tmp$40)&_EMITSPILLREGS, (tmp$55)&_EMITLOAD, (tmp$47)&_EMITLOADRES, (tmp$54)0ull, (tmp$54)&_EMITADDR, (tmp$56)&_EMITCALL, (tmp$57)&_EMITCALLPTR, (tmp$48)0ull, (tmp$55)&_EMITJUMPPTR, (tmp$58)&_EMITBRANCH, (tmp$59)&_EMITJMPTB, (tmp$60)&_EMITMEM, (tmp$61)&_EMITMACRO, (tmp$44)&_EMITSCOPEBEGIN, (tmp$44)&_EMITSCOPEEND, (tmp$44)&_EMITDECL, (tmp$62)&_EMITDBG, (tmp$44)&_EMITVARINIBEGIN, (tmp$44)&_EMITVARINIEND, (tmp$63)&_EMITVARINII, (tmp$64)&_EMITVARINIF, (tmp$65)&_EMITVARINIOFS, (tmp$66)&_EMITVARINISTR, (tmp$67)&_EMITVARINIWSTR, (tmp$68)&_EMITVARINIPAD, (tmp$69)&_EMITVARINISCOPEBEGIN, (tmp$40)&_EMITVARINISCOPEEND, (tmp$40)&_EMITFBCTINFBEGIN, (tmp$70)&_EMITFBCTINFSTRING, (tmp$40)&_EMITFBCTINFEND, (tmp$71)&IRHLALLOCVREG, (tmp$72)&IRHLALLOCVRIMM, (tmp$73)&IRHLALLOCVRIMMF, (tmp$74)&IRHLALLOCVRVAR, (tmp$75)&IRHLALLOCVRIDX, (tmp$76)&IRHLALLOCVRPTR, (tmp$74)&IRHLALLOCVROFS, (tmp$77)&_SETVREGDATATYPE, (tmp$78)0ull, (tmp$54)0ull, (tmp$47)0ull, (tmp$48)0ull };

__attribute__(( constructor )) static void fb_ctor__irzhlc( void )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$0:;
	label$1:;
}

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 void _ZN12SECTIONENTRYC1Ev( struct $12SECTIONENTRY* THIS$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	__builtin_memset( (FBSTRING*)THIS$1, 0, 24ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 24ll), 0, 8ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 32ll), 0, 8ll );
	label$10:;
	label$11:;
}

static void _ZN12SECTIONENTRYaSERKS_( struct $12SECTIONENTRY* THIS$1, const struct $12SECTIONENTRY* __FB_RHS__$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$12:;
	fb_StrAssign( (void*)THIS$1, -1ll, (void*)__FB_RHS__$1, -1ll, 0 );
	*(int64*)((uint8*)THIS$1 + 24ll) = *(int64*)((uint8*)__FB_RHS__$1 + 24ll);
	*(int64*)((uint8*)THIS$1 + 32ll) = *(int64*)((uint8*)__FB_RHS__$1 + 32ll);
	label$13:;
}

static void _ZN12SECTIONENTRYD1Ev( struct $12SECTIONENTRY* THIS$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$16:;
	label$17:;
	fb_StrDelete( (FBSTRING*)THIS$1 );
}

static void _ZN8IRHLCCTXC1Ev( struct $8IRHLCCTX* THIS$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 TMP$99$1;
	struct $12SECTIONENTRY* TMP$100$1;
	TMP$100$1 = (struct $12SECTIONENTRY*)THIS$1;
	TMP$99$1 = 0ll;
	label$20:;
	_ZN12SECTIONENTRYC1Ev( TMP$100$1 );
	TMP$100$1 = (struct $12SECTIONENTRY*)((uint8*)TMP$100$1 + 40ll);
	TMP$99$1 = TMP$99$1 + 1ll;
	if( TMP$99$1 != 129ll) goto label$20;
	__builtin_memset( (int64*)((uint8*)THIS$1 + 5160ll), 0, 8ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 5168ll), 0, 8ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 5176ll), 0, 8ll );
	__builtin_memset( (FBSTRING*)((uint8*)THIS$1 + 5184ll), 0, 24ll );
	__builtin_memset( (uint64*)((uint8*)THIS$1 + 5208ll), 0, 8ll );
	__builtin_memset( (struct $5TLIST*)((uint8*)THIS$1 + 5216ll), 0, 64ll );
	__builtin_memset( (FBSTRING*)((uint8*)THIS$1 + 5280ll), 0, 24ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 5304ll), 0, 8ll );
	__builtin_memset( (FBSTRING*)((uint8*)THIS$1 + 5312ll), 0, 24ll );
	__builtin_memset( (FBSTRING*)((uint8*)THIS$1 + 5336ll), 0, 24ll );
	__builtin_memset( (struct $5TLIST*)((uint8*)THIS$1 + 5360ll), 0, 64ll );
	__builtin_memset( (FBSTRING*)((uint8*)THIS$1 + 5424ll), 0, 24ll );
	__builtin_memset( (struct $5TLIST*)((uint8*)THIS$1 + 5448ll), 0, 64ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 5512ll), 0, 8ll );
	label$18:;
	label$19:;
}

static void _ZN8IRHLCCTXaSERKS_( struct $8IRHLCCTX* THIS$1, const struct $8IRHLCCTX* __FB_RHS__$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 TMP$101$1;
	struct $12SECTIONENTRY* TMP$102$1;
	struct $12SECTIONENTRY* TMP$103$1;
	label$21:;
	TMP$102$1 = (struct $12SECTIONENTRY*)THIS$1;
	TMP$103$1 = (struct $12SECTIONENTRY*)__FB_RHS__$1;
	TMP$101$1 = 0ll;
	label$23:;
	_ZN12SECTIONENTRYaSERKS_( TMP$102$1, (struct $12SECTIONENTRY*)TMP$103$1 );
	TMP$102$1 = (struct $12SECTIONENTRY*)((uint8*)TMP$102$1 + 40ll);
	TMP$103$1 = (struct $12SECTIONENTRY*)((uint8*)TMP$103$1 + 40ll);
	TMP$101$1 = TMP$101$1 + 1ll;
	if( TMP$101$1 != 129ll) goto label$23;
	*(int64*)((uint8*)THIS$1 + 5160ll) = *(int64*)((uint8*)__FB_RHS__$1 + 5160ll);
	*(int64*)((uint8*)THIS$1 + 5168ll) = *(int64*)((uint8*)__FB_RHS__$1 + 5168ll);
	*(int64*)((uint8*)THIS$1 + 5176ll) = *(int64*)((uint8*)__FB_RHS__$1 + 5176ll);
	fb_StrAssign( (void*)((uint8*)THIS$1 + 5184ll), -1ll, (void*)((uint8*)__FB_RHS__$1 + 5184ll), -1ll, 0 );
	*(uint64*)((uint8*)THIS$1 + 5208ll) = *(uint64*)((uint8*)__FB_RHS__$1 + 5208ll);
	__builtin_memcpy( (struct $5TLIST*)((uint8*)THIS$1 + 5216ll), (struct $5TLIST*)((uint8*)__FB_RHS__$1 + 5216ll), 64 );
	fb_StrAssign( (void*)((uint8*)THIS$1 + 5280ll), -1ll, (void*)((uint8*)__FB_RHS__$1 + 5280ll), -1ll, 0 );
	*(int64*)((uint8*)THIS$1 + 5304ll) = *(int64*)((uint8*)__FB_RHS__$1 + 5304ll);
	fb_StrAssign( (void*)((uint8*)THIS$1 + 5312ll), -1ll, (void*)((uint8*)__FB_RHS__$1 + 5312ll), -1ll, 0 );
	fb_StrAssign( (void*)((uint8*)THIS$1 + 5336ll), -1ll, (void*)((uint8*)__FB_RHS__$1 + 5336ll), -1ll, 0 );
	__builtin_memcpy( (struct $5TLIST*)((uint8*)THIS$1 + 5360ll), (struct $5TLIST*)((uint8*)__FB_RHS__$1 + 5360ll), 64 );
	fb_StrAssign( (void*)((uint8*)THIS$1 + 5424ll), -1ll, (void*)((uint8*)__FB_RHS__$1 + 5424ll), -1ll, 0 );
	__builtin_memcpy( (struct $5TLIST*)((uint8*)THIS$1 + 5448ll), (struct $5TLIST*)((uint8*)__FB_RHS__$1 + 5448ll), 64 );
	*(int64*)((uint8*)THIS$1 + 5512ll) = *(int64*)((uint8*)__FB_RHS__$1 + 5512ll);
	label$22:;
}

static void _ZN8IRHLCCTXD1Ev( struct $8IRHLCCTX* THIS$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 TMP$106$1;
	struct $12SECTIONENTRY* TMP$107$1;
	label$27:;
	label$28:;
	fb_StrDelete( (FBSTRING*)((uint8*)THIS$1 + 5424ll) );
	fb_StrDelete( (FBSTRING*)((uint8*)THIS$1 + 5336ll) );
	fb_StrDelete( (FBSTRING*)((uint8*)THIS$1 + 5312ll) );
	fb_StrDelete( (FBSTRING*)((uint8*)THIS$1 + 5280ll) );
	fb_StrDelete( (FBSTRING*)((uint8*)THIS$1 + 5184ll) );
	TMP$107$1 = (struct $12SECTIONENTRY*)((uint8*)THIS$1 + 5120ll);
	TMP$106$1 = 0ll;
	label$29:;
	_ZN12SECTIONENTRYD1Ev( TMP$107$1 );
	TMP$107$1 = (struct $12SECTIONENTRY*)((uint8*)TMP$107$1 + -40ll);
	TMP$106$1 = TMP$106$1 + 1ll;
	if( TMP$106$1 != 129ll) goto label$29;
}

static void _INIT( void )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$30:;
	IRHLINIT(  );
	LISTINIT( (struct $5TLIST*)((uint8*)&CTX$ + 5216ll), 8ll, 8ll, 6ll );
	LISTINIT( (struct $5TLIST*)((uint8*)&CTX$ + 5360ll), 32ll, 48ll, 7ll );
	LISTINIT( (struct $5TLIST*)((uint8*)&CTX$ + 5448ll), 8ll, 16ll, 6ll );
	*($6IR_OPT*)((uint8*)&IR$ + 544ll) = *(int64*)((uint8*)&IR$ + 544ll) | 131074ll;
	int64 vr$4 = FBIS64BIT(  );
	if( vr$4 == 0ll) goto label$33;
	{
		*(char**)((uint64)(char**)DTYPENAME$ + 64ll) = *(char**)((uint64)(char**)DTYPENAME$ + 104ll);
		*(char**)((uint64)(char**)DTYPENAME$ + 72ll) = *(char**)((uint64)(char**)DTYPENAME$ + 112ll);
	}
	goto label$32;
	label$33:;
	{
		*(char**)((uint64)(char**)DTYPENAME$ + 64ll) = *(char**)((uint64)(char**)DTYPENAME$ + 88ll);
		*(char**)((uint64)(char**)DTYPENAME$ + 72ll) = *(char**)((uint64)(char**)DTYPENAME$ + 96ll);
	}
	label$32:;
	label$31:;
}

static void _END( void )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$34:;
	LISTEND( (struct $5TLIST*)((uint8*)&CTX$ + 5448ll) );
	LISTEND( (struct $5TLIST*)((uint8*)&CTX$ + 5360ll) );
	LISTEND( (struct $5TLIST*)((uint8*)&CTX$ + 5216ll) );
	IRHLEND(  );
	label$35:;
}

static void SECTIONBEGIN( void )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$36:;
	*(int64*)((uint8*)&CTX$ + 5160ll) = *(int64*)((uint8*)&CTX$ + 5160ll) + 1ll;
	{
		struct $12SECTIONENTRY* TMP$124$2;
		TMP$124$2 = (struct $12SECTIONENTRY*)((uint8*)&CTX$ + (*(int64*)((uint8*)&CTX$ + 5160ll) * 40ll));
		*(int64*)((uint8*)TMP$124$2 + 24ll) = -1ll;
		if( *(int64*)((uint8*)&CTX$ + 5160ll) <= 0ll) goto label$39;
		{
			*(int64*)((uint8*)TMP$124$2 + 32ll) = *(int64*)((uint8*)((uint8*)&CTX$ + (*(int64*)((uint8*)&CTX$ + 5160ll) * 40ll)) + -8ll);
		}
		goto label$38;
		label$39:;
		{
			*(int64*)((uint8*)TMP$124$2 + 32ll) = 0ll;
		}
		label$38:;
	}
	label$37:;
}

static void SECTIONWRITELINE( FBSTRING* S$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$40:;
	{
		FBSTRING TMP$131$2;
		struct $12SECTIONENTRY* TMP$125$2;
		TMP$125$2 = (struct $12SECTIONENTRY*)((uint8*)&CTX$ + (*(int64*)((uint8*)&CTX$ + 5160ll) * 40ll));
		if( *(int64*)((uint8*)TMP$125$2 + 24ll) == 0ll) goto label$43;
		{
			if( *(int64*)((uint8*)TMP$125$2 + 32ll) <= 0ll) goto label$45;
			{
				FBSTRING TMP$127$4;
				FBSTRING* vr$5 = fb_StrAllocTempDescZEx( (char*)"\x09", 1ll );
				FBSTRING* vr$7 = fb_StrFill2( *(int64*)((uint8*)TMP$125$2 + 32ll), (FBSTRING*)vr$5 );
				fb_StrAssign( (void*)TMP$125$2, -1ll, (void*)vr$7, -1ll, 0 );
				__builtin_memset( &TMP$127$4, 0, 24ll );
				FBSTRING* vr$14 = fb_StrConcat( &TMP$127$4, (void*)TMP$125$2, -1ll, (void*)S$1, -1ll );
				fb_StrAssign( (void*)TMP$125$2, -1ll, (void*)vr$14, -1ll, 0 );
			}
			goto label$44;
			label$45:;
			{
				fb_StrAssign( (void*)TMP$125$2, -1ll, (void*)S$1, -1ll, 0 );
			}
			label$44:;
			*(int64*)((uint8*)TMP$125$2 + 24ll) = 0ll;
		}
		goto label$42;
		label$43:;
		{
			FBSTRING TMP$129$3;
			if( *(int64*)((uint8*)TMP$125$2 + 32ll) <= 0ll) goto label$47;
			{
				FBSTRING TMP$128$4;
				FBSTRING* vr$21 = fb_StrAllocTempDescZEx( (char*)"\x09", 1ll );
				FBSTRING* vr$23 = fb_StrFill2( *(int64*)((uint8*)TMP$125$2 + 32ll), (FBSTRING*)vr$21 );
				__builtin_memset( &TMP$128$4, 0, 24ll );
				FBSTRING* vr$28 = fb_StrConcat( &TMP$128$4, (void*)TMP$125$2, -1ll, (void*)vr$23, -1ll );
				fb_StrAssign( (void*)TMP$125$2, -1ll, (void*)vr$28, -1ll, 0 );
			}
			label$47:;
			label$46:;
			__builtin_memset( &TMP$129$3, 0, 24ll );
			FBSTRING* vr$35 = fb_StrConcat( &TMP$129$3, (void*)TMP$125$2, -1ll, (void*)S$1, -1ll );
			fb_StrAssign( (void*)TMP$125$2, -1ll, (void*)vr$35, -1ll, 0 );
		}
		label$42:;
		__builtin_memset( &TMP$131$2, 0, 24ll );
		FBSTRING* vr$42 = fb_StrConcat( &TMP$131$2, (void*)TMP$125$2, -1ll, (void*)"\x0A", 2ll );
		fb_StrAssign( (void*)TMP$125$2, -1ll, (void*)vr$42, -1ll, 0 );
	}
	label$41:;
}

static void SECTIONINDENT( void )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$48:;
	*(int64*)((uint8*)((uint8*)&CTX$ + (*(int64*)((uint8*)&CTX$ + 5160ll) * 40ll)) + 32ll) = *(int64*)((uint8*)((uint8*)&CTX$ + (*(int64*)((uint8*)&CTX$ + 5160ll) * 40ll)) + 32ll) + 1ll;
	label$49:;
}

static void SECTIONUNINDENT( void )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$50:;
	*(int64*)((uint8*)((uint8*)&CTX$ + (*(int64*)((uint8*)&CTX$ + 5160ll) * 40ll)) + 32ll) = *(int64*)((uint8*)((uint8*)&CTX$ + (*(int64*)((uint8*)&CTX$ + 5160ll) * 40ll)) + 32ll) + -1ll;
	label$51:;
}

static int64 SECTIONINSIDEPROC( void )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$52:;
	fb$result$1 = (int64)-(*(int64*)((uint8*)&CTX$ + 5160ll) >= 2ll);
	label$53:;
	return fb$result$1;
}

static void SECTIONEND( void )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$54:;
	struct $12SECTIONENTRY* PARENT$1;
	struct $12SECTIONENTRY* CHILD$1;
	if( *(int64*)((uint8*)&CTX$ + 5160ll) <= 0ll) goto label$57;
	{
		PARENT$1 = (struct $12SECTIONENTRY*)((uint8*)((uint8*)&CTX$ + (*(int64*)((uint8*)&CTX$ + 5160ll) * 40ll)) + -40ll);
		CHILD$1 = (struct $12SECTIONENTRY*)((uint8*)&CTX$ + (*(int64*)((uint8*)&CTX$ + 5160ll) * 40ll));
		if( *(int64*)((uint8*)CHILD$1 + 24ll) != 0ll) goto label$59;
		{
			if( *(int64*)((uint8*)PARENT$1 + 24ll) == 0ll) goto label$61;
			{
				fb_StrAssign( (void*)PARENT$1, -1ll, (void*)CHILD$1, -1ll, 0 );
				*(int64*)((uint8*)PARENT$1 + 24ll) = 0ll;
			}
			goto label$60;
			label$61:;
			{
				FBSTRING TMP$132$4;
				__builtin_memset( &TMP$132$4, 0, 24ll );
				FBSTRING* vr$19 = fb_StrConcat( &TMP$132$4, (void*)PARENT$1, -1ll, (void*)CHILD$1, -1ll );
				fb_StrAssign( (void*)PARENT$1, -1ll, (void*)vr$19, -1ll, 0 );
			}
			label$60:;
		}
		label$59:;
		label$58:;
	}
	label$57:;
	label$56:;
	*(int64*)((uint8*)&CTX$ + 5160ll) = *(int64*)((uint8*)&CTX$ + 5160ll) + -1ll;
	label$55:;
}

static int64 SECTIONGOSUB( int64 SECTION$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$62:;
	fb$result$1 = *(int64*)((uint8*)&CTX$ + 5160ll);
	*(int64*)((uint8*)&CTX$ + 5160ll) = SECTION$1;
	*(int64*)((uint8*)&CTX$ + 5168ll) = *(int64*)((uint8*)&CTX$ + 5168ll) + 1ll;
	label$63:;
	return fb$result$1;
}

static void SECTIONRETURN( int64 SECTION$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$64:;
	*(int64*)((uint8*)&CTX$ + 5168ll) = *(int64*)((uint8*)&CTX$ + 5168ll) + -1ll;
	*(int64*)((uint8*)&CTX$ + 5160ll) = SECTION$1;
	label$65:;
}

static void HWRITELINE( FBSTRING* S$1, int64 NOLINE$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$66:;
	static FBSTRING LN$1;
	if( (*(int64*)((uint8*)&ENV$ + 296ll) & (int64)-(NOLINE$1 == 0ll)) == 0ll) goto label$69;
	{
		fb_StrAssign( (void*)&LN$1, -1ll, (void*)"#line ", 7ll, 0 );
		FBSTRING* vr$2 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 5176ll) );
		fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)vr$2, -1ll, 0 );
		fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" \x22", 3ll, 0 );
		fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)((uint8*)&CTX$ + 5184ll), -1ll, 0 );
		fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)"\x22", 2ll, 0 );
		SECTIONWRITELINE( &LN$1 );
	}
	label$69:;
	label$68:;
	SECTIONWRITELINE( S$1 );
	label$67:;
}

static void HUPDATECURRENTFILENAME( char* FILENAME$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$70:;
	FBSTRING* vr$0 = HREPLACE( FILENAME$1, (char*)"\x5C", (char*)"\x5C\x5C" );
	fb_StrAssign( (void*)((uint8*)&CTX$ + 5184ll), -1ll, (void*)vr$0, -1ll, 0 );
	label$71:;
}

static void HWRITESTATICASSERT( FBSTRING* EXPR$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING TMP$142$1;
	FBSTRING TMP$143$1;
	FBSTRING TMP$144$1;
	label$72:;
	int64 SECTION$1;
	if( (*(uint64*)((uint8*)&CTX$ + 5208ll) & 64ull) != 0ull) goto label$75;
	{
		FBSTRING TMP$139$2;
		*(uint64*)((uint8*)&CTX$ + 5208ll) = *(uint64*)((uint8*)&CTX$ + 5208ll) | 64ull;
		int64 vr$2 = SECTIONGOSUB( 0ll );
		SECTION$1 = vr$2;
		__builtin_memset( &TMP$139$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$139$2, -1ll, (void*)"#define __FB_STATIC_ASSERT( expr ) extern int __$fb_structsizecheck[(expr) ? 1 : -1]", 85ll, 0 );
		HWRITELINE( &TMP$139$2, -1ll );
		fb_StrDelete( (FBSTRING*)&TMP$139$2 );
		SECTIONRETURN( SECTION$1 );
	}
	label$75:;
	label$74:;
	__builtin_memset( &TMP$144$1, 0, 24ll );
	__builtin_memset( &TMP$142$1, 0, 24ll );
	FBSTRING* vr$10 = fb_StrConcat( &TMP$142$1, (void*)"__FB_STATIC_ASSERT( ", 21ll, (void*)EXPR$1, -1ll );
	__builtin_memset( &TMP$143$1, 0, 24ll );
	FBSTRING* vr$13 = fb_StrConcat( &TMP$143$1, (void*)vr$10, -1ll, (void*)" );", 4ll );
	fb_StrAssign( (void*)&TMP$144$1, -1ll, (void*)vr$13, -1ll, 0 );
	HWRITELINE( &TMP$144$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$144$1 );
	label$73:;
}

static void HAPPENDCLOBBER( FBSTRING* LN$1, char* REGNAME$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING TMP$146$1;
	label$76:;
	fb_StrConcatByref( (void*)LN$1, -1ll, (void*)", \x22", 4ll, 0 );
	__builtin_memset( &TMP$146$1, 0, 24ll );
	FBSTRING* vr$2 = fb_StrConcat( &TMP$146$1, (void*)LN$1, -1ll, (void*)REGNAME$1, 0ll );
	fb_StrAssign( (void*)LN$1, -1ll, (void*)vr$2, -1ll, 0 );
	fb_StrConcatByref( (void*)LN$1, -1ll, (void*)"\x22", 2ll, 0 );
	label$77:;
}

static void HAPPENDPROCASMCLOBBERS( FBSTRING* LN$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$78:;
	{
		int64 TMP$147$2;
		int64 vr$0 = FBGETCPUFAMILY(  );
		TMP$147$2 = vr$0;
		if( TMP$147$2 != 0ll) goto label$81;
		label$82:;
		{
			HAPPENDCLOBBER( LN$1, (char*)"eax" );
			if( *(int64*)((uint8*)&ENV$ + 496ll) != 0ll) goto label$84;
			{
				HAPPENDCLOBBER( LN$1, (char*)"ebx" );
			}
			label$84:;
			label$83:;
			HAPPENDCLOBBER( LN$1, (char*)"ecx" );
			HAPPENDCLOBBER( LN$1, (char*)"edx" );
			HAPPENDCLOBBER( LN$1, (char*)"edi" );
			HAPPENDCLOBBER( LN$1, (char*)"esi" );
			if( *(int64*)((uint8*)&ENV$ + 232ll) != 1ll) goto label$86;
			{
				HAPPENDCLOBBER( LN$1, (char*)"mm0" );
				HAPPENDCLOBBER( LN$1, (char*)"mm1" );
				HAPPENDCLOBBER( LN$1, (char*)"mm2" );
				HAPPENDCLOBBER( LN$1, (char*)"mm3" );
				HAPPENDCLOBBER( LN$1, (char*)"mm4" );
				HAPPENDCLOBBER( LN$1, (char*)"mm5" );
				HAPPENDCLOBBER( LN$1, (char*)"mm6" );
				HAPPENDCLOBBER( LN$1, (char*)"mm7" );
				HAPPENDCLOBBER( LN$1, (char*)"xmm0" );
				HAPPENDCLOBBER( LN$1, (char*)"xmm1" );
				HAPPENDCLOBBER( LN$1, (char*)"xmm2" );
				HAPPENDCLOBBER( LN$1, (char*)"xmm3" );
				HAPPENDCLOBBER( LN$1, (char*)"xmm4" );
				HAPPENDCLOBBER( LN$1, (char*)"xmm5" );
				HAPPENDCLOBBER( LN$1, (char*)"xmm6" );
				HAPPENDCLOBBER( LN$1, (char*)"xmm7" );
			}
			label$86:;
			label$85:;
		}
		goto label$80;
		label$81:;
		if( TMP$147$2 != 1ll) goto label$87;
		label$88:;
		{
			HAPPENDCLOBBER( LN$1, (char*)"rax" );
			HAPPENDCLOBBER( LN$1, (char*)"rbx" );
			HAPPENDCLOBBER( LN$1, (char*)"rcx" );
			HAPPENDCLOBBER( LN$1, (char*)"rdx" );
			HAPPENDCLOBBER( LN$1, (char*)"rdi" );
			HAPPENDCLOBBER( LN$1, (char*)"rsi" );
			HAPPENDCLOBBER( LN$1, (char*)"r8" );
			HAPPENDCLOBBER( LN$1, (char*)"r9" );
			HAPPENDCLOBBER( LN$1, (char*)"r10" );
			HAPPENDCLOBBER( LN$1, (char*)"r11" );
			HAPPENDCLOBBER( LN$1, (char*)"r12" );
			HAPPENDCLOBBER( LN$1, (char*)"r13" );
			HAPPENDCLOBBER( LN$1, (char*)"r14" );
			HAPPENDCLOBBER( LN$1, (char*)"r15" );
			if( *(int64*)((uint8*)&ENV$ + 232ll) != 1ll) goto label$90;
			{
				HAPPENDCLOBBER( LN$1, (char*)"mm0" );
				HAPPENDCLOBBER( LN$1, (char*)"mm1" );
				HAPPENDCLOBBER( LN$1, (char*)"mm2" );
				HAPPENDCLOBBER( LN$1, (char*)"mm3" );
				HAPPENDCLOBBER( LN$1, (char*)"mm4" );
				HAPPENDCLOBBER( LN$1, (char*)"mm5" );
				HAPPENDCLOBBER( LN$1, (char*)"mm6" );
				HAPPENDCLOBBER( LN$1, (char*)"mm7" );
				HAPPENDCLOBBER( LN$1, (char*)"xmm0" );
				HAPPENDCLOBBER( LN$1, (char*)"xmm1" );
				HAPPENDCLOBBER( LN$1, (char*)"xmm2" );
				HAPPENDCLOBBER( LN$1, (char*)"xmm3" );
				HAPPENDCLOBBER( LN$1, (char*)"xmm4" );
				HAPPENDCLOBBER( LN$1, (char*)"xmm5" );
				HAPPENDCLOBBER( LN$1, (char*)"xmm6" );
				HAPPENDCLOBBER( LN$1, (char*)"xmm7" );
				HAPPENDCLOBBER( LN$1, (char*)"xmm8" );
				HAPPENDCLOBBER( LN$1, (char*)"xmm9" );
				HAPPENDCLOBBER( LN$1, (char*)"xmm10" );
				HAPPENDCLOBBER( LN$1, (char*)"xmm11" );
				HAPPENDCLOBBER( LN$1, (char*)"xmm12" );
				HAPPENDCLOBBER( LN$1, (char*)"xmm13" );
				HAPPENDCLOBBER( LN$1, (char*)"xmm14" );
				HAPPENDCLOBBER( LN$1, (char*)"xmm15" );
			}
			label$90:;
			label$89:;
		}
		goto label$80;
		label$87:;
		if( TMP$147$2 != 2ll) goto label$91;
		label$92:;
		{
			HAPPENDCLOBBER( LN$1, (char*)"r0" );
			HAPPENDCLOBBER( LN$1, (char*)"r1" );
			HAPPENDCLOBBER( LN$1, (char*)"r2" );
			HAPPENDCLOBBER( LN$1, (char*)"r3" );
			HAPPENDCLOBBER( LN$1, (char*)"r4" );
			HAPPENDCLOBBER( LN$1, (char*)"r5" );
			HAPPENDCLOBBER( LN$1, (char*)"r6" );
			HAPPENDCLOBBER( LN$1, (char*)"r8" );
			HAPPENDCLOBBER( LN$1, (char*)"r9" );
			HAPPENDCLOBBER( LN$1, (char*)"r10" );
			HAPPENDCLOBBER( LN$1, (char*)"r11" );
			HAPPENDCLOBBER( LN$1, (char*)"r12" );
			HAPPENDCLOBBER( LN$1, (char*)"r14" );
			HAPPENDCLOBBER( LN$1, (char*)"r15" );
		}
		goto label$80;
		label$91:;
		if( TMP$147$2 != 3ll) goto label$93;
		label$94:;
		{
			HAPPENDCLOBBER( LN$1, (char*)"x0" );
			HAPPENDCLOBBER( LN$1, (char*)"x1" );
			HAPPENDCLOBBER( LN$1, (char*)"x2" );
			HAPPENDCLOBBER( LN$1, (char*)"x3" );
			HAPPENDCLOBBER( LN$1, (char*)"x4" );
			HAPPENDCLOBBER( LN$1, (char*)"x5" );
			HAPPENDCLOBBER( LN$1, (char*)"x6" );
			HAPPENDCLOBBER( LN$1, (char*)"x7" );
			HAPPENDCLOBBER( LN$1, (char*)"x8" );
			HAPPENDCLOBBER( LN$1, (char*)"x9" );
			HAPPENDCLOBBER( LN$1, (char*)"x10" );
			HAPPENDCLOBBER( LN$1, (char*)"x11" );
			HAPPENDCLOBBER( LN$1, (char*)"x12" );
			HAPPENDCLOBBER( LN$1, (char*)"x13" );
			HAPPENDCLOBBER( LN$1, (char*)"x14" );
			HAPPENDCLOBBER( LN$1, (char*)"x15" );
			HAPPENDCLOBBER( LN$1, (char*)"x16" );
			HAPPENDCLOBBER( LN$1, (char*)"x17" );
			HAPPENDCLOBBER( LN$1, (char*)"x18" );
			HAPPENDCLOBBER( LN$1, (char*)"x19" );
			HAPPENDCLOBBER( LN$1, (char*)"x20" );
			HAPPENDCLOBBER( LN$1, (char*)"x21" );
			HAPPENDCLOBBER( LN$1, (char*)"x22" );
			HAPPENDCLOBBER( LN$1, (char*)"x23" );
			HAPPENDCLOBBER( LN$1, (char*)"x24" );
			HAPPENDCLOBBER( LN$1, (char*)"x25" );
			HAPPENDCLOBBER( LN$1, (char*)"x26" );
			HAPPENDCLOBBER( LN$1, (char*)"x27" );
			HAPPENDCLOBBER( LN$1, (char*)"x28" );
			HAPPENDCLOBBER( LN$1, (char*)"x30" );
		}
		goto label$80;
		label$93:;
		if( TMP$147$2 == 7ll) goto label$96;
		label$97:;
		if( TMP$147$2 != 8ll) goto label$95;
		label$96:;
		{
			HAPPENDCLOBBER( LN$1, (char*)"ra" );
			HAPPENDCLOBBER( LN$1, (char*)"gp" );
			HAPPENDCLOBBER( LN$1, (char*)"tp" );
			HAPPENDCLOBBER( LN$1, (char*)"t0" );
			HAPPENDCLOBBER( LN$1, (char*)"t1" );
			HAPPENDCLOBBER( LN$1, (char*)"t2" );
			HAPPENDCLOBBER( LN$1, (char*)"s0" );
			HAPPENDCLOBBER( LN$1, (char*)"s1" );
			HAPPENDCLOBBER( LN$1, (char*)"a0" );
			HAPPENDCLOBBER( LN$1, (char*)"a1" );
			HAPPENDCLOBBER( LN$1, (char*)"a2" );
			HAPPENDCLOBBER( LN$1, (char*)"a3" );
			HAPPENDCLOBBER( LN$1, (char*)"a4" );
			HAPPENDCLOBBER( LN$1, (char*)"a5" );
			HAPPENDCLOBBER( LN$1, (char*)"a6" );
			HAPPENDCLOBBER( LN$1, (char*)"a7" );
			HAPPENDCLOBBER( LN$1, (char*)"s2" );
			HAPPENDCLOBBER( LN$1, (char*)"s3" );
			HAPPENDCLOBBER( LN$1, (char*)"s4" );
			HAPPENDCLOBBER( LN$1, (char*)"s5" );
			HAPPENDCLOBBER( LN$1, (char*)"s6" );
			HAPPENDCLOBBER( LN$1, (char*)"s7" );
			HAPPENDCLOBBER( LN$1, (char*)"s8" );
			HAPPENDCLOBBER( LN$1, (char*)"s9" );
			HAPPENDCLOBBER( LN$1, (char*)"s10" );
			HAPPENDCLOBBER( LN$1, (char*)"s11" );
			HAPPENDCLOBBER( LN$1, (char*)"t3" );
			HAPPENDCLOBBER( LN$1, (char*)"t4" );
			HAPPENDCLOBBER( LN$1, (char*)"t5" );
			HAPPENDCLOBBER( LN$1, (char*)"t6" );
		}
		goto label$80;
		label$95:;
		if( TMP$147$2 != 9ll) goto label$98;
		label$99:;
		{
			HAPPENDCLOBBER( LN$1, (char*)"r0" );
			HAPPENDCLOBBER( LN$1, (char*)"r1" );
			HAPPENDCLOBBER( LN$1, (char*)"r2" );
			HAPPENDCLOBBER( LN$1, (char*)"r3" );
			HAPPENDCLOBBER( LN$1, (char*)"r4" );
			HAPPENDCLOBBER( LN$1, (char*)"r5" );
			HAPPENDCLOBBER( LN$1, (char*)"r6" );
			HAPPENDCLOBBER( LN$1, (char*)"r7" );
			HAPPENDCLOBBER( LN$1, (char*)"r8" );
			HAPPENDCLOBBER( LN$1, (char*)"r9" );
			HAPPENDCLOBBER( LN$1, (char*)"r10" );
			HAPPENDCLOBBER( LN$1, (char*)"r11" );
			HAPPENDCLOBBER( LN$1, (char*)"r12" );
			HAPPENDCLOBBER( LN$1, (char*)"r13" );
			HAPPENDCLOBBER( LN$1, (char*)"r14" );
		}
		goto label$80;
		label$98:;
		if( TMP$147$2 != 10ll) goto label$100;
		label$101:;
		{
			HAPPENDCLOBBER( LN$1, (char*)"ra" );
			HAPPENDCLOBBER( LN$1, (char*)"tp" );
			HAPPENDCLOBBER( LN$1, (char*)"a0" );
			HAPPENDCLOBBER( LN$1, (char*)"a1" );
			HAPPENDCLOBBER( LN$1, (char*)"a2" );
			HAPPENDCLOBBER( LN$1, (char*)"a3" );
			HAPPENDCLOBBER( LN$1, (char*)"a4" );
			HAPPENDCLOBBER( LN$1, (char*)"a5" );
			HAPPENDCLOBBER( LN$1, (char*)"a6" );
			HAPPENDCLOBBER( LN$1, (char*)"a7" );
			HAPPENDCLOBBER( LN$1, (char*)"t0" );
			HAPPENDCLOBBER( LN$1, (char*)"t1" );
			HAPPENDCLOBBER( LN$1, (char*)"t2" );
			HAPPENDCLOBBER( LN$1, (char*)"t3" );
			HAPPENDCLOBBER( LN$1, (char*)"t4" );
			HAPPENDCLOBBER( LN$1, (char*)"t5" );
			HAPPENDCLOBBER( LN$1, (char*)"t6" );
			HAPPENDCLOBBER( LN$1, (char*)"t7" );
			HAPPENDCLOBBER( LN$1, (char*)"t8" );
			HAPPENDCLOBBER( LN$1, (char*)"s0" );
			HAPPENDCLOBBER( LN$1, (char*)"s1" );
			HAPPENDCLOBBER( LN$1, (char*)"s2" );
			HAPPENDCLOBBER( LN$1, (char*)"s3" );
			HAPPENDCLOBBER( LN$1, (char*)"s4" );
			HAPPENDCLOBBER( LN$1, (char*)"s5" );
			HAPPENDCLOBBER( LN$1, (char*)"s6" );
			HAPPENDCLOBBER( LN$1, (char*)"s7" );
			HAPPENDCLOBBER( LN$1, (char*)"s8" );
			HAPPENDCLOBBER( LN$1, (char*)"fp" );
		}
		label$100:;
		label$80:;
	}
	label$79:;
}

static void HAPPENDCTORATTRIB( FBSTRING* LN$1, struct $8FBSYMBOL* PROC$1, int64 IN_FRONT$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$102:;
	int64 PRIORITY$1;
	if( (*(int64*)((uint8*)PROC$1 + 24ll) & 196608ll) == 0ll) goto label$105;
	{
		if( IN_FRONT$1 != 0ll) goto label$107;
		{
			fb_StrConcatByref( (void*)LN$1, -1ll, (void*)" ", 2ll, 0 );
		}
		label$107:;
		label$106:;
		fb_StrConcatByref( (void*)LN$1, -1ll, (void*)"__attribute__(( ", 17ll, 0 );
		if( (*(int64*)((uint8*)PROC$1 + 24ll) & 65536ll) == 0ll) goto label$109;
		{
			fb_StrConcatByref( (void*)LN$1, -1ll, (void*)"constructor", 12ll, 0 );
		}
		goto label$108;
		label$109:;
		{
			fb_StrConcatByref( (void*)LN$1, -1ll, (void*)"destructor", 11ll, 0 );
		}
		label$108:;
		PRIORITY$1 = *(int64*)((uint8*)*(struct $10FB_PROCEXT**)((uint8*)PROC$1 + 208ll) + 112ll);
		if( PRIORITY$1 == 0ll) goto label$111;
		{
			FBSTRING TMP$269$3;
			FBSTRING TMP$270$3;
			FBSTRING* vr$6 = fb_LongintToStr( PRIORITY$1 );
			__builtin_memset( &TMP$269$3, 0, 24ll );
			FBSTRING* vr$9 = fb_StrConcat( &TMP$269$3, (void*)"( ", 3ll, (void*)vr$6, -1ll );
			__builtin_memset( &TMP$270$3, 0, 24ll );
			FBSTRING* vr$12 = fb_StrConcat( &TMP$270$3, (void*)vr$9, -1ll, (void*)" )", 3ll );
			fb_StrConcatByref( (void*)LN$1, -1ll, (void*)vr$12, -1ll, 0 );
		}
		label$111:;
		label$110:;
		fb_StrConcatByref( (void*)LN$1, -1ll, (void*)" ))", 4ll, 0 );
		if( IN_FRONT$1 == 0ll) goto label$113;
		{
			fb_StrConcatByref( (void*)LN$1, -1ll, (void*)" ", 2ll, 0 );
		}
		label$113:;
		label$112:;
	}
	label$105:;
	label$104:;
	label$103:;
}

static FBSTRING* HGETMANGLEDNAMEFORASM( struct $8FBSYMBOL* SYM$1, int64 UNDERSCORE_PREFIX$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 TMP$272$1;
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$114:;
	FBSTRING MANGLED$1;
	__builtin_memset( &MANGLED$1, 0, 24ll );
	if( (int64)*(int16*)((uint8*)SYM$1 + 74ll) != 6ll) goto label$116;
	TMP$272$1 = (int64)-(*(char**)((uint8*)SYM$1 + 40ll) != (char*)0ull);
	goto label$1491;
	label$116:;
	TMP$272$1 = 0ll;
	label$1491:;
	if( TMP$272$1 == 0ll) goto label$118;
	{
		fb_StrAssign( (void*)&MANGLED$1, -1ll, *(void**)((uint8*)SYM$1 + 40ll), 0ll, 0 );
	}
	goto label$117;
	label$118:;
	{
		char* vr$8 = SYMBGETMANGLEDNAME( SYM$1 );
		fb_StrAssign( (void*)&MANGLED$1, -1ll, (void*)vr$8, 0ll, 0 );
	}
	label$117:;
	if( (UNDERSCORE_PREFIX$1 & *(int64*)((uint8*)&ENV$ + 616ll)) == 0ll) goto label$120;
	{
		FBSTRING TMP$274$2;
		__builtin_memset( &TMP$274$2, 0, 24ll );
		FBSTRING* vr$14 = fb_StrConcat( &TMP$274$2, (void*)"_", 2ll, (void*)&MANGLED$1, -1ll );
		fb_StrAssign( (void*)&MANGLED$1, -1ll, (void*)vr$14, -1ll, 0 );
	}
	label$120:;
	label$119:;
	int64 vr$16 = FBGETCPUFAMILY(  );
	if( ((int64)-(vr$16 == 0ll) & (int64)-(*(int64*)SYM$1 == 3ll)) == 0ll) goto label$122;
	{
		if( *(int64*)((uint8*)SYM$1 + 152ll) != 1ll) goto label$124;
		{
			fb_StrConcatAssign( (void*)&MANGLED$1, -1ll, (void*)"@", 2ll, 0 );
			int64 vr$23 = SYMBPROCCALCSTDCALLSUFFIXN( SYM$1 );
			FBSTRING* vr$24 = fb_LongintToStr( vr$23 );
			fb_StrConcatAssign( (void*)&MANGLED$1, -1ll, (void*)vr$24, -1ll, 0 );
		}
		label$124:;
		label$123:;
	}
	label$122:;
	label$121:;
	fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)&MANGLED$1, -1ll, 0 );
	fb_StrDelete( (FBSTRING*)&MANGLED$1 );
	label$115:;
	FBSTRING* vr$30 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$30;
}

static int64 HNEEDALIAS( struct $8FBSYMBOL* PROC$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$125:;
	fb$result$1 = 0ll;
	if( (int64)*(int16*)((uint8*)PROC$1 + 74ll) != 6ll) goto label$128;
	{
		fb$result$1 = -1ll;
		goto label$126;
	}
	label$128:;
	label$127:;
	int64 vr$3 = FBGETCPUFAMILY(  );
	if( vr$3 == 0ll) goto label$130;
	{
		goto label$126;
	}
	label$130:;
	label$129:;
	{
		$13FB_COMPTARGET TMP$276$2;
		TMP$276$2 = *($13FB_COMPTARGET*)((uint8*)&ENV$ + 216ll);
		if( TMP$276$2 == 0ll) goto label$133;
		label$134:;
		if( TMP$276$2 == 1ll) goto label$133;
		label$135:;
		if( TMP$276$2 != 6ll) goto label$132;
		label$133:;
		{
			if( *(int64*)((uint8*)PROC$1 + 152ll) != 6ll) goto label$137;
			{
				goto label$126;
			}
			label$137:;
			label$136:;
		}
		goto label$131;
		label$132:;
		{
			goto label$126;
		}
		label$138:;
		label$131:;
	}
	{
		$11FB_FUNCMODE TMP$277$2;
		TMP$277$2 = *($11FB_FUNCMODE*)((uint8*)PROC$1 + 152ll);
		if( TMP$277$2 == 2ll) goto label$141;
		label$142:;
		if( TMP$277$2 != 4ll) goto label$140;
		label$141:;
		{
			fb$result$1 = -1ll;
		}
		goto label$139;
		label$140:;
		if( TMP$277$2 != 1ll) goto label$143;
		label$144:;
		{
			fb$result$1 = -1ll;
		}
		label$143:;
		label$139:;
	}
	label$126:;
	return fb$result$1;
}

static int64 HEMITMUTABLELIBCPTRPARAM( FBSTRING* MANGLED$1, int64 PARAM_INDEX$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$145:;
	fb$result$1 = 0ll;
	if( PARAM_INDEX$1 == 0ll) goto label$148;
	{
		goto label$146;
	}
	label$148:;
	label$147:;
	{
		FBSTRING TMP$278$2;
		fb_StrInit( (void*)&TMP$278$2, -1ll, (void*)MANGLED$1, -1ll, 0 );
		int32 vr$3 = fb_StrCompare( (void*)&TMP$278$2, -1ll, (void*)"free", 5ll );
		if( (int64)vr$3 == 0ll) goto label$151;
		label$152:;
		int32 vr$6 = fb_StrCompare( (void*)&TMP$278$2, -1ll, (void*)"realloc", 8ll );
		if( (int64)vr$6 != 0ll) goto label$150;
		label$151:;
		{
			fb$result$1 = -1ll;
		}
		label$150:;
		label$149:;
		fb_StrDelete( (FBSTRING*)&TMP$278$2 );
	}
	label$146:;
	return fb$result$1;
}

static int64 HEMITLIBCSIZEPARAM( FBSTRING* MANGLED$1, int64 PARAM_INDEX$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$153:;
	fb$result$1 = 0ll;
	{
		FBSTRING TMP$281$2;
		fb_StrInit( (void*)&TMP$281$2, -1ll, (void*)MANGLED$1, -1ll, 0 );
		int32 vr$3 = fb_StrCompare( (void*)&TMP$281$2, -1ll, (void*)"malloc", 7ll );
		if( (int64)vr$3 != 0ll) goto label$156;
		label$157:;
		{
			fb$result$1 = (int64)-(PARAM_INDEX$1 == 0ll);
		}
		goto label$155;
		label$156:;
		int32 vr$7 = fb_StrCompare( (void*)&TMP$281$2, -1ll, (void*)"calloc", 7ll );
		if( (int64)vr$7 != 0ll) goto label$158;
		label$159:;
		{
			fb$result$1 = (int64)-(PARAM_INDEX$1 == 0ll) | (int64)-(PARAM_INDEX$1 == 1ll);
		}
		goto label$155;
		label$158:;
		int32 vr$13 = fb_StrCompare( (void*)&TMP$281$2, -1ll, (void*)"realloc", 8ll );
		if( (int64)vr$13 != 0ll) goto label$160;
		label$161:;
		{
			fb$result$1 = (int64)-(PARAM_INDEX$1 == 1ll);
		}
		label$160:;
		label$155:;
		fb_StrDelete( (FBSTRING*)&TMP$281$2 );
	}
	label$154:;
	return fb$result$1;
}

static int64 HGETLIBCSIZEDTYPE( void )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 TMP$284$1;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$162:;
	int64 DTYPE$1;
	DTYPE$1 = 9ll;
	int64 vr$1 = FBIS64BIT(  );
	if( vr$1 == 0ll) goto label$164;
	TMP$284$1 = (int64)-((*(int64*)((uint8*)&ENV$ + 600ll) & 1ll) != 0ll);
	goto label$1492;
	label$164:;
	TMP$284$1 = 0ll;
	label$1492:;
	if( TMP$284$1 == 0ll) goto label$166;
	{
		DTYPE$1 = (DTYPE$1 & -32505857ll) | 9437184ll;
	}
	goto label$165;
	label$166:;
	if( *(int64*)((uint8*)&ENV$ + 216ll) != 5ll) goto label$167;
	{
		DTYPE$1 = 9437196ll;
	}
	label$167:;
	label$165:;
	fb$result$1 = DTYPE$1;
	label$163:;
	return fb$result$1;
}

static FBSTRING* HEMITLIBCPROCPTRPARAM( FBSTRING* MANGLED$1, int64 PARAM_INDEX$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$168:;
	fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)"", 1ll, 0 );
	if( PARAM_INDEX$1 == 0ll) goto label$171;
	{
		goto label$169;
	}
	label$171:;
	label$170:;
	{
		FBSTRING TMP$285$2;
		fb_StrInit( (void*)&TMP$285$2, -1ll, (void*)MANGLED$1, -1ll, 0 );
		int32 vr$4 = fb_StrCompare( (void*)&TMP$285$2, -1ll, (void*)"atexit", 7ll );
		if( (int64)vr$4 != 0ll) goto label$173;
		label$174:;
		{
			fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)"void (*)( void )", 17ll, 0 );
		}
		label$173:;
		label$172:;
		fb_StrDelete( (FBSTRING*)&TMP$285$2 );
	}
	label$169:;
	FBSTRING* vr$9 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$9;
}

static FBSTRING* HEMITPROCHEADER( struct $8FBSYMBOL* PROC$1, $16EMITPROC_OPTIONS OPTIONS$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING TMP$289$1;
	struct $8FBSYMBOL* TMP$307$1;
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$175:;
	FBSTRING LN$1;
	__builtin_memset( &LN$1, 0, 24ll );
	FBSTRING MANGLED$1;
	__builtin_memset( &MANGLED$1, 0, 24ll );
	int64 DTYPE$1;
	struct $8FBSYMBOL* SUBTYPE$1;
	if( OPTIONS$1 != 0ll) goto label$178;
	{
		HAPPENDCTORATTRIB( &LN$1, PROC$1, -1ll );
	}
	label$178:;
	label$177:;
	if( (OPTIONS$1 & 2ll) != 0ll) goto label$180;
	{
		if( (*(int64*)((uint8*)PROC$1 + 8ll) & 64ll) == 0ll) goto label$182;
		{
			fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)"static ", 8ll, 0 );
		}
		label$182:;
		label$181:;
	}
	label$180:;
	label$179:;
	FBSTRING* vr$10 = HEMITTYPE( *(int64*)((uint8*)PROC$1 + 160ll), *(struct $8FBSYMBOL**)((uint8*)PROC$1 + 168ll), 0ll );
	__builtin_memset( &TMP$289$1, 0, 24ll );
	FBSTRING* vr$14 = fb_StrConcat( &TMP$289$1, (void*)&LN$1, -1ll, (void*)vr$10, -1ll );
	fb_StrAssign( (void*)&LN$1, -1ll, (void*)vr$14, -1ll, 0 );
	int64 vr$16 = FBGETCPUFAMILY(  );
	if( vr$16 != 0ll) goto label$184;
	{
		{
			$11FB_FUNCMODE TMP$290$3;
			TMP$290$3 = *($11FB_FUNCMODE*)((uint8*)PROC$1 + 152ll);
			if( TMP$290$3 == 1ll) goto label$187;
			label$188:;
			if( TMP$290$3 == 2ll) goto label$187;
			label$189:;
			if( TMP$290$3 != 4ll) goto label$186;
			label$187:;
			{
				{
					$13FB_COMPTARGET TMP$291$5;
					TMP$291$5 = *($13FB_COMPTARGET*)((uint8*)&ENV$ + 216ll);
					if( TMP$291$5 == 0ll) goto label$192;
					label$193:;
					if( TMP$291$5 != 6ll) goto label$191;
					label$192:;
					{
						fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" __stdcall", 11ll, 0 );
					}
					goto label$190;
					label$191:;
					{
						fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" __attribute__((stdcall))", 26ll, 0 );
					}
					label$194:;
					label$190:;
				}
			}
			goto label$185;
			label$186:;
			if( TMP$290$3 != 5ll) goto label$195;
			label$196:;
			{
				{
					$13FB_COMPTARGET TMP$294$5;
					TMP$294$5 = *($13FB_COMPTARGET*)((uint8*)&ENV$ + 216ll);
					if( TMP$294$5 == 0ll) goto label$199;
					label$200:;
					if( TMP$294$5 != 6ll) goto label$198;
					label$199:;
					{
						fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" __thiscall", 12ll, 0 );
					}
					goto label$197;
					label$198:;
					{
						fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" __attribute__((thiscall))", 27ll, 0 );
					}
					label$201:;
					label$197:;
				}
			}
			goto label$185;
			label$195:;
			if( TMP$290$3 != 6ll) goto label$202;
			label$203:;
			{
				{
					$13FB_COMPTARGET TMP$297$5;
					TMP$297$5 = *($13FB_COMPTARGET*)((uint8*)&ENV$ + 216ll);
					if( TMP$297$5 == 0ll) goto label$206;
					label$207:;
					if( TMP$297$5 != 6ll) goto label$205;
					label$206:;
					{
						fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" __fastcall", 12ll, 0 );
					}
					goto label$204;
					label$205:;
					{
						fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" __attribute__((fastcall))", 27ll, 0 );
					}
					label$208:;
					label$204:;
				}
			}
			label$202:;
			label$185:;
		}
	}
	label$184:;
	label$183:;
	fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" ", 2ll, 0 );
	char* vr$25 = SYMBGETMANGLEDNAME( PROC$1 );
	fb_StrAssign( (void*)&MANGLED$1, -1ll, (void*)vr$25, 0ll, 0 );
	if( (OPTIONS$1 & 2ll) == 0ll) goto label$210;
	{
		fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)"(*", 3ll, 0 );
		fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)&MANGLED$1, -1ll, 0 );
		fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)")", 2ll, 0 );
	}
	goto label$209;
	label$210:;
	{
		fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)&MANGLED$1, -1ll, 0 );
	}
	label$209:;
	fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)"( ", 3ll, 0 );
	struct $8FBSYMBOL* HIDDEN$1;
	HIDDEN$1 = (struct $8FBSYMBOL*)0ull;
	int64 vr$35 = SYMBPROCRETURNSONSTACK( PROC$1 );
	if( vr$35 == 0ll) goto label$212;
	{
		if( (OPTIONS$1 & 1ll) == 0ll) goto label$214;
		{
			FBSTRING TMP$302$3;
			HIDDEN$1 = *(struct $8FBSYMBOL**)((uint8*)PROC$1 + 64ll);
			FBSTRING* vr$55 = HEMITTYPE( ((((*(int64*)((uint8*)HIDDEN$1 + 56ll) & 511ll) & 31ll) | (((*(int64*)((uint8*)HIDDEN$1 + 56ll) & 511ll) & 480ll) + 32ll)) | (((*(int64*)((uint8*)HIDDEN$1 + 56ll) & 511ll) & 261632ll) << (1ll & 63ll))) | ((*(int64*)((uint8*)HIDDEN$1 + 56ll) & 511ll) & 32505856ll), HIDDEN$1, 0ll );
			__builtin_memset( &TMP$302$3, 0, 24ll );
			FBSTRING* vr$59 = fb_StrConcat( &TMP$302$3, (void*)&LN$1, -1ll, (void*)vr$55, -1ll );
			fb_StrAssign( (void*)&LN$1, -1ll, (void*)vr$59, -1ll, 0 );
		}
		goto label$213;
		label$214:;
		{
			FBSTRING TMP$303$3;
			FBSTRING TMP$304$3;
			FBSTRING TMP$305$3;
			HIDDEN$1 = *(struct $8FBSYMBOL**)*(struct $10FB_PROCEXT**)((uint8*)PROC$1 + 208ll);
			FBSTRING* vr$81 = HEMITTYPE( ((((*(int64*)((uint8*)HIDDEN$1 + 56ll) & 511ll) & 31ll) | (((*(int64*)((uint8*)HIDDEN$1 + 56ll) & 511ll) & 480ll) + 32ll)) | (((*(int64*)((uint8*)HIDDEN$1 + 56ll) & 511ll) & 261632ll) << (1ll & 63ll))) | ((*(int64*)((uint8*)HIDDEN$1 + 56ll) & 511ll) & 32505856ll), *(struct $8FBSYMBOL**)((uint8*)HIDDEN$1 + 64ll), 0ll );
			__builtin_memset( &TMP$303$3, 0, 24ll );
			FBSTRING* vr$85 = fb_StrConcat( &TMP$303$3, (void*)&LN$1, -1ll, (void*)vr$81, -1ll );
			fb_StrAssign( (void*)&LN$1, -1ll, (void*)vr$85, -1ll, 0 );
			char* vr$87 = SYMBGETMANGLEDNAME( HIDDEN$1 );
			__builtin_memset( &TMP$304$3, 0, 24ll );
			FBSTRING* vr$90 = fb_StrConcat( &TMP$304$3, (void*)" ", 2ll, (void*)vr$87, 0ll );
			__builtin_memset( &TMP$305$3, 0, 24ll );
			FBSTRING* vr$94 = fb_StrConcat( &TMP$305$3, (void*)&LN$1, -1ll, (void*)vr$90, -1ll );
			fb_StrAssign( (void*)&LN$1, -1ll, (void*)vr$94, -1ll, 0 );
		}
		label$213:;
		if( (int64)*(int16*)((uint8*)PROC$1 + 120ll) <= 0ll) goto label$216;
		{
			fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)", ", 3ll, 0 );
		}
		label$216:;
		label$215:;
	}
	label$212:;
	label$211:;
	struct $8FBSYMBOL* PARAM$1;
	if( *(int64*)((uint8*)PROC$1 + 152ll) != 4ll) goto label$217;
	TMP$307$1 = *(struct $8FBSYMBOL**)((uint8*)PROC$1 + 144ll);
	goto label$1493;
	label$217:;
	TMP$307$1 = *(struct $8FBSYMBOL**)((uint8*)PROC$1 + 136ll);
	label$1493:;
	PARAM$1 = TMP$307$1;
	int64 PARAM_INDEX$1;
	PARAM_INDEX$1 = 0ll;
	if( ((int64)-(HIDDEN$1 == (struct $8FBSYMBOL*)0ull) & (int64)-(PARAM$1 == (struct $8FBSYMBOL*)0ull)) == 0ll) goto label$219;
	{
		fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)"void", 5ll, 0 );
	}
	label$219:;
	label$218:;
	label$220:;
	if( PARAM$1 == (struct $8FBSYMBOL*)0ull) goto label$221;
	{
		struct $8FBSYMBOL* TMP$313$2;
		if( *(int64*)((uint8*)PARAM$1 + 96ll) != 4ll) goto label$223;
		{
			fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)"...", 4ll, 0 );
		}
		goto label$222;
		label$223:;
		{
			if( (*(int64*)((uint8*)PARAM$1 + 24ll) & 524288ll) == 0ll) goto label$225;
			{
				fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)"char**", 7ll, 0 );
			}
			goto label$224;
			label$225:;
			{
				_Z21SYMBGETREALPARAMDTYPEP8FBSYMBOLRlRS0_( PARAM$1, &DTYPE$1, &SUBTYPE$1 );
				if( (OPTIONS$1 & 1ll) == 0ll) goto label$227;
				{
					FBSTRING LIBC_PROCPTR$5;
					FBSTRING* vr$115 = HEMITLIBCPROCPTRPARAM( &MANGLED$1, PARAM_INDEX$1 );
					fb_StrInit( (void*)&LIBC_PROCPTR$5, -1ll, (void*)vr$115, -1ll, 0 );
					int64 vr$118 = fb_StrLen( (void*)&LIBC_PROCPTR$5, -1ll );
					if( vr$118 <= 0ll) goto label$229;
					{
						struct $8FBSYMBOL* TMP$310$6;
						fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)&LIBC_PROCPTR$5, -1ll, 0 );
						if( *(int64*)((uint8*)PROC$1 + 152ll) != 4ll) goto label$230;
						TMP$310$6 = *(struct $8FBSYMBOL**)((uint8*)PARAM$1 + 304ll);
						goto label$1494;
						label$230:;
						TMP$310$6 = *(struct $8FBSYMBOL**)((uint8*)PARAM$1 + 312ll);
						label$1494:;
						PARAM$1 = TMP$310$6;
						PARAM_INDEX$1 = PARAM_INDEX$1 + 1ll;
						if( PARAM$1 == (struct $8FBSYMBOL*)0ull) goto label$232;
						{
							fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)", ", 3ll, 0 );
						}
						label$232:;
						label$231:;
						fb_StrDelete( (FBSTRING*)&LIBC_PROCPTR$5 );
						goto label$220;
					}
					goto label$228;
					label$229:;
					int64 vr$128 = HEMITMUTABLELIBCPTRPARAM( &MANGLED$1, PARAM_INDEX$1 );
					if( vr$128 == 0ll) goto label$233;
					{
						DTYPE$1 = 32ll;
						SUBTYPE$1 = (struct $8FBSYMBOL*)0ull;
					}
					goto label$228;
					label$233:;
					int64 vr$130 = HEMITLIBCSIZEPARAM( &MANGLED$1, PARAM_INDEX$1 );
					if( vr$130 == 0ll) goto label$234;
					{
						int64 vr$131 = HGETLIBCSIZEDTYPE(  );
						DTYPE$1 = vr$131;
						SUBTYPE$1 = (struct $8FBSYMBOL*)0ull;
					}
					label$234:;
					label$228:;
					fb_StrDelete( (FBSTRING*)&LIBC_PROCPTR$5 );
				}
				label$227:;
				label$226:;
				FBSTRING* vr$133 = HEMITTYPE( DTYPE$1, SUBTYPE$1, -1ll );
				fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)vr$133, -1ll, 0 );
			}
			label$224:;
			if( (OPTIONS$1 & 1ll) != 0ll) goto label$236;
			{
				FBSTRING TMP$311$4;
				FBSTRING TMP$312$4;
				char* vr$137 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)PARAM$1 + 104ll) );
				__builtin_memset( &TMP$311$4, 0, 24ll );
				FBSTRING* vr$140 = fb_StrConcat( &TMP$311$4, (void*)" ", 2ll, (void*)vr$137, 0ll );
				__builtin_memset( &TMP$312$4, 0, 24ll );
				FBSTRING* vr$144 = fb_StrConcat( &TMP$312$4, (void*)&LN$1, -1ll, (void*)vr$140, -1ll );
				fb_StrAssign( (void*)&LN$1, -1ll, (void*)vr$144, -1ll, 0 );
			}
			label$236:;
			label$235:;
		}
		label$222:;
		if( *(int64*)((uint8*)PROC$1 + 152ll) != 4ll) goto label$237;
		TMP$313$2 = *(struct $8FBSYMBOL**)((uint8*)PARAM$1 + 304ll);
		goto label$1495;
		label$237:;
		TMP$313$2 = *(struct $8FBSYMBOL**)((uint8*)PARAM$1 + 312ll);
		label$1495:;
		PARAM$1 = TMP$313$2;
		PARAM_INDEX$1 = PARAM_INDEX$1 + 1ll;
		if( PARAM$1 == (struct $8FBSYMBOL*)0ull) goto label$239;
		{
			fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)", ", 3ll, 0 );
		}
		label$239:;
		label$238:;
	}
	goto label$220;
	label$221:;
	fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" )", 3ll, 0 );
	if( ((int64)-((OPTIONS$1 & 2ll) == 0ll) & (int64)-((OPTIONS$1 & 1ll) != 0ll)) == 0ll) goto label$241;
	{
		int64 vr$157 = HNEEDALIAS( PROC$1 );
		if( vr$157 == 0ll) goto label$243;
		{
			fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" asm(\x22", 7ll, 0 );
			FBSTRING* vr$159 = HGETMANGLEDNAMEFORASM( PROC$1, -1ll );
			fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)vr$159, -1ll, 0 );
			fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)"\x22)", 3ll, 0 );
		}
		label$243:;
		label$242:;
		HAPPENDCTORATTRIB( &LN$1, PROC$1, 0ll );
	}
	label$241:;
	label$240:;
	fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)&LN$1, -1ll, 0 );
	fb_StrDelete( (FBSTRING*)&MANGLED$1 );
	fb_StrDelete( (FBSTRING*)&LN$1 );
	label$176:;
	FBSTRING* vr$168 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$168;
}

static FBSTRING* HGETUDTTAG( struct $8FBSYMBOL* SYM$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$244:;
	if( *(int64*)SYM$1 != 10ll) goto label$247;
	{
		if( ((int64)*(int32*)((uint8*)SYM$1 + 208ll) & 1ll) == 0ll) goto label$249;
		{
			fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)"union ", 7ll, 0 );
		}
		goto label$248;
		label$249:;
		{
			fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)"struct ", 8ll, 0 );
		}
		label$248:;
	}
	label$247:;
	label$246:;
	label$245:;
	FBSTRING* vr$8 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$8;
}

static FBSTRING* HGETUDTID( struct $8FBSYMBOL* SYM$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING TMP$320$1;
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$250:;
	if( ((*(int64*)((uint8*)SYM$1 + 56ll) & 32505856ll) >> (20ll & 63ll)) != 19ll) goto label$253;
	{
		{
			$19FB_CVA_LIST_TYPEDEF TMP$318$3;
			$19FB_CVA_LIST_TYPEDEF vr$6 = SYMBGETVALISTTYPE( *(int64*)((uint8*)SYM$1 + 56ll), *(struct $8FBSYMBOL**)((uint8*)SYM$1 + 64ll) );
			TMP$318$3 = vr$6;
			if( TMP$318$3 == 4ll) goto label$256;
			label$257:;
			if( TMP$318$3 == 5ll) goto label$256;
			label$258:;
			if( TMP$318$3 == 6ll) goto label$256;
			label$259:;
			if( TMP$318$3 == 7ll) goto label$256;
			label$260:;
			if( TMP$318$3 != 8ll) goto label$255;
			label$256:;
			{
				fb_StrAssign( (void*)&fb$result$1, -1ll, *(void**)((uint8*)SYM$1 + 40ll), 0ll, 0 );
				goto label$251;
			}
			label$255:;
			label$254:;
		}
	}
	label$253:;
	label$252:;
	char* vr$9 = SYMBGETMANGLEDNAME( SYM$1 );
	__builtin_memset( &TMP$320$1, 0, 24ll );
	FBSTRING* vr$12 = fb_StrConcat( &TMP$320$1, (void*)"$", 2ll, (void*)vr$9, 0ll );
	fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)vr$12, -1ll, 0 );
	label$251:;
	FBSTRING* vr$15 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$15;
}

static FBSTRING* HGETUDTNAME( struct $8FBSYMBOL* SYM$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$261:;
	FBSTRING* vr$1 = HGETUDTTAG( SYM$1 );
	fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)vr$1, -1ll, 0 );
	FBSTRING* vr$3 = HGETUDTID( SYM$1 );
	fb_StrConcatAssign( (void*)&fb$result$1, -1ll, (void*)vr$3, -1ll, 0 );
	label$262:;
	FBSTRING* vr$6 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$6;
}

static void HEMITUDT( struct $8FBSYMBOL* S$1, int64 IS_PTR$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$263:;
	int64 SECTION$1;
	if( S$1 != (struct $8FBSYMBOL*)0ull) goto label$266;
	{
		goto label$264;
	}
	label$266:;
	label$265:;
	if( (*(int64*)((uint8*)S$1 + 24ll) & 67108864ll) == 0ll) goto label$268;
	{
		goto label$264;
	}
	label$268:;
	label$267:;
	if( (*(int64*)((uint8*)S$1 + 8ll) & 128ll) == 0ll) goto label$270;
	{
		SECTION$1 = (int64)*(uint16*)((uint8*)S$1 + 72ll) + 1ll;
		if( (int64)*(uint16*)((uint8*)S$1 + 72ll) != 0ll) goto label$272;
		{
			SECTION$1 = SECTION$1 + 1ll;
		}
		goto label$271;
		label$272:;
		if( *(struct $8FBSYMBOL**)*(struct $8FBHASHTB**)((uint8*)S$1 + 248ll) != (struct $8FBSYMBOL*)((uint8*)&SYMB$ + 196704ll)) goto label$273;
		{
			SECTION$1 = SECTION$1 + 1ll;
		}
		label$273:;
		label$271:;
		if( SECTION$1 <= *(int64*)((uint8*)&CTX$ + 5160ll)) goto label$275;
		{
			SECTION$1 = *(int64*)((uint8*)&CTX$ + 5160ll);
		}
		label$275:;
		label$274:;
	}
	goto label$269;
	label$270:;
	{
		SECTION$1 = 0ll;
	}
	label$269:;
	int64 vr$14 = SECTIONGOSUB( SECTION$1 );
	SECTION$1 = vr$14;
	{
		uint64 TMP$321$2;
		TMP$321$2 = *(uint64*)S$1;
		goto label$277;
		label$278:;
		{
			FBSTRING TMP$324$3;
			FBSTRING TMP$325$3;
			FBSTRING TMP$326$3;
			FBSTRING TMP$327$3;
			FBSTRING TMP$328$3;
			*($12FB_SYMBSTATS*)((uint8*)S$1 + 24ll) = *(int64*)((uint8*)S$1 + 24ll) | 67108864ll;
			__builtin_memset( &TMP$328$3, 0, 24ll );
			FBSTRING* vr$20 = HGETUDTNAME( S$1 );
			FBSTRING* vr$21 = HEMITTYPE( 10ll, (struct $8FBSYMBOL*)0ull, 0ll );
			__builtin_memset( &TMP$324$3, 0, 24ll );
			FBSTRING* vr$24 = fb_StrConcat( &TMP$324$3, (void*)"typedef ", 9ll, (void*)vr$21, -1ll );
			__builtin_memset( &TMP$325$3, 0, 24ll );
			FBSTRING* vr$27 = fb_StrConcat( &TMP$325$3, (void*)vr$24, -1ll, (void*)" ", 2ll );
			__builtin_memset( &TMP$326$3, 0, 24ll );
			FBSTRING* vr$30 = fb_StrConcat( &TMP$326$3, (void*)vr$27, -1ll, (void*)vr$20, -1ll );
			__builtin_memset( &TMP$327$3, 0, 24ll );
			FBSTRING* vr$33 = fb_StrConcat( &TMP$327$3, (void*)vr$30, -1ll, (void*)";", 2ll );
			fb_StrAssign( (void*)&TMP$328$3, -1ll, (void*)vr$33, -1ll, 0 );
			HWRITELINE( &TMP$328$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$328$3 );
		}
		goto label$276;
		label$279:;
		{
			HEMITSTRUCT( S$1, IS_PTR$1 );
		}
		goto label$276;
		label$280:;
		{
			if( (*(int64*)((uint8*)S$1 + 24ll) & 16384ll) == 0ll) goto label$282;
			{
				FBSTRING DECL$4;
				FBSTRING* vr$39 = HEMITPROCHEADER( S$1, 3ll );
				fb_StrInit( (void*)&DECL$4, -1ll, (void*)vr$39, -1ll, 0 );
				if( (*(int64*)((uint8*)S$1 + 24ll) & 67108864ll) != 0ll) goto label$284;
				{
					FBSTRING TMP$329$5;
					FBSTRING TMP$330$5;
					FBSTRING TMP$331$5;
					__builtin_memset( &TMP$331$5, 0, 24ll );
					__builtin_memset( &TMP$329$5, 0, 24ll );
					FBSTRING* vr$47 = fb_StrConcat( &TMP$329$5, (void*)"typedef ", 9ll, (void*)&DECL$4, -1ll );
					__builtin_memset( &TMP$330$5, 0, 24ll );
					FBSTRING* vr$50 = fb_StrConcat( &TMP$330$5, (void*)vr$47, -1ll, (void*)";", 2ll );
					fb_StrAssign( (void*)&TMP$331$5, -1ll, (void*)vr$50, -1ll, 0 );
					HWRITELINE( &TMP$331$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$331$5 );
					*($12FB_SYMBSTATS*)((uint8*)S$1 + 24ll) = *(int64*)((uint8*)S$1 + 24ll) | 67108864ll;
				}
				label$284:;
				label$283:;
				fb_StrDelete( (FBSTRING*)&DECL$4 );
			}
			label$282:;
			label$281:;
		}
		goto label$276;
		label$277:;
		static const void* tmp$893[8ll] = {
			&&label$280,
			&&label$276,
			&&label$276,
			&&label$276,
			&&label$276,
			&&label$276,
			&&label$278,
			&&label$279,
		};
		if( (TMP$321$2 - 3ull) > 7ull ) goto label$276;
		goto *tmp$893[TMP$321$2 - 3ull];
		label$276:;
	}
	SECTIONRETURN( SECTION$1 );
	label$264:;
}

static FBSTRING* HEMITARRAYDECL( struct $8FBSYMBOL* SYM$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$285:;
	FBSTRING S$1;
	__builtin_memset( &S$1, 0, 24ll );
	if( (*(int64*)((uint8*)SYM$1 + 8ll) & 512ll) == 0ll) goto label$288;
	{
		fb_StrDelete( (FBSTRING*)&S$1 );
		goto label$286;
	}
	label$288:;
	label$287:;
	{
		$12FB_SYMBCLASS TMP$332$2;
		TMP$332$2 = *($12FB_SYMBCLASS*)SYM$1;
		if( TMP$332$2 == 1ll) goto label$291;
		label$292:;
		if( TMP$332$2 != 12ll) goto label$290;
		label$291:;
		{
			if( (*(int64*)((uint8*)SYM$1 + 8ll) & 16388ll) != 0ll) goto label$294;
			{
				{
					int64 I$5;
					I$5 = 0ll;
					int64 TMP$333$5;
					TMP$333$5 = *(int64*)((uint8*)SYM$1 + 104ll) + -1ll;
					goto label$295;
					label$298:;
					{
						FBSTRING TMP$336$6;
						FBSTRING TMP$337$6;
						FBSTRING TMP$338$6;
						FBSTRING* vr$18 = fb_LongintToStr( (*(int64*)((uint8*)((uint8*)*(struct $10FBARRAYDIM**)((uint8*)SYM$1 + 112ll) + (I$5 << (4ll & 63ll))) + 8ll) - *(int64*)((uint8*)*(struct $10FBARRAYDIM**)((uint8*)SYM$1 + 112ll) + (I$5 << (4ll & 63ll)))) + 1ll );
						__builtin_memset( &TMP$336$6, 0, 24ll );
						FBSTRING* vr$21 = fb_StrConcat( &TMP$336$6, (void*)"[", 2ll, (void*)vr$18, -1ll );
						__builtin_memset( &TMP$337$6, 0, 24ll );
						FBSTRING* vr$24 = fb_StrConcat( &TMP$337$6, (void*)vr$21, -1ll, (void*)"]", 2ll );
						__builtin_memset( &TMP$338$6, 0, 24ll );
						FBSTRING* vr$28 = fb_StrConcat( &TMP$338$6, (void*)&S$1, -1ll, (void*)vr$24, -1ll );
						fb_StrAssign( (void*)&S$1, -1ll, (void*)vr$28, -1ll, 0 );
					}
					label$296:;
					I$5 = I$5 + 1ll;
					label$295:;
					if( I$5 <= TMP$333$5) goto label$298;
					label$297:;
				}
			}
			label$294:;
			label$293:;
		}
		label$290:;
		label$289:;
	}
	if( (*(int64*)((uint8*)SYM$1 + 8ll) & 262144ll) != 0ll) goto label$300;
	{
		int64 LENGTH$2;
		LENGTH$2 = 0ll;
		{
			int64 TMP$339$3;
			TMP$339$3 = *(int64*)((uint8*)SYM$1 + 56ll) & 511ll;
			if( TMP$339$3 == 18ll) goto label$303;
			label$304:;
			if( TMP$339$3 != 4ll) goto label$302;
			label$303:;
			{
				LENGTH$2 = *(int64*)((uint8*)SYM$1 + 80ll);
			}
			goto label$301;
			label$302:;
			if( TMP$339$3 != 7ll) goto label$305;
			label$306:;
			{
				int64 vr$36 = SYMBGETWSTRLENGTH( SYM$1 );
				LENGTH$2 = vr$36 + 1ll;
			}
			label$305:;
			label$301:;
		}
		if( LENGTH$2 <= 0ll) goto label$308;
		{
			fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)"[", 2ll, 0 );
			FBSTRING* vr$39 = fb_LongintToStr( LENGTH$2 );
			fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)vr$39, -1ll, 0 );
			fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)"]", 2ll, 0 );
		}
		label$308:;
		label$307:;
	}
	label$300:;
	label$299:;
	fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)&S$1, -1ll, 0 );
	fb_StrDelete( (FBSTRING*)&S$1 );
	label$286:;
	FBSTRING* vr$46 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$46;
}

static void HEMITVARDECL( int64 USE_EXTERN$1, struct $8FBSYMBOL* SYM$1, char* VARINI$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING TMP$341$1;
	FBSTRING TMP$342$1;
	FBSTRING TMP$343$1;
	label$309:;
	FBSTRING LN$1;
	__builtin_memset( &LN$1, 0, 24ll );
	if( USE_EXTERN$1 == 0ll) goto label$312;
	{
		fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)"extern ", 8ll, 0 );
	}
	goto label$311;
	label$312:;
	if( ((int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 2ll) != 0ll) & (int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 56ll) == 0ll)) == 0ll) goto label$313;
	{
		fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)"static ", 8ll, 0 );
	}
	label$313:;
	label$311:;
	int64 DTYPE$1;
	__builtin_memset( &DTYPE$1, 0, 8ll );
	struct $8FBSYMBOL* SUBTYPE$1;
	__builtin_memset( &SUBTYPE$1, 0, 8ll );
	SYMBGETREALTYPE( SYM$1, &DTYPE$1, &SUBTYPE$1 );
	FBSTRING* vr$15 = HEMITTYPE( DTYPE$1, *(struct $8FBSYMBOL**)((uint8*)SYM$1 + 64ll), 0ll );
	__builtin_memset( &TMP$341$1, 0, 24ll );
	FBSTRING* vr$19 = fb_StrConcat( &TMP$341$1, (void*)&LN$1, -1ll, (void*)vr$15, -1ll );
	fb_StrAssign( (void*)&LN$1, -1ll, (void*)vr$19, -1ll, 0 );
	char* vr$21 = SYMBGETMANGLEDNAME( SYM$1 );
	__builtin_memset( &TMP$342$1, 0, 24ll );
	FBSTRING* vr$24 = fb_StrConcat( &TMP$342$1, (void*)" ", 2ll, (void*)vr$21, 0ll );
	__builtin_memset( &TMP$343$1, 0, 24ll );
	FBSTRING* vr$28 = fb_StrConcat( &TMP$343$1, (void*)&LN$1, -1ll, (void*)vr$24, -1ll );
	fb_StrAssign( (void*)&LN$1, -1ll, (void*)vr$28, -1ll, 0 );
	FBSTRING* vr$30 = HEMITARRAYDECL( SYM$1 );
	fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)vr$30, -1ll, 0 );
	if( ((int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 8ll) != 0ll) & ~USE_EXTERN$1) == 0ll) goto label$315;
	{
		if( *(int64*)((uint8*)&ENV$ + 216ll) != 14ll) goto label$317;
		{
			fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" __attribute__((weak))", 23ll, 0 );
		}
		goto label$316;
		label$317:;
		{
			fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" __attribute__((common))", 25ll, 0 );
		}
		label$316:;
	}
	label$315:;
	label$314:;
	if( VARINI$1 == (char*)0ull) goto label$319;
	{
		FBSTRING TMP$347$2;
		FBSTRING TMP$348$2;
		__builtin_memset( &TMP$347$2, 0, 24ll );
		FBSTRING* vr$41 = fb_StrConcat( &TMP$347$2, (void*)" = ", 4ll, (void*)VARINI$1, 0ll );
		__builtin_memset( &TMP$348$2, 0, 24ll );
		FBSTRING* vr$45 = fb_StrConcat( &TMP$348$2, (void*)&LN$1, -1ll, (void*)vr$41, -1ll );
		fb_StrAssign( (void*)&LN$1, -1ll, (void*)vr$45, -1ll, 0 );
	}
	label$319:;
	label$318:;
	fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)";", 2ll, 0 );
	HWRITELINE( &LN$1, 0ll );
	fb_StrDelete( (FBSTRING*)&LN$1 );
	label$310:;
}

static void HMAYBEEMITLOCALVAR( struct $8FBSYMBOL* SYM$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$320:;
	if( (*(int64*)((uint8*)SYM$1 + 8ll) & 16388ll) == 0ll) goto label$323;
	{
		goto label$321;
	}
	label$323:;
	label$322:;
	if( ((int64)-(*(struct $7ASTNODE**)((uint8*)SYM$1 + 96ll) != (struct $7ASTNODE*)0ull) & (int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 2ll) != 0ll)) == 0ll) goto label$325;
	{
		IRHLFLUSHSTATICINITIALIZER( SYM$1 );
	}
	goto label$324;
	label$325:;
	{
		HEMITVARDECL( 0ll, SYM$1, (char*)0ull );
	}
	label$324:;
	label$321:;
}

static void HALLOCGLOBALVAR( struct $8FBSYMBOL* SYM$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$326:;
	if( *(struct $7ASTNODE**)((uint8*)SYM$1 + 96ll) == (struct $7ASTNODE*)0ull) goto label$329;
	{
		if( ((int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 32ll) == 0ll) & (int64)-((*(int64*)((uint8*)SYM$1 + 24ll) & 2ll) == 0ll)) == 0ll) goto label$331;
		{
			goto label$327;
		}
		label$331:;
		label$330:;
		IRHLFLUSHSTATICINITIALIZER( SYM$1 );
	}
	goto label$328;
	label$329:;
	{
		HEMITVARDECL( 0ll, SYM$1, (char*)0ull );
	}
	label$328:;
	label$327:;
}

static void HMAYBEEMITGLOBALVAR( struct $8FBSYMBOL* SYM$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$332:;
	if( (((int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 1024ll) != 0ll) | ((int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 16ll) != 0ll) & (int64)-((*(int64*)((uint8*)SYM$1 + 24ll) & 2ll) == 0ll))) | (int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 16388ll) != 0ll)) == 0ll) goto label$335;
	{
		goto label$333;
	}
	label$335:;
	label$334:;
	{
		int64 TMP$349$2;
		TMP$349$2 = *(int64*)((uint8*)&CTX$ + 5512ll);
		if( TMP$349$2 != 1ll) goto label$337;
		label$338:;
		{
			if( (*(int64*)((uint8*)SYM$1 + 8ll) & 56ll) == 0ll) goto label$340;
			{
				HEMITVARDECL( -1ll, SYM$1, (char*)0ull );
			}
			goto label$339;
			label$340:;
			{
				HALLOCGLOBALVAR( SYM$1 );
			}
			label$339:;
		}
		goto label$336;
		label$337:;
		if( TMP$349$2 != 2ll) goto label$341;
		label$342:;
		{
			if( (*(int64*)((uint8*)SYM$1 + 8ll) & 40ll) == 0ll) goto label$344;
			{
				HALLOCGLOBALVAR( SYM$1 );
			}
			label$344:;
			label$343:;
		}
		label$341:;
		label$336:;
	}
	label$333:;
}

static void HMAYBEEMITGLOBALVAREXCEPTDATASTMT( struct $8FBSYMBOL* SYM$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$345:;
	int64 vr$0 = SYMBISDATADESC( SYM$1 );
	if( vr$0 == 0ll) goto label$348;
	{
		goto label$346;
	}
	label$348:;
	label$347:;
	HMAYBEEMITGLOBALVAR( SYM$1 );
	label$346:;
}

static void HMAYBEEMITPROCPROTO( struct $8FBSYMBOL* S$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING TMP$350$1;
	FBSTRING TMP$351$1;
	label$349:;
	int64 SECTION$1;
	if( ((int64)-((*(int64*)((uint8*)S$1 + 24ll) & 16384ll) != 0ll) | (int64)-((*(int64*)((uint8*)S$1 + 24ll) & 2ll) == 0ll)) == 0ll) goto label$352;
	{
		goto label$350;
	}
	label$352:;
	label$351:;
	char* vr$7 = SYMBGETMANGLEDNAME( S$1 );
	if( vr$7 != (char*)0ull) goto label$354;
	{
		goto label$350;
	}
	label$354:;
	label$353:;
	int64 vr$8 = SECTIONGOSUB( 0ll );
	SECTION$1 = vr$8;
	__builtin_memset( &TMP$351$1, 0, 24ll );
	FBSTRING* vr$10 = HEMITPROCHEADER( S$1, 1ll );
	__builtin_memset( &TMP$350$1, 0, 24ll );
	FBSTRING* vr$13 = fb_StrConcat( &TMP$350$1, (void*)vr$10, -1ll, (void*)";", 2ll );
	fb_StrAssign( (void*)&TMP$351$1, -1ll, (void*)vr$13, -1ll, 0 );
	HWRITELINE( &TMP$351$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$351$1 );
	SECTIONRETURN( SECTION$1 );
	label$350:;
}

static void HEMITFIELDTYPES( struct $8FBSYMBOL* UDT$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$355:;
	struct $8FBSYMBOL* FLD$1;
	struct $8FBSYMBOL* vr$0 = SYMBUDTGETFIRSTFIELD( UDT$1 );
	FLD$1 = vr$0;
	label$357:;
	if( FLD$1 == (struct $8FBSYMBOL*)0ull) goto label$358;
	{
		HEMITUDT( *(struct $8FBSYMBOL**)((uint8*)FLD$1 + 64ll), (int64)-(((*(int64*)((uint8*)FLD$1 + 56ll) & 511ll) & 480ll) != 0ll) );
		struct $8FBSYMBOL* vr$6 = SYMBUDTGETNEXTFIELD( FLD$1 );
		FLD$1 = vr$6;
	}
	goto label$357;
	label$358:;
	label$356:;
}

static struct $8FBSYMBOL** HFINDPARENTANONALREADYONSTACK( struct $8FBSYMBOL* FLD$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	struct $8FBSYMBOL** fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$359:;
	struct $8FBSYMBOL** ANONNODE$1;
	struct $8FBSYMBOL* PARENT$1;
	PARENT$1 = *(struct $8FBSYMBOL**)((uint8*)FLD$1 + 296ll);
	label$361:;
	{
		void* vr$3 = LISTGETTAIL( (struct $5TLIST*)((uint8*)&CTX$ + 5216ll) );
		ANONNODE$1 = (struct $8FBSYMBOL**)vr$3;
		label$364:;
		if( ANONNODE$1 == (struct $8FBSYMBOL**)0ull) goto label$365;
		{
			if( *ANONNODE$1 != PARENT$1) goto label$367;
			{
				fb$result$1 = ANONNODE$1;
				goto label$360;
			}
			label$367:;
			label$366:;
			void* vr$5 = LISTGETPREV( (void*)ANONNODE$1 );
			ANONNODE$1 = (struct $8FBSYMBOL**)vr$5;
		}
		goto label$364;
		label$365:;
		PARENT$1 = *(struct $8FBSYMBOL**)((uint8*)PARENT$1 + 296ll);
	}
	label$363:;
	if( PARENT$1 != (struct $8FBSYMBOL*)0ull) goto label$361;
	label$362:;
	fb$result$1 = (struct $8FBSYMBOL**)0ull;
	label$360:;
	return fb$result$1;
}

static void HPUSHANONPARENTS( struct $8FBSYMBOL* BASEPARENT$1, struct $8FBSYMBOL* PARENT$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$368:;
	if( PARENT$1 != BASEPARENT$1) goto label$371;
	{
		goto label$369;
	}
	label$371:;
	label$370:;
	HPUSHANONPARENTS( BASEPARENT$1, *(struct $8FBSYMBOL**)((uint8*)PARENT$1 + 296ll) );
	if( ((int64)*(int32*)((uint8*)PARENT$1 + 208ll) & 1ll) == 0ll) goto label$373;
	{
		FBSTRING TMP$353$2;
		__builtin_memset( &TMP$353$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$353$2, -1ll, (void*)"union {", 8ll, 0 );
		HWRITELINE( &TMP$353$2, -1ll );
		fb_StrDelete( (FBSTRING*)&TMP$353$2 );
	}
	goto label$372;
	label$373:;
	{
		FBSTRING TMP$355$2;
		__builtin_memset( &TMP$355$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$355$2, -1ll, (void*)"struct {", 9ll, 0 );
		HWRITELINE( &TMP$355$2, -1ll );
		fb_StrDelete( (FBSTRING*)&TMP$355$2 );
	}
	label$372:;
	SECTIONINDENT(  );
	void* vr$13 = LISTNEWNODE( (struct $5TLIST*)((uint8*)&CTX$ + 5216ll) );
	*(struct $8FBSYMBOL**)vr$13 = PARENT$1;
	label$369:;
}

static void HPOPANONPARENTS( struct $8FBSYMBOL** ANONNODE$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$374:;
	label$376:;
	void* vr$1 = LISTGETTAIL( (struct $5TLIST*)((uint8*)&CTX$ + 5216ll) );
	if( (uint64)vr$1 == (uint64)ANONNODE$1) goto label$377;
	{
		FBSTRING TMP$357$2;
		SECTIONUNINDENT(  );
		__builtin_memset( &TMP$357$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$357$2, -1ll, (void*)"};", 3ll, 0 );
		HWRITELINE( &TMP$357$2, -1ll );
		fb_StrDelete( (FBSTRING*)&TMP$357$2 );
		void* vr$7 = LISTGETTAIL( (struct $5TLIST*)((uint8*)&CTX$ + 5216ll) );
		LISTDELNODE( (struct $5TLIST*)((uint8*)&CTX$ + 5216ll), vr$7 );
	}
	goto label$376;
	label$377:;
	label$375:;
}

static int64 HFIELDNEEDSRUNTIMEALIGNMENT( struct $8FBSYMBOL* FLD$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$378:;
	if( ((*(int64*)((uint8*)FLD$1 + 56ll) & 511ll) & 511ll) != 17ll) goto label$381;
	{
		fb$result$1 = -1ll;
		goto label$379;
	}
	label$381:;
	label$380:;
	if( (*(int64*)((uint8*)FLD$1 + 8ll) & 8192ll) == 0ll) goto label$383;
	{
		fb$result$1 = -1ll;
		goto label$379;
	}
	label$383:;
	label$382:;
	fb$result$1 = 0ll;
	label$379:;
	return fb$result$1;
}

static void HEMITSTRUCTWITHFIELDS( struct $8FBSYMBOL* S$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$384:;
	int64 SKIP$1;
	int64 DTYPE$1;
	int64 ALIGN$1;
	struct $8FBSYMBOL* SUBTYPE$1;
	struct $8FBSYMBOL* FLD$1;
	struct $8FBSYMBOL** ANONNODE$1;
	FBSTRING LN$1;
	__builtin_memset( &LN$1, 0, 24ll );
	struct $8FBSYMBOL* vr$1 = SYMBUDTGETFIRSTFIELD( S$1 );
	FLD$1 = vr$1;
	label$386:;
	if( FLD$1 == (struct $8FBSYMBOL*)0ull) goto label$387;
	{
		if( *(struct $8FBSYMBOL**)((uint8*)FLD$1 + 296ll) != S$1) goto label$389;
		{
			HPOPANONPARENTS( (struct $8FBSYMBOL**)0ull );
		}
		goto label$388;
		label$389:;
		{
			struct $8FBSYMBOL* TMP$358$3;
			struct $8FBSYMBOL** vr$3 = HFINDPARENTANONALREADYONSTACK( FLD$1 );
			ANONNODE$1 = vr$3;
			HPOPANONPARENTS( ANONNODE$1 );
			if( ANONNODE$1 == (struct $8FBSYMBOL**)0ull) goto label$390;
			TMP$358$3 = *ANONNODE$1;
			goto label$1496;
			label$390:;
			TMP$358$3 = S$1;
			label$1496:;
			HPUSHANONPARENTS( TMP$358$3, *(struct $8FBSYMBOL**)((uint8*)FLD$1 + 296ll) );
		}
		label$388:;
		SKIP$1 = (int64)-((*(int64*)((uint8*)FLD$1 + 8ll) & 4ll) != 0ll);
		if( SKIP$1 != 0ll) goto label$392;
		{
			FBSTRING TMP$359$3;
			FBSTRING TMP$360$3;
			int64 TMP$364$3;
			DTYPE$1 = *(int64*)((uint8*)FLD$1 + 56ll) & 511ll;
			SUBTYPE$1 = *(struct $8FBSYMBOL**)((uint8*)FLD$1 + 64ll);
			FBSTRING* vr$12 = HEMITTYPE( DTYPE$1, SUBTYPE$1, 0ll );
			fb_StrAssign( (void*)&LN$1, -1ll, (void*)vr$12, -1ll, 0 );
			__builtin_memset( &TMP$359$3, 0, 24ll );
			FBSTRING* vr$17 = fb_StrConcat( &TMP$359$3, (void*)" ", 2ll, *(void**)((uint8*)FLD$1 + 32ll), 0ll );
			__builtin_memset( &TMP$360$3, 0, 24ll );
			FBSTRING* vr$21 = fb_StrConcat( &TMP$360$3, (void*)&LN$1, -1ll, (void*)vr$17, -1ll );
			fb_StrAssign( (void*)&LN$1, -1ll, (void*)vr$21, -1ll, 0 );
			FBSTRING* vr$23 = HEMITARRAYDECL( FLD$1 );
			fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)vr$23, -1ll, 0 );
			ALIGN$1 = (int64)*(uint8*)((uint8*)S$1 + 213ll);
			if( ALIGN$1 <= 0ll) goto label$394;
			{
				int64 TMP$361$4;
				int64 vr$27 = TYPECALCNATURALALIGN( DTYPE$1, SUBTYPE$1 );
				SKIP$1 = (int64)-(ALIGN$1 >= vr$27);
				int64 vr$29 = HFIELDNEEDSRUNTIMEALIGNMENT( FLD$1 );
				SKIP$1 = SKIP$1 | vr$29;
				if( (DTYPE$1 & 480ll) == 0ll) goto label$395;
				TMP$361$4 = 24ll;
				goto label$1497;
				label$395:;
				TMP$361$4 = DTYPE$1 & 31ll;
				label$1497:;
				if( TMP$361$4 != 20ll) goto label$397;
				{
					uint8 FIELDUDTALIGN$5;
					FIELDUDTALIGN$5 = *(uint8*)((uint8*)SUBTYPE$1 + 213ll);
					if( (int64)FIELDUDTALIGN$5 <= 0ll) goto label$399;
					{
						SKIP$1 = SKIP$1 | (int64)-(ALIGN$1 >= (int64)FIELDUDTALIGN$5);
					}
					label$399:;
					label$398:;
				}
				label$397:;
				label$396:;
				if( SKIP$1 != 0ll) goto label$401;
				{
					fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" __attribute__((packed, aligned(", 33ll, 0 );
					FBSTRING* vr$39 = fb_LongintToStr( ALIGN$1 );
					fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)vr$39, -1ll, 0 );
					fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)")))", 4ll, 0 );
				}
				label$401:;
				label$400:;
			}
			label$394:;
			label$393:;
			if( ALIGN$1 <= 0ll) goto label$402;
			TMP$364$3 = (int64)-(SKIP$1 != 0ll);
			goto label$1498;
			label$402:;
			TMP$364$3 = -1ll;
			label$1498:;
			if( TMP$364$3 == 0ll) goto label$404;
			{
				int64 TMP$365$4;
				if( (DTYPE$1 & 480ll) == 0ll) goto label$405;
				TMP$365$4 = 24ll;
				goto label$1499;
				label$405:;
				TMP$365$4 = DTYPE$1 & 31ll;
				label$1499:;
				if( TMP$365$4 != 20ll) goto label$407;
				{
					int64 TMP$366$5;
					int64 TMP$367$5;
					int64 EFFECTIVEALIGN$5;
					int64 vr$45 = TYPECALCNATURALALIGN( DTYPE$1, SUBTYPE$1 );
					EFFECTIVEALIGN$5 = vr$45;
					if( ALIGN$1 <= 0ll) goto label$408;
					TMP$366$5 = (int64)-(ALIGN$1 < EFFECTIVEALIGN$5);
					goto label$1500;
					label$408:;
					TMP$366$5 = 0ll;
					label$1500:;
					if( TMP$366$5 == 0ll) goto label$410;
					{
						EFFECTIVEALIGN$5 = ALIGN$1;
					}
					label$410:;
					label$409:;
					uint8 FIELDUDTALIGN$5;
					FIELDUDTALIGN$5 = *(uint8*)((uint8*)SUBTYPE$1 + 213ll);
					if( (int64)FIELDUDTALIGN$5 <= 0ll) goto label$411;
					TMP$367$5 = (int64)-(EFFECTIVEALIGN$5 > (int64)FIELDUDTALIGN$5);
					goto label$1501;
					label$411:;
					TMP$367$5 = 0ll;
					label$1501:;
					if( TMP$367$5 == 0ll) goto label$413;
					{
						fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" __attribute__((aligned(", 25ll, 0 );
						FBSTRING* vr$52 = fb_LongintToStr( EFFECTIVEALIGN$5 );
						fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)vr$52, -1ll, 0 );
						fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)")))", 4ll, 0 );
					}
					label$413:;
					label$412:;
				}
				label$407:;
				label$406:;
			}
			label$404:;
			label$403:;
			fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)";", 2ll, 0 );
			HWRITELINE( &LN$1, -1ll );
		}
		label$392:;
		label$391:;
		struct $8FBSYMBOL* vr$57 = SYMBUDTGETNEXTFIELD( FLD$1 );
		FLD$1 = vr$57;
	}
	goto label$386;
	label$387:;
	HPOPANONPARENTS( (struct $8FBSYMBOL**)0ull );
	fb_StrDelete( (FBSTRING*)&LN$1 );
	label$385:;
}

static void HEMITSTRUCT( struct $8FBSYMBOL* S$1, int64 IS_PTR$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING TMP$378$1;
	FBSTRING TMP$381$1;
	FBSTRING TMP$382$1;
	FBSTRING TMP$383$1;
	FBSTRING TMP$384$1;
	FBSTRING TMP$385$1;
	label$414:;
	int64 EMIT_FIELDS$1;
	FBSTRING LN$1;
	__builtin_memset( &LN$1, 0, 24ll );
	if( (*(int64*)((uint8*)S$1 + 24ll) & 134217728ll) == 0ll) goto label$417;
	{
		if( IS_PTR$1 == 0ll) goto label$419;
		{
			if( (*(int64*)((uint8*)S$1 + 24ll) & 2ll) != 0ll) goto label$421;
			{
				FBSTRING TMP$369$4;
				FBSTRING TMP$370$4;
				*($12FB_SYMBSTATS*)((uint8*)S$1 + 24ll) = *(int64*)((uint8*)S$1 + 24ll) | 2ll;
				__builtin_memset( &TMP$370$4, 0, 24ll );
				FBSTRING* vr$9 = HGETUDTNAME( S$1 );
				__builtin_memset( &TMP$369$4, 0, 24ll );
				FBSTRING* vr$12 = fb_StrConcat( &TMP$369$4, (void*)vr$9, -1ll, (void*)";", 2ll );
				fb_StrAssign( (void*)&TMP$370$4, -1ll, (void*)vr$12, -1ll, 0 );
				HWRITELINE( &TMP$370$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$370$4 );
			}
			label$421:;
			label$420:;
			fb_StrDelete( (FBSTRING*)&LN$1 );
			goto label$415;
		}
		label$419:;
		label$418:;
	}
	label$417:;
	label$416:;
	*($12FB_SYMBSTATS*)((uint8*)S$1 + 24ll) = *(int64*)((uint8*)S$1 + 24ll) | 134217728ll;
	EMIT_FIELDS$1 = (int64)-(((int64)*(int32*)((uint8*)S$1 + 208ll) & 32768ll) == 0ll);
	if( EMIT_FIELDS$1 == 0ll) goto label$423;
	{
		HEMITFIELDTYPES( S$1 );
	}
	label$423:;
	label$422:;
	if( (*(int64*)((uint8*)S$1 + 24ll) & 67108864ll) == 0ll) goto label$425;
	{
		fb_StrDelete( (FBSTRING*)&LN$1 );
		goto label$415;
	}
	label$425:;
	label$424:;
	*($12FB_SYMBSTATS*)((uint8*)S$1 + 24ll) = *(int64*)((uint8*)S$1 + 24ll) | 67108864ll;
	FBSTRING* vr$30 = HGETUDTTAG( S$1 );
	fb_StrAssign( (void*)&LN$1, -1ll, (void*)vr$30, -1ll, 0 );
	if( ((int64)-(*(int64*)((uint8*)&ENV$ + 216ll) == 0ll) & (int64)-((int64)*(uint8*)((uint8*)S$1 + 213ll) > 0ll)) == 0ll) goto label$427;
	{
		fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)"__attribute__((gcc_struct)) ", 29ll, 0 );
	}
	label$427:;
	label$426:;
	FBSTRING* vr$38 = HGETUDTID( S$1 );
	fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)vr$38, -1ll, 0 );
	fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" {", 3ll, 0 );
	HWRITELINE( &LN$1, -1ll );
	SECTIONINDENT(  );
	if( EMIT_FIELDS$1 == 0ll) goto label$429;
	{
		HEMITSTRUCTWITHFIELDS( S$1 );
	}
	goto label$428;
	label$429:;
	{
		FBSTRING TMP$375$2;
		FBSTRING TMP$376$2;
		FBSTRING TMP$377$2;
		__builtin_memset( &TMP$377$2, 0, 24ll );
		FBSTRING* vr$44 = fb_LongintToStr( *(int64*)((uint8*)S$1 + 80ll) );
		__builtin_memset( &TMP$375$2, 0, 24ll );
		FBSTRING* vr$47 = fb_StrConcat( &TMP$375$2, (void*)"uint8 __fb_struct_body[", 24ll, (void*)vr$44, -1ll );
		__builtin_memset( &TMP$376$2, 0, 24ll );
		FBSTRING* vr$50 = fb_StrConcat( &TMP$376$2, (void*)vr$47, -1ll, (void*)"];", 3ll );
		fb_StrAssign( (void*)&TMP$377$2, -1ll, (void*)vr$50, -1ll, 0 );
		HWRITELINE( &TMP$377$2, -1ll );
		fb_StrDelete( (FBSTRING*)&TMP$377$2 );
	}
	label$428:;
	SECTIONUNINDENT(  );
	__builtin_memset( &TMP$378$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$378$1, -1ll, (void*)"};", 3ll, 0 );
	HWRITELINE( &TMP$378$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$378$1 );
	*($12FB_SYMBSTATS*)((uint8*)S$1 + 24ll) = *(int64*)((uint8*)S$1 + 24ll) & -134217729ll;
	__builtin_memset( &TMP$385$1, 0, 24ll );
	FBSTRING* vr$63 = fb_ULongintToStr( *(uint64*)((uint8*)S$1 + 80ll) );
	FBSTRING* vr$64 = HGETUDTID( S$1 );
	FBSTRING* vr$65 = HGETUDTTAG( S$1 );
	__builtin_memset( &TMP$381$1, 0, 24ll );
	FBSTRING* vr$68 = fb_StrConcat( &TMP$381$1, (void*)"sizeof( ", 9ll, (void*)vr$65, -1ll );
	__builtin_memset( &TMP$382$1, 0, 24ll );
	FBSTRING* vr$71 = fb_StrConcat( &TMP$382$1, (void*)vr$68, -1ll, (void*)vr$64, -1ll );
	__builtin_memset( &TMP$383$1, 0, 24ll );
	FBSTRING* vr$74 = fb_StrConcat( &TMP$383$1, (void*)vr$71, -1ll, (void*)" ) == ", 7ll );
	__builtin_memset( &TMP$384$1, 0, 24ll );
	FBSTRING* vr$77 = fb_StrConcat( &TMP$384$1, (void*)vr$74, -1ll, (void*)vr$63, -1ll );
	fb_StrAssign( (void*)&TMP$385$1, -1ll, (void*)vr$77, -1ll, 0 );
	HWRITESTATICASSERT( &TMP$385$1 );
	fb_StrDelete( (FBSTRING*)&TMP$385$1 );
	fb_StrDelete( (FBSTRING*)&LN$1 );
	label$415:;
}

static void HWRITEX86F2I( FBSTRING* FNAME$1, int64 RTYPE$1, int64 PTYPE$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING TMP$395$1;
	FBSTRING TMP$399$1;
	FBSTRING TMP$400$1;
	FBSTRING TMP$401$1;
	FBSTRING TMP$402$1;
	FBSTRING TMP$403$1;
	FBSTRING TMP$404$1;
	FBSTRING TMP$405$1;
	FBSTRING TMP$407$1;
	FBSTRING TMP$410$1;
	FBSTRING TMP$411$1;
	FBSTRING TMP$412$1;
	FBSTRING TMP$414$1;
	FBSTRING TMP$417$1;
	FBSTRING TMP$418$1;
	FBSTRING TMP$419$1;
	FBSTRING TMP$422$1;
	FBSTRING TMP$423$1;
	FBSTRING TMP$424$1;
	FBSTRING TMP$426$1;
	FBSTRING TMP$428$1;
	FBSTRING TMP$430$1;
	FBSTRING TMP$432$1;
	FBSTRING TMP$434$1;
	FBSTRING TMP$436$1;
	label$430:;
	FBSTRING RTYPE_STR$1;
	FBSTRING* vr$0 = HEMITTYPE( RTYPE$1, (struct $8FBSYMBOL*)0ull, 0ll );
	fb_StrInit( (void*)&RTYPE_STR$1, -1ll, (void*)vr$0, -1ll, 0 );
	FBSTRING PTYPE_STR$1;
	FBSTRING* vr$2 = HEMITTYPE( PTYPE$1, (struct $8FBSYMBOL*)0ull, 0ll );
	fb_StrInit( (void*)&PTYPE_STR$1, -1ll, (void*)vr$2, -1ll, 0 );
	FBSTRING RTYPE_SUFFIX$1;
	__builtin_memset( &RTYPE_SUFFIX$1, 0, 24ll );
	FBSTRING PTYPE_SUFFIX$1;
	__builtin_memset( &PTYPE_SUFFIX$1, 0, 24ll );
	if( *(int64*)((uint8*)&ENV$ + 264ll) != 1ll) goto label$433;
	{
		{
			int64 TMP$386$3;
			int64 TMP$387$3;
			if( (RTYPE$1 & 480ll) == 0ll) goto label$434;
			TMP$386$3 = 24ll;
			goto label$1502;
			label$434:;
			TMP$386$3 = RTYPE$1 & 31ll;
			label$1502:;
			TMP$387$3 = *(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$386$3 * 56ll)) + 8ll);
			if( TMP$387$3 != 4ll) goto label$436;
			label$437:;
			{
				fb_StrAssign( (void*)&RTYPE_SUFFIX$1, -1ll, (void*)"l", 2ll, 0 );
			}
			goto label$435;
			label$436:;
			if( TMP$387$3 != 8ll) goto label$438;
			label$439:;
			{
				fb_StrAssign( (void*)&RTYPE_SUFFIX$1, -1ll, (void*)"q", 2ll, 0 );
			}
			label$438:;
			label$435:;
		}
		if( PTYPE$1 != 15ll) goto label$441;
		{
			fb_StrAssign( (void*)&PTYPE_SUFFIX$1, -1ll, (void*)"s", 2ll, 0 );
		}
		goto label$440;
		label$441:;
		{
			fb_StrAssign( (void*)&PTYPE_SUFFIX$1, -1ll, (void*)"l", 2ll, 0 );
		}
		label$440:;
	}
	goto label$432;
	label$433:;
	{
		{
			int64 TMP$391$3;
			int64 TMP$392$3;
			if( (RTYPE$1 & 480ll) == 0ll) goto label$442;
			TMP$391$3 = 24ll;
			goto label$1503;
			label$442:;
			TMP$391$3 = RTYPE$1 & 31ll;
			label$1503:;
			TMP$392$3 = *(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$391$3 * 56ll)) + 8ll);
			if( TMP$392$3 != 4ll) goto label$444;
			label$445:;
			{
				fb_StrAssign( (void*)&RTYPE_SUFFIX$1, -1ll, (void*)" dword ptr", 11ll, 0 );
			}
			goto label$443;
			label$444:;
			if( TMP$392$3 != 8ll) goto label$446;
			label$447:;
			{
				fb_StrAssign( (void*)&RTYPE_SUFFIX$1, -1ll, (void*)" qword ptr", 11ll, 0 );
			}
			label$446:;
			label$443:;
		}
		if( PTYPE$1 != 15ll) goto label$449;
		{
			fb_StrAssign( (void*)&PTYPE_SUFFIX$1, -1ll, (void*)" dword ptr", 11ll, 0 );
		}
		goto label$448;
		label$449:;
		{
			fb_StrAssign( (void*)&PTYPE_SUFFIX$1, -1ll, (void*)" qword ptr", 11ll, 0 );
		}
		label$448:;
	}
	label$432:;
	__builtin_memset( &TMP$395$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$395$1, -1ll, (void*)"", 1ll, 0 );
	HWRITELINE( &TMP$395$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$395$1 );
	__builtin_memset( &TMP$405$1, 0, 24ll );
	__builtin_memset( &TMP$399$1, 0, 24ll );
	FBSTRING* vr$29 = fb_StrConcat( &TMP$399$1, (void*)"static inline ", 15ll, (void*)&RTYPE_STR$1, -1ll );
	__builtin_memset( &TMP$400$1, 0, 24ll );
	FBSTRING* vr$32 = fb_StrConcat( &TMP$400$1, (void*)vr$29, -1ll, (void*)" fb_", 5ll );
	__builtin_memset( &TMP$401$1, 0, 24ll );
	FBSTRING* vr$35 = fb_StrConcat( &TMP$401$1, (void*)vr$32, -1ll, (void*)FNAME$1, -1ll );
	__builtin_memset( &TMP$402$1, 0, 24ll );
	FBSTRING* vr$38 = fb_StrConcat( &TMP$402$1, (void*)vr$35, -1ll, (void*)"( ", 3ll );
	__builtin_memset( &TMP$403$1, 0, 24ll );
	FBSTRING* vr$41 = fb_StrConcat( &TMP$403$1, (void*)vr$38, -1ll, (void*)&PTYPE_STR$1, -1ll );
	__builtin_memset( &TMP$404$1, 0, 24ll );
	FBSTRING* vr$44 = fb_StrConcat( &TMP$404$1, (void*)vr$41, -1ll, (void*)" value )", 9ll );
	fb_StrAssign( (void*)&TMP$405$1, -1ll, (void*)vr$44, -1ll, 0 );
	HWRITELINE( &TMP$405$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$405$1 );
	__builtin_memset( &TMP$407$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$407$1, -1ll, (void*)"{", 2ll, 0 );
	HWRITELINE( &TMP$407$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$407$1 );
	SECTIONINDENT(  );
	__builtin_memset( &TMP$412$1, 0, 24ll );
	__builtin_memset( &TMP$410$1, 0, 24ll );
	FBSTRING* vr$56 = fb_StrConcat( &TMP$410$1, (void*)"volatile ", 10ll, (void*)&RTYPE_STR$1, -1ll );
	__builtin_memset( &TMP$411$1, 0, 24ll );
	FBSTRING* vr$59 = fb_StrConcat( &TMP$411$1, (void*)vr$56, -1ll, (void*)" result;", 9ll );
	fb_StrAssign( (void*)&TMP$412$1, -1ll, (void*)vr$59, -1ll, 0 );
	HWRITELINE( &TMP$412$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$412$1 );
	__builtin_memset( &TMP$414$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$414$1, -1ll, (void*)"__asm__(", 9ll, 0 );
	HWRITELINE( &TMP$414$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$414$1 );
	SECTIONINDENT(  );
	__builtin_memset( &TMP$419$1, 0, 24ll );
	__builtin_memset( &TMP$417$1, 0, 24ll );
	FBSTRING* vr$71 = fb_StrConcat( &TMP$417$1, (void*)"\x22" "fld", 5ll, (void*)&PTYPE_SUFFIX$1, -1ll );
	__builtin_memset( &TMP$418$1, 0, 24ll );
	FBSTRING* vr$74 = fb_StrConcat( &TMP$418$1, (void*)vr$71, -1ll, (void*)" %1;\x22", 6ll );
	fb_StrAssign( (void*)&TMP$419$1, -1ll, (void*)vr$74, -1ll, 0 );
	HWRITELINE( &TMP$419$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$419$1 );
	__builtin_memset( &TMP$424$1, 0, 24ll );
	__builtin_memset( &TMP$422$1, 0, 24ll );
	FBSTRING* vr$82 = fb_StrConcat( &TMP$422$1, (void*)"\x22" "fistp", 7ll, (void*)&RTYPE_SUFFIX$1, -1ll );
	__builtin_memset( &TMP$423$1, 0, 24ll );
	FBSTRING* vr$85 = fb_StrConcat( &TMP$423$1, (void*)vr$82, -1ll, (void*)" %0;\x22", 6ll );
	fb_StrAssign( (void*)&TMP$424$1, -1ll, (void*)vr$85, -1ll, 0 );
	HWRITELINE( &TMP$424$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$424$1 );
	__builtin_memset( &TMP$426$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$426$1, -1ll, (void*)":\x22=m\x22 (result)", 15ll, 0 );
	HWRITELINE( &TMP$426$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$426$1 );
	__builtin_memset( &TMP$428$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$428$1, -1ll, (void*)":\x22m\x22 (value)", 13ll, 0 );
	HWRITELINE( &TMP$428$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$428$1 );
	__builtin_memset( &TMP$430$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$430$1, -1ll, (void*)":\x22st\x22", 6ll, 0 );
	HWRITELINE( &TMP$430$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$430$1 );
	SECTIONUNINDENT(  );
	__builtin_memset( &TMP$432$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$432$1, -1ll, (void*)");", 3ll, 0 );
	HWRITELINE( &TMP$432$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$432$1 );
	__builtin_memset( &TMP$434$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$434$1, -1ll, (void*)"return result;", 15ll, 0 );
	HWRITELINE( &TMP$434$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$434$1 );
	SECTIONUNINDENT(  );
	__builtin_memset( &TMP$436$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$436$1, -1ll, (void*)"}", 2ll, 0 );
	HWRITELINE( &TMP$436$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$436$1 );
	fb_StrDelete( (FBSTRING*)&PTYPE_SUFFIX$1 );
	fb_StrDelete( (FBSTRING*)&RTYPE_SUFFIX$1 );
	fb_StrDelete( (FBSTRING*)&PTYPE_STR$1 );
	fb_StrDelete( (FBSTRING*)&RTYPE_STR$1 );
	label$431:;
}

static void HWRITEGENERICF2I( FBSTRING* FNAME$1, int64 RTYPE$1, int64 PTYPE$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$450:;
	FBSTRING CALLNAME$1;
	__builtin_memset( &CALLNAME$1, 0, 24ll );
	if( PTYPE$1 != 15ll) goto label$453;
	{
		fb_StrAssign( (void*)&CALLNAME$1, -1ll, (void*)"nearbyintf", 11ll, 0 );
	}
	goto label$452;
	label$453:;
	{
		fb_StrAssign( (void*)&CALLNAME$1, -1ll, (void*)"nearbyint", 10ll, 0 );
	}
	label$452:;
	int64 vr$3 = FBGETOPTION( 3ll );
	if( vr$3 != 16ll) goto label$455;
	{
		FBSTRING TMP$439$2;
		FBSTRING TMP$440$2;
		FBSTRING TMP$441$2;
		FBSTRING TMP$442$2;
		FBSTRING TMP$443$2;
		FBSTRING TMP$444$2;
		FBSTRING TMP$448$2;
		FBSTRING TMP$449$2;
		FBSTRING TMP$450$2;
		FBSTRING TMP$451$2;
		FBSTRING TMP$452$2;
		FBSTRING TMP$453$2;
		FBSTRING TMP$454$2;
		__builtin_memset( &TMP$444$2, 0, 24ll );
		FBSTRING* vr$5 = HEMITTYPE( PTYPE$1, (struct $8FBSYMBOL*)0ull, 0ll );
		FBSTRING* vr$7 = HEMITTYPE( PTYPE$1, (struct $8FBSYMBOL*)0ull, 0ll );
		__builtin_memset( &TMP$439$2, 0, 24ll );
		FBSTRING* vr$10 = fb_StrConcat( &TMP$439$2, (void*)vr$7, -1ll, (void*)" ", 2ll );
		__builtin_memset( &TMP$440$2, 0, 24ll );
		FBSTRING* vr$13 = fb_StrConcat( &TMP$440$2, (void*)vr$10, -1ll, (void*)&CALLNAME$1, -1ll );
		__builtin_memset( &TMP$441$2, 0, 24ll );
		FBSTRING* vr$16 = fb_StrConcat( &TMP$441$2, (void*)vr$13, -1ll, (void*)"( ", 3ll );
		__builtin_memset( &TMP$442$2, 0, 24ll );
		FBSTRING* vr$19 = fb_StrConcat( &TMP$442$2, (void*)vr$16, -1ll, (void*)vr$5, -1ll );
		__builtin_memset( &TMP$443$2, 0, 24ll );
		FBSTRING* vr$22 = fb_StrConcat( &TMP$443$2, (void*)vr$19, -1ll, (void*)" );", 4ll );
		fb_StrAssign( (void*)&TMP$444$2, -1ll, (void*)vr$22, -1ll, 0 );
		HWRITELINE( &TMP$444$2, -1ll );
		fb_StrDelete( (FBSTRING*)&TMP$444$2 );
		__builtin_memset( &TMP$454$2, 0, 24ll );
		FBSTRING* vr$28 = HEMITTYPE( RTYPE$1, (struct $8FBSYMBOL*)0ull, 0ll );
		__builtin_memset( &TMP$448$2, 0, 24ll );
		FBSTRING* vr$31 = fb_StrConcat( &TMP$448$2, (void*)"#define fb_", 12ll, (void*)FNAME$1, -1ll );
		__builtin_memset( &TMP$449$2, 0, 24ll );
		FBSTRING* vr$34 = fb_StrConcat( &TMP$449$2, (void*)vr$31, -1ll, (void*)"( value ) ((", 13ll );
		__builtin_memset( &TMP$450$2, 0, 24ll );
		FBSTRING* vr$37 = fb_StrConcat( &TMP$450$2, (void*)vr$34, -1ll, (void*)vr$28, -1ll );
		__builtin_memset( &TMP$451$2, 0, 24ll );
		FBSTRING* vr$40 = fb_StrConcat( &TMP$451$2, (void*)vr$37, -1ll, (void*)")", 2ll );
		__builtin_memset( &TMP$452$2, 0, 24ll );
		FBSTRING* vr$43 = fb_StrConcat( &TMP$452$2, (void*)vr$40, -1ll, (void*)&CALLNAME$1, -1ll );
		__builtin_memset( &TMP$453$2, 0, 24ll );
		FBSTRING* vr$46 = fb_StrConcat( &TMP$453$2, (void*)vr$43, -1ll, (void*)"( value ))", 11ll );
		fb_StrAssign( (void*)&TMP$454$2, -1ll, (void*)vr$46, -1ll, 0 );
		HWRITELINE( &TMP$454$2, -1ll );
		fb_StrDelete( (FBSTRING*)&TMP$454$2 );
	}
	goto label$454;
	label$455:;
	{
		FBSTRING TMP$456$2;
		FBSTRING TMP$457$2;
		FBSTRING TMP$458$2;
		FBSTRING TMP$459$2;
		FBSTRING TMP$460$2;
		FBSTRING TMP$461$2;
		FBSTRING TMP$462$2;
		__builtin_memset( &TMP$462$2, 0, 24ll );
		FBSTRING* vr$52 = HEMITTYPE( RTYPE$1, (struct $8FBSYMBOL*)0ull, 0ll );
		__builtin_memset( &TMP$456$2, 0, 24ll );
		FBSTRING* vr$55 = fb_StrConcat( &TMP$456$2, (void*)"#define fb_", 12ll, (void*)FNAME$1, -1ll );
		__builtin_memset( &TMP$457$2, 0, 24ll );
		FBSTRING* vr$58 = fb_StrConcat( &TMP$457$2, (void*)vr$55, -1ll, (void*)"( value ) ((", 13ll );
		__builtin_memset( &TMP$458$2, 0, 24ll );
		FBSTRING* vr$61 = fb_StrConcat( &TMP$458$2, (void*)vr$58, -1ll, (void*)vr$52, -1ll );
		__builtin_memset( &TMP$459$2, 0, 24ll );
		FBSTRING* vr$64 = fb_StrConcat( &TMP$459$2, (void*)vr$61, -1ll, (void*)")__builtin_", 12ll );
		__builtin_memset( &TMP$460$2, 0, 24ll );
		FBSTRING* vr$67 = fb_StrConcat( &TMP$460$2, (void*)vr$64, -1ll, (void*)&CALLNAME$1, -1ll );
		__builtin_memset( &TMP$461$2, 0, 24ll );
		FBSTRING* vr$70 = fb_StrConcat( &TMP$461$2, (void*)vr$67, -1ll, (void*)"( value ))", 11ll );
		fb_StrAssign( (void*)&TMP$462$2, -1ll, (void*)vr$70, -1ll, 0 );
		HWRITELINE( &TMP$462$2, -1ll );
		fb_StrDelete( (FBSTRING*)&TMP$462$2 );
	}
	label$454:;
	fb_StrDelete( (FBSTRING*)&CALLNAME$1 );
	label$451:;
}

static void HWRITEF2I( FBSTRING* FNAME$1, int64 RTYPE$1, int64 PTYPE$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$456:;
	int64 vr$0 = FBGETCPUFAMILY(  );
	if( vr$0 != 0ll) goto label$459;
	{
		{
			if( RTYPE$1 == 11ll) goto label$462;
			label$463:;
			if( RTYPE$1 != 13ll) goto label$461;
			label$462:;
			{
				HWRITEX86F2I( FNAME$1, RTYPE$1, PTYPE$1 );
				goto label$457;
			}
			label$461:;
			label$460:;
		}
	}
	label$459:;
	label$458:;
	HWRITEGENERICF2I( FNAME$1, RTYPE$1, PTYPE$1 );
	label$457:;
}

static void HMAYBEEMITPROCEXPORT( struct $8FBSYMBOL* PROC$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$464:;
	if( (*(int64*)((uint8*)PROC$1 + 8ll) & 256ll) != 0ll) goto label$467;
	{
		goto label$465;
	}
	label$467:;
	label$466:;
	fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5336ll), -1ll, (void*)"\x09\x22", 3ll, 0 );
	fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5336ll), -1ll, (void*)"\x5Ct.ascii ", 10ll, 0 );
	fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5336ll), -1ll, (void*)"\x5C\x22 -export:\x5C\x5C\x5C\x22", 16ll, 0 );
	FBSTRING* vr$5 = HGETMANGLEDNAMEFORASM( PROC$1, 0ll );
	fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5336ll), -1ll, (void*)vr$5, -1ll, 0 );
	fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5336ll), -1ll, (void*)"\x5C\x5C\x5C\x22\x5C\x22", 7ll, 0 );
	fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5336ll), -1ll, (void*)"\x5Cn", 3ll, 0 );
	fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5336ll), -1ll, (void*)"\x22\x0A", 3ll, 0 );
	label$465:;
}

static int64 _EMITBEGIN( void )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING TMP$470$1;
	FBSTRING TMP$472$1;
	FBSTRING TMP$474$1;
	FBSTRING TMP$476$1;
	FBSTRING TMP$478$1;
	FBSTRING TMP$480$1;
	FBSTRING TMP$482$1;
	FBSTRING TMP$484$1;
	FBSTRING TMP$490$1;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$468:;
	int64 vr$2 = HFILEEXISTS( (char*)((uint8*)&ENV$ + 936ll) );
	if( vr$2 == 0ll) goto label$471;
	{
		FBSTRING* vr$4 = fb_StrAllocTempDescZ( (char*)((uint8*)&ENV$ + 936ll) );
		fb_FileKill( (FBSTRING*)vr$4 );
	}
	label$471:;
	label$470:;
	int32 vr$5 = fb_FileFree(  );
	*(int64*)((uint8*)&ENV$ + 928ll) = (int64)vr$5;
	FBSTRING* vr$9 = fb_StrAllocTempDescZ( (char*)((uint8*)&ENV$ + 936ll) );
	int32 vr$10 = fb_FileOpen( (FBSTRING*)vr$9, 0u, 3u, 0u, (int32)*(int64*)((uint8*)&ENV$ + 928ll), 0 );
	if( (int64)vr$10 == 0ll) goto label$473;
	{
		fb$result$1 = 0ll;
		goto label$469;
	}
	label$473:;
	label$472:;
	*(int64*)((uint8*)&CTX$ + 5160ll) = -1ll;
	*(int64*)((uint8*)&CTX$ + 5168ll) = 0ll;
	*(int64*)((uint8*)&CTX$ + 5176ll) = 0ll;
	*(uint64*)((uint8*)&CTX$ + 5208ll) = 0ull;
	*(int64*)((uint8*)&CTX$ + 5512ll) = 0ll;
	HUPDATECURRENTFILENAME( (char*)((uint8*)&ENV$ + 640ll) );
	SECTIONBEGIN(  );
	if( *(int64*)((uint8*)&ENV$ + 296ll) == 0ll) goto label$475;
	{
		_EMITDBG( 114ll, (struct $8FBSYMBOL*)0ull, 0ll, (char*)0ull );
	}
	label$475:;
	label$474:;
	__builtin_memset( &TMP$470$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$470$1, -1ll, (void*)"typedef   signed char       int8;", 34ll, 0 );
	HWRITELINE( &TMP$470$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$470$1 );
	__builtin_memset( &TMP$472$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$472$1, -1ll, (void*)"typedef unsigned char      uint8;", 34ll, 0 );
	HWRITELINE( &TMP$472$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$472$1 );
	__builtin_memset( &TMP$474$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$474$1, -1ll, (void*)"typedef   signed short      int16;", 35ll, 0 );
	HWRITELINE( &TMP$474$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$474$1 );
	__builtin_memset( &TMP$476$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$476$1, -1ll, (void*)"typedef unsigned short     uint16;", 35ll, 0 );
	HWRITELINE( &TMP$476$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$476$1 );
	__builtin_memset( &TMP$478$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$478$1, -1ll, (void*)"typedef   signed int        int32;", 35ll, 0 );
	HWRITELINE( &TMP$478$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$478$1 );
	__builtin_memset( &TMP$480$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$480$1, -1ll, (void*)"typedef unsigned int       uint32;", 35ll, 0 );
	HWRITELINE( &TMP$480$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$480$1 );
	__builtin_memset( &TMP$482$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$482$1, -1ll, (void*)"typedef   signed long long  int64;", 35ll, 0 );
	HWRITELINE( &TMP$482$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$482$1 );
	__builtin_memset( &TMP$484$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$484$1, -1ll, (void*)"typedef unsigned long long uint64;", 35ll, 0 );
	HWRITELINE( &TMP$484$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$484$1 );
	int64 vr$45 = FBIS64BIT(  );
	if( vr$45 == 0ll) goto label$477;
	{
		FBSTRING TMP$486$2;
		__builtin_memset( &TMP$486$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$486$2, -1ll, (void*)"typedef struct { char *data; int64 len; int64 size; } FBSTRING;", 64ll, 0 );
		HWRITELINE( &TMP$486$2, -1ll );
		fb_StrDelete( (FBSTRING*)&TMP$486$2 );
	}
	goto label$476;
	label$477:;
	{
		FBSTRING TMP$488$2;
		__builtin_memset( &TMP$488$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$488$2, -1ll, (void*)"typedef struct { char *data; int32 len; int32 size; } FBSTRING;", 64ll, 0 );
		HWRITELINE( &TMP$488$2, -1ll );
		fb_StrDelete( (FBSTRING*)&TMP$488$2 );
	}
	label$476:;
	__builtin_memset( &TMP$490$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$490$1, -1ll, (void*)"typedef int8 boolean;", 22ll, 0 );
	HWRITELINE( &TMP$490$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$490$1 );
	SECTIONBEGIN(  );
	fb$result$1 = -1ll;
	label$469:;
	return fb$result$1;
}

static void _EMITEND( void )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$478:;
	int64 SECTION$1;
	HUPDATECURRENTFILENAME( (char*)((uint8*)&ENV$ + 640ll) );
	int64 vr$1 = SECTIONGOSUB( 0ll );
	SECTION$1 = vr$1;
	int64 vr$2 = FBGETOPTION( 43ll );
	if( vr$2 != 1ll) goto label$481;
	{
		FBSTRING TMP$492$2;
		FBSTRING TMP$494$2;
		FBSTRING TMP$496$2;
		FBSTRING TMP$498$2;
		FBSTRING TMP$500$2;
		__builtin_memset( &TMP$492$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$492$2, -1ll, (void*)"#if defined(__GNUC__)", 22ll, 0 );
		HWRITELINE( &TMP$492$2, -1ll );
		fb_StrDelete( (FBSTRING*)&TMP$492$2 );
		__builtin_memset( &TMP$494$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$494$2, -1ll, (void*)"__attribute__((weak)) const int __fb_app_mode_gui_enabled = 1;", 63ll, 0 );
		HWRITELINE( &TMP$494$2, -1ll );
		fb_StrDelete( (FBSTRING*)&TMP$494$2 );
		__builtin_memset( &TMP$496$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$496$2, -1ll, (void*)"#else", 6ll, 0 );
		HWRITELINE( &TMP$496$2, -1ll );
		fb_StrDelete( (FBSTRING*)&TMP$496$2 );
		__builtin_memset( &TMP$498$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$498$2, -1ll, (void*)"const int __fb_app_mode_gui_enabled = 1;", 41ll, 0 );
		HWRITELINE( &TMP$498$2, -1ll );
		fb_StrDelete( (FBSTRING*)&TMP$498$2 );
		__builtin_memset( &TMP$500$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$500$2, -1ll, (void*)"#endif", 7ll, 0 );
		HWRITELINE( &TMP$500$2, -1ll );
		fb_StrDelete( (FBSTRING*)&TMP$500$2 );
	}
	label$481:;
	label$480:;
	if( (*(uint64*)((uint8*)&CTX$ + 5208ll) & 1ull) == 0ull) goto label$483;
	{
		FBSTRING TMP$502$2;
		__builtin_memset( &TMP$502$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$502$2, -1ll, (void*)"F2I", 4ll, 0 );
		HWRITEF2I( &TMP$502$2, 11ll, 15ll );
		fb_StrDelete( (FBSTRING*)&TMP$502$2 );
		label$483:;
	}
	if( (*(uint64*)((uint8*)&CTX$ + 5208ll) & 2ull) == 0ull) goto label$485;
	{
		FBSTRING TMP$504$2;
		__builtin_memset( &TMP$504$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$504$2, -1ll, (void*)"F2L", 4ll, 0 );
		HWRITEF2I( &TMP$504$2, 13ll, 15ll );
		fb_StrDelete( (FBSTRING*)&TMP$504$2 );
		label$485:;
	}
	if( (*(uint64*)((uint8*)&CTX$ + 5208ll) & 4ull) == 0ull) goto label$487;
	{
		FBSTRING TMP$506$2;
		__builtin_memset( &TMP$506$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$506$2, -1ll, (void*)"F2UL", 5ll, 0 );
		HWRITEF2I( &TMP$506$2, 14ll, 15ll );
		fb_StrDelete( (FBSTRING*)&TMP$506$2 );
		label$487:;
	}
	if( (*(uint64*)((uint8*)&CTX$ + 5208ll) & 8ull) == 0ull) goto label$489;
	{
		FBSTRING TMP$508$2;
		__builtin_memset( &TMP$508$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$508$2, -1ll, (void*)"D2I", 4ll, 0 );
		HWRITEF2I( &TMP$508$2, 11ll, 16ll );
		fb_StrDelete( (FBSTRING*)&TMP$508$2 );
		label$489:;
	}
	if( (*(uint64*)((uint8*)&CTX$ + 5208ll) & 16ull) == 0ull) goto label$491;
	{
		FBSTRING TMP$510$2;
		__builtin_memset( &TMP$510$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$510$2, -1ll, (void*)"D2L", 4ll, 0 );
		HWRITEF2I( &TMP$510$2, 13ll, 16ll );
		fb_StrDelete( (FBSTRING*)&TMP$510$2 );
		label$491:;
	}
	if( (*(uint64*)((uint8*)&CTX$ + 5208ll) & 32ull) == 0ull) goto label$493;
	{
		FBSTRING TMP$512$2;
		__builtin_memset( &TMP$512$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$512$2, -1ll, (void*)"D2UL", 5ll, 0 );
		HWRITEF2I( &TMP$512$2, 14ll, 16ll );
		fb_StrDelete( (FBSTRING*)&TMP$512$2 );
		label$493:;
	}
	SYMBFOREACHGLOBAL( 3ll, (tmp$44)&HMAYBEEMITPROCPROTO );
	*(int64*)((uint8*)&CTX$ + 5512ll) = 1ll;
	SYMBFOREACHGLOBAL( 1ll, (tmp$44)&HMAYBEEMITGLOBALVAREXCEPTDATASTMT );
	IRFOREACHDATASTMT( (tmp$44)&HMAYBEEMITGLOBALVAR );
	*(int64*)((uint8*)&CTX$ + 5512ll) = 2ll;
	SYMBFOREACHGLOBAL( 1ll, (tmp$44)&HMAYBEEMITGLOBALVAREXCEPTDATASTMT );
	IRFOREACHDATASTMT( (tmp$44)&HMAYBEEMITGLOBALVAR );
	SECTIONRETURN( SECTION$1 );
	if( (*(int64*)((uint8*)&ENV$ + 456ll) & (*(int64*)((uint8*)&ENV$ + 600ll) & 4ll)) == 0ll) goto label$495;
	{
		SYMBFOREACHGLOBAL( 3ll, (tmp$44)&HMAYBEEMITPROCEXPORT );
		int64 vr$56 = fb_StrLen( (void*)((uint8*)&CTX$ + 5336ll), -1ll );
		if( vr$56 <= 0ll) goto label$497;
		{
			FBSTRING TMP$514$3;
			FBSTRING TMP$515$3;
			FBSTRING TMP$516$3;
			FBSTRING TMP$518$3;
			__builtin_memset( &TMP$516$3, 0, 24ll );
			__builtin_memset( &TMP$514$3, 0, 24ll );
			FBSTRING* vr$61 = fb_StrConcat( &TMP$514$3, (void*)"\x0A__asm__( \x0A\x09\x22.section .drectve\x5Cn\x22\x0A", 35ll, (void*)((uint8*)&CTX$ + 5336ll), -1ll );
			__builtin_memset( &TMP$515$3, 0, 24ll );
			FBSTRING* vr$64 = fb_StrConcat( &TMP$515$3, (void*)vr$61, -1ll, (void*)");", 3ll );
			fb_StrAssign( (void*)&TMP$516$3, -1ll, (void*)vr$64, -1ll, 0 );
			HWRITELINE( &TMP$516$3, -1ll );
			fb_StrDelete( (FBSTRING*)&TMP$516$3 );
			__builtin_memset( &TMP$518$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$518$3, -1ll, (void*)"__asm__( \x22.text\x22 );", 20ll, 0 );
			HWRITELINE( &TMP$518$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$518$3 );
		}
		label$497:;
		label$496:;
		fb_StrAssign( (void*)((uint8*)&CTX$ + 5336ll), -1ll, (void*)"", 1ll, 0 );
	}
	label$495:;
	label$494:;
	SECTIONEND(  );
	if( *(int64*)((uint8*)&CTX$ + 24ll) != 0ll) goto label$499;
	{
		int32 vr$75 = fb_FilePutStrLarge( (int32)*(int64*)((uint8*)&ENV$ + 928ll), 0ll, (void*)&CTX$, -1ll );
		if( (int64)vr$75 == 0ll) goto label$501;
		{
		}
		label$501:;
		label$500:;
	}
	label$499:;
	label$498:;
	SECTIONEND(  );
	int32 vr$78 = fb_FileClose( (int32)*(int64*)((uint8*)&ENV$ + 928ll) );
	if( (int64)vr$78 == 0ll) goto label$503;
	{
	}
	label$503:;
	label$502:;
	*(int64*)((uint8*)&ENV$ + 928ll) = 0ll;
	label$479:;
}

static int64 _GETOPTIONVALUE( $14IR_OPTIONVALUE OPT$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$504:;
	{
		if( OPT$1 != 1ll) goto label$507;
		label$508:;
		{
			fb$result$1 = 0ll;
			goto label$505;
		}
		goto label$506;
		label$507:;
		{
			ERRREPORTEX( 21ll, (char*)"_GETOPTIONVALUE", 0ll, 1ll, (char*)0ull );
		}
		label$509:;
		label$506:;
	}
	label$505:;
	return fb$result$1;
}

static int64 _SUPPORTSOP( int64 OP$1, int64 DTYPE$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$510:;
	{
		uint64 TMP$520$2;
		TMP$520$2 = (uint64)OP$1;
		goto label$513;
		label$514:;
		{
			fb$result$1 = 0ll;
		}
		goto label$512;
		label$515:;
		{
			fb$result$1 = -1ll;
		}
		goto label$512;
		label$513:;
		static const void* tmp$894[16ll] = {
			&&label$514,
			&&label$515,
			&&label$515,
			&&label$515,
			&&label$515,
			&&label$515,
			&&label$515,
			&&label$515,
			&&label$515,
			&&label$514,
			&&label$514,
			&&label$515,
			&&label$515,
			&&label$515,
			&&label$514,
			&&label$514,
		};
		if( (TMP$520$2 - 58ull) > 15ull ) goto label$515;
		goto *tmp$894[TMP$520$2 - 58ull];
		label$512:;
	}
	label$511:;
	return fb$result$1;
}

static void _PROCBEGIN( struct $8FBSYMBOL* PROC$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$516:;
	*(int64*)((uint8*)*(struct $10FB_PROCEXT**)((uint8*)PROC$1 + 208ll) + 32ll) = *(int64*)((uint8*)*(struct $9LEX_TKCTX**)((uint8*)&LEX$ + 862240ll) + 16752ll);
	label$517:;
}

static void _PROCEND( struct $8FBSYMBOL* PROC$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$518:;
	*(int64*)((uint8*)*(struct $10FB_PROCEXT**)((uint8*)PROC$1 + 208ll) + 40ll) = *(int64*)((uint8*)*(struct $9LEX_TKCTX**)((uint8*)&LEX$ + 862240ll) + 16752ll);
	label$519:;
}

static void _SCOPEBEGIN( struct $8FBSYMBOL* S$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$520:;
	label$521:;
}

static void _SCOPEEND( struct $8FBSYMBOL* S$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$522:;
	label$523:;
}

static int64 HISSTATICWITHDTOR( struct $8FBSYMBOL* SYM$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$524:;
	int64 vr$8 = SYMBHASDTOR( SYM$1 );
	fb$result$1 = ((int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 2ll) != 0ll) & (int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 262144ll) == 0ll)) & vr$8;
	label$525:;
	return fb$result$1;
}

static void _PROCALLOCSTATICVARS( struct $8FBSYMBOL* SYM$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$526:;
	struct $8FBSYMBOL* DESC$1;
	int64 SECTION$1;
	int64 vr$0 = SECTIONGOSUB( 0ll );
	SECTION$1 = vr$0;
	label$528:;
	if( SYM$1 == (struct $8FBSYMBOL*)0ull) goto label$529;
	{
		{
			$12FB_SYMBCLASS TMP$521$3;
			TMP$521$3 = *($12FB_SYMBCLASS*)SYM$1;
			if( TMP$521$3 != 15ll) goto label$531;
			label$532:;
			{
				_PROCALLOCSTATICVARS( *(struct $8FBSYMBOL**)((uint8*)SYM$1 + 112ll) );
			}
			goto label$530;
			label$531:;
			if( TMP$521$3 != 1ll) goto label$533;
			label$534:;
			{
				int64 vr$3 = HISSTATICWITHDTOR( SYM$1 );
				if( vr$3 == 0ll) goto label$536;
				{
					HMAYBEEMITLOCALVAR( SYM$1 );
					DESC$1 = *(struct $8FBSYMBOL**)((uint8*)SYM$1 + 136ll);
					if( DESC$1 == (struct $8FBSYMBOL*)0ull) goto label$538;
					{
						HMAYBEEMITLOCALVAR( DESC$1 );
					}
					label$538:;
					label$537:;
				}
				label$536:;
				label$535:;
			}
			label$533:;
			label$530:;
		}
		SYM$1 = *(struct $8FBSYMBOL**)((uint8*)SYM$1 + 312ll);
	}
	goto label$528;
	label$529:;
	SECTIONRETURN( SECTION$1 );
	label$527:;
}

static void _SETVREGDATATYPE( struct $6IRVREG* VREG$1, int64 DTYPE$1, struct $8FBSYMBOL* SUBTYPE$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$539:;
	if( VREG$1 == (struct $6IRVREG*)0ull) goto label$542;
	{
		*($11FB_DATATYPE*)((uint8*)VREG$1 + 8ll) = DTYPE$1;
		*(struct $8FBSYMBOL**)((uint8*)VREG$1 + 16ll) = SUBTYPE$1;
	}
	label$542:;
	label$541:;
	label$540:;
}

static FBSTRING* HEMITTYPE( int64 DTYPE$1, struct $8FBSYMBOL* SUBTYPE$1, int64 EMIT_CONST$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 TMP$530$1;
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$543:;
	FBSTRING S$1;
	__builtin_memset( &S$1, 0, 24ll );
	int64 PTRCOUNT$1;
	$19FB_CVA_LIST_TYPEDEF vr$2 = SYMBGETVALISTTYPE( DTYPE$1, SUBTYPE$1 );
	if( vr$2 <= 1ll) goto label$546;
	{
		{
			$19FB_CVA_LIST_TYPEDEF TMP$522$3;
			$19FB_CVA_LIST_TYPEDEF vr$3 = SYMBGETVALISTTYPE( DTYPE$1, SUBTYPE$1 );
			TMP$522$3 = vr$3;
			if( TMP$522$3 == 2ll) goto label$549;
			label$550:;
			if( TMP$522$3 != 3ll) goto label$548;
			label$549:;
			{
				DTYPE$1 = (((((DTYPE$1 & 31ll) | ((DTYPE$1 & 480ll) + -32ll)) | (((DTYPE$1 & 261632ll) >> (1ll & 63ll)) & 261632ll)) | (DTYPE$1 & 32505856ll)) & -32ll) | 19ll;
			}
			goto label$547;
			label$548:;
			{
				DTYPE$1 = (DTYPE$1 & -32ll) | 19ll;
			}
			label$551:;
			label$547:;
		}
	}
	label$546:;
	label$545:;
	PTRCOUNT$1 = (DTYPE$1 & 480ll) >> (5ll & 63ll);
	{
		uint64 TMP$523$2;
		TMP$523$2 = (uint64)(DTYPE$1 & 31ll);
		goto label$553;
		label$554:;
		{
			if( SUBTYPE$1 == (struct $8FBSYMBOL*)0ull) goto label$556;
			{
				HEMITUDT( SUBTYPE$1, (int64)-(PTRCOUNT$1 > 0ll) );
				FBSTRING* vr$22 = HGETUDTNAME( SUBTYPE$1 );
				fb_StrAssign( (void*)&S$1, -1ll, (void*)vr$22, -1ll, 0 );
			}
			goto label$555;
			label$556:;
			if( (DTYPE$1 & 31ll) != 10ll) goto label$557;
			{
				int64 TMP$524$4;
				if( ((DTYPE$1 & 31ll) & 480ll) == 0ll) goto label$558;
				TMP$524$4 = 24ll;
				goto label$1504;
				label$558:;
				TMP$524$4 = (DTYPE$1 & 31ll) & 31ll;
				label$1504:;
				fb_StrAssign( (void*)&S$1, -1ll, *(void**)((uint64)(char**)DTYPENAME$ + (*(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$524$4 * 56ll)) + 32ll) << (3ll & 63ll))), 0ll, 0 );
			}
			goto label$555;
			label$557:;
			{
				fb_StrAssign( (void*)&S$1, -1ll, *(void**)DTYPENAME$, 0ll, 0 );
			}
			label$555:;
		}
		goto label$552;
		label$559:;
		{
			PTRCOUNT$1 = PTRCOUNT$1 + -1ll;
			HEMITUDT( SUBTYPE$1, (int64)-(PTRCOUNT$1 > 0ll) );
			char* vr$35 = SYMBGETMANGLEDNAME( SUBTYPE$1 );
			fb_StrAssign( (void*)&S$1, -1ll, (void*)vr$35, 0ll, 0 );
		}
		goto label$552;
		label$560:;
		{
			int64 TMP$525$3;
			if( ((DTYPE$1 & 31ll) & 480ll) == 0ll) goto label$561;
			TMP$525$3 = 24ll;
			goto label$1505;
			label$561:;
			TMP$525$3 = (DTYPE$1 & 31ll) & 31ll;
			label$1505:;
			fb_StrAssign( (void*)&S$1, -1ll, *(void**)((uint64)(char**)DTYPENAME$ + (*(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$525$3 * 56ll)) + 32ll) << (3ll & 63ll))), 0ll, 0 );
		}
		goto label$552;
		label$562:;
		{
			fb_StrAssign( (void*)&S$1, -1ll, *(void**)((uint64)(char**)DTYPENAME$ + 24ll), 0ll, 0 );
		}
		goto label$552;
		label$563:;
		{
			{
				int64 TMP$526$4;
				TMP$526$4 = (DTYPE$1 & 32505856ll) >> (20ll & 63ll);
				if( TMP$526$4 != 4ll) goto label$565;
				label$566:;
				{
					fb_StrAssign( (void*)&S$1, -1ll, (void*)"char", 5ll, 0 );
				}
				goto label$564;
				label$565:;
				if( TMP$526$4 != 1ll) goto label$567;
				label$568:;
				{
					fb_StrAssign( (void*)&S$1, -1ll, (void*)"_Bool", 6ll, 0 );
				}
				goto label$564;
				label$567:;
				if( TMP$526$4 != 8ll) goto label$569;
				label$570:;
				{
					fb_StrAssign( (void*)&S$1, -1ll, (void*)"long", 5ll, 0 );
				}
				goto label$564;
				label$569:;
				if( TMP$526$4 != 9ll) goto label$571;
				label$572:;
				{
					fb_StrAssign( (void*)&S$1, -1ll, (void*)"unsigned long", 14ll, 0 );
				}
				goto label$564;
				label$571:;
				{
					fb_StrAssign( (void*)&S$1, -1ll, *(void**)((uint64)(char**)DTYPENAME$ + ((DTYPE$1 & 31ll) << (3ll & 63ll))), 0ll, 0 );
				}
				label$573:;
				label$564:;
			}
		}
		goto label$552;
		label$553:;
		static const void* tmp$895[16ll] = {
			&&label$560,
			&&label$563,
			&&label$563,
			&&label$554,
			&&label$563,
			&&label$563,
			&&label$563,
			&&label$563,
			&&label$563,
			&&label$563,
			&&label$563,
			&&label$562,
			&&label$563,
			&&label$554,
			&&label$563,
			&&label$559,
		};
		if( (TMP$523$2 - 7ull) > 15ull ) goto label$563;
		goto *tmp$895[TMP$523$2 - 7ull];
		label$552:;
	}
	if( EMIT_CONST$1 == 0ll) goto label$574;
	TMP$530$1 = (int64)-((DTYPE$1 & (1ll << ((PTRCOUNT$1 + 9ll) & 63ll))) != 0ll);
	goto label$1506;
	label$574:;
	TMP$530$1 = 0ll;
	label$1506:;
	if( TMP$530$1 == 0ll) goto label$576;
	{
		FBSTRING TMP$532$2;
		__builtin_memset( &TMP$532$2, 0, 24ll );
		FBSTRING* vr$61 = fb_StrConcat( &TMP$532$2, (void*)"const ", 7ll, (void*)&S$1, -1ll );
		fb_StrAssign( (void*)&S$1, -1ll, (void*)vr$61, -1ll, 0 );
	}
	label$576:;
	label$575:;
	if( PTRCOUNT$1 <= 0ll) goto label$578;
	{
		{
			int64 I$3;
			I$3 = PTRCOUNT$1 + -1ll;
			goto label$579;
			label$582:;
			{
				int64 TMP$534$4;
				fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)"*", 2ll, 0 );
				if( EMIT_CONST$1 == 0ll) goto label$583;
				TMP$534$4 = (int64)-((DTYPE$1 & (1ll << ((I$3 + 9ll) & 63ll))) != 0ll);
				goto label$1507;
				label$583:;
				TMP$534$4 = 0ll;
				label$1507:;
				if( TMP$534$4 == 0ll) goto label$585;
				{
					fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)" const", 7ll, 0 );
				}
				label$585:;
				label$584:;
			}
			label$580:;
			I$3 = I$3 + -1ll;
			label$579:;
			if( I$3 >= 0ll) goto label$582;
			label$581:;
		}
	}
	label$578:;
	label$577:;
	fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)&S$1, -1ll, 0 );
	fb_StrDelete( (FBSTRING*)&S$1 );
	label$544:;
	FBSTRING* vr$75 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$75;
}

static struct $8EXPRNODE* EXPRNEW( int64 CLASS_$1, int64 DTYPE$1, struct $8FBSYMBOL* SUBTYPE$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	struct $8EXPRNODE* fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$586:;
	struct $8EXPRNODE* N$1;
	void* vr$2 = LISTNEWNODE( (struct $5TLIST*)((uint8*)&CTX$ + 5360ll) );
	N$1 = (struct $8EXPRNODE*)vr$2;
	*(int64*)N$1 = CLASS_$1;
	*(int64*)((uint8*)N$1 + 8ll) = DTYPE$1;
	*(struct $8FBSYMBOL**)((uint8*)N$1 + 16ll) = SUBTYPE$1;
	fb$result$1 = N$1;
	label$587:;
	return fb$result$1;
}

static void EXPRFREENODE( struct $8EXPRNODE* N$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$588:;
	if( *(int64*)N$1 != 0ll) goto label$591;
	{
		if( *(char**)((uint8*)N$1 + 40ll) == (char*)0ull) goto label$593;
		{
			free( *(void**)((uint8*)N$1 + 40ll) );
		}
		label$593:;
		label$592:;
	}
	label$591:;
	label$590:;
	LISTDELNODE( (struct $5TLIST*)((uint8*)&CTX$ + 5360ll), (void*)N$1 );
	label$589:;
}

static void EXPRFREETREE( struct $8EXPRNODE* N$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$594:;
	if( *(struct $8EXPRNODE**)((uint8*)N$1 + 24ll) == (struct $8EXPRNODE*)0ull) goto label$597;
	{
		EXPRFREETREE( *(struct $8EXPRNODE**)((uint8*)N$1 + 24ll) );
	}
	label$597:;
	label$596:;
	if( *(struct $8EXPRNODE**)((uint8*)N$1 + 32ll) == (struct $8EXPRNODE*)0ull) goto label$599;
	{
		EXPRFREETREE( *(struct $8EXPRNODE**)((uint8*)N$1 + 32ll) );
	}
	label$599:;
	label$598:;
	EXPRFREENODE( N$1 );
	label$595:;
}

static struct $8EXPRNODE* EXPRNEWTEXT( int64 DTYPE$1, struct $8FBSYMBOL* SUBTYPE$1, char* S$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	struct $8EXPRNODE* fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$600:;
	struct $8EXPRNODE* N$1;
	struct $8EXPRNODE* vr$1 = EXPRNEW( 0ll, DTYPE$1, SUBTYPE$1 );
	N$1 = vr$1;
	char* vr$2 = ZSTRDUP( S$1 );
	*(char**)((uint8*)N$1 + 40ll) = vr$2;
	fb$result$1 = N$1;
	label$601:;
	return fb$result$1;
}

static struct $8EXPRNODE* EXPRNEWIMMI( int64 I$1, int64 DTYPE$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 TMP$536$1;
	struct $8EXPRNODE* fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$602:;
	struct $8EXPRNODE* N$1;
	if( (DTYPE$1 & 480ll) == 0ll) goto label$604;
	TMP$536$1 = 24ll;
	goto label$1508;
	label$604:;
	TMP$536$1 = DTYPE$1 & 31ll;
	label$1508:;
	if( *(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$536$1 * 56ll)) + 8ll) != 8ll) goto label$606;
	{
		int64 TMP$537$2;
		$11FB_DATATYPE TMP$538$2;
		if( (DTYPE$1 & 480ll) == 0ll) goto label$607;
		TMP$537$2 = 24ll;
		goto label$1509;
		label$607:;
		TMP$537$2 = DTYPE$1 & 31ll;
		label$1509:;
		if( *(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$537$2 * 56ll)) + 16ll) == 0ll) goto label$608;
		TMP$538$2 = 13ll;
		goto label$1510;
		label$608:;
		TMP$538$2 = 14ll;
		label$1510:;
		DTYPE$1 = TMP$538$2;
	}
	goto label$605;
	label$606:;
	{
		int64 TMP$539$2;
		$11FB_DATATYPE TMP$540$2;
		if( (DTYPE$1 & 480ll) == 0ll) goto label$609;
		TMP$539$2 = 24ll;
		goto label$1511;
		label$609:;
		TMP$539$2 = DTYPE$1 & 31ll;
		label$1511:;
		if( *(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$539$2 * 56ll)) + 16ll) == 0ll) goto label$610;
		TMP$540$2 = 11ll;
		goto label$1512;
		label$610:;
		TMP$540$2 = 12ll;
		label$1512:;
		DTYPE$1 = TMP$540$2;
	}
	label$605:;
	struct $8EXPRNODE* vr$10 = EXPRNEW( 1ll, DTYPE$1, (struct $8FBSYMBOL*)0ull );
	N$1 = vr$10;
	*(int64*)((uint8*)N$1 + 40ll) = I$1;
	fb$result$1 = N$1;
	label$603:;
	return fb$result$1;
}

static struct $8EXPRNODE* EXPRNEWIMMF( double F$1, int64 DTYPE$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	struct $8EXPRNODE* fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$611:;
	struct $8EXPRNODE* N$1;
	struct $8EXPRNODE* vr$1 = EXPRNEW( 1ll, DTYPE$1, (struct $8FBSYMBOL*)0ull );
	N$1 = vr$1;
	*(double*)((uint8*)N$1 + 40ll) = F$1;
	fb$result$1 = N$1;
	label$612:;
	return fb$result$1;
}

static int64 SYMBISCARRAY( struct $8FBSYMBOL* SYM$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$613:;
	if( (((int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 262144ll) != 0ll) | (int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 81920ll) != 0ll)) | (int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 512ll) != 0ll)) == 0ll) goto label$616;
	{
		fb$result$1 = 0ll;
		goto label$614;
	}
	label$616:;
	label$615:;
	{
		$12FB_SYMBCLASS TMP$541$2;
		TMP$541$2 = *($12FB_SYMBCLASS*)SYM$1;
		if( TMP$541$2 == 1ll) goto label$619;
		label$620:;
		if( TMP$541$2 != 12ll) goto label$618;
		label$619:;
		{
			if( (*(int64*)((uint8*)SYM$1 + 8ll) & 4ll) == 0ll) goto label$622;
			{
				fb$result$1 = 0ll;
				goto label$614;
			}
			label$622:;
			label$621:;
			if( *(int64*)((uint8*)SYM$1 + 104ll) == 0ll) goto label$624;
			{
				fb$result$1 = -1ll;
				goto label$614;
			}
			label$624:;
			label$623:;
		}
		label$618:;
		label$617:;
	}
	{
		int64 TMP$542$2;
		TMP$542$2 = *(int64*)((uint8*)SYM$1 + 56ll) & 511ll;
		if( TMP$542$2 == 18ll) goto label$627;
		label$628:;
		if( TMP$542$2 == 4ll) goto label$627;
		label$629:;
		if( TMP$542$2 != 7ll) goto label$626;
		label$627:;
		{
			fb$result$1 = -1ll;
			goto label$614;
		}
		label$626:;
		label$625:;
	}
	fb$result$1 = 0ll;
	goto label$614;
	label$614:;
	return fb$result$1;
}

static struct $8EXPRNODE* EXPRNEWCAST( int64 DTYPE$1, struct $8FBSYMBOL* SUBTYPE$1, struct $8EXPRNODE* L$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 TMP$543$1;
	int64 TMP$544$1;
	struct $8EXPRNODE* fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$630:;
	if( ((int64)-(DTYPE$1 == *(int64*)((uint8*)L$1 + 8ll)) & (int64)-(SUBTYPE$1 == *(struct $8FBSYMBOL**)((uint8*)L$1 + 16ll))) == 0ll) goto label$633;
	{
		fb$result$1 = L$1;
		goto label$631;
	}
	label$633:;
	label$632:;
	if( (*(int64*)((uint8*)L$1 + 8ll) & 480ll) == 0ll) goto label$634;
	TMP$543$1 = 24ll;
	goto label$1513;
	label$634:;
	TMP$543$1 = *(int64*)((uint8*)L$1 + 8ll) & 31ll;
	label$1513:;
	if( (DTYPE$1 & 480ll) == 0ll) goto label$635;
	TMP$544$1 = 24ll;
	goto label$1514;
	label$635:;
	TMP$544$1 = DTYPE$1 & 31ll;
	label$1514:;
	if( (((int64)-(*(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$543$1 * 56ll)) + 40ll) == *(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$544$1 * 56ll)) + 40ll)) & (int64)-((*(int64*)((uint8*)L$1 + 8ll) & 480ll) == 0ll)) & (int64)-((DTYPE$1 & 480ll) == 0ll)) == 0ll) goto label$637;
	{
		fb$result$1 = L$1;
		goto label$631;
	}
	label$637:;
	label$636:;
	if( *(int64*)L$1 != 3ll) goto label$639;
	{
		if( ((int64)-(((DTYPE$1 & 480ll) >> (5ll & 63ll)) > 0ll) & (int64)-(((*(int64*)((uint8*)L$1 + 8ll) & 480ll) >> (5ll & 63ll)) > 0ll)) == 0ll) goto label$641;
		{
			*(int64*)((uint8*)L$1 + 8ll) = DTYPE$1;
			*(struct $8FBSYMBOL**)((uint8*)L$1 + 16ll) = SUBTYPE$1;
			fb$result$1 = L$1;
			goto label$631;
		}
		label$641:;
		label$640:;
	}
	label$639:;
	label$638:;
	if( (*(int64*)((uint8*)L$1 + 8ll) & 511ll) != 4ll) goto label$643;
	{
		struct $8EXPRNODE* N$2;
		struct $8EXPRNODE* vr$35 = EXPRNEW( 3ll, 3ll, (struct $8FBSYMBOL*)0ull );
		N$2 = vr$35;
		*(struct $8EXPRNODE**)((uint8*)N$2 + 24ll) = L$1;
		L$1 = N$2;
	}
	label$643:;
	label$642:;
	struct $8EXPRNODE* N$1;
	struct $8EXPRNODE* vr$37 = EXPRNEW( 3ll, DTYPE$1, SUBTYPE$1 );
	N$1 = vr$37;
	*(struct $8EXPRNODE**)((uint8*)N$1 + 24ll) = L$1;
	fb$result$1 = N$1;
	label$631:;
	return fb$result$1;
}

static struct $8EXPRNODE* EXPRNEWMACRO( $6AST_OP OP$1, int64 DTYPE$1, struct $8FBSYMBOL* SUBTYPE$1, struct $8EXPRNODE* L$1, struct $8EXPRNODE* R$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	struct $8EXPRNODE* fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$644:;
	struct $8EXPRNODE* N$1;
	struct $8EXPRNODE* vr$1 = EXPRNEW( 6ll, DTYPE$1, SUBTYPE$1 );
	N$1 = vr$1;
	*(int64*)((uint8*)N$1 + 40ll) = OP$1;
	*(struct $8EXPRNODE**)((uint8*)N$1 + 24ll) = L$1;
	*(struct $8EXPRNODE**)((uint8*)N$1 + 32ll) = R$1;
	fb$result$1 = N$1;
	label$645:;
	return fb$result$1;
}

static struct $8EXPRNODE* EXPRNEWSYM( struct $8FBSYMBOL* SYM$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	struct $8EXPRNODE* fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$646:;
	struct $8EXPRNODE* N$1;
	int64 DTYPE$1;
	struct $8FBSYMBOL* SUBTYPE$1;
	if( ((int64)-(*(int64*)SYM$1 == 1ll) & (int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 4ll) != 0ll)) == 0ll) goto label$649;
	{
		SYM$1 = *(struct $8FBSYMBOL**)((uint8*)SYM$1 + 136ll);
	}
	label$649:;
	label$648:;
	if( *(int64*)SYM$1 != 7ll) goto label$651;
	{
		struct $8EXPRNODE* vr$9 = EXPRNEW( 2ll, 32ll, (struct $8FBSYMBOL*)0ull );
		N$1 = vr$9;
		*(struct $8FBSYMBOL**)((uint8*)N$1 + 40ll) = SYM$1;
	}
	goto label$650;
	label$651:;
	if( *(int64*)SYM$1 != 3ll) goto label$652;
	{
		struct $8EXPRNODE* vr$12 = EXPRNEW( 2ll, 54ll, SYM$1 );
		N$1 = vr$12;
		*(struct $8FBSYMBOL**)((uint8*)N$1 + 40ll) = SYM$1;
	}
	goto label$650;
	label$652:;
	int64 vr$14 = SYMBISCARRAY( SYM$1 );
	if( vr$14 == 0ll) goto label$653;
	{
		struct $8EXPRNODE* vr$15 = EXPRNEW( 2ll, 2147483648ll, (struct $8FBSYMBOL*)0ull );
		N$1 = vr$15;
		*(struct $8FBSYMBOL**)((uint8*)N$1 + 40ll) = SYM$1;
		struct $8EXPRNODE* vr$35 = EXPRNEWCAST( ((((*(int64*)((uint8*)SYM$1 + 56ll) & 511ll) & 31ll) | (((*(int64*)((uint8*)SYM$1 + 56ll) & 511ll) & 480ll) + 32ll)) | (((*(int64*)((uint8*)SYM$1 + 56ll) & 511ll) & 261632ll) << (1ll & 63ll))) | ((*(int64*)((uint8*)SYM$1 + 56ll) & 511ll) & 32505856ll), *(struct $8FBSYMBOL**)((uint8*)SYM$1 + 64ll), N$1 );
		N$1 = vr$35;
	}
	goto label$650;
	label$653:;
	if( (((int64)-(*(int64*)SYM$1 == 1ll) | (int64)-(*(int64*)SYM$1 == 4ll)) & (int64)-((*(int64*)((uint8*)SYM$1 + 24ll) & 524288ll) != 0ll)) == 0ll) goto label$654;
	{
		struct $8EXPRNODE* vr$45 = EXPRNEW( 2ll, 66ll, (struct $8FBSYMBOL*)0ull );
		N$1 = vr$45;
		*(struct $8FBSYMBOL**)((uint8*)N$1 + 40ll) = SYM$1;
	}
	goto label$650;
	label$654:;
	{
		SYMBGETREALTYPE( SYM$1, &DTYPE$1, &SUBTYPE$1 );
		struct $8EXPRNODE* vr$49 = EXPRNEW( 2ll, DTYPE$1, SUBTYPE$1 );
		N$1 = vr$49;
		*(struct $8FBSYMBOL**)((uint8*)N$1 + 40ll) = SYM$1;
	}
	label$650:;
	fb$result$1 = N$1;
	label$647:;
	return fb$result$1;
}

static int64 TYPECBOP( int64 OP$1, int64 A$1, int64 B$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 TMP$545$1;
	int64 TMP$546$1;
	int64 TMP$547$1;
	int64 TMP$550$1;
	int64 TMP$553$1;
	int64 TMP$554$1;
	int64 TMP$555$1;
	int64 TMP$556$1;
	int64 TMP$561$1;
	int64 TMP$562$1;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$655:;
	if( (*(int64*)(((uint64)(struct $10AST_OPINFO*)AST_OPTB$ + (OP$1 << (5ll & 63ll))) + 8ll) & 8ll) == 0ll) goto label$658;
	{
		fb$result$1 = 11ll;
		goto label$656;
	}
	label$658:;
	label$657:;
	if( (A$1 & 480ll) == 0ll) goto label$659;
	TMP$545$1 = 24ll;
	goto label$1515;
	label$659:;
	TMP$545$1 = A$1 & 31ll;
	label$1515:;
	A$1 = TMP$545$1;
	if( (B$1 & 480ll) == 0ll) goto label$660;
	TMP$546$1 = 24ll;
	goto label$1516;
	label$660:;
	TMP$546$1 = B$1 & 31ll;
	label$1516:;
	B$1 = TMP$546$1;
	if( ((int64)-(A$1 == 16ll) | (int64)-(B$1 == 16ll)) == 0ll) goto label$662;
	{
		fb$result$1 = 16ll;
		goto label$656;
	}
	label$662:;
	label$661:;
	if( ((int64)-(A$1 == 15ll) | (int64)-(B$1 == 15ll)) == 0ll) goto label$664;
	{
		fb$result$1 = 15ll;
		goto label$656;
	}
	label$664:;
	label$663:;
	if( (A$1 & 480ll) == 0ll) goto label$665;
	TMP$547$1 = 24ll;
	goto label$1517;
	label$665:;
	TMP$547$1 = A$1 & 31ll;
	label$1517:;
	if( *(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$547$1 * 56ll)) + 8ll) > 4ll) goto label$667;
	{
		int64 TMP$548$2;
		$11FB_DATATYPE TMP$549$2;
		if( (A$1 & 480ll) == 0ll) goto label$668;
		TMP$548$2 = 24ll;
		goto label$1518;
		label$668:;
		TMP$548$2 = A$1 & 31ll;
		label$1518:;
		if( *(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$548$2 * 56ll)) + 16ll) == 0ll) goto label$669;
		TMP$549$2 = 11ll;
		goto label$1519;
		label$669:;
		TMP$549$2 = 12ll;
		label$1519:;
		A$1 = TMP$549$2;
	}
	label$667:;
	label$666:;
	if( (B$1 & 480ll) == 0ll) goto label$670;
	TMP$550$1 = 24ll;
	goto label$1520;
	label$670:;
	TMP$550$1 = B$1 & 31ll;
	label$1520:;
	if( *(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$550$1 * 56ll)) + 8ll) > 4ll) goto label$672;
	{
		int64 TMP$551$2;
		$11FB_DATATYPE TMP$552$2;
		if( (B$1 & 480ll) == 0ll) goto label$673;
		TMP$551$2 = 24ll;
		goto label$1521;
		label$673:;
		TMP$551$2 = B$1 & 31ll;
		label$1521:;
		if( *(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$551$2 * 56ll)) + 16ll) == 0ll) goto label$674;
		TMP$552$2 = 11ll;
		goto label$1522;
		label$674:;
		TMP$552$2 = 12ll;
		label$1522:;
		B$1 = TMP$552$2;
	}
	label$672:;
	label$671:;
	if( (A$1 & 480ll) == 0ll) goto label$675;
	TMP$553$1 = 24ll;
	goto label$1523;
	label$675:;
	TMP$553$1 = A$1 & 31ll;
	label$1523:;
	if( (B$1 & 480ll) == 0ll) goto label$676;
	TMP$554$1 = 24ll;
	goto label$1524;
	label$676:;
	TMP$554$1 = B$1 & 31ll;
	label$1524:;
	if( ~(*(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$553$1 * 56ll)) + 16ll) & *(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$554$1 * 56ll)) + 16ll)) == 0ll) goto label$678;
	{
		int64 vr$33 = TYPETOUNSIGNED( A$1 );
		A$1 = vr$33;
		int64 vr$34 = TYPETOUNSIGNED( B$1 );
		B$1 = vr$34;
	}
	label$678:;
	label$677:;
	if( (A$1 & 480ll) == 0ll) goto label$679;
	TMP$555$1 = 24ll;
	goto label$1525;
	label$679:;
	TMP$555$1 = A$1 & 31ll;
	label$1525:;
	if( (B$1 & 480ll) == 0ll) goto label$680;
	TMP$556$1 = 24ll;
	goto label$1526;
	label$680:;
	TMP$556$1 = B$1 & 31ll;
	label$1526:;
	if( ((int64)-(*(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$555$1 * 56ll)) + 8ll) == 8ll) | (int64)-(*(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$556$1 * 56ll)) + 8ll) == 8ll)) == 0ll) goto label$682;
	{
		int64 TMP$557$2;
		$11FB_DATATYPE TMP$558$2;
		int64 TMP$559$2;
		$11FB_DATATYPE TMP$560$2;
		if( (A$1 & 480ll) == 0ll) goto label$683;
		TMP$557$2 = 24ll;
		goto label$1527;
		label$683:;
		TMP$557$2 = A$1 & 31ll;
		label$1527:;
		if( *(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$557$2 * 56ll)) + 16ll) == 0ll) goto label$684;
		TMP$558$2 = 13ll;
		goto label$1528;
		label$684:;
		TMP$558$2 = 14ll;
		label$1528:;
		A$1 = TMP$558$2;
		if( (B$1 & 480ll) == 0ll) goto label$685;
		TMP$559$2 = 24ll;
		goto label$1529;
		label$685:;
		TMP$559$2 = B$1 & 31ll;
		label$1529:;
		if( *(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$559$2 * 56ll)) + 16ll) == 0ll) goto label$686;
		TMP$560$2 = 13ll;
		goto label$1530;
		label$686:;
		TMP$560$2 = 14ll;
		label$1530:;
		B$1 = TMP$560$2;
	}
	label$682:;
	label$681:;
	if( (A$1 & 480ll) == 0ll) goto label$687;
	TMP$561$1 = 24ll;
	goto label$1531;
	label$687:;
	TMP$561$1 = A$1 & 31ll;
	label$1531:;
	if( (B$1 & 480ll) == 0ll) goto label$688;
	TMP$562$1 = 24ll;
	goto label$1532;
	label$688:;
	TMP$562$1 = B$1 & 31ll;
	label$1532:;
	if( ~(*(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$561$1 * 56ll)) + 16ll) & *(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$562$1 * 56ll)) + 16ll)) == 0ll) goto label$690;
	{
		int64 vr$58 = TYPETOUNSIGNED( A$1 );
		A$1 = vr$58;
		int64 vr$59 = TYPETOUNSIGNED( B$1 );
		B$1 = vr$59;
	}
	label$690:;
	label$689:;
	fb$result$1 = A$1;
	label$656:;
	return fb$result$1;
}

static struct $8EXPRNODE* EXPRNEWUOP( int64 OP$1, struct $8EXPRNODE* L$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	struct $8EXPRNODE* fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$691:;
	struct $8EXPRNODE* N$1;
	int64 DTYPE$1;
	int64 SOLVED_OUT$1;
	SOLVED_OUT$1 = 0ll;
	{
		uint64 TMP$563$2;
		TMP$563$2 = (uint64)OP$1;
		goto label$694;
		label$695:;
		{
			if( *(int64*)L$1 != 4ll) goto label$697;
			{
				SOLVED_OUT$1 = (int64)-(*(int64*)((uint8*)L$1 + 40ll) == 77ll);
			}
			label$697:;
			label$696:;
			DTYPE$1 = *(int64*)((uint8*)L$1 + 8ll);
			DTYPE$1 = (((DTYPE$1 & 31ll) | ((DTYPE$1 & 480ll) + 32ll)) | ((DTYPE$1 & 261632ll) << (1ll & 63ll))) | (DTYPE$1 & 32505856ll);
		}
		goto label$693;
		label$698:;
		{
			if( *(int64*)L$1 != 4ll) goto label$700;
			{
				SOLVED_OUT$1 = (int64)-(*(int64*)((uint8*)L$1 + 40ll) == 22ll);
			}
			label$700:;
			label$699:;
			DTYPE$1 = *(int64*)((uint8*)L$1 + 8ll);
			DTYPE$1 = (((DTYPE$1 & 31ll) | ((DTYPE$1 & 480ll) + -32ll)) | (((DTYPE$1 & 261632ll) >> (1ll & 63ll)) & 261632ll)) | (DTYPE$1 & 32505856ll);
		}
		goto label$693;
		label$701:;
		{
			if( *(int64*)L$1 != 4ll) goto label$703;
			{
				SOLVED_OUT$1 = (int64)-(*(int64*)((uint8*)L$1 + 40ll) == OP$1);
			}
			label$703:;
			label$702:;
			int64 vr$33 = TYPECBOP( OP$1, *(int64*)((uint8*)L$1 + 8ll), *(int64*)((uint8*)L$1 + 8ll) );
			DTYPE$1 = vr$33;
		}
		goto label$693;
		label$704:;
		{
			DTYPE$1 = *(int64*)((uint8*)L$1 + 8ll);
		}
		goto label$693;
		label$705:;
		{
		}
		goto label$693;
		label$694:;
		static const void* tmp$896[56ll] = {
			&&label$695,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$701,
			&&label$701,
			&&label$705,
			&&label$701,
			&&label$705,
			&&label$704,
			&&label$705,
			&&label$704,
			&&label$704,
			&&label$704,
			&&label$704,
			&&label$704,
			&&label$704,
			&&label$705,
			&&label$704,
			&&label$705,
			&&label$705,
			&&label$704,
			&&label$704,
			&&label$704,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$705,
			&&label$698,
		};
		if( (TMP$563$2 - 22ull) > 55ull ) goto label$705;
		goto *tmp$896[TMP$563$2 - 22ull];
		label$693:;
	}
	if( SOLVED_OUT$1 == 0ll) goto label$707;
	{
		N$1 = *(struct $8EXPRNODE**)((uint8*)L$1 + 24ll);
		EXPRFREENODE( L$1 );
		fb$result$1 = N$1;
		goto label$692;
	}
	label$707:;
	label$706:;
	struct $8EXPRNODE* vr$37 = EXPRNEW( 4ll, DTYPE$1, *(struct $8FBSYMBOL**)((uint8*)L$1 + 16ll) );
	N$1 = vr$37;
	*(struct $8EXPRNODE**)((uint8*)N$1 + 24ll) = L$1;
	*(int64*)((uint8*)N$1 + 40ll) = OP$1;
	fb$result$1 = N$1;
	label$692:;
	return fb$result$1;
}

static struct $8EXPRNODE* EXPRNEWBOP( int64 OP$1, struct $8EXPRNODE* L$1, struct $8EXPRNODE* R$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	struct $8EXPRNODE* fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$708:;
	struct $8EXPRNODE* N$1;
	int64 DTYPE$1;
	int64 vr$3 = TYPECBOP( OP$1, *(int64*)((uint8*)L$1 + 8ll), *(int64*)((uint8*)R$1 + 8ll) );
	DTYPE$1 = vr$3;
	{
		uint64 TMP$564$2;
		TMP$564$2 = (uint64)OP$1;
		goto label$711;
		label$712:;
		{
			if( ((int64)-((*(int64*)((uint8*)L$1 + 8ll) & 480ll) != 0ll) & (int64)-((*(int64*)((uint8*)R$1 + 8ll) & 480ll) != 0ll)) == 0ll) goto label$714;
			{
				if( ((int64)-(((*(int64*)((uint8*)L$1 + 8ll) & 32505856ll) >> (20ll & 63ll)) == 19ll) | (int64)-(((*(int64*)((uint8*)R$1 + 8ll) & 32505856ll) >> (20ll & 63ll)) == 19ll)) == 0ll) goto label$716;
				{
					struct $8EXPRNODE* vr$20 = EXPRNEWCAST( 35ll, (struct $8FBSYMBOL*)0ull, L$1 );
					L$1 = vr$20;
					struct $8EXPRNODE* vr$21 = EXPRNEWCAST( 35ll, (struct $8FBSYMBOL*)0ull, R$1 );
					R$1 = vr$21;
				}
				label$716:;
				label$715:;
			}
			label$714:;
			label$713:;
		}
		goto label$710;
		label$711:;
		static const void* tmp$897[6ll] = {
			&&label$712,
			&&label$712,
			&&label$712,
			&&label$712,
			&&label$712,
			&&label$712,
		};
		if( (TMP$564$2 - 45ull) > 5ull ) goto label$710;
		goto *tmp$897[TMP$564$2 - 45ull];
		label$710:;
	}
	struct $8EXPRNODE* vr$22 = EXPRNEW( 5ll, DTYPE$1, (struct $8FBSYMBOL*)0ull );
	N$1 = vr$22;
	*(struct $8EXPRNODE**)((uint8*)N$1 + 24ll) = L$1;
	*(struct $8EXPRNODE**)((uint8*)N$1 + 32ll) = R$1;
	*(int64*)((uint8*)N$1 + 40ll) = OP$1;
	fb$result$1 = N$1;
	label$709:;
	return fb$result$1;
}

static void EXPRCACHE( int64 VREGID$1, struct $8EXPRNODE* EXPR$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$717:;
	struct $13EXPRCACHENODE* ENTRY$1;
	void* vr$1 = LISTNEWNODE( (struct $5TLIST*)((uint8*)&CTX$ + 5448ll) );
	ENTRY$1 = (struct $13EXPRCACHENODE*)vr$1;
	*(int64*)ENTRY$1 = VREGID$1;
	*(struct $8EXPRNODE**)((uint8*)ENTRY$1 + 8ll) = EXPR$1;
	label$718:;
}

static struct $8EXPRNODE* EXPRLOOKUP( int64 VREGID$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	struct $8EXPRNODE* fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$719:;
	struct $13EXPRCACHENODE* ENTRY$1;
	void* vr$2 = LISTGETHEAD( (struct $5TLIST*)((uint8*)&CTX$ + 5448ll) );
	ENTRY$1 = (struct $13EXPRCACHENODE*)vr$2;
	label$721:;
	if( ENTRY$1 == (struct $13EXPRCACHENODE*)0ull) goto label$722;
	{
		if( *(int64*)ENTRY$1 != VREGID$1) goto label$724;
		{
			goto label$722;
		}
		label$724:;
		label$723:;
		void* vr$4 = LISTGETNEXT( (void*)ENTRY$1 );
		ENTRY$1 = (struct $13EXPRCACHENODE*)vr$4;
	}
	goto label$721;
	label$722:;
	if( ENTRY$1 == (struct $13EXPRCACHENODE*)0ull) goto label$726;
	{
		fb$result$1 = *(struct $8EXPRNODE**)((uint8*)ENTRY$1 + 8ll);
		LISTDELNODE( (struct $5TLIST*)((uint8*)&CTX$ + 5448ll), (void*)ENTRY$1 );
	}
	goto label$725;
	label$726:;
	{
		fb$result$1 = (struct $8EXPRNODE*)0ull;
	}
	label$725:;
	label$720:;
	return fb$result$1;
}

static FBSTRING* HEMITINT( int64 DTYPE$1, int64 VALUE$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 TMP$565$1;
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$727:;
	FBSTRING S$1;
	__builtin_memset( &S$1, 0, 24ll );
	if( (DTYPE$1 & 480ll) == 0ll) goto label$729;
	TMP$565$1 = 24ll;
	goto label$1533;
	label$729:;
	TMP$565$1 = DTYPE$1 & 31ll;
	label$1533:;
	if( *(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$565$1 * 56ll)) + 16ll) == 0ll) goto label$731;
	{
		int64 TMP$566$2;
		FBSTRING* vr$5 = fb_LongintToStr( VALUE$1 );
		fb_StrAssign( (void*)&S$1, -1ll, (void*)vr$5, -1ll, 0 );
		if( (DTYPE$1 & 480ll) == 0ll) goto label$732;
		TMP$566$2 = 24ll;
		goto label$1534;
		label$732:;
		TMP$566$2 = DTYPE$1 & 31ll;
		label$1534:;
		if( *(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$566$2 * 56ll)) + 8ll) != 8ll) goto label$734;
		{
			if( VALUE$1 != (int64)-9223372036854775808ull) goto label$736;
			{
				FBSTRING TMP$569$4;
				FBSTRING TMP$570$4;
				__builtin_memset( &TMP$569$4, 0, 24ll );
				FBSTRING* vr$13 = fb_StrConcat( &TMP$569$4, (void*)"(int64)", 8ll, (void*)&S$1, -1ll );
				__builtin_memset( &TMP$570$4, 0, 24ll );
				FBSTRING* vr$16 = fb_StrConcat( &TMP$570$4, (void*)vr$13, -1ll, (void*)"u", 2ll );
				fb_StrAssign( (void*)&S$1, -1ll, (void*)vr$16, -1ll, 0 );
			}
			label$736:;
			label$735:;
			fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)"ll", 3ll, 0 );
		}
		goto label$733;
		label$734:;
		{
			if( VALUE$1 != -2147483648ll) goto label$738;
			{
				FBSTRING TMP$573$4;
				FBSTRING TMP$574$4;
				__builtin_memset( &TMP$573$4, 0, 24ll );
				FBSTRING* vr$22 = fb_StrConcat( &TMP$573$4, (void*)"(int32)", 8ll, (void*)&S$1, -1ll );
				__builtin_memset( &TMP$574$4, 0, 24ll );
				FBSTRING* vr$25 = fb_StrConcat( &TMP$574$4, (void*)vr$22, -1ll, (void*)"u", 2ll );
				fb_StrAssign( (void*)&S$1, -1ll, (void*)vr$25, -1ll, 0 );
			}
			label$738:;
			label$737:;
		}
		label$733:;
	}
	goto label$730;
	label$731:;
	{
		int64 TMP$575$2;
		if( (DTYPE$1 & 480ll) == 0ll) goto label$739;
		TMP$575$2 = 24ll;
		goto label$1535;
		label$739:;
		TMP$575$2 = DTYPE$1 & 31ll;
		label$1535:;
		if( *(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$575$2 * 56ll)) + 8ll) != 8ll) goto label$741;
		{
			FBSTRING* vr$30 = fb_ULongintToStr( (uint64)VALUE$1 );
			fb_StrAssign( (void*)&S$1, -1ll, (void*)vr$30, -1ll, 0 );
			fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)"ull", 4ll, 0 );
		}
		goto label$740;
		label$741:;
		{
			FBSTRING* vr$34 = fb_UIntToStr( (uint32)VALUE$1 );
			fb_StrAssign( (void*)&S$1, -1ll, (void*)vr$34, -1ll, 0 );
			fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)"u", 2ll, 0 );
		}
		label$740:;
	}
	label$730:;
	fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)&S$1, -1ll, 0 );
	fb_StrDelete( (FBSTRING*)&S$1 );
	label$728:;
	FBSTRING* vr$41 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$41;
}

static FBSTRING* HEMITFLOAT( int64 DTYPE$1, double VALUE$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$742:;
	FBSTRING S$1;
	__builtin_memset( &S$1, 0, 24ll );
	uint32 EXPVAL$1;
	EXPVAL$1 = (uint32)(*(uint64*)&VALUE$1 >> (32ll & 63ll));
	{
		if( (int64)EXPVAL$1 == 2146435072ll) goto label$746;
		label$747:;
		if( (int64)EXPVAL$1 != 4293918720ll) goto label$745;
		label$746:;
		{
			if( DTYPE$1 != 16ll) goto label$749;
			{
				if( ((int64)EXPVAL$1 & 2147483648ll) == 0ll) goto label$751;
				{
					fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)"(-__builtin_inf())", 19ll, 0 );
				}
				goto label$750;
				label$751:;
				{
					fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)"__builtin_inf()", 16ll, 0 );
				}
				label$750:;
			}
			goto label$748;
			label$749:;
			{
				if( ((int64)EXPVAL$1 & 2147483648ll) == 0ll) goto label$753;
				{
					fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)"(-__builtin_inff())", 20ll, 0 );
				}
				goto label$752;
				label$753:;
				{
					fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)"__builtin_inff()", 17ll, 0 );
				}
				label$752:;
			}
			label$748:;
		}
		goto label$744;
		label$745:;
		if( (int64)EXPVAL$1 == 2146959360ll) goto label$755;
		label$756:;
		if( (int64)EXPVAL$1 != 4294443008ll) goto label$754;
		label$755:;
		{
			if( DTYPE$1 != 16ll) goto label$758;
			{
				if( ((int64)EXPVAL$1 & 2147483648ll) == 0ll) goto label$760;
				{
					fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)"(-__builtin_nan( \x22\x22 ))", 23ll, 0 );
				}
				goto label$759;
				label$760:;
				{
					fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)"__builtin_nan( \x22\x22 )", 20ll, 0 );
				}
				label$759:;
			}
			goto label$757;
			label$758:;
			{
				if( ((int64)EXPVAL$1 & 2147483648ll) == 0ll) goto label$762;
				{
					fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)"(-__builtin_nanf( \x22\x22 ))", 24ll, 0 );
				}
				goto label$761;
				label$762:;
				{
					fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)"__builtin_nanf( \x22\x22 )", 21ll, 0 );
				}
				label$761:;
			}
			label$757:;
		}
		goto label$744;
		label$754:;
		{
			FBSTRING* vr$24 = HFLOATTOHEX_C99( VALUE$1 );
			fb_StrAssign( (void*)&S$1, -1ll, (void*)vr$24, -1ll, 0 );
			if( DTYPE$1 != 15ll) goto label$765;
			{
				fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)"f", 2ll, 0 );
			}
			label$765:;
			label$764:;
		}
		label$763:;
		label$744:;
	}
	fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)&S$1, -1ll, 0 );
	fb_StrDelete( (FBSTRING*)&S$1 );
	label$743:;
	FBSTRING* vr$31 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$31;
}

static void HBUILDSTRLIT( FBSTRING* LN$1, char* Z$1, int64 LENGTH$1, int64 PADDEDLENGTH$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$766:;
	int64 CH$1;
	fb_StrConcatByref( (void*)LN$1, -1ll, (void*)"\x22", 2ll, 0 );
	{
		int64 I$2;
		I$2 = 0ll;
		int64 TMP$586$2;
		TMP$586$2 = LENGTH$1 + -2ll;
		goto label$768;
		label$771:;
		{
			CH$1 = (int64)*(uint8*)((uint8*)Z$1 + I$2);
			int64 vr$3 = HCHARNEEDSESCAPING( CH$1, 34ll );
			if( vr$3 == 0ll) goto label$773;
			{
				FBSTRING TMP$588$4;
				FBSTRING* vr$4 = fb_HEXEx_l( (uint64)CH$1, 2 );
				__builtin_memset( &TMP$588$4, 0, 24ll );
				FBSTRING* vr$7 = fb_StrConcat( &TMP$588$4, (void*)"\x5Cx", 3ll, (void*)vr$4, -1ll );
				fb_StrConcatByref( (void*)LN$1, -1ll, (void*)vr$7, -1ll, 0 );
				int64 vr$10 = HISVALIDHEXDIGIT( (int64)*(uint8*)((uint8*)((uint8*)Z$1 + I$2) + 1ll) );
				if( vr$10 == 0ll) goto label$775;
				{
					fb_StrConcatByref( (void*)LN$1, -1ll, (void*)"\x22 \x22", 4ll, 0 );
				}
				label$775:;
				label$774:;
			}
			goto label$772;
			label$773:;
			if( (uint64)CH$1 != 63ull) goto label$776;
			{
				fb_StrConcatByref( (void*)LN$1, -1ll, (void*)"?", 2ll, 0 );
				if( (uint64)(int64)*(uint8*)((uint8*)((uint8*)Z$1 + I$2) + 1ll) != 63ull) goto label$778;
				{
					{
						uint8 TMP$591$6;
						TMP$591$6 = *(uint8*)((uint8*)((uint8*)Z$1 + I$2) + 2ll);
						if( (uint64)(int64)TMP$591$6 == 61ull) goto label$781;
						label$782:;
						if( (uint64)(int64)TMP$591$6 == 47ull) goto label$781;
						label$783:;
						if( (uint64)(int64)TMP$591$6 == 39ull) goto label$781;
						label$784:;
						if( (uint64)(int64)TMP$591$6 == 40ull) goto label$781;
						label$785:;
						if( (uint64)(int64)TMP$591$6 == 41ull) goto label$781;
						label$786:;
						if( (uint64)(int64)TMP$591$6 == 33ull) goto label$781;
						label$787:;
						if( (uint64)(int64)TMP$591$6 == 60ull) goto label$781;
						label$788:;
						if( (uint64)(int64)TMP$591$6 == 62ull) goto label$781;
						label$789:;
						if( (uint64)(int64)TMP$591$6 != 45ull) goto label$780;
						label$781:;
						{
							fb_StrConcatByref( (void*)LN$1, -1ll, (void*)"\x22 \x22", 4ll, 0 );
						}
						label$780:;
						label$779:;
					}
				}
				label$778:;
				label$777:;
			}
			goto label$772;
			label$776:;
			{
				FBSTRING* vr$23 = fb_CHR( 1, CH$1 );
				fb_StrConcatByref( (void*)LN$1, -1ll, (void*)vr$23, -1ll, 0 );
			}
			label$772:;
		}
		label$769:;
		I$2 = I$2 + 1ll;
		label$768:;
		if( I$2 <= TMP$586$2) goto label$771;
		label$770:;
	}
	if( PADDEDLENGTH$1 <= LENGTH$1) goto label$791;
	{
		FBSTRING* vr$26 = fb_SPACE( PADDEDLENGTH$1 - LENGTH$1 );
		fb_StrConcatByref( (void*)LN$1, -1ll, (void*)vr$26, -1ll, 0 );
	}
	label$791:;
	label$790:;
	fb_StrConcatByref( (void*)LN$1, -1ll, (void*)"\x22", 2ll, 0 );
	label$767:;
}

static uint64 HREADWSTRCHAR( uint32** SRC$1, const uint32* SRC_END$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	uint64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$792:;
	uint64 CH$1;
	int64 DIGITS$1;
	CH$1 = (uint64)*(*SRC$1);
	*SRC$1 = (uint32*)((uint8*)*SRC$1 + 4ll);
	if( CH$1 == 27ull) goto label$795;
	{
		fb$result$1 = CH$1;
		goto label$793;
	}
	label$795:;
	label$794:;
	if( *SRC$1 < SRC_END$1) goto label$797;
	{
		fb$result$1 = 27ull;
		goto label$793;
	}
	label$797:;
	label$796:;
	CH$1 = (uint64)*(*SRC$1);
	*SRC$1 = (uint32*)((uint8*)*SRC$1 + 4ll);
	if( ((int64)-(CH$1 >= 1ull) & (int64)-(CH$1 <= 11ull)) == 0ll) goto label$799;
	{
		DIGITS$1 = (int64)CH$1;
		CH$1 = 0ull;
		label$800:;
		if( ((int64)-(DIGITS$1 > 0ll) & (int64)-(*SRC$1 < SRC_END$1)) == 0ll) goto label$801;
		{
			CH$1 = (CH$1 << (3ull & 63ll)) + (uint64)((int64)*(*SRC$1) + -48ll);
			*SRC$1 = (uint32*)((uint8*)*SRC$1 + 4ll);
			DIGITS$1 = DIGITS$1 + -1ll;
		}
		goto label$800;
		label$801:;
		fb$result$1 = CH$1;
		goto label$793;
	}
	label$799:;
	label$798:;
	{
		uint64 TMP$599$2;
		TMP$599$2 = CH$1;
		goto label$803;
		label$804:;
		{
			DIGITS$1 = 4ll;
		}
		goto label$802;
		label$805:;
		{
			DIGITS$1 = 8ll;
		}
		goto label$802;
		label$806:;
		{
			fb$result$1 = 13ull;
			goto label$793;
		}
		goto label$802;
		label$807:;
		{
			fb$result$1 = 10ull;
			goto label$793;
		}
		goto label$802;
		label$808:;
		{
			fb$result$1 = 9ull;
			goto label$793;
		}
		goto label$802;
		label$809:;
		{
			fb$result$1 = 8ull;
			goto label$793;
		}
		goto label$802;
		label$810:;
		{
			fb$result$1 = 7ull;
			goto label$793;
		}
		goto label$802;
		label$811:;
		{
			fb$result$1 = 12ull;
			goto label$793;
		}
		goto label$802;
		label$812:;
		{
			fb$result$1 = 11ull;
			goto label$793;
		}
		goto label$802;
		label$813:;
		{
			fb$result$1 = CH$1;
			goto label$793;
		}
		goto label$802;
		label$803:;
		static const void* tmp$898[34ll] = {
			&&label$805,
			&&label$813,
			&&label$813,
			&&label$813,
			&&label$813,
			&&label$813,
			&&label$813,
			&&label$813,
			&&label$813,
			&&label$813,
			&&label$813,
			&&label$813,
			&&label$810,
			&&label$809,
			&&label$813,
			&&label$813,
			&&label$813,
			&&label$811,
			&&label$813,
			&&label$813,
			&&label$813,
			&&label$813,
			&&label$813,
			&&label$807,
			&&label$813,
			&&label$807,
			&&label$813,
			&&label$813,
			&&label$813,
			&&label$806,
			&&label$813,
			&&label$808,
			&&label$804,
			&&label$812,
		};
		if( (TMP$599$2 - 85ull) > 33ull ) goto label$813;
		goto *tmp$898[TMP$599$2 - 85ull];
		label$802:;
	}
	CH$1 = 0ull;
	label$814:;
	if( ((int64)-(DIGITS$1 > 0ll) & (int64)-(*SRC$1 < SRC_END$1)) == 0ll) goto label$815;
	{
		uint64 NIBBLE$2;
		NIBBLE$2 = (uint64)*(*SRC$1);
		*SRC$1 = (uint32*)((uint8*)*SRC$1 + 4ll);
		if( NIBBLE$2 <= 57ull) goto label$817;
		{
			NIBBLE$2 = NIBBLE$2 + 18446744073709551609ull;
		}
		label$817:;
		label$816:;
		if( NIBBLE$2 <= 16ull) goto label$819;
		{
			NIBBLE$2 = NIBBLE$2 + 18446744073709551584ull;
		}
		label$819:;
		label$818:;
		CH$1 = (CH$1 << (4ll & 63ll)) | (NIBBLE$2 & 15ull);
		DIGITS$1 = DIGITS$1 + -1ll;
	}
	goto label$814;
	label$815:;
	fb$result$1 = CH$1;
	label$793:;
	return fb$result$1;
}

static int64 HUSENUMERICWSTRLIT( void )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$820:;
	int64 vr$1 = FBTARGETWCHARISUTF32(  );
	int64 vr$2 = FBTARGETSUPPORTSCOFF(  );
	fb$result$1 = vr$1 & vr$2;
	label$821:;
	return fb$result$1;
}

static void HBUILDNUMERICWSTRLIT( FBSTRING* LN$1, uint32* W$1, int64 LENGTH$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING TMP$608$1;
	FBSTRING TMP$609$1;
	label$822:;
	uint64 CH$1;
	uint32* SRC$1;
	uint32* SRC_END$1;
	FBSTRING* vr$0 = HEMITTYPE( *(int64*)((uint8*)&ENV$ + 576ll), (struct $8FBSYMBOL*)0ull, 0ll );
	__builtin_memset( &TMP$608$1, 0, 24ll );
	FBSTRING* vr$3 = fb_StrConcat( &TMP$608$1, (void*)"(", 2ll, (void*)vr$0, -1ll );
	__builtin_memset( &TMP$609$1, 0, 24ll );
	FBSTRING* vr$6 = fb_StrConcat( &TMP$609$1, (void*)vr$3, -1ll, (void*)"[]){ ", 6ll );
	fb_StrConcatByref( (void*)LN$1, -1ll, (void*)vr$6, -1ll, 0 );
	SRC$1 = W$1;
	int64 vr$7 = fb_WstrLen( (uint32*)W$1 );
	SRC_END$1 = (uint32*)((uint8*)W$1 + (vr$7 << (2ll & 63ll)));
	{
		int64 I$2;
		I$2 = 0ll;
		int64 TMP$610$2;
		TMP$610$2 = LENGTH$1 + -1ll;
		goto label$824;
		label$827:;
		{
			if( I$2 <= 0ll) goto label$829;
			{
				fb_StrConcatByref( (void*)LN$1, -1ll, (void*)", ", 3ll, 0 );
			}
			label$829:;
			label$828:;
			if( SRC$1 >= SRC_END$1) goto label$831;
			{
				uint64 vr$12 = HREADWSTRCHAR( &SRC$1, (uint32*)SRC_END$1 );
				CH$1 = vr$12;
			}
			goto label$830;
			label$831:;
			{
				CH$1 = 0ull;
			}
			label$830:;
			FBSTRING* vr$13 = HEMITINT( *(int64*)((uint8*)&ENV$ + 576ll), (int64)CH$1 );
			fb_StrConcatByref( (void*)LN$1, -1ll, (void*)vr$13, -1ll, 0 );
		}
		label$825:;
		I$2 = I$2 + 1ll;
		label$824:;
		if( I$2 <= TMP$610$2) goto label$827;
		label$826:;
	}
	fb_StrConcatByref( (void*)LN$1, -1ll, (void*)" }", 3ll, 0 );
	label$823:;
}

static void HBUILDWSTRLIT( FBSTRING* LN$1, uint32* W$1, int64 LENGTH$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING TMP$613$1;
	label$832:;
	uint64 CH$1;
	int64 WCHARSIZE$1;
	uint32* SRC$1;
	uint32* SRC_END$1;
	char* STRSTART$1;
	int64 vr$0 = HUSENUMERICWSTRLIT(  );
	if( vr$0 == 0ll) goto label$835;
	{
		HBUILDNUMERICWSTRLIT( LN$1, W$1, LENGTH$1 );
		goto label$833;
	}
	label$835:;
	label$834:;
	int64 vr$1 = FBGETTARGETWCHARSIZE(  );
	WCHARSIZE$1 = vr$1;
	if( WCHARSIZE$1 != 1ll) goto label$837;
	{
		STRSTART$1 = (char*)"\x22";
	}
	goto label$836;
	label$837:;
	{
		STRSTART$1 = (char*)"L\x22";
	}
	label$836:;
	__builtin_memset( &TMP$613$1, 0, 24ll );
	FBSTRING* vr$4 = fb_StrConcat( &TMP$613$1, (void*)LN$1, -1ll, (void*)STRSTART$1, 0ll );
	fb_StrAssign( (void*)LN$1, -1ll, (void*)vr$4, -1ll, 0 );
	SRC$1 = W$1;
	int64 vr$5 = fb_WstrLen( (uint32*)W$1 );
	SRC_END$1 = (uint32*)((uint8*)W$1 + (vr$5 << (2ll & 63ll)));
	{
		int64 I$2;
		I$2 = 0ll;
		int64 TMP$614$2;
		TMP$614$2 = LENGTH$1 + -2ll;
		goto label$838;
		label$841:;
		{
			if( SRC$1 < SRC_END$1) goto label$843;
			{
				goto label$840;
			}
			label$843:;
			label$842:;
			uint64 vr$10 = HREADWSTRCHAR( &SRC$1, (uint32*)SRC_END$1 );
			CH$1 = vr$10;
			int64 vr$11 = HCHARNEEDSESCAPING( (int64)CH$1, 34ll );
			if( vr$11 == 0ll) goto label$845;
			{
				FBSTRING TMP$615$4;
				FBSTRING TMP$617$4;
				FBSTRING TMP$618$4;
				FBSTRING* vr$14 = fb_HEXEx_l( CH$1, (int32)(WCHARSIZE$1 << (1ll & 63ll)) );
				__builtin_memset( &TMP$615$4, 0, 24ll );
				FBSTRING* vr$17 = fb_StrConcat( &TMP$615$4, (void*)"\x5Cx", 3ll, (void*)vr$14, -1ll );
				fb_StrConcatByref( (void*)LN$1, -1ll, (void*)vr$17, -1ll, 0 );
				__builtin_memset( &TMP$617$4, 0, 24ll );
				FBSTRING* vr$20 = fb_StrConcat( &TMP$617$4, (void*)"\x22 ", 3ll, (void*)STRSTART$1, 0ll );
				__builtin_memset( &TMP$618$4, 0, 24ll );
				FBSTRING* vr$23 = fb_StrConcat( &TMP$618$4, (void*)LN$1, -1ll, (void*)vr$20, -1ll );
				fb_StrAssign( (void*)LN$1, -1ll, (void*)vr$23, -1ll, 0 );
			}
			goto label$844;
			label$845:;
			if( CH$1 != 63ull) goto label$846;
			{
				int64 TMP$619$4;
				fb_StrConcatByref( (void*)LN$1, -1ll, (void*)"?", 2ll, 0 );
				if( SRC$1 >= SRC_END$1) goto label$847;
				TMP$619$4 = (int64)-((uint64)(int64)*SRC$1 == 63ull);
				goto label$1536;
				label$847:;
				TMP$619$4 = 0ll;
				label$1536:;
				if( TMP$619$4 == 0ll) goto label$849;
				{
					{
						int64 TMP$620$6;
						int64 vr$28 = fb_WstrValLng( (uint32*)((uint8*)SRC$1 + 4ll) );
						TMP$620$6 = vr$28;
						if( (uint64)TMP$620$6 == 61ull) goto label$852;
						label$853:;
						if( (uint64)TMP$620$6 == 47ull) goto label$852;
						label$854:;
						if( (uint64)TMP$620$6 == 39ull) goto label$852;
						label$855:;
						if( (uint64)TMP$620$6 == 40ull) goto label$852;
						label$856:;
						if( (uint64)TMP$620$6 == 41ull) goto label$852;
						label$857:;
						if( (uint64)TMP$620$6 == 33ull) goto label$852;
						label$858:;
						if( (uint64)TMP$620$6 == 60ull) goto label$852;
						label$859:;
						if( (uint64)TMP$620$6 == 62ull) goto label$852;
						label$860:;
						if( (uint64)TMP$620$6 != 45ull) goto label$851;
						label$852:;
						{
							FBSTRING TMP$621$7;
							FBSTRING TMP$622$7;
							__builtin_memset( &TMP$621$7, 0, 24ll );
							FBSTRING* vr$31 = fb_StrConcat( &TMP$621$7, (void*)"\x22 ", 3ll, (void*)STRSTART$1, 0ll );
							__builtin_memset( &TMP$622$7, 0, 24ll );
							FBSTRING* vr$34 = fb_StrConcat( &TMP$622$7, (void*)LN$1, -1ll, (void*)vr$31, -1ll );
							fb_StrAssign( (void*)LN$1, -1ll, (void*)vr$34, -1ll, 0 );
						}
						label$851:;
						label$850:;
					}
				}
				label$849:;
				label$848:;
			}
			goto label$844;
			label$846:;
			{
				FBSTRING* vr$35 = fb_CHR( 1, (int64)CH$1 );
				fb_StrConcatByref( (void*)LN$1, -1ll, (void*)vr$35, -1ll, 0 );
			}
			label$844:;
		}
		label$839:;
		I$2 = I$2 + 1ll;
		label$838:;
		if( I$2 <= TMP$614$2) goto label$841;
		label$840:;
	}
	fb_StrConcatByref( (void*)LN$1, -1ll, (void*)"\x22", 2ll, 0 );
	label$833:;
}

static char* HBOPTOSTR( int64 OP$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	char* fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$861:;
	{
		uint64 TMP$623$2;
		TMP$623$2 = (uint64)OP$1;
		goto label$864;
		label$865:;
		{
			fb$result$1 = (char*)" + ";
		}
		goto label$863;
		label$866:;
		{
			fb$result$1 = (char*)" - ";
		}
		goto label$863;
		label$867:;
		{
			fb$result$1 = (char*)" * ";
		}
		goto label$863;
		label$868:;
		{
			fb$result$1 = (char*)" / ";
		}
		goto label$863;
		label$869:;
		{
			fb$result$1 = (char*)" / ";
		}
		goto label$863;
		label$870:;
		{
			fb$result$1 = (char*)" % ";
		}
		goto label$863;
		label$871:;
		{
			fb$result$1 = (char*)" << ";
		}
		goto label$863;
		label$872:;
		{
			fb$result$1 = (char*)" >> ";
		}
		goto label$863;
		label$873:;
		{
			fb$result$1 = (char*)" & ";
		}
		goto label$863;
		label$874:;
		{
			fb$result$1 = (char*)" | ";
		}
		goto label$863;
		label$875:;
		{
			fb$result$1 = (char*)" ^ ";
		}
		goto label$863;
		label$876:;
		{
			fb$result$1 = (char*)" == ";
		}
		goto label$863;
		label$877:;
		{
			fb$result$1 = (char*)" > ";
		}
		goto label$863;
		label$878:;
		{
			fb$result$1 = (char*)" < ";
		}
		goto label$863;
		label$879:;
		{
			fb$result$1 = (char*)" != ";
		}
		goto label$863;
		label$880:;
		{
			fb$result$1 = (char*)" >= ";
		}
		goto label$863;
		label$881:;
		{
			fb$result$1 = (char*)" <= ";
		}
		goto label$863;
		label$864:;
		static const void* tmp$899[23ll] = {
			&&label$865,
			&&label$866,
			&&label$867,
			&&label$868,
			&&label$869,
			&&label$870,
			&&label$873,
			&&label$874,
			&&label$863,
			&&label$863,
			&&label$875,
			&&label$863,
			&&label$863,
			&&label$871,
			&&label$872,
			&&label$863,
			&&label$863,
			&&label$876,
			&&label$877,
			&&label$878,
			&&label$879,
			&&label$880,
			&&label$881,
		};
		if( (TMP$623$2 - 28ull) > 22ull ) goto label$863;
		goto *tmp$899[TMP$623$2 - 28ull];
		label$863:;
	}
	label$862:;
	return fb$result$1;
}

static char* HUOPTOSTR( int64 OP$1, int64 DTYPE$1, int64* IS_BUILTIN$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	char* fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$882:;
	*IS_BUILTIN$1 = 0ll;
	{
		if( OP$1 != 22ll) goto label$885;
		label$886:;
		{
			fb$result$1 = (char*)"&";
		}
		goto label$884;
		label$885:;
		if( OP$1 != 77ll) goto label$887;
		label$888:;
		{
			fb$result$1 = (char*)"*";
		}
		goto label$884;
		label$887:;
		if( OP$1 != 55ll) goto label$889;
		label$890:;
		{
			fb$result$1 = (char*)"-";
		}
		goto label$884;
		label$889:;
		if( OP$1 != 52ll) goto label$891;
		label$892:;
		{
			fb$result$1 = (char*)"~";
		}
		goto label$884;
		label$891:;
		if( OP$1 != 53ll) goto label$893;
		label$894:;
		{
			fb$result$1 = (char*)"!";
		}
		goto label$884;
		label$893:;
		if( OP$1 != 57ll) goto label$895;
		label$896:;
		{
			*IS_BUILTIN$1 = -1ll;
			{
				int64 TMP$642$4;
				uint64 TMP$643$4;
				if( (DTYPE$1 & 480ll) == 0ll) goto label$897;
				TMP$642$4 = 24ll;
				goto label$1537;
				label$897:;
				TMP$642$4 = DTYPE$1 & 31ll;
				label$1537:;
				TMP$643$4 = *(uint64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$642$4 * 56ll)) + 40ll);
				goto label$899;
				label$900:;
				{
					fb$result$1 = (char*)"__builtin_fabsf";
				}
				goto label$898;
				label$901:;
				{
					fb$result$1 = (char*)"__builtin_fabs";
				}
				goto label$898;
				label$902:;
				{
					fb$result$1 = (char*)"__builtin_llabs";
				}
				goto label$898;
				label$903:;
				{
					fb$result$1 = (char*)"__builtin_abs";
				}
				goto label$898;
				label$899:;
				static const void* tmp$900[4ll] = {
					&&label$902,
					&&label$902,
					&&label$900,
					&&label$901,
				};
				if( (TMP$643$4 - 7ull) > 3ull ) goto label$903;
				goto *tmp$900[TMP$643$4 - 7ull];
				label$898:;
			}
		}
		goto label$884;
		label$895:;
		{
			*IS_BUILTIN$1 = -1ll;
			if( (DTYPE$1 & 511ll) != 15ll) goto label$906;
			{
				{
					uint64 TMP$648$5;
					TMP$648$5 = (uint64)OP$1;
					goto label$908;
					label$909:;
					{
						fb$result$1 = (char*)"__builtin_sinf";
					}
					goto label$907;
					label$910:;
					{
						fb$result$1 = (char*)"__builtin_asinf";
					}
					goto label$907;
					label$911:;
					{
						fb$result$1 = (char*)"__builtin_cosf";
					}
					goto label$907;
					label$912:;
					{
						fb$result$1 = (char*)"__builtin_acosf";
					}
					goto label$907;
					label$913:;
					{
						fb$result$1 = (char*)"__builtin_tanf";
					}
					goto label$907;
					label$914:;
					{
						fb$result$1 = (char*)"__builtin_atanf";
					}
					goto label$907;
					label$915:;
					{
						fb$result$1 = (char*)"__builtin_sqrtf";
					}
					goto label$907;
					label$916:;
					{
						fb$result$1 = (char*)"__builtin_logf";
					}
					goto label$907;
					label$917:;
					{
						fb$result$1 = (char*)"__builtin_expf";
					}
					goto label$907;
					label$918:;
					{
						fb$result$1 = (char*)"__builtin_floorf";
					}
					goto label$907;
					label$919:;
					{
					}
					goto label$907;
					label$908:;
					static const void* tmp$901[13ll] = {
						&&label$909,
						&&label$910,
						&&label$911,
						&&label$912,
						&&label$913,
						&&label$914,
						&&label$919,
						&&label$915,
						&&label$919,
						&&label$919,
						&&label$916,
						&&label$917,
						&&label$918,
					};
					if( (TMP$648$5 - 59ull) > 12ull ) goto label$919;
					goto *tmp$901[TMP$648$5 - 59ull];
					label$907:;
				}
			}
			goto label$905;
			label$906:;
			{
				{
					uint64 TMP$659$5;
					TMP$659$5 = (uint64)OP$1;
					goto label$921;
					label$922:;
					{
						fb$result$1 = (char*)"__builtin_sin";
					}
					goto label$920;
					label$923:;
					{
						fb$result$1 = (char*)"__builtin_asin";
					}
					goto label$920;
					label$924:;
					{
						fb$result$1 = (char*)"__builtin_cos";
					}
					goto label$920;
					label$925:;
					{
						fb$result$1 = (char*)"__builtin_acos";
					}
					goto label$920;
					label$926:;
					{
						fb$result$1 = (char*)"__builtin_tan";
					}
					goto label$920;
					label$927:;
					{
						fb$result$1 = (char*)"__builtin_atan";
					}
					goto label$920;
					label$928:;
					{
						fb$result$1 = (char*)"__builtin_sqrt";
					}
					goto label$920;
					label$929:;
					{
						fb$result$1 = (char*)"__builtin_log";
					}
					goto label$920;
					label$930:;
					{
						fb$result$1 = (char*)"__builtin_exp";
					}
					goto label$920;
					label$931:;
					{
						fb$result$1 = (char*)"__builtin_floor";
					}
					goto label$920;
					label$932:;
					{
					}
					goto label$920;
					label$921:;
					static const void* tmp$902[13ll] = {
						&&label$922,
						&&label$923,
						&&label$924,
						&&label$925,
						&&label$926,
						&&label$927,
						&&label$932,
						&&label$928,
						&&label$932,
						&&label$932,
						&&label$929,
						&&label$930,
						&&label$931,
					};
					if( (TMP$659$5 - 59ull) > 12ull ) goto label$932;
					goto *tmp$902[TMP$659$5 - 59ull];
					label$920:;
				}
			}
			label$905:;
		}
		label$904:;
		label$884:;
	}
	label$883:;
	return fb$result$1;
}

static void HIMM2TEXT( FBSTRING* S$1, struct $8EXPRNODE* N$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 TMP$670$1;
	label$933:;
	if( (*(int64*)((uint8*)N$1 + 8ll) & 480ll) == 0ll) goto label$935;
	TMP$670$1 = 24ll;
	goto label$1538;
	label$935:;
	TMP$670$1 = *(int64*)((uint8*)N$1 + 8ll) & 31ll;
	label$1538:;
	if( *(int64*)((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$670$1 * 56ll)) != 1ll) goto label$937;
	{
		FBSTRING TMP$671$2;
		FBSTRING* vr$7 = HEMITFLOAT( *(int64*)((uint8*)N$1 + 8ll), *(double*)((uint8*)N$1 + 40ll) );
		__builtin_memset( &TMP$671$2, 0, 24ll );
		FBSTRING* vr$10 = fb_StrConcat( &TMP$671$2, (void*)S$1, -1ll, (void*)vr$7, -1ll );
		fb_StrAssign( (void*)S$1, -1ll, (void*)vr$10, -1ll, 0 );
	}
	goto label$936;
	label$937:;
	{
		FBSTRING TMP$672$2;
		FBSTRING* vr$13 = HEMITINT( *(int64*)((uint8*)N$1 + 8ll), *(int64*)((uint8*)N$1 + 40ll) );
		__builtin_memset( &TMP$672$2, 0, 24ll );
		FBSTRING* vr$16 = fb_StrConcat( &TMP$672$2, (void*)S$1, -1ll, (void*)vr$13, -1ll );
		fb_StrAssign( (void*)S$1, -1ll, (void*)vr$16, -1ll, 0 );
	}
	label$936:;
	label$934:;
}

static void HSYM2TEXT( FBSTRING* S$1, struct $8FBSYMBOL* SYM$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$938:;
	if( (*(int64*)((uint8*)SYM$1 + 8ll) & 1024ll) == 0ll) goto label$941;
	{
		if( (*(int64*)((uint8*)SYM$1 + 56ll) & 511ll) != 7ll) goto label$943;
		{
			int64 vr$4 = FBTARGETWCHARISUTF32(  );
			if( vr$4 == 0ll) goto label$945;
			{
				int64 vr$5 = SYMBGETWSTRLENGTH( SYM$1 );
				HBUILDWSTRLIT( S$1, *(uint32**)((uint8*)SYM$1 + 96ll), vr$5 + 1ll );
			}
			goto label$944;
			label$945:;
			{
				int64 TMP$673$4;
				int64 vr$8 = SYMBGETWSTRLENGTH( SYM$1 );
				TMP$673$4 = 0ll;
				uint32* vr$12 = HUNESCAPEW( *(uint32**)((uint8*)SYM$1 + 96ll), &TMP$673$4 );
				HBUILDWSTRLIT( S$1, vr$12, vr$8 + 1ll );
			}
			label$944:;
		}
		goto label$942;
		label$943:;
		{
			int64 TMP$674$3;
			int64 vr$13 = SYMBGETSTRLENGTH( SYM$1 );
			TMP$674$3 = 0ll;
			char* vr$17 = HUNESCAPE( *(char**)((uint8*)SYM$1 + 96ll), &TMP$674$3 );
			HBUILDSTRLIT( S$1, vr$17, vr$13 + 1ll, 0ll );
		}
		label$942:;
	}
	goto label$940;
	label$941:;
	{
		FBSTRING TMP$676$2;
		if( *(int64*)SYM$1 != 7ll) goto label$947;
		{
			fb_StrConcatByref( (void*)S$1, -1ll, (void*)"&&", 3ll, 0 );
		}
		goto label$946;
		label$947:;
		if( *(int64*)SYM$1 != 3ll) goto label$948;
		{
			fb_StrConcatByref( (void*)S$1, -1ll, (void*)"&", 2ll, 0 );
		}
		label$948:;
		label$946:;
		char* vr$20 = SYMBGETMANGLEDNAME( SYM$1 );
		__builtin_memset( &TMP$676$2, 0, 24ll );
		FBSTRING* vr$23 = fb_StrConcat( &TMP$676$2, (void*)S$1, -1ll, (void*)vr$20, 0ll );
		fb_StrAssign( (void*)S$1, -1ll, (void*)vr$23, -1ll, 0 );
	}
	label$940:;
	label$939:;
}

static void HEXPRFLUSH( struct $8EXPRNODE* N$1, int64 NEED_PARENS$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$949:;
	struct $8EXPRNODE* L$1;
	struct $8FBSYMBOL* SYM$1;
	int64 IS_BUILTIN$1;
	{
		uint64 TMP$677$2;
		TMP$677$2 = *(uint64*)N$1;
		goto label$952;
		label$953:;
		{
			FBSTRING TMP$678$3;
			__builtin_memset( &TMP$678$3, 0, 24ll );
			FBSTRING* vr$5 = fb_StrConcat( &TMP$678$3, (void*)((uint8*)&CTX$ + 5424ll), -1ll, *(void**)((uint8*)N$1 + 40ll), 0ll );
			fb_StrAssign( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)vr$5, -1ll, 0 );
		}
		goto label$951;
		label$954:;
		{
			HIMM2TEXT( (FBSTRING*)((uint8*)&CTX$ + 5424ll), N$1 );
		}
		goto label$951;
		label$955:;
		{
			HSYM2TEXT( (FBSTRING*)((uint8*)&CTX$ + 5424ll), *(struct $8FBSYMBOL**)((uint8*)N$1 + 40ll) );
		}
		goto label$951;
		label$956:;
		{
			FBSTRING TMP$679$3;
			FBSTRING TMP$680$3;
			FBSTRING TMP$681$3;
			FBSTRING* vr$12 = HEMITTYPE( *(int64*)((uint8*)N$1 + 8ll), *(struct $8FBSYMBOL**)((uint8*)N$1 + 16ll), 0ll );
			__builtin_memset( &TMP$679$3, 0, 24ll );
			FBSTRING* vr$15 = fb_StrConcat( &TMP$679$3, (void*)"(", 2ll, (void*)vr$12, -1ll );
			__builtin_memset( &TMP$680$3, 0, 24ll );
			FBSTRING* vr$18 = fb_StrConcat( &TMP$680$3, (void*)vr$15, -1ll, (void*)")", 2ll );
			__builtin_memset( &TMP$681$3, 0, 24ll );
			FBSTRING* vr$22 = fb_StrConcat( &TMP$681$3, (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)vr$18, -1ll );
			fb_StrAssign( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)vr$22, -1ll, 0 );
			HEXPRFLUSH( *(struct $8EXPRNODE**)((uint8*)N$1 + 24ll), -1ll );
		}
		goto label$951;
		label$957:;
		{
			{
				int64 TMP$682$4;
				TMP$682$4 = *(int64*)((uint8*)N$1 + 40ll);
				if( TMP$682$4 != 113ll) goto label$959;
				label$960:;
				{
					FBSTRING TMP$684$5;
					fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)"__builtin_va_arg( ", 19ll, 0 );
					HEXPRFLUSH( *(struct $8EXPRNODE**)((uint8*)N$1 + 24ll), -1ll );
					fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)", ", 3ll, 0 );
					FBSTRING* vr$31 = HEMITTYPE( *(int64*)((uint8*)N$1 + 8ll), *(struct $8FBSYMBOL**)((uint8*)N$1 + 16ll), 0ll );
					__builtin_memset( &TMP$684$5, 0, 24ll );
					FBSTRING* vr$35 = fb_StrConcat( &TMP$684$5, (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)vr$31, -1ll );
					fb_StrAssign( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)vr$35, -1ll, 0 );
					fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)")", 2ll, 0 );
				}
				goto label$958;
				label$959:;
				if( TMP$682$4 != 110ll) goto label$961;
				label$962:;
				{
					fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)"__builtin_va_start( ", 21ll, 0 );
					HEXPRFLUSH( *(struct $8EXPRNODE**)((uint8*)N$1 + 24ll), -1ll );
					fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)", ", 3ll, 0 );
					HEXPRFLUSH( *(struct $8EXPRNODE**)((uint8*)N$1 + 32ll), -1ll );
					fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)")", 2ll, 0 );
				}
				goto label$958;
				label$961:;
				if( TMP$682$4 != 111ll) goto label$963;
				label$964:;
				{
					fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)"__builtin_va_end( ", 19ll, 0 );
					HEXPRFLUSH( *(struct $8EXPRNODE**)((uint8*)N$1 + 24ll), -1ll );
					fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)")", 2ll, 0 );
				}
				goto label$958;
				label$963:;
				if( TMP$682$4 != 112ll) goto label$965;
				label$966:;
				{
					fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)"__builtin_va_copy( ", 20ll, 0 );
					HEXPRFLUSH( *(struct $8EXPRNODE**)((uint8*)N$1 + 24ll), -1ll );
					fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)", ", 3ll, 0 );
					HEXPRFLUSH( *(struct $8EXPRNODE**)((uint8*)N$1 + 32ll), -1ll );
					fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)")", 2ll, 0 );
				}
				goto label$958;
				label$965:;
				{
				}
				label$967:;
				label$958:;
			}
		}
		goto label$951;
		label$968:;
		{
			FBSTRING TMP$688$3;
			char* vr$54 = HUOPTOSTR( *(int64*)((uint8*)N$1 + 40ll), *(int64*)((uint8*)N$1 + 8ll), &IS_BUILTIN$1 );
			__builtin_memset( &TMP$688$3, 0, 24ll );
			FBSTRING* vr$58 = fb_StrConcat( &TMP$688$3, (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)vr$54, 0ll );
			fb_StrAssign( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)vr$58, -1ll, 0 );
			NEED_PARENS$1 = (int64)-(*(int64*)*(struct $8EXPRNODE**)((uint8*)N$1 + 24ll) == 4ll) | IS_BUILTIN$1;
			if( NEED_PARENS$1 == 0ll) goto label$970;
			{
				fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)"(", 2ll, 0 );
				if( IS_BUILTIN$1 == 0ll) goto label$972;
				{
					fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)" ", 2ll, 0 );
				}
				label$972:;
				label$971:;
			}
			label$970:;
			label$969:;
			HEXPRFLUSH( *(struct $8EXPRNODE**)((uint8*)N$1 + 24ll), -1ll );
			if( NEED_PARENS$1 == 0ll) goto label$974;
			{
				if( IS_BUILTIN$1 == 0ll) goto label$976;
				{
					fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)" ", 2ll, 0 );
				}
				label$976:;
				label$975:;
				fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)")", 2ll, 0 );
			}
			label$974:;
			label$973:;
		}
		goto label$951;
		label$977:;
		{
			{
				int64 TMP$689$4;
				TMP$689$4 = *(int64*)((uint8*)N$1 + 40ll);
				if( TMP$689$4 != 65ll) goto label$979;
				label$980:;
				{
					if( *(int64*)((uint8*)N$1 + 8ll) != 15ll) goto label$982;
					{
						fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)"__builtin_atan2f", 17ll, 0 );
					}
					goto label$981;
					label$982:;
					{
						fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)"__builtin_atan2", 16ll, 0 );
					}
					label$981:;
					fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)"(", 2ll, 0 );
					HEXPRFLUSH( *(struct $8EXPRNODE**)((uint8*)N$1 + 24ll), 0ll );
					fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)", ", 3ll, 0 );
					HEXPRFLUSH( *(struct $8EXPRNODE**)((uint8*)N$1 + 32ll), 0ll );
					fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)")", 2ll, 0 );
				}
				goto label$978;
				label$979:;
				{
					FBSTRING TMP$692$5;
					if( NEED_PARENS$1 == 0ll) goto label$985;
					{
						fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)"(", 2ll, 0 );
					}
					label$985:;
					label$984:;
					HEXPRFLUSH( *(struct $8EXPRNODE**)((uint8*)N$1 + 24ll), -1ll );
					char* vr$81 = HBOPTOSTR( *(int64*)((uint8*)N$1 + 40ll) );
					__builtin_memset( &TMP$692$5, 0, 24ll );
					FBSTRING* vr$85 = fb_StrConcat( &TMP$692$5, (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)vr$81, 0ll );
					fb_StrAssign( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)vr$85, -1ll, 0 );
					HEXPRFLUSH( *(struct $8EXPRNODE**)((uint8*)N$1 + 32ll), -1ll );
					if( NEED_PARENS$1 == 0ll) goto label$987;
					{
						fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)")", 2ll, 0 );
					}
					label$987:;
					label$986:;
				}
				label$983:;
				label$978:;
			}
		}
		goto label$951;
		label$952:;
		static const void* tmp$903[7ll] = {
			&&label$953,
			&&label$954,
			&&label$955,
			&&label$956,
			&&label$968,
			&&label$977,
			&&label$957,
		};
		if( TMP$677$2 > 6ull ) goto label$951;
		goto *tmp$903[TMP$677$2 - 0ull];
		label$951:;
	}
	label$950:;
}

static FBSTRING* EXPRFLUSH( struct $8EXPRNODE* N$1, int64 NEED_PARENS$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$988:;
	HEXPRFLUSH( N$1, NEED_PARENS$1 );
	fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)((uint8*)&CTX$ + 5424ll), -1ll, 0 );
	fb_StrAssign( (void*)((uint8*)&CTX$ + 5424ll), -1ll, (void*)"", 1ll, 0 );
	EXPRFREETREE( N$1 );
	label$989:;
	FBSTRING* vr$5 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$5;
}

static struct $8EXPRNODE* EXPRNEWOFFSET( struct $8FBSYMBOL* SYM$1, int64 OFS$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	struct $8EXPRNODE* fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$990:;
	struct $8EXPRNODE* L$1;
	struct $8EXPRNODE* vr$1 = EXPRNEWSYM( SYM$1 );
	L$1 = vr$1;
	int64 vr$5 = SYMBISCARRAY( SYM$1 );
	if( ((((int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 512ll) != 0ll) | vr$5) | (int64)-(*(int64*)SYM$1 == 3ll)) | (int64)-(*(int64*)SYM$1 == 7ll)) != 0ll) goto label$993;
	{
		struct $8EXPRNODE* vr$13 = EXPRNEWUOP( 22ll, L$1 );
		L$1 = vr$13;
	}
	label$993:;
	label$992:;
	if( OFS$1 == 0ll) goto label$995;
	{
		struct $8EXPRNODE* vr$14 = EXPRNEWCAST( 35ll, (struct $8FBSYMBOL*)0ull, L$1 );
		L$1 = vr$14;
		struct $8EXPRNODE* vr$15 = EXPRNEWIMMI( OFS$1, 8ll );
		struct $8EXPRNODE* vr$16 = EXPRNEWBOP( 28ll, L$1, vr$15 );
		L$1 = vr$16;
	}
	label$995:;
	label$994:;
	fb$result$1 = L$1;
	label$991:;
	return fb$result$1;
}

static int64 HISSCALARLOADTYPE( int64 DTYPE$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$996:;
	{
		int64 TMP$693$2;
		uint64 TMP$694$2;
		if( (DTYPE$1 & 480ll) == 0ll) goto label$998;
		TMP$693$2 = 24ll;
		goto label$1539;
		label$998:;
		TMP$693$2 = DTYPE$1 & 31ll;
		label$1539:;
		TMP$694$2 = *(uint64*)((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$693$2 * 56ll));
		goto label$1000;
		label$1001:;
		{
			fb$result$1 = -1ll;
		}
		goto label$999;
		label$1002:;
		{
			fb$result$1 = 0ll;
		}
		goto label$999;
		label$1000:;
		static const void* tmp$904[2ll] = {
			&&label$1001,
			&&label$1001,
		};
		if( TMP$694$2 > 1ull ) goto label$1002;
		goto *tmp$904[TMP$694$2 - 0ull];
		label$999:;
	}
	label$997:;
	return fb$result$1;
}

static int64 HNORMALIZEOFFSETMOD( int64 OFS$1, int64 ALIGN$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$1003:;
	int64 N$1;
	N$1 = OFS$1 % ALIGN$1;
	if( N$1 >= 0ll) goto label$1006;
	{
		N$1 = N$1 + ALIGN$1;
	}
	label$1006:;
	label$1005:;
	fb$result$1 = N$1;
	label$1004:;
	return fb$result$1;
}

static int64 HEXPRCONSTOFFSETMOD( struct $8EXPRNODE* N$1, int64 ALIGN$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$1007:;
	{
		uint64 TMP$695$2;
		TMP$695$2 = *(uint64*)N$1;
		goto label$1010;
		label$1011:;
		{
			int64 vr$3 = HNORMALIZEOFFSETMOD( *(int64*)((uint8*)N$1 + 40ll), ALIGN$1 );
			fb$result$1 = vr$3;
		}
		goto label$1009;
		label$1012:;
		{
			int64 vr$5 = HEXPRCONSTOFFSETMOD( *(struct $8EXPRNODE**)((uint8*)N$1 + 24ll), ALIGN$1 );
			fb$result$1 = vr$5;
		}
		goto label$1009;
		label$1013:;
		{
			{
				uint64 TMP$696$4;
				TMP$696$4 = *(uint64*)((uint8*)N$1 + 40ll);
				goto label$1015;
				label$1016:;
				{
					int64 vr$8 = HEXPRCONSTOFFSETMOD( *(struct $8EXPRNODE**)((uint8*)N$1 + 24ll), ALIGN$1 );
					int64 vr$10 = HEXPRCONSTOFFSETMOD( *(struct $8EXPRNODE**)((uint8*)N$1 + 32ll), ALIGN$1 );
					int64 vr$12 = HNORMALIZEOFFSETMOD( vr$8 + vr$10, ALIGN$1 );
					fb$result$1 = vr$12;
				}
				goto label$1014;
				label$1017:;
				{
					int64 vr$14 = HEXPRCONSTOFFSETMOD( *(struct $8EXPRNODE**)((uint8*)N$1 + 24ll), ALIGN$1 );
					int64 vr$16 = HEXPRCONSTOFFSETMOD( *(struct $8EXPRNODE**)((uint8*)N$1 + 32ll), ALIGN$1 );
					int64 vr$18 = HNORMALIZEOFFSETMOD( vr$14 - vr$16, ALIGN$1 );
					fb$result$1 = vr$18;
				}
				goto label$1014;
				label$1015:;
				static const void* tmp$905[2ll] = {
					&&label$1016,
					&&label$1017,
				};
				if( (TMP$696$4 - 28ull) > 1ull ) goto label$1014;
				goto *tmp$905[TMP$696$4 - 28ull];
				label$1014:;
			}
		}
		goto label$1009;
		label$1010:;
		static const void* tmp$906[5ll] = {
			&&label$1011,
			&&label$1009,
			&&label$1012,
			&&label$1012,
			&&label$1013,
		};
		if( (TMP$695$2 - 1ull) > 4ull ) goto label$1009;
		goto *tmp$906[TMP$695$2 - 1ull];
		label$1009:;
	}
	label$1008:;
	return fb$result$1;
}

static int64 HSYMBASEMAYBEUNALIGNED( struct $8FBSYMBOL* SYM$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 TMP$698$1;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$1018:;
	if( SYM$1 != (struct $8FBSYMBOL*)0ull) goto label$1021;
	{
		fb$result$1 = 0ll;
		goto label$1019;
	}
	label$1021:;
	label$1020:;
	if( (*(int64*)((uint8*)SYM$1 + 8ll) & 262144ll) == 0ll) goto label$1023;
	{
		fb$result$1 = -1ll;
		goto label$1019;
	}
	label$1023:;
	label$1022:;
	if( *(int64*)SYM$1 != 4ll) goto label$1025;
	{
		{
			$12FB_PARAMMODE TMP$697$3;
			TMP$697$3 = *($12FB_PARAMMODE*)((uint8*)SYM$1 + 96ll);
			if( TMP$697$3 == 2ll) goto label$1028;
			label$1029:;
			if( TMP$697$3 != 3ll) goto label$1027;
			label$1028:;
			{
				fb$result$1 = -1ll;
				goto label$1019;
			}
			label$1027:;
			label$1026:;
		}
	}
	label$1025:;
	label$1024:;
	if( (*(int64*)((uint8*)SYM$1 + 56ll) & 480ll) == 0ll) goto label$1030;
	TMP$698$1 = 24ll;
	goto label$1540;
	label$1030:;
	TMP$698$1 = *(int64*)((uint8*)SYM$1 + 56ll) & 31ll;
	label$1540:;
	if( TMP$698$1 == 20ll) goto label$1032;
	{
		fb$result$1 = 0ll;
		goto label$1019;
	}
	label$1032:;
	label$1031:;
	if( *(struct $8FBSYMBOL**)((uint8*)SYM$1 + 64ll) != (struct $8FBSYMBOL*)0ull) goto label$1034;
	{
		fb$result$1 = 0ll;
		goto label$1019;
	}
	label$1034:;
	label$1033:;
	if( (int64)*(uint8*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)SYM$1 + 64ll) + 213ll) != 0ll) goto label$1036;
	{
		fb$result$1 = 0ll;
		goto label$1019;
	}
	label$1036:;
	label$1035:;
	fb$result$1 = (int64)-((int64)*(uint8*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)SYM$1 + 64ll) + 213ll) < *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)SYM$1 + 64ll) + 192ll));
	label$1019:;
	return fb$result$1;
}

static int64 HVREGBASEMAYBEUNALIGNED( struct $6IRVREG* VREG$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$1037:;
	if( VREG$1 != (struct $6IRVREG*)0ull) goto label$1040;
	{
		fb$result$1 = 0ll;
		goto label$1038;
	}
	label$1040:;
	label$1039:;
	if( *(struct $8FBSYMBOL**)((uint8*)VREG$1 + 56ll) != (struct $8FBSYMBOL*)0ull) goto label$1042;
	{
		int64 vr$3 = HVREGBASEMAYBEUNALIGNED( *(struct $6IRVREG**)((uint8*)VREG$1 + 80ll) );
		fb$result$1 = vr$3;
		goto label$1038;
	}
	label$1042:;
	label$1041:;
	int64 vr$5 = HSYMBASEMAYBEUNALIGNED( *(struct $8FBSYMBOL**)((uint8*)VREG$1 + 56ll) );
	fb$result$1 = vr$5;
	label$1038:;
	return fb$result$1;
}

static int64 HADDRNEEDSUNALIGNEDACCESS( int64 DTYPE$1, struct $8FBSYMBOL* SUBTYPE$1, struct $8EXPRNODE* ADDR$1, int64 BASE_MAY_BE_UNALIGNED$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$1043:;
	int64 ALIGN$1;
	int64 vr$1 = HISSCALARLOADTYPE( DTYPE$1 );
	if( vr$1 != 0ll) goto label$1046;
	{
		fb$result$1 = 0ll;
		goto label$1044;
	}
	label$1046:;
	label$1045:;
	int64 vr$2 = TYPECALCNATURALALIGN( DTYPE$1, SUBTYPE$1 );
	ALIGN$1 = vr$2;
	if( ALIGN$1 > 1ll) goto label$1048;
	{
		fb$result$1 = 0ll;
		goto label$1044;
	}
	label$1048:;
	label$1047:;
	if( BASE_MAY_BE_UNALIGNED$1 == 0ll) goto label$1050;
	{
		fb$result$1 = -1ll;
		goto label$1044;
	}
	label$1050:;
	label$1049:;
	int64 vr$3 = HEXPRCONSTOFFSETMOD( ADDR$1, ALIGN$1 );
	fb$result$1 = (int64)-(vr$3 != 0ll);
	label$1044:;
	return fb$result$1;
}

static struct $8EXPRNODE* EXPRNEWUNALIGNEDLOAD( int64 DTYPE$1, struct $8FBSYMBOL* SUBTYPE$1, struct $8EXPRNODE* ADDR$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	struct $8EXPRNODE* fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$1051:;
	FBSTRING TYPENAME$1;
	__builtin_memset( &TYPENAME$1, 0, 24ll );
	FBSTRING ADDRTEXT$1;
	__builtin_memset( &ADDRTEXT$1, 0, 24ll );
	FBSTRING S$1;
	__builtin_memset( &S$1, 0, 24ll );
	FBSTRING* vr$5 = HEMITTYPE( DTYPE$1 & -513ll, SUBTYPE$1, 0ll );
	fb_StrAssign( (void*)&TYPENAME$1, -1ll, (void*)vr$5, -1ll, 0 );
	FBSTRING* vr$7 = EXPRFLUSH( ADDR$1, 0ll );
	fb_StrAssign( (void*)&ADDRTEXT$1, -1ll, (void*)vr$7, -1ll, 0 );
	fb_StrAssign( (void*)&S$1, -1ll, (void*)"__extension__ ({ ", 18ll, 0 );
	fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)&TYPENAME$1, -1ll, 0 );
	fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)" __fb_unaligned; ", 18ll, 0 );
	fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)"__builtin_memcpy( &__fb_unaligned, (void const*)(", 50ll, 0 );
	fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)&ADDRTEXT$1, -1ll, 0 );
	fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)"), sizeof( __fb_unaligned ) ); ", 32ll, 0 );
	fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)"__fb_unaligned; })", 19ll, 0 );
	struct $8EXPRNODE* vr$18 = EXPRNEWTEXT( DTYPE$1, SUBTYPE$1, (char*)*(char**)&S$1 );
	fb$result$1 = vr$18;
	fb_StrDelete( (FBSTRING*)&S$1 );
	fb_StrDelete( (FBSTRING*)&ADDRTEXT$1 );
	fb_StrDelete( (FBSTRING*)&TYPENAME$1 );
	label$1052:;
	return fb$result$1;
}

static struct $8EXPRNODE* EXPRNEWVREG( struct $6IRVREG* VREG$1, int64 IS_LVALUE$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	struct $8EXPRNODE* fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$1053:;
	struct $8EXPRNODE* L$1;
	int64 DTYPE$1;
	int64 HAVE_OFFSET$1;
	{
		uint64 TMP$704$2;
		TMP$704$2 = *(uint64*)VREG$1;
		goto label$1056;
		label$1057:;
		{
			int64 TMP$712$3;
			if( *(struct $8FBSYMBOL**)((uint8*)VREG$1 + 56ll) != (struct $8FBSYMBOL*)0ull) goto label$1059;
			{
				int64 TMP$705$4;
				if( *(struct $6IRVREG**)((uint8*)VREG$1 + 80ll) == (struct $6IRVREG*)0ull) goto label$1061;
				{
					struct $8EXPRNODE* vr$5 = EXPRNEWVREG( *(struct $6IRVREG**)((uint8*)VREG$1 + 80ll), 0ll );
					L$1 = vr$5;
					if( *(int64*)((uint8*)VREG$1 + 64ll) == 0ll) goto label$1063;
					{
						struct $8EXPRNODE* vr$7 = EXPRNEWCAST( 35ll, (struct $8FBSYMBOL*)0ull, L$1 );
						L$1 = vr$7;
						struct $8EXPRNODE* vr$9 = EXPRNEWIMMI( *(int64*)((uint8*)VREG$1 + 64ll), 8ll );
						struct $8EXPRNODE* vr$10 = EXPRNEWBOP( 28ll, L$1, vr$9 );
						L$1 = vr$10;
					}
					label$1063:;
					label$1062:;
				}
				goto label$1060;
				label$1061:;
				{
					struct $8EXPRNODE* vr$12 = EXPRNEWIMMI( *(int64*)((uint8*)VREG$1 + 64ll), 8ll );
					L$1 = vr$12;
				}
				label$1060:;
				if( IS_LVALUE$1 != 0ll) goto label$1064;
				int64 vr$13 = HVREGBASEMAYBEUNALIGNED( VREG$1 );
				int64 vr$16 = HADDRNEEDSUNALIGNEDACCESS( *(int64*)((uint8*)VREG$1 + 8ll), *(struct $8FBSYMBOL**)((uint8*)VREG$1 + 16ll), L$1, vr$13 );
				TMP$705$4 = (int64)-(vr$16 != 0ll);
				goto label$1541;
				label$1064:;
				TMP$705$4 = 0ll;
				label$1541:;
				if( TMP$705$4 == 0ll) goto label$1066;
				{
					struct $8EXPRNODE* vr$20 = EXPRNEWUNALIGNEDLOAD( *(int64*)((uint8*)VREG$1 + 8ll), *(struct $8FBSYMBOL**)((uint8*)VREG$1 + 16ll), L$1 );
					L$1 = vr$20;
				}
				goto label$1065;
				label$1066:;
				{
					struct $8EXPRNODE* vr$35 = EXPRNEWCAST( (((*(int64*)((uint8*)VREG$1 + 8ll) & 31ll) | ((*(int64*)((uint8*)VREG$1 + 8ll) & 480ll) + 32ll)) | ((*(int64*)((uint8*)VREG$1 + 8ll) & 261632ll) << (1ll & 63ll))) | (*(int64*)((uint8*)VREG$1 + 8ll) & 32505856ll), *(struct $8FBSYMBOL**)((uint8*)VREG$1 + 16ll), L$1 );
					L$1 = vr$35;
					struct $8EXPRNODE* vr$36 = EXPRNEWUOP( 77ll, L$1 );
					L$1 = vr$36;
				}
				label$1065:;
				goto label$1055;
			}
			label$1059:;
			label$1058:;
			HAVE_OFFSET$1 = (int64)-(*(int64*)((uint8*)VREG$1 + 64ll) != 0ll) | (int64)-(*(struct $6IRVREG**)((uint8*)VREG$1 + 80ll) != (struct $6IRVREG*)0ull);
			int64 IS_C_ARRAY$3;
			int64 vr$43 = SYMBISCARRAY( *(struct $8FBSYMBOL**)((uint8*)VREG$1 + 56ll) );
			IS_C_ARRAY$3 = vr$43;
			int64 DO_DEREF$3;
			DO_DEREF$3 = HAVE_OFFSET$1 | IS_C_ARRAY$3;
			struct $8EXPRNODE* vr$46 = EXPRNEWSYM( *(struct $8FBSYMBOL**)((uint8*)VREG$1 + 56ll) );
			L$1 = vr$46;
			int64 SYMDTYPE$3;
			SYMDTYPE$3 = *(int64*)((uint8*)L$1 + 8ll);
			struct $8FBSYMBOL* SYMSUBTYPE$3;
			SYMSUBTYPE$3 = *(struct $8FBSYMBOL**)((uint8*)L$1 + 16ll);
			if( ((int64)-(*(int64*)((uint8*)VREG$1 + 8ll) != SYMDTYPE$3) | (int64)-(*(struct $8FBSYMBOL**)((uint8*)VREG$1 + 16ll) != SYMSUBTYPE$3)) == 0ll) goto label$1068;
			{
				int64 TMP$706$4;
				int64 TMP$707$4;
				if( (*(int64*)((uint8*)VREG$1 + 8ll) & 480ll) == 0ll) goto label$1069;
				TMP$706$4 = 24ll;
				goto label$1542;
				label$1069:;
				TMP$706$4 = *(int64*)((uint8*)VREG$1 + 8ll) & 31ll;
				label$1542:;
				if( (SYMDTYPE$3 & 480ll) == 0ll) goto label$1070;
				TMP$707$4 = 24ll;
				goto label$1543;
				label$1070:;
				TMP$707$4 = SYMDTYPE$3 & 31ll;
				label$1543:;
				DO_DEREF$3 = DO_DEREF$3 | (int64)-(*(int64*)((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$706$4 * 56ll)) != *(int64*)((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$707$4 * 56ll)));
				{
					int64 TMP$708$5;
					int64 TMP$709$5;
					if( (*(int64*)((uint8*)VREG$1 + 8ll) & 480ll) == 0ll) goto label$1071;
					TMP$708$5 = 24ll;
					goto label$1544;
					label$1071:;
					TMP$708$5 = *(int64*)((uint8*)VREG$1 + 8ll) & 31ll;
					label$1544:;
					TMP$709$5 = TMP$708$5;
					if( TMP$709$5 != 17ll) goto label$1073;
					label$1074:;
					{
						DO_DEREF$3 = -1ll;
					}
					goto label$1072;
					label$1073:;
					if( TMP$709$5 != 20ll) goto label$1075;
					label$1076:;
					{
						$19FB_CVA_LIST_TYPEDEF vr$72 = SYMBGETVALISTTYPE( *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)VREG$1 + 56ll) + 56ll), *(struct $8FBSYMBOL**)((uint8*)*(struct $8FBSYMBOL**)((uint8*)VREG$1 + 56ll) + 64ll) );
						$19FB_CVA_LIST_TYPEDEF vr$78 = SYMBGETVALISTTYPE( *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)VREG$1 + 56ll) + 56ll), *(struct $8FBSYMBOL**)((uint8*)*(struct $8FBSYMBOL**)((uint8*)VREG$1 + 56ll) + 64ll) );
						$19FB_CVA_LIST_TYPEDEF vr$85 = SYMBGETVALISTTYPE( *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)VREG$1 + 56ll) + 56ll), *(struct $8FBSYMBOL**)((uint8*)*(struct $8FBSYMBOL**)((uint8*)VREG$1 + 56ll) + 64ll) );
						DO_DEREF$3 = DO_DEREF$3 | ~(((int64)-(vr$72 == 4ll) | (int64)-(vr$78 == 5ll)) | (int64)-(vr$85 == 8ll));
					}
					goto label$1072;
					label$1075:;
					{
						{
							int64 TMP$710$7;
							int64 TMP$711$7;
							if( (SYMDTYPE$3 & 480ll) == 0ll) goto label$1078;
							TMP$710$7 = 24ll;
							goto label$1545;
							label$1078:;
							TMP$710$7 = SYMDTYPE$3 & 31ll;
							label$1545:;
							TMP$711$7 = TMP$710$7;
							if( TMP$711$7 != 17ll) goto label$1080;
							label$1081:;
							{
								DO_DEREF$3 = -1ll;
							}
							goto label$1079;
							label$1080:;
							if( TMP$711$7 != 20ll) goto label$1082;
							label$1083:;
							{
								$19FB_CVA_LIST_TYPEDEF vr$96 = SYMBGETVALISTTYPE( *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)VREG$1 + 56ll) + 56ll), *(struct $8FBSYMBOL**)((uint8*)*(struct $8FBSYMBOL**)((uint8*)VREG$1 + 56ll) + 64ll) );
								$19FB_CVA_LIST_TYPEDEF vr$102 = SYMBGETVALISTTYPE( *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)VREG$1 + 56ll) + 56ll), *(struct $8FBSYMBOL**)((uint8*)*(struct $8FBSYMBOL**)((uint8*)VREG$1 + 56ll) + 64ll) );
								$19FB_CVA_LIST_TYPEDEF vr$109 = SYMBGETVALISTTYPE( *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)VREG$1 + 56ll) + 56ll), *(struct $8FBSYMBOL**)((uint8*)*(struct $8FBSYMBOL**)((uint8*)VREG$1 + 56ll) + 64ll) );
								DO_DEREF$3 = DO_DEREF$3 | ~(((int64)-(vr$96 == 4ll) | (int64)-(vr$102 == 5ll)) | (int64)-(vr$109 == 8ll));
							}
							label$1082:;
							label$1079:;
						}
					}
					label$1077:;
					label$1072:;
				}
			}
			label$1068:;
			label$1067:;
			if( DO_DEREF$3 != 0ll) goto label$1085;
			{
				goto label$1055;
			}
			label$1085:;
			label$1084:;
			if( IS_C_ARRAY$3 != 0ll) goto label$1087;
			{
				struct $8EXPRNODE* vr$114 = EXPRNEWUOP( 22ll, L$1 );
				L$1 = vr$114;
			}
			label$1087:;
			label$1086:;
			if( HAVE_OFFSET$1 == 0ll) goto label$1089;
			{
				if( IS_C_ARRAY$3 == 0ll) goto label$1091;
				{
					struct $8EXPRNODE* vr$115 = EXPRNEWCAST( 9ll, (struct $8FBSYMBOL*)0ull, L$1 );
					L$1 = vr$115;
				}
				goto label$1090;
				label$1091:;
				{
					struct $8EXPRNODE* vr$116 = EXPRNEWCAST( 35ll, (struct $8FBSYMBOL*)0ull, L$1 );
					L$1 = vr$116;
				}
				label$1090:;
				if( *(struct $6IRVREG**)((uint8*)VREG$1 + 80ll) == (struct $6IRVREG*)0ull) goto label$1093;
				{
					struct $8EXPRNODE* vr$119 = EXPRNEWVREG( *(struct $6IRVREG**)((uint8*)VREG$1 + 80ll), 0ll );
					struct $8EXPRNODE* vr$120 = EXPRNEWBOP( 28ll, L$1, vr$119 );
					L$1 = vr$120;
				}
				label$1093:;
				label$1092:;
				if( *(int64*)((uint8*)VREG$1 + 64ll) == 0ll) goto label$1095;
				{
					struct $8EXPRNODE* vr$123 = EXPRNEWIMMI( *(int64*)((uint8*)VREG$1 + 64ll), 8ll );
					struct $8EXPRNODE* vr$124 = EXPRNEWBOP( 28ll, L$1, vr$123 );
					L$1 = vr$124;
				}
				label$1095:;
				label$1094:;
			}
			label$1089:;
			label$1088:;
			if( IS_LVALUE$1 != 0ll) goto label$1096;
			int64 vr$125 = HVREGBASEMAYBEUNALIGNED( VREG$1 );
			int64 vr$128 = HADDRNEEDSUNALIGNEDACCESS( *(int64*)((uint8*)VREG$1 + 8ll), *(struct $8FBSYMBOL**)((uint8*)VREG$1 + 16ll), L$1, vr$125 );
			TMP$712$3 = (int64)-(vr$128 != 0ll);
			goto label$1546;
			label$1096:;
			TMP$712$3 = 0ll;
			label$1546:;
			if( TMP$712$3 == 0ll) goto label$1098;
			{
				struct $8EXPRNODE* vr$132 = EXPRNEWUNALIGNEDLOAD( *(int64*)((uint8*)VREG$1 + 8ll), *(struct $8FBSYMBOL**)((uint8*)VREG$1 + 16ll), L$1 );
				L$1 = vr$132;
			}
			goto label$1097;
			label$1098:;
			{
				struct $8EXPRNODE* vr$147 = EXPRNEWCAST( (((*(int64*)((uint8*)VREG$1 + 8ll) & 31ll) | ((*(int64*)((uint8*)VREG$1 + 8ll) & 480ll) + 32ll)) | ((*(int64*)((uint8*)VREG$1 + 8ll) & 261632ll) << (1ll & 63ll))) | (*(int64*)((uint8*)VREG$1 + 8ll) & 32505856ll), *(struct $8FBSYMBOL**)((uint8*)VREG$1 + 16ll), L$1 );
				L$1 = vr$147;
				struct $8EXPRNODE* vr$148 = EXPRNEWUOP( 77ll, L$1 );
				L$1 = vr$148;
			}
			label$1097:;
		}
		goto label$1055;
		label$1099:;
		{
			struct $8EXPRNODE* vr$151 = EXPRNEWOFFSET( *(struct $8FBSYMBOL**)((uint8*)VREG$1 + 56ll), *(int64*)((uint8*)VREG$1 + 64ll) );
			L$1 = vr$151;
		}
		goto label$1055;
		label$1100:;
		{
			int64 TMP$713$3;
			DTYPE$1 = *(int64*)((uint8*)VREG$1 + 8ll);
			if( (DTYPE$1 & 480ll) == 0ll) goto label$1101;
			TMP$713$3 = 24ll;
			goto label$1547;
			label$1101:;
			TMP$713$3 = DTYPE$1 & 31ll;
			label$1547:;
			if( *(int64*)((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$713$3 * 56ll)) != 1ll) goto label$1103;
			{
				struct $8EXPRNODE* vr$157 = EXPRNEWIMMF( *(double*)((uint8*)VREG$1 + 48ll), DTYPE$1 );
				L$1 = vr$157;
			}
			goto label$1102;
			label$1103:;
			if( DTYPE$1 != 1ll) goto label$1104;
			{
				int64 TMP$714$4;
				if( *(int64*)((uint8*)VREG$1 + 48ll) == 0ll) goto label$1105;
				TMP$714$4 = 1ll;
				goto label$1548;
				label$1105:;
				TMP$714$4 = 0ll;
				label$1548:;
				struct $8EXPRNODE* vr$159 = EXPRNEWIMMI( TMP$714$4, 8ll );
				L$1 = vr$159;
			}
			goto label$1102;
			label$1104:;
			{
				struct $8EXPRNODE* vr$161 = EXPRNEWIMMI( *(int64*)((uint8*)VREG$1 + 48ll), DTYPE$1 );
				L$1 = vr$161;
			}
			label$1102:;
		}
		goto label$1055;
		label$1106:;
		{
			struct $8EXPRNODE* vr$163 = EXPRLOOKUP( *(int64*)((uint8*)VREG$1 + 24ll) );
			L$1 = vr$163;
			if( L$1 != (struct $8EXPRNODE*)0ull) goto label$1108;
			{
				FBSTRING TMP$716$4;
				FBSTRING TMP$717$4;
				__builtin_memset( &TMP$717$4, 0, 24ll );
				FBSTRING* vr$166 = fb_LongintToStr( *(int64*)((uint8*)VREG$1 + 24ll) );
				__builtin_memset( &TMP$716$4, 0, 24ll );
				FBSTRING* vr$169 = fb_StrConcat( &TMP$716$4, (void*)"vr$", 4ll, (void*)vr$166, -1ll );
				fb_StrAssign( (void*)&TMP$717$4, -1ll, (void*)vr$169, -1ll, 0 );
				struct $8EXPRNODE* vr$173 = EXPRNEWTEXT( *(int64*)((uint8*)VREG$1 + 8ll), *(struct $8FBSYMBOL**)((uint8*)VREG$1 + 16ll), (char*)*(char**)&TMP$717$4 );
				L$1 = vr$173;
				fb_StrDelete( (FBSTRING*)&TMP$717$4 );
			}
			label$1108:;
			label$1107:;
		}
		goto label$1055;
		label$1056:;
		static const void* tmp$907[6ll] = {
			&&label$1100,
			&&label$1057,
			&&label$1057,
			&&label$1057,
			&&label$1106,
			&&label$1099,
		};
		if( TMP$704$2 > 5ull ) goto label$1055;
		goto *tmp$907[TMP$704$2 - 0ull];
		label$1055:;
	}
	if( IS_LVALUE$1 != 0ll) goto label$1110;
	{
		struct $8EXPRNODE* vr$177 = EXPRNEWCAST( *(int64*)((uint8*)VREG$1 + 8ll), *(struct $8FBSYMBOL**)((uint8*)VREG$1 + 16ll), L$1 );
		L$1 = vr$177;
	}
	label$1110:;
	label$1109:;
	fb$result$1 = L$1;
	label$1054:;
	return fb$result$1;
}

static struct $8EXPRNODE* HGETUNALIGNEDLVALUEADDR( struct $6IRVREG* VREG$1, struct $8EXPRNODE* LVALUE$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	struct $8EXPRNODE* fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$1134:;
	if( LVALUE$1 != (struct $8EXPRNODE*)0ull) goto label$1137;
	{
		fb$result$1 = (struct $8EXPRNODE*)0ull;
		goto label$1135;
	}
	label$1137:;
	label$1136:;
	if( *(int64*)LVALUE$1 == 4ll) goto label$1139;
	{
		fb$result$1 = (struct $8EXPRNODE*)0ull;
		goto label$1135;
	}
	label$1139:;
	label$1138:;
	if( *(int64*)((uint8*)LVALUE$1 + 40ll) == 77ll) goto label$1141;
	{
		fb$result$1 = (struct $8EXPRNODE*)0ull;
		goto label$1135;
	}
	label$1141:;
	label$1140:;
	int64 vr$3 = HVREGBASEMAYBEUNALIGNED( VREG$1 );
	int64 vr$7 = HADDRNEEDSUNALIGNEDACCESS( *(int64*)((uint8*)VREG$1 + 8ll), *(struct $8FBSYMBOL**)((uint8*)VREG$1 + 16ll), *(struct $8EXPRNODE**)((uint8*)LVALUE$1 + 24ll), vr$3 );
	if( vr$7 == 0ll) goto label$1143;
	{
		fb$result$1 = *(struct $8EXPRNODE**)((uint8*)LVALUE$1 + 24ll);
	}
	goto label$1142;
	label$1143:;
	{
		fb$result$1 = (struct $8EXPRNODE*)0ull;
	}
	label$1142:;
	label$1135:;
	return fb$result$1;
}

static void HEMITUNALIGNEDSTORE( struct $6IRVREG* VREG$1, struct $8EXPRNODE* ADDR$1, struct $8EXPRNODE* R$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1144:;
	FBSTRING TYPENAME$1;
	__builtin_memset( &TYPENAME$1, 0, 24ll );
	FBSTRING ADDRTEXT$1;
	__builtin_memset( &ADDRTEXT$1, 0, 24ll );
	FBSTRING VALUETEXT$1;
	__builtin_memset( &VALUETEXT$1, 0, 24ll );
	FBSTRING S$1;
	__builtin_memset( &S$1, 0, 24ll );
	FBSTRING* vr$7 = HEMITTYPE( *(int64*)((uint8*)VREG$1 + 8ll) & -513ll, *(struct $8FBSYMBOL**)((uint8*)VREG$1 + 16ll), 0ll );
	fb_StrAssign( (void*)&TYPENAME$1, -1ll, (void*)vr$7, -1ll, 0 );
	FBSTRING* vr$9 = EXPRFLUSH( ADDR$1, 0ll );
	fb_StrAssign( (void*)&ADDRTEXT$1, -1ll, (void*)vr$9, -1ll, 0 );
	FBSTRING* vr$11 = EXPRFLUSH( R$1, 0ll );
	fb_StrAssign( (void*)&VALUETEXT$1, -1ll, (void*)vr$11, -1ll, 0 );
	fb_StrAssign( (void*)&S$1, -1ll, (void*)"__extension__ ({ ", 18ll, 0 );
	fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)&TYPENAME$1, -1ll, 0 );
	fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)" __fb_unaligned = ", 19ll, 0 );
	fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)&VALUETEXT$1, -1ll, 0 );
	fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)"; __builtin_memcpy( (void*)(", 29ll, 0 );
	fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)&ADDRTEXT$1, -1ll, 0 );
	fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)"), &__fb_unaligned, sizeof( __fb_unaligned ) ); });", 52ll, 0 );
	HWRITELINE( &S$1, 0ll );
	fb_StrDelete( (FBSTRING*)&S$1 );
	fb_StrDelete( (FBSTRING*)&VALUETEXT$1 );
	fb_StrDelete( (FBSTRING*)&ADDRTEXT$1 );
	fb_StrDelete( (FBSTRING*)&TYPENAME$1 );
	label$1145:;
}

static void _EMITLABEL( struct $8FBSYMBOL* LABEL$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1146:;
	int64 vr$0 = SECTIONINSIDEPROC(  );
	if( vr$0 == 0ll) goto label$1149;
	{
		FBSTRING TMP$723$2;
		FBSTRING TMP$724$2;
		__builtin_memset( &TMP$724$2, 0, 24ll );
		char* vr$2 = SYMBGETMANGLEDNAME( LABEL$1 );
		__builtin_memset( &TMP$723$2, 0, 24ll );
		FBSTRING* vr$5 = fb_StrConcat( &TMP$723$2, (void*)vr$2, 0ll, (void*)":;", 3ll );
		fb_StrAssign( (void*)&TMP$724$2, -1ll, (void*)vr$5, -1ll, 0 );
		HWRITELINE( &TMP$724$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$724$2 );
	}
	label$1149:;
	label$1148:;
	label$1147:;
}

static void EXPRSTORE( struct $6IRVREG* VR$1, struct $8EXPRNODE* R$1, int64 HAS_SIDEFX$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1150:;
	static FBSTRING LN$1;
	static FBSTRING TEMPVAR$1;
	struct $8EXPRNODE* L$1;
	L$1 = (struct $8EXPRNODE*)0ull;
	struct $8EXPRNODE* ADDR$1;
	ADDR$1 = (struct $8EXPRNODE*)0ull;
	if( *(int64*)VR$1 != 4ll) goto label$1153;
	{
		if( HAS_SIDEFX$1 == 0ll) goto label$1155;
		{
			FBSTRING TMP$725$3;
			FBSTRING* vr$2 = fb_LongintToStr( *(int64*)((uint8*)VR$1 + 24ll) );
			__builtin_memset( &TMP$725$3, 0, 24ll );
			FBSTRING* vr$5 = fb_StrConcat( &TMP$725$3, (void*)"vr$", 4ll, (void*)vr$2, -1ll );
			fb_StrAssign( (void*)&TEMPVAR$1, -1ll, (void*)vr$5, -1ll, 0 );
			FBSTRING* vr$8 = HEMITTYPE( *(int64*)((uint8*)VR$1 + 8ll), *(struct $8FBSYMBOL**)((uint8*)VR$1 + 16ll), 0ll );
			fb_StrAssign( (void*)&LN$1, -1ll, (void*)vr$8, -1ll, 0 );
			fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" ", 2ll, 0 );
			fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)&TEMPVAR$1, -1ll, 0 );
			fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" = ", 4ll, 0 );
			FBSTRING* vr$9 = EXPRFLUSH( R$1, 0ll );
			fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)vr$9, -1ll, 0 );
			fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)";", 2ll, 0 );
			HWRITELINE( &LN$1, 0ll );
			struct $8EXPRNODE* vr$12 = EXPRNEWTEXT( *(int64*)((uint8*)VR$1 + 8ll), *(struct $8FBSYMBOL**)((uint8*)VR$1 + 16ll), (char*)*(char**)&TEMPVAR$1 );
			R$1 = vr$12;
		}
		goto label$1154;
		label$1155:;
		{
			struct $8EXPRNODE* vr$15 = EXPRNEWCAST( *(int64*)((uint8*)VR$1 + 8ll), *(struct $8FBSYMBOL**)((uint8*)VR$1 + 16ll), R$1 );
			R$1 = vr$15;
		}
		label$1154:;
		EXPRCACHE( *(int64*)((uint8*)VR$1 + 24ll), R$1 );
	}
	goto label$1152;
	label$1153:;
	{
		struct $8EXPRNODE* vr$19 = EXPRNEWCAST( *(int64*)((uint8*)VR$1 + 8ll), *(struct $8FBSYMBOL**)((uint8*)VR$1 + 16ll), R$1 );
		R$1 = vr$19;
		struct $8EXPRNODE* vr$20 = EXPRNEWVREG( VR$1, -1ll );
		L$1 = vr$20;
		struct $8EXPRNODE* vr$21 = HGETUNALIGNEDLVALUEADDR( VR$1, L$1 );
		ADDR$1 = vr$21;
		if( ADDR$1 == (struct $8EXPRNODE*)0ull) goto label$1157;
		{
			HEMITUNALIGNEDSTORE( VR$1, ADDR$1, R$1 );
			goto label$1151;
		}
		label$1157:;
		label$1156:;
		if( ((int64)-((*(int64*)((uint8*)L$1 + 8ll) & 480ll) != 0ll) | (int64)-((*(int64*)((uint8*)R$1 + 8ll) & 480ll) != 0ll)) == 0ll) goto label$1159;
		{
			struct $8EXPRNODE* vr$31 = EXPRNEWCAST( *(int64*)((uint8*)L$1 + 8ll), *(struct $8FBSYMBOL**)((uint8*)L$1 + 16ll), R$1 );
			R$1 = vr$31;
		}
		label$1159:;
		label$1158:;
		FBSTRING* vr$32 = EXPRFLUSH( L$1, 0ll );
		fb_StrAssign( (void*)&LN$1, -1ll, (void*)vr$32, -1ll, 0 );
		fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" = ", 4ll, 0 );
		FBSTRING* vr$33 = EXPRFLUSH( R$1, 0ll );
		fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)vr$33, -1ll, 0 );
		fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)";", 2ll, 0 );
		HWRITELINE( &LN$1, 0ll );
	}
	label$1152:;
	label$1151:;
}

static void _EMITBOP( int64 OP$1, struct $6IRVREG* V1$1, struct $6IRVREG* V2$1, struct $6IRVREG* VR$1, struct $8FBSYMBOL* LABEL$1, $10IR_EMITOPT OPTIONS$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1160:;
	struct $8EXPRNODE* L$1;
	struct $8EXPRNODE* R$1;
	struct $8EXPRNODE* vr$0 = EXPRNEWVREG( V1$1, 0ll );
	L$1 = vr$0;
	struct $8EXPRNODE* vr$1 = EXPRNEWVREG( V2$1, 0ll );
	R$1 = vr$1;
	if( LABEL$1 == (struct $8FBSYMBOL*)0ull) goto label$1163;
	{
		FBSTRING TMP$729$2;
		static FBSTRING S$2;
		fb_StrAssign( (void*)&S$2, -1ll, (void*)"if( ", 5ll, 0 );
		if( (OPTIONS$1 & 1ll) == 0ll) goto label$1165;
		{
			fb_StrConcatAssign( (void*)&S$2, -1ll, (void*)"!(", 3ll, 0 );
		}
		label$1165:;
		label$1164:;
		struct $8EXPRNODE* vr$3 = EXPRNEWBOP( OP$1, L$1, R$1 );
		FBSTRING* vr$4 = EXPRFLUSH( vr$3, 0ll );
		fb_StrConcatAssign( (void*)&S$2, -1ll, (void*)vr$4, -1ll, 0 );
		if( (OPTIONS$1 & 1ll) == 0ll) goto label$1167;
		{
			fb_StrConcatAssign( (void*)&S$2, -1ll, (void*)")", 2ll, 0 );
		}
		label$1167:;
		label$1166:;
		fb_StrConcatAssign( (void*)&S$2, -1ll, (void*)") goto ", 8ll, 0 );
		char* vr$6 = SYMBGETMANGLEDNAME( LABEL$1 );
		__builtin_memset( &TMP$729$2, 0, 24ll );
		FBSTRING* vr$9 = fb_StrConcat( &TMP$729$2, (void*)&S$2, -1ll, (void*)vr$6, 0ll );
		fb_StrAssign( (void*)&S$2, -1ll, (void*)vr$9, -1ll, 0 );
		fb_StrConcatAssign( (void*)&S$2, -1ll, (void*)";", 2ll, 0 );
		HWRITELINE( &S$2, 0ll );
		goto label$1161;
	}
	label$1163:;
	label$1162:;
	if( VR$1 != (struct $6IRVREG*)0ull) goto label$1169;
	{
		VR$1 = V1$1;
	}
	label$1169:;
	label$1168:;
	{
		uint64 TMP$730$2;
		TMP$730$2 = (uint64)OP$1;
		goto label$1171;
		label$1172:;
		{
			struct $8EXPRNODE* vr$10 = EXPRNEWBOP( OP$1, L$1, R$1 );
			L$1 = vr$10;
			if( (OPTIONS$1 & 1ll) == 0ll) goto label$1174;
			{
				struct $8EXPRNODE* vr$12 = EXPRNEWUOP( 53ll, L$1 );
				L$1 = vr$12;
			}
			label$1174:;
			label$1173:;
			if( *(int64*)((uint8*)VR$1 + 8ll) == 1ll) goto label$1176;
			{
				struct $8EXPRNODE* vr$14 = EXPRNEWUOP( 55ll, L$1 );
				L$1 = vr$14;
			}
			label$1176:;
			label$1175:;
		}
		goto label$1170;
		label$1177:;
		{
			if( (*(int64*)((uint8*)V1$1 + 8ll) & 480ll) == 0ll) goto label$1179;
			{
				struct $8EXPRNODE* vr$17 = EXPRNEWCAST( 35ll, (struct $8FBSYMBOL*)0ull, L$1 );
				L$1 = vr$17;
			}
			label$1179:;
			label$1178:;
			if( (*(int64*)((uint8*)V2$1 + 8ll) & 480ll) == 0ll) goto label$1181;
			{
				struct $8EXPRNODE* vr$20 = EXPRNEWCAST( 35ll, (struct $8FBSYMBOL*)0ull, R$1 );
				R$1 = vr$20;
			}
			label$1181:;
			label$1180:;
			struct $8EXPRNODE* vr$21 = EXPRNEWBOP( OP$1, L$1, R$1 );
			L$1 = vr$21;
		}
		goto label$1170;
		label$1182:;
		{
			struct $8EXPRNODE* vr$22 = EXPRNEWCAST( 16ll, (struct $8FBSYMBOL*)0ull, L$1 );
			L$1 = vr$22;
			struct $8EXPRNODE* vr$23 = EXPRNEWCAST( 16ll, (struct $8FBSYMBOL*)0ull, R$1 );
			R$1 = vr$23;
			struct $8EXPRNODE* vr$24 = EXPRNEWBOP( OP$1, L$1, R$1 );
			L$1 = vr$24;
		}
		goto label$1170;
		label$1183:;
		{
			struct $8EXPRNODE* vr$25 = EXPRNEWBOP( OP$1, L$1, R$1 );
			L$1 = vr$25;
		}
		goto label$1170;
		label$1184:;
		{
			int64 TMP$731$3;
			if( (*(int64*)((uint8*)L$1 + 8ll) & 480ll) == 0ll) goto label$1185;
			TMP$731$3 = 24ll;
			goto label$1549;
			label$1185:;
			TMP$731$3 = *(int64*)((uint8*)L$1 + 8ll) & 31ll;
			label$1549:;
			struct $8EXPRNODE* vr$33 = EXPRNEWIMMI( (*(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$731$3 * 56ll)) + 8ll) << (3ll & 63ll)) + -1ll, 8ll );
			struct $8EXPRNODE* vr$34 = EXPRNEWBOP( 34ll, R$1, vr$33 );
			R$1 = vr$34;
			struct $8EXPRNODE* vr$35 = EXPRNEWBOP( OP$1, L$1, R$1 );
			L$1 = vr$35;
		}
		goto label$1170;
		label$1186:;
		{
			struct $8EXPRNODE* vr$36 = EXPRNEWBOP( 38ll, L$1, R$1 );
			L$1 = vr$36;
			if( *(int64*)((uint8*)VR$1 + 8ll) != 1ll) goto label$1188;
			{
				struct $8EXPRNODE* vr$38 = EXPRNEWIMMI( 1ll, 8ll );
				struct $8EXPRNODE* vr$39 = EXPRNEWBOP( 38ll, L$1, vr$38 );
				L$1 = vr$39;
			}
			goto label$1187;
			label$1188:;
			{
				struct $8EXPRNODE* vr$40 = EXPRNEWUOP( 52ll, L$1 );
				L$1 = vr$40;
			}
			label$1187:;
		}
		goto label$1170;
		label$1189:;
		{
			if( *(int64*)((uint8*)VR$1 + 8ll) != 1ll) goto label$1191;
			{
				struct $8EXPRNODE* vr$42 = EXPRNEWIMMI( 1ll, 8ll );
				struct $8EXPRNODE* vr$43 = EXPRNEWBOP( 38ll, L$1, vr$42 );
				L$1 = vr$43;
			}
			goto label$1190;
			label$1191:;
			{
				struct $8EXPRNODE* vr$44 = EXPRNEWUOP( 52ll, L$1 );
				L$1 = vr$44;
			}
			label$1190:;
			struct $8EXPRNODE* vr$45 = EXPRNEWBOP( 35ll, L$1, R$1 );
			L$1 = vr$45;
		}
		goto label$1170;
		label$1171:;
		static const void* tmp$908[23ll] = {
			&&label$1177,
			&&label$1177,
			&&label$1183,
			&&label$1182,
			&&label$1183,
			&&label$1183,
			&&label$1183,
			&&label$1183,
			&&label$1170,
			&&label$1170,
			&&label$1183,
			&&label$1186,
			&&label$1189,
			&&label$1184,
			&&label$1184,
			&&label$1170,
			&&label$1170,
			&&label$1172,
			&&label$1172,
			&&label$1172,
			&&label$1172,
			&&label$1172,
			&&label$1172,
		};
		if( (TMP$730$2 - 28ull) > 22ull ) goto label$1170;
		goto *tmp$908[TMP$730$2 - 28ull];
		label$1170:;
	}
	EXPRSTORE( VR$1, L$1, 0ll );
	label$1161:;
}

static void _EMITUOP( int64 OP$1, struct $6IRVREG* V1$1, struct $6IRVREG* VR$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1192:;
	if( VR$1 != (struct $6IRVREG*)0ull) goto label$1195;
	{
		VR$1 = V1$1;
	}
	label$1195:;
	label$1194:;
	struct $8EXPRNODE* EXPR$1;
	struct $8EXPRNODE* vr$0 = EXPRNEWVREG( V1$1, 0ll );
	EXPR$1 = vr$0;
	if( ((int64)-(OP$1 == 52ll) & (int64)-(*(int64*)((uint8*)VR$1 + 8ll) == 1ll)) == 0ll) goto label$1197;
	{
		struct $8EXPRNODE* vr$5 = EXPRNEWIMMI( 0ll, 8ll );
		struct $8EXPRNODE* vr$6 = EXPRNEWBOP( 45ll, EXPR$1, vr$5 );
		EXPR$1 = vr$6;
	}
	goto label$1196;
	label$1197:;
	{
		struct $8EXPRNODE* vr$7 = EXPRNEWUOP( OP$1, EXPR$1 );
		EXPR$1 = vr$7;
	}
	label$1196:;
	EXPRSTORE( VR$1, EXPR$1, 0ll );
	label$1193:;
}

static void _EMITCONVERT( struct $6IRVREG* V1$1, struct $6IRVREG* V2$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 TMP$734$1;
	int64 TMP$735$1;
	label$1198:;
	struct $8EXPRNODE* R$1;
	struct $8EXPRNODE* vr$0 = EXPRNEWVREG( V2$1, 0ll );
	R$1 = vr$0;
	if( ((int64)-(*(int64*)((uint8*)V1$1 + 8ll) != 1ll) & (int64)-(*(int64*)((uint8*)R$1 + 8ll) == 1ll)) == 0ll) goto label$1201;
	{
		if( *(int64*)R$1 != 1ll) goto label$1203;
		{
			*(int64*)((uint8*)R$1 + 40ll) = (int64)-(*(int64*)((uint8*)R$1 + 40ll) != 0ll);
			*(int64*)((uint8*)R$1 + 8ll) = 11ll;
		}
		goto label$1202;
		label$1203:;
		{
			struct $8EXPRNODE* vr$11 = EXPRNEWUOP( 55ll, R$1 );
			R$1 = vr$11;
		}
		label$1202:;
	}
	goto label$1200;
	label$1201:;
	if( ((int64)-(*(int64*)((uint8*)V1$1 + 8ll) == 1ll) & (int64)-(*(int64*)((uint8*)R$1 + 8ll) != 1ll)) == 0ll) goto label$1204;
	{
		if( *(int64*)R$1 != 1ll) goto label$1206;
		{
			int64 TMP$732$3;
			int64 TMP$733$3;
			if( (*(int64*)((uint8*)R$1 + 8ll) & 480ll) == 0ll) goto label$1207;
			TMP$732$3 = 24ll;
			goto label$1550;
			label$1207:;
			TMP$732$3 = *(int64*)((uint8*)R$1 + 8ll) & 31ll;
			label$1550:;
			if( *(int64*)((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$732$3 * 56ll)) != 1ll) goto label$1208;
			TMP$733$3 = (int64)-(*(double*)((uint8*)R$1 + 40ll) != 0x0p+0);
			goto label$1551;
			label$1208:;
			TMP$733$3 = (int64)-(*(int64*)((uint8*)R$1 + 40ll) != 0ll);
			label$1551:;
			*(int64*)((uint8*)R$1 + 40ll) = -TMP$733$3;
			*(int64*)((uint8*)R$1 + 8ll) = 11ll;
		}
		goto label$1205;
		label$1206:;
		{
			struct $8EXPRNODE* vr$30 = EXPRNEWIMMI( 0ll, 8ll );
			struct $8EXPRNODE* vr$31 = EXPRNEWBOP( 48ll, R$1, vr$30 );
			R$1 = vr$31;
		}
		label$1205:;
	}
	goto label$1200;
	label$1204:;
	if( (*(int64*)((uint8*)V1$1 + 8ll) & 480ll) == 0ll) goto label$1210;
	TMP$734$1 = 24ll;
	goto label$1552;
	label$1210:;
	TMP$734$1 = *(int64*)((uint8*)V1$1 + 8ll) & 31ll;
	label$1552:;
	if( (*(int64*)((uint8*)R$1 + 8ll) & 480ll) == 0ll) goto label$1211;
	TMP$735$1 = 24ll;
	goto label$1553;
	label$1211:;
	TMP$735$1 = *(int64*)((uint8*)R$1 + 8ll) & 31ll;
	label$1553:;
	if( ((int64)-(*(int64*)((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$734$1 * 56ll)) == 0ll) & (int64)-(*(int64*)((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$735$1 * 56ll)) == 1ll)) == 0ll) goto label$1209;
	{
		FBSTRING S$2;
		__builtin_memset( &S$2, 0, 24ll );
		int64 TEMPDTYPE$2;
		__builtin_memset( &TEMPDTYPE$2, 0, 8ll );
		{
			int64 TMP$736$3;
			int64 TMP$737$3;
			if( (*(int64*)((uint8*)V1$1 + 8ll) & 480ll) == 0ll) goto label$1212;
			TMP$736$3 = 24ll;
			goto label$1554;
			label$1212:;
			TMP$736$3 = *(int64*)((uint8*)V1$1 + 8ll) & 31ll;
			label$1554:;
			TMP$737$3 = *(int64*)(((uint64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$736$3 * 56ll)) + 40ll);
			if( TMP$737$3 > 5ll) goto label$1214;
			label$1215:;
			{
				if( *(int64*)((uint8*)R$1 + 8ll) != 15ll) goto label$1217;
				{
					fb_StrAssign( (void*)&S$2, -1ll, (void*)"fb_F2I", 7ll, 0 );
					*(uint64*)((uint8*)&CTX$ + 5208ll) = *(uint64*)((uint8*)&CTX$ + 5208ll) | 1ull;
				}
				goto label$1216;
				label$1217:;
				{
					fb_StrAssign( (void*)&S$2, -1ll, (void*)"fb_D2I", 7ll, 0 );
					*(uint64*)((uint8*)&CTX$ + 5208ll) = *(uint64*)((uint8*)&CTX$ + 5208ll) | 8ull;
				}
				label$1216:;
				TEMPDTYPE$2 = 11ll;
			}
			goto label$1213;
			label$1214:;
			if( TMP$737$3 > 7ll) goto label$1218;
			label$1219:;
			{
				if( *(int64*)((uint8*)R$1 + 8ll) != 15ll) goto label$1221;
				{
					fb_StrAssign( (void*)&S$2, -1ll, (void*)"fb_F2L", 7ll, 0 );
					*(uint64*)((uint8*)&CTX$ + 5208ll) = *(uint64*)((uint8*)&CTX$ + 5208ll) | 2ull;
				}
				goto label$1220;
				label$1221:;
				{
					fb_StrAssign( (void*)&S$2, -1ll, (void*)"fb_D2L", 7ll, 0 );
					*(uint64*)((uint8*)&CTX$ + 5208ll) = *(uint64*)((uint8*)&CTX$ + 5208ll) | 16ull;
				}
				label$1220:;
				TEMPDTYPE$2 = 13ll;
			}
			goto label$1213;
			label$1218:;
			{
				if( *(int64*)((uint8*)R$1 + 8ll) != 15ll) goto label$1224;
				{
					fb_StrAssign( (void*)&S$2, -1ll, (void*)"fb_F2UL", 8ll, 0 );
					*(uint64*)((uint8*)&CTX$ + 5208ll) = *(uint64*)((uint8*)&CTX$ + 5208ll) | 4ull;
				}
				goto label$1223;
				label$1224:;
				{
					fb_StrAssign( (void*)&S$2, -1ll, (void*)"fb_D2UL", 8ll, 0 );
					*(uint64*)((uint8*)&CTX$ + 5208ll) = *(uint64*)((uint8*)&CTX$ + 5208ll) | 32ull;
				}
				label$1223:;
				TEMPDTYPE$2 = 14ll;
			}
			label$1222:;
			label$1213:;
		}
		fb_StrConcatAssign( (void*)&S$2, -1ll, (void*)"( ", 3ll, 0 );
		FBSTRING* vr$68 = EXPRFLUSH( R$1, 0ll );
		fb_StrConcatAssign( (void*)&S$2, -1ll, (void*)vr$68, -1ll, 0 );
		fb_StrConcatAssign( (void*)&S$2, -1ll, (void*)" )", 3ll, 0 );
		struct $8EXPRNODE* vr$71 = EXPRNEWTEXT( TEMPDTYPE$2, (struct $8FBSYMBOL*)0ull, (char*)*(char**)&S$2 );
		R$1 = vr$71;
		fb_StrDelete( (FBSTRING*)&S$2 );
	}
	label$1209:;
	label$1200:;
	EXPRSTORE( V1$1, R$1, 0ll );
	label$1199:;
}

static void _EMITSTORE( struct $6IRVREG* V1$1, struct $6IRVREG* V2$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1225:;
	struct $8EXPRNODE* vr$0 = EXPRNEWVREG( V2$1, 0ll );
	EXPRSTORE( V1$1, vr$0, 0ll );
	label$1226:;
}

static void _EMITSPILLREGS( void )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1227:;
	label$1228:;
}

static void _EMITLOAD( struct $6IRVREG* V1$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1229:;
	label$1230:;
}

static void _EMITLOADRES( struct $6IRVREG* V1$1, struct $6IRVREG* VR$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING TMP$745$1;
	FBSTRING TMP$746$1;
	FBSTRING TMP$747$1;
	label$1231:;
	_EMITSTORE( VR$1, V1$1 );
	__builtin_memset( &TMP$747$1, 0, 24ll );
	struct $8EXPRNODE* vr$1 = EXPRNEWVREG( VR$1, 0ll );
	FBSTRING* vr$2 = EXPRFLUSH( vr$1, 0ll );
	__builtin_memset( &TMP$745$1, 0, 24ll );
	FBSTRING* vr$5 = fb_StrConcat( &TMP$745$1, (void*)"return ", 8ll, (void*)vr$2, -1ll );
	__builtin_memset( &TMP$746$1, 0, 24ll );
	FBSTRING* vr$8 = fb_StrConcat( &TMP$746$1, (void*)vr$5, -1ll, (void*)";", 2ll );
	fb_StrAssign( (void*)&TMP$747$1, -1ll, (void*)vr$8, -1ll, 0 );
	HWRITELINE( &TMP$747$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$747$1 );
	label$1232:;
}

static void _EMITADDR( int64 OP$1, struct $6IRVREG* V1$1, struct $6IRVREG* VR$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1233:;
	struct $8EXPRNODE* L$1;
	L$1 = (struct $8EXPRNODE*)0ull;
	{
		if( OP$1 != 22ll) goto label$1236;
		label$1237:;
		{
			if( ((int64)-(*(int64*)V1$1 == 1ll) & (int64)-(*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) != (struct $8FBSYMBOL*)0ull)) == 0ll) goto label$1239;
			{
				if( *(int64*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) != 7ll) goto label$1241;
				{
					struct $8EXPRNODE* vr$8 = EXPRNEWSYM( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
					L$1 = vr$8;
					struct $8EXPRNODE* vr$11 = EXPRNEWCAST( *(int64*)((uint8*)VR$1 + 8ll), *(struct $8FBSYMBOL**)((uint8*)VR$1 + 16ll), L$1 );
					L$1 = vr$11;
					goto label$1235;
				}
				label$1241:;
				label$1240:;
			}
			label$1239:;
			label$1238:;
			struct $8EXPRNODE* vr$12 = EXPRNEWVREG( V1$1, -1ll );
			struct $8EXPRNODE* vr$13 = EXPRNEWUOP( 22ll, vr$12 );
			L$1 = vr$13;
		}
		goto label$1235;
		label$1236:;
		if( OP$1 != 77ll) goto label$1242;
		label$1243:;
		{
			struct $8EXPRNODE* vr$14 = EXPRNEWVREG( V1$1, 0ll );
			L$1 = vr$14;
		}
		label$1242:;
		label$1235:;
	}
	EXPRSTORE( VR$1, L$1, 0ll );
	label$1234:;
}

static void HDOCALL( FBSTRING* S$1, int64 BYTESTOPOP$1, struct $6IRVREG* VR$1, int64 LEVEL$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int64 TMP$748$1;
	label$1244:;
	struct $9IRCALLARG* ARG$1;
	int64 DTYPE$1;
	struct $8FBSYMBOL* SUBTYPE$1;
	fb_StrConcatByref( (void*)S$1, -1ll, (void*)"( ", 3ll, 0 );
	void* vr$1 = LISTGETTAIL( (struct $5TLIST*)((uint8*)&IRHL$ + 120ll) );
	ARG$1 = (struct $9IRCALLARG*)vr$1;
	label$1246:;
	if( ARG$1 == (struct $9IRCALLARG*)0ull) goto label$1248;
	TMP$748$1 = (int64)-((struct $9IRCALLARG*)(int64)-(*(int64*)((uint8*)ARG$1 + 16ll) == LEVEL$1) != (struct $9IRCALLARG*)0ull);
	goto label$1555;
	label$1248:;
	TMP$748$1 = 0ll;
	label$1555:;
	if( TMP$748$1 == 0ll) goto label$1247;
	{
		int64 TMP$749$2;
		struct $9IRCALLARG* PREV$2;
		void* vr$5 = LISTGETPREV( (void*)ARG$1 );
		PREV$2 = (struct $9IRCALLARG*)vr$5;
		struct $8EXPRNODE* EXPR$2;
		struct $8EXPRNODE* vr$7 = EXPRNEWVREG( *(struct $6IRVREG**)((uint8*)ARG$1 + 8ll), 0ll );
		EXPR$2 = vr$7;
		if( *(struct $8FBSYMBOL**)ARG$1 == (struct $8FBSYMBOL*)0ull) goto label$1249;
		TMP$749$2 = (int64)-((struct $8FBSYMBOL*)(int64)-(*(int64*)((uint8*)*(struct $8FBSYMBOL**)ARG$1 + 96ll) != 4ll) != (struct $8FBSYMBOL*)0ull);
		goto label$1556;
		label$1249:;
		TMP$749$2 = 0ll;
		label$1556:;
		if( TMP$749$2 == 0ll) goto label$1251;
		{
			_Z21SYMBGETREALPARAMDTYPEP8FBSYMBOLRlRS0_( *(struct $8FBSYMBOL**)ARG$1, &DTYPE$1, &SUBTYPE$1 );
			struct $8EXPRNODE* vr$16 = EXPRNEWCAST( DTYPE$1, SUBTYPE$1, EXPR$2 );
			EXPR$2 = vr$16;
		}
		label$1251:;
		label$1250:;
		FBSTRING* vr$17 = EXPRFLUSH( EXPR$2, 0ll );
		fb_StrConcatByref( (void*)S$1, -1ll, (void*)vr$17, -1ll, 0 );
		LISTDELNODE( (struct $5TLIST*)((uint8*)&IRHL$ + 120ll), (void*)ARG$1 );
		if( PREV$2 == (struct $9IRCALLARG*)0ull) goto label$1253;
		{
			if( *(int64*)((uint8*)PREV$2 + 16ll) != LEVEL$1) goto label$1255;
			{
				fb_StrConcatByref( (void*)S$1, -1ll, (void*)", ", 3ll, 0 );
			}
			label$1255:;
			label$1254:;
		}
		label$1253:;
		label$1252:;
		ARG$1 = PREV$2;
	}
	goto label$1246;
	label$1247:;
	fb_StrConcatByref( (void*)S$1, -1ll, (void*)" )", 3ll, 0 );
	if( VR$1 != (struct $6IRVREG*)0ull) goto label$1257;
	{
		fb_StrConcatByref( (void*)S$1, -1ll, (void*)";", 2ll, 0 );
		HWRITELINE( S$1, 0ll );
	}
	goto label$1256;
	label$1257:;
	{
		struct $8EXPRNODE* vr$23 = EXPRNEWTEXT( *(int64*)((uint8*)VR$1 + 8ll), *(struct $8FBSYMBOL**)((uint8*)VR$1 + 16ll), (char*)*(char**)S$1 );
		EXPRSTORE( VR$1, vr$23, -1ll );
	}
	label$1256:;
	label$1245:;
}

static void _EMITCALL( struct $8FBSYMBOL* PROC$1, int64 BYTESTOPOP$1, struct $6IRVREG* VR$1, int64 LEVEL$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1258:;
	static FBSTRING S$1;
	char* vr$0 = SYMBGETMANGLEDNAME( PROC$1 );
	fb_StrAssign( (void*)&S$1, -1ll, (void*)vr$0, 0ll, 0 );
	HDOCALL( &S$1, BYTESTOPOP$1, VR$1, LEVEL$1 );
	label$1259:;
}

static void _EMITCALLPTR( struct $8FBSYMBOL* PROC$1, struct $6IRVREG* V1$1, struct $6IRVREG* VR$1, int64 BYTESTOPOP$1, int64 LEVEL$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1260:;
	static FBSTRING S$1;
	fb_StrAssign( (void*)&S$1, -1ll, (void*)"(", 2ll, 0 );
	struct $8EXPRNODE* vr$0 = EXPRNEWVREG( V1$1, 0ll );
	FBSTRING* vr$1 = EXPRFLUSH( vr$0, 0ll );
	fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)vr$1, -1ll, 0 );
	fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)")", 2ll, 0 );
	HDOCALL( &S$1, BYTESTOPOP$1, VR$1, LEVEL$1 );
	label$1261:;
}

static void _EMITJUMPPTR( struct $6IRVREG* V1$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING TMP$751$1;
	FBSTRING TMP$752$1;
	FBSTRING TMP$753$1;
	label$1262:;
	__builtin_memset( &TMP$753$1, 0, 24ll );
	struct $8EXPRNODE* vr$1 = EXPRNEWVREG( V1$1, 0ll );
	FBSTRING* vr$2 = EXPRFLUSH( vr$1, -1ll );
	__builtin_memset( &TMP$751$1, 0, 24ll );
	FBSTRING* vr$5 = fb_StrConcat( &TMP$751$1, (void*)"goto *", 7ll, (void*)vr$2, -1ll );
	__builtin_memset( &TMP$752$1, 0, 24ll );
	FBSTRING* vr$8 = fb_StrConcat( &TMP$752$1, (void*)vr$5, -1ll, (void*)";", 2ll );
	fb_StrAssign( (void*)&TMP$753$1, -1ll, (void*)vr$8, -1ll, 0 );
	HWRITELINE( &TMP$753$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$753$1 );
	label$1263:;
}

static void _EMITBRANCH( int64 OP$1, struct $8FBSYMBOL* LABEL$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING TMP$755$1;
	FBSTRING TMP$756$1;
	FBSTRING TMP$757$1;
	label$1264:;
	__builtin_memset( &TMP$757$1, 0, 24ll );
	char* vr$1 = SYMBGETMANGLEDNAME( LABEL$1 );
	__builtin_memset( &TMP$755$1, 0, 24ll );
	FBSTRING* vr$4 = fb_StrConcat( &TMP$755$1, (void*)"goto ", 6ll, (void*)vr$1, 0ll );
	__builtin_memset( &TMP$756$1, 0, 24ll );
	FBSTRING* vr$7 = fb_StrConcat( &TMP$756$1, (void*)vr$4, -1ll, (void*)";", 2ll );
	fb_StrAssign( (void*)&TMP$757$1, -1ll, (void*)vr$7, -1ll, 0 );
	HWRITELINE( &TMP$757$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$757$1 );
	label$1265:;
}

static void _EMITJMPTB( struct $6IRVREG* V1$1, struct $8FBSYMBOL* TBSYM$1, uint64* VALUES$1, struct $8FBSYMBOL** LABELS$1, int64 LABELCOUNT$1, struct $8FBSYMBOL* DEFLABEL$1, uint64 BIAS$1, uint64 SPAN$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING TMP$767$1;
	FBSTRING TMP$768$1;
	FBSTRING TMP$769$1;
	FBSTRING TMP$770$1;
	FBSTRING TMP$771$1;
	FBSTRING TMP$776$1;
	FBSTRING TMP$778$1;
	FBSTRING TMP$779$1;
	FBSTRING TMP$780$1;
	FBSTRING TMP$781$1;
	FBSTRING TMP$782$1;
	FBSTRING TMP$783$1;
	FBSTRING TMP$784$1;
	FBSTRING TMP$785$1;
	FBSTRING TMP$786$1;
	FBSTRING TMP$787$1;
	label$1266:;
	FBSTRING TB$1;
	__builtin_memset( &TB$1, 0, 24ll );
	FBSTRING TEMP$1;
	__builtin_memset( &TEMP$1, 0, 24ll );
	FBSTRING LN$1;
	__builtin_memset( &LN$1, 0, 24ll );
	struct $8EXPRNODE* L$1;
	$11FB_DATATYPE DTYPE$1;
	DTYPE$1 = *($11FB_DATATYPE*)((uint8*)V1$1 + 8ll);
	struct $8EXPRNODE* vr$4 = EXPRNEWVREG( V1$1, 0ll );
	FBSTRING* vr$5 = EXPRFLUSH( vr$4, 0ll );
	fb_StrAssign( (void*)&TEMP$1, -1ll, (void*)vr$5, -1ll, 0 );
	if( LABELCOUNT$1 > 0ll) goto label$1269;
	{
		FBSTRING TMP$758$2;
		FBSTRING TMP$759$2;
		FBSTRING TMP$760$2;
		FBSTRING TMP$762$2;
		FBSTRING TMP$763$2;
		FBSTRING TMP$764$2;
		__builtin_memset( &TMP$760$2, 0, 24ll );
		char* vr$8 = SYMBGETMANGLEDNAME( DEFLABEL$1 );
		__builtin_memset( &TMP$758$2, 0, 24ll );
		FBSTRING* vr$11 = fb_StrConcat( &TMP$758$2, (void*)"goto ", 6ll, (void*)vr$8, 0ll );
		__builtin_memset( &TMP$759$2, 0, 24ll );
		FBSTRING* vr$14 = fb_StrConcat( &TMP$759$2, (void*)vr$11, -1ll, (void*)";", 2ll );
		fb_StrAssign( (void*)&TMP$760$2, -1ll, (void*)vr$14, -1ll, 0 );
		HWRITELINE( &TMP$760$2, -1ll );
		fb_StrDelete( (FBSTRING*)&TMP$760$2 );
		__builtin_memset( &TMP$764$2, 0, 24ll );
		__builtin_memset( &TMP$762$2, 0, 24ll );
		FBSTRING* vr$22 = fb_StrConcat( &TMP$762$2, (void*)"(void)", 7ll, (void*)&TEMP$1, -1ll );
		__builtin_memset( &TMP$763$2, 0, 24ll );
		FBSTRING* vr$25 = fb_StrConcat( &TMP$763$2, (void*)vr$22, -1ll, (void*)";", 2ll );
		fb_StrAssign( (void*)&TMP$764$2, -1ll, (void*)vr$25, -1ll, 0 );
		HWRITELINE( &TMP$764$2, -1ll );
		fb_StrDelete( (FBSTRING*)&TMP$764$2 );
		fb_StrDelete( (FBSTRING*)&LN$1 );
		fb_StrDelete( (FBSTRING*)&TEMP$1 );
		fb_StrDelete( (FBSTRING*)&TB$1 );
		goto label$1267;
	}
	label$1269:;
	label$1268:;
	char* vr$32 = SYMBUNIQUEID( (boolean)0ll );
	fb_StrAssign( (void*)&TB$1, -1ll, (void*)vr$32, 0ll, 0 );
	struct $8EXPRNODE* vr$35 = EXPRNEWIMMI( (int64)(SPAN$1 + 1ull), 8ll );
	L$1 = vr$35;
	__builtin_memset( &TMP$771$1, 0, 24ll );
	FBSTRING* vr$37 = EXPRFLUSH( L$1, 0ll );
	__builtin_memset( &TMP$767$1, 0, 24ll );
	FBSTRING* vr$41 = fb_StrConcat( &TMP$767$1, (void*)"static const void* ", 20ll, (void*)&TB$1, -1ll );
	__builtin_memset( &TMP$768$1, 0, 24ll );
	FBSTRING* vr$44 = fb_StrConcat( &TMP$768$1, (void*)vr$41, -1ll, (void*)"[", 2ll );
	__builtin_memset( &TMP$769$1, 0, 24ll );
	FBSTRING* vr$47 = fb_StrConcat( &TMP$769$1, (void*)vr$44, -1ll, (void*)vr$37, -1ll );
	__builtin_memset( &TMP$770$1, 0, 24ll );
	FBSTRING* vr$50 = fb_StrConcat( &TMP$770$1, (void*)vr$47, -1ll, (void*)"] = {", 6ll );
	fb_StrAssign( (void*)&TMP$771$1, -1ll, (void*)vr$50, -1ll, 0 );
	HWRITELINE( &TMP$771$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$771$1 );
	SECTIONINDENT(  );
	int64 I$1;
	I$1 = 0ll;
	int64 VALUE$1;
	VALUE$1 = 0ll;
	label$1270:;
	{
		FBSTRING TMP$773$2;
		FBSTRING TMP$774$2;
		FBSTRING TMP$775$2;
		struct $8FBSYMBOL* LABEL$2;
		__builtin_memset( &LABEL$2, 0, 8ll );
		if( (uint64)VALUE$1 != *(uint64*)((uint8*)VALUES$1 + (I$1 << (3ll & 63ll)))) goto label$1274;
		{
			LABEL$2 = *(struct $8FBSYMBOL**)((uint8*)LABELS$1 + (I$1 << (3ll & 63ll)));
			I$1 = I$1 + 1ll;
		}
		goto label$1273;
		label$1274:;
		{
			LABEL$2 = DEFLABEL$1;
		}
		label$1273:;
		__builtin_memset( &TMP$775$2, 0, 24ll );
		char* vr$61 = SYMBGETMANGLEDNAME( LABEL$2 );
		__builtin_memset( &TMP$773$2, 0, 24ll );
		FBSTRING* vr$64 = fb_StrConcat( &TMP$773$2, (void*)"&&", 3ll, (void*)vr$61, 0ll );
		__builtin_memset( &TMP$774$2, 0, 24ll );
		FBSTRING* vr$67 = fb_StrConcat( &TMP$774$2, (void*)vr$64, -1ll, (void*)",", 2ll );
		fb_StrAssign( (void*)&TMP$775$2, -1ll, (void*)vr$67, -1ll, 0 );
		HWRITELINE( &TMP$775$2, -1ll );
		fb_StrDelete( (FBSTRING*)&TMP$775$2 );
		if( (uint64)VALUE$1 != SPAN$1) goto label$1276;
		{
			goto label$1271;
		}
		label$1276:;
		label$1275:;
		VALUE$1 = VALUE$1 + 1ll;
	}
	label$1272:;
	goto label$1270;
	label$1271:;
	SECTIONUNINDENT(  );
	__builtin_memset( &TMP$776$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$776$1, -1ll, (void*)"};", 3ll, 0 );
	HWRITELINE( &TMP$776$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$776$1 );
	struct $8EXPRNODE* vr$76 = EXPRNEWTEXT( DTYPE$1, (struct $8FBSYMBOL*)0ull, (char*)*(char**)&TEMP$1 );
	L$1 = vr$76;
	if( BIAS$1 == 0ull) goto label$1278;
	{
		struct $8EXPRNODE* vr$77 = EXPRNEWIMMI( (int64)BIAS$1, DTYPE$1 );
		struct $8EXPRNODE* vr$78 = EXPRNEWBOP( 29ll, L$1, vr$77 );
		L$1 = vr$78;
	}
	label$1278:;
	label$1277:;
	struct $8EXPRNODE* vr$79 = EXPRNEWIMMI( (int64)SPAN$1, DTYPE$1 );
	struct $8EXPRNODE* vr$80 = EXPRNEWBOP( 46ll, L$1, vr$79 );
	L$1 = vr$80;
	__builtin_memset( &TMP$782$1, 0, 24ll );
	char* vr$82 = SYMBGETMANGLEDNAME( DEFLABEL$1 );
	FBSTRING* vr$83 = EXPRFLUSH( L$1, 0ll );
	__builtin_memset( &TMP$778$1, 0, 24ll );
	FBSTRING* vr$86 = fb_StrConcat( &TMP$778$1, (void*)"if( ", 5ll, (void*)vr$83, -1ll );
	__builtin_memset( &TMP$779$1, 0, 24ll );
	FBSTRING* vr$89 = fb_StrConcat( &TMP$779$1, (void*)vr$86, -1ll, (void*)" ) goto ", 9ll );
	__builtin_memset( &TMP$780$1, 0, 24ll );
	FBSTRING* vr$92 = fb_StrConcat( &TMP$780$1, (void*)vr$89, -1ll, (void*)vr$82, 0ll );
	__builtin_memset( &TMP$781$1, 0, 24ll );
	FBSTRING* vr$95 = fb_StrConcat( &TMP$781$1, (void*)vr$92, -1ll, (void*)";", 2ll );
	fb_StrAssign( (void*)&TMP$782$1, -1ll, (void*)vr$95, -1ll, 0 );
	HWRITELINE( &TMP$782$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$782$1 );
	struct $8EXPRNODE* vr$99 = EXPRNEWTEXT( DTYPE$1, (struct $8FBSYMBOL*)0ull, (char*)*(char**)&TEMP$1 );
	L$1 = vr$99;
	struct $8EXPRNODE* vr$100 = EXPRNEWIMMI( (int64)BIAS$1, DTYPE$1 );
	struct $8EXPRNODE* vr$101 = EXPRNEWBOP( 29ll, L$1, vr$100 );
	L$1 = vr$101;
	__builtin_memset( &TMP$787$1, 0, 24ll );
	FBSTRING* vr$103 = EXPRFLUSH( L$1, 0ll );
	__builtin_memset( &TMP$783$1, 0, 24ll );
	FBSTRING* vr$107 = fb_StrConcat( &TMP$783$1, (void*)"goto *", 7ll, (void*)&TB$1, -1ll );
	__builtin_memset( &TMP$784$1, 0, 24ll );
	FBSTRING* vr$110 = fb_StrConcat( &TMP$784$1, (void*)vr$107, -1ll, (void*)"[", 2ll );
	__builtin_memset( &TMP$785$1, 0, 24ll );
	FBSTRING* vr$113 = fb_StrConcat( &TMP$785$1, (void*)vr$110, -1ll, (void*)vr$103, -1ll );
	__builtin_memset( &TMP$786$1, 0, 24ll );
	FBSTRING* vr$116 = fb_StrConcat( &TMP$786$1, (void*)vr$113, -1ll, (void*)"];", 3ll );
	fb_StrAssign( (void*)&TMP$787$1, -1ll, (void*)vr$116, -1ll, 0 );
	HWRITELINE( &TMP$787$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$787$1 );
	fb_StrDelete( (FBSTRING*)&LN$1 );
	fb_StrDelete( (FBSTRING*)&TEMP$1 );
	fb_StrDelete( (FBSTRING*)&TB$1 );
	label$1267:;
}

static void _EMITMEM( int64 OP$1, struct $6IRVREG* V1$1, struct $6IRVREG* V2$1, int64 BYTES$1, int64 FILLCHAR$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1279:;
	{
		if( OP$1 != 108ll) goto label$1282;
		label$1283:;
		{
			FBSTRING TMP$789$3;
			FBSTRING TMP$790$3;
			FBSTRING TMP$791$3;
			FBSTRING TMP$792$3;
			FBSTRING TMP$793$3;
			FBSTRING TMP$794$3;
			FBSTRING TMP$795$3;
			__builtin_memset( &TMP$795$3, 0, 24ll );
			struct $8EXPRNODE* vr$1 = EXPRNEWVREG( V2$1, 0ll );
			FBSTRING* vr$2 = EXPRFLUSH( vr$1, 0ll );
			FBSTRING* vr$3 = fb_LongintToStr( FILLCHAR$1 );
			struct $8EXPRNODE* vr$4 = EXPRNEWVREG( V1$1, 0ll );
			FBSTRING* vr$5 = EXPRFLUSH( vr$4, 0ll );
			__builtin_memset( &TMP$789$3, 0, 24ll );
			FBSTRING* vr$8 = fb_StrConcat( &TMP$789$3, (void*)"__builtin_memset( ", 19ll, (void*)vr$5, -1ll );
			__builtin_memset( &TMP$790$3, 0, 24ll );
			FBSTRING* vr$11 = fb_StrConcat( &TMP$790$3, (void*)vr$8, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$791$3, 0, 24ll );
			FBSTRING* vr$14 = fb_StrConcat( &TMP$791$3, (void*)vr$11, -1ll, (void*)vr$3, -1ll );
			__builtin_memset( &TMP$792$3, 0, 24ll );
			FBSTRING* vr$17 = fb_StrConcat( &TMP$792$3, (void*)vr$14, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$793$3, 0, 24ll );
			FBSTRING* vr$20 = fb_StrConcat( &TMP$793$3, (void*)vr$17, -1ll, (void*)vr$2, -1ll );
			__builtin_memset( &TMP$794$3, 0, 24ll );
			FBSTRING* vr$23 = fb_StrConcat( &TMP$794$3, (void*)vr$20, -1ll, (void*)" );", 4ll );
			fb_StrAssign( (void*)&TMP$795$3, -1ll, (void*)vr$23, -1ll, 0 );
			HWRITELINE( &TMP$795$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$795$3 );
		}
		goto label$1281;
		label$1282:;
		if( OP$1 != 106ll) goto label$1284;
		label$1285:;
		{
			FBSTRING TMP$797$3;
			FBSTRING TMP$798$3;
			FBSTRING TMP$799$3;
			FBSTRING TMP$800$3;
			FBSTRING TMP$801$3;
			FBSTRING TMP$802$3;
			FBSTRING TMP$803$3;
			__builtin_memset( &TMP$803$3, 0, 24ll );
			FBSTRING* vr$28 = fb_ULongintToStr( (uint64)BYTES$1 );
			struct $8EXPRNODE* vr$29 = EXPRNEWVREG( V2$1, 0ll );
			FBSTRING* vr$30 = EXPRFLUSH( vr$29, 0ll );
			struct $8EXPRNODE* vr$31 = EXPRNEWVREG( V1$1, 0ll );
			FBSTRING* vr$32 = EXPRFLUSH( vr$31, 0ll );
			__builtin_memset( &TMP$797$3, 0, 24ll );
			FBSTRING* vr$35 = fb_StrConcat( &TMP$797$3, (void*)"__builtin_memcpy( ", 19ll, (void*)vr$32, -1ll );
			__builtin_memset( &TMP$798$3, 0, 24ll );
			FBSTRING* vr$38 = fb_StrConcat( &TMP$798$3, (void*)vr$35, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$799$3, 0, 24ll );
			FBSTRING* vr$41 = fb_StrConcat( &TMP$799$3, (void*)vr$38, -1ll, (void*)vr$30, -1ll );
			__builtin_memset( &TMP$800$3, 0, 24ll );
			FBSTRING* vr$44 = fb_StrConcat( &TMP$800$3, (void*)vr$41, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$801$3, 0, 24ll );
			FBSTRING* vr$47 = fb_StrConcat( &TMP$801$3, (void*)vr$44, -1ll, (void*)vr$28, -1ll );
			__builtin_memset( &TMP$802$3, 0, 24ll );
			FBSTRING* vr$50 = fb_StrConcat( &TMP$802$3, (void*)vr$47, -1ll, (void*)" );", 4ll );
			fb_StrAssign( (void*)&TMP$803$3, -1ll, (void*)vr$50, -1ll, 0 );
			HWRITELINE( &TMP$803$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$803$3 );
		}
		label$1284:;
		label$1281:;
	}
	label$1280:;
}

static void _EMITMACRO( int64 OP$1, struct $6IRVREG* V1$1, struct $6IRVREG* V2$1, struct $6IRVREG* VR$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1286:;
	struct $8EXPRNODE* L$1;
	struct $8EXPRNODE* R$1;
	{
		if( OP$1 != 110ll) goto label$1289;
		label$1290:;
		{
			FBSTRING TMP$804$3;
			FBSTRING TMP$805$3;
			struct $8EXPRNODE* vr$0 = EXPRNEWVREG( V1$1, 0ll );
			L$1 = vr$0;
			struct $8EXPRNODE* vr$1 = EXPRNEWVREG( V2$1, 0ll );
			R$1 = vr$1;
			__builtin_memset( &TMP$805$3, 0, 24ll );
			struct $8EXPRNODE* vr$3 = EXPRNEWMACRO( OP$1, 2147483648ll, (struct $8FBSYMBOL*)0ull, L$1, R$1 );
			FBSTRING* vr$4 = EXPRFLUSH( vr$3, 0ll );
			__builtin_memset( &TMP$804$3, 0, 24ll );
			FBSTRING* vr$7 = fb_StrConcat( &TMP$804$3, (void*)vr$4, -1ll, (void*)";", 2ll );
			fb_StrAssign( (void*)&TMP$805$3, -1ll, (void*)vr$7, -1ll, 0 );
			HWRITELINE( &TMP$805$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$805$3 );
		}
		goto label$1288;
		label$1289:;
		if( OP$1 != 111ll) goto label$1291;
		label$1292:;
		{
			FBSTRING TMP$806$3;
			FBSTRING TMP$807$3;
			struct $8EXPRNODE* vr$11 = EXPRNEWVREG( V1$1, 0ll );
			L$1 = vr$11;
			__builtin_memset( &TMP$807$3, 0, 24ll );
			struct $8EXPRNODE* vr$13 = EXPRNEWMACRO( OP$1, 2147483648ll, (struct $8FBSYMBOL*)0ull, L$1, (struct $8EXPRNODE*)0ull );
			FBSTRING* vr$14 = EXPRFLUSH( vr$13, 0ll );
			__builtin_memset( &TMP$806$3, 0, 24ll );
			FBSTRING* vr$17 = fb_StrConcat( &TMP$806$3, (void*)vr$14, -1ll, (void*)";", 2ll );
			fb_StrAssign( (void*)&TMP$807$3, -1ll, (void*)vr$17, -1ll, 0 );
			HWRITELINE( &TMP$807$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$807$3 );
		}
		goto label$1288;
		label$1291:;
		if( OP$1 != 113ll) goto label$1293;
		label$1294:;
		{
			struct $8EXPRNODE* vr$21 = EXPRNEWVREG( V1$1, 0ll );
			L$1 = vr$21;
			struct $8EXPRNODE* vr$24 = EXPRNEWMACRO( OP$1, *(int64*)((uint8*)VR$1 + 8ll), *(struct $8FBSYMBOL**)((uint8*)VR$1 + 56ll), L$1, (struct $8EXPRNODE*)0ull );
			L$1 = vr$24;
			EXPRSTORE( VR$1, L$1, 0ll );
		}
		goto label$1288;
		label$1293:;
		if( OP$1 != 112ll) goto label$1295;
		label$1296:;
		{
			FBSTRING TMP$808$3;
			FBSTRING TMP$809$3;
			struct $8EXPRNODE* vr$25 = EXPRNEWVREG( V1$1, 0ll );
			L$1 = vr$25;
			struct $8EXPRNODE* vr$26 = EXPRNEWVREG( V2$1, 0ll );
			R$1 = vr$26;
			__builtin_memset( &TMP$809$3, 0, 24ll );
			struct $8EXPRNODE* vr$28 = EXPRNEWMACRO( OP$1, 2147483648ll, (struct $8FBSYMBOL*)0ull, L$1, R$1 );
			FBSTRING* vr$29 = EXPRFLUSH( vr$28, 0ll );
			__builtin_memset( &TMP$808$3, 0, 24ll );
			FBSTRING* vr$32 = fb_StrConcat( &TMP$808$3, (void*)vr$29, -1ll, (void*)";", 2ll );
			fb_StrAssign( (void*)&TMP$809$3, -1ll, (void*)vr$32, -1ll, 0 );
			HWRITELINE( &TMP$809$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$809$3 );
		}
		label$1295:;
		label$1288:;
	}
	label$1287:;
}

static void _EMITDECL( struct $8FBSYMBOL* SYM$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1297:;
	struct $8FBSYMBOL* ARRAY$1;
	int64 vr$0 = HISSTATICWITHDTOR( SYM$1 );
	if( vr$0 == 0ll) goto label$1300;
	{
		goto label$1298;
	}
	label$1300:;
	label$1299:;
	ARRAY$1 = *(struct $8FBSYMBOL**)((uint8*)SYM$1 + 152ll);
	if( ARRAY$1 == (struct $8FBSYMBOL*)0ull) goto label$1302;
	{
		int64 vr$2 = HISSTATICWITHDTOR( ARRAY$1 );
		if( vr$2 == 0ll) goto label$1304;
		{
			goto label$1298;
		}
		label$1304:;
		label$1303:;
	}
	label$1302:;
	label$1301:;
	HMAYBEEMITLOCALVAR( SYM$1 );
	label$1298:;
}

static void _EMITDBG( int64 OP$1, struct $8FBSYMBOL* PROC$1, int64 LNUM$1, char* FILENAME$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1305:;
	if( OP$1 != 114ll) goto label$1308;
	{
		*(int64*)((uint8*)&CTX$ + 5176ll) = LNUM$1;
		if( FILENAME$1 == (char*)0ull) goto label$1310;
		{
			HUPDATECURRENTFILENAME( FILENAME$1 );
		}
		label$1310:;
		label$1309:;
	}
	label$1308:;
	label$1307:;
	label$1306:;
}

static void _EMITCOMMENT( char* TEXT$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1311:;
	int64 LENGTH$1;
	static FBSTRING S$1;
	fb_StrAssign( (void*)&S$1, -1ll, (void*)TEXT$1, 0ll, 0 );
	FBSTRING* vr$0 = fb_TRIM( (FBSTRING*)&S$1 );
	fb_StrAssign( (void*)&S$1, -1ll, (void*)vr$0, -1ll, 0 );
	int64 vr$1 = fb_StrLen( (void*)&S$1, -1ll );
	LENGTH$1 = vr$1;
	if( LENGTH$1 <= 0ll) goto label$1314;
	{
		FBSTRING TMP$812$2;
		FBSTRING TMP$813$2;
		if( (uint64)(int64)*(uint8*)((uint8*)((uint8*)*(char**)&S$1 + LENGTH$1) + -1ll) != 92ull) goto label$1316;
		{
			fb_StrConcatAssign( (void*)&S$1, -1ll, (void*)"not_an_escape", 14ll, 0 );
		}
		label$1316:;
		label$1315:;
		__builtin_memset( &TMP$813$2, 0, 24ll );
		__builtin_memset( &TMP$812$2, 0, 24ll );
		FBSTRING* vr$7 = fb_StrConcat( &TMP$812$2, (void*)"// ", 4ll, (void*)&S$1, -1ll );
		fb_StrAssign( (void*)&TMP$813$2, -1ll, (void*)vr$7, -1ll, 0 );
		HWRITELINE( &TMP$813$2, -1ll );
		fb_StrDelete( (FBSTRING*)&TMP$813$2 );
	}
	label$1314:;
	label$1313:;
	label$1312:;
}

static int32 HFINDLABELINSEENLIST( struct $5TLIST* LABELLIST$1, struct $8FBSYMBOL* LABELSYM$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	int32 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 4ll );
	label$1317:;
	struct $8FBSYMBOL** SYMNODE$1;
	void* vr$1 = LISTGETHEAD( LABELLIST$1 );
	SYMNODE$1 = (struct $8FBSYMBOL**)vr$1;
	int32 INDEX$1;
	INDEX$1 = -1;
	int32 CURINDEX$1;
	CURINDEX$1 = 0;
	label$1319:;
	{
		if( SYMNODE$1 != (struct $8FBSYMBOL**)0ull) goto label$1323;
		{
			goto label$1320;
			label$1323:;
		}
		if( *SYMNODE$1 != LABELSYM$1) goto label$1325;
		{
			INDEX$1 = CURINDEX$1;
			goto label$1320;
		}
		label$1325:;
		label$1324:;
		void* vr$3 = LISTGETNEXT( (void*)SYMNODE$1 );
		SYMNODE$1 = (struct $8FBSYMBOL**)vr$3;
		CURINDEX$1 = (int32)((int64)CURINDEX$1 + 1ll);
	}
	label$1321:;
	goto label$1319;
	label$1320:;
	fb$result$1 = INDEX$1;
	goto label$1318;
	label$1318:;
	return fb$result$1;
}

static FBSTRING* HSTRIPSIMPLEASMPLACEHOLDERBRACKETS( FBSTRING* ASMCODE$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$1326:;
	FBSTRING RESULT$1;
	__builtin_memset( &RESULT$1, 0, 24ll );
	int64 I$1;
	I$1 = 1ll;
	int64 LENGTH$1;
	int64 vr$2 = fb_StrLen( (void*)ASMCODE$1, -1ll );
	LENGTH$1 = vr$2;
	label$1328:;
	if( I$1 > LENGTH$1) goto label$1329;
	{
		int64 TMP$815$2;
		int64 MATCHED$2;
		MATCHED$2 = 0ll;
		if( (I$1 + 3ll) > LENGTH$1) goto label$1330;
		FBSTRING* vr$4 = fb_StrMid( (FBSTRING*)ASMCODE$1, I$1, 2ll );
		int32 vr$5 = fb_StrCompare( (void*)vr$4, -1ll, (void*)"[%", 3ll );
		TMP$815$2 = (int64)-((int64)vr$5 == 0ll);
		goto label$1557;
		label$1330:;
		TMP$815$2 = 0ll;
		label$1557:;
		if( TMP$815$2 == 0ll) goto label$1332;
		{
			int64 TMP$818$3;
			int64 TMP$819$3;
			int64 J$3;
			J$3 = I$1 + 2ll;
			label$1333:;
			if( J$3 > LENGTH$1) goto label$1334;
			{
				int64 TMP$817$4;
				int64 CH$4;
				CH$4 = (int64)*(uint8*)((uint8*)((uint8*)*(char**)ASMCODE$1 + J$3) + -1ll);
				if( (uint64)CH$4 < 48ull) goto label$1335;
				TMP$817$4 = (int64)-((uint64)CH$4 > 57ull);
				goto label$1558;
				label$1335:;
				TMP$817$4 = -1ll;
				label$1558:;
				if( TMP$817$4 == 0ll) goto label$1337;
				{
					goto label$1334;
				}
				label$1337:;
				label$1336:;
				J$3 = J$3 + 1ll;
			}
			goto label$1333;
			label$1334:;
			if( J$3 <= (I$1 + 2ll)) goto label$1338;
			TMP$818$3 = (int64)-(J$3 <= LENGTH$1);
			goto label$1559;
			label$1338:;
			TMP$818$3 = 0ll;
			label$1559:;
			if( TMP$818$3 == 0ll) goto label$1339;
			TMP$819$3 = (int64)-((uint64)(int64)*(uint8*)((uint8*)((uint8*)*(char**)ASMCODE$1 + J$3) + -1ll) == 93ull);
			goto label$1560;
			label$1339:;
			TMP$819$3 = 0ll;
			label$1560:;
			if( TMP$819$3 == 0ll) goto label$1341;
			{
				FBSTRING TMP$820$4;
				FBSTRING* vr$23 = fb_StrMid( (FBSTRING*)ASMCODE$1, I$1 + 1ll, (J$3 - I$1) + -1ll );
				__builtin_memset( &TMP$820$4, 0, 24ll );
				FBSTRING* vr$27 = fb_StrConcat( &TMP$820$4, (void*)&RESULT$1, -1ll, (void*)vr$23, -1ll );
				fb_StrAssign( (void*)&RESULT$1, -1ll, (void*)vr$27, -1ll, 0 );
				I$1 = J$3 + 1ll;
				MATCHED$2 = -1ll;
			}
			label$1341:;
			label$1340:;
		}
		label$1332:;
		label$1331:;
		if( MATCHED$2 != 0ll) goto label$1343;
		{
			FBSTRING TMP$821$3;
			FBSTRING* vr$30 = fb_StrMid( (FBSTRING*)ASMCODE$1, I$1, 1ll );
			__builtin_memset( &TMP$821$3, 0, 24ll );
			FBSTRING* vr$34 = fb_StrConcat( &TMP$821$3, (void*)&RESULT$1, -1ll, (void*)vr$30, -1ll );
			fb_StrAssign( (void*)&RESULT$1, -1ll, (void*)vr$34, -1ll, 0 );
			I$1 = I$1 + 1ll;
		}
		label$1343:;
		label$1342:;
	}
	goto label$1328;
	label$1329:;
	fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)&RESULT$1, -1ll, 0 );
	fb_StrDelete( (FBSTRING*)&RESULT$1 );
	label$1327:;
	FBSTRING* vr$41 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$41;
}

static void _EMITASMLINE( struct $9ASTASMTOK* ASMTOKENHEAD$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1344:;
	int64 USES_LABEL$1;
	__builtin_memset( &USES_LABEL$1, 0, 8ll );
	int64 LABELINDEX$1;
	__builtin_memset( &LABELINDEX$1, 0, 8ll );
	int64 LABELINDEXBASE$1;
	__builtin_memset( &LABELINDEXBASE$1, 0, 8ll );
	struct $5TLIST SEENLABELLIST$1;
	__builtin_memset( &SEENLABELLIST$1, 0, 64ll );
	LISTINIT( &SEENLABELLIST$1, 8ll, 8ll, 4294967295ll );
	struct $9ASTASMTOK* N$1;
	N$1 = ASMTOKENHEAD$1;
	label$1346:;
	if( N$1 == (struct $9ASTASMTOK*)0ull) goto label$1347;
	{
		if( *(int64*)N$1 != 1ll) goto label$1349;
		{
			{
				$12FB_SYMBCLASS TMP$822$4;
				TMP$822$4 = *($12FB_SYMBCLASS*)*(struct $8FBSYMBOL**)((uint8*)N$1 + 8ll);
				if( TMP$822$4 != 7ll) goto label$1351;
				label$1352:;
				{
					USES_LABEL$1 = -1ll;
				}
				goto label$1350;
				label$1351:;
				if( TMP$822$4 != 1ll) goto label$1353;
				label$1354:;
				{
					LABELINDEX$1 = LABELINDEX$1 + 1ll;
				}
				label$1353:;
				label$1350:;
			}
		}
		label$1349:;
		label$1348:;
		N$1 = *(struct $9ASTASMTOK**)((uint8*)N$1 + 16ll);
	}
	goto label$1346;
	label$1347:;
	LABELINDEXBASE$1 = LABELINDEX$1;
	FBSTRING LN$1;
	fb_StrInit( (void*)&LN$1, -1ll, (void*)"__asm__", 8ll, 0 );
	int64 vr$11 = SECTIONINSIDEPROC(  );
	if( vr$11 == 0ll) goto label$1356;
	{
		fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" __volatile__", 14ll, 0 );
	}
	label$1356:;
	label$1355:;
	if( USES_LABEL$1 == 0ll) goto label$1358;
	{
		fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" goto", 6ll, 0 );
	}
	label$1358:;
	label$1357:;
	fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)"( ", 3ll, 0 );
	FBSTRING ASMCODE$1;
	__builtin_memset( &ASMCODE$1, 0, 24ll );
	int64 OPERANDINDEX$1;
	__builtin_memset( &OPERANDINDEX$1, 0, 8ll );
	FBSTRING OUTPUTCONSTRAINTS$1;
	__builtin_memset( &OUTPUTCONSTRAINTS$1, 0, 24ll );
	FBSTRING INPUTCONSTRAINTS$1;
	__builtin_memset( &INPUTCONSTRAINTS$1, 0, 24ll );
	FBSTRING LABELLIST$1;
	__builtin_memset( &LABELLIST$1, 0, 24ll );
	N$1 = ASMTOKENHEAD$1;
	label$1359:;
	if( N$1 == (struct $9ASTASMTOK*)0ull) goto label$1360;
	{
		{
			$14AST_ASMTOKTYPE TMP$826$3;
			TMP$826$3 = *($14AST_ASMTOKTYPE*)N$1;
			if( TMP$826$3 != 0ll) goto label$1362;
			label$1363:;
			{
				FBSTRING TMP$827$4;
				__builtin_memset( &TMP$827$4, 0, 24ll );
				FBSTRING* vr$25 = fb_StrConcat( &TMP$827$4, (void*)&ASMCODE$1, -1ll, *(void**)((uint8*)N$1 + 8ll), 0ll );
				fb_StrAssign( (void*)&ASMCODE$1, -1ll, (void*)vr$25, -1ll, 0 );
			}
			goto label$1361;
			label$1362:;
			if( TMP$826$3 != 1ll) goto label$1364;
			label$1365:;
			{
				if( *(int64*)((uint8*)&ENV$ + 264ll) != 0ll) goto label$1367;
				{
					int64 vr$27 = SECTIONINSIDEPROC(  );
					if( vr$27 == 0ll) goto label$1369;
					{
						{
							$12FB_SYMBCLASS TMP$828$7;
							TMP$828$7 = *($12FB_SYMBCLASS*)*(struct $8FBSYMBOL**)((uint8*)N$1 + 8ll);
							if( TMP$828$7 != 1ll) goto label$1371;
							label$1372:;
							{
								fb_StrConcatAssign( (void*)&ASMCODE$1, -1ll, (void*)"%", 2ll, 0 );
								FBSTRING* vr$31 = fb_LongintToStr( OPERANDINDEX$1 );
								fb_StrConcatAssign( (void*)&ASMCODE$1, -1ll, (void*)vr$31, -1ll, 0 );
								OPERANDINDEX$1 = OPERANDINDEX$1 + 1ll;
								if( USES_LABEL$1 == 0ll) goto label$1374;
								{
									FBSTRING TMP$831$9;
									FBSTRING TMP$832$9;
									FBSTRING TMP$833$9;
									int64 vr$35 = fb_StrLen( (void*)&INPUTCONSTRAINTS$1, -1ll );
									if( vr$35 <= 0ll) goto label$1376;
									{
										fb_StrConcatAssign( (void*)&INPUTCONSTRAINTS$1, -1ll, (void*)", ", 3ll, 0 );
									}
									label$1376:;
									label$1375:;
									char* vr$38 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)N$1 + 8ll) );
									__builtin_memset( &TMP$831$9, 0, 24ll );
									FBSTRING* vr$41 = fb_StrConcat( &TMP$831$9, (void*)"\x22m\x22 (", 6ll, (void*)vr$38, 0ll );
									__builtin_memset( &TMP$832$9, 0, 24ll );
									FBSTRING* vr$44 = fb_StrConcat( &TMP$832$9, (void*)vr$41, -1ll, (void*)")", 2ll );
									__builtin_memset( &TMP$833$9, 0, 24ll );
									FBSTRING* vr$48 = fb_StrConcat( &TMP$833$9, (void*)&INPUTCONSTRAINTS$1, -1ll, (void*)vr$44, -1ll );
									fb_StrAssign( (void*)&INPUTCONSTRAINTS$1, -1ll, (void*)vr$48, -1ll, 0 );
								}
								goto label$1373;
								label$1374:;
								{
									FBSTRING TMP$835$9;
									FBSTRING TMP$836$9;
									FBSTRING TMP$837$9;
									int64 vr$51 = fb_StrLen( (void*)&OUTPUTCONSTRAINTS$1, -1ll );
									if( vr$51 <= 0ll) goto label$1378;
									{
										fb_StrConcatAssign( (void*)&OUTPUTCONSTRAINTS$1, -1ll, (void*)", ", 3ll, 0 );
									}
									label$1378:;
									label$1377:;
									char* vr$54 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)N$1 + 8ll) );
									__builtin_memset( &TMP$835$9, 0, 24ll );
									FBSTRING* vr$57 = fb_StrConcat( &TMP$835$9, (void*)"\x22+m\x22 (", 7ll, (void*)vr$54, 0ll );
									__builtin_memset( &TMP$836$9, 0, 24ll );
									FBSTRING* vr$60 = fb_StrConcat( &TMP$836$9, (void*)vr$57, -1ll, (void*)")", 2ll );
									__builtin_memset( &TMP$837$9, 0, 24ll );
									FBSTRING* vr$64 = fb_StrConcat( &TMP$837$9, (void*)&OUTPUTCONSTRAINTS$1, -1ll, (void*)vr$60, -1ll );
									fb_StrAssign( (void*)&OUTPUTCONSTRAINTS$1, -1ll, (void*)vr$64, -1ll, 0 );
								}
								label$1373:;
							}
							goto label$1370;
							label$1371:;
							if( TMP$828$7 != 7ll) goto label$1379;
							label$1380:;
							{
								int64 LABELNUM$8;
								struct $8FBSYMBOL* LABELSYM$8;
								LABELSYM$8 = *(struct $8FBSYMBOL**)((uint8*)N$1 + 8ll);
								int32 SEENLABELINDEX$8;
								int32 vr$68 = HFINDLABELINSEENLIST( &SEENLABELLIST$1, LABELSYM$8 );
								SEENLABELINDEX$8 = vr$68;
								if( (int64)SEENLABELINDEX$8 == -1ll) goto label$1382;
								{
									LABELNUM$8 = (int64)SEENLABELINDEX$8 + LABELINDEXBASE$1;
								}
								goto label$1381;
								label$1382:;
								{
									FBSTRING TMP$838$9;
									LABELNUM$8 = LABELINDEX$1;
									LABELINDEX$1 = LABELINDEX$1 + 1ll;
									void* vr$74 = LISTNEWNODE( &SEENLABELLIST$1 );
									*(struct $8FBSYMBOL**)vr$74 = LABELSYM$8;
									int64 vr$76 = fb_StrLen( (void*)&LABELLIST$1, -1ll );
									if( vr$76 <= 0ll) goto label$1384;
									{
										fb_StrConcatAssign( (void*)&LABELLIST$1, -1ll, (void*)", ", 3ll, 0 );
									}
									label$1384:;
									label$1383:;
									char* vr$78 = SYMBGETMANGLEDNAME( LABELSYM$8 );
									__builtin_memset( &TMP$838$9, 0, 24ll );
									FBSTRING* vr$82 = fb_StrConcat( &TMP$838$9, (void*)&LABELLIST$1, -1ll, (void*)vr$78, 0ll );
									fb_StrAssign( (void*)&LABELLIST$1, -1ll, (void*)vr$82, -1ll, 0 );
								}
								label$1381:;
								fb_StrConcatAssign( (void*)&ASMCODE$1, -1ll, (void*)"%l", 3ll, 0 );
								FBSTRING* vr$85 = fb_LongintToStr( LABELNUM$8 );
								fb_StrConcatAssign( (void*)&ASMCODE$1, -1ll, (void*)vr$85, -1ll, 0 );
							}
							goto label$1370;
							label$1379:;
							{
								FBSTRING TMP$840$8;
								FBSTRING* vr$88 = HGETMANGLEDNAMEFORASM( *(struct $8FBSYMBOL**)((uint8*)N$1 + 8ll), -1ll );
								__builtin_memset( &TMP$840$8, 0, 24ll );
								FBSTRING* vr$92 = fb_StrConcat( &TMP$840$8, (void*)&ASMCODE$1, -1ll, (void*)vr$88, -1ll );
								fb_StrAssign( (void*)&ASMCODE$1, -1ll, (void*)vr$92, -1ll, 0 );
							}
							label$1385:;
							label$1370:;
						}
					}
					goto label$1368;
					label$1369:;
					{
						FBSTRING TMP$841$6;
						FBSTRING* vr$95 = HGETMANGLEDNAMEFORASM( *(struct $8FBSYMBOL**)((uint8*)N$1 + 8ll), -1ll );
						__builtin_memset( &TMP$841$6, 0, 24ll );
						FBSTRING* vr$99 = fb_StrConcat( &TMP$841$6, (void*)&ASMCODE$1, -1ll, (void*)vr$95, -1ll );
						fb_StrAssign( (void*)&ASMCODE$1, -1ll, (void*)vr$99, -1ll, 0 );
					}
					label$1368:;
				}
				goto label$1366;
				label$1367:;
				{
					FBSTRING TMP$842$5;
					char* vr$102 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)N$1 + 8ll) );
					__builtin_memset( &TMP$842$5, 0, 24ll );
					FBSTRING* vr$106 = fb_StrConcat( &TMP$842$5, (void*)&ASMCODE$1, -1ll, (void*)vr$102, 0ll );
					fb_StrAssign( (void*)&ASMCODE$1, -1ll, (void*)vr$106, -1ll, 0 );
				}
				label$1366:;
			}
			label$1364:;
			label$1361:;
		}
		N$1 = *(struct $9ASTASMTOK**)((uint8*)N$1 + 16ll);
	}
	goto label$1359;
	label$1360:;
	LISTEND( &SEENLABELLIST$1 );
	if( *(int64*)((uint8*)&ENV$ + 264ll) != 0ll) goto label$1387;
	{
		if( *(int64*)((uint8*)&ENV$ + 208ll) != 2ll) goto label$1389;
		{
			FBSTRING* vr$111 = HSTRIPSIMPLEASMPLACEHOLDERBRACKETS( &ASMCODE$1 );
			fb_StrAssign( (void*)&ASMCODE$1, -1ll, (void*)vr$111, -1ll, 0 );
		}
		label$1389:;
		label$1388:;
		int64 vr$114 = fb_StrLen( (void*)&ASMCODE$1, -1ll );
		HBUILDSTRLIT( &LN$1, (char*)*(char**)&ASMCODE$1, vr$114 + 1ll, 0ll );
		int64 vr$117 = SECTIONINSIDEPROC(  );
		if( vr$117 == 0ll) goto label$1391;
		{
			fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" : ", 4ll, 0 );
			fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)&OUTPUTCONSTRAINTS$1, -1ll, 0 );
			fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" : ", 4ll, 0 );
			fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)&INPUTCONSTRAINTS$1, -1ll, 0 );
			fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" : \x22" "cc\x22, \x22memory\x22", 18ll, 0 );
			HAPPENDPROCASMCLOBBERS( &LN$1 );
			if( USES_LABEL$1 == 0ll) goto label$1393;
			{
				fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" : ", 4ll, 0 );
				fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)&LABELLIST$1, -1ll, 0 );
			}
			label$1393:;
			label$1392:;
		}
		label$1391:;
		label$1390:;
	}
	goto label$1386;
	label$1387:;
	{
		fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)&ASMCODE$1, -1ll, 0 );
	}
	label$1386:;
	fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)" );", 4ll, 0 );
	HWRITELINE( &LN$1, 0ll );
	fb_StrDelete( (FBSTRING*)&LABELLIST$1 );
	fb_StrDelete( (FBSTRING*)&INPUTCONSTRAINTS$1 );
	fb_StrDelete( (FBSTRING*)&OUTPUTCONSTRAINTS$1 );
	fb_StrDelete( (FBSTRING*)&ASMCODE$1 );
	fb_StrDelete( (FBSTRING*)&LN$1 );
	label$1345:;
}

static void _EMITVARINIBEGIN( struct $8FBSYMBOL* SYM$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1394:;
	fb_StrAssign( (void*)((uint8*)&CTX$ + 5280ll), -1ll, (void*)"", 1ll, 0 );
	*(int64*)((uint8*)&CTX$ + 5304ll) = 0ll;
	label$1395:;
}

static void _EMITVARINIEND( struct $8FBSYMBOL* SYM$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1396:;
	HEMITVARDECL( 0ll, SYM$1, (char*)*(char**)((uint8*)&CTX$ + 5280ll) );
	fb_StrAssign( (void*)((uint8*)&CTX$ + 5280ll), -1ll, (void*)"", 1ll, 0 );
	label$1397:;
}

static void HVARINISEPARATOR( void )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1398:;
	if( *(int64*)((uint8*)&CTX$ + 5304ll) <= 0ll) goto label$1401;
	{
		fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5280ll), -1ll, (void*)", ", 3ll, 0 );
	}
	label$1401:;
	label$1400:;
	label$1399:;
}

static void _EMITVARINII( struct $8FBSYMBOL* SYM$1, int64 VALUE$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1402:;
	int64 DTYPE$1;
	DTYPE$1 = *(int64*)((uint8*)SYM$1 + 56ll) & 511ll;
	if( ((int64)-(DTYPE$1 == 1ll) & (int64)-(VALUE$1 != 0ll)) == 0ll) goto label$1405;
	{
		VALUE$1 = 1ll;
	}
	label$1405:;
	label$1404:;
	struct $8EXPRNODE* L$1;
	struct $8EXPRNODE* vr$5 = EXPRNEWIMMI( VALUE$1, DTYPE$1 );
	L$1 = vr$5;
	if( (*(int64*)((uint8*)SYM$1 + 8ll) & 262144ll) == 0ll) goto label$1407;
	{
		DTYPE$1 = (((DTYPE$1 & 31ll) | ((DTYPE$1 & 480ll) + 32ll)) | ((DTYPE$1 & 261632ll) << (1ll & 63ll))) | (DTYPE$1 & 32505856ll);
	}
	label$1407:;
	label$1406:;
	struct $8EXPRNODE* vr$18 = EXPRNEWCAST( DTYPE$1, *(struct $8FBSYMBOL**)((uint8*)SYM$1 + 64ll), L$1 );
	L$1 = vr$18;
	FBSTRING* vr$19 = EXPRFLUSH( L$1, 0ll );
	fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5280ll), -1ll, (void*)vr$19, -1ll, 0 );
	HVARINISEPARATOR(  );
	label$1403:;
}

static void _EMITVARINIF( struct $8FBSYMBOL* SYM$1, double VALUE$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1408:;
	int64 DTYPE$1;
	DTYPE$1 = *(int64*)((uint8*)SYM$1 + 56ll) & 511ll;
	struct $8EXPRNODE* L$1;
	struct $8EXPRNODE* vr$2 = EXPRNEWIMMF( VALUE$1, DTYPE$1 );
	L$1 = vr$2;
	if( (*(int64*)((uint8*)SYM$1 + 8ll) & 262144ll) == 0ll) goto label$1411;
	{
		DTYPE$1 = (((DTYPE$1 & 31ll) | ((DTYPE$1 & 480ll) + 32ll)) | ((DTYPE$1 & 261632ll) << (1ll & 63ll))) | (DTYPE$1 & 32505856ll);
	}
	label$1411:;
	label$1410:;
	struct $8EXPRNODE* vr$15 = EXPRNEWCAST( DTYPE$1, *(struct $8FBSYMBOL**)((uint8*)SYM$1 + 64ll), L$1 );
	L$1 = vr$15;
	FBSTRING* vr$16 = EXPRFLUSH( L$1, 0ll );
	fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5280ll), -1ll, (void*)vr$16, -1ll, 0 );
	HVARINISEPARATOR(  );
	label$1409:;
}

static void _EMITVARINIOFS( struct $8FBSYMBOL* SYM$1, struct $8FBSYMBOL* RHS$1, int64 OFS$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1412:;
	struct $8EXPRNODE* L$1;
	struct $8EXPRNODE* vr$0 = EXPRNEWOFFSET( RHS$1, OFS$1 );
	L$1 = vr$0;
	int64 DTYPE$1;
	DTYPE$1 = *(int64*)((uint8*)SYM$1 + 56ll) & 511ll;
	if( (*(int64*)((uint8*)SYM$1 + 8ll) & 262144ll) == 0ll) goto label$1415;
	{
		DTYPE$1 = (((DTYPE$1 & 31ll) | ((DTYPE$1 & 480ll) + 32ll)) | ((DTYPE$1 & 261632ll) << (1ll & 63ll))) | (DTYPE$1 & 32505856ll);
	}
	label$1415:;
	label$1414:;
	struct $8EXPRNODE* vr$15 = EXPRNEWCAST( DTYPE$1, *(struct $8FBSYMBOL**)((uint8*)SYM$1 + 64ll), L$1 );
	L$1 = vr$15;
	FBSTRING* vr$16 = EXPRFLUSH( L$1, 0ll );
	fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5280ll), -1ll, (void*)vr$16, -1ll, 0 );
	HVARINISEPARATOR(  );
	label$1413:;
}

static void _EMITVARINISTR( int64 VARLENGTH$1, char* LITERAL$1, int64 LITLENGTH$1, int64 NOTERM$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1416:;
	if( LITLENGTH$1 <= VARLENGTH$1) goto label$1419;
	{
		LITLENGTH$1 = VARLENGTH$1;
	}
	label$1419:;
	label$1418:;
	if( NOTERM$1 == 0ll) goto label$1421;
	{
		int64 TMP$845$2;
		TMP$845$2 = 0ll;
		char* vr$3 = HUNESCAPE( LITERAL$1, &TMP$845$2 );
		HBUILDSTRLIT( (FBSTRING*)((uint8*)&CTX$ + 5280ll), vr$3, LITLENGTH$1 + 1ll, VARLENGTH$1 + 1ll );
	}
	goto label$1420;
	label$1421:;
	{
		int64 TMP$846$2;
		TMP$846$2 = 0ll;
		char* vr$7 = HUNESCAPE( LITERAL$1, &TMP$846$2 );
		HBUILDSTRLIT( (FBSTRING*)((uint8*)&CTX$ + 5280ll), vr$7, LITLENGTH$1 + 1ll, 0ll );
	}
	label$1420:;
	HVARINISEPARATOR(  );
	label$1417:;
}

static void _EMITVARINIWSTR( int64 VARLENGTH$1, uint32* LITERAL$1, int64 LITLENGTH$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1422:;
	uint64 CH$1;
	int64 WCHARSIZE$1;
	int64 USE_NUMERIC$1;
	uint32* SRC$1;
	uint32* SRC_END$1;
	fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5280ll), -1ll, (void*)"{ ", 3ll, 0 );
	int64 vr$1 = FBGETTARGETWCHARSIZE(  );
	WCHARSIZE$1 = vr$1;
	int64 vr$2 = HUSENUMERICWSTRLIT(  );
	USE_NUMERIC$1 = vr$2;
	int64 vr$3 = FBTARGETWCHARISUTF32(  );
	if( ~vr$3 == 0ll) goto label$1425;
	{
		int64 TMP$848$2;
		TMP$848$2 = 0ll;
		uint32* vr$6 = HUNESCAPEW( LITERAL$1, &TMP$848$2 );
		LITERAL$1 = vr$6;
	}
	label$1425:;
	label$1424:;
	if( LITLENGTH$1 <= VARLENGTH$1) goto label$1427;
	{
		LITLENGTH$1 = VARLENGTH$1;
	}
	label$1427:;
	label$1426:;
	SRC$1 = LITERAL$1;
	int64 vr$7 = fb_WstrLen( (uint32*)LITERAL$1 );
	SRC_END$1 = (uint32*)((uint8*)LITERAL$1 + (vr$7 << (2ll & 63ll)));
	{
		int64 I$2;
		I$2 = 0ll;
		int64 TMP$849$2;
		TMP$849$2 = LITLENGTH$1 + -1ll;
		goto label$1428;
		label$1431:;
		{
			if( SRC$1 < SRC_END$1) goto label$1433;
			{
				goto label$1430;
			}
			label$1433:;
			label$1432:;
			if( I$2 <= 0ll) goto label$1435;
			{
				fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5280ll), -1ll, (void*)", ", 3ll, 0 );
			}
			label$1435:;
			label$1434:;
			uint64 vr$13 = HREADWSTRCHAR( &SRC$1, (uint32*)SRC_END$1 );
			CH$1 = vr$13;
			if( USE_NUMERIC$1 == 0ll) goto label$1437;
			{
				FBSTRING* vr$14 = HEMITINT( *(int64*)((uint8*)&ENV$ + 576ll), (int64)CH$1 );
				fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5280ll), -1ll, (void*)vr$14, -1ll, 0 );
			}
			goto label$1436;
			label$1437:;
			{
				if( WCHARSIZE$1 != 1ll) goto label$1439;
				{
					fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5280ll), -1ll, (void*)"'", 2ll, 0 );
				}
				goto label$1438;
				label$1439:;
				{
					fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5280ll), -1ll, (void*)"L'", 3ll, 0 );
				}
				label$1438:;
				int64 vr$18 = HCHARNEEDSESCAPING( (int64)CH$1, 39ll );
				if( vr$18 == 0ll) goto label$1441;
				{
					fb_StrConcatAssign( (void*)((uint8*)&CTX$ + 5280ll), -1ll, (void*)"\x5Cx", 3ll, 0 );
					FBSTRING* vr$22 = fb_HEXEx_l( CH$1, (int32)(WCHARSIZE$1 << (1ll & 63ll)) );
					fb_StrConcatAssign( (void*)((uint8*)&CTX$ + 5280ll), -1ll, (void*)vr$22, -1ll, 0 );
				}
				goto label$1440;
				label$1441:;
				{
					FBSTRING* vr$24 = fb_CHR( 1, (int64)CH$1 );
					fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5280ll), -1ll, (void*)vr$24, -1ll, 0 );
				}
				label$1440:;
				fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5280ll), -1ll, (void*)"'", 2ll, 0 );
			}
			label$1436:;
		}
		label$1429:;
		I$2 = I$2 + 1ll;
		label$1428:;
		if( I$2 <= TMP$849$2) goto label$1431;
		label$1430:;
	}
	fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5280ll), -1ll, (void*)" }", 3ll, 0 );
	HVARINISEPARATOR(  );
	label$1423:;
}

static void _EMITVARINIPAD( int64 BYTES$1, int64 FILLCHAR$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1442:;
	label$1443:;
}

static void _EMITVARINISCOPEBEGIN( struct $8FBSYMBOL* SYM$1, int64 IS_ARRAY$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1444:;
	*(int64*)((uint8*)&CTX$ + 5304ll) = *(int64*)((uint8*)&CTX$ + 5304ll) + 1ll;
	fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5280ll), -1ll, (void*)"{ ", 3ll, 0 );
	label$1445:;
}

static void _EMITVARINISCOPEEND( void )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1446:;
	FBSTRING* vr$1 = fb_RIGHT( (FBSTRING*)((uint8*)&CTX$ + 5280ll), 2ll );
	int32 vr$2 = fb_StrCompare( (void*)vr$1, -1ll, (void*)", ", 3ll );
	if( (int64)vr$2 != 0ll) goto label$1449;
	{
		int64 vr$5 = fb_StrLen( (void*)((uint8*)&CTX$ + 5280ll), -1ll );
		fb_LEFTSELF( (FBSTRING*)((uint8*)&CTX$ + 5280ll), vr$5 + -2ll );
	}
	label$1449:;
	label$1448:;
	fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5280ll), -1ll, (void*)" }", 3ll, 0 );
	*(int64*)((uint8*)&CTX$ + 5304ll) = *(int64*)((uint8*)&CTX$ + 5304ll) + -1ll;
	HVARINISEPARATOR(  );
	label$1447:;
}

static void _EMITFBCTINFBEGIN( void )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING TMP$851$1;
	label$1450:;
	__builtin_memset( &TMP$851$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$851$1, -1ll, (void*)"", 1ll, 0 );
	HWRITELINE( &TMP$851$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$851$1 );
	fb_StrAssign( (void*)((uint8*)&CTX$ + 5312ll), -1ll, (void*)"static const char ", 19ll, 0 );
	int64 vr$5 = FBGETOPTION( 3ll );
	if( vr$5 != 12ll) goto label$1453;
	{
		fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5312ll), -1ll, (void*)"__attribute__((used, section(\x22__DATA,fbctinf\x22))) ", 50ll, 0 );
	}
	goto label$1452;
	label$1453:;
	{
		fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5312ll), -1ll, (void*)"__attribute__((used, section(\x22.fbctinf\x22))) ", 44ll, 0 );
	}
	label$1452:;
	fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5312ll), -1ll, (void*)"__fbctinf[] = \x22", 16ll, 0 );
	label$1451:;
}

static void _EMITFBCTINFSTRING( const char* S$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING TMP$862$1;
	FBSTRING TMP$863$1;
	label$1454:;
	__builtin_memset( &TMP$862$1, 0, 24ll );
	FBSTRING* vr$2 = fb_StrConcat( &TMP$862$1, (void*)S$1, 0ll, (void*)"\x5C" "0", 3ll );
	__builtin_memset( &TMP$863$1, 0, 24ll );
	FBSTRING* vr$6 = fb_StrConcat( &TMP$863$1, (void*)((uint8*)&CTX$ + 5312ll), -1ll, (void*)vr$2, -1ll );
	fb_StrAssign( (void*)((uint8*)&CTX$ + 5312ll), -1ll, (void*)vr$6, -1ll, 0 );
	label$1455:;
}

static void _EMITFBCTINFEND( void )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1456:;
	FBSTRING* vr$1 = fb_RIGHT( (FBSTRING*)((uint8*)&CTX$ + 5312ll), 2ll );
	int32 vr$2 = fb_StrCompare( (void*)vr$1, -1ll, (void*)"\x5C" "0", 3ll );
	if( (int64)vr$2 != 0ll) goto label$1459;
	{
		int64 vr$5 = fb_StrLen( (void*)((uint8*)&CTX$ + 5312ll), -1ll );
		FBSTRING* vr$8 = fb_LEFT( (FBSTRING*)((uint8*)&CTX$ + 5312ll), vr$5 + -2ll );
		fb_StrAssign( (void*)((uint8*)&CTX$ + 5312ll), -1ll, (void*)vr$8, -1ll, 0 );
	}
	label$1459:;
	label$1458:;
	fb_StrConcatByref( (void*)((uint8*)&CTX$ + 5312ll), -1ll, (void*)"\x22;", 3ll, 0 );
	HWRITELINE( (FBSTRING*)((uint8*)&CTX$ + 5312ll), -1ll );
	label$1457:;
}

static void _EMITPROCBEGIN( struct $8FBSYMBOL* PROC$1, struct $8FBSYMBOL* INITLABEL$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING TMP$865$1;
	FBSTRING TMP$879$1;
	FBSTRING TMP$880$1;
	label$1460:;
	HUPDATECURRENTFILENAME( *(char**)((uint8*)*(struct $10FB_PROCEXT**)((uint8*)PROC$1 + 208ll) + 48ll) );
	IRHLEMITPROCBEGIN(  );
	FBSTRING MANGLED$1;
	__builtin_memset( &MANGLED$1, 0, 24ll );
	__builtin_memset( &TMP$865$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$865$1, -1ll, (void*)"", 1ll, 0 );
	HWRITELINE( &TMP$865$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$865$1 );
	if( *(int64*)((uint8*)&ENV$ + 296ll) == 0ll) goto label$1463;
	{
		_EMITDBG( 114ll, PROC$1, *(int64*)((uint8*)*(struct $10FB_PROCEXT**)((uint8*)PROC$1 + 208ll) + 32ll), (char*)0ull );
	}
	label$1463:;
	label$1462:;
	if( (*(int64*)((uint8*)PROC$1 + 16ll) & 128ll) == 0ll) goto label$1465;
	{
		FBSTRING TMP$866$2;
		FBSTRING TMP$869$2;
		FBSTRING TMP$870$2;
		FBSTRING TMP$871$2;
		FBSTRING TMP$874$2;
		FBSTRING TMP$875$2;
		FBSTRING TMP$876$2;
		FBSTRING* vr$11 = HGETMANGLEDNAMEFORASM( PROC$1, -1ll );
		fb_StrAssign( (void*)&MANGLED$1, -1ll, (void*)vr$11, -1ll, 0 );
		__builtin_memset( &TMP$866$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$866$2, -1ll, (void*)"__asm__( \x22.text\x22 );", 20ll, 0 );
		HWRITELINE( &TMP$866$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$866$2 );
		__builtin_memset( &TMP$871$2, 0, 24ll );
		__builtin_memset( &TMP$869$2, 0, 24ll );
		FBSTRING* vr$21 = fb_StrConcat( &TMP$869$2, (void*)"__asm__( \x22.globl ", 18ll, (void*)&MANGLED$1, -1ll );
		__builtin_memset( &TMP$870$2, 0, 24ll );
		FBSTRING* vr$24 = fb_StrConcat( &TMP$870$2, (void*)vr$21, -1ll, (void*)"\x22 );", 5ll );
		fb_StrAssign( (void*)&TMP$871$2, -1ll, (void*)vr$24, -1ll, 0 );
		HWRITELINE( &TMP$871$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$871$2 );
		__builtin_memset( &TMP$876$2, 0, 24ll );
		__builtin_memset( &TMP$874$2, 0, 24ll );
		FBSTRING* vr$32 = fb_StrConcat( &TMP$874$2, (void*)"__asm__( \x22", 11ll, (void*)&MANGLED$1, -1ll );
		__builtin_memset( &TMP$875$2, 0, 24ll );
		FBSTRING* vr$35 = fb_StrConcat( &TMP$875$2, (void*)vr$32, -1ll, (void*)":\x22 );", 6ll );
		fb_StrAssign( (void*)&TMP$876$2, -1ll, (void*)vr$35, -1ll, 0 );
		HWRITELINE( &TMP$876$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$876$2 );
		fb_StrDelete( (FBSTRING*)&MANGLED$1 );
		goto label$1461;
	}
	label$1465:;
	label$1464:;
	SECTIONBEGIN(  );
	int64 vr$40 = HNEEDALIAS( PROC$1 );
	if( vr$40 == 0ll) goto label$1467;
	{
		FBSTRING TMP$877$2;
		FBSTRING TMP$878$2;
		__builtin_memset( &TMP$878$2, 0, 24ll );
		FBSTRING* vr$42 = HEMITPROCHEADER( PROC$1, 1ll );
		__builtin_memset( &TMP$877$2, 0, 24ll );
		FBSTRING* vr$45 = fb_StrConcat( &TMP$877$2, (void*)vr$42, -1ll, (void*)";", 2ll );
		fb_StrAssign( (void*)&TMP$878$2, -1ll, (void*)vr$45, -1ll, 0 );
		HWRITELINE( &TMP$878$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$878$2 );
	}
	label$1467:;
	label$1466:;
	__builtin_memset( &TMP$879$1, 0, 24ll );
	FBSTRING* vr$50 = HEMITPROCHEADER( PROC$1, 0ll );
	fb_StrAssign( (void*)&TMP$879$1, -1ll, (void*)vr$50, -1ll, 0 );
	HWRITELINE( &TMP$879$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$879$1 );
	__builtin_memset( &TMP$880$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$880$1, -1ll, (void*)"{", 2ll, 0 );
	HWRITELINE( &TMP$880$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$880$1 );
	SECTIONINDENT(  );
	if( (((int64)-(*(int64*)((uint8*)&ENV$ + 208ll) == 2ll) | (int64)-(*(int64*)((uint8*)&ENV$ + 208ll) == 1ll)) | (int64)-(*(int64*)((uint8*)&ENV$ + 216ll) == 12ll)) == 0ll) goto label$1469;
	{
		FBSTRING TMP$882$2;
		__builtin_memset( &TMP$882$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$882$2, -1ll, (void*)"_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;", 54ll, 0 );
		HWRITELINE( &TMP$882$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$882$2 );
	}
	label$1469:;
	label$1468:;
	fb_StrDelete( (FBSTRING*)&MANGLED$1 );
	label$1461:;
}

static void _EMITPROCEND( struct $8FBSYMBOL* PROC$1, struct $8FBSYMBOL* INITLABEL$1, struct $8FBSYMBOL* EXITLABEL$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING TMP$890$1;
	label$1470:;
	FBSTRING MANGLED$1;
	__builtin_memset( &MANGLED$1, 0, 24ll );
	struct $13EXPRCACHENODE* CACHENODE$1;
	if( (*(int64*)((uint8*)PROC$1 + 16ll) & 128ll) == 0ll) goto label$1473;
	{
		if( *(int64*)((uint8*)&ENV$ + 216ll) != 2ll) goto label$1475;
		{
			FBSTRING TMP$885$3;
			FBSTRING TMP$886$3;
			FBSTRING TMP$887$3;
			FBSTRING TMP$888$3;
			FBSTRING TMP$889$3;
			FBSTRING* vr$3 = HGETMANGLEDNAMEFORASM( PROC$1, -1ll );
			fb_StrAssign( (void*)&MANGLED$1, -1ll, (void*)vr$3, -1ll, 0 );
			__builtin_memset( &TMP$889$3, 0, 24ll );
			__builtin_memset( &TMP$885$3, 0, 24ll );
			FBSTRING* vr$10 = fb_StrConcat( &TMP$885$3, (void*)"__asm__( \x22.size ", 17ll, (void*)&MANGLED$1, -1ll );
			__builtin_memset( &TMP$886$3, 0, 24ll );
			FBSTRING* vr$13 = fb_StrConcat( &TMP$886$3, (void*)vr$10, -1ll, (void*)", .-", 5ll );
			__builtin_memset( &TMP$887$3, 0, 24ll );
			FBSTRING* vr$16 = fb_StrConcat( &TMP$887$3, (void*)vr$13, -1ll, (void*)&MANGLED$1, -1ll );
			__builtin_memset( &TMP$888$3, 0, 24ll );
			FBSTRING* vr$19 = fb_StrConcat( &TMP$888$3, (void*)vr$16, -1ll, (void*)"\x22 );", 5ll );
			fb_StrAssign( (void*)&TMP$889$3, -1ll, (void*)vr$19, -1ll, 0 );
			HWRITELINE( &TMP$889$3, -1ll );
			fb_StrDelete( (FBSTRING*)&TMP$889$3 );
		}
		label$1475:;
		label$1474:;
		fb_StrDelete( (FBSTRING*)&MANGLED$1 );
		goto label$1471;
	}
	label$1473:;
	label$1472:;
	SECTIONUNINDENT(  );
	__builtin_memset( &TMP$890$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$890$1, -1ll, (void*)"}", 2ll, 0 );
	HWRITELINE( &TMP$890$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$890$1 );
	SECTIONEND(  );
	label$1476:;
	{
		void* vr$29 = LISTGETHEAD( (struct $5TLIST*)((uint8*)&CTX$ + 5448ll) );
		CACHENODE$1 = (struct $13EXPRCACHENODE*)vr$29;
		if( CACHENODE$1 != (struct $13EXPRCACHENODE*)0ull) goto label$1480;
		{
			goto label$1477;
		}
		label$1480:;
		label$1479:;
		EXPRFREETREE( *(struct $8EXPRNODE**)((uint8*)CACHENODE$1 + 8ll) );
		LISTDELNODE( (struct $5TLIST*)((uint8*)&CTX$ + 5448ll), (void*)CACHENODE$1 );
	}
	label$1478:;
	goto label$1476;
	label$1477:;
	IRHLEMITPROCEND(  );
	fb_StrDelete( (FBSTRING*)&MANGLED$1 );
	label$1471:;
}

static void _EMITSCOPEBEGIN( struct $8FBSYMBOL* S$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING TMP$891$1;
	label$1481:;
	SECTIONBEGIN(  );
	__builtin_memset( &TMP$891$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$891$1, -1ll, (void*)"{", 2ll, 0 );
	HWRITELINE( &TMP$891$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$891$1 );
	SECTIONINDENT(  );
	label$1482:;
}

static void _EMITSCOPEEND( struct $8FBSYMBOL* S$1 )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	FBSTRING TMP$892$1;
	label$1483:;
	SECTIONUNINDENT(  );
	__builtin_memset( &TMP$892$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$892$1, -1ll, (void*)"}", 2ll, 0 );
	HWRITELINE( &TMP$892$1, -1ll );
	fb_StrDelete( (FBSTRING*)&TMP$892$1 );
	SECTIONEND(  );
	label$1484:;
}

__attribute__(( constructor )) static void _GLOBAL__I( void )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1486:;
	_ZN8IRHLCCTXC1Ev( &CTX$ );
	label$1487:;
}

__attribute__(( destructor )) static void _GLOBAL__D( void )
{
	_unusedlabel: ; void *_llvmbug18658 = &&_unusedlabel;
	label$1489:;
	_ZN8IRHLCCTXD1Ev( &CTX$ );
	label$1490:;
}
