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 $14ASM64_SAVEDREG {
	int32 ID;
	int32 SDVREG;
	int32 SDOFFSET;
	int32 SPILBRANCH1;
};
#define __FB_STATIC_ASSERT( expr ) extern int __$fb_structsizecheck[(expr) ? 1 : -1]
__FB_STATIC_ASSERT( sizeof( struct $14ASM64_SAVEDREG ) == 16 );
struct $10TFLISTITEM;
struct $10TFLISTITEM {
	struct $10TFLISTITEM* NEXT;
};
__FB_STATIC_ASSERT( sizeof( struct $10TFLISTITEM ) == 8 );
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 $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 );
typedef int64 $15IRVREGTYPE_ENUM;
typedef int64 $11FB_DATATYPE;
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 );
struct $8FBSYMBOL;
typedef int64 $13AST_NODECLASS;
union $7FBVALUE {
	struct $8FBSYMBOL* S;
	int64 I;
	double F;
};
__FB_STATIC_ASSERT( sizeof( union $7FBVALUE ) == 8 );
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;
};
__FB_STATIC_ASSERT( sizeof( struct $13AST_NODE_CALL ) == 48 );
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 BYTES;
	int64 OP;
};
__FB_STATIC_ASSERT( sizeof( struct $12AST_NODE_MEM ) == 16 );
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 {
		union $7FBVALUE 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 $10FBSYMBOLTB {
	struct $8FBSYMBOL* OWNER;
	struct $8FBSYMBOL* HEAD;
	struct $8FBSYMBOL* TAIL;
};
__FB_STATIC_ASSERT( sizeof( struct $10FBSYMBOLTB ) == 24 );
struct $8HASHITEM;
struct $8HASHITEM {
	char* NAME;
	void* DATA;
	struct $8HASHITEM* PREV;
	struct $8HASHITEM* NEXT;
};
__FB_STATIC_ASSERT( sizeof( struct $8HASHITEM ) == 32 );
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$34)( struct $8FBSYMBOL* );
struct $10FB_PROCRTL {
	tmp$34 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$28)( 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$29)( struct $11LEXPP_ARGTB*, int64* );
typedef uint32* (*tmp$30)( 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$28 DPROCZ;
		tmp$29 MPROCZ;
	};
	union {
		tmp$30 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_;
		union $7FBVALUE 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 $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 $11TSTRSETITEM {
	FBSTRING S;
	int64 USERDATA;
	struct $8HASHITEM* HASHITEM;
};
__FB_STATIC_ASSERT( sizeof( struct $11TSTRSETITEM ) == 40 );
typedef int64 $13FB_COMPTARGET;
struct $13ASM64_CONTEXT {
	int64 INDENT;
	int64 SECTION;
	FBSTRING HEAD_TXT;
	FBSTRING BODY_TXT;
	FBSTRING FOOT_TXT;
	FBSTRING PROLOG_TXT;
	FBSTRING PROC_TXT;
	FBSTRING EPILOG_TXT;
	int64 ARGCPTMAX;
	int64 ARGINTEG;
	int64 ARGFLOAT;
	int64 OFS;
	int64 STK;
	int64 STKMAX;
	int64 STKSPIL;
	int64 STKCOPY;
	int32 USEDREG;
	int32 JMPREG;
	int32 JMPVREG;
	int32 JMPPASS;
	int64 CTORCOUNT;
	int64 DTORCOUNT;
	boolean ROUNDFLOAT;
	boolean PROCCALLING;
	struct $6TFLIST SPILLVREGS;
	int32 VREG_COUNT;
	struct $8FBSYMBOL* LABELBRANCH2;
	struct $8FBSYMBOL* LABELJUMP;
	boolean VARIADIC;
	$13FB_COMPTARGET TARGET;
	boolean SYSTEMV;
	int64 OPEREG;
	int64 OPEPASS;
	int64 MAXSTACK;
};
__FB_STATIC_ASSERT( sizeof( struct $13ASM64_CONTEXT ) == 448 );
struct $6DBGCTX {
	uint64 TYPECNT;
	int64 LNUM;
	FBSTRING PREVFILENAME;
	FBSTRING LINEFILENAME;
	struct $8FBSYMBOL* PROC;
	int64 STRNB;
	int64 STRMAX;
	int64 STABNB;
	int64 STABMAX;
	int64 OFFST;
};
__FB_STATIC_ASSERT( sizeof( struct $6DBGCTX ) == 112 );
struct $7TDBGSTR {
	int64 OFFST;
	FBSTRING TXT;
};
__FB_STATIC_ASSERT( sizeof( struct $7TDBGSTR ) == 32 );
struct $8TDBGSTAB {
	int64 STAB;
	FBSTRING VALUE;
};
__FB_STATIC_ASSERT( sizeof( struct $8TDBGSTAB ) == 32 );
struct $16__FB_ARRAYDIMTB$ {
	int64 ELEMENTS;
	int64 LBOUND;
	int64 UBOUND;
};
__FB_STATIC_ASSERT( sizeof( struct $16__FB_ARRAYDIMTB$ ) == 24 );
struct $7FBARRAYIvE {
	void* DATA;
	void* PTR;
	int64 SIZE;
	int64 ELEMENT_LEN;
	int64 DIMENSIONS;
	int64 FLAGS;
	struct $16__FB_ARRAYDIMTB$ DIMTB[8];
};
__FB_STATIC_ASSERT( sizeof( struct $7FBARRAYIvE ) == 240 );
union $5USTAB {
	int64 FULL;
	struct {
		int32 OFFST;
		int16 COD;
		int16 DESC;
	};
};
__FB_STATIC_ASSERT( sizeof( union $5USTAB ) == 8 );
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 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;
	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 ) == 49688 );
struct $13ASM64_REGROOM {
	int32 STATUS;
	struct $14ASM64_SAVEDREG* VREG;
};
__FB_STATIC_ASSERT( sizeof( struct $13ASM64_REGROOM ) == 16 );
struct $7FBARRAYIKvE {
	void* DATA;
	void* PTR;
	int64 SIZE;
	int64 ELEMENT_LEN;
	int64 DIMENSIONS;
	int64 FLAGS;
	struct $16__FB_ARRAYDIMTB$ DIMTB[8];
};
__FB_STATIC_ASSERT( sizeof( struct $7FBARRAYIKvE ) == 240 );
typedef int64 $6IR_OPT;
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$42)( struct $8FBSYMBOL* );
typedef int64 $14IR_OPTIONVALUE;
struct $7FBARRAYIiE {
	int32* DATA;
	int32* PTR;
	int64 SIZE;
	int64 ELEMENT_LEN;
	int64 DIMENSIONS;
	int64 FLAGS;
	struct $16__FB_ARRAYDIMTB$ DIMTB[8];
};
__FB_STATIC_ASSERT( sizeof( struct $7FBARRAYIiE ) == 240 );
typedef int64 $19FB_CVA_LIST_TYPEDEF;
struct $9IRCALLARG {
	struct $8FBSYMBOL* PARAM;
	struct $6IRVREG* VR;
	int64 LEVEL;
};
__FB_STATIC_ASSERT( sizeof( struct $9IRCALLARG ) == 24 );
struct $8FBARRAY1I8FBSTRINGE {
	FBSTRING* DATA;
	FBSTRING* PTR;
	int64 SIZE;
	int64 ELEMENT_LEN;
	int64 DIMENSIONS;
	int64 FLAGS;
	struct $16__FB_ARRAYDIMTB$ DIMTB[1];
};
__FB_STATIC_ASSERT( sizeof( struct $8FBARRAY1I8FBSTRINGE ) == 72 );
#define fb_D2L( value ) ((int64)__builtin_nearbyint( value ))
int32 fb_ArrayRedimEx( struct $7FBARRAYIvE*, uint64, int32, int32, uint64, ... );
int32 fb_ArrayRedimObj( struct $7FBARRAYIvE*, uint64, void*, void*, uint64, ... );
int32 fb_ArrayRedimPresvObj( struct $7FBARRAYIvE*, uint64, void*, void*, uint64, ... );
void fb_ArrayDestructStr( struct $7FBARRAYIvE* );
int32 fb_ArrayEraseObj( struct $7FBARRAYIvE*, void*, void* );
int64 fb_ArrayUBound( struct $7FBARRAYIKvE*, int64 );
void* fb_ErrorThrowAt( int32, char*, void*, void* );
int32 fb_FileOpen( FBSTRING*, uint32, uint32, uint32, int32, int32 );
int32 fb_FileClose( int32 );
int32 fb_FilePutStrLarge( int32, int64, void*, int64 );
int32 fb_FileFree( void );
int32 fb_FileKill( FBSTRING* );
double pow( double, double );
double fb_FRACd( double );
FBSTRING* fb_StrInit( void*, int64, void*, int64, int32 );
FBSTRING* fb_StrAssign( void*, int64, void*, int64, int32 );
void fb_StrDelete( FBSTRING* );
void fb_WstrDelete( uint32* );
FBSTRING* fb_StrConcat( FBSTRING*, void*, int64, void*, int64 );
FBSTRING* fb_StrConcatByref( void*, int64, void*, int64, int32 );
int32 fb_StrCompare( void*, int64, void*, int64 );
FBSTRING* fb_StrConcatAssign( void*, int64, void*, int64, int32 );
FBSTRING* fb_StrAllocTempResult( FBSTRING* );
FBSTRING* fb_StrAllocTempDescZ( char* );
FBSTRING* fb_StrAllocTempDescZEx( char*, int64 );
FBSTRING* fb_IntToStr( int32 );
FBSTRING* fb_LongintToStr( int64 );
FBSTRING* fb_ULongintToStr( uint64 );
FBSTRING* fb_DoubleToStr( double );
FBSTRING* fb_StrMid( FBSTRING*, int64, int64 );
void fb_StrAssignMid( FBSTRING*, int64, int64, FBSTRING* );
FBSTRING* fb_StrFill1( int64, int32 );
int64 fb_StrLen( void*, int64 );
uint32 fb_ASC( FBSTRING*, int64 );
int64 fb_StrInstr( int64, FBSTRING*, FBSTRING* );
FBSTRING* fb_TRIM( FBSTRING* );
FBSTRING* fb_RTRIM( FBSTRING* );
int32 fb_VALINT( FBSTRING* );
FBSTRING* fb_HEX_l( uint64 );
FBSTRING* fb_HEXEx_l( uint64, int32 );
FBSTRING* fb_LEFT( FBSTRING*, int64 );
uint32* fb_WstrLeft( uint32*, int64 );
FBSTRING* fb_RIGHT( FBSTRING*, int64 );
static void fb_ctor__irzgas64( void ) __attribute__(( constructor ));
void LISTDELNODE( struct $5TLIST*, void* );
void* LISTGETTAIL( struct $5TLIST* );
void* LISTGETPREV( void* );
static void _ZN11TSTRSETITEMaSERKS_( struct $11TSTRSETITEM*, struct $11TSTRSETITEM* );
typedef int64 $12FB_ERRMSGOPT;
void ERRREPORTEX( int64, char*, int64, $12FB_ERRMSGOPT, char* );
void ERRREPORTWARN( int64, char*, $12FB_ERRMSGOPT, char* );
void ERRREPORTWARNEX( int64, char*, int64, $12FB_ERRMSGOPT, char* );
int64 FBGETOPTION( int64 );
FBSTRING* FBGETENTRYPOINT( void );
int64 SYMBGETREALSIZE( struct $8FBSYMBOL* );
void SYMBGETREALTYPE( struct $8FBSYMBOL*, int64*, struct $8FBSYMBOL** );
int64 SYMBISDATADESC( struct $8FBSYMBOL* );
int64 SYMBISARRAY( struct $8FBSYMBOL* );
$19FB_CVA_LIST_TYPEDEF SYMBGETVALISTTYPE( int64, struct $8FBSYMBOL* );
char* SYMBUNIQUELABEL( void );
char* SYMBGETMANGLEDNAME( struct $8FBSYMBOL* );
char* SYMBGETDBGNAME( struct $8FBSYMBOL* );
struct $8FBSYMBOL* SYMBUDTGETFIRSTFIELD( struct $8FBSYMBOL* );
struct $8FBSYMBOL* SYMBUDTGETNEXTFIELD( struct $8FBSYMBOL* );
struct $8FBSYMBOL* SYMBGETENUMFIRSTELM( struct $8FBSYMBOL* );
struct $8FBSYMBOL* SYMBGETENUMNEXTELM( struct $8FBSYMBOL* );
void SYMBFOREACHGLOBAL( int64, tmp$42 );
int64 HFILEEXISTS( char* );
int64 PATHISABSOLUTE( char* );
FBSTRING* HCURDIR( void );
char* HESCAPE( char* );
char* HESCAPEW( uint32* );
FBSTRING* HREPLACE( char*, char*, char* );
void FLISTINIT( struct $6TFLIST*, int64, int64 );
void FLISTEND( struct $6TFLIST* );
void* FLISTNEWITEM( struct $6TFLIST* );
void FLISTRESET( struct $6TFLIST* );
void* FLISTGETHEAD( struct $6TFLIST* );
void* FLISTGETNEXT( void* );
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$42 );
void IRHLFLUSHSTATICINITIALIZER( struct $8FBSYMBOL* );
static void CFI_WINDOWS_ASM_CODE( FBSTRING* );
static void _ZN13ASM64_CONTEXTC1Ev( struct $13ASM64_CONTEXT* );
static void _ZN13ASM64_CONTEXTaSERKS_( struct $13ASM64_CONTEXT*, struct $13ASM64_CONTEXT* );
static void _ZN13ASM64_CONTEXTD1Ev( struct $13ASM64_CONTEXT* );
static void _ZN6DBGCTXC1Ev( struct $6DBGCTX* );
static void _ZN6DBGCTXaSERKS_( struct $6DBGCTX*, struct $6DBGCTX* );
static void _ZN6DBGCTXD1Ev( struct $6DBGCTX* );
static void _ZN7TDBGSTRC1Ev( struct $7TDBGSTR* );
static void _ZN7TDBGSTRaSERKS_( struct $7TDBGSTR*, struct $7TDBGSTR* );
static void _ZN7TDBGSTRD1Ev( struct $7TDBGSTR* );
static void _ZN8TDBGSTABC1Ev( struct $8TDBGSTAB* );
static void _ZN8TDBGSTABaSERKS_( struct $8TDBGSTAB*, struct $8TDBGSTAB* );
static void _ZN8TDBGSTABD1Ev( struct $8TDBGSTAB* );
static void _EMITDBG( int64, struct $8FBSYMBOL*, int64, char* );
static void CHECK_OPTIM( FBSTRING* );
static void _EMITCONVERT( struct $6IRVREG*, struct $6IRVREG* );
static FBSTRING* HGETDATATYPE_ASM64( struct $8FBSYMBOL*, int64 );
static void HWRITEASM64( FBSTRING*, int64 );
static void _EMITVARINIEND( struct $8FBSYMBOL* );
static void _EMITVARINIPAD( int64 );
static void _EMITVARINIWSTR( int64, uint32*, int64 );
static void _EMITVARINISCOPEBEGIN( struct $8FBSYMBOL*, int64 );
static void _EMITVARINISCOPEEND( void );
static void _EMITFBCTINFBEGIN( void );
static void _EMITFBCTINFEND( void );
static void _SCOPEBEGIN( struct $8FBSYMBOL* );
static void _SCOPEEND( struct $8FBSYMBOL* );
static void _EMITSPILLREGS( void );
static void _EMITLOAD( struct $6IRVREG* );
static void _EMITSCOPEBEGIN( struct $8FBSYMBOL* );
static void _EMITSCOPEEND( struct $8FBSYMBOL* );
static void _EMITMACRO( int64, struct $6IRVREG*, struct $6IRVREG*, struct $6IRVREG* );
void SAVE_CALL( FBSTRING*, struct $6IRVREG*, int64 );
int64 HGETMAGICSTRUCTNUMBER( struct $8FBSYMBOL* );
static void DBG_ADDSTAB( FBSTRING*, uint8, int16, FBSTRING* );
static void REG_FREEABLE( FBSTRING* );
static int64 PW2( int64 );
static void ASM_SECTION( FBSTRING* );
static void EMITOP3_OP4( FBSTRING* );
void DBG_FILENAME( FBSTRING* );
static FBSTRING* HFLOATTOHEX_ASM64( double, int64, int8 );
static int64 DBG_ADDSTR( FBSTRING*, int64 );
static void DBG_EMITSTR( void );
static void DBG_EMITSTAB( void );
static void EDBGEMITHEADER_ASM64( char* );
static void EDBGEMITGLOBALVAR_ASM64( struct $8FBSYMBOL*, int64 );
static void EDBGEMITLOCALVAR_ASM64( struct $8FBSYMBOL*, int64 );
static void EDBGEMITPROCHEADER_ASM64( struct $8FBSYMBOL* );
static void EDBGEMITPROCARG_ASM64( struct $8FBSYMBOL* );
static FBSTRING* HDECLPOINTER_ASM64( int64* );
static void HDECLUDT_ASM64( struct $8FBSYMBOL*, int64 );
static void HDECLENUM_ASM64( struct $8FBSYMBOL* );
static void REG_MARK( struct $8FBSYMBOL* );
static struct $14ASM64_SAVEDREG* ASM64_SPILLREG( int32 );
static void REG_SPILLING( int32 );
static void REG_SAVE( void );
static void REG_ALLOWED( boolean );
static int32 REG_FINDFREE( int32, int64 );
static void REG_CALLPTR( FBSTRING*, FBSTRING* );
static void REG_BRANCH( struct $8FBSYMBOL* );
int32 REG_FINDREAL( int32 );
char* REG_TEMPO( void );
static void REG_TRANSFER( int32, int32 );
static void MEMCLEAR( int64, FBSTRING*, int32 );
static void MEMCOPY( int64, FBSTRING*, FBSTRING*, int32, int32 );
static void _INIT( void );
static void _END( void );
static void HEMITVARIABLE( struct $8FBSYMBOL* );
static void HMAYBEEMITGLOBALVAR( struct $8FBSYMBOL* );
static void NO_ROUNDSD( char* );
static int64 _EMITBEGIN( void );
static void HADDGLOBALCTORDTOR( struct $8FBSYMBOL* );
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 int64 PARAM_ANALYZE( $11FB_DATATYPE, struct $8FBSYMBOL*, int64*, int64*, int64* );
static void REG_FILLM( int64, struct $7FBARRAYIiE*, int64, int64, int64 );
static void REG_FILLR( int64, FBSTRING*, int64, struct $7FBARRAYIiE*, int32 );
static void REG_FILLX( int64, FBSTRING*, int64 );
static void _PROCALLOCARG( struct $8FBSYMBOL*, struct $8FBSYMBOL* );
static void _PROCALLOCLOCAL( struct $8FBSYMBOL*, struct $8FBSYMBOL* );
static void _PROCALLOCSTATICVARS( struct $8FBSYMBOL* );
static void _SETVREGDATATYPE( struct $6IRVREG*, int64, struct $8FBSYMBOL* );
static void _EMITLABEL( struct $8FBSYMBOL* );
static void PREPARE_IDX( struct $6IRVREG*, FBSTRING*, FBSTRING* );
static char* HGETBOPCODE( int64 );
static void RESTORE_VRREG( struct $6IRVREG*, int64 );
static void BOP_FLOAT( int64, struct $6IRVREG*, struct $6IRVREG*, struct $6IRVREG*, FBSTRING*, FBSTRING*, FBSTRING*, FBSTRING*, FBSTRING*, struct $8FBSYMBOL* );
static void HLOADOPERANDSANDWRITEBOP( int64, struct $6IRVREG*, struct $6IRVREG*, struct $6IRVREG*, struct $8FBSYMBOL* );
static void _EMITBOP( int64, struct $6IRVREG*, struct $6IRVREG*, struct $6IRVREG*, struct $8FBSYMBOL* );
static void _EMITUOP( int64, struct $6IRVREG*, struct $6IRVREG* );
static void HEMITROUNDFLOAT( $11FB_DATATYPE, $11FB_DATATYPE );
static void EMITSTORESTRUCT( struct $6IRVREG*, struct $6IRVREG*, FBSTRING*, FBSTRING* );
static int64 HISSTRUCTIN2REGS( struct $6IRVREG* );
static void _EMITSTORE( struct $6IRVREG*, struct $6IRVREG* );
static void _EMITLOADRES( struct $6IRVREG*, struct $6IRVREG* );
static void _EMITADDR( int64, struct $6IRVREG*, struct $6IRVREG* );
static void HDOCALL( struct $8FBSYMBOL*, FBSTRING*, FBSTRING*, struct $6IRVREG*, int64, boolean, boolean );
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 _EMITRETURN( int64 );
static void _EMITJMPTB( struct $6IRVREG*, struct $8FBSYMBOL*, uint64*, struct $8FBSYMBOL**, int64, struct $8FBSYMBOL*, uint64, uint64 );
static void _EMITMEM( int64, struct $6IRVREG*, struct $6IRVREG*, int64 );
static void _EMITCOMMENT( char* );
static void _EMITASMLINE( struct $9ASTASMTOK* );
static void _EMITVARINIBEGIN( struct $8FBSYMBOL* );
static void _EMITVARINII( struct $8FBSYMBOL*, int64 );
static void _EMITVARINIF( struct $8FBSYMBOL*, double );
static void _EMITPROCBEGIN( struct $8FBSYMBOL*, struct $8FBSYMBOL* );
static void _EMITPROCEND( struct $8FBSYMBOL*, struct $8FBSYMBOL*, struct $8FBSYMBOL* );
static void _EMITVARINIOFS( struct $8FBSYMBOL*, struct $8FBSYMBOL*, int64 );
static void _EMITFBCTINFSTRING( char* );
static void _EMITVARINISTR( int64, char*, int64 );
static void _EMITDECL( struct $8FBSYMBOL* );
static void _GLOBAL__I( void ) __attribute__(( constructor ));
static void _GLOBAL__D( void ) __attribute__(( destructor ));
typedef void (*tmp$38)( void );
typedef int64 (*tmp$39)( void );
typedef int64 (*tmp$40)( $14IR_OPTIONVALUE );
typedef int64 (*tmp$41)( int64, int64 );
typedef void (*tmp$43)( struct $8FBSYMBOL*, struct $8FBSYMBOL* );
typedef char* (*tmp$44)( void );
typedef void (*tmp$45)( struct $6IRVREG*, struct $6IRVREG* );
typedef void (*tmp$46)( int64 );
typedef void (*tmp$47)( struct $8FBSYMBOL*, struct $8FBSYMBOL*, struct $8FBSYMBOL* );
typedef void (*tmp$48)( struct $8FBSYMBOL*, struct $6IRVREG*, int64, int64, struct $6IRVREG* );
typedef void (*tmp$49)( struct $9ASTASMTOK* );
typedef void (*tmp$50)( char* );
typedef void (*tmp$51)( int64, struct $6IRVREG*, struct $6IRVREG*, struct $6IRVREG*, struct $8FBSYMBOL* );
typedef void (*tmp$52)( int64, struct $6IRVREG*, struct $6IRVREG* );
typedef void (*tmp$53)( struct $6IRVREG* );
typedef void (*tmp$54)( struct $8FBSYMBOL*, int64, struct $6IRVREG*, int64 );
typedef void (*tmp$55)( struct $8FBSYMBOL*, struct $6IRVREG*, struct $6IRVREG*, int64, int64 );
typedef void (*tmp$56)( int64, struct $8FBSYMBOL* );
typedef void (*tmp$57)( struct $6IRVREG*, struct $8FBSYMBOL*, uint64*, struct $8FBSYMBOL**, int64, struct $8FBSYMBOL*, uint64, uint64 );
typedef void (*tmp$58)( int64, struct $6IRVREG*, struct $6IRVREG*, int64 );
typedef void (*tmp$59)( int64, struct $6IRVREG*, struct $6IRVREG*, struct $6IRVREG* );
typedef void (*tmp$60)( int64, struct $8FBSYMBOL*, int64, char* );
typedef void (*tmp$61)( struct $8FBSYMBOL*, int64 );
typedef void (*tmp$62)( struct $8FBSYMBOL*, double );
typedef void (*tmp$63)( struct $8FBSYMBOL*, struct $8FBSYMBOL*, int64 );
typedef void (*tmp$64)( int64, char*, int64 );
typedef void (*tmp$65)( int64, uint32*, int64 );
typedef void (*tmp$66)( int64 );
typedef void (*tmp$67)( struct $8FBSYMBOL*, int64 );
typedef void (*tmp$68)( char* );
typedef struct $6IRVREG* (*tmp$69)( int64, struct $8FBSYMBOL* );
typedef struct $6IRVREG* (*tmp$70)( int64, struct $8FBSYMBOL*, int64 );
typedef struct $6IRVREG* (*tmp$71)( int64, struct $8FBSYMBOL*, double );
typedef struct $6IRVREG* (*tmp$72)( int64, struct $8FBSYMBOL*, struct $8FBSYMBOL*, int64 );
typedef struct $6IRVREG* (*tmp$73)( int64, struct $8FBSYMBOL*, struct $8FBSYMBOL*, int64, int64, struct $6IRVREG* );
typedef struct $6IRVREG* (*tmp$74)( int64, struct $8FBSYMBOL*, int64, struct $6IRVREG* );
typedef void (*tmp$75)( struct $6IRVREG*, int64, struct $8FBSYMBOL* );
typedef uint64 (*tmp$76)( struct $6IRVREG* );
struct $7IR_VTBL {
	tmp$38 INIT;
	tmp$38 END;
	tmp$39 EMITBEGIN;
	tmp$38 EMITEND;
	tmp$40 GETOPTIONVALUE;
	tmp$41 SUPPORTSOP;
	tmp$42 PROCBEGIN;
	tmp$42 PROCEND;
	tmp$43 PROCALLOCARG;
	tmp$43 PROCALLOCLOCAL;
	tmp$44 PROCGETFRAMEREGNAME;
	tmp$42 SCOPEBEGIN;
	tmp$42 SCOPEEND;
	tmp$42 PROCALLOCSTATICVARS;
	tmp$45 EMITCONVERT;
	tmp$42 EMITLABEL;
	tmp$42 EMITLABELNF;
	tmp$46 EMITRETURN;
	tmp$43 EMITPROCBEGIN;
	tmp$47 EMITPROCEND;
	tmp$48 EMITPUSHARG;
	tmp$49 EMITASMLINE;
	tmp$50 EMITCOMMENT;
	tmp$51 EMITBOP;
	tmp$52 EMITUOP;
	tmp$45 EMITSTORE;
	tmp$38 EMITSPILLREGS;
	tmp$53 EMITLOAD;
	tmp$45 EMITLOADRES;
	tmp$52 EMITSTACK;
	tmp$52 EMITADDR;
	tmp$54 EMITCALL;
	tmp$55 EMITCALLPTR;
	tmp$46 EMITSTACKALIGN;
	tmp$53 EMITJUMPPTR;
	tmp$56 EMITBRANCH;
	tmp$57 EMITJMPTB;
	tmp$58 EMITMEM;
	tmp$59 EMITMACRO;
	tmp$42 EMITSCOPEBEGIN;
	tmp$42 EMITSCOPEEND;
	tmp$42 EMITDECL;
	tmp$60 EMITDBG;
	tmp$42 EMITVARINIBEGIN;
	tmp$42 EMITVARINIEND;
	tmp$61 EMITVARINII;
	tmp$62 EMITVARINIF;
	tmp$63 EMITVARINIOFS;
	tmp$64 EMITVARINISTR;
	tmp$65 EMITVARINIWSTR;
	tmp$66 EMITVARINIPAD;
	tmp$67 EMITVARINISCOPEBEGIN;
	tmp$38 EMITVARINISCOPEEND;
	tmp$38 EMITFBCTINFBEGIN;
	tmp$68 EMITFBCTINFSTRING;
	tmp$38 EMITFBCTINFEND;
	tmp$69 ALLOCVREG;
	tmp$70 ALLOCVRIMM;
	tmp$71 ALLOCVRIMMF;
	tmp$72 ALLOCVRVAR;
	tmp$73 ALLOCVRIDX;
	tmp$74 ALLOCVRPTR;
	tmp$72 ALLOCVROFS;
	tmp$75 SETVREGDATATYPE;
	tmp$76 GETDISTANCE;
	tmp$52 LOADVR;
	tmp$45 STOREVR;
	tmp$46 XCHGTOS;
};
__FB_STATIC_ASSERT( sizeof( struct $7IR_VTBL ) == 544 );
extern struct $7IR_VTBL IRGAS64_VTBL$;
struct $5IRCTX {
	struct $7IR_VTBL VTBL;
	$6IR_OPT OPTIONS;
};
__FB_STATIC_ASSERT( sizeof( struct $5IRCTX ) == 552 );
extern struct $5IRCTX IR$;
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 $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$80$;
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$81$;
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$82$;
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 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 PIC;
	int64 STACKSIZE;
	int64 OBJINFO;
	int64 SHOWINCLUDES;
	$11FB_MODEVIEW MODEVIEW;
	int64 NOCMDLINE;
	int64 RETURNINFLTS;
};
__FB_STATIC_ASSERT( sizeof( struct $12FBCMMLINEOPT ) == 344 );
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 ESCAPESTR;
	int64 DYNAMIC;
	int64 GOSUB;
};
__FB_STATIC_ASSERT( sizeof( struct $8FBOPTION ) == 56 );
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 ) == 1792 );
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 ) == 844712 );
extern struct $7LEX_CTX LEX$;
struct $11IRHLCONTEXT {
	int64 REGCOUNT;
	struct $6TFLIST VREGS;
	struct $5TLIST CALLARGS;
};
__FB_STATIC_ASSERT( sizeof( struct $11IRHLCONTEXT ) == 184 );
extern struct $11IRHLCONTEXT IRHL$;
static struct $6DBGCTX CTXDBG$;
static int32 REGHANDLE$[18];
static struct $13ASM64_REGROOM REGROOM$[18];
static struct $13ASM64_CONTEXT CTX$;
struct $7FBARRAYI7TDBGSTRE {
	struct $7TDBGSTR* DATA;
	struct $7TDBGSTR* PTR;
	int64 SIZE;
	int64 ELEMENT_LEN;
	int64 DIMENSIONS;
	int64 FLAGS;
	struct $16__FB_ARRAYDIMTB$ DIMTB[8];
};
__FB_STATIC_ASSERT( sizeof( struct $7FBARRAYI7TDBGSTRE ) == 240 );
static struct $7FBARRAYI7TDBGSTRE DBGSTR$ = { (struct $7TDBGSTR*)0ull, (struct $7TDBGSTR*)0ull, 0ll, 32ll, 0ll, 8ll, {  } };
struct $7FBARRAYI8TDBGSTABE {
	struct $8TDBGSTAB* DATA;
	struct $8TDBGSTAB* PTR;
	int64 SIZE;
	int64 ELEMENT_LEN;
	int64 DIMENSIONS;
	int64 FLAGS;
	struct $16__FB_ARRAYDIMTB$ DIMTB[8];
};
__FB_STATIC_ASSERT( sizeof( struct $7FBARRAYI8TDBGSTABE ) == 240 );
static struct $7FBARRAYI8TDBGSTABE DBGSTAB$ = { (struct $8TDBGSTAB*)0ull, (struct $8TDBGSTAB*)0ull, 0ll, 32ll, 0ll, 8ll, {  } };
static int64 REMAPTB$[26] = { 7ll, 16ll, 2ll, 3ll, 4ll, 5ll, 6ll, 6ll, 9ll, 10ll, 9ll, 1ll, 8ll, 9ll, 10ll, 11ll, 12ll, 13ll, 14ll, 17ll };
static char* STABSTB$[17] = { (char*)"integer:t1=-1", (char*)"void:t7=-11", (char*)"byte:t2=-6", (char*)"ubyte:t3=-5", (char*)"char:t4=-2", (char*)"short:t5=-3", (char*)"ushort:t6=-7", (char*)"uinteger:t8=-8", (char*)"longint:t9=-31", (char*)"ulongint:t10=-32", (char*)"single:t11=-12", (char*)"double:t12=-13", (char*)"string:t13=s12data:*2,0,64;len:1,64,64;size:1,128,64;;", (char*)"fixstr:t14=-2", (char*)"pchar:t15=*4;", (char*)"boolean:t16=@s8;-16", (char*)"va_list:t17=-11" };
static char* REGSTRQ$[18] = { (char*)"rax", (char*)"rbx", (char*)"rcx", (char*)"rdx", (char*)"rsi", (char*)"rdi", (char*)"rbp", (char*)"rsp", (char*)"r8", (char*)"r9", (char*)"r10", (char*)"r11", (char*)"r12", (char*)"r13", (char*)"r14", (char*)"r15", (char*)"rip", (char*)"* X_Q" };
static char* REGSTRD$[18] = { (char*)"eax", (char*)"ebx", (char*)"ecx", (char*)"edx", (char*)"esi", (char*)"edi", (char*)"ebp", (char*)"esp", (char*)"r8d", (char*)"r9d", (char*)"r10d", (char*)"r11d", (char*)"r12d", (char*)"r13d", (char*)"r14d", (char*)"r15d", (char*)"", (char*)"* X_D" };
static char* REGSTRW$[18] = { (char*)"ax", (char*)"bx", (char*)"cx", (char*)"dx", (char*)"si", (char*)"di", (char*)"bp", (char*)"sp", (char*)"r8w", (char*)"r9w", (char*)"r10w", (char*)"r11w", (char*)"r12w", (char*)"r13w", (char*)"r14w", (char*)"r15w", (char*)"", (char*)"* X_W" };
static char* REGSTRB$[18] = { (char*)"al", (char*)"bl", (char*)"cl", (char*)"dl", (char*)"sil", (char*)"dil", (char*)"bpl", (char*)"spl", (char*)"r8b", (char*)"r9b", (char*)"r10b", (char*)"r11b", (char*)"r12b", (char*)"r13b", (char*)"r14b", (char*)"r15b", (char*)"", (char*)"* X_B" };
static int8 REG_PRIO$[13] = { (int8)11, (int8)10, (int8)8, (int8)9, (int8)3, (int8)2, (int8)12, (int8)13, (int8)14, (int8)15, (int8)1, (int8)5, (int8)4 };
struct $8FBARRAY1IiE {
	int32* DATA;
	int32* PTR;
	int64 SIZE;
	int64 ELEMENT_LEN;
	int64 DIMENSIONS;
	int64 FLAGS;
	struct $16__FB_ARRAYDIMTB$ DIMTB[1];
};
__FB_STATIC_ASSERT( sizeof( struct $8FBARRAY1IiE ) == 72 );
static struct $8FBARRAY1IiE LISTREG$ = { (int32*)0ull, (int32*)0ull, 0ll, 4ll, 1ll, 17ll, {  } };
struct $7IR_VTBL IRGAS64_VTBL$ = { (tmp$38)&_INIT, (tmp$38)&_END, (tmp$39)&_EMITBEGIN, (tmp$38)&_EMITEND, (tmp$40)&_GETOPTIONVALUE, (tmp$41)&_SUPPORTSOP, (tmp$42)&_PROCBEGIN, (tmp$42)&_PROCEND, (tmp$43)&_PROCALLOCARG, (tmp$43)&_PROCALLOCLOCAL, (tmp$44)0ull, (tmp$42)&_SCOPEBEGIN, (tmp$42)&_SCOPEEND, (tmp$42)&_PROCALLOCSTATICVARS, (tmp$45)&_EMITCONVERT, (tmp$42)&_EMITLABEL, (tmp$42)&_EMITLABEL, (tmp$46)&_EMITRETURN, (tmp$43)&_EMITPROCBEGIN, (tmp$47)&_EMITPROCEND, (tmp$48)&IRHLEMITPUSHARG, (tmp$49)&_EMITASMLINE, (tmp$50)&_EMITCOMMENT, (tmp$51)&_EMITBOP, (tmp$52)&_EMITUOP, (tmp$45)&_EMITSTORE, (tmp$38)&_EMITSPILLREGS, (tmp$53)&_EMITLOAD, (tmp$45)&_EMITLOADRES, (tmp$52)0ull, (tmp$52)&_EMITADDR, (tmp$54)&_EMITCALL, (tmp$55)&_EMITCALLPTR, (tmp$46)0ull, (tmp$53)&_EMITJUMPPTR, (tmp$56)&_EMITBRANCH, (tmp$57)&_EMITJMPTB, (tmp$58)&_EMITMEM, (tmp$59)&_EMITMACRO, (tmp$42)&_EMITSCOPEBEGIN, (tmp$42)&_EMITSCOPEEND, (tmp$42)&_EMITDECL, (tmp$60)&_EMITDBG, (tmp$42)&_EMITVARINIBEGIN, (tmp$42)&_EMITVARINIEND, (tmp$61)&_EMITVARINII, (tmp$62)&_EMITVARINIF, (tmp$63)&_EMITVARINIOFS, (tmp$64)&_EMITVARINISTR, (tmp$65)&_EMITVARINIWSTR, (tmp$66)&_EMITVARINIPAD, (tmp$67)&_EMITVARINISCOPEBEGIN, (tmp$38)&_EMITVARINISCOPEEND, (tmp$38)&_EMITFBCTINFBEGIN, (tmp$68)&_EMITFBCTINFSTRING, (tmp$38)&_EMITFBCTINFEND, (tmp$69)&IRHLALLOCVREG, (tmp$70)&IRHLALLOCVRIMM, (tmp$71)&IRHLALLOCVRIMMF, (tmp$72)&IRHLALLOCVRVAR, (tmp$73)&IRHLALLOCVRIDX, (tmp$74)&IRHLALLOCVRPTR, (tmp$72)&IRHLALLOCVROFS, (tmp$75)&_SETVREGDATATYPE, (tmp$76)0ull, (tmp$52)0ull, (tmp$45)0ull, (tmp$46)0ull };

void DBG_FILENAME( FBSTRING* FILENAME$1 )
{
	label$201:;
	int32 vr$1 = fb_StrCompare( (void*)FILENAME$1, -1ll, (void*)((uint8*)&CTXDBG$ + 16ll), -1ll );
	if( (int64)vr$1 == 0ll ) goto label$204;
	{
		FBSTRING TMP$387$2;
		__builtin_memset( &TMP$387$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$387$2, -1ll, (void*)"0", 2ll, 0 );
		DBG_ADDSTAB( FILENAME$1, (uint8)132u, (int16)0, &TMP$387$2 );
		fb_StrDelete( (FBSTRING*)&TMP$387$2 );
		fb_StrAssign( (void*)((uint8*)&CTXDBG$ + 16ll), -1ll, (void*)FILENAME$1, -1ll, 0 );
	}
	label$204:;
	label$203:;
	label$202:;
}

int32 REG_FINDREAL( int32 VREG$1 )
{
	FBSTRING TMP$576$1;
	FBSTRING TMP$577$1;
	FBSTRING TMP$578$1;
	FBSTRING TMP$579$1;
	FBSTRING TMP$580$1;
	int32 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 4ll );
	label$494:;
	int32 REALREG$1;
	__builtin_memset( &REALREG$1, 0, 4ll );
	{
		int32 IREG$2;
		IREG$2 = 0;
		label$499:;
		{
			if( (int64)*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)IREG$2 << (2ll & 63ll))) != (int64)VREG$1 ) goto label$501;
			{
				fb$result$1 = IREG$2;
				goto label$495;
			}
			label$501:;
			label$500:;
		}
		label$497:;
		IREG$2 = (int32)((int64)IREG$2 + 1ll);
		label$496:;
		if( (int64)IREG$2 <= 15ll ) goto label$499;
		label$498:;
	}
	struct $14ASM64_SAVEDREG* V$1;
	V$1 = (struct $14ASM64_SAVEDREG*)0ull;
	if( (int64)*(int32*)((uint8*)&CTX$ + 376ll) <= 0ll ) goto label$503;
	{
		void* vr$12 = FLISTGETHEAD( (struct $6TFLIST*)((uint8*)&CTX$ + 264ll) );
		V$1 = (struct $14ASM64_SAVEDREG*)vr$12;
		label$504:;
		if( V$1 == (struct $14ASM64_SAVEDREG*)0ull ) goto label$505;
		{
			if( (int64)*(int32*)((uint8*)V$1 + 4ll) != (int64)VREG$1 ) goto label$507;
			{
				goto label$505;
			}
			label$507:;
			label$506:;
			void* vr$16 = FLISTGETNEXT( (void*)V$1 );
			V$1 = (struct $14ASM64_SAVEDREG*)vr$16;
		}
		goto label$504;
		label$505:;
	}
	label$503:;
	label$502:;
	if( V$1 != (struct $14ASM64_SAVEDREG*)0ull ) goto label$509;
	{
		FBSTRING TMP$568$2;
		FBSTRING TMP$572$2;
		FBSTRING TMP$573$2;
		FBSTRING TMP$574$2;
		FBSTRING TMP$575$2;
		__builtin_memset( &TMP$568$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$568$2, -1ll, (void*)"", 1ll, 0 );
		HWRITEASM64( &TMP$568$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$568$2 );
		__builtin_memset( &TMP$574$2, 0, 24ll );
		FBSTRING* vr$22 = fb_IntToStr( VREG$1 );
		__builtin_memset( &TMP$572$2, 0, 24ll );
		FBSTRING* vr$25 = fb_StrConcat( &TMP$572$2, (void*)"FOUND AN ERROR : virtual register=", 35ll, (void*)vr$22, -1ll );
		__builtin_memset( &TMP$573$2, 0, 24ll );
		FBSTRING* vr$28 = fb_StrConcat( &TMP$573$2, (void*)vr$25, -1ll, (void*)" no real register corresponding, using KREG_XXX", 48ll );
		fb_StrAssign( (void*)&TMP$574$2, -1ll, (void*)vr$28, -1ll, 0 );
		HWRITEASM64( &TMP$574$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$574$2 );
		__builtin_memset( &TMP$575$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$575$2, -1ll, (void*)"", 1ll, 0 );
		HWRITEASM64( &TMP$575$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$575$2 );
		fb$result$1 = 17;
		goto label$495;
	}
	label$509:;
	label$508:;
	int32 vr$36 = REG_FINDFREE( VREG$1, -1ll );
	REALREG$1 = vr$36;
	__builtin_memset( &TMP$580$1, 0, 24ll );
	FBSTRING* vr$39 = fb_IntToStr( *(int32*)((uint8*)V$1 + 8ll) );
	__builtin_memset( &TMP$576$1, 0, 24ll );
	FBSTRING* vr$44 = fb_StrConcat( &TMP$576$1, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)REALREG$1 << (3ll & 63ll))), 0ll );
	__builtin_memset( &TMP$577$1, 0, 24ll );
	FBSTRING* vr$47 = fb_StrConcat( &TMP$577$1, (void*)vr$44, -1ll, (void*)", QWORD PTR ", 13ll );
	__builtin_memset( &TMP$578$1, 0, 24ll );
	FBSTRING* vr$50 = fb_StrConcat( &TMP$578$1, (void*)vr$47, -1ll, (void*)vr$39, -1ll );
	__builtin_memset( &TMP$579$1, 0, 24ll );
	FBSTRING* vr$53 = fb_StrConcat( &TMP$579$1, (void*)vr$50, -1ll, (void*)"[rbp]", 6ll );
	fb_StrAssign( (void*)&TMP$580$1, -1ll, (void*)vr$53, -1ll, 0 );
	HWRITEASM64( &TMP$580$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$580$1 );
	*(int32*)((uint8*)V$1 + 4ll) = -2;
	fb$result$1 = REALREG$1;
	goto label$495;
	label$495:;
	return fb$result$1;
}

char* REG_TEMPO( void )
{
	char* fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$510:;
	int32 REG$1;
	__builtin_memset( &REG$1, 0, 4ll );
	static int32 COUNTER$1 = 9999999;
	COUNTER$1 = (int32)((int64)COUNTER$1 + 1ll);
	int32 vr$5 = REG_FINDFREE( COUNTER$1, -1ll );
	REG$1 = vr$5;
	fb$result$1 = *(char**)((int64)(char**)REGSTRQ$ + ((int64)REG$1 << (3ll & 63ll)));
	goto label$511;
	label$511:;
	return fb$result$1;
}

void SAVE_CALL( FBSTRING* FUNC$1, struct $6IRVREG* VR$1, int64 VRREG$1 )
{
	int64 TMP$2978$1;
	label$2288:;
	if( VR$1 == (struct $6IRVREG*)0ull ) goto label$2291;
	{
		*(int32*)((int64)(int32*)REGHANDLE$ + (VRREG$1 << (2ll & 63ll))) = -2;
		label$2291:;
	}
	REG_SAVE(  );
	if( *(int64*)((uint8*)&CTX$ + 160ll) != 0ll ) goto label$2293;
	{
		*(int64*)((uint8*)&CTX$ + 160ll) = 1ll;
	}
	label$2293:;
	label$2292:;
	if( (int64)-(*(boolean*)((uint8*)&CTX$ + 416ll)) != -1ll ) goto label$2294;
	int64 vr$2 = FBGETOPTION( 0ll );
	TMP$2978$1 = (int64)-(vr$2 == 2ll);
	goto label$2299;
	label$2294:;
	TMP$2978$1 = 0ll;
	label$2299:;
	if( TMP$2978$1 == 0ll ) goto label$2296;
	{
		FBSTRING TMP$2981$2;
		FBSTRING TMP$2982$2;
		FBSTRING TMP$2983$2;
		__builtin_memset( &TMP$2983$2, 0, 24ll );
		__builtin_memset( &TMP$2981$2, 0, 24ll );
		FBSTRING* vr$7 = fb_StrConcat( &TMP$2981$2, (void*)"call ", 6ll, (void*)FUNC$1, -1ll );
		__builtin_memset( &TMP$2982$2, 0, 24ll );
		FBSTRING* vr$10 = fb_StrConcat( &TMP$2982$2, (void*)vr$7, -1ll, (void*)"@PLT", 5ll );
		fb_StrAssign( (void*)&TMP$2983$2, -1ll, (void*)vr$10, -1ll, 0 );
		HWRITEASM64( &TMP$2983$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2983$2 );
	}
	goto label$2295;
	label$2296:;
	{
		FBSTRING TMP$2984$2;
		FBSTRING TMP$2985$2;
		__builtin_memset( &TMP$2985$2, 0, 24ll );
		__builtin_memset( &TMP$2984$2, 0, 24ll );
		FBSTRING* vr$17 = fb_StrConcat( &TMP$2984$2, (void*)"call ", 6ll, (void*)FUNC$1, -1ll );
		fb_StrAssign( (void*)&TMP$2985$2, -1ll, (void*)vr$17, -1ll, 0 );
		HWRITEASM64( &TMP$2985$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2985$2 );
	}
	label$2295:;
	if( VR$1 == (struct $6IRVREG*)0ull ) goto label$2298;
	{
		*(int32*)((int64)(int32*)REGHANDLE$ + (VRREG$1 << (2ll & 63ll))) = (int32)*(int64*)((uint8*)VR$1 + 24ll);
		label$2298:;
	}
	label$2289:;
}

__attribute__(( constructor )) static void fb_ctor__irzgas64( void )
{
	label$0:;
	label$1:;
}

static void _ZN11TSTRSETITEMaSERKS_( struct $11TSTRSETITEM* THIS$1, struct $11TSTRSETITEM* __FB_RHS__$1 )
{
	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 _ZN13ASM64_CONTEXTC1Ev( struct $13ASM64_CONTEXT* THIS$1 )
{
	__builtin_memset( (int64*)THIS$1, 0, 8ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 8ll), 0, 8ll );
	__builtin_memset( (FBSTRING*)((uint8*)THIS$1 + 16ll), 0, 24ll );
	__builtin_memset( (FBSTRING*)((uint8*)THIS$1 + 40ll), 0, 24ll );
	__builtin_memset( (FBSTRING*)((uint8*)THIS$1 + 64ll), 0, 24ll );
	__builtin_memset( (FBSTRING*)((uint8*)THIS$1 + 88ll), 0, 24ll );
	__builtin_memset( (FBSTRING*)((uint8*)THIS$1 + 112ll), 0, 24ll );
	__builtin_memset( (FBSTRING*)((uint8*)THIS$1 + 136ll), 0, 24ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 160ll), 0, 8ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 168ll), 0, 8ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 176ll), 0, 8ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 184ll), 0, 8ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 192ll), 0, 8ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 200ll), 0, 8ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 208ll), 0, 8ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 216ll), 0, 8ll );
	__builtin_memset( (int32*)((uint8*)THIS$1 + 224ll), 0, 4ll );
	__builtin_memset( (int32*)((uint8*)THIS$1 + 228ll), 0, 4ll );
	__builtin_memset( (int32*)((uint8*)THIS$1 + 232ll), 0, 4ll );
	__builtin_memset( (int32*)((uint8*)THIS$1 + 236ll), 0, 4ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 240ll), 0, 8ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 248ll), 0, 8ll );
	__builtin_memset( (boolean*)((uint8*)THIS$1 + 256ll), 0, 1ll );
	__builtin_memset( (boolean*)((uint8*)THIS$1 + 257ll), 0, 1ll );
	__builtin_memset( (struct $6TFLIST*)((uint8*)THIS$1 + 264ll), 0, 112ll );
	__builtin_memset( (int32*)((uint8*)THIS$1 + 376ll), 0, 4ll );
	__builtin_memset( (struct $8FBSYMBOL**)((uint8*)THIS$1 + 384ll), 0, 8ll );
	__builtin_memset( (struct $8FBSYMBOL**)((uint8*)THIS$1 + 392ll), 0, 8ll );
	__builtin_memset( (boolean*)((uint8*)THIS$1 + 400ll), 0, 1ll );
	__builtin_memset( ($13FB_COMPTARGET*)((uint8*)THIS$1 + 408ll), 0, 8ll );
	__builtin_memset( (boolean*)((uint8*)THIS$1 + 416ll), 0, 1ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 424ll), 0, 8ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 432ll), 0, 8ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 440ll), 0, 8ll );
	label$10:;
	label$11:;
}

static void _ZN13ASM64_CONTEXTaSERKS_( struct $13ASM64_CONTEXT* THIS$1, struct $13ASM64_CONTEXT* __FB_RHS__$1 )
{
	label$12:;
	*(int64*)THIS$1 = *(int64*)__FB_RHS__$1;
	*(int64*)((uint8*)THIS$1 + 8ll) = *(int64*)((uint8*)__FB_RHS__$1 + 8ll);
	fb_StrAssign( (void*)((uint8*)THIS$1 + 16ll), -1ll, (void*)((uint8*)__FB_RHS__$1 + 16ll), -1ll, 0 );
	fb_StrAssign( (void*)((uint8*)THIS$1 + 40ll), -1ll, (void*)((uint8*)__FB_RHS__$1 + 40ll), -1ll, 0 );
	fb_StrAssign( (void*)((uint8*)THIS$1 + 64ll), -1ll, (void*)((uint8*)__FB_RHS__$1 + 64ll), -1ll, 0 );
	fb_StrAssign( (void*)((uint8*)THIS$1 + 88ll), -1ll, (void*)((uint8*)__FB_RHS__$1 + 88ll), -1ll, 0 );
	fb_StrAssign( (void*)((uint8*)THIS$1 + 112ll), -1ll, (void*)((uint8*)__FB_RHS__$1 + 112ll), -1ll, 0 );
	fb_StrAssign( (void*)((uint8*)THIS$1 + 136ll), -1ll, (void*)((uint8*)__FB_RHS__$1 + 136ll), -1ll, 0 );
	*(int64*)((uint8*)THIS$1 + 160ll) = *(int64*)((uint8*)__FB_RHS__$1 + 160ll);
	*(int64*)((uint8*)THIS$1 + 168ll) = *(int64*)((uint8*)__FB_RHS__$1 + 168ll);
	*(int64*)((uint8*)THIS$1 + 176ll) = *(int64*)((uint8*)__FB_RHS__$1 + 176ll);
	*(int64*)((uint8*)THIS$1 + 184ll) = *(int64*)((uint8*)__FB_RHS__$1 + 184ll);
	*(int64*)((uint8*)THIS$1 + 192ll) = *(int64*)((uint8*)__FB_RHS__$1 + 192ll);
	*(int64*)((uint8*)THIS$1 + 200ll) = *(int64*)((uint8*)__FB_RHS__$1 + 200ll);
	*(int64*)((uint8*)THIS$1 + 208ll) = *(int64*)((uint8*)__FB_RHS__$1 + 208ll);
	*(int64*)((uint8*)THIS$1 + 216ll) = *(int64*)((uint8*)__FB_RHS__$1 + 216ll);
	*(int32*)((uint8*)THIS$1 + 224ll) = *(int32*)((uint8*)__FB_RHS__$1 + 224ll);
	*(int32*)((uint8*)THIS$1 + 228ll) = *(int32*)((uint8*)__FB_RHS__$1 + 228ll);
	*(int32*)((uint8*)THIS$1 + 232ll) = *(int32*)((uint8*)__FB_RHS__$1 + 232ll);
	*(int32*)((uint8*)THIS$1 + 236ll) = *(int32*)((uint8*)__FB_RHS__$1 + 236ll);
	*(int64*)((uint8*)THIS$1 + 240ll) = *(int64*)((uint8*)__FB_RHS__$1 + 240ll);
	*(int64*)((uint8*)THIS$1 + 248ll) = *(int64*)((uint8*)__FB_RHS__$1 + 248ll);
	*(boolean*)((uint8*)THIS$1 + 256ll) = *(boolean*)((uint8*)__FB_RHS__$1 + 256ll);
	*(boolean*)((uint8*)THIS$1 + 257ll) = *(boolean*)((uint8*)__FB_RHS__$1 + 257ll);
	__builtin_memcpy( (struct $6TFLIST*)((uint8*)THIS$1 + 264ll), (struct $6TFLIST*)((uint8*)__FB_RHS__$1 + 264ll), 112 );
	*(int32*)((uint8*)THIS$1 + 376ll) = *(int32*)((uint8*)__FB_RHS__$1 + 376ll);
	*(struct $8FBSYMBOL**)((uint8*)THIS$1 + 384ll) = *(struct $8FBSYMBOL**)((uint8*)__FB_RHS__$1 + 384ll);
	*(struct $8FBSYMBOL**)((uint8*)THIS$1 + 392ll) = *(struct $8FBSYMBOL**)((uint8*)__FB_RHS__$1 + 392ll);
	*(boolean*)((uint8*)THIS$1 + 400ll) = *(boolean*)((uint8*)__FB_RHS__$1 + 400ll);
	*($13FB_COMPTARGET*)((uint8*)THIS$1 + 408ll) = *($13FB_COMPTARGET*)((uint8*)__FB_RHS__$1 + 408ll);
	*(boolean*)((uint8*)THIS$1 + 416ll) = *(boolean*)((uint8*)__FB_RHS__$1 + 416ll);
	*(int64*)((uint8*)THIS$1 + 424ll) = *(int64*)((uint8*)__FB_RHS__$1 + 424ll);
	*(int64*)((uint8*)THIS$1 + 432ll) = *(int64*)((uint8*)__FB_RHS__$1 + 432ll);
	*(int64*)((uint8*)THIS$1 + 440ll) = *(int64*)((uint8*)__FB_RHS__$1 + 440ll);
	label$13:;
}

static void _ZN13ASM64_CONTEXTD1Ev( struct $13ASM64_CONTEXT* THIS$1 )
{
	label$16:;
	label$17:;
	fb_StrDelete( (FBSTRING*)((uint8*)THIS$1 + 136ll) );
	fb_StrDelete( (FBSTRING*)((uint8*)THIS$1 + 112ll) );
	fb_StrDelete( (FBSTRING*)((uint8*)THIS$1 + 88ll) );
	fb_StrDelete( (FBSTRING*)((uint8*)THIS$1 + 64ll) );
	fb_StrDelete( (FBSTRING*)((uint8*)THIS$1 + 40ll) );
	fb_StrDelete( (FBSTRING*)((uint8*)THIS$1 + 16ll) );
}

static void _ZN6DBGCTXC1Ev( struct $6DBGCTX* THIS$1 )
{
	__builtin_memset( (uint64*)THIS$1, 0, 8ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 8ll), 0, 8ll );
	__builtin_memset( (FBSTRING*)((uint8*)THIS$1 + 16ll), 0, 24ll );
	__builtin_memset( (FBSTRING*)((uint8*)THIS$1 + 40ll), 0, 24ll );
	__builtin_memset( (struct $8FBSYMBOL**)((uint8*)THIS$1 + 64ll), 0, 8ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 72ll), 0, 8ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 80ll), 0, 8ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 88ll), 0, 8ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 96ll), 0, 8ll );
	__builtin_memset( (int64*)((uint8*)THIS$1 + 104ll), 0, 8ll );
	label$18:;
	label$19:;
}

static void _ZN6DBGCTXaSERKS_( struct $6DBGCTX* THIS$1, struct $6DBGCTX* __FB_RHS__$1 )
{
	label$20:;
	*(uint64*)THIS$1 = *(uint64*)__FB_RHS__$1;
	*(int64*)((uint8*)THIS$1 + 8ll) = *(int64*)((uint8*)__FB_RHS__$1 + 8ll);
	fb_StrAssign( (void*)((uint8*)THIS$1 + 16ll), -1ll, (void*)((uint8*)__FB_RHS__$1 + 16ll), -1ll, 0 );
	fb_StrAssign( (void*)((uint8*)THIS$1 + 40ll), -1ll, (void*)((uint8*)__FB_RHS__$1 + 40ll), -1ll, 0 );
	*(struct $8FBSYMBOL**)((uint8*)THIS$1 + 64ll) = *(struct $8FBSYMBOL**)((uint8*)__FB_RHS__$1 + 64ll);
	*(int64*)((uint8*)THIS$1 + 72ll) = *(int64*)((uint8*)__FB_RHS__$1 + 72ll);
	*(int64*)((uint8*)THIS$1 + 80ll) = *(int64*)((uint8*)__FB_RHS__$1 + 80ll);
	*(int64*)((uint8*)THIS$1 + 88ll) = *(int64*)((uint8*)__FB_RHS__$1 + 88ll);
	*(int64*)((uint8*)THIS$1 + 96ll) = *(int64*)((uint8*)__FB_RHS__$1 + 96ll);
	*(int64*)((uint8*)THIS$1 + 104ll) = *(int64*)((uint8*)__FB_RHS__$1 + 104ll);
	label$21:;
}

static void _ZN6DBGCTXD1Ev( struct $6DBGCTX* THIS$1 )
{
	label$24:;
	label$25:;
	fb_StrDelete( (FBSTRING*)((uint8*)THIS$1 + 40ll) );
	fb_StrDelete( (FBSTRING*)((uint8*)THIS$1 + 16ll) );
}

static void _ZN7TDBGSTRC1Ev( struct $7TDBGSTR* THIS$1 )
{
	__builtin_memset( (int64*)THIS$1, 0, 8ll );
	__builtin_memset( (FBSTRING*)((uint8*)THIS$1 + 8ll), 0, 24ll );
	label$26:;
	label$27:;
}

static void _ZN7TDBGSTRaSERKS_( struct $7TDBGSTR* THIS$1, struct $7TDBGSTR* __FB_RHS__$1 )
{
	label$28:;
	*(int64*)THIS$1 = *(int64*)__FB_RHS__$1;
	fb_StrAssign( (void*)((uint8*)THIS$1 + 8ll), -1ll, (void*)((uint8*)__FB_RHS__$1 + 8ll), -1ll, 0 );
	label$29:;
}

static void _ZN7TDBGSTRD1Ev( struct $7TDBGSTR* THIS$1 )
{
	label$32:;
	label$33:;
	fb_StrDelete( (FBSTRING*)((uint8*)THIS$1 + 8ll) );
}

static void _ZN8TDBGSTABC1Ev( struct $8TDBGSTAB* THIS$1 )
{
	__builtin_memset( (int64*)THIS$1, 0, 8ll );
	__builtin_memset( (FBSTRING*)((uint8*)THIS$1 + 8ll), 0, 24ll );
	label$34:;
	label$35:;
}

static void _ZN8TDBGSTABaSERKS_( struct $8TDBGSTAB* THIS$1, struct $8TDBGSTAB* __FB_RHS__$1 )
{
	label$36:;
	*(int64*)THIS$1 = *(int64*)__FB_RHS__$1;
	fb_StrAssign( (void*)((uint8*)THIS$1 + 8ll), -1ll, (void*)((uint8*)__FB_RHS__$1 + 8ll), -1ll, 0 );
	label$37:;
}

static void _ZN8TDBGSTABD1Ev( struct $8TDBGSTAB* THIS$1 )
{
	label$40:;
	label$41:;
	fb_StrDelete( (FBSTRING*)((uint8*)THIS$1 + 8ll) );
}

static void CHECK_OPTIM( FBSTRING* CODE$1 )
{
	label$42:;
	FBSTRING PART1$1;
	__builtin_memset( &PART1$1, 0, 24ll );
	FBSTRING PART2$1;
	__builtin_memset( &PART2$1, 0, 24ll );
	FBSTRING INSTRUC$1;
	__builtin_memset( &INSTRUC$1, 0, 24ll );
	FBSTRING NEWCODE$1;
	__builtin_memset( &NEWCODE$1, 0, 24ll );
	static FBSTRING PREVPART1$1;
	static FBSTRING PREVPART2$1;
	static FBSTRING PREVINSTRUC$1;
	static int32 PREVWPOS$1;
	static int32 FLAG$1;
	int32 POSCHAR1$1;
	__builtin_memset( &POSCHAR1$1, 0, 4ll );
	int32 POSCHAR2$1;
	__builtin_memset( &POSCHAR2$1, 0, 4ll );
	int32 WRITEPOS$1;
	__builtin_memset( &WRITEPOS$1, 0, 4ll );
	int64 vr$7 = fb_StrLen( (void*)CODE$1, -1ll );
	if( vr$7 != 0ll ) goto label$45;
	{
		fb_StrAssign( (void*)&PREVPART1$1, -1ll, (void*)"", 1ll, 0 );
		fb_StrAssign( (void*)&PREVPART2$1, -1ll, (void*)"", 1ll, 0 );
		fb_StrAssign( (void*)&PREVINSTRUC$1, -1ll, (void*)"", 1ll, 0 );
		FLAG$1 = 0;
		fb_StrDelete( (FBSTRING*)&NEWCODE$1 );
		fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
		fb_StrDelete( (FBSTRING*)&PART2$1 );
		fb_StrDelete( (FBSTRING*)&PART1$1 );
		goto label$43;
	}
	label$45:;
	label$44:;
	if( (int64)FLAG$1 != 2ll ) goto label$47;
	{
		FBSTRING TMP$192$2;
		__builtin_memset( &TMP$192$2, 0, 24ll );
		FBSTRING* vr$15 = fb_StrConcat( &TMP$192$2, (void*)&PREVPART1$1, -1ll, (void*)":", 2ll );
		int64 vr$16 = fb_StrInstr( 1ll, (FBSTRING*)CODE$1, (FBSTRING*)vr$15 );
		if( vr$16 == 0ll ) goto label$49;
		{
			FBSTRING* vr$17 = fb_StrAllocTempDescZEx( (char*)"#O9", 3ll );
			fb_StrAssignMid( (FBSTRING*)((uint8*)&CTX$ + 112ll), (int64)PREVWPOS$1, -1ll, (FBSTRING*)vr$17 );
		}
		label$49:;
		label$48:;
		fb_StrAssign( (void*)&PREVPART1$1, -1ll, (void*)"", 1ll, 0 );
		fb_StrAssign( (void*)&PREVPART2$1, -1ll, (void*)"", 1ll, 0 );
		fb_StrAssign( (void*)&PREVINSTRUC$1, -1ll, (void*)"", 1ll, 0 );
		FLAG$1 = 0;
		fb_StrDelete( (FBSTRING*)&NEWCODE$1 );
		fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
		fb_StrDelete( (FBSTRING*)&PART2$1 );
		fb_StrDelete( (FBSTRING*)&PART1$1 );
		goto label$43;
	}
	label$47:;
	label$46:;
	{
		FBSTRING TMP$194$2;
		FBSTRING* vr$24 = fb_LEFT( (FBSTRING*)CODE$1, 3ll );
		fb_StrInit( (void*)&TMP$194$2, -1ll, (void*)vr$24, -1ll, 0 );
		int32 vr$27 = fb_StrCompare( (void*)&TMP$194$2, -1ll, (void*)"mov", 4ll );
		if( (int64)vr$27 != 0ll ) goto label$51;
		label$52:;
		{
			int64 vr$30 = fb_StrLen( (void*)((uint8*)&CTX$ + 112ll), -1ll );
			WRITEPOS$1 = (int32)(vr$30 + 1ll);
			FBSTRING* vr$33 = fb_StrAllocTempDescZEx( (char*)" ", 1ll );
			int64 vr$34 = fb_StrInstr( 1ll, (FBSTRING*)CODE$1, (FBSTRING*)vr$33 );
			POSCHAR1$1 = (int32)vr$34;
			FBSTRING* vr$38 = fb_LEFT( (FBSTRING*)CODE$1, (int64)POSCHAR1$1 + -1ll );
			fb_StrAssign( (void*)&INSTRUC$1, -1ll, (void*)vr$38, -1ll, 0 );
			FBSTRING* vr$40 = fb_StrAllocTempDescZEx( (char*)",", 1ll );
			int64 vr$41 = fb_StrInstr( 1ll, (FBSTRING*)CODE$1, (FBSTRING*)vr$40 );
			POSCHAR2$1 = (int32)vr$41;
			FBSTRING* vr$49 = fb_StrMid( (FBSTRING*)CODE$1, (int64)POSCHAR1$1 + 1ll, ((int64)POSCHAR2$1 - (int64)POSCHAR1$1) + -1ll );
			FBSTRING* vr$50 = fb_TRIM( (FBSTRING*)vr$49 );
			fb_StrAssign( (void*)&PART1$1, -1ll, (void*)vr$50, -1ll, 0 );
			FBSTRING* vr$52 = fb_StrAllocTempDescZEx( (char*)"#", 1ll );
			int64 vr$53 = fb_StrInstr( 1ll, (FBSTRING*)CODE$1, (FBSTRING*)vr$52 );
			POSCHAR1$1 = (int32)vr$53;
			if( (int64)POSCHAR1$1 != 0ll ) goto label$54;
			{
				int64 vr$56 = fb_StrLen( (void*)CODE$1, -1ll );
				POSCHAR1$1 = (int32)vr$56;
			}
			goto label$53;
			label$54:;
			{
				POSCHAR1$1 = (int32)((int64)POSCHAR1$1 + -2ll);
			}
			label$53:;
			FBSTRING* vr$66 = fb_StrMid( (FBSTRING*)CODE$1, (int64)POSCHAR2$1 + 1ll, (int64)POSCHAR1$1 - (int64)POSCHAR2$1 );
			FBSTRING* vr$67 = fb_TRIM( (FBSTRING*)vr$66 );
			fb_StrAssign( (void*)&PART2$1, -1ll, (void*)vr$67, -1ll, 0 );
			int32 vr$71 = fb_StrCompare( (void*)&PART1$1, -1ll, (void*)&PART2$1, -1ll );
			if( (int64)vr$71 != 0ll ) goto label$56;
			{
				FBSTRING TMP$200$4;
				__builtin_memset( &TMP$200$4, 0, 24ll );
				FBSTRING* vr$75 = fb_StrConcat( &TMP$200$4, (void*)"#O0", 4ll, (void*)CODE$1, -1ll );
				fb_StrAssign( (void*)CODE$1, -1ll, (void*)vr$75, -1ll, 0 );
				fb_StrAssign( (void*)&PREVPART1$1, -1ll, (void*)"", 1ll, 0 );
				fb_StrAssign( (void*)&PREVPART2$1, -1ll, (void*)"", 1ll, 0 );
				fb_StrAssign( (void*)&PREVINSTRUC$1, -1ll, (void*)"", 1ll, 0 );
				FLAG$1 = 0;
				fb_StrDelete( (FBSTRING*)&TMP$194$2 );
				fb_StrDelete( (FBSTRING*)&NEWCODE$1 );
				fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
				fb_StrDelete( (FBSTRING*)&PART2$1 );
				fb_StrDelete( (FBSTRING*)&PART1$1 );
				goto label$43;
			}
			label$56:;
			label$55:;
		}
		goto label$50;
		label$51:;
		int32 vr$82 = fb_StrCompare( (void*)&TMP$194$2, -1ll, (void*)"lea", 4ll );
		if( (int64)vr$82 != 0ll ) goto label$57;
		label$58:;
		{
			int64 vr$85 = fb_StrLen( (void*)((uint8*)&CTX$ + 112ll), -1ll );
			WRITEPOS$1 = (int32)(vr$85 + 1ll);
			FBSTRING* vr$88 = fb_StrAllocTempDescZEx( (char*)" ", 1ll );
			int64 vr$89 = fb_StrInstr( 1ll, (FBSTRING*)CODE$1, (FBSTRING*)vr$88 );
			POSCHAR1$1 = (int32)vr$89;
			FBSTRING* vr$93 = fb_LEFT( (FBSTRING*)CODE$1, (int64)POSCHAR1$1 + -1ll );
			fb_StrAssign( (void*)&INSTRUC$1, -1ll, (void*)vr$93, -1ll, 0 );
			FBSTRING* vr$95 = fb_StrAllocTempDescZEx( (char*)",", 1ll );
			int64 vr$96 = fb_StrInstr( 1ll, (FBSTRING*)CODE$1, (FBSTRING*)vr$95 );
			POSCHAR2$1 = (int32)vr$96;
			FBSTRING* vr$104 = fb_StrMid( (FBSTRING*)CODE$1, (int64)POSCHAR1$1 + 1ll, ((int64)POSCHAR2$1 - (int64)POSCHAR1$1) + -1ll );
			FBSTRING* vr$105 = fb_TRIM( (FBSTRING*)vr$104 );
			fb_StrAssign( (void*)&PART1$1, -1ll, (void*)vr$105, -1ll, 0 );
			FBSTRING* vr$107 = fb_StrAllocTempDescZEx( (char*)"#", 1ll );
			int64 vr$108 = fb_StrInstr( 1ll, (FBSTRING*)CODE$1, (FBSTRING*)vr$107 );
			POSCHAR1$1 = (int32)vr$108;
			if( (int64)POSCHAR1$1 != 0ll ) goto label$60;
			{
				int64 vr$111 = fb_StrLen( (void*)CODE$1, -1ll );
				POSCHAR1$1 = (int32)vr$111;
			}
			goto label$59;
			label$60:;
			{
				POSCHAR1$1 = (int32)((int64)POSCHAR1$1 + -2ll);
			}
			label$59:;
			FBSTRING* vr$121 = fb_StrMid( (FBSTRING*)CODE$1, (int64)POSCHAR2$1 + 1ll, (int64)POSCHAR1$1 - (int64)POSCHAR2$1 );
			FBSTRING* vr$122 = fb_TRIM( (FBSTRING*)vr$121 );
			fb_StrAssign( (void*)&PART2$1, -1ll, (void*)vr$122, -1ll, 0 );
			FBSTRING* vr$124 = fb_StrAllocTempDescZEx( (char*)"   add ", 7ll );
			int64 vr$125 = fb_StrInstr( 1ll, (FBSTRING*)CODE$1, (FBSTRING*)vr$124 );
			if( vr$125 == 0ll ) goto label$62;
			{
				fb_StrAssign( (void*)&PREVPART1$1, -1ll, (void*)"", 1ll, 0 );
				fb_StrAssign( (void*)&PREVPART2$1, -1ll, (void*)"", 1ll, 0 );
				fb_StrDelete( (FBSTRING*)&TMP$194$2 );
				fb_StrDelete( (FBSTRING*)&NEWCODE$1 );
				fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
				fb_StrDelete( (FBSTRING*)&PART2$1 );
				fb_StrDelete( (FBSTRING*)&PART1$1 );
				goto label$43;
			}
			label$62:;
			label$61:;
			FLAG$1 = 1;
			fb_StrAssign( (void*)&PREVPART1$1, -1ll, (void*)&PART1$1, -1ll, 0 );
			fb_StrAssign( (void*)&PREVPART2$1, -1ll, (void*)&PART2$1, -1ll, 0 );
			PREVWPOS$1 = WRITEPOS$1;
			fb_StrDelete( (FBSTRING*)&TMP$194$2 );
			fb_StrDelete( (FBSTRING*)&NEWCODE$1 );
			fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
			fb_StrDelete( (FBSTRING*)&PART2$1 );
			fb_StrDelete( (FBSTRING*)&PART1$1 );
			goto label$43;
		}
		goto label$50;
		label$57:;
		int32 vr$139 = fb_StrCompare( (void*)&TMP$194$2, -1ll, (void*)"jmp", 4ll );
		if( (int64)vr$139 != 0ll ) goto label$63;
		label$64:;
		{
			int64 vr$142 = fb_StrLen( (void*)((uint8*)&CTX$ + 112ll), -1ll );
			WRITEPOS$1 = (int32)(vr$142 + 1ll);
			FBSTRING* vr$145 = fb_StrAllocTempDescZEx( (char*)" ", 1ll );
			int64 vr$146 = fb_StrInstr( 1ll, (FBSTRING*)CODE$1, (FBSTRING*)vr$145 );
			POSCHAR1$1 = (int32)vr$146;
			FBSTRING* vr$150 = fb_LEFT( (FBSTRING*)CODE$1, (int64)POSCHAR1$1 + -1ll );
			fb_StrAssign( (void*)&INSTRUC$1, -1ll, (void*)vr$150, -1ll, 0 );
			FBSTRING* vr$152 = fb_StrAllocTempDescZEx( (char*)",", 1ll );
			int64 vr$153 = fb_StrInstr( 1ll, (FBSTRING*)CODE$1, (FBSTRING*)vr$152 );
			POSCHAR2$1 = (int32)vr$153;
			FBSTRING* vr$161 = fb_StrMid( (FBSTRING*)CODE$1, (int64)POSCHAR1$1 + 1ll, ((int64)POSCHAR2$1 - (int64)POSCHAR1$1) + -1ll );
			FBSTRING* vr$162 = fb_TRIM( (FBSTRING*)vr$161 );
			fb_StrAssign( (void*)&PART1$1, -1ll, (void*)vr$162, -1ll, 0 );
			FBSTRING* vr$164 = fb_StrAllocTempDescZEx( (char*)"#", 1ll );
			int64 vr$165 = fb_StrInstr( 1ll, (FBSTRING*)CODE$1, (FBSTRING*)vr$164 );
			POSCHAR1$1 = (int32)vr$165;
			if( (int64)POSCHAR1$1 != 0ll ) goto label$66;
			{
				int64 vr$168 = fb_StrLen( (void*)CODE$1, -1ll );
				POSCHAR1$1 = (int32)vr$168;
			}
			goto label$65;
			label$66:;
			{
				POSCHAR1$1 = (int32)((int64)POSCHAR1$1 + -2ll);
			}
			label$65:;
			FBSTRING* vr$178 = fb_StrMid( (FBSTRING*)CODE$1, (int64)POSCHAR2$1 + 1ll, (int64)POSCHAR1$1 - (int64)POSCHAR2$1 );
			FBSTRING* vr$179 = fb_TRIM( (FBSTRING*)vr$178 );
			fb_StrAssign( (void*)&PART2$1, -1ll, (void*)vr$179, -1ll, 0 );
			int32 vr$182 = fb_StrCompare( (void*)&PART1$1, -1ll, (void*)&PREVPART1$1, -1ll );
			if( (int64)vr$182 != 0ll ) goto label$68;
			{
				FBSTRING TMP$208$4;
				FBSTRING TMP$209$4;
				FBSTRING TMP$210$4;
				FBSTRING TMP$211$4;
				FBSTRING TMP$212$4;
				FBSTRING TMP$213$4;
				FBSTRING* vr$184 = fb_StrAllocTempDescZEx( (char*)"#10", 3ll );
				fb_StrAssignMid( (FBSTRING*)((uint8*)&CTX$ + 112ll), (int64)PREVWPOS$1, -1ll, (FBSTRING*)vr$184 );
				FBSTRING* vr$188 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
				__builtin_memset( &TMP$208$4, 0, 24ll );
				FBSTRING* vr$191 = fb_StrConcat( &TMP$208$4, (void*)"#10", 4ll, (void*)CODE$1, -1ll );
				__builtin_memset( &TMP$209$4, 0, 24ll );
				FBSTRING* vr$194 = fb_StrConcat( &TMP$209$4, (void*)vr$191, -1ll, (void*)"\x0A", 2ll );
				__builtin_memset( &TMP$210$4, 0, 24ll );
				FBSTRING* vr$197 = fb_StrConcat( &TMP$210$4, (void*)vr$194, -1ll, (void*)vr$188, -1ll );
				__builtin_memset( &TMP$211$4, 0, 24ll );
				FBSTRING* vr$200 = fb_StrConcat( &TMP$211$4, (void*)vr$197, -1ll, (void*)"jmp ", 5ll );
				__builtin_memset( &TMP$212$4, 0, 24ll );
				FBSTRING* vr$203 = fb_StrConcat( &TMP$212$4, (void*)vr$200, -1ll, (void*)&PREVPART2$1, -1ll );
				__builtin_memset( &TMP$213$4, 0, 24ll );
				FBSTRING* vr$206 = fb_StrConcat( &TMP$213$4, (void*)vr$203, -1ll, (void*)" #Optim 10", 11ll );
				fb_StrAssign( (void*)CODE$1, -1ll, (void*)vr$206, -1ll, 0 );
				fb_StrAssign( (void*)&PREVPART1$1, -1ll, (void*)"", 1ll, 0 );
				fb_StrAssign( (void*)&PREVPART2$1, -1ll, (void*)"", 1ll, 0 );
				fb_StrAssign( (void*)&PREVINSTRUC$1, -1ll, (void*)"", 1ll, 0 );
				FLAG$1 = 0;
				fb_StrDelete( (FBSTRING*)&TMP$194$2 );
				fb_StrDelete( (FBSTRING*)&NEWCODE$1 );
				fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
				fb_StrDelete( (FBSTRING*)&PART2$1 );
				fb_StrDelete( (FBSTRING*)&PART1$1 );
				goto label$43;
			}
			goto label$67;
			label$68:;
			{
				fb_StrAssign( (void*)&PREVPART1$1, -1ll, (void*)&PART1$1, -1ll, 0 );
				FLAG$1 = 2;
				PREVWPOS$1 = WRITEPOS$1;
				fb_StrDelete( (FBSTRING*)&TMP$194$2 );
				fb_StrDelete( (FBSTRING*)&NEWCODE$1 );
				fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
				fb_StrDelete( (FBSTRING*)&PART2$1 );
				fb_StrDelete( (FBSTRING*)&PART1$1 );
				goto label$43;
			}
			label$67:;
		}
		goto label$50;
		label$63:;
		int32 vr$219 = fb_StrCompare( (void*)&TMP$194$2, -1ll, (void*)"cmp", 4ll );
		if( (int64)vr$219 != 0ll ) goto label$69;
		label$70:;
		{
			int64 vr$221 = fb_StrLen( (void*)&PREVPART1$1, -1ll );
			if( vr$221 == 0ll ) goto label$72;
			{
				if( (int64)FLAG$1 == 1ll ) goto label$74;
				{
					int64 vr$224 = fb_StrLen( (void*)((uint8*)&CTX$ + 112ll), -1ll );
					WRITEPOS$1 = (int32)(vr$224 + 1ll);
					FBSTRING* vr$227 = fb_StrAllocTempDescZEx( (char*)" ", 1ll );
					int64 vr$228 = fb_StrInstr( 1ll, (FBSTRING*)CODE$1, (FBSTRING*)vr$227 );
					POSCHAR1$1 = (int32)vr$228;
					FBSTRING* vr$232 = fb_LEFT( (FBSTRING*)CODE$1, (int64)POSCHAR1$1 + -1ll );
					fb_StrAssign( (void*)&INSTRUC$1, -1ll, (void*)vr$232, -1ll, 0 );
					FBSTRING* vr$234 = fb_StrAllocTempDescZEx( (char*)",", 1ll );
					int64 vr$235 = fb_StrInstr( 1ll, (FBSTRING*)CODE$1, (FBSTRING*)vr$234 );
					POSCHAR2$1 = (int32)vr$235;
					FBSTRING* vr$243 = fb_StrMid( (FBSTRING*)CODE$1, (int64)POSCHAR1$1 + 1ll, ((int64)POSCHAR2$1 - (int64)POSCHAR1$1) + -1ll );
					FBSTRING* vr$244 = fb_TRIM( (FBSTRING*)vr$243 );
					fb_StrAssign( (void*)&PART1$1, -1ll, (void*)vr$244, -1ll, 0 );
					FBSTRING* vr$246 = fb_StrAllocTempDescZEx( (char*)"#", 1ll );
					int64 vr$247 = fb_StrInstr( 1ll, (FBSTRING*)CODE$1, (FBSTRING*)vr$246 );
					POSCHAR1$1 = (int32)vr$247;
					if( (int64)POSCHAR1$1 != 0ll ) goto label$76;
					{
						int64 vr$250 = fb_StrLen( (void*)CODE$1, -1ll );
						POSCHAR1$1 = (int32)vr$250;
					}
					goto label$75;
					label$76:;
					{
						POSCHAR1$1 = (int32)((int64)POSCHAR1$1 + -2ll);
					}
					label$75:;
					FBSTRING* vr$260 = fb_StrMid( (FBSTRING*)CODE$1, (int64)POSCHAR2$1 + 1ll, (int64)POSCHAR1$1 - (int64)POSCHAR2$1 );
					FBSTRING* vr$261 = fb_TRIM( (FBSTRING*)vr$260 );
					fb_StrAssign( (void*)&PART2$1, -1ll, (void*)vr$261, -1ll, 0 );
					if( (uint64)(int64)*(uint8*)*(char**)&PART1$1 != 114ull ) goto label$78;
					{
						int32 vr$266 = fb_StrCompare( (void*)&PART1$1, -1ll, (void*)&PREVPART1$1, -1ll );
						if( ((int64)-((int64)vr$266 == 0ll) & (int64)-((uint64)(int64)*(uint8*)*(char**)&PREVPART2$1 == 114ull)) == 0ll ) goto label$80;
						{
							FBSTRING TMP$220$7;
							FBSTRING TMP$221$7;
							FBSTRING TMP$222$7;
							FBSTRING TMP$223$7;
							FBSTRING TMP$224$7;
							FBSTRING TMP$225$7;
							FBSTRING TMP$226$7;
							FBSTRING TMP$227$7;
							FBSTRING* vr$273 = fb_StrAllocTempDescZEx( (char*)"#13", 3ll );
							fb_StrAssignMid( (FBSTRING*)((uint8*)&CTX$ + 112ll), (int64)PREVWPOS$1, -1ll, (FBSTRING*)vr$273 );
							FBSTRING* vr$278 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
							__builtin_memset( &TMP$220$7, 0, 24ll );
							FBSTRING* vr$281 = fb_StrConcat( &TMP$220$7, (void*)"#13", 4ll, (void*)CODE$1, -1ll );
							__builtin_memset( &TMP$221$7, 0, 24ll );
							FBSTRING* vr$284 = fb_StrConcat( &TMP$221$7, (void*)vr$281, -1ll, (void*)"\x0A", 2ll );
							__builtin_memset( &TMP$222$7, 0, 24ll );
							FBSTRING* vr$287 = fb_StrConcat( &TMP$222$7, (void*)vr$284, -1ll, (void*)vr$278, -1ll );
							__builtin_memset( &TMP$223$7, 0, 24ll );
							FBSTRING* vr$290 = fb_StrConcat( &TMP$223$7, (void*)vr$287, -1ll, (void*)"cmp ", 5ll );
							__builtin_memset( &TMP$224$7, 0, 24ll );
							FBSTRING* vr$293 = fb_StrConcat( &TMP$224$7, (void*)vr$290, -1ll, (void*)&PREVPART2$1, -1ll );
							__builtin_memset( &TMP$225$7, 0, 24ll );
							FBSTRING* vr$296 = fb_StrConcat( &TMP$225$7, (void*)vr$293, -1ll, (void*)", ", 3ll );
							__builtin_memset( &TMP$226$7, 0, 24ll );
							FBSTRING* vr$299 = fb_StrConcat( &TMP$226$7, (void*)vr$296, -1ll, (void*)&PART2$1, -1ll );
							__builtin_memset( &TMP$227$7, 0, 24ll );
							FBSTRING* vr$302 = fb_StrConcat( &TMP$227$7, (void*)vr$299, -1ll, (void*)" #Optim 13", 11ll );
							fb_StrAssign( (void*)CODE$1, -1ll, (void*)vr$302, -1ll, 0 );
						}
						goto label$79;
						label$80:;
						int32 vr$304 = fb_StrCompare( (void*)&PART2$1, -1ll, (void*)&PREVPART1$1, -1ll );
						FBSTRING* vr$307 = fb_StrAllocTempDescZEx( (char*)"[", 1ll );
						int64 vr$308 = fb_StrInstr( 1ll, (FBSTRING*)&PREVPART2$1, (FBSTRING*)vr$307 );
						if( ((int64)-((int64)vr$304 == 0ll) & vr$308) == 0ll ) goto label$81;
						{
							FBSTRING TMP$231$7;
							FBSTRING TMP$232$7;
							FBSTRING TMP$233$7;
							FBSTRING TMP$234$7;
							FBSTRING TMP$235$7;
							FBSTRING TMP$236$7;
							FBSTRING TMP$237$7;
							FBSTRING TMP$238$7;
							FBSTRING* vr$310 = fb_StrAllocTempDescZEx( (char*)"#14", 3ll );
							fb_StrAssignMid( (FBSTRING*)((uint8*)&CTX$ + 112ll), (int64)PREVWPOS$1, -1ll, (FBSTRING*)vr$310 );
							FBSTRING* vr$315 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
							__builtin_memset( &TMP$231$7, 0, 24ll );
							FBSTRING* vr$318 = fb_StrConcat( &TMP$231$7, (void*)"#14", 4ll, (void*)CODE$1, -1ll );
							__builtin_memset( &TMP$232$7, 0, 24ll );
							FBSTRING* vr$321 = fb_StrConcat( &TMP$232$7, (void*)vr$318, -1ll, (void*)"\x0A", 2ll );
							__builtin_memset( &TMP$233$7, 0, 24ll );
							FBSTRING* vr$324 = fb_StrConcat( &TMP$233$7, (void*)vr$321, -1ll, (void*)vr$315, -1ll );
							__builtin_memset( &TMP$234$7, 0, 24ll );
							FBSTRING* vr$327 = fb_StrConcat( &TMP$234$7, (void*)vr$324, -1ll, (void*)"cmp ", 5ll );
							__builtin_memset( &TMP$235$7, 0, 24ll );
							FBSTRING* vr$330 = fb_StrConcat( &TMP$235$7, (void*)vr$327, -1ll, (void*)&PART1$1, -1ll );
							__builtin_memset( &TMP$236$7, 0, 24ll );
							FBSTRING* vr$333 = fb_StrConcat( &TMP$236$7, (void*)vr$330, -1ll, (void*)", ", 3ll );
							__builtin_memset( &TMP$237$7, 0, 24ll );
							FBSTRING* vr$336 = fb_StrConcat( &TMP$237$7, (void*)vr$333, -1ll, (void*)&PREVPART2$1, -1ll );
							__builtin_memset( &TMP$238$7, 0, 24ll );
							FBSTRING* vr$339 = fb_StrConcat( &TMP$238$7, (void*)vr$336, -1ll, (void*)" #Optim 14", 11ll );
							fb_StrAssign( (void*)CODE$1, -1ll, (void*)vr$339, -1ll, 0 );
						}
						label$81:;
						label$79:;
					}
					label$78:;
					label$77:;
				}
				label$74:;
				label$73:;
				fb_StrAssign( (void*)&PREVPART1$1, -1ll, (void*)"", 1ll, 0 );
				fb_StrAssign( (void*)&PREVPART2$1, -1ll, (void*)"", 1ll, 0 );
				fb_StrAssign( (void*)&PREVINSTRUC$1, -1ll, (void*)"", 1ll, 0 );
				FLAG$1 = 0;
			}
			label$72:;
			label$71:;
			fb_StrDelete( (FBSTRING*)&TMP$194$2 );
			fb_StrDelete( (FBSTRING*)&NEWCODE$1 );
			fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
			fb_StrDelete( (FBSTRING*)&PART2$1 );
			fb_StrDelete( (FBSTRING*)&PART1$1 );
			goto label$43;
		}
		goto label$50;
		label$69:;
		{
			{
				FBSTRING TMP$239$4;
				FBSTRING* vr$345 = fb_LEFT( (FBSTRING*)CODE$1, 4ll );
				fb_StrInit( (void*)&TMP$239$4, -1ll, (void*)vr$345, -1ll, 0 );
				int32 vr$348 = fb_StrCompare( (void*)&TMP$239$4, -1ll, (void*)"adds", 5ll );
				if( (int64)vr$348 == 0ll ) goto label$85;
				label$86:;
				int32 vr$351 = fb_StrCompare( (void*)&TMP$239$4, -1ll, (void*)"subs", 5ll );
				if( (int64)vr$351 == 0ll ) goto label$85;
				label$87:;
				int32 vr$354 = fb_StrCompare( (void*)&TMP$239$4, -1ll, (void*)"muls", 5ll );
				if( (int64)vr$354 == 0ll ) goto label$85;
				label$88:;
				int32 vr$357 = fb_StrCompare( (void*)&TMP$239$4, -1ll, (void*)"divs", 5ll );
				if( (int64)vr$357 != 0ll ) goto label$84;
				label$85:;
				{
					int64 vr$360 = fb_StrLen( (void*)((uint8*)&CTX$ + 112ll), -1ll );
					WRITEPOS$1 = (int32)(vr$360 + 1ll);
					FBSTRING* vr$363 = fb_StrAllocTempDescZEx( (char*)" ", 1ll );
					int64 vr$364 = fb_StrInstr( 1ll, (FBSTRING*)CODE$1, (FBSTRING*)vr$363 );
					POSCHAR1$1 = (int32)vr$364;
					FBSTRING* vr$368 = fb_LEFT( (FBSTRING*)CODE$1, (int64)POSCHAR1$1 + -1ll );
					fb_StrAssign( (void*)&INSTRUC$1, -1ll, (void*)vr$368, -1ll, 0 );
					FBSTRING* vr$370 = fb_StrAllocTempDescZEx( (char*)",", 1ll );
					int64 vr$371 = fb_StrInstr( 1ll, (FBSTRING*)CODE$1, (FBSTRING*)vr$370 );
					POSCHAR2$1 = (int32)vr$371;
					FBSTRING* vr$379 = fb_StrMid( (FBSTRING*)CODE$1, (int64)POSCHAR1$1 + 1ll, ((int64)POSCHAR2$1 - (int64)POSCHAR1$1) + -1ll );
					FBSTRING* vr$380 = fb_TRIM( (FBSTRING*)vr$379 );
					fb_StrAssign( (void*)&PART1$1, -1ll, (void*)vr$380, -1ll, 0 );
					FBSTRING* vr$382 = fb_StrAllocTempDescZEx( (char*)"#", 1ll );
					int64 vr$383 = fb_StrInstr( 1ll, (FBSTRING*)CODE$1, (FBSTRING*)vr$382 );
					POSCHAR1$1 = (int32)vr$383;
					if( (int64)POSCHAR1$1 != 0ll ) goto label$90;
					{
						int64 vr$386 = fb_StrLen( (void*)CODE$1, -1ll );
						POSCHAR1$1 = (int32)vr$386;
					}
					goto label$89;
					label$90:;
					{
						POSCHAR1$1 = (int32)((int64)POSCHAR1$1 + -2ll);
					}
					label$89:;
					FBSTRING* vr$396 = fb_StrMid( (FBSTRING*)CODE$1, (int64)POSCHAR2$1 + 1ll, (int64)POSCHAR1$1 - (int64)POSCHAR2$1 );
					FBSTRING* vr$397 = fb_TRIM( (FBSTRING*)vr$396 );
					fb_StrAssign( (void*)&PART2$1, -1ll, (void*)vr$397, -1ll, 0 );
					int32 vr$400 = fb_StrCompare( (void*)&PREVPART1$1, -1ll, (void*)&PART2$1, -1ll );
					if( (int64)vr$400 != 0ll ) goto label$92;
					{
						FBSTRING* vr$402 = fb_StrAllocTempDescZEx( (char*)"[r", 2ll );
						int64 vr$403 = fb_StrInstr( 1ll, (FBSTRING*)&PREVPART2$1, (FBSTRING*)vr$402 );
						if( vr$403 == 0ll ) goto label$94;
						{
							FBSTRING TMP$247$7;
							FBSTRING TMP$248$7;
							FBSTRING TMP$249$7;
							FBSTRING TMP$250$7;
							FBSTRING TMP$251$7;
							FBSTRING TMP$252$7;
							FBSTRING TMP$253$7;
							FBSTRING TMP$254$7;
							FBSTRING TMP$255$7;
							FBSTRING* vr$404 = fb_StrAllocTempDescZEx( (char*)"#15", 3ll );
							fb_StrAssignMid( (FBSTRING*)((uint8*)&CTX$ + 112ll), (int64)PREVWPOS$1, -1ll, (FBSTRING*)vr$404 );
							FBSTRING* vr$410 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
							__builtin_memset( &TMP$247$7, 0, 24ll );
							FBSTRING* vr$413 = fb_StrConcat( &TMP$247$7, (void*)"#15", 4ll, (void*)CODE$1, -1ll );
							__builtin_memset( &TMP$248$7, 0, 24ll );
							FBSTRING* vr$416 = fb_StrConcat( &TMP$248$7, (void*)vr$413, -1ll, (void*)"\x0A", 2ll );
							__builtin_memset( &TMP$249$7, 0, 24ll );
							FBSTRING* vr$419 = fb_StrConcat( &TMP$249$7, (void*)vr$416, -1ll, (void*)vr$410, -1ll );
							__builtin_memset( &TMP$250$7, 0, 24ll );
							FBSTRING* vr$422 = fb_StrConcat( &TMP$250$7, (void*)vr$419, -1ll, (void*)&INSTRUC$1, -1ll );
							__builtin_memset( &TMP$251$7, 0, 24ll );
							FBSTRING* vr$425 = fb_StrConcat( &TMP$251$7, (void*)vr$422, -1ll, (void*)" ", 2ll );
							__builtin_memset( &TMP$252$7, 0, 24ll );
							FBSTRING* vr$428 = fb_StrConcat( &TMP$252$7, (void*)vr$425, -1ll, (void*)&PART1$1, -1ll );
							__builtin_memset( &TMP$253$7, 0, 24ll );
							FBSTRING* vr$431 = fb_StrConcat( &TMP$253$7, (void*)vr$428, -1ll, (void*)", ", 3ll );
							__builtin_memset( &TMP$254$7, 0, 24ll );
							FBSTRING* vr$434 = fb_StrConcat( &TMP$254$7, (void*)vr$431, -1ll, (void*)&PREVPART2$1, -1ll );
							__builtin_memset( &TMP$255$7, 0, 24ll );
							FBSTRING* vr$437 = fb_StrConcat( &TMP$255$7, (void*)vr$434, -1ll, (void*)" #Optim 15", 11ll );
							fb_StrAssign( (void*)CODE$1, -1ll, (void*)vr$437, -1ll, 0 );
						}
						label$94:;
						label$93:;
					}
					label$92:;
					label$91:;
				}
				label$84:;
				label$83:;
				fb_StrDelete( (FBSTRING*)&TMP$239$4 );
			}
			fb_StrAssign( (void*)&PREVPART1$1, -1ll, (void*)"", 1ll, 0 );
			fb_StrAssign( (void*)&PREVPART2$1, -1ll, (void*)"", 1ll, 0 );
			fb_StrAssign( (void*)&PREVINSTRUC$1, -1ll, (void*)"", 1ll, 0 );
			FLAG$1 = 0;
			fb_StrDelete( (FBSTRING*)&TMP$194$2 );
			fb_StrDelete( (FBSTRING*)&NEWCODE$1 );
			fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
			fb_StrDelete( (FBSTRING*)&PART2$1 );
			fb_StrDelete( (FBSTRING*)&PART1$1 );
			goto label$43;
		}
		label$82:;
		label$50:;
		fb_StrDelete( (FBSTRING*)&TMP$194$2 );
	}
	int32 vr$446 = fb_StrCompare( (void*)&INSTRUC$1, -1ll, (void*)"movsxd", 7ll );
	if( (int64)vr$446 != 0ll ) goto label$96;
	{
		fb_StrAssign( (void*)&PREVPART1$1, -1ll, (void*)"", 1ll, 0 );
		fb_StrAssign( (void*)&PREVPART2$1, -1ll, (void*)"", 1ll, 0 );
		fb_StrAssign( (void*)&PREVINSTRUC$1, -1ll, (void*)"", 1ll, 0 );
		FLAG$1 = 0;
		fb_StrDelete( (FBSTRING*)&NEWCODE$1 );
		fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
		fb_StrDelete( (FBSTRING*)&PART2$1 );
		fb_StrDelete( (FBSTRING*)&PART1$1 );
		goto label$43;
		label$96:;
	}
	int32 vr$453 = fb_StrCompare( (void*)&INSTRUC$1, -1ll, (void*)"movsx", 6ll );
	if( (int64)vr$453 != 0ll ) goto label$98;
	{
		fb_StrAssign( (void*)&PREVPART1$1, -1ll, (void*)"", 1ll, 0 );
		fb_StrAssign( (void*)&PREVPART2$1, -1ll, (void*)"", 1ll, 0 );
		fb_StrAssign( (void*)&PREVINSTRUC$1, -1ll, (void*)"", 1ll, 0 );
		FLAG$1 = 0;
		fb_StrDelete( (FBSTRING*)&NEWCODE$1 );
		fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
		fb_StrDelete( (FBSTRING*)&PART2$1 );
		fb_StrDelete( (FBSTRING*)&PART1$1 );
		goto label$43;
		label$98:;
	}
	int32 vr$460 = fb_StrCompare( (void*)&INSTRUC$1, -1ll, (void*)"movzx", 6ll );
	if( (int64)vr$460 != 0ll ) goto label$100;
	{
		fb_StrAssign( (void*)&PREVPART1$1, -1ll, (void*)"", 1ll, 0 );
		fb_StrAssign( (void*)&PREVPART2$1, -1ll, (void*)"", 1ll, 0 );
		fb_StrAssign( (void*)&PREVINSTRUC$1, -1ll, (void*)"", 1ll, 0 );
		FLAG$1 = 0;
		fb_StrDelete( (FBSTRING*)&NEWCODE$1 );
		fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
		fb_StrDelete( (FBSTRING*)&PART2$1 );
		fb_StrDelete( (FBSTRING*)&PART1$1 );
		goto label$43;
		label$100:;
	}
	if( (int64)FLAG$1 != 1ll ) goto label$102;
	{
		FBSTRING TMP$260$2;
		FBSTRING TMP$261$2;
		__builtin_memset( &TMP$260$2, 0, 24ll );
		FBSTRING* vr$469 = fb_StrConcat( &TMP$260$2, (void*)"[", 2ll, (void*)&PREVPART1$1, -1ll );
		__builtin_memset( &TMP$261$2, 0, 24ll );
		FBSTRING* vr$472 = fb_StrConcat( &TMP$261$2, (void*)vr$469, -1ll, (void*)"]", 2ll );
		int64 vr$474 = fb_StrInstr( 1ll, (FBSTRING*)&PART1$1, (FBSTRING*)vr$472 );
		if( vr$474 == 0ll ) goto label$104;
		{
			FBSTRING* vr$483 = fb_RIGHT( (FBSTRING*)&PART2$1, 1ll );
			uint32 vr$484 = fb_ASC( (FBSTRING*)vr$483, 1ll );
			FBSTRING* vr$488 = fb_RIGHT( (FBSTRING*)&PART2$1, 1ll );
			uint32 vr$489 = fb_ASC( (FBSTRING*)vr$488, 1ll );
			if( (((int64)-((uint64)(int64)*(uint8*)*(char**)&PART2$1 == 114ull) | (int64)-((uint64)(int64)*(uint8*)*(char**)&PART2$1 == 101ull)) | ((int64)-((int64)vr$484 >= 48ll) & (int64)-((int64)vr$489 <= 57ll))) == 0ll ) goto label$106;
			{
				FBSTRING TMP$265$4;
				FBSTRING TMP$266$4;
				FBSTRING TMP$267$4;
				FBSTRING TMP$268$4;
				FBSTRING TMP$269$4;
				FBSTRING* vr$494 = fb_StrAllocTempDescZEx( (char*)"#O4", 3ll );
				fb_StrAssignMid( (FBSTRING*)((uint8*)&CTX$ + 112ll), (int64)PREVWPOS$1, -1ll, (FBSTRING*)vr$494 );
				fb_StrAssign( (void*)&NEWCODE$1, -1ll, (void*)&INSTRUC$1, -1ll, 0 );
				fb_StrConcatAssign( (void*)&NEWCODE$1, -1ll, (void*)" ", 2ll, 0 );
				FBSTRING* vr$500 = fb_StrAllocTempDescZEx( (char*)"[", 1ll );
				int64 vr$502 = fb_StrInstr( 1ll, (FBSTRING*)&PART1$1, (FBSTRING*)vr$500 );
				FBSTRING* vr$505 = fb_StrMid( (FBSTRING*)&PART1$1, 1ll, vr$502 + -1ll );
				fb_StrConcatAssign( (void*)&NEWCODE$1, -1ll, (void*)vr$505, -1ll, 0 );
				fb_StrConcatAssign( (void*)&NEWCODE$1, -1ll, (void*)&PREVPART2$1, -1ll, 0 );
				fb_StrConcatAssign( (void*)&NEWCODE$1, -1ll, (void*)", ", 3ll, 0 );
				fb_StrConcatAssign( (void*)&NEWCODE$1, -1ll, (void*)&PART2$1, -1ll, 0 );
				int64 vr$512 = fb_StrLen( (void*)((uint8*)&CTX$ + 112ll), -1ll );
				int64 vr$513 = fb_StrLen( (void*)CODE$1, -1ll );
				WRITEPOS$1 = (int32)((vr$512 + vr$513) + 9ll);
				FBSTRING* vr$519 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
				__builtin_memset( &TMP$265$4, 0, 24ll );
				FBSTRING* vr$522 = fb_StrConcat( &TMP$265$4, (void*)"#O4", 4ll, (void*)CODE$1, -1ll );
				__builtin_memset( &TMP$266$4, 0, 24ll );
				FBSTRING* vr$525 = fb_StrConcat( &TMP$266$4, (void*)vr$522, -1ll, (void*)"\x0A", 2ll );
				__builtin_memset( &TMP$267$4, 0, 24ll );
				FBSTRING* vr$528 = fb_StrConcat( &TMP$267$4, (void*)vr$525, -1ll, (void*)vr$519, -1ll );
				__builtin_memset( &TMP$268$4, 0, 24ll );
				FBSTRING* vr$531 = fb_StrConcat( &TMP$268$4, (void*)vr$528, -1ll, (void*)&NEWCODE$1, -1ll );
				__builtin_memset( &TMP$269$4, 0, 24ll );
				FBSTRING* vr$534 = fb_StrConcat( &TMP$269$4, (void*)vr$531, -1ll, (void*)" #Optim 4", 10ll );
				fb_StrAssign( (void*)CODE$1, -1ll, (void*)vr$534, -1ll, 0 );
			}
			label$106:;
			label$105:;
		}
		goto label$103;
		label$104:;
		{
			int32 vr$536 = fb_StrCompare( (void*)&PART2$1, -1ll, (void*)&PREVPART1$1, -1ll );
			if( ((int64)-((int64)vr$536 == 0ll) & (int64)-((uint64)(int64)*(uint8*)*(char**)&PART1$1 == 114ull)) == 0ll ) goto label$108;
			{
				FBSTRING TMP$273$4;
				FBSTRING TMP$274$4;
				FBSTRING TMP$275$4;
				FBSTRING TMP$276$4;
				FBSTRING TMP$277$4;
				FBSTRING* vr$543 = fb_StrAllocTempDescZEx( (char*)"#O5", 3ll );
				fb_StrAssignMid( (FBSTRING*)((uint8*)&CTX$ + 112ll), (int64)PREVWPOS$1, -1ll, (FBSTRING*)vr$543 );
				fb_StrAssign( (void*)&NEWCODE$1, -1ll, (void*)"lea ", 5ll, 0 );
				fb_StrConcatAssign( (void*)&NEWCODE$1, -1ll, (void*)&PART1$1, -1ll, 0 );
				fb_StrConcatAssign( (void*)&NEWCODE$1, -1ll, (void*)", ", 3ll, 0 );
				fb_StrConcatAssign( (void*)&NEWCODE$1, -1ll, (void*)&PREVPART2$1, -1ll, 0 );
				int64 vr$552 = fb_StrLen( (void*)((uint8*)&CTX$ + 112ll), -1ll );
				int64 vr$553 = fb_StrLen( (void*)CODE$1, -1ll );
				WRITEPOS$1 = (int32)((vr$552 + vr$553) + 9ll);
				FBSTRING* vr$559 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
				__builtin_memset( &TMP$273$4, 0, 24ll );
				FBSTRING* vr$562 = fb_StrConcat( &TMP$273$4, (void*)"#O5", 4ll, (void*)CODE$1, -1ll );
				__builtin_memset( &TMP$274$4, 0, 24ll );
				FBSTRING* vr$565 = fb_StrConcat( &TMP$274$4, (void*)vr$562, -1ll, (void*)"\x0A", 2ll );
				__builtin_memset( &TMP$275$4, 0, 24ll );
				FBSTRING* vr$568 = fb_StrConcat( &TMP$275$4, (void*)vr$565, -1ll, (void*)vr$559, -1ll );
				__builtin_memset( &TMP$276$4, 0, 24ll );
				FBSTRING* vr$571 = fb_StrConcat( &TMP$276$4, (void*)vr$568, -1ll, (void*)&NEWCODE$1, -1ll );
				__builtin_memset( &TMP$277$4, 0, 24ll );
				FBSTRING* vr$574 = fb_StrConcat( &TMP$277$4, (void*)vr$571, -1ll, (void*)" #Optim 5", 10ll );
				fb_StrAssign( (void*)CODE$1, -1ll, (void*)vr$574, -1ll, 0 );
			}
			goto label$107;
			label$108:;
			{
				FBSTRING TMP$278$4;
				FBSTRING TMP$279$4;
				int64 TMP$280$4;
				if( (uint64)(int64)*(uint8*)*(char**)&PART1$1 != 114ull ) goto label$109;
				__builtin_memset( &TMP$278$4, 0, 24ll );
				FBSTRING* vr$579 = fb_StrConcat( &TMP$278$4, (void*)"[", 2ll, (void*)&PREVPART1$1, -1ll );
				__builtin_memset( &TMP$279$4, 0, 24ll );
				FBSTRING* vr$582 = fb_StrConcat( &TMP$279$4, (void*)vr$579, -1ll, (void*)"]", 2ll );
				int32 vr$584 = fb_StrCompare( (void*)&PART2$1, -1ll, (void*)vr$582, -1ll );
				TMP$280$4 = (int64)-((int64)vr$584 == 0ll);
				goto label$3076;
				label$109:;
				TMP$280$4 = 0ll;
				label$3076:;
				if( TMP$280$4 == 0ll ) goto label$111;
				{
					FBSTRING TMP$283$5;
					FBSTRING TMP$284$5;
					FBSTRING TMP$285$5;
					FBSTRING TMP$286$5;
					FBSTRING TMP$287$5;
					FBSTRING* vr$587 = fb_StrAllocTempDescZEx( (char*)"#O7", 3ll );
					fb_StrAssignMid( (FBSTRING*)((uint8*)&CTX$ + 112ll), (int64)PREVWPOS$1, -1ll, (FBSTRING*)vr$587 );
					fb_StrAssign( (void*)&NEWCODE$1, -1ll, (void*)&INSTRUC$1, -1ll, 0 );
					fb_StrConcatAssign( (void*)&NEWCODE$1, -1ll, (void*)" ", 2ll, 0 );
					fb_StrConcatAssign( (void*)&NEWCODE$1, -1ll, (void*)&PART1$1, -1ll, 0 );
					fb_StrConcatAssign( (void*)&NEWCODE$1, -1ll, (void*)", ", 3ll, 0 );
					fb_StrConcatAssign( (void*)&NEWCODE$1, -1ll, (void*)&PREVPART2$1, -1ll, 0 );
					int64 vr$598 = fb_StrLen( (void*)((uint8*)&CTX$ + 112ll), -1ll );
					int64 vr$599 = fb_StrLen( (void*)CODE$1, -1ll );
					WRITEPOS$1 = (int32)((vr$598 + vr$599) + 9ll);
					FBSTRING* vr$605 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
					__builtin_memset( &TMP$283$5, 0, 24ll );
					FBSTRING* vr$608 = fb_StrConcat( &TMP$283$5, (void*)"#O7", 4ll, (void*)CODE$1, -1ll );
					__builtin_memset( &TMP$284$5, 0, 24ll );
					FBSTRING* vr$611 = fb_StrConcat( &TMP$284$5, (void*)vr$608, -1ll, (void*)"\x0A", 2ll );
					__builtin_memset( &TMP$285$5, 0, 24ll );
					FBSTRING* vr$614 = fb_StrConcat( &TMP$285$5, (void*)vr$611, -1ll, (void*)vr$605, -1ll );
					__builtin_memset( &TMP$286$5, 0, 24ll );
					FBSTRING* vr$617 = fb_StrConcat( &TMP$286$5, (void*)vr$614, -1ll, (void*)&NEWCODE$1, -1ll );
					__builtin_memset( &TMP$287$5, 0, 24ll );
					FBSTRING* vr$620 = fb_StrConcat( &TMP$287$5, (void*)vr$617, -1ll, (void*)" #Optim 7", 10ll );
					fb_StrAssign( (void*)CODE$1, -1ll, (void*)vr$620, -1ll, 0 );
				}
				goto label$110;
				label$111:;
				{
					fb_StrAssign( (void*)&PREVPART1$1, -1ll, (void*)&PART1$1, -1ll, 0 );
					fb_StrAssign( (void*)&PREVPART2$1, -1ll, (void*)&PART2$1, -1ll, 0 );
					fb_StrAssign( (void*)&PREVINSTRUC$1, -1ll, (void*)&INSTRUC$1, -1ll, 0 );
					PREVWPOS$1 = WRITEPOS$1;
					FLAG$1 = 0;
					fb_StrDelete( (FBSTRING*)&NEWCODE$1 );
					fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
					fb_StrDelete( (FBSTRING*)&PART2$1 );
					fb_StrDelete( (FBSTRING*)&PART1$1 );
					goto label$43;
				}
				label$110:;
			}
			label$107:;
		}
		label$103:;
		fb_StrAssign( (void*)&PREVPART1$1, -1ll, (void*)"", 1ll, 0 );
		fb_StrAssign( (void*)&PREVPART2$1, -1ll, (void*)"", 1ll, 0 );
		FLAG$1 = 0;
		fb_StrDelete( (FBSTRING*)&NEWCODE$1 );
		fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
		fb_StrDelete( (FBSTRING*)&PART2$1 );
		fb_StrDelete( (FBSTRING*)&PART1$1 );
		goto label$43;
	}
	label$102:;
	label$101:;
	int32 vr$633 = fb_StrCompare( (void*)&PART2$1, -1ll, (void*)&PREVPART1$1, -1ll );
	if( (int64)vr$633 != 0ll ) goto label$113;
	{
		int32 vr$636 = fb_StrCompare( (void*)&PART1$1, -1ll, (void*)&PREVPART2$1, -1ll );
		if( (int64)vr$636 != 0ll ) goto label$115;
		{
			FBSTRING TMP$289$3;
			__builtin_memset( &TMP$289$3, 0, 24ll );
			FBSTRING* vr$640 = fb_StrConcat( &TMP$289$3, (void*)"#O1 ", 5ll, (void*)CODE$1, -1ll );
			fb_StrAssign( (void*)CODE$1, -1ll, (void*)vr$640, -1ll, 0 );
		}
		goto label$114;
		label$115:;
		{
			int32 vr$641 = fb_StrCompare( (void*)&PREVPART2$1, -1ll, (void*)"", 1ll );
			if( (int64)vr$641 != 0ll ) goto label$117;
			{
				FBSTRING TMP$290$4;
				FBSTRING TMP$299$4;
				FBSTRING TMP$300$4;
				FBSTRING TMP$301$4;
				FBSTRING TMP$302$4;
				FBSTRING TMP$303$4;
				FBSTRING TMP$304$4;
				FBSTRING TMP$305$4;
				FBSTRING TMP$306$4;
				FBSTRING TMP$307$4;
				__builtin_memset( &TMP$290$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$290$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$290$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$290$4 );
				__builtin_memset( &TMP$306$4, 0, 24ll );
				__builtin_memset( &TMP$299$4, 0, 24ll );
				FBSTRING* vr$652 = fb_StrConcat( &TMP$299$4, (void*)"FOUND AN ERROR : prev/part empty part1=", 40ll, (void*)&PART1$1, -1ll );
				__builtin_memset( &TMP$300$4, 0, 24ll );
				FBSTRING* vr$655 = fb_StrConcat( &TMP$300$4, (void*)vr$652, -1ll, (void*)" part2=", 8ll );
				__builtin_memset( &TMP$301$4, 0, 24ll );
				FBSTRING* vr$658 = fb_StrConcat( &TMP$301$4, (void*)vr$655, -1ll, (void*)&PART2$1, -1ll );
				__builtin_memset( &TMP$302$4, 0, 24ll );
				FBSTRING* vr$661 = fb_StrConcat( &TMP$302$4, (void*)vr$658, -1ll, (void*)" prevpart1=", 12ll );
				__builtin_memset( &TMP$303$4, 0, 24ll );
				FBSTRING* vr$664 = fb_StrConcat( &TMP$303$4, (void*)vr$661, -1ll, (void*)&PREVPART1$1, -1ll );
				__builtin_memset( &TMP$304$4, 0, 24ll );
				FBSTRING* vr$667 = fb_StrConcat( &TMP$304$4, (void*)vr$664, -1ll, (void*)" prevpart2=", 12ll );
				__builtin_memset( &TMP$305$4, 0, 24ll );
				FBSTRING* vr$670 = fb_StrConcat( &TMP$305$4, (void*)vr$667, -1ll, (void*)&PREVPART2$1, -1ll );
				fb_StrAssign( (void*)&TMP$306$4, -1ll, (void*)vr$670, -1ll, 0 );
				HWRITEASM64( &TMP$306$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$306$4 );
				__builtin_memset( &TMP$307$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$307$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$307$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$307$4 );
				fb_StrDelete( (FBSTRING*)&NEWCODE$1 );
				fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
				fb_StrDelete( (FBSTRING*)&PART2$1 );
				fb_StrDelete( (FBSTRING*)&PART1$1 );
				goto label$43;
			}
			label$117:;
			label$116:;
			if( (((int64)-((uint64)(int64)*(uint8*)*(char**)&PREVPART2$1 == 114ull) & (int64)-((uint64)(int64)*(uint8*)((uint8*)*(char**)&PART1$1 + 3ll) != 100ull)) & (int64)-((uint64)(int64)*(uint8*)*(char**)&PART1$1 != 101ull)) == 0ll ) goto label$119;
			{
				FBSTRING TMP$315$4;
				FBSTRING TMP$316$4;
				FBSTRING TMP$317$4;
				FBSTRING TMP$318$4;
				FBSTRING TMP$319$4;
				FBSTRING TMP$320$4;
				FBSTRING TMP$321$4;
				FBSTRING TMP$322$4;
				FBSTRING TMP$323$4;
				FBSTRING* vr$693 = fb_StrAllocTempDescZEx( (char*)"[", 1ll );
				int64 vr$694 = fb_StrInstr( 1ll, (FBSTRING*)&PREVPART1$1, (FBSTRING*)vr$693 );
				if( vr$694 == 0ll ) goto label$121;
				{
					if( (uint64)(int64)*(uint8*)*(char**)&PART1$1 != 120ull ) goto label$123;
					{
						int32 vr$698 = fb_StrCompare( (void*)&INSTRUC$1, -1ll, (void*)"movss", 6ll );
						if( (int64)vr$698 != 0ll ) goto label$125;
						{
							fb_StrAssign( (void*)&PREVINSTRUC$1, -1ll, (void*)"movd", 5ll, 0 );
						}
						goto label$124;
						label$125:;
						{
							fb_StrAssign( (void*)&PREVINSTRUC$1, -1ll, (void*)"movq", 5ll, 0 );
						}
						label$124:;
					}
					label$123:;
					label$122:;
				}
				goto label$120;
				label$121:;
				{
					FBSTRING* vr$700 = fb_StrAllocTempDescZEx( (char*)"#O2", 3ll );
					fb_StrAssignMid( (FBSTRING*)((uint8*)&CTX$ + 112ll), (int64)PREVWPOS$1, -1ll, (FBSTRING*)vr$700 );
					int32 vr$704 = fb_StrCompare( (void*)&INSTRUC$1, -1ll, (void*)"movq", 5ll );
					int32 vr$708 = fb_StrCompare( (void*)&INSTRUC$1, -1ll, (void*)"movd", 5ll );
					if( ((int64)-((int64)vr$704 == 0ll) | (int64)-((int64)vr$708 == 0ll)) == 0ll ) goto label$127;
					{
						fb_StrAssign( (void*)&PREVINSTRUC$1, -1ll, (void*)&INSTRUC$1, -1ll, 0 );
					}
					goto label$126;
					label$127:;
					int32 vr$714 = fb_StrCompare( (void*)&INSTRUC$1, -1ll, (void*)"movsx", 6ll );
					if( (int64)vr$714 != 0ll ) goto label$128;
					{
						fb_StrAssign( (void*)&PREVINSTRUC$1, -1ll, (void*)&INSTRUC$1, -1ll, 0 );
					}
					label$128:;
					label$126:;
				}
				label$120:;
				int64 vr$718 = fb_StrLen( (void*)((uint8*)&CTX$ + 112ll), -1ll );
				int64 vr$719 = fb_StrLen( (void*)CODE$1, -1ll );
				WRITEPOS$1 = (int32)((vr$718 + vr$719) + 9ll);
				FBSTRING* vr$725 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
				__builtin_memset( &TMP$315$4, 0, 24ll );
				FBSTRING* vr$728 = fb_StrConcat( &TMP$315$4, (void*)"#O2", 4ll, (void*)CODE$1, -1ll );
				__builtin_memset( &TMP$316$4, 0, 24ll );
				FBSTRING* vr$731 = fb_StrConcat( &TMP$316$4, (void*)vr$728, -1ll, (void*)"\x0A", 2ll );
				__builtin_memset( &TMP$317$4, 0, 24ll );
				FBSTRING* vr$734 = fb_StrConcat( &TMP$317$4, (void*)vr$731, -1ll, (void*)vr$725, -1ll );
				__builtin_memset( &TMP$318$4, 0, 24ll );
				FBSTRING* vr$737 = fb_StrConcat( &TMP$318$4, (void*)vr$734, -1ll, (void*)&PREVINSTRUC$1, -1ll );
				__builtin_memset( &TMP$319$4, 0, 24ll );
				FBSTRING* vr$740 = fb_StrConcat( &TMP$319$4, (void*)vr$737, -1ll, (void*)" ", 2ll );
				__builtin_memset( &TMP$320$4, 0, 24ll );
				FBSTRING* vr$743 = fb_StrConcat( &TMP$320$4, (void*)vr$740, -1ll, (void*)&PART1$1, -1ll );
				__builtin_memset( &TMP$321$4, 0, 24ll );
				FBSTRING* vr$746 = fb_StrConcat( &TMP$321$4, (void*)vr$743, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$322$4, 0, 24ll );
				FBSTRING* vr$749 = fb_StrConcat( &TMP$322$4, (void*)vr$746, -1ll, (void*)&PREVPART2$1, -1ll );
				__builtin_memset( &TMP$323$4, 0, 24ll );
				FBSTRING* vr$752 = fb_StrConcat( &TMP$323$4, (void*)vr$749, -1ll, (void*)" #Optim 2", 10ll );
				fb_StrAssign( (void*)CODE$1, -1ll, (void*)vr$752, -1ll, 0 );
				fb_StrAssign( (void*)&PART2$1, -1ll, (void*)&PREVPART2$1, -1ll, 0 );
			}
			goto label$118;
			label$119:;
			if( (uint64)(int64)*(uint8*)*(char**)&PREVPART2$1 != 120ull ) goto label$129;
			{
				FBSTRING TMP$333$4;
				FBSTRING TMP$334$4;
				FBSTRING TMP$335$4;
				FBSTRING TMP$336$4;
				FBSTRING TMP$337$4;
				FBSTRING TMP$338$4;
				FBSTRING TMP$339$4;
				FBSTRING TMP$340$4;
				FBSTRING TMP$341$4;
				FBSTRING* vr$756 = fb_StrAllocTempDescZEx( (char*)"[", 1ll );
				int64 vr$757 = fb_StrInstr( 1ll, (FBSTRING*)&PREVPART1$1, (FBSTRING*)vr$756 );
				if( vr$757 == 0ll ) goto label$131;
				{
					int32 vr$758 = fb_StrCompare( (void*)&PREVINSTRUC$1, -1ll, (void*)"movss", 6ll );
					if( (int64)vr$758 != 0ll ) goto label$133;
					{
						fb_StrAssign( (void*)&INSTRUC$1, -1ll, (void*)"movd", 5ll, 0 );
					}
					goto label$132;
					label$133:;
					{
						fb_StrAssign( (void*)&INSTRUC$1, -1ll, (void*)"movq", 5ll, 0 );
					}
					label$132:;
				}
				goto label$130;
				label$131:;
				{
					FBSTRING* vr$762 = fb_StrAllocTempDescZEx( (char*)"#O3", 3ll );
					fb_StrAssignMid( (FBSTRING*)((uint8*)&CTX$ + 112ll), (int64)PREVWPOS$1, -1ll, (FBSTRING*)vr$762 );
					int32 vr$765 = fb_StrCompare( (void*)&PREVINSTRUC$1, -1ll, (void*)"movq", 5ll );
					if( (int64)vr$765 != 0ll ) goto label$135;
					{
						FBSTRING* vr$767 = fb_StrAllocTempDescZEx( (char*)"[", 1ll );
						int64 vr$769 = fb_StrInstr( 1ll, (FBSTRING*)&PART2$1, (FBSTRING*)vr$767 );
						if( vr$769 == 0ll ) goto label$137;
						{
							fb_StrAssign( (void*)&INSTRUC$1, -1ll, (void*)"movsd", 6ll, 0 );
						}
						goto label$136;
						label$137:;
						{
							fb_StrAssign( (void*)&INSTRUC$1, -1ll, (void*)"movq", 5ll, 0 );
						}
						label$136:;
					}
					goto label$134;
					label$135:;
					int32 vr$772 = fb_StrCompare( (void*)&PREVINSTRUC$1, -1ll, (void*)"movd", 5ll );
					if( (int64)vr$772 != 0ll ) goto label$138;
					{
						if( ((int64)-((uint64)(int64)*(uint8*)*(char**)&PART1$1 == 114ull) | (int64)-((uint64)(int64)*(uint8*)*(char**)&PART1$1 == 101ull)) == 0ll ) goto label$140;
						{
							fb_StrAssign( (void*)&INSTRUC$1, -1ll, (void*)"movd", 5ll, 0 );
						}
						goto label$139;
						label$140:;
						{
							fb_StrAssign( (void*)&INSTRUC$1, -1ll, (void*)"movss", 6ll, 0 );
						}
						label$139:;
					}
					goto label$134;
					label$138:;
					{
						FBSTRING TMP$326$6;
						FBSTRING TMP$329$6;
						FBSTRING TMP$330$6;
						FBSTRING TMP$331$6;
						__builtin_memset( &TMP$326$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$326$6, -1ll, (void*)"", 1ll, 0 );
						HWRITEASM64( &TMP$326$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$326$6 );
						__builtin_memset( &TMP$330$6, 0, 24ll );
						__builtin_memset( &TMP$329$6, 0, 24ll );
						FBSTRING* vr$791 = fb_StrConcat( &TMP$329$6, (void*)"FOUND AN ERROR : in check_optim 3-2 instruc unknown=", 53ll, (void*)&INSTRUC$1, -1ll );
						fb_StrAssign( (void*)&TMP$330$6, -1ll, (void*)vr$791, -1ll, 0 );
						HWRITEASM64( &TMP$330$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$330$6 );
						__builtin_memset( &TMP$331$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$331$6, -1ll, (void*)"", 1ll, 0 );
						HWRITEASM64( &TMP$331$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$331$6 );
					}
					label$134:;
				}
				label$130:;
				int64 vr$800 = fb_StrLen( (void*)((uint8*)&CTX$ + 112ll), -1ll );
				int64 vr$801 = fb_StrLen( (void*)CODE$1, -1ll );
				WRITEPOS$1 = (int32)((vr$800 + vr$801) + 9ll);
				FBSTRING* vr$808 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
				__builtin_memset( &TMP$333$4, 0, 24ll );
				FBSTRING* vr$811 = fb_StrConcat( &TMP$333$4, (void*)"#O3", 4ll, (void*)CODE$1, -1ll );
				__builtin_memset( &TMP$334$4, 0, 24ll );
				FBSTRING* vr$814 = fb_StrConcat( &TMP$334$4, (void*)vr$811, -1ll, (void*)"\x0A", 2ll );
				__builtin_memset( &TMP$335$4, 0, 24ll );
				FBSTRING* vr$817 = fb_StrConcat( &TMP$335$4, (void*)vr$814, -1ll, (void*)vr$808, -1ll );
				__builtin_memset( &TMP$336$4, 0, 24ll );
				FBSTRING* vr$820 = fb_StrConcat( &TMP$336$4, (void*)vr$817, -1ll, (void*)&INSTRUC$1, -1ll );
				__builtin_memset( &TMP$337$4, 0, 24ll );
				FBSTRING* vr$823 = fb_StrConcat( &TMP$337$4, (void*)vr$820, -1ll, (void*)" ", 2ll );
				__builtin_memset( &TMP$338$4, 0, 24ll );
				FBSTRING* vr$826 = fb_StrConcat( &TMP$338$4, (void*)vr$823, -1ll, (void*)&PART1$1, -1ll );
				__builtin_memset( &TMP$339$4, 0, 24ll );
				FBSTRING* vr$829 = fb_StrConcat( &TMP$339$4, (void*)vr$826, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$340$4, 0, 24ll );
				FBSTRING* vr$832 = fb_StrConcat( &TMP$340$4, (void*)vr$829, -1ll, (void*)&PREVPART2$1, -1ll );
				__builtin_memset( &TMP$341$4, 0, 24ll );
				FBSTRING* vr$835 = fb_StrConcat( &TMP$341$4, (void*)vr$832, -1ll, (void*)" #Optim 3", 10ll );
				fb_StrAssign( (void*)CODE$1, -1ll, (void*)vr$835, -1ll, 0 );
				fb_StrAssign( (void*)&PART2$1, -1ll, (void*)&PREVPART2$1, -1ll, 0 );
			}
			goto label$118;
			label$129:;
			int32 vr$845 = fb_StrCompare( (void*)&PREVPART1$1, -1ll, (void*)&PART2$1, -1ll );
			FBSTRING* vr$849 = fb_StrAllocTempDescZEx( (char*)"[", 1ll );
			int64 vr$850 = fb_StrInstr( 1ll, (FBSTRING*)&PREVPART1$1, (FBSTRING*)vr$849 );
			if( ((((int64)-((uint64)(int64)*(uint8*)*(char**)&PART1$1 == 114ull) | (int64)-((uint64)(int64)*(uint8*)*(char**)&PART1$1 == 101ull)) & (int64)-((int64)vr$845 == 0ll)) & (int64)-(vr$850 == 0ll)) == 0ll ) goto label$141;
			{
				FBSTRING TMP$344$4;
				FBSTRING TMP$345$4;
				FBSTRING TMP$346$4;
				FBSTRING TMP$347$4;
				FBSTRING TMP$348$4;
				FBSTRING TMP$349$4;
				FBSTRING TMP$350$4;
				FBSTRING TMP$351$4;
				FBSTRING TMP$352$4;
				FBSTRING* vr$853 = fb_StrAllocTempDescZEx( (char*)"#O6", 3ll );
				fb_StrAssignMid( (FBSTRING*)((uint8*)&CTX$ + 112ll), (int64)PREVWPOS$1, -1ll, (FBSTRING*)vr$853 );
				int64 vr$857 = fb_StrLen( (void*)((uint8*)&CTX$ + 112ll), -1ll );
				int64 vr$858 = fb_StrLen( (void*)CODE$1, -1ll );
				WRITEPOS$1 = (int32)((vr$857 + vr$858) + 9ll);
				FBSTRING* vr$864 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
				__builtin_memset( &TMP$344$4, 0, 24ll );
				FBSTRING* vr$867 = fb_StrConcat( &TMP$344$4, (void*)"#O6", 4ll, (void*)CODE$1, -1ll );
				__builtin_memset( &TMP$345$4, 0, 24ll );
				FBSTRING* vr$870 = fb_StrConcat( &TMP$345$4, (void*)vr$867, -1ll, (void*)"\x0A", 2ll );
				__builtin_memset( &TMP$346$4, 0, 24ll );
				FBSTRING* vr$873 = fb_StrConcat( &TMP$346$4, (void*)vr$870, -1ll, (void*)vr$864, -1ll );
				__builtin_memset( &TMP$347$4, 0, 24ll );
				FBSTRING* vr$876 = fb_StrConcat( &TMP$347$4, (void*)vr$873, -1ll, (void*)&PREVINSTRUC$1, -1ll );
				__builtin_memset( &TMP$348$4, 0, 24ll );
				FBSTRING* vr$879 = fb_StrConcat( &TMP$348$4, (void*)vr$876, -1ll, (void*)" ", 2ll );
				__builtin_memset( &TMP$349$4, 0, 24ll );
				FBSTRING* vr$882 = fb_StrConcat( &TMP$349$4, (void*)vr$879, -1ll, (void*)&PART1$1, -1ll );
				__builtin_memset( &TMP$350$4, 0, 24ll );
				FBSTRING* vr$885 = fb_StrConcat( &TMP$350$4, (void*)vr$882, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$351$4, 0, 24ll );
				FBSTRING* vr$888 = fb_StrConcat( &TMP$351$4, (void*)vr$885, -1ll, (void*)&PREVPART2$1, -1ll );
				__builtin_memset( &TMP$352$4, 0, 24ll );
				FBSTRING* vr$891 = fb_StrConcat( &TMP$352$4, (void*)vr$888, -1ll, (void*)" #Optim 6", 10ll );
				fb_StrAssign( (void*)CODE$1, -1ll, (void*)vr$891, -1ll, 0 );
				fb_StrAssign( (void*)&PART2$1, -1ll, (void*)&PREVPART2$1, -1ll, 0 );
			}
			goto label$118;
			label$141:;
			int32 vr$901 = fb_StrCompare( (void*)&PREVPART1$1, -1ll, (void*)&PART2$1, -1ll );
			if( (((int64)-((uint64)(int64)*(uint8*)*(char**)&PREVPART2$1 == 114ull) | (int64)-((uint64)(int64)*(uint8*)*(char**)&PREVPART2$1 == 101ull)) & (int64)-((int64)vr$901 == 0ll)) == 0ll ) goto label$142;
			{
				FBSTRING TMP$355$4;
				FBSTRING TMP$356$4;
				FBSTRING TMP$357$4;
				FBSTRING TMP$358$4;
				FBSTRING TMP$359$4;
				FBSTRING TMP$360$4;
				FBSTRING TMP$361$4;
				FBSTRING TMP$362$4;
				FBSTRING TMP$363$4;
				FBSTRING* vr$905 = fb_StrAllocTempDescZEx( (char*)"[", 1ll );
				int64 vr$906 = fb_StrInstr( 1ll, (FBSTRING*)&PREVPART1$1, (FBSTRING*)vr$905 );
				if( vr$906 != 0ll ) goto label$144;
				{
					FBSTRING* vr$907 = fb_StrAllocTempDescZEx( (char*)"#16", 3ll );
					fb_StrAssignMid( (FBSTRING*)((uint8*)&CTX$ + 112ll), (int64)PREVWPOS$1, -1ll, (FBSTRING*)vr$907 );
				}
				label$144:;
				label$143:;
				if( (uint64)(int64)*(uint8*)*(char**)&PART1$1 != 120ull ) goto label$146;
				{
					if( (uint64)(int64)*(uint8*)*(char**)&PREVPART2$1 != 101ull ) goto label$148;
					{
						fb_StrAssign( (void*)&INSTRUC$1, -1ll, (void*)"movd", 5ll, 0 );
					}
					goto label$147;
					label$148:;
					{
						fb_StrAssign( (void*)&INSTRUC$1, -1ll, (void*)"movq", 5ll, 0 );
					}
					label$147:;
				}
				label$146:;
				label$145:;
				int64 vr$917 = fb_StrLen( (void*)((uint8*)&CTX$ + 112ll), -1ll );
				int64 vr$918 = fb_StrLen( (void*)CODE$1, -1ll );
				WRITEPOS$1 = (int32)((vr$917 + vr$918) + 9ll);
				FBSTRING* vr$925 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
				__builtin_memset( &TMP$355$4, 0, 24ll );
				FBSTRING* vr$928 = fb_StrConcat( &TMP$355$4, (void*)"#16", 4ll, (void*)CODE$1, -1ll );
				__builtin_memset( &TMP$356$4, 0, 24ll );
				FBSTRING* vr$931 = fb_StrConcat( &TMP$356$4, (void*)vr$928, -1ll, (void*)"\x0A", 2ll );
				__builtin_memset( &TMP$357$4, 0, 24ll );
				FBSTRING* vr$934 = fb_StrConcat( &TMP$357$4, (void*)vr$931, -1ll, (void*)vr$925, -1ll );
				__builtin_memset( &TMP$358$4, 0, 24ll );
				FBSTRING* vr$937 = fb_StrConcat( &TMP$358$4, (void*)vr$934, -1ll, (void*)&INSTRUC$1, -1ll );
				__builtin_memset( &TMP$359$4, 0, 24ll );
				FBSTRING* vr$940 = fb_StrConcat( &TMP$359$4, (void*)vr$937, -1ll, (void*)" ", 2ll );
				__builtin_memset( &TMP$360$4, 0, 24ll );
				FBSTRING* vr$943 = fb_StrConcat( &TMP$360$4, (void*)vr$940, -1ll, (void*)&PART1$1, -1ll );
				__builtin_memset( &TMP$361$4, 0, 24ll );
				FBSTRING* vr$946 = fb_StrConcat( &TMP$361$4, (void*)vr$943, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$362$4, 0, 24ll );
				FBSTRING* vr$949 = fb_StrConcat( &TMP$362$4, (void*)vr$946, -1ll, (void*)&PREVPART2$1, -1ll );
				__builtin_memset( &TMP$363$4, 0, 24ll );
				FBSTRING* vr$952 = fb_StrConcat( &TMP$363$4, (void*)vr$949, -1ll, (void*)" #Optim 16", 11ll );
				fb_StrAssign( (void*)CODE$1, -1ll, (void*)vr$952, -1ll, 0 );
				fb_StrAssign( (void*)&PART2$1, -1ll, (void*)&PREVPART2$1, -1ll, 0 );
			}
			label$142:;
			label$118:;
		}
		label$114:;
	}
	label$113:;
	label$112:;
	fb_StrAssign( (void*)&PREVPART1$1, -1ll, (void*)&PART1$1, -1ll, 0 );
	fb_StrAssign( (void*)&PREVPART2$1, -1ll, (void*)&PART2$1, -1ll, 0 );
	fb_StrAssign( (void*)&PREVINSTRUC$1, -1ll, (void*)&INSTRUC$1, -1ll, 0 );
	PREVWPOS$1 = WRITEPOS$1;
	fb_StrDelete( (FBSTRING*)&NEWCODE$1 );
	fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
	fb_StrDelete( (FBSTRING*)&PART2$1 );
	fb_StrDelete( (FBSTRING*)&PART1$1 );
	label$43:;
}

static void REG_FREEABLE( FBSTRING* LINEASM$1 )
{
	int64 TMP$366$1;
	int64 TMP$368$1;
	int64 TMP$370$1;
	label$149:;
	int32 REGFOUND1$1;
	__builtin_memset( &REGFOUND1$1, 0, 4ll );
	int32 REGFOUND2$1;
	__builtin_memset( &REGFOUND2$1, 0, 4ll );
	FBSTRING INSTRUC$1;
	__builtin_memset( &INSTRUC$1, 0, 24ll );
	FBSTRING* vr$3 = fb_TRIM( (FBSTRING*)LINEASM$1 );
	FBSTRING* vr$4 = fb_LEFT( (FBSTRING*)vr$3, 3ll );
	fb_StrAssign( (void*)&INSTRUC$1, -1ll, (void*)vr$4, -1ll, 0 );
	int32 vr$7 = fb_StrCompare( (void*)&INSTRUC$1, -1ll, (void*)"inc", 4ll );
	if( (int64)vr$7 == 0ll ) goto label$151;
	int32 vr$10 = fb_StrCompare( (void*)&INSTRUC$1, -1ll, (void*)"dec", 4ll );
	TMP$366$1 = (int64)-((int64)vr$10 == 0ll);
	goto label$3077;
	label$151:;
	TMP$366$1 = -1ll;
	label$3077:;
	if( TMP$366$1 != 0ll ) goto label$152;
	int32 vr$14 = fb_StrCompare( (void*)&INSTRUC$1, -1ll, (void*)"not", 4ll );
	TMP$368$1 = (int64)-((int64)vr$14 == 0ll);
	goto label$3078;
	label$152:;
	TMP$368$1 = -1ll;
	label$3078:;
	if( TMP$368$1 != 0ll ) goto label$153;
	int32 vr$18 = fb_StrCompare( (void*)&INSTRUC$1, -1ll, (void*)"neg", 4ll );
	TMP$370$1 = (int64)-((int64)vr$18 == 0ll);
	goto label$3079;
	label$153:;
	TMP$370$1 = -1ll;
	label$3079:;
	if( TMP$370$1 == 0ll ) goto label$155;
	{
		FBSTRING* vr$21 = fb_StrAllocTempDescZEx( (char*)"[", 1ll );
		int64 vr$22 = fb_StrInstr( 1ll, (FBSTRING*)LINEASM$1, (FBSTRING*)vr$21 );
		if( vr$22 != 0ll ) goto label$157;
		{
			fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
			goto label$150;
		}
		label$157:;
		label$156:;
	}
	goto label$154;
	label$155:;
	{
		FBSTRING* vr$25 = fb_StrAllocTempDescZEx( (char*)"mov lea cmp add sub imu idiv div shl shr sar and xor or call jmp push test cvt ", 79ll );
		int64 vr$26 = fb_StrInstr( 1ll, (FBSTRING*)vr$25, (FBSTRING*)&INSTRUC$1 );
		if( vr$26 != 0ll ) goto label$159;
		{
			fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
			goto label$150;
			label$159:;
		}
	}
	label$154:;
	{
		int32 IREG$2;
		IREG$2 = 1;
		label$163:;
		{
			FBSTRING TMP$372$3;
			FBSTRING TMP$373$3;
			FBSTRING TMP$374$3;
			FBSTRING TMP$375$3;
			if( (int64)*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)IREG$2 << (2ll & 63ll))) != -3ll ) goto label$165;
			{
				goto label$161;
				label$165:;
			}
			REGFOUND1$1 = -1;
			REGFOUND2$1 = -1;
			__builtin_memset( &TMP$372$3, 0, 24ll );
			FBSTRING* vr$35 = fb_StrConcat( &TMP$372$3, *(void**)((int64)(char**)REGSTRQ$ + ((int64)IREG$2 << (3ll & 63ll))), 0ll, (void*)",", 2ll );
			int64 vr$36 = fb_StrInstr( 1ll, (FBSTRING*)LINEASM$1, (FBSTRING*)vr$35 );
			if( vr$36 == 0ll ) goto label$167;
			{
				REGFOUND1$1 = IREG$2;
			}
			goto label$166;
			label$167:;
			__builtin_memset( &TMP$373$3, 0, 24ll );
			FBSTRING* vr$41 = fb_StrConcat( &TMP$373$3, *(void**)((int64)(char**)REGSTRD$ + ((int64)IREG$2 << (3ll & 63ll))), 0ll, (void*)",", 2ll );
			int64 vr$42 = fb_StrInstr( 1ll, (FBSTRING*)LINEASM$1, (FBSTRING*)vr$41 );
			if( vr$42 == 0ll ) goto label$168;
			{
				REGFOUND1$1 = IREG$2;
			}
			goto label$166;
			label$168:;
			__builtin_memset( &TMP$374$3, 0, 24ll );
			FBSTRING* vr$47 = fb_StrConcat( &TMP$374$3, *(void**)((int64)(char**)REGSTRW$ + ((int64)IREG$2 << (3ll & 63ll))), 0ll, (void*)",", 2ll );
			int64 vr$48 = fb_StrInstr( 1ll, (FBSTRING*)LINEASM$1, (FBSTRING*)vr$47 );
			if( vr$48 == 0ll ) goto label$169;
			{
				REGFOUND1$1 = IREG$2;
			}
			goto label$166;
			label$169:;
			__builtin_memset( &TMP$375$3, 0, 24ll );
			FBSTRING* vr$53 = fb_StrConcat( &TMP$375$3, *(void**)((int64)(char**)REGSTRB$ + ((int64)IREG$2 << (3ll & 63ll))), 0ll, (void*)",", 2ll );
			int64 vr$54 = fb_StrInstr( 1ll, (FBSTRING*)LINEASM$1, (FBSTRING*)vr$53 );
			if( vr$54 == 0ll ) goto label$170;
			{
				REGFOUND1$1 = IREG$2;
			}
			label$170:;
			label$166:;
			if( (int64)REGFOUND1$1 == -1ll ) goto label$172;
			{
				int64 TMP$378$4;
				int64 TMP$380$4;
				int32 vr$57 = fb_StrCompare( (void*)&INSTRUC$1, -1ll, (void*)"add", 4ll );
				if( (int64)vr$57 == 0ll ) goto label$173;
				int32 vr$60 = fb_StrCompare( (void*)&INSTRUC$1, -1ll, (void*)"sub", 4ll );
				TMP$378$4 = (int64)-((int64)vr$60 == 0ll);
				goto label$3080;
				label$173:;
				TMP$378$4 = -1ll;
				label$3080:;
				if( TMP$378$4 != 0ll ) goto label$174;
				int32 vr$64 = fb_StrCompare( (void*)&INSTRUC$1, -1ll, (void*)"imu", 4ll );
				TMP$380$4 = (int64)-((int64)vr$64 == 0ll);
				goto label$3081;
				label$174:;
				TMP$380$4 = -1ll;
				label$3081:;
				if( TMP$380$4 == 0ll ) goto label$176;
				{
					goto label$161;
				}
				goto label$175;
				label$176:;
				int32 vr$68 = fb_StrCompare( (void*)&INSTRUC$1, -1ll, (void*)"cmp", 4ll );
				if( (int64)vr$68 != 0ll ) goto label$177;
				{
					*(int32*)((uint8*)&CTX$ + 228ll) = REGFOUND1$1;
					*(int32*)((uint8*)&CTX$ + 232ll) = *(int32*)((int64)(int32*)REGHANDLE$ + ((int64)REGFOUND1$1 << (2ll & 63ll)));
					*(int32*)((uint8*)&CTX$ + 236ll) = 2;
					*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)REGFOUND1$1 << (2ll & 63ll))) = -2;
					goto label$161;
				}
				goto label$175;
				label$177:;
				{
					FBSTRING TMP$381$5;
					FBSTRING TMP$382$5;
					__builtin_memset( &TMP$381$5, 0, 24ll );
					FBSTRING* vr$80 = fb_StrConcat( &TMP$381$5, *(void**)((int64)(char**)REGSTRQ$ + ((int64)IREG$2 << (3ll & 63ll))), 0ll, (void*)", ", 3ll );
					__builtin_memset( &TMP$382$5, 0, 24ll );
					FBSTRING* vr$83 = fb_StrConcat( &TMP$382$5, (void*)vr$80, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)IREG$2 << (3ll & 63ll))), 0ll );
					int64 vr$84 = fb_StrInstr( 1ll, (FBSTRING*)LINEASM$1, (FBSTRING*)vr$83 );
					if( vr$84 == 0ll ) goto label$179;
					{
						*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)REGFOUND1$1 << (2ll & 63ll))) = -2;
						fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
						goto label$150;
					}
					label$179:;
					label$178:;
				}
				label$175:;
			}
			label$172:;
			label$171:;
			if( (int64)REGFOUND1$1 != -1ll ) goto label$181;
			{
				FBSTRING* vr$91 = fb_StrAllocTempDescZ( *(char**)((int64)(char**)REGSTRQ$ + ((int64)IREG$2 << (3ll & 63ll))) );
				int64 vr$92 = fb_StrInstr( 1ll, (FBSTRING*)LINEASM$1, (FBSTRING*)vr$91 );
				if( vr$92 == 0ll ) goto label$183;
				{
					REGFOUND2$1 = IREG$2;
				}
				goto label$182;
				label$183:;
				FBSTRING* vr$95 = fb_StrAllocTempDescZ( *(char**)((int64)(char**)REGSTRD$ + ((int64)IREG$2 << (3ll & 63ll))) );
				int64 vr$96 = fb_StrInstr( 1ll, (FBSTRING*)LINEASM$1, (FBSTRING*)vr$95 );
				if( vr$96 == 0ll ) goto label$184;
				{
					REGFOUND2$1 = IREG$2;
				}
				goto label$182;
				label$184:;
				FBSTRING* vr$99 = fb_StrAllocTempDescZ( *(char**)((int64)(char**)REGSTRW$ + ((int64)IREG$2 << (3ll & 63ll))) );
				int64 vr$100 = fb_StrInstr( 1ll, (FBSTRING*)LINEASM$1, (FBSTRING*)vr$99 );
				if( vr$100 == 0ll ) goto label$185;
				{
					REGFOUND2$1 = IREG$2;
				}
				goto label$182;
				label$185:;
				FBSTRING* vr$103 = fb_StrAllocTempDescZ( *(char**)((int64)(char**)REGSTRB$ + ((int64)IREG$2 << (3ll & 63ll))) );
				int64 vr$104 = fb_StrInstr( 1ll, (FBSTRING*)LINEASM$1, (FBSTRING*)vr$103 );
				if( vr$104 == 0ll ) goto label$186;
				{
					REGFOUND2$1 = IREG$2;
				}
				label$186:;
				label$182:;
			}
			label$181:;
			label$180:;
			if( (int64)REGFOUND2$1 == -1ll ) goto label$188;
			{
				*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)REGFOUND2$1 << (2ll & 63ll))) = -2;
			}
			label$188:;
			label$187:;
		}
		label$161:;
		IREG$2 = (int32)((int64)IREG$2 + 1ll);
		label$160:;
		if( (int64)IREG$2 <= 15ll ) goto label$163;
		label$162:;
	}
	fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
	label$150:;
}

static int64 PW2( int64 NUM$1 )
{
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$189:;
	double A$1;
	A$1 = __builtin_log( (double)NUM$1 ) / 0x1.62E42FEFA39EFp-1;
	double vr$4 = fb_FRACd( A$1 );
	if( vr$4 != 0x0p+0 ) goto label$192;
	{
		double vr$5 = pow( 0x1.p+1, A$1 );
		fb$result$1 = fb_D2L( vr$5 );
		goto label$190;
	}
	goto label$191;
	label$192:;
	{
		double vr$9 = pow( 0x1.p+1, __builtin_floor( A$1 ) + 0x1.p+0 );
		fb$result$1 = fb_D2L( vr$9 );
		goto label$190;
	}
	label$191:;
	label$190:;
	return fb$result$1;
}

static void ASM_SECTION( FBSTRING* SECTION$1 )
{
	label$193:;
	static FBSTRING SECTION_CURRENT$1;
	int32 vr$0 = fb_StrCompare( (void*)&SECTION_CURRENT$1, -1ll, (void*)SECTION$1, -1ll );
	if( (int64)vr$0 == 0ll ) goto label$196;
	{
		FBSTRING TMP$384$2;
		FBSTRING TMP$385$2;
		__builtin_memset( &TMP$385$2, 0, 24ll );
		__builtin_memset( &TMP$384$2, 0, 24ll );
		FBSTRING* vr$5 = fb_StrConcat( &TMP$384$2, (void*)".section ", 10ll, (void*)SECTION$1, -1ll );
		fb_StrAssign( (void*)&TMP$385$2, -1ll, (void*)vr$5, -1ll, 0 );
		HWRITEASM64( &TMP$385$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$385$2 );
		fb_StrAssign( (void*)&SECTION_CURRENT$1, -1ll, (void*)SECTION$1, -1ll, 0 );
	}
	label$196:;
	label$195:;
	label$194:;
}

static void EMITOP3_OP4( FBSTRING* OP$1 )
{
	label$197:;
	FBSTRING* vr$0 = fb_RIGHT( (FBSTRING*)OP$1, 3ll );
	int32 vr$1 = fb_StrCompare( (void*)vr$0, -1ll, (void*)"#NO", 4ll );
	if( (int64)vr$1 != 0ll ) goto label$200;
	{
		HWRITEASM64( OP$1, 3ll );
	}
	goto label$199;
	label$200:;
	{
		HWRITEASM64( OP$1, 0ll );
	}
	label$199:;
	label$198:;
}

static void HWRITEASM64( FBSTRING* LN2$1, int64 OPT$1 )
{
	FBSTRING TMP$396$1;
	label$205:;
	FBSTRING LN$1;
	__builtin_memset( &LN$1, 0, 24ll );
	FBSTRING LNAME$1;
	__builtin_memset( &LNAME$1, 0, 24ll );
	fb_StrAssign( (void*)&LN$1, -1ll, (void*)LN2$1, -1ll, 0 );
	if( *(int64*)((uint8*)&CTX$ + 424ll) == 0ll ) goto label$208;
	{
		if( *(int64*)((uint8*)&CTX$ + 432ll) != 1ll ) goto label$210;
		{
			*(int64*)((uint8*)&CTX$ + 432ll) = 2ll;
		}
		goto label$209;
		label$210:;
		{
			*(int64*)((uint8*)&CTX$ + 424ll) = 0ll;
		}
		label$209:;
	}
	label$208:;
	label$207:;
	if( (int64)*(int32*)((uint8*)&CTX$ + 236ll) == 0ll ) goto label$212;
	{
		*(int32*)((uint8*)&CTX$ + 236ll) = (int32)((int64)*(int32*)((uint8*)&CTX$ + 236ll) + -1ll);
		if( (int64)*(int32*)((uint8*)&CTX$ + 236ll) != 0ll ) goto label$214;
		{
			*(int32*)((uint8*)&CTX$ + 232ll) = -2;
		}
		label$214:;
		label$213:;
	}
	label$212:;
	label$211:;
	if( *(int64*)((uint8*)&ENV$ + 296ll) != -1ll ) goto label$216;
	{
		if( *(int64*)((uint8*)&CTXDBG$ + 8ll) == -1ll ) goto label$218;
		{
			FBSTRING TMP$388$3;
			FBSTRING TMP$390$3;
			FBSTRING TMP$391$3;
			FBSTRING TMP$392$3;
			FBSTRING TMP$393$3;
			FBSTRING TMP$394$3;
			DBG_FILENAME( (FBSTRING*)((uint8*)&CTXDBG$ + 40ll) );
			char* vr$9 = SYMBUNIQUELABEL(  );
			fb_StrAssign( (void*)&LNAME$1, -1ll, (void*)vr$9, 0ll, 0 );
			__builtin_memset( &TMP$392$3, 0, 24ll );
			char* vr$12 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)&CTXDBG$ + 64ll) );
			__builtin_memset( &TMP$390$3, 0, 24ll );
			FBSTRING* vr$16 = fb_StrConcat( &TMP$390$3, (void*)&LNAME$1, -1ll, (void*)"-", 2ll );
			__builtin_memset( &TMP$391$3, 0, 24ll );
			FBSTRING* vr$19 = fb_StrConcat( &TMP$391$3, (void*)vr$16, -1ll, (void*)vr$12, 0ll );
			fb_StrAssign( (void*)&TMP$392$3, -1ll, (void*)vr$19, -1ll, 0 );
			__builtin_memset( &TMP$388$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$388$3, -1ll, (void*)"", 1ll, 0 );
			DBG_ADDSTAB( &TMP$388$3, (uint8)68u, (int16)*(int64*)((uint8*)&CTXDBG$ + 8ll), &TMP$392$3 );
			fb_StrDelete( (FBSTRING*)&TMP$392$3 );
			fb_StrDelete( (FBSTRING*)&TMP$388$3 );
			*(int64*)((uint8*)&CTXDBG$ + 8ll) = -1ll;
			__builtin_memset( &TMP$394$3, 0, 24ll );
			__builtin_memset( &TMP$393$3, 0, 24ll );
			FBSTRING* vr$32 = fb_StrConcat( &TMP$393$3, (void*)&LNAME$1, -1ll, (void*)":", 2ll );
			fb_StrAssign( (void*)&TMP$394$3, -1ll, (void*)vr$32, -1ll, 0 );
			HWRITEASM64( &TMP$394$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$394$3 );
		}
		label$218:;
		label$217:;
	}
	label$216:;
	label$215:;
	if( ((int64)-(OPT$1 != 2ll) & (int64)-(OPT$1 != 1ll)) == 0ll ) goto label$220;
	{
		REG_FREEABLE( &LN$1 );
		label$220:;
	}
	if( ((int64)-(OPT$1 == 3ll) | (int64)-(OPT$1 == 1ll)) == 0ll ) goto label$222;
	{
		FBSTRING TMP$395$2;
		__builtin_memset( &TMP$395$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$395$2, -1ll, (void*)"", 1ll, 0 );
		CHECK_OPTIM( &TMP$395$2 );
		fb_StrDelete( (FBSTRING*)&TMP$395$2 );
	}
	goto label$221;
	label$222:;
	{
		CHECK_OPTIM( &LN$1 );
	}
	label$221:;
	FBSTRING* vr$50 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
	__builtin_memset( &TMP$396$1, 0, 24ll );
	FBSTRING* vr$53 = fb_StrConcat( &TMP$396$1, (void*)vr$50, -1ll, (void*)&LN$1, -1ll );
	fb_StrAssign( (void*)&LN$1, -1ll, (void*)vr$53, -1ll, 0 );
	fb_StrConcatAssign( (void*)&LN$1, -1ll, (void*)"\x0A", 2ll, 0 );
	{
		uint64 TMP$397$2;
		TMP$397$2 = *(uint64*)((uint8*)&CTX$ + 8ll);
		goto label$224;
		label$225:;
		{
			fb_StrConcatByref( (void*)((uint8*)&CTX$ + 112ll), -1ll, (void*)&LN$1, -1ll, 0 );
		}
		goto label$223;
		label$226:;
		{
			fb_StrConcatByref( (void*)((uint8*)&CTX$ + 88ll), -1ll, (void*)&LN$1, -1ll, 0 );
		}
		goto label$223;
		label$227:;
		{
			fb_StrConcatByref( (void*)((uint8*)&CTX$ + 136ll), -1ll, (void*)&LN$1, -1ll, 0 );
		}
		goto label$223;
		label$228:;
		{
			fb_StrConcatByref( (void*)((uint8*)&CTX$ + 16ll), -1ll, (void*)&LN$1, -1ll, 0 );
		}
		goto label$223;
		label$229:;
		{
			fb_StrConcatByref( (void*)((uint8*)&CTX$ + 64ll), -1ll, (void*)&LN$1, -1ll, 0 );
		}
		goto label$223;
		label$230:;
		{
			fb_StrConcatByref( (void*)((uint8*)&CTX$ + 16ll), -1ll, (void*)&LN$1, -1ll, 0 );
		}
		goto label$223;
		label$224:;
		static const void* tmp$4060[6ll] = {
			&&label$228,
			&&label$230,
			&&label$229,
			&&label$226,
			&&label$225,
			&&label$227,
		};
		if( TMP$397$2 > 5ull ) goto label$230;
		goto *tmp$4060[TMP$397$2 - 0ull];
		label$223:;
	}
	fb_StrDelete( (FBSTRING*)&LNAME$1 );
	fb_StrDelete( (FBSTRING*)&LN$1 );
	label$206:;
}

static FBSTRING* HFLOATTOHEX_ASM64( double VALUE$1, int64 DTYPE$1, int8 FULL$1 )
{
	int64 TMP$398$1;
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$231:;
	FBSTRING RAWBYTES$1;
	__builtin_memset( &RAWBYTES$1, 0, 24ll );
	float SINGLEVALUE$1;
	SINGLEVALUE$1 = (float)VALUE$1;
	if( (DTYPE$1 & 480ll) == 0ll ) goto label$233;
	TMP$398$1 = 24ll;
	goto label$3082;
	label$233:;
	TMP$398$1 = DTYPE$1 & 31ll;
	label$3082:;
	if( TMP$398$1 != 16ll ) goto label$235;
	{
		fb_StrAssign( (void*)&RAWBYTES$1, -1ll, (void*)"0x", 3ll, 0 );
		FBSTRING* vr$6 = fb_HEXEx_l( *(uint64*)&VALUE$1, 16 );
		fb_StrConcatAssign( (void*)&RAWBYTES$1, -1ll, (void*)vr$6, -1ll, 0 );
		fb_StrConcatAssign( (void*)&RAWBYTES$1, -1ll, (void*)" # DBL=", 8ll, 0 );
		FBSTRING* vr$9 = fb_DoubleToStr( VALUE$1 );
		fb_StrConcatAssign( (void*)&RAWBYTES$1, -1ll, (void*)vr$9, -1ll, 0 );
		if( (int64)FULL$1 == 0ll ) goto label$237;
		{
			FBSTRING TMP$402$3;
			__builtin_memset( &TMP$402$3, 0, 24ll );
			FBSTRING* vr$15 = fb_StrConcat( &TMP$402$3, (void*)".quad ", 7ll, (void*)&RAWBYTES$1, -1ll );
			fb_StrInit( (void*)&fb$result$1, -1ll, (void*)vr$15, -1ll, 0 );
			fb_StrDelete( (FBSTRING*)&RAWBYTES$1 );
			goto label$232;
		}
		goto label$236;
		label$237:;
		{
			fb_StrInit( (void*)&fb$result$1, -1ll, (void*)&RAWBYTES$1, -1ll, 0 );
			fb_StrDelete( (FBSTRING*)&RAWBYTES$1 );
			goto label$232;
		}
		label$236:;
	}
	goto label$234;
	label$235:;
	{
		fb_StrAssign( (void*)&RAWBYTES$1, -1ll, (void*)"0x", 3ll, 0 );
		FBSTRING* vr$23 = fb_HEXEx_l( (uint64)*(uint32*)&SINGLEVALUE$1, 8 );
		fb_StrConcatAssign( (void*)&RAWBYTES$1, -1ll, (void*)vr$23, -1ll, 0 );
		fb_StrConcatAssign( (void*)&RAWBYTES$1, -1ll, (void*)" # SNG=", 8ll, 0 );
		FBSTRING* vr$26 = fb_DoubleToStr( VALUE$1 );
		fb_StrConcatAssign( (void*)&RAWBYTES$1, -1ll, (void*)vr$26, -1ll, 0 );
		if( (int64)FULL$1 == 0ll ) goto label$239;
		{
			FBSTRING TMP$405$3;
			__builtin_memset( &TMP$405$3, 0, 24ll );
			FBSTRING* vr$32 = fb_StrConcat( &TMP$405$3, (void*)".long ", 7ll, (void*)&RAWBYTES$1, -1ll );
			fb_StrInit( (void*)&fb$result$1, -1ll, (void*)vr$32, -1ll, 0 );
			fb_StrDelete( (FBSTRING*)&RAWBYTES$1 );
			goto label$232;
		}
		goto label$238;
		label$239:;
		{
			fb_StrInit( (void*)&fb$result$1, -1ll, (void*)&RAWBYTES$1, -1ll, 0 );
			fb_StrDelete( (FBSTRING*)&RAWBYTES$1 );
			goto label$232;
		}
		label$238:;
	}
	label$234:;
	fb_StrDelete( (FBSTRING*)&RAWBYTES$1 );
	label$232:;
	FBSTRING* vr$40 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$40;
}

static int64 DBG_ADDSTR( FBSTRING* STRG$1, int64 NOSEARCH$1 )
{
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$240:;
	if( NOSEARCH$1 != 0ll ) goto label$243;
	{
		{
			int64 ISTR$3;
			ISTR$3 = 0ll;
			int64 TMP$406$3;
			TMP$406$3 = *(int64*)((uint8*)&CTXDBG$ + 72ll);
			goto label$244;
			label$247:;
			{
				int32 vr$4 = fb_StrCompare( (void*)STRG$1, -1ll, (void*)((uint8*)((ISTR$3 << (5ll & 63ll)) + *(int64*)&DBGSTR$) + 8ll), -1ll );
				if( (int64)vr$4 != 0ll ) goto label$249;
				{
					fb$result$1 = *(int64*)((ISTR$3 << (5ll & 63ll)) + *(int64*)&DBGSTR$);
					goto label$241;
				}
				label$249:;
				label$248:;
			}
			label$245:;
			ISTR$3 = ISTR$3 + 1ll;
			label$244:;
			if( ISTR$3 <= TMP$406$3 ) goto label$247;
			label$246:;
		}
	}
	label$243:;
	label$242:;
	*(int64*)((uint8*)&CTXDBG$ + 72ll) = *(int64*)((uint8*)&CTXDBG$ + 72ll) + 1ll;
	if( *(int64*)((uint8*)&CTXDBG$ + 72ll) <= *(int64*)((uint8*)&CTXDBG$ + 80ll) ) goto label$251;
	{
		*(int64*)((uint8*)&CTXDBG$ + 80ll) = fb_D2L( (double)*(int64*)((uint8*)&CTXDBG$ + 80ll) * 0x1.4CCCCCCCCCCCDp+0 );
		int32 vr$13 = fb_ArrayRedimPresvObj( (struct $7FBARRAYIvE*)&DBGSTR$, 32ull, (void*)&_ZN7TDBGSTRC1Ev, (void*)&_ZN7TDBGSTRD1Ev, 1ull, 0ll, *(int64*)((uint8*)&CTXDBG$ + 80ll) );
		if( (int64)vr$13 == 0ll ) goto label$252;
		void* vr$15 = fb_ErrorThrowAt( 948, (char*)"/root/FreeBASIC-1.10.3/src/compiler/ir-gas64.bas", (void*)0ull, (void*)0ull );
		goto *vr$15;
		label$252:;
	}
	label$251:;
	label$250:;
	fb_StrAssign( (void*)((uint8*)((*(int64*)((uint8*)&CTXDBG$ + 72ll) << (5ll & 63ll)) + *(int64*)&DBGSTR$) + 8ll), -1ll, (void*)STRG$1, -1ll, 0 );
	*(int64*)((*(int64*)((uint8*)&CTXDBG$ + 72ll) << (5ll & 63ll)) + *(int64*)&DBGSTR$) = *(int64*)((uint8*)&CTXDBG$ + 104ll);
	fb$result$1 = *(int64*)((uint8*)&CTXDBG$ + 104ll);
	int64 vr$21 = fb_StrLen( (void*)STRG$1, -1ll );
	*(int64*)((uint8*)&CTXDBG$ + 104ll) = (*(int64*)((uint8*)&CTXDBG$ + 104ll) + vr$21) + 1ll;
	label$241:;
	return fb$result$1;
}

static void DBG_ADDSTAB( FBSTRING* TXT$1, uint8 COD$1, int16 DESC$1, FBSTRING* VALUE$1 )
{
	label$253:;
	int64 OFFST$1;
	__builtin_memset( &OFFST$1, 0, 8ll );
	union $5USTAB STAB$1;
	__builtin_memset( &STAB$1, 0, 8ll );
	int32 vr$2 = fb_StrCompare( (void*)TXT$1, -1ll, (void*)"", 1ll );
	if( (int64)vr$2 == 0ll ) goto label$256;
	{
		if( ((int64)-((int64)COD$1 == 100ll) | (int64)-((int64)COD$1 == 132ll)) == 0ll ) goto label$258;
		{
			int64 vr$9 = DBG_ADDSTR( TXT$1, 0ll );
			OFFST$1 = vr$9;
		}
		goto label$257;
		label$258:;
		{
			int64 vr$10 = DBG_ADDSTR( TXT$1, 1ll );
			OFFST$1 = vr$10;
		}
		label$257:;
	}
	label$256:;
	label$255:;
	*(int64*)((uint8*)&CTXDBG$ + 88ll) = *(int64*)((uint8*)&CTXDBG$ + 88ll) + 1ll;
	if( *(int64*)((uint8*)&CTXDBG$ + 88ll) <= *(int64*)((uint8*)&CTXDBG$ + 96ll) ) goto label$260;
	{
		*(int64*)((uint8*)&CTXDBG$ + 96ll) = fb_D2L( (double)*(int64*)((uint8*)&CTXDBG$ + 96ll) * 0x1.8p+0 );
		int32 vr$15 = fb_ArrayRedimPresvObj( (struct $7FBARRAYIvE*)&DBGSTAB$, 32ull, (void*)&_ZN8TDBGSTABC1Ev, (void*)&_ZN8TDBGSTABD1Ev, 1ull, 0ll, *(int64*)((uint8*)&CTXDBG$ + 96ll) );
		if( (int64)vr$15 == 0ll ) goto label$261;
		void* vr$17 = fb_ErrorThrowAt( 968, (char*)"/root/FreeBASIC-1.10.3/src/compiler/ir-gas64.bas", (void*)0ull, (void*)0ull );
		goto *vr$17;
		label$261:;
	}
	label$260:;
	label$259:;
	*(int32*)&STAB$1 = (int32)OFFST$1;
	*(int16*)((uint8*)&STAB$1 + 4ll) = (int16)COD$1;
	*(int16*)((uint8*)&STAB$1 + 6ll) = DESC$1;
	*(int64*)((*(int64*)((uint8*)&CTXDBG$ + 88ll) << (5ll & 63ll)) + *(int64*)&DBGSTAB$) = *(int64*)&STAB$1;
	fb_StrAssign( (void*)((uint8*)((*(int64*)((uint8*)&CTXDBG$ + 88ll) << (5ll & 63ll)) + *(int64*)&DBGSTAB$) + 8ll), -1ll, (void*)VALUE$1, -1ll, 0 );
	label$254:;
}

static void DBG_EMITSTR( void )
{
	FBSTRING TMP$415$1;
	label$262:;
	if( *(boolean*)((uint8*)&CTX$ + 416ll) == (boolean)0ll ) goto label$265;
	{
		FBSTRING TMP$411$2;
		__builtin_memset( &TMP$411$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$411$2, -1ll, (void*)".dbgstr,\x22" "a\x22", 12ll, 0 );
		ASM_SECTION( &TMP$411$2 );
		fb_StrDelete( (FBSTRING*)&TMP$411$2 );
	}
	goto label$264;
	label$265:;
	{
		FBSTRING TMP$413$2;
		__builtin_memset( &TMP$413$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$413$2, -1ll, (void*)".dbgstr,\x22" "dr\x22", 13ll, 0 );
		ASM_SECTION( &TMP$413$2 );
		fb_StrDelete( (FBSTRING*)&TMP$413$2 );
	}
	label$264:;
	__builtin_memset( &TMP$415$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$415$1, -1ll, (void*)".byte 0", 8ll, 0 );
	HWRITEASM64( &TMP$415$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$415$1 );
	{
		int64 ISTR$2;
		ISTR$2 = 0ll;
		int64 TMP$416$2;
		TMP$416$2 = *(int64*)((uint8*)&CTXDBG$ + 72ll);
		goto label$266;
		label$269:;
		{
			FBSTRING TMP$421$3;
			FBSTRING TMP$422$3;
			FBSTRING TMP$423$3;
			__builtin_memset( &TMP$423$3, 0, 24ll );
			FBSTRING* vr$15 = HREPLACE( (char*)*(char**)((uint8*)((ISTR$2 << (5ll & 63ll)) + *(int64*)&DBGSTR$) + 8ll), (char*)"\x5C", (char*)"\x5C\x5C" );
			__builtin_memset( &TMP$421$3, 0, 24ll );
			FBSTRING* vr$18 = fb_StrConcat( &TMP$421$3, (void*)".ascii \x22", 9ll, (void*)vr$15, -1ll );
			__builtin_memset( &TMP$422$3, 0, 24ll );
			FBSTRING* vr$21 = fb_StrConcat( &TMP$422$3, (void*)vr$18, -1ll, (void*)"\x5C" "0\x22", 4ll );
			fb_StrAssign( (void*)&TMP$423$3, -1ll, (void*)vr$21, -1ll, 0 );
			HWRITEASM64( &TMP$423$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$423$3 );
		}
		label$267:;
		ISTR$2 = ISTR$2 + 1ll;
		label$266:;
		if( ISTR$2 <= TMP$416$2 ) goto label$269;
		label$268:;
	}
	label$263:;
}

static void DBG_EMITSTAB( void )
{
	label$270:;
	union $5USTAB STAB$1;
	__builtin_memset( &STAB$1, 0, 8ll );
	if( *(boolean*)((uint8*)&CTX$ + 416ll) == (boolean)0ll ) goto label$273;
	{
		FBSTRING TMP$425$2;
		__builtin_memset( &TMP$425$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$425$2, -1ll, (void*)".dbgdat,\x22" "a\x22", 12ll, 0 );
		ASM_SECTION( &TMP$425$2 );
		fb_StrDelete( (FBSTRING*)&TMP$425$2 );
	}
	goto label$272;
	label$273:;
	{
		FBSTRING TMP$427$2;
		__builtin_memset( &TMP$427$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$427$2, -1ll, (void*)".dbgdat,\x22" "dr\x22", 13ll, 0 );
		ASM_SECTION( &TMP$427$2 );
		fb_StrDelete( (FBSTRING*)&TMP$427$2 );
	}
	label$272:;
	{
		int64 ISTAB$2;
		ISTAB$2 = 0ll;
		int64 TMP$428$2;
		TMP$428$2 = *(int64*)((uint8*)&CTXDBG$ + 88ll);
		goto label$274;
		label$277:;
		{
			FBSTRING TMP$431$3;
			FBSTRING TMP$432$3;
			FBSTRING TMP$433$3;
			FBSTRING TMP$434$3;
			FBSTRING TMP$435$3;
			FBSTRING TMP$436$3;
			FBSTRING TMP$437$3;
			FBSTRING TMP$438$3;
			FBSTRING TMP$439$3;
			FBSTRING TMP$440$3;
			*(int64*)&STAB$1 = *(int64*)((ISTAB$2 << (5ll & 63ll)) + *(int64*)&DBGSTAB$);
			__builtin_memset( &TMP$438$3, 0, 24ll );
			FBSTRING* vr$12 = fb_IntToStr( *(int32*)&STAB$1 );
			FBSTRING* vr$14 = fb_IntToStr( (int32)*(int16*)((uint8*)&STAB$1 + 6ll) );
			FBSTRING* vr$16 = fb_IntToStr( (int32)*(int16*)((uint8*)&STAB$1 + 4ll) );
			FBSTRING* vr$19 = fb_HEX_l( *(uint64*)((ISTAB$2 << (5ll & 63ll)) + *(int64*)&DBGSTAB$) );
			__builtin_memset( &TMP$431$3, 0, 24ll );
			FBSTRING* vr$22 = fb_StrConcat( &TMP$431$3, (void*)".quad 0x", 9ll, (void*)vr$19, -1ll );
			__builtin_memset( &TMP$432$3, 0, 24ll );
			FBSTRING* vr$25 = fb_StrConcat( &TMP$432$3, (void*)vr$22, -1ll, (void*)" # ", 4ll );
			__builtin_memset( &TMP$433$3, 0, 24ll );
			FBSTRING* vr$28 = fb_StrConcat( &TMP$433$3, (void*)vr$25, -1ll, (void*)vr$16, -1ll );
			__builtin_memset( &TMP$434$3, 0, 24ll );
			FBSTRING* vr$31 = fb_StrConcat( &TMP$434$3, (void*)vr$28, -1ll, (void*)" ", 2ll );
			__builtin_memset( &TMP$435$3, 0, 24ll );
			FBSTRING* vr$34 = fb_StrConcat( &TMP$435$3, (void*)vr$31, -1ll, (void*)vr$14, -1ll );
			__builtin_memset( &TMP$436$3, 0, 24ll );
			FBSTRING* vr$37 = fb_StrConcat( &TMP$436$3, (void*)vr$34, -1ll, (void*)" ", 2ll );
			__builtin_memset( &TMP$437$3, 0, 24ll );
			FBSTRING* vr$40 = fb_StrConcat( &TMP$437$3, (void*)vr$37, -1ll, (void*)vr$12, -1ll );
			fb_StrAssign( (void*)&TMP$438$3, -1ll, (void*)vr$40, -1ll, 0 );
			HWRITEASM64( &TMP$438$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$438$3 );
			__builtin_memset( &TMP$440$3, 0, 24ll );
			__builtin_memset( &TMP$439$3, 0, 24ll );
			FBSTRING* vr$50 = fb_StrConcat( &TMP$439$3, (void*)".quad ", 7ll, (void*)((uint8*)((ISTAB$2 << (5ll & 63ll)) + *(int64*)&DBGSTAB$) + 8ll), -1ll );
			fb_StrAssign( (void*)&TMP$440$3, -1ll, (void*)vr$50, -1ll, 0 );
			HWRITEASM64( &TMP$440$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$440$3 );
		}
		label$275:;
		ISTAB$2 = ISTAB$2 + 1ll;
		label$274:;
		if( ISTAB$2 <= TMP$428$2 ) goto label$277;
		label$276:;
	}
	label$271:;
}

static void EDBGEMITHEADER_ASM64( char* FILENAME$1 )
{
	FBSTRING TMP$444$1;
	FBSTRING TMP$445$1;
	FBSTRING TMP$446$1;
	FBSTRING TMP$448$1;
	FBSTRING TMP$449$1;
	FBSTRING TMP$450$1;
	FBSTRING TMP$451$1;
	FBSTRING TMP$454$1;
	FBSTRING TMP$455$1;
	FBSTRING TMP$456$1;
	label$278:;
	FBSTRING LNAME$1;
	__builtin_memset( &LNAME$1, 0, 24ll );
	*(uint64*)&CTXDBG$ = 1ull;
	*(int64*)((uint8*)&CTXDBG$ + 72ll) = -1ll;
	*(int64*)((uint8*)&CTXDBG$ + 80ll) = 1000ll;
	int32 vr$1 = fb_ArrayRedimObj( (struct $7FBARRAYIvE*)&DBGSTR$, 32ull, (void*)&_ZN7TDBGSTRC1Ev, (void*)&_ZN7TDBGSTRD1Ev, 1ull, 0ll, *(int64*)((uint8*)&CTXDBG$ + 80ll) );
	if( (int64)vr$1 == 0ll ) goto label$280;
	void* vr$3 = fb_ErrorThrowAt( 1007, (char*)"/root/FreeBASIC-1.10.3/src/compiler/ir-gas64.bas", (void*)0ull, (void*)0ull );
	goto *vr$3;
	label$280:;
	*(int64*)((uint8*)&CTXDBG$ + 88ll) = -1ll;
	*(int64*)((uint8*)&CTXDBG$ + 96ll) = 1000ll;
	int32 vr$4 = fb_ArrayRedimObj( (struct $7FBARRAYIvE*)&DBGSTAB$, 32ull, (void*)&_ZN8TDBGSTABC1Ev, (void*)&_ZN8TDBGSTABD1Ev, 1ull, 0ll, *(int64*)((uint8*)&CTXDBG$ + 96ll) );
	if( (int64)vr$4 == 0ll ) goto label$281;
	void* vr$6 = fb_ErrorThrowAt( 1010, (char*)"/root/FreeBASIC-1.10.3/src/compiler/ir-gas64.bas", (void*)0ull, (void*)0ull );
	goto *vr$6;
	label$281:;
	*(int64*)((uint8*)&CTXDBG$ + 104ll) = 1ll;
	*(int64*)((uint8*)&CTXDBG$ + 8ll) = -1ll;
	__builtin_memset( &TMP$446$1, 0, 24ll );
	char* vr$8 = HESCAPE( (char*)FILENAME$1 );
	__builtin_memset( &TMP$444$1, 0, 24ll );
	FBSTRING* vr$11 = fb_StrConcat( &TMP$444$1, (void*)".file \x22", 8ll, (void*)vr$8, 0ll );
	__builtin_memset( &TMP$445$1, 0, 24ll );
	FBSTRING* vr$14 = fb_StrConcat( &TMP$445$1, (void*)vr$11, -1ll, (void*)"\x22", 2ll );
	fb_StrAssign( (void*)&TMP$446$1, -1ll, (void*)vr$14, -1ll, 0 );
	HWRITEASM64( &TMP$446$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$446$1 );
	char* vr$18 = SYMBUNIQUELABEL(  );
	fb_StrAssign( (void*)&LNAME$1, -1ll, (void*)vr$18, 0ll, 0 );
	__builtin_memset( &TMP$449$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$449$1, -1ll, (void*)"0", 2ll, 0 );
	__builtin_memset( &TMP$448$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$448$1, -1ll, (void*)"DUMMY", 6ll, 0 );
	DBG_ADDSTAB( &TMP$448$1, (uint8)0u, (int16)0, &TMP$449$1 );
	fb_StrDelete( (FBSTRING*)&TMP$449$1 );
	fb_StrDelete( (FBSTRING*)&TMP$448$1 );
	__builtin_memset( &TMP$451$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$451$1, -1ll, (void*)"0", 2ll, 0 );
	__builtin_memset( &TMP$450$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$450$1, -1ll, (void*)"FreeBASIC 1.10.3", 17ll, 0 );
	DBG_ADDSTAB( &TMP$450$1, (uint8)255u, (int16)0, &TMP$451$1 );
	fb_StrDelete( (FBSTRING*)&TMP$451$1 );
	fb_StrDelete( (FBSTRING*)&TMP$450$1 );
	int64 vr$36 = PATHISABSOLUTE( FILENAME$1 );
	if( vr$36 != 0ll ) goto label$283;
	{
		FBSTRING TMP$452$2;
		FBSTRING TMP$453$2;
		__builtin_memset( &TMP$453$2, 0, 24ll );
		FBSTRING* vr$39 = HCURDIR(  );
		__builtin_memset( &TMP$452$2, 0, 24ll );
		FBSTRING* vr$42 = fb_StrConcat( &TMP$452$2, (void*)vr$39, -1ll, (void*)"/", 2ll );
		fb_StrAssign( (void*)&TMP$453$2, -1ll, (void*)vr$42, -1ll, 0 );
		DBG_ADDSTAB( &TMP$453$2, (uint8)100u, (int16)0, &LNAME$1 );
		fb_StrDelete( (FBSTRING*)&TMP$453$2 );
	}
	label$283:;
	label$282:;
	__builtin_memset( &TMP$454$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$454$1, -1ll, (void*)FILENAME$1, 0ll, 0 );
	DBG_ADDSTAB( &TMP$454$1, (uint8)100u, (int16)0, &LNAME$1 );
	fb_StrDelete( (FBSTRING*)&TMP$454$1 );
	__builtin_memset( &TMP$456$1, 0, 24ll );
	__builtin_memset( &TMP$455$1, 0, 24ll );
	FBSTRING* vr$55 = fb_StrConcat( &TMP$455$1, (void*)&LNAME$1, -1ll, (void*)":", 2ll );
	fb_StrAssign( (void*)&TMP$456$1, -1ll, (void*)vr$55, -1ll, 0 );
	HWRITEASM64( &TMP$456$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$456$1 );
	{
		int64 I$2;
		I$2 = 0ll;
		label$287:;
		{
			FBSTRING TMP$457$3;
			FBSTRING STRG$3;
			fb_StrInit( (void*)&STRG$3, -1ll, *(void**)((int64)(char**)STABSTB$ + (I$2 << (3ll & 63ll))), 0ll, 0 );
			__builtin_memset( &TMP$457$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$457$3, -1ll, (void*)"0", 2ll, 0 );
			DBG_ADDSTAB( &STRG$3, (uint8)128u, (int16)0, &TMP$457$3 );
			fb_StrDelete( (FBSTRING*)&TMP$457$3 );
			*(uint64*)&CTXDBG$ = *(uint64*)&CTXDBG$ + 1ull;
			fb_StrDelete( (FBSTRING*)&STRG$3 );
		}
		label$285:;
		I$2 = I$2 + 1ll;
		label$284:;
		if( I$2 <= 16ll ) goto label$287;
		label$286:;
	}
	fb_StrDelete( (FBSTRING*)&LNAME$1 );
	label$279:;
}

static void EDBGEMITGLOBALVAR_ASM64( struct $8FBSYMBOL* SYM$1, int64 SECTION$1 )
{
	FBSTRING TMP$460$1;
	label$288:;
	int64 T$1;
	int64 ATTRIB$1;
	FBSTRING DESC$1;
	__builtin_memset( &DESC$1, 0, 24ll );
	{
		if( SECTION$1 != 0ll ) goto label$291;
		label$292:;
		{
			T$1 = 36ll;
		}
		goto label$290;
		label$291:;
		if( SECTION$1 != 2ll ) goto label$293;
		label$294:;
		{
			T$1 = 40ll;
		}
		goto label$290;
		label$293:;
		{
			T$1 = 38ll;
		}
		label$295:;
		label$290:;
	}
	char* vr$1 = SYMBGETDBGNAME( SYM$1 );
	fb_StrAssign( (void*)&DESC$1, -1ll, (void*)vr$1, 0ll, 0 );
	if( ((int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 32ll) != 0ll) | (int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 8ll) != 0ll)) == 0ll ) goto label$297;
	{
		fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)":G", 3ll, 0 );
	}
	goto label$296;
	label$297:;
	if( (*(int64*)((uint8*)SYM$1 + 8ll) & 2ll) == 0ll ) goto label$298;
	{
		fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)":S", 3ll, 0 );
	}
	goto label$296;
	label$298:;
	{
		fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)":", 2ll, 0 );
	}
	label$296:;
	FBSTRING* vr$15 = HGETDATATYPE_ASM64( SYM$1, 0ll );
	fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)vr$15, -1ll, 0 );
	__builtin_memset( &TMP$460$1, 0, 24ll );
	char* vr$18 = SYMBGETMANGLEDNAME( SYM$1 );
	fb_StrAssign( (void*)&TMP$460$1, -1ll, (void*)vr$18, 0ll, 0 );
	DBG_ADDSTAB( &DESC$1, (uint8)T$1, (int16)0, &TMP$460$1 );
	fb_StrDelete( (FBSTRING*)&TMP$460$1 );
	fb_StrDelete( (FBSTRING*)&DESC$1 );
	label$289:;
}

static void EDBGEMITLOCALVAR_ASM64( struct $8FBSYMBOL* SYM$1, int64 ISSTATIC$1 )
{
	label$299:;
	int64 T$1;
	FBSTRING DESC$1;
	__builtin_memset( &DESC$1, 0, 24ll );
	FBSTRING VALUE$1;
	__builtin_memset( &VALUE$1, 0, 24ll );
	fb_StrAssign( (void*)&DESC$1, -1ll, *(void**)((uint8*)SYM$1 + 32ll), 0ll, 0 );
	if( ISSTATIC$1 == 0ll ) goto label$302;
	{
		if( (*(int64*)((uint8*)SYM$1 + 24ll) & 2ll) != 0ll ) goto label$304;
		{
			fb_StrDelete( (FBSTRING*)&VALUE$1 );
			fb_StrDelete( (FBSTRING*)&DESC$1 );
			goto label$300;
		}
		label$304:;
		label$303:;
		if( *(struct $7ASTNODE**)((uint8*)SYM$1 + 96ll) == (struct $7ASTNODE*)0ull ) goto label$306;
		{
			T$1 = 38ll;
		}
		goto label$305;
		label$306:;
		{
			T$1 = 40ll;
		}
		label$305:;
		fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)":V", 3ll, 0 );
		char* vr$10 = SYMBGETMANGLEDNAME( SYM$1 );
		fb_StrAssign( (void*)&VALUE$1, -1ll, (void*)vr$10, 0ll, 0 );
	}
	goto label$301;
	label$302:;
	{
		T$1 = 128ll;
		fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)":", 2ll, 0 );
		FBSTRING* vr$14 = fb_LongintToStr( *(int64*)((uint8*)SYM$1 + 88ll) );
		fb_StrAssign( (void*)&VALUE$1, -1ll, (void*)vr$14, -1ll, 0 );
	}
	label$301:;
	FBSTRING* vr$16 = HGETDATATYPE_ASM64( SYM$1, 0ll );
	fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)vr$16, -1ll, 0 );
	DBG_ADDSTAB( &DESC$1, (uint8)T$1, (int16)0, &VALUE$1 );
	fb_StrDelete( (FBSTRING*)&VALUE$1 );
	fb_StrDelete( (FBSTRING*)&DESC$1 );
	label$300:;
}

static void EDBGEMITPROCHEADER_ASM64( struct $8FBSYMBOL* PROC$1 )
{
	FBSTRING TMP$466$1;
	FBSTRING TMP$467$1;
	label$307:;
	static FBSTRING DESC$1;
	static FBSTRING PROCNAME$1;
	static FBSTRING FILENAME$1;
	fb_StrAssign( (void*)&FILENAME$1, -1ll, (void*)((uint8*)&ENV$ + 608ll), 261ll, 0 );
	DBG_FILENAME( &FILENAME$1 );
	if( (*(int64*)((uint8*)PROC$1 + 24ll) & 4096ll) == 0ll ) goto label$310;
	{
		FBSTRING TMP$462$2;
		FBSTRING TMP$463$2;
		__builtin_memset( &TMP$463$2, 0, 24ll );
		char* vr$4 = SYMBGETMANGLEDNAME( PROC$1 );
		fb_StrAssign( (void*)&TMP$463$2, -1ll, (void*)vr$4, 0ll, 0 );
		__builtin_memset( &TMP$462$2, 0, 24ll );
		FBSTRING* vr$8 = FBGETENTRYPOINT(  );
		fb_StrAssign( (void*)&TMP$462$2, -1ll, (void*)vr$8, -1ll, 0 );
		DBG_ADDSTAB( &TMP$462$2, (uint8)42u, (int16)1, &TMP$463$2 );
		fb_StrDelete( (FBSTRING*)&TMP$463$2 );
		fb_StrDelete( (FBSTRING*)&TMP$462$2 );
		*(int64*)((uint8*)*(struct $10FB_PROCEXT**)((uint8*)PROC$1 + 208ll) + 32ll) = 1ll;
		*(int64*)((uint8*)*(struct $10FB_PROCEXT**)((uint8*)PROC$1 + 208ll) + 40ll) = *(int64*)((uint8*)*(struct $9LEX_TKCTX**)((uint8*)&LEX$ + 844696ll) + 16752ll);
		FBSTRING* vr$18 = FBGETENTRYPOINT(  );
		fb_StrAssign( (void*)&DESC$1, -1ll, (void*)vr$18, -1ll, 0 );
	}
	goto label$309;
	label$310:;
	{
		char* vr$19 = SYMBGETDBGNAME( PROC$1 );
		fb_StrAssign( (void*)&DESC$1, -1ll, (void*)vr$19, 0ll, 0 );
	}
	label$309:;
	char* vr$20 = SYMBGETMANGLEDNAME( PROC$1 );
	fb_StrAssign( (void*)&PROCNAME$1, -1ll, (void*)vr$20, 0ll, 0 );
	*(struct $8FBSYMBOL**)((uint8*)&CTXDBG$ + 64ll) = PROC$1;
	if( (*(int64*)((uint8*)PROC$1 + 8ll) & 32ll) == 0ll ) goto label$312;
	{
		fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)":F", 3ll, 0 );
	}
	goto label$311;
	label$312:;
	{
		fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)":f", 3ll, 0 );
	}
	label$311:;
	FBSTRING* vr$23 = HGETDATATYPE_ASM64( PROC$1, 0ll );
	fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)vr$23, -1ll, 0 );
	DBG_ADDSTAB( &DESC$1, (uint8)36u, (int16)*(int64*)((uint8*)*(struct $10FB_PROCEXT**)((uint8*)PROC$1 + 208ll) + 32ll), &PROCNAME$1 );
	__builtin_memset( &TMP$467$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$467$1, -1ll, (void*)"0", 2ll, 0 );
	__builtin_memset( &TMP$466$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$466$1, -1ll, (void*)"", 1ll, 0 );
	DBG_ADDSTAB( &TMP$466$1, (uint8)68u, (int16)1, &TMP$467$1 );
	fb_StrDelete( (FBSTRING*)&TMP$467$1 );
	fb_StrDelete( (FBSTRING*)&TMP$466$1 );
	label$308:;
}

static void EDBGEMITPROCARG_ASM64( struct $8FBSYMBOL* SYM$1 )
{
	FBSTRING TMP$468$1;
	FBSTRING TMP$471$1;
	label$313:;
	FBSTRING DESC$1;
	__builtin_memset( &DESC$1, 0, 24ll );
	__builtin_memset( &TMP$468$1, 0, 24ll );
	FBSTRING* vr$4 = fb_StrConcat( &TMP$468$1, *(void**)((uint8*)SYM$1 + 32ll), 0ll, (void*)":", 2ll );
	fb_StrAssign( (void*)&DESC$1, -1ll, (void*)vr$4, -1ll, 0 );
	if( (*(int64*)((uint8*)SYM$1 + 8ll) & 32768ll) == 0ll ) goto label$316;
	{
		fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)"p", 2ll, 0 );
	}
	goto label$315;
	label$316:;
	{
		fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)"v", 2ll, 0 );
	}
	label$315:;
	FBSTRING* vr$10 = HGETDATATYPE_ASM64( SYM$1, 0ll );
	fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)vr$10, -1ll, 0 );
	__builtin_memset( &TMP$471$1, 0, 24ll );
	FBSTRING* vr$14 = fb_LongintToStr( *(int64*)((uint8*)SYM$1 + 88ll) );
	fb_StrAssign( (void*)&TMP$471$1, -1ll, (void*)vr$14, -1ll, 0 );
	DBG_ADDSTAB( &DESC$1, (uint8)160u, (int16)0, &TMP$471$1 );
	fb_StrDelete( (FBSTRING*)&TMP$471$1 );
	fb_StrDelete( (FBSTRING*)&DESC$1 );
	label$314:;
}

static FBSTRING* HDECLPOINTER_ASM64( int64* DTYPE$1 )
{
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$317:;
	static FBSTRING DESC$1;
	fb_StrAssign( (void*)&DESC$1, -1ll, (void*)"", 1ll, 0 );
	label$319:;
	if( (*DTYPE$1 & 480ll) == 0ll ) goto label$320;
	{
		*DTYPE$1 = (((*DTYPE$1 & 31ll) | ((*DTYPE$1 & 480ll) + -32ll)) | (((*DTYPE$1 & 261632ll) >> (1ll & 63ll)) & 261632ll)) | (*DTYPE$1 & 32505856ll);
		FBSTRING* vr$18 = fb_ULongintToStr( *(uint64*)&CTXDBG$ );
		fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)vr$18, -1ll, 0 );
		fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)"=*", 3ll, 0 );
		*(uint64*)&CTXDBG$ = *(uint64*)&CTXDBG$ + 1ull;
	}
	goto label$319;
	label$320:;
	fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)&DESC$1, -1ll, 0 );
	label$318:;
	FBSTRING* vr$22 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$22;
}

static void HDECLUDT_ASM64( struct $8FBSYMBOL* SYM$1, int64 DIMTBELEMENTS$1 )
{
	FBSTRING TMP$475$1;
	FBSTRING TMP$476$1;
	FBSTRING TMP$477$1;
	FBSTRING TMP$478$1;
	FBSTRING TMP$489$1;
	label$321:;
	struct $8FBSYMBOL* FLD$1;
	FBSTRING DESC$1;
	__builtin_memset( &DESC$1, 0, 24ll );
	*(int64*)((uint8*)SYM$1 + 232ll) = *(int64*)&CTXDBG$;
	*(uint64*)&CTXDBG$ = *(uint64*)&CTXDBG$ + 1ull;
	char* vr$3 = SYMBGETDBGNAME( SYM$1 );
	fb_StrAssign( (void*)&DESC$1, -1ll, (void*)vr$3, 0ll, 0 );
	FBSTRING* vr$6 = fb_LongintToStr( *(int64*)((uint8*)SYM$1 + 80ll) );
	FBSTRING* vr$8 = fb_LongintToStr( *(int64*)((uint8*)SYM$1 + 232ll) );
	__builtin_memset( &TMP$475$1, 0, 24ll );
	FBSTRING* vr$11 = fb_StrConcat( &TMP$475$1, (void*)":Tt", 4ll, (void*)vr$8, -1ll );
	__builtin_memset( &TMP$476$1, 0, 24ll );
	FBSTRING* vr$14 = fb_StrConcat( &TMP$476$1, (void*)vr$11, -1ll, (void*)"=s", 3ll );
	__builtin_memset( &TMP$477$1, 0, 24ll );
	FBSTRING* vr$17 = fb_StrConcat( &TMP$477$1, (void*)vr$14, -1ll, (void*)vr$6, -1ll );
	__builtin_memset( &TMP$478$1, 0, 24ll );
	FBSTRING* vr$21 = fb_StrConcat( &TMP$478$1, (void*)&DESC$1, -1ll, (void*)vr$17, -1ll );
	fb_StrAssign( (void*)&DESC$1, -1ll, (void*)vr$21, -1ll, 0 );
	struct $8FBSYMBOL* vr$23 = SYMBUDTGETFIRSTFIELD( SYM$1 );
	FLD$1 = vr$23;
	label$323:;
	if( FLD$1 == (struct $8FBSYMBOL*)0ull ) goto label$324;
	{
		if( (*(int64*)((uint8*)FLD$1 + 8ll) & 4ll) != 0ll ) goto label$326;
		{
			FBSTRING TMP$479$3;
			FBSTRING TMP$480$3;
			FBSTRING TMP$481$3;
			int64 TMP$482$3;
			FBSTRING TMP$483$3;
			FBSTRING TMP$484$3;
			int64 TMP$485$3;
			FBSTRING TMP$486$3;
			FBSTRING TMP$487$3;
			FBSTRING* vr$26 = HGETDATATYPE_ASM64( FLD$1, DIMTBELEMENTS$1 );
			__builtin_memset( &TMP$479$3, 0, 24ll );
			FBSTRING* vr$30 = fb_StrConcat( &TMP$479$3, *(void**)((uint8*)FLD$1 + 32ll), 0ll, (void*)":", 2ll );
			__builtin_memset( &TMP$480$3, 0, 24ll );
			FBSTRING* vr$33 = fb_StrConcat( &TMP$480$3, (void*)vr$30, -1ll, (void*)vr$26, -1ll );
			__builtin_memset( &TMP$481$3, 0, 24ll );
			FBSTRING* vr$37 = fb_StrConcat( &TMP$481$3, (void*)&DESC$1, -1ll, (void*)vr$33, -1ll );
			fb_StrAssign( (void*)&DESC$1, -1ll, (void*)vr$37, -1ll, 0 );
			if( *(int64*)((uint8*)FLD$1 + 192ll) <= 0ll ) goto label$327;
			TMP$482$3 = *(int64*)((uint8*)FLD$1 + 184ll);
			goto label$3083;
			label$327:;
			TMP$482$3 = 0ll;
			label$3083:;
			FBSTRING* vr$44 = fb_LongintToStr( (*(int64*)((uint8*)FLD$1 + 88ll) << (3ll & 63ll)) + TMP$482$3 );
			__builtin_memset( &TMP$483$3, 0, 24ll );
			FBSTRING* vr$47 = fb_StrConcat( &TMP$483$3, (void*)",", 2ll, (void*)vr$44, -1ll );
			__builtin_memset( &TMP$484$3, 0, 24ll );
			FBSTRING* vr$51 = fb_StrConcat( &TMP$484$3, (void*)&DESC$1, -1ll, (void*)vr$47, -1ll );
			fb_StrAssign( (void*)&DESC$1, -1ll, (void*)vr$51, -1ll, 0 );
			if( *(int64*)((uint8*)FLD$1 + 192ll) <= 0ll ) goto label$328;
			TMP$485$3 = *(int64*)((uint8*)FLD$1 + 192ll);
			goto label$3084;
			label$328:;
			int64 vr$55 = SYMBGETREALSIZE( FLD$1 );
			TMP$485$3 = vr$55 << (3ll & 63ll);
			label$3084:;
			FBSTRING* vr$57 = fb_LongintToStr( TMP$485$3 );
			__builtin_memset( &TMP$486$3, 0, 24ll );
			FBSTRING* vr$60 = fb_StrConcat( &TMP$486$3, (void*)",", 2ll, (void*)vr$57, -1ll );
			__builtin_memset( &TMP$487$3, 0, 24ll );
			FBSTRING* vr$64 = fb_StrConcat( &TMP$487$3, (void*)&DESC$1, -1ll, (void*)vr$60, -1ll );
			fb_StrAssign( (void*)&DESC$1, -1ll, (void*)vr$64, -1ll, 0 );
			fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)";", 2ll, 0 );
		}
		label$326:;
		label$325:;
		struct $8FBSYMBOL* vr$67 = SYMBUDTGETNEXTFIELD( FLD$1 );
		FLD$1 = vr$67;
	}
	goto label$323;
	label$324:;
	fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)";", 2ll, 0 );
	__builtin_memset( &TMP$489$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$489$1, -1ll, (void*)"0", 2ll, 0 );
	DBG_ADDSTAB( &DESC$1, (uint8)128u, (int16)0, &TMP$489$1 );
	fb_StrDelete( (FBSTRING*)&TMP$489$1 );
	fb_StrDelete( (FBSTRING*)&DESC$1 );
	label$322:;
}

static void HDECLENUM_ASM64( struct $8FBSYMBOL* SYM$1 )
{
	FBSTRING TMP$492$1;
	FBSTRING TMP$493$1;
	FBSTRING TMP$494$1;
	FBSTRING TMP$499$1;
	label$329:;
	struct $8FBSYMBOL* E$1;
	__builtin_memset( &E$1, 0, 8ll );
	FBSTRING DESC$1;
	__builtin_memset( &DESC$1, 0, 24ll );
	*(int64*)((uint8*)SYM$1 + 184ll) = *(int64*)&CTXDBG$;
	*(uint64*)&CTXDBG$ = *(uint64*)&CTXDBG$ + 1ull;
	char* vr$4 = SYMBGETDBGNAME( SYM$1 );
	fb_StrAssign( (void*)&DESC$1, -1ll, (void*)vr$4, 0ll, 0 );
	FBSTRING* vr$7 = fb_LongintToStr( *(int64*)((uint8*)SYM$1 + 184ll) );
	__builtin_memset( &TMP$492$1, 0, 24ll );
	FBSTRING* vr$10 = fb_StrConcat( &TMP$492$1, (void*)":T", 3ll, (void*)vr$7, -1ll );
	__builtin_memset( &TMP$493$1, 0, 24ll );
	FBSTRING* vr$13 = fb_StrConcat( &TMP$493$1, (void*)vr$10, -1ll, (void*)"=e", 3ll );
	__builtin_memset( &TMP$494$1, 0, 24ll );
	FBSTRING* vr$17 = fb_StrConcat( &TMP$494$1, (void*)&DESC$1, -1ll, (void*)vr$13, -1ll );
	fb_StrAssign( (void*)&DESC$1, -1ll, (void*)vr$17, -1ll, 0 );
	struct $8FBSYMBOL* vr$19 = SYMBGETENUMFIRSTELM( SYM$1 );
	E$1 = vr$19;
	label$331:;
	if( E$1 == (struct $8FBSYMBOL*)0ull ) goto label$332;
	{
		FBSTRING TMP$495$2;
		FBSTRING TMP$496$2;
		FBSTRING TMP$497$2;
		FBSTRING TMP$498$2;
		FBSTRING* vr$21 = fb_LongintToStr( *(int64*)((uint8*)E$1 + 96ll) );
		__builtin_memset( &TMP$495$2, 0, 24ll );
		FBSTRING* vr$25 = fb_StrConcat( &TMP$495$2, *(void**)((uint8*)E$1 + 32ll), 0ll, (void*)":", 2ll );
		__builtin_memset( &TMP$496$2, 0, 24ll );
		FBSTRING* vr$28 = fb_StrConcat( &TMP$496$2, (void*)vr$25, -1ll, (void*)vr$21, -1ll );
		__builtin_memset( &TMP$497$2, 0, 24ll );
		FBSTRING* vr$31 = fb_StrConcat( &TMP$497$2, (void*)vr$28, -1ll, (void*)",", 2ll );
		__builtin_memset( &TMP$498$2, 0, 24ll );
		FBSTRING* vr$35 = fb_StrConcat( &TMP$498$2, (void*)&DESC$1, -1ll, (void*)vr$31, -1ll );
		fb_StrAssign( (void*)&DESC$1, -1ll, (void*)vr$35, -1ll, 0 );
		struct $8FBSYMBOL* vr$37 = SYMBGETENUMNEXTELM( E$1 );
		E$1 = vr$37;
	}
	goto label$331;
	label$332:;
	fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)";", 2ll, 0 );
	__builtin_memset( &TMP$499$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$499$1, -1ll, (void*)"0", 2ll, 0 );
	DBG_ADDSTAB( &DESC$1, (uint8)128u, (int16)0, &TMP$499$1 );
	fb_StrDelete( (FBSTRING*)&TMP$499$1 );
	fb_StrDelete( (FBSTRING*)&DESC$1 );
	label$330:;
}

static FBSTRING* HGETDATATYPE_ASM64( struct $8FBSYMBOL* SYM$1, int64 REQUESTEDDIMTBELEMENTS$1 )
{
	FBSTRING fb$result$1;
	__builtin_memset( &fb$result$1, 0, 24ll );
	label$333:;
	int64 DTYPE$1;
	int64 DIMTBELEMENTS$1;
	struct $8FBSYMBOL* SUBTYPE$1;
	FBSTRING DESC$1;
	__builtin_memset( &DESC$1, 0, 24ll );
	if( SYM$1 != (struct $8FBSYMBOL*)0ull ) goto label$336;
	{
		FBSTRING* vr$2 = fb_LongintToStr( *(int64*)REMAPTB$ );
		fb_StrInit( (void*)&fb$result$1, -1ll, (void*)vr$2, -1ll, 0 );
		fb_StrDelete( (FBSTRING*)&DESC$1 );
		goto label$334;
	}
	label$336:;
	label$335:;
	DIMTBELEMENTS$1 = 0ll;
	if( (*(int64*)((uint8*)SYM$1 + 8ll) & 16384ll) == 0ll ) goto label$338;
	{
		DTYPE$1 = 20ll;
		SUBTYPE$1 = *(struct $8FBSYMBOL**)((uint8*)SYM$1 + 144ll);
		DIMTBELEMENTS$1 = *(int64*)((uint8*)SYM$1 + 104ll);
	}
	goto label$337;
	label$338:;
	{
		DTYPE$1 = *(int64*)((uint8*)SYM$1 + 56ll) & 511ll;
		SUBTYPE$1 = *(struct $8FBSYMBOL**)((uint8*)SYM$1 + 64ll);
		if( ((int64)-(*(int64*)SYM$1 == 1ll) | (int64)-(*(int64*)SYM$1 == 12ll)) == 0ll ) goto label$340;
		{
			if( (*(int64*)((uint8*)SYM$1 + 8ll) & 262144ll) == 0ll ) goto label$342;
			{
				DTYPE$1 = (((DTYPE$1 & 31ll) | ((DTYPE$1 & 480ll) + 32ll)) | ((DTYPE$1 & 261632ll) << (1ll & 63ll))) | (DTYPE$1 & 32505856ll);
			}
			label$342:;
			label$341:;
			if( *(int64*)((uint8*)SYM$1 + 104ll) <= 0ll ) goto label$344;
			{
				FBSTRING* vr$29 = fb_ULongintToStr( *(uint64*)&CTXDBG$ );
				fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)vr$29, -1ll, 0 );
				fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)"=", 2ll, 0 );
				*(uint64*)&CTXDBG$ = *(uint64*)&CTXDBG$ + 1ull;
				if( REQUESTEDDIMTBELEMENTS$1 <= 0ll ) goto label$346;
				{
					fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)"ar1;", 5ll, 0 );
					fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)"0;", 3ll, 0 );
					FBSTRING* vr$36 = fb_LongintToStr( REQUESTEDDIMTBELEMENTS$1 + -1ll );
					fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)vr$36, -1ll, 0 );
					fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)";", 2ll, 0 );
				}
				goto label$345;
				label$346:;
				{
					{
						int64 I$6;
						I$6 = 0ll;
						int64 TMP$503$6;
						TMP$503$6 = *(int64*)((uint8*)SYM$1 + 104ll) + -1ll;
						goto label$347;
						label$350:;
						{
							FBSTRING TMP$504$7;
							FBSTRING TMP$505$7;
							FBSTRING TMP$506$7;
							FBSTRING TMP$507$7;
							fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)"ar1;", 5ll, 0 );
							FBSTRING* vr$45 = fb_LongintToStr( *(int64*)((uint8*)*(struct $10FBARRAYDIM**)((uint8*)SYM$1 + 112ll) + (I$6 << (4ll & 63ll))) );
							__builtin_memset( &TMP$504$7, 0, 24ll );
							FBSTRING* vr$48 = fb_StrConcat( &TMP$504$7, (void*)vr$45, -1ll, (void*)";", 2ll );
							__builtin_memset( &TMP$505$7, 0, 24ll );
							FBSTRING* vr$52 = fb_StrConcat( &TMP$505$7, (void*)&DESC$1, -1ll, (void*)vr$48, -1ll );
							fb_StrAssign( (void*)&DESC$1, -1ll, (void*)vr$52, -1ll, 0 );
							FBSTRING* vr$57 = fb_LongintToStr( *(int64*)((uint8*)((uint8*)*(struct $10FBARRAYDIM**)((uint8*)SYM$1 + 112ll) + (I$6 << (4ll & 63ll))) + 8ll) );
							__builtin_memset( &TMP$506$7, 0, 24ll );
							FBSTRING* vr$60 = fb_StrConcat( &TMP$506$7, (void*)vr$57, -1ll, (void*)";", 2ll );
							__builtin_memset( &TMP$507$7, 0, 24ll );
							FBSTRING* vr$64 = fb_StrConcat( &TMP$507$7, (void*)&DESC$1, -1ll, (void*)vr$60, -1ll );
							fb_StrAssign( (void*)&DESC$1, -1ll, (void*)vr$64, -1ll, 0 );
						}
						label$348:;
						I$6 = I$6 + 1ll;
						label$347:;
						if( I$6 <= TMP$503$6 ) goto label$350;
						label$349:;
					}
				}
				label$345:;
			}
			label$344:;
			label$343:;
			if( (*(int64*)((uint8*)SYM$1 + 8ll) & 8192ll) == 0ll ) goto label$352;
			{
				DIMTBELEMENTS$1 = *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)SYM$1 + 152ll) + 104ll);
			}
			label$352:;
			label$351:;
		}
		label$340:;
		label$339:;
	}
	label$337:;
	if( DIMTBELEMENTS$1 >= 0ll ) goto label$354;
	{
		DIMTBELEMENTS$1 = 1ll;
	}
	label$354:;
	label$353:;
	if( (DTYPE$1 & 480ll) == 0ll ) goto label$356;
	{
		FBSTRING* vr$73 = HDECLPOINTER_ASM64( &DTYPE$1 );
		fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)vr$73, -1ll, 0 );
	}
	label$356:;
	label$355:;
	DTYPE$1 = DTYPE$1 & -513ll;
	{
		uint64 TMP$508$2;
		TMP$508$2 = (uint64)DTYPE$1;
		goto label$358;
		label$359:;
		{
			if( SUBTYPE$1 == (struct $8FBSYMBOL*)0ull ) goto label$361;
			{
				FBSTRING TMP$509$4;
				if( *(int64*)((uint8*)SUBTYPE$1 + 232ll) != -1ll ) goto label$363;
				{
					HDECLUDT_ASM64( SUBTYPE$1, DIMTBELEMENTS$1 );
					label$363:;
				}
				FBSTRING* vr$78 = fb_LongintToStr( *(int64*)((uint8*)SUBTYPE$1 + 232ll) );
				__builtin_memset( &TMP$509$4, 0, 24ll );
				FBSTRING* vr$82 = fb_StrConcat( &TMP$509$4, (void*)&DESC$1, -1ll, (void*)vr$78, -1ll );
				fb_StrAssign( (void*)&DESC$1, -1ll, (void*)vr$82, -1ll, 0 );
			}
			goto label$360;
			label$361:;
			{
				FBSTRING TMP$510$4;
				if( *(int64*)((uint8*)SYM$1 + 232ll) != -1ll ) goto label$365;
				{
					HDECLUDT_ASM64( SYM$1, DIMTBELEMENTS$1 );
					label$365:;
				}
				FBSTRING* vr$86 = fb_LongintToStr( *(int64*)((uint8*)SYM$1 + 232ll) );
				__builtin_memset( &TMP$510$4, 0, 24ll );
				FBSTRING* vr$90 = fb_StrConcat( &TMP$510$4, (void*)&DESC$1, -1ll, (void*)vr$86, -1ll );
				fb_StrAssign( (void*)&DESC$1, -1ll, (void*)vr$90, -1ll, 0 );
			}
			label$360:;
		}
		goto label$357;
		label$366:;
		{
			FBSTRING TMP$511$3;
			if( *(int64*)((uint8*)SUBTYPE$1 + 184ll) != -1ll ) goto label$368;
			{
				HDECLENUM_ASM64( SUBTYPE$1 );
			}
			label$368:;
			label$367:;
			FBSTRING* vr$94 = fb_LongintToStr( *(int64*)((uint8*)SUBTYPE$1 + 184ll) );
			__builtin_memset( &TMP$511$3, 0, 24ll );
			FBSTRING* vr$98 = fb_StrConcat( &TMP$511$3, (void*)&DESC$1, -1ll, (void*)vr$94, -1ll );
			fb_StrAssign( (void*)&DESC$1, -1ll, (void*)vr$98, -1ll, 0 );
		}
		goto label$357;
		label$369:;
		{
			FBSTRING* vr$100 = fb_ULongintToStr( *(uint64*)&CTXDBG$ );
			fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)vr$100, -1ll, 0 );
			fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)"=f", 3ll, 0 );
			*(uint64*)&CTXDBG$ = *(uint64*)&CTXDBG$ + 1ull;
			FBSTRING* vr$104 = HGETDATATYPE_ASM64( SUBTYPE$1, 0ll );
			fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)vr$104, -1ll, 0 );
		}
		goto label$357;
		label$370:;
		{
			FBSTRING* vr$106 = fb_LongintToStr( *(int64*)REMAPTB$ );
			fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)vr$106, -1ll, 0 );
		}
		goto label$357;
		label$371:;
		{
			FBSTRING* vr$109 = fb_LongintToStr( *(int64*)((int64)(int64*)REMAPTB$ + (DTYPE$1 << (3ll & 63ll))) );
			fb_StrConcatAssign( (void*)&DESC$1, -1ll, (void*)vr$109, -1ll, 0 );
		}
		goto label$357;
		label$358:;
		static const void* tmp$4061[14ll] = {
			&&label$366,
			&&label$371,
			&&label$371,
			&&label$371,
			&&label$371,
			&&label$371,
			&&label$371,
			&&label$371,
			&&label$371,
			&&label$371,
			&&label$359,
			&&label$371,
			&&label$369,
			&&label$370,
		};
		if( (TMP$508$2 - 10ull) > 13ull ) goto label$371;
		goto *tmp$4061[TMP$508$2 - 10ull];
		label$357:;
	}
	fb_StrAssign( (void*)&fb$result$1, -1ll, (void*)&DESC$1, -1ll, 0 );
	fb_StrDelete( (FBSTRING*)&DESC$1 );
	label$334:;
	FBSTRING* vr$115 = fb_StrAllocTempResult( (FBSTRING*)&fb$result$1 );
	return vr$115;
}

static void _EMITDBG( int64 OP$1, struct $8FBSYMBOL* PROC$1, int64 LNUM$1, char* FILENAME$1 )
{
	label$372:;
	if( OP$1 != 113ll ) goto label$375;
	{
		fb_StrAssign( (void*)((uint8*)&CTXDBG$ + 40ll), -1ll, (void*)FILENAME$1, 0ll, 0 );
		*(int64*)((uint8*)&CTXDBG$ + 8ll) = LNUM$1;
	}
	goto label$374;
	label$375:;
	{
		if( OP$1 != 114ll ) goto label$377;
		{
		}
		goto label$376;
		label$377:;
		if( OP$1 != 115ll ) goto label$378;
		{
		}
		goto label$376;
		label$378:;
		if( OP$1 != 116ll ) goto label$379;
		{
		}
		goto label$376;
		label$379:;
		{
			FBSTRING TMP$513$3;
			FBSTRING TMP$518$3;
			FBSTRING TMP$519$3;
			FBSTRING TMP$520$3;
			FBSTRING TMP$521$3;
			FBSTRING TMP$522$3;
			__builtin_memset( &TMP$513$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$513$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$513$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$513$3 );
			__builtin_memset( &TMP$521$3, 0, 24ll );
			FBSTRING* vr$6 = fb_LongintToStr( OP$1 );
			__builtin_memset( &TMP$518$3, 0, 24ll );
			FBSTRING* vr$9 = fb_StrConcat( &TMP$518$3, (void*)"FOUND AN ERROR : Other emitdbg not handled=", 44ll, (void*)vr$6, -1ll );
			__builtin_memset( &TMP$519$3, 0, 24ll );
			FBSTRING* vr$12 = fb_StrConcat( &TMP$519$3, (void*)vr$9, -1ll, (void*)"for ref AST_OP_DBG_LINEEND=", 28ll );
			__builtin_memset( &TMP$520$3, 0, 24ll );
			FBSTRING* vr$15 = fb_StrConcat( &TMP$520$3, (void*)vr$12, -1ll, (void*)"114", 4ll );
			fb_StrAssign( (void*)&TMP$521$3, -1ll, (void*)vr$15, -1ll, 0 );
			HWRITEASM64( &TMP$521$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$521$3 );
			__builtin_memset( &TMP$522$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$522$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$522$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$522$3 );
		}
		label$376:;
	}
	label$374:;
	label$373:;
}

static void REG_MARK( struct $8FBSYMBOL* LABELPTR$1 )
{
	label$380:;
	boolean FLAGMARK$1;
	FLAGMARK$1 = (boolean)0ll;
	{
		int64 IREG$2;
		IREG$2 = 1ll;
		label$385:;
		{
			if( ((int64)-((int64)*(int32*)((int64)(int32*)REGHANDLE$ + (IREG$2 << (2ll & 63ll))) != -2ll) & (int64)-((int64)*(int32*)((int64)(int32*)REGHANDLE$ + (IREG$2 << (2ll & 63ll))) != -3ll)) == 0ll ) goto label$387;
			{
				*(int32*)((int64)(struct $13ASM64_REGROOM*)REGROOM$ + (IREG$2 << (4ll & 63ll))) = -2;
				FLAGMARK$1 = (boolean)1ll;
			}
			label$387:;
			label$386:;
		}
		label$383:;
		IREG$2 = IREG$2 + 1ll;
		label$382:;
		if( IREG$2 <= 15ll ) goto label$385;
		label$384:;
	}
	if( FLAGMARK$1 == (boolean)0ll ) goto label$389;
	{
		*(struct $8FBSYMBOL**)((uint8*)&CTX$ + 384ll) = LABELPTR$1;
		label$389:;
	}
	label$381:;
}

static struct $14ASM64_SAVEDREG* ASM64_SPILLREG( int32 REGSPILLED$1 )
{
	struct $14ASM64_SAVEDREG* fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$390:;
	struct $14ASM64_SAVEDREG* V$1;
	if( (int64)*(int32*)((uint8*)&CTX$ + 376ll) <= 0ll ) goto label$393;
	{
		void* vr$3 = FLISTGETHEAD( (struct $6TFLIST*)((uint8*)&CTX$ + 264ll) );
		V$1 = (struct $14ASM64_SAVEDREG*)vr$3;
		label$394:;
		if( V$1 == (struct $14ASM64_SAVEDREG*)0ull ) goto label$395;
		{
			if( (int64)*(int32*)((uint8*)V$1 + 4ll) != -2ll ) goto label$397;
			{
				*(int32*)((uint8*)V$1 + 4ll) = *(int32*)((int64)(int32*)REGHANDLE$ + ((int64)REGSPILLED$1 << (2ll & 63ll)));
				fb$result$1 = V$1;
				goto label$391;
			}
			label$397:;
			label$396:;
			void* vr$9 = FLISTGETNEXT( (void*)V$1 );
			V$1 = (struct $14ASM64_SAVEDREG*)vr$9;
		}
		goto label$394;
		label$395:;
	}
	label$393:;
	label$392:;
	*(int64*)((uint8*)&CTX$ + 192ll) = *(int64*)((uint8*)&CTX$ + 192ll) + 8ll;
	if( *(int64*)((uint8*)&CTX$ + 208ll) == 0ll ) goto label$399;
	{
		if( *(int64*)((uint8*)&CTX$ + 192ll) != *(int64*)((uint8*)&CTX$ + 208ll) ) goto label$401;
		{
			FBSTRING TMP$523$3;
			FBSTRING TMP$526$3;
			FBSTRING TMP$527$3;
			__builtin_memset( &TMP$523$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$523$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$523$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$523$3 );
			__builtin_memset( &TMP$526$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$526$3, -1ll, (void*)"FOUND AN ERROR : Spilling overflow when proc calling", 53ll, 0 );
			HWRITEASM64( &TMP$526$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$526$3 );
			__builtin_memset( &TMP$527$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$527$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$527$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$527$3 );
		}
		label$401:;
		label$400:;
	}
	label$399:;
	label$398:;
	void* vr$24 = FLISTNEWITEM( (struct $6TFLIST*)((uint8*)&CTX$ + 264ll) );
	V$1 = (struct $14ASM64_SAVEDREG*)vr$24;
	*(int32*)((uint8*)&CTX$ + 376ll) = (int32)((int64)*(int32*)((uint8*)&CTX$ + 376ll) + 1ll);
	*(int32*)V$1 = *(int32*)((uint8*)&CTX$ + 376ll);
	*(int32*)((uint8*)V$1 + 8ll) = (int32)-(*(int64*)((uint8*)&CTX$ + 192ll));
	*(int32*)((uint8*)V$1 + 4ll) = *(int32*)((int64)(int32*)REGHANDLE$ + ((int64)REGSPILLED$1 << (2ll & 63ll)));
	fb$result$1 = V$1;
	goto label$391;
	label$391:;
	return fb$result$1;
}

static void REG_SPILLING( int32 REGSPILLED$1 )
{
	FBSTRING TMP$530$1;
	FBSTRING TMP$531$1;
	FBSTRING TMP$532$1;
	FBSTRING TMP$533$1;
	int64 TMP$534$1;
	label$402:;
	struct $14ASM64_SAVEDREG* V$1;
	struct $14ASM64_SAVEDREG* vr$0 = ASM64_SPILLREG( REGSPILLED$1 );
	V$1 = vr$0;
	__builtin_memset( &TMP$533$1, 0, 24ll );
	FBSTRING* vr$5 = fb_IntToStr( *(int32*)((uint8*)V$1 + 8ll) );
	__builtin_memset( &TMP$530$1, 0, 24ll );
	FBSTRING* vr$8 = fb_StrConcat( &TMP$530$1, (void*)"mov QWORD PTR ", 15ll, (void*)vr$5, -1ll );
	__builtin_memset( &TMP$531$1, 0, 24ll );
	FBSTRING* vr$11 = fb_StrConcat( &TMP$531$1, (void*)vr$8, -1ll, (void*)"[rbp], ", 8ll );
	__builtin_memset( &TMP$532$1, 0, 24ll );
	FBSTRING* vr$14 = fb_StrConcat( &TMP$532$1, (void*)vr$11, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)REGSPILLED$1 << (3ll & 63ll))), 0ll );
	fb_StrAssign( (void*)&TMP$533$1, -1ll, (void*)vr$14, -1ll, 0 );
	HWRITEASM64( &TMP$533$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$533$1 );
	*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)REGSPILLED$1 << (2ll & 63ll))) = -2;
	if( (int64)*(int32*)((int64)(struct $13ASM64_REGROOM*)REGROOM$ + ((int64)REGSPILLED$1 << (4ll & 63ll))) != -2ll ) goto label$405;
	{
		*(struct $14ASM64_SAVEDREG**)(((int64)(struct $13ASM64_REGROOM*)REGROOM$ + ((int64)REGSPILLED$1 << (4ll & 63ll))) + 8ll) = V$1;
		*(int32*)((int64)(struct $13ASM64_REGROOM*)REGROOM$ + ((int64)REGSPILLED$1 << (4ll & 63ll))) = -3;
	}
	label$405:;
	label$404:;
	if( *(struct $8FBSYMBOL**)((uint8*)&CTX$ + 384ll) == (struct $8FBSYMBOL*)0ull ) goto label$406;
	TMP$534$1 = -1ll;
	goto label$3085;
	label$406:;
	TMP$534$1 = 0ll;
	label$3085:;
	*(int32*)((uint8*)V$1 + 12ll) = (int32)TMP$534$1;
	label$403:;
}

static void REG_SAVE( void )
{
	label$407:;
	{
		int64 IREG$2;
		IREG$2 = 1ll;
		int64 TMP$535$2;
		int64 vr$0 = fb_ArrayUBound( (struct $7FBARRAYIKvE*)&LISTREG$, 1ll );
		TMP$535$2 = vr$0;
		goto label$409;
		label$412:;
		{
			if( (int64)*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)*(int32*)((IREG$2 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (2ll & 63ll))) == -2ll ) goto label$414;
			{
				REG_SPILLING( *(int32*)((IREG$2 << (2ll & 63ll)) + *(int64*)&LISTREG$) );
			}
			label$414:;
			label$413:;
		}
		label$410:;
		IREG$2 = IREG$2 + 1ll;
		label$409:;
		if( IREG$2 <= TMP$535$2 ) goto label$412;
		label$411:;
	}
	label$408:;
}

static void REG_ALLOWED( boolean ALLOWED$1 )
{
	label$415:;
	if( (int64)-ALLOWED$1 != 0ll ) goto label$418;
	{
		{
			int64 IREG$3;
			IREG$3 = 1ll;
			int64 TMP$536$3;
			int64 vr$1 = fb_ArrayUBound( (struct $7FBARRAYIKvE*)&LISTREG$, 1ll );
			TMP$536$3 = vr$1 + -2ll;
			goto label$419;
			label$422:;
			{
				if( (int64)*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)*(int32*)((IREG$3 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (2ll & 63ll))) != -2ll ) goto label$424;
				{
					*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)*(int32*)((IREG$3 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (2ll & 63ll))) = -4;
				}
				label$424:;
				label$423:;
			}
			label$420:;
			IREG$3 = IREG$3 + 1ll;
			label$419:;
			if( IREG$3 <= TMP$536$3 ) goto label$422;
			label$421:;
		}
	}
	goto label$417;
	label$418:;
	{
		{
			int64 IREG$3;
			IREG$3 = 1ll;
			int64 TMP$537$3;
			int64 vr$13 = fb_ArrayUBound( (struct $7FBARRAYIKvE*)&LISTREG$, 1ll );
			TMP$537$3 = vr$13 + -2ll;
			goto label$425;
			label$428:;
			{
				if( (int64)*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)*(int32*)((IREG$3 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (2ll & 63ll))) != -4ll ) goto label$430;
				{
					*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)*(int32*)((IREG$3 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (2ll & 63ll))) = -2;
				}
				label$430:;
				label$429:;
			}
			label$426:;
			IREG$3 = IREG$3 + 1ll;
			label$425:;
			if( IREG$3 <= TMP$537$3 ) goto label$428;
			label$427:;
		}
	}
	label$417:;
	label$416:;
}

static int32 REG_FINDFREE( int32 VREG$1, int64 REGPARAM$1 )
{
	int32 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 4ll );
	label$431:;
	int32 REGFREE$1;
	REGFREE$1 = -1;
	int32 NUMROOM$1;
	__builtin_memset( &NUMROOM$1, 0, 4ll );
	static int32 REGSPILL$1 = -1;
	if( *(boolean*)((uint8*)&CTX$ + 257ll) == (boolean)0ll ) goto label$434;
	{
		REG_ALLOWED( (boolean)0ll );
		label$434:;
	}
	{
		int32 IREG$2;
		IREG$2 = 0;
		label$438:;
		{
			if( (int64)*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)*(int8*)((int64)(int8*)REG_PRIO$ + (int64)IREG$2) << (2ll & 63ll))) != -2ll ) goto label$440;
			{
				REGFREE$1 = (int32)*(int8*)((int64)(int8*)REG_PRIO$ + (int64)IREG$2);
				goto label$437;
				label$440:;
			}
		}
		label$436:;
		IREG$2 = (int32)((int64)IREG$2 + 1ll);
		label$435:;
		if( (int64)IREG$2 <= 12ll ) goto label$438;
		label$437:;
	}
	if( (int64)REGFREE$1 != -1ll ) goto label$442;
	{
		if( REGPARAM$1 != -1ll ) goto label$444;
		{
			REGSPILL$1 = (int32)((int64)REGSPILL$1 + 1ll);
			if( (int64)REGSPILL$1 != 6ll ) goto label$446;
			{
				REGSPILL$1 = 0;
				label$446:;
			}
			label$447:;
			if( (int64)*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)REGSPILL$1 << (2ll & 63ll))) != -4ll ) goto label$448;
			{
				REGSPILL$1 = (int32)((int64)REGSPILL$1 + 1ll);
				if( (int64)REGSPILL$1 != 6ll ) goto label$450;
				{
					REGSPILL$1 = 0;
					label$450:;
				}
			}
			goto label$447;
			label$448:;
			REGFREE$1 = (int32)*(int8*)((int64)(int8*)REG_PRIO$ + (int64)REGSPILL$1);
		}
		goto label$443;
		label$444:;
		{
			REGFREE$1 = (int32)REGPARAM$1;
		}
		label$443:;
		REG_SPILLING( REGFREE$1 );
	}
	label$442:;
	label$441:;
	if( REGPARAM$1 == (int64)REGFREE$1 ) goto label$452;
	{
		*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)REGFREE$1 << (2ll & 63ll))) = VREG$1;
		*(int32*)((uint8*)&CTX$ + 224ll) = (int32)((int64)*(int32*)((uint8*)&CTX$ + 224ll) | (1ll << ((int64)REGFREE$1 & 63ll)));
	}
	label$452:;
	label$451:;
	if( *(boolean*)((uint8*)&CTX$ + 257ll) == (boolean)0ll ) goto label$454;
	{
		REG_ALLOWED( (boolean)1ll );
		label$454:;
	}
	fb$result$1 = REGFREE$1;
	goto label$432;
	label$432:;
	return fb$result$1;
}

static void REG_CALLPTR( FBSTRING* OP1$1, FBSTRING* OP3$1 )
{
	label$455:;
	int32 REGFREE$1;
	__builtin_memset( &REGFREE$1, 0, 4ll );
	int64 P$1;
	__builtin_memset( &P$1, 0, 8ll );
	{
		int64 IREG$2;
		IREG$2 = 1ll;
		int64 TMP$538$2;
		int64 vr$2 = fb_ArrayUBound( (struct $7FBARRAYIKvE*)&LISTREG$, 1ll );
		TMP$538$2 = vr$2 + -2ll;
		goto label$457;
		label$460:;
		{
			FBSTRING TMP$540$3;
			FBSTRING TMP$541$3;
			FBSTRING TMP$542$3;
			FBSTRING TMP$543$3;
			FBSTRING* vr$8 = fb_StrAllocTempDescZ( *(char**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((IREG$2 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))) );
			int64 vr$9 = fb_StrInstr( 1ll, (FBSTRING*)OP1$1, (FBSTRING*)vr$8 );
			P$1 = vr$9;
			if( P$1 != 0ll ) goto label$462;
			{
				goto label$458;
				label$462:;
			}
			int32 vr$14 = REG_FINDFREE( *(int32*)((int64)(int32*)REGHANDLE$ + ((int64)*(int32*)((IREG$2 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (2ll & 63ll))), -1ll );
			REGFREE$1 = vr$14;
			__builtin_memset( &TMP$543$3, 0, 24ll );
			__builtin_memset( &TMP$540$3, 0, 24ll );
			FBSTRING* vr$24 = fb_StrConcat( &TMP$540$3, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)REGFREE$1 << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$541$3, 0, 24ll );
			FBSTRING* vr$27 = fb_StrConcat( &TMP$541$3, (void*)vr$24, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$542$3, 0, 24ll );
			FBSTRING* vr$30 = fb_StrConcat( &TMP$542$3, (void*)vr$27, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((IREG$2 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
			fb_StrAssign( (void*)&TMP$543$3, -1ll, (void*)vr$30, -1ll, 0 );
			HWRITEASM64( &TMP$543$3, 3ll );
			fb_StrDelete( (FBSTRING*)&TMP$543$3 );
			*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)*(int32*)((IREG$2 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (2ll & 63ll))) = -4;
			int64 vr$40 = fb_StrLen( *(void**)((int64)(char**)REGSTRQ$ + ((int64)REGFREE$1 << (3ll & 63ll))), 0ll );
			int64 vr$45 = fb_StrLen( *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((IREG$2 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
			if( vr$40 != vr$45 ) goto label$464;
			{
				FBSTRING* vr$48 = fb_StrAllocTempDescZ( *(char**)((int64)(char**)REGSTRQ$ + ((int64)REGFREE$1 << (3ll & 63ll))) );
				fb_StrAssignMid( OP1$1, P$1, -1ll, (FBSTRING*)vr$48 );
			}
			goto label$463;
			label$464:;
			{
				FBSTRING TMP$544$4;
				FBSTRING TMP$545$4;
				FBSTRING* vr$50 = fb_StrMid( (FBSTRING*)OP1$1, P$1 + 2ll, -1ll );
				FBSTRING* vr$54 = fb_LEFT( (FBSTRING*)OP1$1, P$1 + -1ll );
				__builtin_memset( &TMP$544$4, 0, 24ll );
				FBSTRING* vr$57 = fb_StrConcat( &TMP$544$4, (void*)vr$54, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)REGFREE$1 << (3ll & 63ll))), 0ll );
				__builtin_memset( &TMP$545$4, 0, 24ll );
				FBSTRING* vr$60 = fb_StrConcat( &TMP$545$4, (void*)vr$57, -1ll, (void*)vr$50, -1ll );
				fb_StrAssign( (void*)OP1$1, -1ll, (void*)vr$60, -1ll, 0 );
			}
			label$463:;
		}
		label$458:;
		IREG$2 = IREG$2 + 1ll;
		label$457:;
		if( IREG$2 <= TMP$538$2 ) goto label$460;
		label$459:;
	}
	int32 vr$62 = fb_StrCompare( (void*)OP3$1, -1ll, (void*)"", 1ll );
	if( (int64)vr$62 == 0ll ) goto label$466;
	{
		{
			int64 IREG$3;
			IREG$3 = 1ll;
			int64 TMP$546$3;
			int64 vr$64 = fb_ArrayUBound( (struct $7FBARRAYIKvE*)&LISTREG$, 1ll );
			TMP$546$3 = vr$64 + -2ll;
			goto label$467;
			label$470:;
			{
				FBSTRING TMP$547$4;
				FBSTRING TMP$548$4;
				FBSTRING TMP$549$4;
				FBSTRING TMP$550$4;
				FBSTRING* vr$70 = fb_StrAllocTempDescZ( *(char**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((IREG$3 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))) );
				int64 vr$71 = fb_StrInstr( 1ll, (FBSTRING*)OP3$1, (FBSTRING*)vr$70 );
				P$1 = vr$71;
				if( P$1 != 0ll ) goto label$472;
				{
					goto label$468;
					label$472:;
				}
				int32 vr$76 = REG_FINDFREE( *(int32*)((int64)(int32*)REGHANDLE$ + ((int64)*(int32*)((IREG$3 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (2ll & 63ll))), -1ll );
				REGFREE$1 = vr$76;
				__builtin_memset( &TMP$550$4, 0, 24ll );
				__builtin_memset( &TMP$547$4, 0, 24ll );
				FBSTRING* vr$86 = fb_StrConcat( &TMP$547$4, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)REGFREE$1 << (3ll & 63ll))), 0ll );
				__builtin_memset( &TMP$548$4, 0, 24ll );
				FBSTRING* vr$89 = fb_StrConcat( &TMP$548$4, (void*)vr$86, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$549$4, 0, 24ll );
				FBSTRING* vr$92 = fb_StrConcat( &TMP$549$4, (void*)vr$89, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((IREG$3 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
				fb_StrAssign( (void*)&TMP$550$4, -1ll, (void*)vr$92, -1ll, 0 );
				HWRITEASM64( &TMP$550$4, 3ll );
				fb_StrDelete( (FBSTRING*)&TMP$550$4 );
				*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)*(int32*)((IREG$3 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (2ll & 63ll))) = -4;
				int64 vr$102 = fb_StrLen( *(void**)((int64)(char**)REGSTRQ$ + ((int64)REGFREE$1 << (3ll & 63ll))), 0ll );
				int64 vr$107 = fb_StrLen( *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((IREG$3 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
				if( vr$102 != vr$107 ) goto label$474;
				{
					FBSTRING* vr$110 = fb_StrAllocTempDescZ( *(char**)((int64)(char**)REGSTRQ$ + ((int64)REGFREE$1 << (3ll & 63ll))) );
					fb_StrAssignMid( OP3$1, P$1, -1ll, (FBSTRING*)vr$110 );
				}
				goto label$473;
				label$474:;
				{
					FBSTRING TMP$551$5;
					FBSTRING TMP$552$5;
					FBSTRING* vr$112 = fb_StrMid( (FBSTRING*)OP3$1, P$1 + 2ll, -1ll );
					FBSTRING* vr$116 = fb_LEFT( (FBSTRING*)OP3$1, P$1 + -1ll );
					__builtin_memset( &TMP$551$5, 0, 24ll );
					FBSTRING* vr$119 = fb_StrConcat( &TMP$551$5, (void*)vr$116, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)REGFREE$1 << (3ll & 63ll))), 0ll );
					__builtin_memset( &TMP$552$5, 0, 24ll );
					FBSTRING* vr$122 = fb_StrConcat( &TMP$552$5, (void*)vr$119, -1ll, (void*)vr$112, -1ll );
					fb_StrAssign( (void*)OP3$1, -1ll, (void*)vr$122, -1ll, 0 );
				}
				label$473:;
			}
			label$468:;
			IREG$3 = IREG$3 + 1ll;
			label$467:;
			if( IREG$3 <= TMP$546$3 ) goto label$470;
			label$469:;
		}
	}
	label$466:;
	label$465:;
	label$456:;
}

static void REG_BRANCH( struct $8FBSYMBOL* LABEL$1 )
{
	label$475:;
	int64 REGFREE$1;
	__builtin_memset( &REGFREE$1, 0, 8ll );
	if( LABEL$1 != *(struct $8FBSYMBOL**)((uint8*)&CTX$ + 384ll) ) goto label$478;
	{
		FBSTRING TMP$553$2;
		FBSTRING TMP$554$2;
		__builtin_memset( &TMP$554$2, 0, 24ll );
		char* vr$2 = SYMBGETMANGLEDNAME( LABEL$1 );
		__builtin_memset( &TMP$553$2, 0, 24ll );
		FBSTRING* vr$5 = fb_StrConcat( &TMP$553$2, (void*)vr$2, 0ll, (void*)":", 2ll );
		fb_StrAssign( (void*)&TMP$554$2, -1ll, (void*)vr$5, -1ll, 0 );
		HWRITEASM64( &TMP$554$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$554$2 );
		{
			int64 IREG$3;
			IREG$3 = 1ll;
			label$482:;
			{
				if( (int64)*(int32*)((int64)(struct $13ASM64_REGROOM*)REGROOM$ + (IREG$3 << (4ll & 63ll))) != -3ll ) goto label$484;
				{
					FBSTRING TMP$555$5;
					FBSTRING TMP$556$5;
					FBSTRING TMP$557$5;
					FBSTRING TMP$558$5;
					__builtin_memset( &TMP$558$5, 0, 24ll );
					FBSTRING* vr$15 = fb_IntToStr( *(int32*)((uint8*)*(struct $14ASM64_SAVEDREG**)(((int64)(struct $13ASM64_REGROOM*)REGROOM$ + (IREG$3 << (4ll & 63ll))) + 8ll) + 8ll) );
					__builtin_memset( &TMP$555$5, 0, 24ll );
					FBSTRING* vr$18 = fb_StrConcat( &TMP$555$5, (void*)"mov QWORD PTR ", 15ll, (void*)vr$15, -1ll );
					__builtin_memset( &TMP$556$5, 0, 24ll );
					FBSTRING* vr$21 = fb_StrConcat( &TMP$556$5, (void*)vr$18, -1ll, (void*)"[rbp], ", 8ll );
					__builtin_memset( &TMP$557$5, 0, 24ll );
					FBSTRING* vr$24 = fb_StrConcat( &TMP$557$5, (void*)vr$21, -1ll, *(void**)((int64)(char**)REGSTRQ$ + (IREG$3 << (3ll & 63ll))), 0ll );
					fb_StrAssign( (void*)&TMP$558$5, -1ll, (void*)vr$24, -1ll, 0 );
					HWRITEASM64( &TMP$558$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$558$5 );
					*(int32*)((int64)(int32*)REGHANDLE$ + (IREG$3 << (2ll & 63ll))) = -2;
					*(int32*)((uint8*)*(struct $14ASM64_SAVEDREG**)(((int64)(struct $13ASM64_REGROOM*)REGROOM$ + (IREG$3 << (4ll & 63ll))) + 8ll) + 12ll) = 0;
				}
				label$484:;
				label$483:;
				*(int32*)((int64)(struct $13ASM64_REGROOM*)REGROOM$ + (IREG$3 << (4ll & 63ll))) = -1;
				*(struct $14ASM64_SAVEDREG**)(((int64)(struct $13ASM64_REGROOM*)REGROOM$ + (IREG$3 << (4ll & 63ll))) + 8ll) = (struct $14ASM64_SAVEDREG*)0ull;
			}
			label$480:;
			IREG$3 = IREG$3 + 1ll;
			label$479:;
			if( IREG$3 <= 15ll ) goto label$482;
			label$481:;
		}
		if( *(struct $8FBSYMBOL**)((uint8*)&CTX$ + 392ll) != (struct $8FBSYMBOL*)0ull ) goto label$486;
		{
			*(struct $8FBSYMBOL**)((uint8*)&CTX$ + 384ll) = (struct $8FBSYMBOL*)0ull;
		}
		label$486:;
		label$485:;
	}
	goto label$477;
	label$478:;
	if( LABEL$1 != *(struct $8FBSYMBOL**)((uint8*)&CTX$ + 392ll) ) goto label$487;
	{
		FBSTRING TMP$566$2;
		FBSTRING TMP$567$2;
		if( (int64)*(int32*)((uint8*)&CTX$ + 376ll) <= 0ll ) goto label$489;
		{
			struct $14ASM64_SAVEDREG* V$3;
			void* vr$36 = FLISTGETHEAD( (struct $6TFLIST*)((uint8*)&CTX$ + 264ll) );
			V$3 = (struct $14ASM64_SAVEDREG*)vr$36;
			label$490:;
			if( V$3 == (struct $14ASM64_SAVEDREG*)0ull ) goto label$491;
			{
				if( (int64)*(int32*)((uint8*)V$3 + 12ll) == 0ll ) goto label$493;
				{
					FBSTRING TMP$561$5;
					FBSTRING TMP$562$5;
					FBSTRING TMP$563$5;
					FBSTRING TMP$564$5;
					FBSTRING TMP$565$5;
					int32 vr$40 = REG_FINDFREE( *(int32*)((uint8*)V$3 + 4ll), -1ll );
					REGFREE$1 = (int64)vr$40;
					*(int32*)((uint8*)V$3 + 4ll) = -2;
					__builtin_memset( &TMP$565$5, 0, 24ll );
					FBSTRING* vr$45 = fb_IntToStr( *(int32*)((uint8*)V$3 + 8ll) );
					__builtin_memset( &TMP$561$5, 0, 24ll );
					FBSTRING* vr$49 = fb_StrConcat( &TMP$561$5, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + (REGFREE$1 << (3ll & 63ll))), 0ll );
					__builtin_memset( &TMP$562$5, 0, 24ll );
					FBSTRING* vr$52 = fb_StrConcat( &TMP$562$5, (void*)vr$49, -1ll, (void*)", QWORD PTR ", 13ll );
					__builtin_memset( &TMP$563$5, 0, 24ll );
					FBSTRING* vr$55 = fb_StrConcat( &TMP$563$5, (void*)vr$52, -1ll, (void*)vr$45, -1ll );
					__builtin_memset( &TMP$564$5, 0, 24ll );
					FBSTRING* vr$58 = fb_StrConcat( &TMP$564$5, (void*)vr$55, -1ll, (void*)"[rbp]", 6ll );
					fb_StrAssign( (void*)&TMP$565$5, -1ll, (void*)vr$58, -1ll, 0 );
					HWRITEASM64( &TMP$565$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$565$5 );
				}
				label$493:;
				label$492:;
				void* vr$62 = FLISTGETNEXT( (void*)V$3 );
				V$3 = (struct $14ASM64_SAVEDREG*)vr$62;
			}
			goto label$490;
			label$491:;
		}
		label$489:;
		label$488:;
		*(struct $8FBSYMBOL**)((uint8*)&CTX$ + 392ll) = (struct $8FBSYMBOL*)0ull;
		*(struct $8FBSYMBOL**)((uint8*)&CTX$ + 384ll) = (struct $8FBSYMBOL*)0ull;
		__builtin_memset( &TMP$567$2, 0, 24ll );
		char* vr$64 = SYMBGETMANGLEDNAME( LABEL$1 );
		__builtin_memset( &TMP$566$2, 0, 24ll );
		FBSTRING* vr$67 = fb_StrConcat( &TMP$566$2, (void*)vr$64, 0ll, (void*)":", 2ll );
		fb_StrAssign( (void*)&TMP$567$2, -1ll, (void*)vr$67, -1ll, 0 );
		HWRITEASM64( &TMP$567$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$567$2 );
	}
	label$487:;
	label$477:;
	label$476:;
}

static void REG_TRANSFER( int32 REGTRANS$1, int32 REGSOURCE$1 )
{
	label$512:;
	int32 REGFREE$1;
	__builtin_memset( &REGFREE$1, 0, 4ll );
	if( ((int64)-((int64)*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)REGTRANS$1 << (2ll & 63ll))) == -2ll) | (int64)-((int64)*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)REGTRANS$1 << (2ll & 63ll))) == -4ll)) == 0ll ) goto label$515;
	{
		goto label$513;
		label$515:;
	}
	if( (int64)REGTRANS$1 != (int64)REGSOURCE$1 ) goto label$517;
	{
		*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)REGTRANS$1 << (2ll & 63ll))) = -2;
		goto label$513;
	}
	label$517:;
	label$516:;
	int32 vr$17 = REG_FINDFREE( *(int32*)((int64)(int32*)REGHANDLE$ + ((int64)REGTRANS$1 << (2ll & 63ll))), (int64)REGTRANS$1 );
	REGFREE$1 = vr$17;
	if( (int64)REGFREE$1 == (int64)REGTRANS$1 ) goto label$519;
	{
		FBSTRING TMP$581$2;
		FBSTRING TMP$582$2;
		FBSTRING TMP$583$2;
		FBSTRING TMP$584$2;
		__builtin_memset( &TMP$584$2, 0, 24ll );
		__builtin_memset( &TMP$581$2, 0, 24ll );
		FBSTRING* vr$27 = fb_StrConcat( &TMP$581$2, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)REGFREE$1 << (3ll & 63ll))), 0ll );
		__builtin_memset( &TMP$582$2, 0, 24ll );
		FBSTRING* vr$30 = fb_StrConcat( &TMP$582$2, (void*)vr$27, -1ll, (void*)", ", 3ll );
		__builtin_memset( &TMP$583$2, 0, 24ll );
		FBSTRING* vr$33 = fb_StrConcat( &TMP$583$2, (void*)vr$30, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)REGTRANS$1 << (3ll & 63ll))), 0ll );
		fb_StrAssign( (void*)&TMP$584$2, -1ll, (void*)vr$33, -1ll, 0 );
		HWRITEASM64( &TMP$584$2, 3ll );
		fb_StrDelete( (FBSTRING*)&TMP$584$2 );
	}
	goto label$518;
	label$519:;
	{
	}
	label$518:;
	label$513:;
}

static void MEMCLEAR( int64 BYTESTOCLEAR$1, FBSTRING* DST$1, int32 DTYP$1 )
{
	label$520:;
	uint64 NBBYTES$1;
	NBBYTES$1 = (uint64)BYTESTOCLEAR$1;
	uint64 NOOPTIM$1;
	__builtin_memset( &NOOPTIM$1, 0, 8ll );
	FBSTRING LNAME$1;
	__builtin_memset( &LNAME$1, 0, 24ll );
	FBSTRING REGDST$1;
	__builtin_memset( &REGDST$1, 0, 24ll );
	int32 NB8$1;
	__builtin_memset( &NB8$1, 0, 4ll );
	int32 RDST$1;
	__builtin_memset( &RDST$1, 0, 4ll );
	FBSTRING* vr$5 = fb_StrAllocTempDescZEx( (char*)"rcx rdx rbx rdi rsi r8 r9 r10 r11 r12 r13 r14 r15", 49ll );
	int64 vr$6 = fb_StrInstr( 1ll, (FBSTRING*)vr$5, (FBSTRING*)DST$1 );
	if( vr$6 == 0ll ) goto label$523;
	{
		fb_StrAssign( (void*)&REGDST$1, -1ll, (void*)DST$1, -1ll, 0 );
	}
	goto label$522;
	label$523:;
	{
		int32 vr$8 = REG_FINDFREE( 999997, -1ll );
		RDST$1 = vr$8;
		fb_StrAssign( (void*)&REGDST$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)RDST$1 << (3ll & 63ll))), 0ll, 0 );
		if( (int64)DTYP$1 != 1ll ) goto label$525;
		{
			FBSTRING TMP$586$3;
			FBSTRING TMP$587$3;
			FBSTRING TMP$588$3;
			FBSTRING TMP$589$3;
			__builtin_memset( &TMP$589$3, 0, 24ll );
			__builtin_memset( &TMP$586$3, 0, 24ll );
			FBSTRING* vr$17 = fb_StrConcat( &TMP$586$3, (void*)"lea ", 5ll, (void*)&REGDST$1, -1ll );
			__builtin_memset( &TMP$587$3, 0, 24ll );
			FBSTRING* vr$20 = fb_StrConcat( &TMP$587$3, (void*)vr$17, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$588$3, 0, 24ll );
			FBSTRING* vr$23 = fb_StrConcat( &TMP$588$3, (void*)vr$20, -1ll, (void*)DST$1, -1ll );
			fb_StrAssign( (void*)&TMP$589$3, -1ll, (void*)vr$23, -1ll, 0 );
			HWRITEASM64( &TMP$589$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$589$3 );
		}
		goto label$524;
		label$525:;
		{
			FBSTRING TMP$590$3;
			FBSTRING TMP$591$3;
			FBSTRING TMP$592$3;
			FBSTRING TMP$593$3;
			__builtin_memset( &TMP$593$3, 0, 24ll );
			__builtin_memset( &TMP$590$3, 0, 24ll );
			FBSTRING* vr$31 = fb_StrConcat( &TMP$590$3, (void*)"mov ", 5ll, (void*)&REGDST$1, -1ll );
			__builtin_memset( &TMP$591$3, 0, 24ll );
			FBSTRING* vr$34 = fb_StrConcat( &TMP$591$3, (void*)vr$31, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$592$3, 0, 24ll );
			FBSTRING* vr$37 = fb_StrConcat( &TMP$592$3, (void*)vr$34, -1ll, (void*)DST$1, -1ll );
			fb_StrAssign( (void*)&TMP$593$3, -1ll, (void*)vr$37, -1ll, 0 );
			HWRITEASM64( &TMP$593$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$593$3 );
		}
		label$524:;
		*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)RDST$1 << (2ll & 63ll))) = -2;
	}
	label$522:;
	if( ((((int64)-(NBBYTES$1 != 1ull) & (int64)-(NBBYTES$1 != 2ull)) & (int64)-(NBBYTES$1 != 4ull)) & (int64)-(NBBYTES$1 != 8ull)) == 0ll ) goto label$527;
	{
		NOOPTIM$1 = 3ull;
	}
	goto label$526;
	label$527:;
	{
		NOOPTIM$1 = 0ull;
	}
	label$526:;
	if( NBBYTES$1 <= 7ull ) goto label$529;
	{
		NB8$1 = (int32)(NBBYTES$1 >> (3ull & 63ll));
		if( (int64)NB8$1 <= 7ll ) goto label$531;
		{
			FBSTRING TMP$595$3;
			FBSTRING TMP$596$3;
			FBSTRING TMP$597$3;
			FBSTRING TMP$598$3;
			FBSTRING TMP$601$3;
			FBSTRING TMP$602$3;
			FBSTRING TMP$603$3;
			FBSTRING TMP$606$3;
			FBSTRING TMP$607$3;
			FBSTRING TMP$608$3;
			FBSTRING TMP$610$3;
			FBSTRING TMP$612$3;
			FBSTRING TMP$613$3;
			__builtin_memset( &TMP$596$3, 0, 24ll );
			FBSTRING* vr$54 = fb_IntToStr( NB8$1 );
			__builtin_memset( &TMP$595$3, 0, 24ll );
			FBSTRING* vr$57 = fb_StrConcat( &TMP$595$3, (void*)"mov rax, ", 10ll, (void*)vr$54, -1ll );
			fb_StrAssign( (void*)&TMP$596$3, -1ll, (void*)vr$57, -1ll, 0 );
			HWRITEASM64( &TMP$596$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$596$3 );
			char* vr$61 = SYMBUNIQUELABEL(  );
			fb_StrAssign( (void*)&LNAME$1, -1ll, (void*)vr$61, 0ll, 0 );
			__builtin_memset( &TMP$598$3, 0, 24ll );
			__builtin_memset( &TMP$597$3, 0, 24ll );
			FBSTRING* vr$67 = fb_StrConcat( &TMP$597$3, (void*)&LNAME$1, -1ll, (void*)":", 2ll );
			fb_StrAssign( (void*)&TMP$598$3, -1ll, (void*)vr$67, -1ll, 0 );
			HWRITEASM64( &TMP$598$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$598$3 );
			__builtin_memset( &TMP$603$3, 0, 24ll );
			__builtin_memset( &TMP$601$3, 0, 24ll );
			FBSTRING* vr$75 = fb_StrConcat( &TMP$601$3, (void*)"mov QWORD PTR [", 16ll, (void*)&REGDST$1, -1ll );
			__builtin_memset( &TMP$602$3, 0, 24ll );
			FBSTRING* vr$78 = fb_StrConcat( &TMP$602$3, (void*)vr$75, -1ll, (void*)"], 0", 5ll );
			fb_StrAssign( (void*)&TMP$603$3, -1ll, (void*)vr$78, -1ll, 0 );
			HWRITEASM64( &TMP$603$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$603$3 );
			__builtin_memset( &TMP$608$3, 0, 24ll );
			__builtin_memset( &TMP$606$3, 0, 24ll );
			FBSTRING* vr$86 = fb_StrConcat( &TMP$606$3, (void*)"add ", 5ll, (void*)&REGDST$1, -1ll );
			__builtin_memset( &TMP$607$3, 0, 24ll );
			FBSTRING* vr$89 = fb_StrConcat( &TMP$607$3, (void*)vr$86, -1ll, (void*)", 8", 4ll );
			fb_StrAssign( (void*)&TMP$608$3, -1ll, (void*)vr$89, -1ll, 0 );
			HWRITEASM64( &TMP$608$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$608$3 );
			__builtin_memset( &TMP$610$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$610$3, -1ll, (void*)"dec rax", 8ll, 0 );
			HWRITEASM64( &TMP$610$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$610$3 );
			__builtin_memset( &TMP$613$3, 0, 24ll );
			__builtin_memset( &TMP$612$3, 0, 24ll );
			FBSTRING* vr$101 = fb_StrConcat( &TMP$612$3, (void*)"jnz ", 5ll, (void*)&LNAME$1, -1ll );
			fb_StrAssign( (void*)&TMP$613$3, -1ll, (void*)vr$101, -1ll, 0 );
			HWRITEASM64( &TMP$613$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$613$3 );
			NBBYTES$1 = NBBYTES$1 - (uint64)((int64)NB8$1 << (3ll & 63ll));
		}
		goto label$530;
		label$531:;
		{
			{
				int32 INB8$4;
				INB8$4 = 0;
				int32 TMP$614$4;
				TMP$614$4 = (int32)((int64)NB8$1 + -1ll);
				goto label$532;
				label$535:;
				{
					FBSTRING TMP$615$5;
					FBSTRING TMP$616$5;
					FBSTRING TMP$617$5;
					FBSTRING TMP$618$5;
					FBSTRING TMP$619$5;
					__builtin_memset( &TMP$619$5, 0, 24ll );
					FBSTRING* vr$115 = fb_LongintToStr( (int64)INB8$4 << (3ll & 63ll) );
					__builtin_memset( &TMP$615$5, 0, 24ll );
					FBSTRING* vr$118 = fb_StrConcat( &TMP$615$5, (void*)"mov QWORD PTR ", 15ll, (void*)vr$115, -1ll );
					__builtin_memset( &TMP$616$5, 0, 24ll );
					FBSTRING* vr$121 = fb_StrConcat( &TMP$616$5, (void*)vr$118, -1ll, (void*)"[", 2ll );
					__builtin_memset( &TMP$617$5, 0, 24ll );
					FBSTRING* vr$124 = fb_StrConcat( &TMP$617$5, (void*)vr$121, -1ll, (void*)&REGDST$1, -1ll );
					__builtin_memset( &TMP$618$5, 0, 24ll );
					FBSTRING* vr$127 = fb_StrConcat( &TMP$618$5, (void*)vr$124, -1ll, (void*)"], 0", 5ll );
					fb_StrAssign( (void*)&TMP$619$5, -1ll, (void*)vr$127, -1ll, 0 );
					HWRITEASM64( &TMP$619$5, (int64)NOOPTIM$1 );
					fb_StrDelete( (FBSTRING*)&TMP$619$5 );
				}
				label$533:;
				INB8$4 = (int32)((int64)INB8$4 + 1ll);
				label$532:;
				if( (int64)INB8$4 <= (int64)TMP$614$4 ) goto label$535;
				label$534:;
			}
			NBBYTES$1 = NBBYTES$1 - (uint64)((int64)NB8$1 << (3ll & 63ll));
			if( NBBYTES$1 == 0ull ) goto label$537;
			{
				FBSTRING TMP$620$4;
				FBSTRING TMP$621$4;
				FBSTRING TMP$622$4;
				FBSTRING TMP$623$4;
				__builtin_memset( &TMP$623$4, 0, 24ll );
				FBSTRING* vr$142 = fb_LongintToStr( (int64)NB8$1 << (3ll & 63ll) );
				__builtin_memset( &TMP$620$4, 0, 24ll );
				FBSTRING* vr$146 = fb_StrConcat( &TMP$620$4, (void*)"add ", 5ll, (void*)&REGDST$1, -1ll );
				__builtin_memset( &TMP$621$4, 0, 24ll );
				FBSTRING* vr$149 = fb_StrConcat( &TMP$621$4, (void*)vr$146, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$622$4, 0, 24ll );
				FBSTRING* vr$152 = fb_StrConcat( &TMP$622$4, (void*)vr$149, -1ll, (void*)vr$142, -1ll );
				fb_StrAssign( (void*)&TMP$623$4, -1ll, (void*)vr$152, -1ll, 0 );
				HWRITEASM64( &TMP$623$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$623$4 );
			}
			label$537:;
			label$536:;
		}
		label$530:;
	}
	label$529:;
	label$528:;
	if( NBBYTES$1 <= 3ull ) goto label$539;
	{
		FBSTRING TMP$625$2;
		FBSTRING TMP$626$2;
		FBSTRING TMP$627$2;
		__builtin_memset( &TMP$627$2, 0, 24ll );
		__builtin_memset( &TMP$625$2, 0, 24ll );
		FBSTRING* vr$160 = fb_StrConcat( &TMP$625$2, (void*)"mov dword ptr [", 16ll, (void*)&REGDST$1, -1ll );
		__builtin_memset( &TMP$626$2, 0, 24ll );
		FBSTRING* vr$163 = fb_StrConcat( &TMP$626$2, (void*)vr$160, -1ll, (void*)"], 0", 5ll );
		fb_StrAssign( (void*)&TMP$627$2, -1ll, (void*)vr$163, -1ll, 0 );
		HWRITEASM64( &TMP$627$2, (int64)NOOPTIM$1 );
		fb_StrDelete( (FBSTRING*)&TMP$627$2 );
		NBBYTES$1 = NBBYTES$1 + 18446744073709551612ull;
		if( NBBYTES$1 <= 1ull ) goto label$541;
		{
			FBSTRING TMP$629$3;
			FBSTRING TMP$630$3;
			FBSTRING TMP$631$3;
			__builtin_memset( &TMP$631$3, 0, 24ll );
			__builtin_memset( &TMP$629$3, 0, 24ll );
			FBSTRING* vr$172 = fb_StrConcat( &TMP$629$3, (void*)"mov word ptr 4[", 16ll, (void*)&REGDST$1, -1ll );
			__builtin_memset( &TMP$630$3, 0, 24ll );
			FBSTRING* vr$175 = fb_StrConcat( &TMP$630$3, (void*)vr$172, -1ll, (void*)"], 0", 5ll );
			fb_StrAssign( (void*)&TMP$631$3, -1ll, (void*)vr$175, -1ll, 0 );
			HWRITEASM64( &TMP$631$3, (int64)NOOPTIM$1 );
			fb_StrDelete( (FBSTRING*)&TMP$631$3 );
			NBBYTES$1 = NBBYTES$1 + 18446744073709551614ull;
			if( NBBYTES$1 <= 0ull ) goto label$543;
			{
				FBSTRING TMP$633$4;
				FBSTRING TMP$634$4;
				FBSTRING TMP$635$4;
				__builtin_memset( &TMP$635$4, 0, 24ll );
				__builtin_memset( &TMP$633$4, 0, 24ll );
				FBSTRING* vr$184 = fb_StrConcat( &TMP$633$4, (void*)"mov byte ptr 6[", 16ll, (void*)&REGDST$1, -1ll );
				__builtin_memset( &TMP$634$4, 0, 24ll );
				FBSTRING* vr$187 = fb_StrConcat( &TMP$634$4, (void*)vr$184, -1ll, (void*)"], 0", 5ll );
				fb_StrAssign( (void*)&TMP$635$4, -1ll, (void*)vr$187, -1ll, 0 );
				HWRITEASM64( &TMP$635$4, (int64)NOOPTIM$1 );
				fb_StrDelete( (FBSTRING*)&TMP$635$4 );
			}
			label$543:;
			label$542:;
		}
		goto label$540;
		label$541:;
		if( NBBYTES$1 <= 0ull ) goto label$544;
		{
			FBSTRING TMP$637$3;
			FBSTRING TMP$638$3;
			FBSTRING TMP$639$3;
			__builtin_memset( &TMP$639$3, 0, 24ll );
			__builtin_memset( &TMP$637$3, 0, 24ll );
			FBSTRING* vr$195 = fb_StrConcat( &TMP$637$3, (void*)"mov byte ptr 4[", 16ll, (void*)&REGDST$1, -1ll );
			__builtin_memset( &TMP$638$3, 0, 24ll );
			FBSTRING* vr$198 = fb_StrConcat( &TMP$638$3, (void*)vr$195, -1ll, (void*)"], 0", 5ll );
			fb_StrAssign( (void*)&TMP$639$3, -1ll, (void*)vr$198, -1ll, 0 );
			HWRITEASM64( &TMP$639$3, (int64)NOOPTIM$1 );
			fb_StrDelete( (FBSTRING*)&TMP$639$3 );
		}
		label$544:;
		label$540:;
	}
	goto label$538;
	label$539:;
	if( NBBYTES$1 <= 1ull ) goto label$545;
	{
		FBSTRING TMP$641$2;
		FBSTRING TMP$642$2;
		FBSTRING TMP$643$2;
		__builtin_memset( &TMP$643$2, 0, 24ll );
		__builtin_memset( &TMP$641$2, 0, 24ll );
		FBSTRING* vr$206 = fb_StrConcat( &TMP$641$2, (void*)"mov word ptr [", 15ll, (void*)&REGDST$1, -1ll );
		__builtin_memset( &TMP$642$2, 0, 24ll );
		FBSTRING* vr$209 = fb_StrConcat( &TMP$642$2, (void*)vr$206, -1ll, (void*)"], 0", 5ll );
		fb_StrAssign( (void*)&TMP$643$2, -1ll, (void*)vr$209, -1ll, 0 );
		HWRITEASM64( &TMP$643$2, (int64)NOOPTIM$1 );
		fb_StrDelete( (FBSTRING*)&TMP$643$2 );
		NBBYTES$1 = NBBYTES$1 + 18446744073709551614ull;
		if( NBBYTES$1 <= 0ull ) goto label$547;
		{
			FBSTRING TMP$645$3;
			FBSTRING TMP$646$3;
			FBSTRING TMP$647$3;
			__builtin_memset( &TMP$647$3, 0, 24ll );
			__builtin_memset( &TMP$645$3, 0, 24ll );
			FBSTRING* vr$218 = fb_StrConcat( &TMP$645$3, (void*)"mov byte ptr 2[", 16ll, (void*)&REGDST$1, -1ll );
			__builtin_memset( &TMP$646$3, 0, 24ll );
			FBSTRING* vr$221 = fb_StrConcat( &TMP$646$3, (void*)vr$218, -1ll, (void*)"], 0", 5ll );
			fb_StrAssign( (void*)&TMP$647$3, -1ll, (void*)vr$221, -1ll, 0 );
			HWRITEASM64( &TMP$647$3, (int64)NOOPTIM$1 );
			fb_StrDelete( (FBSTRING*)&TMP$647$3 );
		}
		label$547:;
		label$546:;
	}
	goto label$538;
	label$545:;
	if( NBBYTES$1 <= 0ull ) goto label$548;
	{
		FBSTRING TMP$649$2;
		FBSTRING TMP$650$2;
		FBSTRING TMP$651$2;
		__builtin_memset( &TMP$651$2, 0, 24ll );
		__builtin_memset( &TMP$649$2, 0, 24ll );
		FBSTRING* vr$229 = fb_StrConcat( &TMP$649$2, (void*)"mov byte ptr [", 15ll, (void*)&REGDST$1, -1ll );
		__builtin_memset( &TMP$650$2, 0, 24ll );
		FBSTRING* vr$232 = fb_StrConcat( &TMP$650$2, (void*)vr$229, -1ll, (void*)"], 0", 5ll );
		fb_StrAssign( (void*)&TMP$651$2, -1ll, (void*)vr$232, -1ll, 0 );
		HWRITEASM64( &TMP$651$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$651$2 );
	}
	label$548:;
	label$538:;
	fb_StrDelete( (FBSTRING*)&REGDST$1 );
	fb_StrDelete( (FBSTRING*)&LNAME$1 );
	label$521:;
}

static void MEMCOPY( int64 BYTESTOCLEAR$1, FBSTRING* SRC$1, FBSTRING* DST$1, int32 STYP$1, int32 DTYP$1 )
{
	label$549:;
	uint64 NBBYTES$1;
	NBBYTES$1 = (uint64)BYTESTOCLEAR$1;
	FBSTRING LNAME$1;
	__builtin_memset( &LNAME$1, 0, 24ll );
	FBSTRING REGSRC$1;
	__builtin_memset( &REGSRC$1, 0, 24ll );
	FBSTRING REGDST$1;
	__builtin_memset( &REGDST$1, 0, 24ll );
	FBSTRING REGNBB$1;
	__builtin_memset( &REGNBB$1, 0, 24ll );
	int32 NB8$1;
	__builtin_memset( &NB8$1, 0, 4ll );
	int32 RSRC$1;
	__builtin_memset( &RSRC$1, 0, 4ll );
	int32 RDST$1;
	__builtin_memset( &RDST$1, 0, 4ll );
	int32 RNBB$1;
	__builtin_memset( &RNBB$1, 0, 4ll );
	if( BYTESTOCLEAR$1 != 0ll ) goto label$552;
	{
		fb_StrDelete( (FBSTRING*)&REGNBB$1 );
		fb_StrDelete( (FBSTRING*)&REGDST$1 );
		fb_StrDelete( (FBSTRING*)&REGSRC$1 );
		fb_StrDelete( (FBSTRING*)&LNAME$1 );
		goto label$550;
	}
	label$552:;
	label$551:;
	FBSTRING* vr$12 = fb_StrAllocTempDescZEx( (char*)"rcx rdx rbx rdi rsi r8 r9 r10 r11 r12 r13 r14 r15", 49ll );
	int64 vr$13 = fb_StrInstr( 1ll, (FBSTRING*)vr$12, (FBSTRING*)SRC$1 );
	if( vr$13 == 0ll ) goto label$554;
	{
		fb_StrAssign( (void*)&REGSRC$1, -1ll, (void*)SRC$1, -1ll, 0 );
	}
	goto label$553;
	label$554:;
	{
		int32 vr$15 = REG_FINDFREE( 999998, -1ll );
		RSRC$1 = vr$15;
		fb_StrAssign( (void*)&REGSRC$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)RSRC$1 << (3ll & 63ll))), 0ll, 0 );
		if( (int64)STYP$1 != 1ll ) goto label$556;
		{
			FBSTRING TMP$652$3;
			FBSTRING TMP$653$3;
			FBSTRING TMP$654$3;
			FBSTRING TMP$655$3;
			__builtin_memset( &TMP$655$3, 0, 24ll );
			__builtin_memset( &TMP$652$3, 0, 24ll );
			FBSTRING* vr$24 = fb_StrConcat( &TMP$652$3, (void*)"lea ", 5ll, (void*)&REGSRC$1, -1ll );
			__builtin_memset( &TMP$653$3, 0, 24ll );
			FBSTRING* vr$27 = fb_StrConcat( &TMP$653$3, (void*)vr$24, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$654$3, 0, 24ll );
			FBSTRING* vr$30 = fb_StrConcat( &TMP$654$3, (void*)vr$27, -1ll, (void*)SRC$1, -1ll );
			fb_StrAssign( (void*)&TMP$655$3, -1ll, (void*)vr$30, -1ll, 0 );
			HWRITEASM64( &TMP$655$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$655$3 );
		}
		goto label$555;
		label$556:;
		{
			FBSTRING TMP$656$3;
			FBSTRING TMP$657$3;
			FBSTRING TMP$658$3;
			FBSTRING TMP$659$3;
			__builtin_memset( &TMP$659$3, 0, 24ll );
			__builtin_memset( &TMP$656$3, 0, 24ll );
			FBSTRING* vr$38 = fb_StrConcat( &TMP$656$3, (void*)"mov ", 5ll, (void*)&REGSRC$1, -1ll );
			__builtin_memset( &TMP$657$3, 0, 24ll );
			FBSTRING* vr$41 = fb_StrConcat( &TMP$657$3, (void*)vr$38, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$658$3, 0, 24ll );
			FBSTRING* vr$44 = fb_StrConcat( &TMP$658$3, (void*)vr$41, -1ll, (void*)SRC$1, -1ll );
			fb_StrAssign( (void*)&TMP$659$3, -1ll, (void*)vr$44, -1ll, 0 );
			HWRITEASM64( &TMP$659$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$659$3 );
		}
		label$555:;
	}
	label$553:;
	FBSTRING* vr$48 = fb_StrAllocTempDescZEx( (char*)"rcx rdx rbx rdi rsi r8 r9 r10 r11 r12 r13 r14 r15", 49ll );
	int64 vr$49 = fb_StrInstr( 1ll, (FBSTRING*)vr$48, (FBSTRING*)DST$1 );
	if( vr$49 == 0ll ) goto label$558;
	{
		fb_StrAssign( (void*)&REGDST$1, -1ll, (void*)DST$1, -1ll, 0 );
	}
	goto label$557;
	label$558:;
	{
		int32 vr$51 = REG_FINDFREE( 999997, -1ll );
		RDST$1 = vr$51;
		fb_StrAssign( (void*)&REGDST$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)RDST$1 << (3ll & 63ll))), 0ll, 0 );
		if( (int64)DTYP$1 != 1ll ) goto label$560;
		{
			FBSTRING TMP$660$3;
			FBSTRING TMP$661$3;
			FBSTRING TMP$662$3;
			FBSTRING TMP$663$3;
			__builtin_memset( &TMP$663$3, 0, 24ll );
			__builtin_memset( &TMP$660$3, 0, 24ll );
			FBSTRING* vr$60 = fb_StrConcat( &TMP$660$3, (void*)"lea ", 5ll, (void*)&REGDST$1, -1ll );
			__builtin_memset( &TMP$661$3, 0, 24ll );
			FBSTRING* vr$63 = fb_StrConcat( &TMP$661$3, (void*)vr$60, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$662$3, 0, 24ll );
			FBSTRING* vr$66 = fb_StrConcat( &TMP$662$3, (void*)vr$63, -1ll, (void*)DST$1, -1ll );
			fb_StrAssign( (void*)&TMP$663$3, -1ll, (void*)vr$66, -1ll, 0 );
			HWRITEASM64( &TMP$663$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$663$3 );
		}
		goto label$559;
		label$560:;
		{
			FBSTRING TMP$664$3;
			FBSTRING TMP$665$3;
			FBSTRING TMP$666$3;
			FBSTRING TMP$667$3;
			__builtin_memset( &TMP$667$3, 0, 24ll );
			__builtin_memset( &TMP$664$3, 0, 24ll );
			FBSTRING* vr$74 = fb_StrConcat( &TMP$664$3, (void*)"mov ", 5ll, (void*)&REGDST$1, -1ll );
			__builtin_memset( &TMP$665$3, 0, 24ll );
			FBSTRING* vr$77 = fb_StrConcat( &TMP$665$3, (void*)vr$74, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$666$3, 0, 24ll );
			FBSTRING* vr$80 = fb_StrConcat( &TMP$666$3, (void*)vr$77, -1ll, (void*)DST$1, -1ll );
			fb_StrAssign( (void*)&TMP$667$3, -1ll, (void*)vr$80, -1ll, 0 );
			HWRITEASM64( &TMP$667$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$667$3 );
		}
		label$559:;
	}
	label$557:;
	NB8$1 = (int32)(NBBYTES$1 >> (3ull & 63ll));
	if( (int64)NB8$1 <= 7ll ) goto label$562;
	{
		FBSTRING TMP$668$2;
		FBSTRING TMP$669$2;
		FBSTRING TMP$670$2;
		FBSTRING TMP$671$2;
		FBSTRING TMP$672$2;
		FBSTRING TMP$673$2;
		FBSTRING TMP$675$2;
		FBSTRING TMP$676$2;
		FBSTRING TMP$677$2;
		FBSTRING TMP$680$2;
		FBSTRING TMP$681$2;
		FBSTRING TMP$682$2;
		FBSTRING TMP$683$2;
		FBSTRING TMP$684$2;
		FBSTRING TMP$685$2;
		FBSTRING TMP$686$2;
		FBSTRING TMP$687$2;
		FBSTRING TMP$688$2;
		FBSTRING TMP$690$2;
		FBSTRING TMP$691$2;
		FBSTRING TMP$692$2;
		FBSTRING TMP$693$2;
		int32 vr$87 = REG_FINDFREE( 999996, -1ll );
		RNBB$1 = vr$87;
		fb_StrAssign( (void*)&REGNBB$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)RNBB$1 << (3ll & 63ll))), 0ll, 0 );
		*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)RNBB$1 << (2ll & 63ll))) = -2;
		__builtin_memset( &TMP$671$2, 0, 24ll );
		FBSTRING* vr$94 = fb_IntToStr( NB8$1 );
		__builtin_memset( &TMP$668$2, 0, 24ll );
		FBSTRING* vr$98 = fb_StrConcat( &TMP$668$2, (void*)"mov ", 5ll, (void*)&REGNBB$1, -1ll );
		__builtin_memset( &TMP$669$2, 0, 24ll );
		FBSTRING* vr$101 = fb_StrConcat( &TMP$669$2, (void*)vr$98, -1ll, (void*)", ", 3ll );
		__builtin_memset( &TMP$670$2, 0, 24ll );
		FBSTRING* vr$104 = fb_StrConcat( &TMP$670$2, (void*)vr$101, -1ll, (void*)vr$94, -1ll );
		fb_StrAssign( (void*)&TMP$671$2, -1ll, (void*)vr$104, -1ll, 0 );
		HWRITEASM64( &TMP$671$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$671$2 );
		char* vr$108 = SYMBUNIQUELABEL(  );
		fb_StrAssign( (void*)&LNAME$1, -1ll, (void*)vr$108, 0ll, 0 );
		__builtin_memset( &TMP$673$2, 0, 24ll );
		__builtin_memset( &TMP$672$2, 0, 24ll );
		FBSTRING* vr$114 = fb_StrConcat( &TMP$672$2, (void*)&LNAME$1, -1ll, (void*)":", 2ll );
		fb_StrAssign( (void*)&TMP$673$2, -1ll, (void*)vr$114, -1ll, 0 );
		HWRITEASM64( &TMP$673$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$673$2 );
		__builtin_memset( &TMP$677$2, 0, 24ll );
		__builtin_memset( &TMP$675$2, 0, 24ll );
		FBSTRING* vr$122 = fb_StrConcat( &TMP$675$2, (void*)"mov rax, [", 11ll, (void*)&REGSRC$1, -1ll );
		__builtin_memset( &TMP$676$2, 0, 24ll );
		FBSTRING* vr$125 = fb_StrConcat( &TMP$676$2, (void*)vr$122, -1ll, (void*)"]", 2ll );
		fb_StrAssign( (void*)&TMP$677$2, -1ll, (void*)vr$125, -1ll, 0 );
		HWRITEASM64( &TMP$677$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$677$2 );
		__builtin_memset( &TMP$682$2, 0, 24ll );
		__builtin_memset( &TMP$680$2, 0, 24ll );
		FBSTRING* vr$133 = fb_StrConcat( &TMP$680$2, (void*)"mov [", 6ll, (void*)&REGDST$1, -1ll );
		__builtin_memset( &TMP$681$2, 0, 24ll );
		FBSTRING* vr$136 = fb_StrConcat( &TMP$681$2, (void*)vr$133, -1ll, (void*)"], rax", 7ll );
		fb_StrAssign( (void*)&TMP$682$2, -1ll, (void*)vr$136, -1ll, 0 );
		HWRITEASM64( &TMP$682$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$682$2 );
		__builtin_memset( &TMP$685$2, 0, 24ll );
		__builtin_memset( &TMP$683$2, 0, 24ll );
		FBSTRING* vr$144 = fb_StrConcat( &TMP$683$2, (void*)"add ", 5ll, (void*)&REGSRC$1, -1ll );
		__builtin_memset( &TMP$684$2, 0, 24ll );
		FBSTRING* vr$147 = fb_StrConcat( &TMP$684$2, (void*)vr$144, -1ll, (void*)", 8", 4ll );
		fb_StrAssign( (void*)&TMP$685$2, -1ll, (void*)vr$147, -1ll, 0 );
		HWRITEASM64( &TMP$685$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$685$2 );
		__builtin_memset( &TMP$688$2, 0, 24ll );
		__builtin_memset( &TMP$686$2, 0, 24ll );
		FBSTRING* vr$155 = fb_StrConcat( &TMP$686$2, (void*)"add ", 5ll, (void*)&REGDST$1, -1ll );
		__builtin_memset( &TMP$687$2, 0, 24ll );
		FBSTRING* vr$158 = fb_StrConcat( &TMP$687$2, (void*)vr$155, -1ll, (void*)", 8", 4ll );
		fb_StrAssign( (void*)&TMP$688$2, -1ll, (void*)vr$158, -1ll, 0 );
		HWRITEASM64( &TMP$688$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$688$2 );
		__builtin_memset( &TMP$691$2, 0, 24ll );
		__builtin_memset( &TMP$690$2, 0, 24ll );
		FBSTRING* vr$166 = fb_StrConcat( &TMP$690$2, (void*)"dec ", 5ll, (void*)&REGNBB$1, -1ll );
		fb_StrAssign( (void*)&TMP$691$2, -1ll, (void*)vr$166, -1ll, 0 );
		HWRITEASM64( &TMP$691$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$691$2 );
		__builtin_memset( &TMP$693$2, 0, 24ll );
		__builtin_memset( &TMP$692$2, 0, 24ll );
		FBSTRING* vr$174 = fb_StrConcat( &TMP$692$2, (void*)"jnz ", 5ll, (void*)&LNAME$1, -1ll );
		fb_StrAssign( (void*)&TMP$693$2, -1ll, (void*)vr$174, -1ll, 0 );
		HWRITEASM64( &TMP$693$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$693$2 );
		NBBYTES$1 = NBBYTES$1 - (uint64)((int64)NB8$1 << (3ll & 63ll));
	}
	goto label$561;
	label$562:;
	if( (int64)NB8$1 <= 0ll ) goto label$563;
	{
		{
			int32 INB8$3;
			INB8$3 = 0;
			int32 TMP$694$3;
			TMP$694$3 = (int32)((int64)NB8$1 + -1ll);
			goto label$564;
			label$567:;
			{
				FBSTRING TMP$695$4;
				FBSTRING TMP$696$4;
				FBSTRING TMP$697$4;
				FBSTRING TMP$698$4;
				FBSTRING TMP$699$4;
				FBSTRING TMP$700$4;
				FBSTRING TMP$701$4;
				FBSTRING TMP$702$4;
				FBSTRING TMP$703$4;
				FBSTRING TMP$704$4;
				__builtin_memset( &TMP$699$4, 0, 24ll );
				FBSTRING* vr$189 = fb_LongintToStr( (int64)INB8$3 << (3ll & 63ll) );
				__builtin_memset( &TMP$695$4, 0, 24ll );
				FBSTRING* vr$192 = fb_StrConcat( &TMP$695$4, (void*)"mov rax, ", 10ll, (void*)vr$189, -1ll );
				__builtin_memset( &TMP$696$4, 0, 24ll );
				FBSTRING* vr$195 = fb_StrConcat( &TMP$696$4, (void*)vr$192, -1ll, (void*)"[", 2ll );
				__builtin_memset( &TMP$697$4, 0, 24ll );
				FBSTRING* vr$198 = fb_StrConcat( &TMP$697$4, (void*)vr$195, -1ll, (void*)&REGSRC$1, -1ll );
				__builtin_memset( &TMP$698$4, 0, 24ll );
				FBSTRING* vr$201 = fb_StrConcat( &TMP$698$4, (void*)vr$198, -1ll, (void*)"]", 2ll );
				fb_StrAssign( (void*)&TMP$699$4, -1ll, (void*)vr$201, -1ll, 0 );
				HWRITEASM64( &TMP$699$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$699$4 );
				__builtin_memset( &TMP$704$4, 0, 24ll );
				FBSTRING* vr$209 = fb_LongintToStr( (int64)INB8$3 << (3ll & 63ll) );
				__builtin_memset( &TMP$700$4, 0, 24ll );
				FBSTRING* vr$212 = fb_StrConcat( &TMP$700$4, (void*)"mov ", 5ll, (void*)vr$209, -1ll );
				__builtin_memset( &TMP$701$4, 0, 24ll );
				FBSTRING* vr$215 = fb_StrConcat( &TMP$701$4, (void*)vr$212, -1ll, (void*)"[", 2ll );
				__builtin_memset( &TMP$702$4, 0, 24ll );
				FBSTRING* vr$218 = fb_StrConcat( &TMP$702$4, (void*)vr$215, -1ll, (void*)&REGDST$1, -1ll );
				__builtin_memset( &TMP$703$4, 0, 24ll );
				FBSTRING* vr$221 = fb_StrConcat( &TMP$703$4, (void*)vr$218, -1ll, (void*)"], rax", 7ll );
				fb_StrAssign( (void*)&TMP$704$4, -1ll, (void*)vr$221, -1ll, 0 );
				HWRITEASM64( &TMP$704$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$704$4 );
			}
			label$565:;
			INB8$3 = (int32)((int64)INB8$3 + 1ll);
			label$564:;
			if( (int64)INB8$3 <= (int64)TMP$694$3 ) goto label$567;
			label$566:;
		}
		NBBYTES$1 = NBBYTES$1 - (uint64)((int64)NB8$1 << (3ll & 63ll));
		if( NBBYTES$1 == 0ull ) goto label$569;
		{
			FBSTRING TMP$705$3;
			FBSTRING TMP$706$3;
			FBSTRING TMP$707$3;
			FBSTRING TMP$708$3;
			FBSTRING TMP$709$3;
			FBSTRING TMP$710$3;
			FBSTRING TMP$711$3;
			FBSTRING TMP$712$3;
			__builtin_memset( &TMP$708$3, 0, 24ll );
			FBSTRING* vr$236 = fb_LongintToStr( (int64)NB8$1 << (3ll & 63ll) );
			__builtin_memset( &TMP$705$3, 0, 24ll );
			FBSTRING* vr$240 = fb_StrConcat( &TMP$705$3, (void*)"add ", 5ll, (void*)&REGSRC$1, -1ll );
			__builtin_memset( &TMP$706$3, 0, 24ll );
			FBSTRING* vr$243 = fb_StrConcat( &TMP$706$3, (void*)vr$240, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$707$3, 0, 24ll );
			FBSTRING* vr$246 = fb_StrConcat( &TMP$707$3, (void*)vr$243, -1ll, (void*)vr$236, -1ll );
			fb_StrAssign( (void*)&TMP$708$3, -1ll, (void*)vr$246, -1ll, 0 );
			HWRITEASM64( &TMP$708$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$708$3 );
			__builtin_memset( &TMP$712$3, 0, 24ll );
			FBSTRING* vr$253 = fb_LongintToStr( (int64)NB8$1 << (3ll & 63ll) );
			__builtin_memset( &TMP$709$3, 0, 24ll );
			FBSTRING* vr$257 = fb_StrConcat( &TMP$709$3, (void*)"add ", 5ll, (void*)&REGDST$1, -1ll );
			__builtin_memset( &TMP$710$3, 0, 24ll );
			FBSTRING* vr$260 = fb_StrConcat( &TMP$710$3, (void*)vr$257, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$711$3, 0, 24ll );
			FBSTRING* vr$263 = fb_StrConcat( &TMP$711$3, (void*)vr$260, -1ll, (void*)vr$253, -1ll );
			fb_StrAssign( (void*)&TMP$712$3, -1ll, (void*)vr$263, -1ll, 0 );
			HWRITEASM64( &TMP$712$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$712$3 );
		}
		label$569:;
		label$568:;
	}
	label$563:;
	label$561:;
	if( NBBYTES$1 <= 3ull ) goto label$571;
	{
		FBSTRING TMP$714$2;
		FBSTRING TMP$715$2;
		FBSTRING TMP$716$2;
		FBSTRING TMP$718$2;
		FBSTRING TMP$719$2;
		FBSTRING TMP$720$2;
		__builtin_memset( &TMP$716$2, 0, 24ll );
		__builtin_memset( &TMP$714$2, 0, 24ll );
		FBSTRING* vr$271 = fb_StrConcat( &TMP$714$2, (void*)"mov eax, dword ptr [", 21ll, (void*)&REGSRC$1, -1ll );
		__builtin_memset( &TMP$715$2, 0, 24ll );
		FBSTRING* vr$274 = fb_StrConcat( &TMP$715$2, (void*)vr$271, -1ll, (void*)"]", 2ll );
		fb_StrAssign( (void*)&TMP$716$2, -1ll, (void*)vr$274, -1ll, 0 );
		HWRITEASM64( &TMP$716$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$716$2 );
		__builtin_memset( &TMP$720$2, 0, 24ll );
		__builtin_memset( &TMP$718$2, 0, 24ll );
		FBSTRING* vr$282 = fb_StrConcat( &TMP$718$2, (void*)"mov dword ptr [", 16ll, (void*)&REGDST$1, -1ll );
		__builtin_memset( &TMP$719$2, 0, 24ll );
		FBSTRING* vr$285 = fb_StrConcat( &TMP$719$2, (void*)vr$282, -1ll, (void*)"], eax", 7ll );
		fb_StrAssign( (void*)&TMP$720$2, -1ll, (void*)vr$285, -1ll, 0 );
		HWRITEASM64( &TMP$720$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$720$2 );
		NBBYTES$1 = NBBYTES$1 + 18446744073709551612ull;
		if( NBBYTES$1 <= 1ull ) goto label$573;
		{
			FBSTRING TMP$722$3;
			FBSTRING TMP$723$3;
			FBSTRING TMP$724$3;
			FBSTRING TMP$726$3;
			FBSTRING TMP$727$3;
			FBSTRING TMP$728$3;
			__builtin_memset( &TMP$724$3, 0, 24ll );
			__builtin_memset( &TMP$722$3, 0, 24ll );
			FBSTRING* vr$294 = fb_StrConcat( &TMP$722$3, (void*)"mov ax, word ptr 4[", 20ll, (void*)&REGSRC$1, -1ll );
			__builtin_memset( &TMP$723$3, 0, 24ll );
			FBSTRING* vr$297 = fb_StrConcat( &TMP$723$3, (void*)vr$294, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)&TMP$724$3, -1ll, (void*)vr$297, -1ll, 0 );
			HWRITEASM64( &TMP$724$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$724$3 );
			__builtin_memset( &TMP$728$3, 0, 24ll );
			__builtin_memset( &TMP$726$3, 0, 24ll );
			FBSTRING* vr$305 = fb_StrConcat( &TMP$726$3, (void*)"mov word ptr 4[", 16ll, (void*)&REGDST$1, -1ll );
			__builtin_memset( &TMP$727$3, 0, 24ll );
			FBSTRING* vr$308 = fb_StrConcat( &TMP$727$3, (void*)vr$305, -1ll, (void*)"], ax", 6ll );
			fb_StrAssign( (void*)&TMP$728$3, -1ll, (void*)vr$308, -1ll, 0 );
			HWRITEASM64( &TMP$728$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$728$3 );
			NBBYTES$1 = NBBYTES$1 + 18446744073709551614ull;
			if( NBBYTES$1 <= 0ull ) goto label$575;
			{
				FBSTRING TMP$730$4;
				FBSTRING TMP$731$4;
				FBSTRING TMP$732$4;
				FBSTRING TMP$734$4;
				FBSTRING TMP$735$4;
				FBSTRING TMP$736$4;
				__builtin_memset( &TMP$732$4, 0, 24ll );
				__builtin_memset( &TMP$730$4, 0, 24ll );
				FBSTRING* vr$317 = fb_StrConcat( &TMP$730$4, (void*)"mov al, byte ptr 6[", 20ll, (void*)&REGSRC$1, -1ll );
				__builtin_memset( &TMP$731$4, 0, 24ll );
				FBSTRING* vr$320 = fb_StrConcat( &TMP$731$4, (void*)vr$317, -1ll, (void*)"]", 2ll );
				fb_StrAssign( (void*)&TMP$732$4, -1ll, (void*)vr$320, -1ll, 0 );
				HWRITEASM64( &TMP$732$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$732$4 );
				__builtin_memset( &TMP$736$4, 0, 24ll );
				__builtin_memset( &TMP$734$4, 0, 24ll );
				FBSTRING* vr$328 = fb_StrConcat( &TMP$734$4, (void*)"mov byte ptr 6[", 16ll, (void*)&REGDST$1, -1ll );
				__builtin_memset( &TMP$735$4, 0, 24ll );
				FBSTRING* vr$331 = fb_StrConcat( &TMP$735$4, (void*)vr$328, -1ll, (void*)"], al", 6ll );
				fb_StrAssign( (void*)&TMP$736$4, -1ll, (void*)vr$331, -1ll, 0 );
				HWRITEASM64( &TMP$736$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$736$4 );
			}
			label$575:;
			label$574:;
		}
		goto label$572;
		label$573:;
		if( NBBYTES$1 <= 0ull ) goto label$576;
		{
			FBSTRING TMP$738$3;
			FBSTRING TMP$739$3;
			FBSTRING TMP$740$3;
			FBSTRING TMP$741$3;
			FBSTRING TMP$742$3;
			FBSTRING TMP$743$3;
			__builtin_memset( &TMP$740$3, 0, 24ll );
			__builtin_memset( &TMP$738$3, 0, 24ll );
			FBSTRING* vr$339 = fb_StrConcat( &TMP$738$3, (void*)"mov al, byte ptr 4[", 20ll, (void*)&REGSRC$1, -1ll );
			__builtin_memset( &TMP$739$3, 0, 24ll );
			FBSTRING* vr$342 = fb_StrConcat( &TMP$739$3, (void*)vr$339, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)&TMP$740$3, -1ll, (void*)vr$342, -1ll, 0 );
			HWRITEASM64( &TMP$740$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$740$3 );
			__builtin_memset( &TMP$743$3, 0, 24ll );
			__builtin_memset( &TMP$741$3, 0, 24ll );
			FBSTRING* vr$350 = fb_StrConcat( &TMP$741$3, (void*)"mov byte ptr 4[", 16ll, (void*)&REGDST$1, -1ll );
			__builtin_memset( &TMP$742$3, 0, 24ll );
			FBSTRING* vr$353 = fb_StrConcat( &TMP$742$3, (void*)vr$350, -1ll, (void*)"], al", 6ll );
			fb_StrAssign( (void*)&TMP$743$3, -1ll, (void*)vr$353, -1ll, 0 );
			HWRITEASM64( &TMP$743$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$743$3 );
		}
		label$576:;
		label$572:;
	}
	goto label$570;
	label$571:;
	if( NBBYTES$1 <= 1ull ) goto label$577;
	{
		FBSTRING TMP$745$2;
		FBSTRING TMP$746$2;
		FBSTRING TMP$747$2;
		FBSTRING TMP$748$2;
		FBSTRING TMP$749$2;
		FBSTRING TMP$750$2;
		__builtin_memset( &TMP$747$2, 0, 24ll );
		__builtin_memset( &TMP$745$2, 0, 24ll );
		FBSTRING* vr$361 = fb_StrConcat( &TMP$745$2, (void*)"mov ax, word ptr [", 19ll, (void*)&REGSRC$1, -1ll );
		__builtin_memset( &TMP$746$2, 0, 24ll );
		FBSTRING* vr$364 = fb_StrConcat( &TMP$746$2, (void*)vr$361, -1ll, (void*)"]", 2ll );
		fb_StrAssign( (void*)&TMP$747$2, -1ll, (void*)vr$364, -1ll, 0 );
		HWRITEASM64( &TMP$747$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$747$2 );
		__builtin_memset( &TMP$750$2, 0, 24ll );
		__builtin_memset( &TMP$748$2, 0, 24ll );
		FBSTRING* vr$372 = fb_StrConcat( &TMP$748$2, (void*)"mov word ptr [", 15ll, (void*)&REGDST$1, -1ll );
		__builtin_memset( &TMP$749$2, 0, 24ll );
		FBSTRING* vr$375 = fb_StrConcat( &TMP$749$2, (void*)vr$372, -1ll, (void*)"], ax", 6ll );
		fb_StrAssign( (void*)&TMP$750$2, -1ll, (void*)vr$375, -1ll, 0 );
		HWRITEASM64( &TMP$750$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$750$2 );
		NBBYTES$1 = NBBYTES$1 + 18446744073709551614ull;
		if( NBBYTES$1 <= 0ull ) goto label$579;
		{
			FBSTRING TMP$752$3;
			FBSTRING TMP$753$3;
			FBSTRING TMP$754$3;
			FBSTRING TMP$755$3;
			FBSTRING TMP$756$3;
			FBSTRING TMP$757$3;
			__builtin_memset( &TMP$754$3, 0, 24ll );
			__builtin_memset( &TMP$752$3, 0, 24ll );
			FBSTRING* vr$384 = fb_StrConcat( &TMP$752$3, (void*)"mov al, byte ptr 2[", 20ll, (void*)&REGSRC$1, -1ll );
			__builtin_memset( &TMP$753$3, 0, 24ll );
			FBSTRING* vr$387 = fb_StrConcat( &TMP$753$3, (void*)vr$384, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)&TMP$754$3, -1ll, (void*)vr$387, -1ll, 0 );
			HWRITEASM64( &TMP$754$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$754$3 );
			__builtin_memset( &TMP$757$3, 0, 24ll );
			__builtin_memset( &TMP$755$3, 0, 24ll );
			FBSTRING* vr$395 = fb_StrConcat( &TMP$755$3, (void*)"mov byte ptr 2[", 16ll, (void*)&REGDST$1, -1ll );
			__builtin_memset( &TMP$756$3, 0, 24ll );
			FBSTRING* vr$398 = fb_StrConcat( &TMP$756$3, (void*)vr$395, -1ll, (void*)"], al", 6ll );
			fb_StrAssign( (void*)&TMP$757$3, -1ll, (void*)vr$398, -1ll, 0 );
			HWRITEASM64( &TMP$757$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$757$3 );
		}
		label$579:;
		label$578:;
	}
	goto label$570;
	label$577:;
	if( NBBYTES$1 <= 0ull ) goto label$580;
	{
		FBSTRING TMP$759$2;
		FBSTRING TMP$760$2;
		FBSTRING TMP$761$2;
		FBSTRING TMP$762$2;
		FBSTRING TMP$763$2;
		FBSTRING TMP$764$2;
		__builtin_memset( &TMP$761$2, 0, 24ll );
		__builtin_memset( &TMP$759$2, 0, 24ll );
		FBSTRING* vr$406 = fb_StrConcat( &TMP$759$2, (void*)"mov al, byte ptr [", 19ll, (void*)&REGSRC$1, -1ll );
		__builtin_memset( &TMP$760$2, 0, 24ll );
		FBSTRING* vr$409 = fb_StrConcat( &TMP$760$2, (void*)vr$406, -1ll, (void*)"]", 2ll );
		fb_StrAssign( (void*)&TMP$761$2, -1ll, (void*)vr$409, -1ll, 0 );
		HWRITEASM64( &TMP$761$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$761$2 );
		__builtin_memset( &TMP$764$2, 0, 24ll );
		__builtin_memset( &TMP$762$2, 0, 24ll );
		FBSTRING* vr$417 = fb_StrConcat( &TMP$762$2, (void*)"mov byte ptr [", 15ll, (void*)&REGDST$1, -1ll );
		__builtin_memset( &TMP$763$2, 0, 24ll );
		FBSTRING* vr$420 = fb_StrConcat( &TMP$763$2, (void*)vr$417, -1ll, (void*)"], al", 6ll );
		fb_StrAssign( (void*)&TMP$764$2, -1ll, (void*)vr$420, -1ll, 0 );
		HWRITEASM64( &TMP$764$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$764$2 );
	}
	label$580:;
	label$570:;
	int32 vr$425 = fb_StrCompare( (void*)&REGSRC$1, -1ll, (void*)SRC$1, -1ll );
	if( (int64)vr$425 == 0ll ) goto label$582;
	{
		*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)RSRC$1 << (2ll & 63ll))) = -2;
		label$582:;
	}
	int32 vr$430 = fb_StrCompare( (void*)&REGDST$1, -1ll, (void*)DST$1, -1ll );
	if( (int64)vr$430 == 0ll ) goto label$584;
	{
		*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)RDST$1 << (2ll & 63ll))) = -2;
		label$584:;
	}
	fb_StrDelete( (FBSTRING*)&REGNBB$1 );
	fb_StrDelete( (FBSTRING*)&REGDST$1 );
	fb_StrDelete( (FBSTRING*)&REGSRC$1 );
	fb_StrDelete( (FBSTRING*)&LNAME$1 );
	label$550:;
}

static void _INIT( void )
{
	label$585:;
	FLISTINIT( (struct $6TFLIST*)((uint8*)&CTX$ + 264ll), 256ll, 16ll );
	IRHLINIT(  );
	*($6IR_OPT*)((uint8*)&IR$ + 544ll) = *(int64*)((uint8*)&IR$ + 544ll) | 131840ll;
	label$586:;
}

static void _END( void )
{
	label$587:;
	IRHLEND(  );
	FLISTEND( (struct $6TFLIST*)((uint8*)&CTX$ + 264ll) );
	label$588:;
}

static void HEMITVARIABLE( struct $8FBSYMBOL* SYM$1 )
{
	label$589:;
	int64 IS_GLOBAL$1;
	int64 LENGTH$1;
	int64 LGT$1;
	int64 ALIGN$1;
	FBSTRING STRG$1;
	__builtin_memset( &STRG$1, 0, 24ll );
	FBSTRING NEWSTRG$1;
	__builtin_memset( &NEWSTRG$1, 0, 24ll );
	int32 PNEW$1;
	__builtin_memset( &PNEW$1, 0, 4ll );
	int32 POLD$1;
	__builtin_memset( &POLD$1, 0, 4ll );
	int32 LENSTRG$1;
	__builtin_memset( &LENSTRG$1, 0, 4ll );
	int64 vr$5 = SYMBISARRAY( SYM$1 );
	if( vr$5 == 0ll ) goto label$592;
	{
	}
	label$592:;
	label$591:;
	if( (*(int64*)((uint8*)SYM$1 + 8ll) & 1024ll) == 0ll ) goto label$594;
	{
		if( (*(int64*)((uint8*)SYM$1 + 24ll) & 2ll) != 0ll ) goto label$596;
		{
			fb_StrDelete( (FBSTRING*)&NEWSTRG$1 );
			fb_StrDelete( (FBSTRING*)&STRG$1 );
			goto label$590;
		}
		label$596:;
		label$595:;
		{
			int64 TMP$765$3;
			TMP$765$3 = *(int64*)((uint8*)SYM$1 + 56ll) & 511ll;
			if( TMP$765$3 == 4ll ) goto label$599;
			label$600:;
			if( TMP$765$3 != 7ll ) goto label$598;
			label$599:;
			{
				FBSTRING TMP$767$4;
				FBSTRING TMP$769$4;
				FBSTRING TMP$773$4;
				FBSTRING TMP$774$4;
				__builtin_memset( &TMP$767$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$767$4, -1ll, (void*)".data", 6ll, 0 );
				ASM_SECTION( &TMP$767$4 );
				fb_StrDelete( (FBSTRING*)&TMP$767$4 );
				__builtin_memset( &TMP$769$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$769$4, -1ll, (void*)".align 8", 9ll, 0 );
				HWRITEASM64( &TMP$769$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$769$4 );
				if( (*(int64*)((uint8*)SYM$1 + 8ll) & 32ll) == 0ll ) goto label$602;
				{
					FBSTRING TMP$771$5;
					FBSTRING TMP$772$5;
					__builtin_memset( &TMP$772$5, 0, 24ll );
					char* vr$25 = SYMBGETMANGLEDNAME( SYM$1 );
					__builtin_memset( &TMP$771$5, 0, 24ll );
					FBSTRING* vr$28 = fb_StrConcat( &TMP$771$5, (void*)".globl ", 8ll, (void*)vr$25, 0ll );
					fb_StrAssign( (void*)&TMP$772$5, -1ll, (void*)vr$28, -1ll, 0 );
					HWRITEASM64( &TMP$772$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$772$5 );
				}
				label$602:;
				label$601:;
				__builtin_memset( &TMP$774$4, 0, 24ll );
				char* vr$33 = SYMBGETMANGLEDNAME( SYM$1 );
				__builtin_memset( &TMP$773$4, 0, 24ll );
				FBSTRING* vr$36 = fb_StrConcat( &TMP$773$4, (void*)vr$33, 0ll, (void*)":", 2ll );
				fb_StrAssign( (void*)&TMP$774$4, -1ll, (void*)vr$36, -1ll, 0 );
				HWRITEASM64( &TMP$774$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$774$4 );
				if( (*(int64*)((uint8*)SYM$1 + 56ll) & 511ll) != 7ll ) goto label$604;
				{
					FBSTRING TMP$777$5;
					FBSTRING TMP$778$5;
					FBSTRING TMP$779$5;
					FBSTRING TMP$780$5;
					char* vr$43 = HESCAPEW( (uint32*)*(uint32**)((uint8*)SYM$1 + 96ll) );
					fb_StrAssign( (void*)&STRG$1, -1ll, (void*)vr$43, 0ll, 0 );
					__builtin_memset( &TMP$780$5, 0, 24ll );
					FBSTRING* vr$47 = fb_StrAllocTempDescZEx( (char*)"\x5C" "0\x5C" "0\x5C" "0\x5C" "0", 8ll );
					FBSTRING* vr$48 = fb_LEFT( (FBSTRING*)vr$47, *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + 400ll) << (1ll & 63ll) );
					__builtin_memset( &TMP$777$5, 0, 24ll );
					FBSTRING* vr$52 = fb_StrConcat( &TMP$777$5, (void*)".ascii \x22", 9ll, (void*)&STRG$1, -1ll );
					__builtin_memset( &TMP$778$5, 0, 24ll );
					FBSTRING* vr$55 = fb_StrConcat( &TMP$778$5, (void*)vr$52, -1ll, (void*)vr$48, -1ll );
					__builtin_memset( &TMP$779$5, 0, 24ll );
					FBSTRING* vr$58 = fb_StrConcat( &TMP$779$5, (void*)vr$55, -1ll, (void*)"\x22", 2ll );
					fb_StrAssign( (void*)&TMP$780$5, -1ll, (void*)vr$58, -1ll, 0 );
					HWRITEASM64( &TMP$780$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$780$5 );
				}
				goto label$603;
				label$604:;
				{
					FBSTRING TMP$781$5;
					FBSTRING TMP$782$5;
					FBSTRING TMP$783$5;
					char* vr$63 = HESCAPE( (char*)*(char**)((uint8*)SYM$1 + 96ll) );
					fb_StrAssign( (void*)&STRG$1, -1ll, (void*)vr$63, 0ll, 0 );
					__builtin_memset( &TMP$783$5, 0, 24ll );
					__builtin_memset( &TMP$781$5, 0, 24ll );
					FBSTRING* vr$69 = fb_StrConcat( &TMP$781$5, (void*)".ascii \x22", 9ll, (void*)&STRG$1, -1ll );
					__builtin_memset( &TMP$782$5, 0, 24ll );
					FBSTRING* vr$72 = fb_StrConcat( &TMP$782$5, (void*)vr$69, -1ll, (void*)"\x5C" "0\x22", 4ll );
					fb_StrAssign( (void*)&TMP$783$5, -1ll, (void*)vr$72, -1ll, 0 );
					HWRITEASM64( &TMP$783$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$783$5 );
				}
				label$603:;
			}
			label$598:;
			label$597:;
		}
		fb_StrDelete( (FBSTRING*)&NEWSTRG$1 );
		fb_StrDelete( (FBSTRING*)&STRG$1 );
		goto label$590;
	}
	label$594:;
	label$593:;
	if( ((int64)-(*(struct $7ASTNODE**)((uint8*)SYM$1 + 96ll) != (struct $7ASTNODE*)0ull) & ((int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 128ll) == 0ll) | (int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 2ll) != 0ll))) == 0ll ) goto label$606;
	{
		if( (*(int64*)((uint8*)SYM$1 + 24ll) & 2ll) != 0ll ) goto label$608;
		{
			if( (*(int64*)((uint8*)SYM$1 + 8ll) & 32ll) != 0ll ) goto label$610;
			{
				fb_StrDelete( (FBSTRING*)&NEWSTRG$1 );
				fb_StrDelete( (FBSTRING*)&STRG$1 );
				goto label$590;
			}
			label$610:;
			label$609:;
		}
		label$608:;
		label$607:;
		IRHLFLUSHSTATICINITIALIZER( SYM$1 );
		fb_StrDelete( (FBSTRING*)&NEWSTRG$1 );
		fb_StrDelete( (FBSTRING*)&STRG$1 );
		goto label$590;
	}
	label$606:;
	label$605:;
	if( (*(int64*)((uint8*)SYM$1 + 8ll) & 16388ll) == 0ll ) goto label$612;
	{
		fb_StrDelete( (FBSTRING*)&NEWSTRG$1 );
		fb_StrDelete( (FBSTRING*)&STRG$1 );
		goto label$590;
	}
	label$612:;
	label$611:;
	IS_GLOBAL$1 = *(int64*)((uint8*)SYM$1 + 8ll) & 59ll;
	if( IS_GLOBAL$1 == 0ll ) goto label$614;
	{
		if( ((int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 16ll) != 0ll) | (int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 4ll) != 0ll)) == 0ll ) goto label$616;
		{
			if( (*(int64*)((uint8*)SYM$1 + 8ll) & 16ll) == 0ll ) goto label$618;
			{
				fb_StrDelete( (FBSTRING*)&NEWSTRG$1 );
				fb_StrDelete( (FBSTRING*)&STRG$1 );
				goto label$590;
			}
			label$618:;
			label$617:;
		}
		goto label$615;
		label$616:;
		{
			if( *(int64*)((uint8*)&ENV$ + 296ll) != -1ll ) goto label$620;
			{
				if( IS_GLOBAL$1 != 2ll ) goto label$622;
				{
					EDBGEMITLOCALVAR_ASM64( SYM$1, (int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 2ll) != 0ll) );
				}
				goto label$621;
				label$622:;
				{
					EDBGEMITGLOBALVAR_ASM64( SYM$1, 2ll );
				}
				label$621:;
			}
			label$620:;
			label$619:;
		}
		label$615:;
	}
	goto label$613;
	label$614:;
	{
		if( (*(int64*)((uint8*)SYM$1 + 8ll) & 262144ll) == 0ll ) goto label$624;
		{
			LGT$1 = *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + 736ll);
		}
		goto label$623;
		label$624:;
		{
			LGT$1 = *(int64*)((uint8*)SYM$1 + 80ll);
		}
		label$623:;
		{
			$12FB_SYMBCLASS TMP$784$3;
			TMP$784$3 = *($12FB_SYMBCLASS*)SYM$1;
			if( TMP$784$3 == 1ll ) goto label$627;
			label$628:;
			if( TMP$784$3 != 12ll ) goto label$626;
			label$627:;
			{
				int64 NBELEMENTS$4;
				NBELEMENTS$4 = 1ll;
				{
					int64 I$5;
					I$5 = *(int64*)((uint8*)SYM$1 + 104ll) + -1ll;
					goto label$629;
					label$632:;
					{
						NBELEMENTS$4 = NBELEMENTS$4 * ((*(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);
					}
					label$630:;
					I$5 = I$5 + -1ll;
					label$629:;
					if( I$5 >= 0ll ) goto label$632;
					label$631:;
				}
				LENGTH$1 = LGT$1 * NBELEMENTS$4;
				if( (*(int64*)((uint8*)SYM$1 + 56ll) & 511ll) != 20ll ) goto label$634;
				{
					ALIGN$1 = *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)SYM$1 + 64ll) + 192ll);
					if( ALIGN$1 >= 4ll ) goto label$636;
					{
						ALIGN$1 = 4ll;
					}
					label$636:;
					label$635:;
					*(int64*)((uint8*)&CTX$ + 192ll) = (((LENGTH$1 + *(int64*)((uint8*)&CTX$ + 192ll)) + ALIGN$1) + -1ll) & ~(ALIGN$1 + -1ll);
				}
				goto label$633;
				label$634:;
				{
					*(int64*)((uint8*)&CTX$ + 192ll) = (((LENGTH$1 + *(int64*)((uint8*)&CTX$ + 192ll)) + LGT$1) + -1ll) & ~(LGT$1 + -1ll);
				}
				label$633:;
				*(int64*)((uint8*)SYM$1 + 88ll) = -(*(int64*)((uint8*)&CTX$ + 192ll));
			}
			label$626:;
			label$625:;
		}
		if( *(int64*)((uint8*)&ENV$ + 296ll) != -1ll ) goto label$638;
		{
			EDBGEMITLOCALVAR_ASM64( SYM$1, (int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 2ll) != 0ll) );
			label$638:;
		}
	}
	label$613:;
	if( IS_GLOBAL$1 == 0ll ) goto label$640;
	{
		FBSTRING TMP$786$2;
		*(int64*)((uint8*)&CTX$ + 8ll) = 2ll;
		__builtin_memset( &TMP$786$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$786$2, -1ll, (void*)".bss", 5ll, 0 );
		ASM_SECTION( &TMP$786$2 );
		fb_StrDelete( (FBSTRING*)&TMP$786$2 );
		int64 SIZE$2;
		__builtin_memset( &SIZE$2, 0, 8ll );
		int64 ALIGN$2;
		__builtin_memset( &ALIGN$2, 0, 8ll );
		int64 NBELEMENTS$2;
		__builtin_memset( &NBELEMENTS$2, 0, 8ll );
		NBELEMENTS$2 = 1ll;
		{
			int64 I$3;
			I$3 = *(int64*)((uint8*)SYM$1 + 104ll) + -1ll;
			goto label$641;
			label$644:;
			{
				NBELEMENTS$2 = NBELEMENTS$2 * ((*(int64*)((uint8*)((uint8*)*(struct $10FBARRAYDIM**)((uint8*)SYM$1 + 112ll) + (I$3 << (4ll & 63ll))) + 8ll) - *(int64*)((uint8*)*(struct $10FBARRAYDIM**)((uint8*)SYM$1 + 112ll) + (I$3 << (4ll & 63ll)))) + 1ll);
			}
			label$642:;
			I$3 = I$3 + -1ll;
			label$641:;
			if( I$3 >= 0ll ) goto label$644;
			label$643:;
		}
		LENGTH$1 = *(int64*)((uint8*)SYM$1 + 80ll) * NBELEMENTS$2;
		if( (*(int64*)((uint8*)SYM$1 + 56ll) & 511ll) != 20ll ) goto label$646;
		{
			ALIGN$2 = *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)SYM$1 + 64ll) + 192ll);
		}
		goto label$645;
		label$646:;
		{
			ALIGN$2 = *(int64*)((uint8*)SYM$1 + 80ll);
		}
		label$645:;
		int64 vr$180 = PW2( ALIGN$2 );
		ALIGN$2 = vr$180;
		if( ALIGN$2 <= 8ll ) goto label$648;
		{
			ALIGN$2 = 8ll;
			label$648:;
		}
		if( ((int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 8ll) != 0ll) | (int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 32ll) != 0ll)) == 0ll ) goto label$650;
		{
			FBSTRING TMP$788$3;
			FBSTRING TMP$789$3;
			FBSTRING TMP$790$3;
			FBSTRING TMP$791$3;
			FBSTRING TMP$792$3;
			FBSTRING TMP$793$3;
			__builtin_memset( &TMP$793$3, 0, 24ll );
			FBSTRING* vr$189 = fb_LongintToStr( ALIGN$2 );
			FBSTRING* vr$190 = fb_LongintToStr( LENGTH$1 );
			char* vr$191 = SYMBGETMANGLEDNAME( SYM$1 );
			__builtin_memset( &TMP$788$3, 0, 24ll );
			FBSTRING* vr$194 = fb_StrConcat( &TMP$788$3, (void*)".comm ", 7ll, (void*)vr$191, 0ll );
			__builtin_memset( &TMP$789$3, 0, 24ll );
			FBSTRING* vr$197 = fb_StrConcat( &TMP$789$3, (void*)vr$194, -1ll, (void*)",", 2ll );
			__builtin_memset( &TMP$790$3, 0, 24ll );
			FBSTRING* vr$200 = fb_StrConcat( &TMP$790$3, (void*)vr$197, -1ll, (void*)vr$190, -1ll );
			__builtin_memset( &TMP$791$3, 0, 24ll );
			FBSTRING* vr$203 = fb_StrConcat( &TMP$791$3, (void*)vr$200, -1ll, (void*)",", 2ll );
			__builtin_memset( &TMP$792$3, 0, 24ll );
			FBSTRING* vr$206 = fb_StrConcat( &TMP$792$3, (void*)vr$203, -1ll, (void*)vr$189, -1ll );
			fb_StrAssign( (void*)&TMP$793$3, -1ll, (void*)vr$206, -1ll, 0 );
			HWRITEASM64( &TMP$793$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$793$3 );
		}
		goto label$649;
		label$650:;
		{
			if( *(boolean*)((uint8*)&CTX$ + 416ll) == (boolean)0ll ) goto label$652;
			{
				FBSTRING TMP$795$4;
				FBSTRING TMP$796$4;
				FBSTRING TMP$797$4;
				FBSTRING TMP$798$4;
				FBSTRING TMP$799$4;
				FBSTRING TMP$800$4;
				FBSTRING TMP$801$4;
				FBSTRING TMP$802$4;
				__builtin_memset( &TMP$796$4, 0, 24ll );
				char* vr$211 = SYMBGETMANGLEDNAME( SYM$1 );
				__builtin_memset( &TMP$795$4, 0, 24ll );
				FBSTRING* vr$214 = fb_StrConcat( &TMP$795$4, (void*)".local ", 8ll, (void*)vr$211, 0ll );
				fb_StrAssign( (void*)&TMP$796$4, -1ll, (void*)vr$214, -1ll, 0 );
				HWRITEASM64( &TMP$796$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$796$4 );
				__builtin_memset( &TMP$802$4, 0, 24ll );
				FBSTRING* vr$219 = fb_LongintToStr( ALIGN$2 );
				FBSTRING* vr$220 = fb_LongintToStr( LENGTH$1 );
				char* vr$221 = SYMBGETMANGLEDNAME( SYM$1 );
				__builtin_memset( &TMP$797$4, 0, 24ll );
				FBSTRING* vr$224 = fb_StrConcat( &TMP$797$4, (void*)".comm ", 7ll, (void*)vr$221, 0ll );
				__builtin_memset( &TMP$798$4, 0, 24ll );
				FBSTRING* vr$227 = fb_StrConcat( &TMP$798$4, (void*)vr$224, -1ll, (void*)",", 2ll );
				__builtin_memset( &TMP$799$4, 0, 24ll );
				FBSTRING* vr$230 = fb_StrConcat( &TMP$799$4, (void*)vr$227, -1ll, (void*)vr$220, -1ll );
				__builtin_memset( &TMP$800$4, 0, 24ll );
				FBSTRING* vr$233 = fb_StrConcat( &TMP$800$4, (void*)vr$230, -1ll, (void*)",", 2ll );
				__builtin_memset( &TMP$801$4, 0, 24ll );
				FBSTRING* vr$236 = fb_StrConcat( &TMP$801$4, (void*)vr$233, -1ll, (void*)vr$219, -1ll );
				fb_StrAssign( (void*)&TMP$802$4, -1ll, (void*)vr$236, -1ll, 0 );
				HWRITEASM64( &TMP$802$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$802$4 );
			}
			goto label$651;
			label$652:;
			{
				FBSTRING TMP$804$4;
				FBSTRING TMP$805$4;
				FBSTRING TMP$806$4;
				FBSTRING TMP$807$4;
				FBSTRING TMP$808$4;
				FBSTRING TMP$809$4;
				__builtin_memset( &TMP$809$4, 0, 24ll );
				FBSTRING* vr$241 = fb_LongintToStr( ALIGN$2 );
				FBSTRING* vr$242 = fb_LongintToStr( LENGTH$1 );
				char* vr$243 = SYMBGETMANGLEDNAME( SYM$1 );
				__builtin_memset( &TMP$804$4, 0, 24ll );
				FBSTRING* vr$246 = fb_StrConcat( &TMP$804$4, (void*)".lcomm ", 8ll, (void*)vr$243, 0ll );
				__builtin_memset( &TMP$805$4, 0, 24ll );
				FBSTRING* vr$249 = fb_StrConcat( &TMP$805$4, (void*)vr$246, -1ll, (void*)",", 2ll );
				__builtin_memset( &TMP$806$4, 0, 24ll );
				FBSTRING* vr$252 = fb_StrConcat( &TMP$806$4, (void*)vr$249, -1ll, (void*)vr$242, -1ll );
				__builtin_memset( &TMP$807$4, 0, 24ll );
				FBSTRING* vr$255 = fb_StrConcat( &TMP$807$4, (void*)vr$252, -1ll, (void*)",", 2ll );
				__builtin_memset( &TMP$808$4, 0, 24ll );
				FBSTRING* vr$258 = fb_StrConcat( &TMP$808$4, (void*)vr$255, -1ll, (void*)vr$241, -1ll );
				fb_StrAssign( (void*)&TMP$809$4, -1ll, (void*)vr$258, -1ll, 0 );
				HWRITEASM64( &TMP$809$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$809$4 );
			}
			label$651:;
		}
		label$649:;
	}
	label$640:;
	label$639:;
	fb_StrDelete( (FBSTRING*)&NEWSTRG$1 );
	fb_StrDelete( (FBSTRING*)&STRG$1 );
	label$590:;
}

static void HMAYBEEMITGLOBALVAR( struct $8FBSYMBOL* SYM$1 )
{
	label$653:;
	*(int64*)&CTX$ = *(int64*)&CTX$ + 1ll;
	int64 vr$1 = SYMBISDATADESC( SYM$1 );
	if( vr$1 != 0ll ) goto label$656;
	{
		HEMITVARIABLE( SYM$1 );
	}
	label$656:;
	label$655:;
	*(int64*)&CTX$ = *(int64*)&CTX$ + -1ll;
	label$654:;
}

static void NO_ROUNDSD( char* SIZE$1 )
{
	FBSTRING TMP$811$1;
	FBSTRING TMP$813$1;
	FBSTRING TMP$815$1;
	FBSTRING TMP$817$1;
	FBSTRING TMP$820$1;
	FBSTRING TMP$821$1;
	FBSTRING TMP$822$1;
	FBSTRING TMP$824$1;
	FBSTRING TMP$825$1;
	label$657:;
	__builtin_memset( &TMP$811$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$811$1, -1ll, (void*)"stmxcsr $mxcsr[rip]", 20ll, 0 );
	HWRITEASM64( &TMP$811$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$811$1 );
	__builtin_memset( &TMP$813$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$813$1, -1ll, (void*)"push $mxcsr[rip]", 17ll, 0 );
	HWRITEASM64( &TMP$813$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$813$1 );
	__builtin_memset( &TMP$815$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$815$1, -1ll, (void*)"and dword ptr $mxcsr[rip], 0xFFFF9FFF", 38ll, 0 );
	HWRITEASM64( &TMP$815$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$815$1 );
	__builtin_memset( &TMP$817$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$817$1, -1ll, (void*)"ldmxcsr $mxcsr[rip]", 20ll, 0 );
	HWRITEASM64( &TMP$817$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$817$1 );
	__builtin_memset( &TMP$822$1, 0, 24ll );
	__builtin_memset( &TMP$820$1, 0, 24ll );
	FBSTRING* vr$19 = fb_StrConcat( &TMP$820$1, (void*)"cvts", 5ll, (void*)SIZE$1, 0ll );
	__builtin_memset( &TMP$821$1, 0, 24ll );
	FBSTRING* vr$22 = fb_StrConcat( &TMP$821$1, (void*)vr$19, -1ll, (void*)"2si rax, xmm0", 14ll );
	fb_StrAssign( (void*)&TMP$822$1, -1ll, (void*)vr$22, -1ll, 0 );
	HWRITEASM64( &TMP$822$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$822$1 );
	__builtin_memset( &TMP$824$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$824$1, -1ll, (void*)"pop $mxcsr[rip]", 16ll, 0 );
	HWRITEASM64( &TMP$824$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$824$1 );
	__builtin_memset( &TMP$825$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$825$1, -1ll, (void*)"ldmxcsr $mxcsr[rip]", 20ll, 0 );
	HWRITEASM64( &TMP$825$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$825$1 );
	label$658:;
}

static int64 _EMITBEGIN( void )
{
	FBSTRING TMP$828$1;
	FBSTRING TMP$830$1;
	FBSTRING TMP$832$1;
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$659:;
	int64 vr$2 = HFILEEXISTS( (char*)((uint8*)&ENV$ + 904ll) );
	if( vr$2 == 0ll ) goto label$662;
	{
		FBSTRING* vr$4 = fb_StrAllocTempDescZ( (char*)((uint8*)&ENV$ + 904ll) );
		fb_FileKill( (FBSTRING*)vr$4 );
	}
	label$662:;
	label$661:;
	int32 vr$5 = fb_FileFree(  );
	*(int64*)((uint8*)&ENV$ + 896ll) = (int64)vr$5;
	FBSTRING* vr$9 = fb_StrAllocTempDescZ( (char*)((uint8*)&ENV$ + 904ll) );
	int32 vr$10 = fb_FileOpen( (FBSTRING*)vr$9, 0u, 3u, 0u, (int32)*(int64*)((uint8*)&ENV$ + 896ll), 0 );
	if( (int64)vr$10 == 0ll ) goto label$664;
	{
		fb$result$1 = 0ll;
		goto label$660;
	}
	label$664:;
	label$663:;
	*(int64*)&CTX$ = 0ll;
	fb_StrAssign( (void*)((uint8*)&CTX$ + 16ll), -1ll, (void*)"", 1ll, 0 );
	fb_StrAssign( (void*)((uint8*)&CTX$ + 40ll), -1ll, (void*)"", 1ll, 0 );
	fb_StrAssign( (void*)((uint8*)&CTX$ + 64ll), -1ll, (void*)"", 1ll, 0 );
	*(int64*)((uint8*)&CTX$ + 8ll) = 0ll;
	*(int64*)((uint8*)&CTX$ + 240ll) = 0ll;
	*(int64*)((uint8*)&CTX$ + 248ll) = 0ll;
	*(boolean*)((uint8*)&CTX$ + 256ll) = (boolean)0ll;
	int64 vr$15 = FBGETOPTION( 3ll );
	*($13FB_COMPTARGET*)((uint8*)&CTX$ + 408ll) = vr$15;
	{
		$13FB_COMPTARGET TMP$826$2;
		TMP$826$2 = *($13FB_COMPTARGET*)((uint8*)&CTX$ + 408ll);
		if( TMP$826$2 == 2ll ) goto label$667;
		label$668:;
		if( TMP$826$2 == 6ll ) goto label$667;
		label$669:;
		if( TMP$826$2 != 3ll ) goto label$666;
		label$667:;
		{
			*(boolean*)((uint8*)&CTX$ + 416ll) = (boolean)1ll;
		}
		goto label$665;
		label$666:;
		{
			*(boolean*)((uint8*)&CTX$ + 416ll) = (boolean)0ll;
		}
		label$670:;
		label$665:;
	}
	*(int64*)((uint8*)&CTX$ + 424ll) = 0ll;
	{
		int64 IREG$2;
		IREG$2 = 0ll;
		label$674:;
		{
			*(int32*)((int64)(int32*)REGHANDLE$ + (IREG$2 << (2ll & 63ll))) = -2;
			*(int32*)((int64)(struct $13ASM64_REGROOM*)REGROOM$ + (IREG$2 << (4ll & 63ll))) = -1;
			*(struct $14ASM64_SAVEDREG**)(((int64)(struct $13ASM64_REGROOM*)REGROOM$ + (IREG$2 << (4ll & 63ll))) + 8ll) = (struct $14ASM64_SAVEDREG*)0ull;
		}
		label$672:;
		IREG$2 = IREG$2 + 1ll;
		label$671:;
		if( IREG$2 <= 15ll ) goto label$674;
		label$673:;
	}
	*(int32*)((int64)(int32*)REGHANDLE$ + 24ll) = -3;
	*(int32*)((int64)(int32*)REGHANDLE$ + 28ll) = -3;
	if( *(boolean*)((uint8*)&CTX$ + 416ll) == (boolean)0ll ) goto label$676;
	{
		*(int64*)((uint8*)&CTX$ + 440ll) = 8388608ll;
		int32 vr$20 = fb_ArrayRedimEx( (struct $7FBARRAYIvE*)&LISTREG$, 4ull, -1, 0, 1ull, 1ll, 8ll );
		if( (int64)vr$20 == 0ll ) goto label$677;
		void* vr$22 = fb_ErrorThrowAt( 2269, (char*)"/root/FreeBASIC-1.10.3/src/compiler/ir-gas64.bas", (void*)0ull, (void*)0ull );
		goto *vr$22;
		label$677:;
		*(int32*)((uint8*)*(int64*)&LISTREG$ + 4ll) = 5;
		*(int32*)((uint8*)*(int64*)&LISTREG$ + 8ll) = 4;
		*(int32*)((uint8*)*(int64*)&LISTREG$ + 12ll) = 3;
		*(int32*)((uint8*)*(int64*)&LISTREG$ + 16ll) = 2;
		*(int32*)((uint8*)*(int64*)&LISTREG$ + 20ll) = 8;
		*(int32*)((uint8*)*(int64*)&LISTREG$ + 24ll) = 9;
		*(int32*)((uint8*)*(int64*)&LISTREG$ + 28ll) = 10;
		*(int32*)((uint8*)*(int64*)&LISTREG$ + 32ll) = 11;
	}
	goto label$675;
	label$676:;
	{
		*(int64*)((uint8*)&CTX$ + 440ll) = *(int64*)((uint8*)&ENV$ + 488ll);
		int32 vr$23 = fb_ArrayRedimEx( (struct $7FBARRAYIvE*)&LISTREG$, 4ull, -1, 0, 1ull, 1ll, 6ll );
		if( (int64)vr$23 == 0ll ) goto label$678;
		void* vr$25 = fb_ErrorThrowAt( 2273, (char*)"/root/FreeBASIC-1.10.3/src/compiler/ir-gas64.bas", (void*)0ull, (void*)0ull );
		goto *vr$25;
		label$678:;
		*(int32*)((uint8*)*(int64*)&LISTREG$ + 4ll) = 2;
		*(int32*)((uint8*)*(int64*)&LISTREG$ + 8ll) = 3;
		*(int32*)((uint8*)*(int64*)&LISTREG$ + 12ll) = 8;
		*(int32*)((uint8*)*(int64*)&LISTREG$ + 16ll) = 9;
		*(int32*)((uint8*)*(int64*)&LISTREG$ + 20ll) = 10;
		*(int32*)((uint8*)*(int64*)&LISTREG$ + 24ll) = 11;
	}
	label$675:;
	*(int64*)&CTX$ = *(int64*)&CTX$ + 1ll;
	if( *(int64*)((uint8*)&ENV$ + 296ll) != -1ll ) goto label$680;
	{
		EDBGEMITHEADER_ASM64( (char*)((uint8*)&ENV$ + 608ll) );
	}
	goto label$679;
	label$680:;
	{
		*(uint64*)&CTXDBG$ = 1ull;
		*(int64*)((uint8*)&CTXDBG$ + 72ll) = -1ll;
		*(int64*)((uint8*)&CTXDBG$ + 80ll) = 4ll;
		int32 vr$28 = fb_ArrayRedimObj( (struct $7FBARRAYIvE*)&DBGSTR$, 32ull, (void*)&_ZN7TDBGSTRC1Ev, (void*)&_ZN7TDBGSTRD1Ev, 1ull, 0ll, *(int64*)((uint8*)&CTXDBG$ + 80ll) );
		if( (int64)vr$28 == 0ll ) goto label$681;
		void* vr$30 = fb_ErrorThrowAt( 2286, (char*)"/root/FreeBASIC-1.10.3/src/compiler/ir-gas64.bas", (void*)0ull, (void*)0ull );
		goto *vr$30;
		label$681:;
		*(int64*)((uint8*)&CTXDBG$ + 88ll) = -1ll;
		*(int64*)((uint8*)&CTXDBG$ + 96ll) = 4ll;
		int32 vr$31 = fb_ArrayRedimObj( (struct $7FBARRAYIvE*)&DBGSTAB$, 32ull, (void*)&_ZN8TDBGSTABC1Ev, (void*)&_ZN8TDBGSTABD1Ev, 1ull, 0ll, *(int64*)((uint8*)&CTXDBG$ + 96ll) );
		if( (int64)vr$31 == 0ll ) goto label$682;
		void* vr$33 = fb_ErrorThrowAt( 2289, (char*)"/root/FreeBASIC-1.10.3/src/compiler/ir-gas64.bas", (void*)0ull, (void*)0ull );
		goto *vr$33;
		label$682:;
		*(int64*)((uint8*)&CTXDBG$ + 104ll) = 1ll;
		*(int64*)((uint8*)&CTXDBG$ + 8ll) = -1ll;
	}
	label$679:;
	__builtin_memset( &TMP$828$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$828$1, -1ll, (void*)".intel_syntax noprefix", 23ll, 0 );
	HWRITEASM64( &TMP$828$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$828$1 );
	__builtin_memset( &TMP$830$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$830$1, -1ll, (void*)".cfi_sections .debug_frame", 27ll, 0 );
	CFI_WINDOWS_ASM_CODE( &TMP$830$1 );
	fb_StrDelete( (FBSTRING*)&TMP$830$1 );
	__builtin_memset( &TMP$832$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$832$1, -1ll, (void*)".text", 6ll, 0 );
	ASM_SECTION( &TMP$832$1 );
	fb_StrDelete( (FBSTRING*)&TMP$832$1 );
	if( *(int64*)((uint8*)&ENV$ + 352ll) != -1ll ) goto label$684;
	{
		FBSTRING TMP$834$2;
		__builtin_memset( &TMP$834$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$834$2, -1ll, (void*)"mov qword ptr $totalstacksize[rip], 0", 38ll, 0 );
		HWRITEASM64( &TMP$834$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$834$2 );
	}
	label$684:;
	label$683:;
	*(int64*)&CTX$ = *(int64*)&CTX$ + -1ll;
	fb$result$1 = -1ll;
	label$660:;
	return fb$result$1;
}

static void HADDGLOBALCTORDTOR( struct $8FBSYMBOL* PROC$1 )
{
	label$685:;
	if( (*(int64*)((uint8*)PROC$1 + 24ll) & 16384ll) == 0ll ) goto label$688;
	{
		goto label$686;
	}
	label$688:;
	label$687:;
	if( (*(int64*)((uint8*)PROC$1 + 24ll) & 65536ll) == 0ll ) goto label$690;
	{
		if( (*(int64*)((uint8*)PROC$1 + 24ll) & 16777216ll) == 0ll ) goto label$692;
		{
			int64 TMP$835$3;
			FBSTRING TMP$840$3;
			FBSTRING TMP$841$3;
			FBSTRING TMP$842$3;
			FBSTRING TMP$843$3;
			*(int64*)((uint8*)&CTX$ + 240ll) = *(int64*)((uint8*)&CTX$ + 240ll) + 1ll;
			if( (int64)-(*(boolean*)((uint8*)&CTX$ + 416ll)) != -1ll ) goto label$693;
			int64 vr$8 = FBGETOPTION( 0ll );
			TMP$835$3 = (int64)-(vr$8 == 2ll);
			goto label$3086;
			label$693:;
			TMP$835$3 = 0ll;
			label$3086:;
			if( TMP$835$3 == 0ll ) goto label$695;
			{
				FBSTRING TMP$837$4;
				__builtin_memset( &TMP$837$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$837$4, -1ll, (void*)".init_array", 12ll, 0 );
				ASM_SECTION( &TMP$837$4 );
				fb_StrDelete( (FBSTRING*)&TMP$837$4 );
			}
			goto label$694;
			label$695:;
			{
				FBSTRING TMP$839$4;
				__builtin_memset( &TMP$839$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$839$4, -1ll, (void*)".ctors", 7ll, 0 );
				ASM_SECTION( &TMP$839$4 );
				fb_StrDelete( (FBSTRING*)&TMP$839$4 );
			}
			label$694:;
			__builtin_memset( &TMP$840$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$840$3, -1ll, (void*)".align 8", 9ll, 0 );
			HWRITEASM64( &TMP$840$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$840$3 );
			__builtin_memset( &TMP$842$3, 0, 24ll );
			char* vr$23 = SYMBGETMANGLEDNAME( PROC$1 );
			__builtin_memset( &TMP$841$3, 0, 24ll );
			FBSTRING* vr$26 = fb_StrConcat( &TMP$841$3, (void*)".quad ", 7ll, (void*)vr$23, 0ll );
			fb_StrAssign( (void*)&TMP$842$3, -1ll, (void*)vr$26, -1ll, 0 );
			HWRITEASM64( &TMP$842$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$842$3 );
			__builtin_memset( &TMP$843$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$843$3, -1ll, (void*)".text", 6ll, 0 );
			ASM_SECTION( &TMP$843$3 );
			fb_StrDelete( (FBSTRING*)&TMP$843$3 );
		}
		label$692:;
		label$691:;
	}
	goto label$689;
	label$690:;
	if( (*(int64*)((uint8*)PROC$1 + 24ll) & 131072ll) == 0ll ) goto label$696;
	{
		int64 TMP$844$2;
		FBSTRING TMP$849$2;
		FBSTRING TMP$850$2;
		FBSTRING TMP$851$2;
		FBSTRING TMP$852$2;
		*(int64*)((uint8*)&CTX$ + 248ll) = *(int64*)((uint8*)&CTX$ + 248ll) + 1ll;
		if( (int64)-(*(boolean*)((uint8*)&CTX$ + 416ll)) != -1ll ) goto label$697;
		int64 vr$38 = FBGETOPTION( 0ll );
		TMP$844$2 = (int64)-(vr$38 == 2ll);
		goto label$3087;
		label$697:;
		TMP$844$2 = 0ll;
		label$3087:;
		if( TMP$844$2 == 0ll ) goto label$699;
		{
			FBSTRING TMP$846$3;
			__builtin_memset( &TMP$846$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$846$3, -1ll, (void*)".fini_array", 12ll, 0 );
			ASM_SECTION( &TMP$846$3 );
			fb_StrDelete( (FBSTRING*)&TMP$846$3 );
		}
		goto label$698;
		label$699:;
		{
			FBSTRING TMP$848$3;
			__builtin_memset( &TMP$848$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$848$3, -1ll, (void*)".dtors", 7ll, 0 );
			ASM_SECTION( &TMP$848$3 );
			fb_StrDelete( (FBSTRING*)&TMP$848$3 );
		}
		label$698:;
		__builtin_memset( &TMP$849$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$849$2, -1ll, (void*)".align 8", 9ll, 0 );
		HWRITEASM64( &TMP$849$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$849$2 );
		__builtin_memset( &TMP$851$2, 0, 24ll );
		char* vr$53 = SYMBGETMANGLEDNAME( PROC$1 );
		__builtin_memset( &TMP$850$2, 0, 24ll );
		FBSTRING* vr$56 = fb_StrConcat( &TMP$850$2, (void*)".quad ", 7ll, (void*)vr$53, 0ll );
		fb_StrAssign( (void*)&TMP$851$2, -1ll, (void*)vr$56, -1ll, 0 );
		HWRITEASM64( &TMP$851$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$851$2 );
		__builtin_memset( &TMP$852$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$852$2, -1ll, (void*)".text", 6ll, 0 );
		ASM_SECTION( &TMP$852$2 );
		fb_StrDelete( (FBSTRING*)&TMP$852$2 );
	}
	label$696:;
	label$689:;
	label$686:;
}

static void _EMITEND( void )
{
	label$700:;
	*(int64*)&CTX$ = *(int64*)&CTX$ + 1ll;
	*(int64*)((uint8*)&CTX$ + 8ll) = 2ll;
	*(int64*)&CTX$ = *(int64*)&CTX$ + -1ll;
	SYMBFOREACHGLOBAL( 1ll, (tmp$42)&HMAYBEEMITGLOBALVAR );
	*(int64*)&CTX$ = *(int64*)&CTX$ + 1ll;
	IRFOREACHDATASTMT( (tmp$42)&HEMITVARIABLE );
	SYMBFOREACHGLOBAL( 3ll, (tmp$42)&HADDGLOBALCTORDTOR );
	if( *(int64*)((uint8*)&ENV$ + 352ll) != -1ll ) goto label$703;
	{
		FBSTRING TMP$853$2;
		__builtin_memset( &TMP$853$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$853$2, -1ll, (void*)".bss", 5ll, 0 );
		ASM_SECTION( &TMP$853$2 );
		fb_StrDelete( (FBSTRING*)&TMP$853$2 );
		if( *(boolean*)((uint8*)&CTX$ + 416ll) == (boolean)0ll ) goto label$705;
		{
			FBSTRING TMP$855$3;
			FBSTRING TMP$857$3;
			__builtin_memset( &TMP$855$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$855$3, -1ll, (void*)".local $totalstacksize", 23ll, 0 );
			HWRITEASM64( &TMP$855$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$855$3 );
			__builtin_memset( &TMP$857$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$857$3, -1ll, (void*)".comm $totalstacksize,8,8", 26ll, 0 );
			HWRITEASM64( &TMP$857$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$857$3 );
		}
		goto label$704;
		label$705:;
		{
			FBSTRING TMP$859$3;
			__builtin_memset( &TMP$859$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$859$3, -1ll, (void*)".lcomm $totalstacksize,8,8", 27ll, 0 );
			HWRITEASM64( &TMP$859$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$859$3 );
		}
		label$704:;
	}
	label$703:;
	label$702:;
	if( (int64)-(*(boolean*)((uint8*)&CTX$ + 256ll)) != -1ll ) goto label$707;
	{
		FBSTRING TMP$860$2;
		int64 TMP$873$2;
		FBSTRING TMP$876$2;
		FBSTRING TMP$878$2;
		FBSTRING TMP$879$2;
		FBSTRING TMP$881$2;
		FBSTRING TMP$883$2;
		FBSTRING TMP$885$2;
		FBSTRING TMP$887$2;
		FBSTRING TMP$889$2;
		FBSTRING TMP$891$2;
		FBSTRING TMP$893$2;
		FBSTRING TMP$895$2;
		FBSTRING TMP$897$2;
		FBSTRING TMP$899$2;
		FBSTRING TMP$901$2;
		FBSTRING TMP$903$2;
		__builtin_memset( &TMP$860$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$860$2, -1ll, (void*)".bss", 5ll, 0 );
		ASM_SECTION( &TMP$860$2 );
		fb_StrDelete( (FBSTRING*)&TMP$860$2 );
		if( *(boolean*)((uint8*)&CTX$ + 416ll) == (boolean)0ll ) goto label$709;
		{
			FBSTRING TMP$862$3;
			FBSTRING TMP$864$3;
			FBSTRING TMP$866$3;
			FBSTRING TMP$868$3;
			__builtin_memset( &TMP$862$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$862$3, -1ll, (void*)".local $mxcsr", 14ll, 0 );
			HWRITEASM64( &TMP$862$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$862$3 );
			__builtin_memset( &TMP$864$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$864$3, -1ll, (void*)".comm $mxcsr,8,8", 17ll, 0 );
			HWRITEASM64( &TMP$864$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$864$3 );
			__builtin_memset( &TMP$866$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$866$3, -1ll, (void*)".local $sse41", 14ll, 0 );
			HWRITEASM64( &TMP$866$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$866$3 );
			__builtin_memset( &TMP$868$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$868$3, -1ll, (void*)".comm $sse41,4,8", 17ll, 0 );
			HWRITEASM64( &TMP$868$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$868$3 );
		}
		goto label$708;
		label$709:;
		{
			FBSTRING TMP$870$3;
			FBSTRING TMP$872$3;
			__builtin_memset( &TMP$870$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$870$3, -1ll, (void*)".lcomm $mxcsr,8,8", 18ll, 0 );
			HWRITEASM64( &TMP$870$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$870$3 );
			__builtin_memset( &TMP$872$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$872$3, -1ll, (void*)".lcomm $sse41,4,8", 18ll, 0 );
			HWRITEASM64( &TMP$872$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$872$3 );
		}
		label$708:;
		if( (int64)-(*(boolean*)((uint8*)&CTX$ + 416ll)) != -1ll ) goto label$710;
		int64 vr$49 = FBGETOPTION( 0ll );
		TMP$873$2 = (int64)-(vr$49 == 2ll);
		goto label$3088;
		label$710:;
		TMP$873$2 = 0ll;
		label$3088:;
		if( TMP$873$2 == 0ll ) goto label$712;
		{
			FBSTRING TMP$874$3;
			__builtin_memset( &TMP$874$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$874$3, -1ll, (void*)".init_array", 12ll, 0 );
			ASM_SECTION( &TMP$874$3 );
			fb_StrDelete( (FBSTRING*)&TMP$874$3 );
		}
		goto label$711;
		label$712:;
		{
			FBSTRING TMP$875$3;
			__builtin_memset( &TMP$875$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$875$3, -1ll, (void*)".ctors", 7ll, 0 );
			ASM_SECTION( &TMP$875$3 );
			fb_StrDelete( (FBSTRING*)&TMP$875$3 );
		}
		label$711:;
		__builtin_memset( &TMP$876$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$876$2, -1ll, (void*)".align 8", 9ll, 0 );
		HWRITEASM64( &TMP$876$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$876$2 );
		__builtin_memset( &TMP$878$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$878$2, -1ll, (void*)".quad $sse41_test", 18ll, 0 );
		HWRITEASM64( &TMP$878$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$878$2 );
		__builtin_memset( &TMP$879$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$879$2, -1ll, (void*)".text", 6ll, 0 );
		ASM_SECTION( &TMP$879$2 );
		fb_StrDelete( (FBSTRING*)&TMP$879$2 );
		__builtin_memset( &TMP$881$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$881$2, -1ll, (void*)"$sse41_test:", 13ll, 0 );
		HWRITEASM64( &TMP$881$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$881$2 );
		__builtin_memset( &TMP$883$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$883$2, -1ll, (void*)"push rbx", 9ll, 0 );
		HWRITEASM64( &TMP$883$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$883$2 );
		__builtin_memset( &TMP$885$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$885$2, -1ll, (void*)"push rcx", 9ll, 0 );
		HWRITEASM64( &TMP$885$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$885$2 );
		__builtin_memset( &TMP$887$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$887$2, -1ll, (void*)"push rdx", 9ll, 0 );
		HWRITEASM64( &TMP$887$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$887$2 );
		__builtin_memset( &TMP$889$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$889$2, -1ll, (void*)"mov  eax, 1", 12ll, 0 );
		HWRITEASM64( &TMP$889$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$889$2 );
		__builtin_memset( &TMP$891$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$891$2, -1ll, (void*)"cpuid", 6ll, 0 );
		HWRITEASM64( &TMP$891$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$891$2 );
		__builtin_memset( &TMP$893$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$893$2, -1ll, (void*)"and ecx, 0b10000000000000000000", 32ll, 0 );
		HWRITEASM64( &TMP$893$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$893$2 );
		__builtin_memset( &TMP$895$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$895$2, -1ll, (void*)"mov $sse41[rip], ecx", 21ll, 0 );
		HWRITEASM64( &TMP$895$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$895$2 );
		__builtin_memset( &TMP$897$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$897$2, -1ll, (void*)"pop rdx", 8ll, 0 );
		HWRITEASM64( &TMP$897$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$897$2 );
		__builtin_memset( &TMP$899$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$899$2, -1ll, (void*)"pop rcx", 8ll, 0 );
		HWRITEASM64( &TMP$899$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$899$2 );
		__builtin_memset( &TMP$901$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$901$2, -1ll, (void*)"pop rbx", 8ll, 0 );
		HWRITEASM64( &TMP$901$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$901$2 );
		__builtin_memset( &TMP$903$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$903$2, -1ll, (void*)"ret", 4ll, 0 );
		HWRITEASM64( &TMP$903$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$903$2 );
	}
	label$707:;
	label$706:;
	if( *(int64*)((uint8*)&ENV$ + 296ll) != -1ll ) goto label$714;
	{
		FBSTRING TMP$904$2;
		FBSTRING TMP$905$2;
		FBSTRING TMP$906$2;
		FBSTRING TMP$907$2;
		FBSTRING LNAME$2;
		char* vr$119 = SYMBUNIQUELABEL(  );
		fb_StrInit( (void*)&LNAME$2, -1ll, (void*)vr$119, 0ll, 0 );
		__builtin_memset( &TMP$904$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$904$2, -1ll, (void*)"", 1ll, 0 );
		DBG_ADDSTAB( &TMP$904$2, (uint8)100u, (int16)0, &LNAME$2 );
		fb_StrDelete( (FBSTRING*)&TMP$904$2 );
		__builtin_memset( &TMP$905$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$905$2, -1ll, (void*)".text", 6ll, 0 );
		HWRITEASM64( &TMP$905$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$905$2 );
		__builtin_memset( &TMP$907$2, 0, 24ll );
		__builtin_memset( &TMP$906$2, 0, 24ll );
		FBSTRING* vr$134 = fb_StrConcat( &TMP$906$2, (void*)&LNAME$2, -1ll, (void*)":", 2ll );
		fb_StrAssign( (void*)&TMP$907$2, -1ll, (void*)vr$134, -1ll, 0 );
		HWRITEASM64( &TMP$907$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$907$2 );
		DBG_EMITSTAB(  );
		DBG_EMITSTR(  );
		fb_StrDelete( (FBSTRING*)&LNAME$2 );
	}
	label$714:;
	label$713:;
	int32 vr$141 = fb_FilePutStrLarge( (int32)*(int64*)((uint8*)&ENV$ + 896ll), 0ll, (void*)((uint8*)&CTX$ + 16ll), -1ll );
	if( (int64)vr$141 == 0ll ) goto label$716;
	{
	}
	label$716:;
	label$715:;
	int32 vr$145 = fb_FilePutStrLarge( (int32)*(int64*)((uint8*)&ENV$ + 896ll), 0ll, (void*)((uint8*)&CTX$ + 40ll), -1ll );
	if( (int64)vr$145 == 0ll ) goto label$718;
	{
	}
	label$718:;
	label$717:;
	int32 vr$149 = fb_FilePutStrLarge( (int32)*(int64*)((uint8*)&ENV$ + 896ll), 0ll, (void*)((uint8*)&CTX$ + 64ll), -1ll );
	if( (int64)vr$149 == 0ll ) goto label$720;
	{
	}
	label$720:;
	label$719:;
	int32 vr$152 = fb_FileClose( (int32)*(int64*)((uint8*)&ENV$ + 896ll) );
	if( (int64)vr$152 == 0ll ) goto label$722;
	{
	}
	label$722:;
	label$721:;
	*(int64*)((uint8*)&ENV$ + 896ll) = 0ll;
	label$701:;
}

static int64 _GETOPTIONVALUE( $14IR_OPTIONVALUE OPT$1 )
{
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$723:;
	{
		if( OPT$1 != 1ll ) goto label$726;
		label$727:;
		{
			fb$result$1 = 0ll;
			goto label$724;
		}
		goto label$725;
		label$726:;
		{
			ERRREPORTEX( 21ll, (char*)"_GETOPTIONVALUE", 0ll, 1ll, (char*)0ull );
		}
		label$728:;
		label$725:;
	}
	label$724:;
	return fb$result$1;
}

static int64 _SUPPORTSOP( int64 OP$1, int64 DTYPE$1 )
{
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$729:;
	{
		uint64 TMP$909$2;
		TMP$909$2 = (uint64)OP$1;
		goto label$732;
		label$733:;
		{
			int64 TMP$910$3;
			if( (DTYPE$1 & 480ll) == 0ll ) goto label$734;
			TMP$910$3 = 24ll;
			goto label$3089;
			label$734:;
			TMP$910$3 = DTYPE$1 & 31ll;
			label$3089:;
			if( *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$910$3 * 56ll)) != 1ll ) goto label$736;
			{
				fb$result$1 = 0ll;
				goto label$730;
			}
			goto label$735;
			label$736:;
			{
				fb$result$1 = -1ll;
				goto label$730;
			}
			label$735:;
		}
		goto label$731;
		label$737:;
		{
			fb$result$1 = 0ll;
			goto label$730;
		}
		goto label$731;
		label$738:;
		{
			fb$result$1 = -1ll;
			goto label$730;
		}
		goto label$731;
		label$739:;
		{
			fb$result$1 = -1ll;
		}
		goto label$731;
		label$732:;
		static const void* tmp$4062[16ll] = {
			&&label$738,
			&&label$739,
			&&label$738,
			&&label$739,
			&&label$738,
			&&label$733,
			&&label$739,
			&&label$739,
			&&label$739,
			&&label$739,
			&&label$739,
			&&label$739,
			&&label$739,
			&&label$738,
			&&label$737,
			&&label$737,
		};
		if( (TMP$909$2 - 52ull) > 15ull ) goto label$739;
		goto *tmp$4062[TMP$909$2 - 52ull];
		label$731:;
	}
	label$730:;
	return fb$result$1;
}

static void _PROCBEGIN( struct $8FBSYMBOL* PROC$1 )
{
	label$740:;
	*(int64*)((uint8*)*(struct $10FB_PROCEXT**)((uint8*)PROC$1 + 208ll) + 32ll) = *(int64*)((uint8*)*(struct $9LEX_TKCTX**)((uint8*)&LEX$ + 844696ll) + 16752ll);
	label$741:;
}

static void _PROCEND( struct $8FBSYMBOL* PROC$1 )
{
	label$742:;
	*(int64*)((uint8*)*(struct $10FB_PROCEXT**)((uint8*)PROC$1 + 208ll) + 40ll) = *(int64*)((uint8*)*(struct $9LEX_TKCTX**)((uint8*)&LEX$ + 844696ll) + 16752ll);
	label$743:;
}

static int64 PARAM_ANALYZE( $11FB_DATATYPE DTYPE$1, struct $8FBSYMBOL* STRUC$1, int64* CPTARG$1, int64* CPTINT$1, int64* CPTFLOAT$1 )
{
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$744:;
	struct $8FBSYMBOL* FLD$1;
	int64 LGT$1;
	__builtin_memset( &LGT$1, 0, 8ll );
	int64 INTCPT$1;
	__builtin_memset( &INTCPT$1, 0, 8ll );
	int64 FLOATCPT$1;
	__builtin_memset( &FLOATCPT$1, 0, 8ll );
	if( *(boolean*)((uint8*)&CTX$ + 416ll) == (boolean)0ll ) goto label$747;
	{
		if( DTYPE$1 == 20ll ) goto label$749;
		{
			int64 TMP$911$3;
			if( (DTYPE$1 & 480ll) == 0ll ) goto label$750;
			TMP$911$3 = 24ll;
			goto label$3090;
			label$750:;
			TMP$911$3 = DTYPE$1 & 31ll;
			label$3090:;
			if( *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$911$3 * 56ll)) != 1ll ) goto label$752;
			{
				if( *CPTFLOAT$1 >= 8ll ) goto label$754;
				{
					*CPTFLOAT$1 = *CPTFLOAT$1 + 1ll;
					fb$result$1 = 1ll;
					goto label$745;
				}
				goto label$753;
				label$754:;
				{
					*CPTARG$1 = *CPTARG$1 + 1ll;
					fb$result$1 = 10ll;
					goto label$745;
				}
				label$753:;
			}
			goto label$751;
			label$752:;
			{
				if( *CPTINT$1 >= 6ll ) goto label$756;
				{
					*CPTINT$1 = *CPTINT$1 + 1ll;
					fb$result$1 = 0ll;
					goto label$745;
				}
				goto label$755;
				label$756:;
				{
					*CPTARG$1 = *CPTARG$1 + 1ll;
					fb$result$1 = 10ll;
					goto label$745;
				}
				label$755:;
			}
			label$751:;
		}
		goto label$748;
		label$749:;
		{
			LGT$1 = *(int64*)((uint8*)STRUC$1 + 80ll);
			if( LGT$1 > (*(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + 736ll) << (1ll & 63ll)) ) goto label$758;
			{
				{
					uint64 TMP$912$5;
					int64 vr$23 = HGETMAGICSTRUCTNUMBER( STRUC$1 );
					TMP$912$5 = (uint64)vr$23;
					goto label$760;
					label$761:;
					{
						if( *CPTINT$1 >= 6ll ) goto label$763;
						{
							*CPTINT$1 = *CPTINT$1 + 1ll;
							fb$result$1 = 0ll;
							goto label$745;
						}
						label$763:;
						label$762:;
					}
					goto label$759;
					label$764:;
					{
						if( *CPTFLOAT$1 >= 8ll ) goto label$766;
						{
							*CPTFLOAT$1 = *CPTFLOAT$1 + 1ll;
							fb$result$1 = 1ll;
							goto label$745;
						}
						label$766:;
						label$765:;
					}
					goto label$759;
					label$767:;
					{
						if( *CPTINT$1 >= 5ll ) goto label$769;
						{
							*CPTINT$1 = *CPTINT$1 + 2ll;
							fb$result$1 = 2ll;
							goto label$745;
						}
						label$769:;
						label$768:;
					}
					goto label$759;
					label$770:;
					{
						if( ((int64)-(*CPTINT$1 < 6ll) & (int64)-(*CPTFLOAT$1 < 8ll)) == 0ll ) goto label$772;
						{
							*CPTINT$1 = *CPTINT$1 + 1ll;
							*CPTFLOAT$1 = *CPTFLOAT$1 + 1ll;
							fb$result$1 = 3ll;
							goto label$745;
						}
						label$772:;
						label$771:;
					}
					goto label$759;
					label$773:;
					{
						if( ((int64)-(*CPTINT$1 < 6ll) & (int64)-(*CPTFLOAT$1 < 8ll)) == 0ll ) goto label$775;
						{
							*CPTFLOAT$1 = *CPTFLOAT$1 + 1ll;
							*CPTINT$1 = *CPTINT$1 + 1ll;
							fb$result$1 = 4ll;
							goto label$745;
						}
						label$775:;
						label$774:;
					}
					goto label$759;
					label$776:;
					{
						if( *CPTFLOAT$1 >= 7ll ) goto label$778;
						{
							*CPTFLOAT$1 = *CPTFLOAT$1 + 2ll;
							fb$result$1 = 5ll;
							goto label$745;
						}
						label$778:;
						label$777:;
					}
					goto label$759;
					label$760:;
					static const void* tmp$4063[10ll] = {
						&&label$761,
						&&label$764,
						&&label$759,
						&&label$759,
						&&label$767,
						&&label$773,
						&&label$759,
						&&label$759,
						&&label$770,
						&&label$776,
					};
					if( (TMP$912$5 - 1ull) > 9ull ) goto label$759;
					goto *tmp$4063[TMP$912$5 - 1ull];
					label$759:;
				}
			}
			label$758:;
			label$757:;
			fb$result$1 = 10ll;
			goto label$745;
		}
		label$748:;
	}
	goto label$746;
	label$747:;
	{
		*CPTARG$1 = *CPTARG$1 + 1ll;
		*CPTINT$1 = *CPTARG$1;
		*CPTFLOAT$1 = *CPTARG$1;
		if( DTYPE$1 == 20ll ) goto label$780;
		{
			int64 TMP$913$3;
			if( *CPTARG$1 <= 4ll ) goto label$782;
			{
				fb$result$1 = 10ll;
				goto label$745;
				label$782:;
			}
			if( (DTYPE$1 & 480ll) == 0ll ) goto label$783;
			TMP$913$3 = 24ll;
			goto label$3091;
			label$783:;
			TMP$913$3 = DTYPE$1 & 31ll;
			label$3091:;
			if( *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$913$3 * 56ll)) != 1ll ) goto label$785;
			{
				fb$result$1 = 1ll;
				goto label$745;
			}
			goto label$784;
			label$785:;
			{
				fb$result$1 = 0ll;
				goto label$745;
			}
			label$784:;
		}
		goto label$779;
		label$780:;
		{
			LGT$1 = *(int64*)((uint8*)STRUC$1 + 80ll);
			if( (((((int64)-(LGT$1 > *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + 736ll)) | (int64)-(LGT$1 == 3ll)) | (int64)-(LGT$1 == 5ll)) | (int64)-(LGT$1 == 6ll)) | (int64)-(LGT$1 == 7ll)) == 0ll ) goto label$787;
			{
				if( *CPTARG$1 <= 4ll ) goto label$789;
				{
					fb$result$1 = 13ll;
					goto label$745;
				}
				goto label$788;
				label$789:;
				{
					fb$result$1 = 12ll;
					goto label$745;
				}
				label$788:;
			}
			label$787:;
			label$786:;
			struct $8FBSYMBOL* vr$84 = SYMBUDTGETFIRSTFIELD( STRUC$1 );
			FLD$1 = vr$84;
			label$790:;
			if( FLD$1 == (struct $8FBSYMBOL*)0ull ) goto label$791;
			{
				int64 TMP$914$4;
				if( (*(int64*)((uint8*)FLD$1 + 56ll) & 480ll) == 0ll ) goto label$792;
				TMP$914$4 = 24ll;
				goto label$3092;
				label$792:;
				TMP$914$4 = *(int64*)((uint8*)FLD$1 + 56ll) & 31ll;
				label$3092:;
				if( *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$914$4 * 56ll)) != 1ll ) goto label$794;
				{
					FLOATCPT$1 = FLOATCPT$1 + 1ll;
				}
				goto label$793;
				label$794:;
				{
					INTCPT$1 = INTCPT$1 + 1ll;
				}
				label$793:;
				struct $8FBSYMBOL* vr$92 = SYMBUDTGETNEXTFIELD( FLD$1 );
				FLD$1 = vr$92;
			}
			goto label$790;
			label$791:;
			if( ((int64)-(FLOATCPT$1 == 1ll) & (int64)-(INTCPT$1 == 0ll)) == 0ll ) goto label$796;
			{
				if( *CPTARG$1 <= 4ll ) goto label$798;
				{
					fb$result$1 = 11ll;
					goto label$745;
				}
				goto label$797;
				label$798:;
				{
					fb$result$1 = 1ll;
					goto label$745;
				}
				label$797:;
			}
			goto label$795;
			label$796:;
			{
				if( *CPTARG$1 <= 4ll ) goto label$800;
				{
					fb$result$1 = 11ll;
					goto label$745;
				}
				goto label$799;
				label$800:;
				{
					fb$result$1 = 0ll;
					goto label$745;
				}
				label$799:;
			}
			label$795:;
		}
		label$779:;
	}
	label$746:;
	label$745:;
	return fb$result$1;
}

static void REG_FILLM( int64 OFS$1, struct $7FBARRAYIiE* LISTREG$1, int64 LGT$1, int64 PREV$1, int64 OFFST$1 )
{
	label$801:;
	{
		uint64 TMP$915$2;
		TMP$915$2 = (uint64)(LGT$1 - OFFST$1);
		goto label$804;
		label$805:;
		{
			FBSTRING TMP$916$3;
			FBSTRING TMP$917$3;
			FBSTRING TMP$918$3;
			FBSTRING TMP$919$3;
			__builtin_memset( &TMP$919$3, 0, 24ll );
			FBSTRING* vr$9 = fb_LongintToStr( OFS$1 + OFFST$1 );
			__builtin_memset( &TMP$916$3, 0, 24ll );
			FBSTRING* vr$12 = fb_StrConcat( &TMP$916$3, (void*)"mov ", 5ll, (void*)vr$9, -1ll );
			__builtin_memset( &TMP$917$3, 0, 24ll );
			FBSTRING* vr$15 = fb_StrConcat( &TMP$917$3, (void*)vr$12, -1ll, (void*)"[rbp], ", 8ll );
			__builtin_memset( &TMP$918$3, 0, 24ll );
			FBSTRING* vr$18 = fb_StrConcat( &TMP$918$3, (void*)vr$15, -1ll, *(void**)((int64)(char**)REGSTRB$ + ((int64)*(int32*)(((*(int64*)((uint8*)&CTX$ + 168ll) - PREV$1) << (2ll & 63ll)) + *(int64*)LISTREG$1) << (3ll & 63ll))), 0ll );
			fb_StrAssign( (void*)&TMP$919$3, -1ll, (void*)vr$18, -1ll, 0 );
			HWRITEASM64( &TMP$919$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$919$3 );
		}
		goto label$803;
		label$806:;
		{
			FBSTRING TMP$920$3;
			FBSTRING TMP$921$3;
			FBSTRING TMP$922$3;
			FBSTRING TMP$923$3;
			__builtin_memset( &TMP$923$3, 0, 24ll );
			FBSTRING* vr$30 = fb_LongintToStr( OFS$1 + OFFST$1 );
			__builtin_memset( &TMP$920$3, 0, 24ll );
			FBSTRING* vr$33 = fb_StrConcat( &TMP$920$3, (void*)"mov ", 5ll, (void*)vr$30, -1ll );
			__builtin_memset( &TMP$921$3, 0, 24ll );
			FBSTRING* vr$36 = fb_StrConcat( &TMP$921$3, (void*)vr$33, -1ll, (void*)"[rbp], ", 8ll );
			__builtin_memset( &TMP$922$3, 0, 24ll );
			FBSTRING* vr$39 = fb_StrConcat( &TMP$922$3, (void*)vr$36, -1ll, *(void**)((int64)(char**)REGSTRW$ + ((int64)*(int32*)(((*(int64*)((uint8*)&CTX$ + 168ll) - PREV$1) << (2ll & 63ll)) + *(int64*)LISTREG$1) << (3ll & 63ll))), 0ll );
			fb_StrAssign( (void*)&TMP$923$3, -1ll, (void*)vr$39, -1ll, 0 );
			HWRITEASM64( &TMP$923$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$923$3 );
		}
		goto label$803;
		label$807:;
		{
			FBSTRING TMP$924$3;
			FBSTRING TMP$925$3;
			FBSTRING TMP$926$3;
			FBSTRING TMP$927$3;
			FBSTRING TMP$930$3;
			FBSTRING TMP$931$3;
			FBSTRING TMP$932$3;
			FBSTRING TMP$933$3;
			FBSTRING TMP$934$3;
			FBSTRING TMP$935$3;
			FBSTRING TMP$936$3;
			__builtin_memset( &TMP$927$3, 0, 24ll );
			FBSTRING* vr$51 = fb_LongintToStr( OFS$1 + OFFST$1 );
			__builtin_memset( &TMP$924$3, 0, 24ll );
			FBSTRING* vr$54 = fb_StrConcat( &TMP$924$3, (void*)"mov ", 5ll, (void*)vr$51, -1ll );
			__builtin_memset( &TMP$925$3, 0, 24ll );
			FBSTRING* vr$57 = fb_StrConcat( &TMP$925$3, (void*)vr$54, -1ll, (void*)"[rbp], ", 8ll );
			__builtin_memset( &TMP$926$3, 0, 24ll );
			FBSTRING* vr$60 = fb_StrConcat( &TMP$926$3, (void*)vr$57, -1ll, *(void**)((int64)(char**)REGSTRW$ + ((int64)*(int32*)(((*(int64*)((uint8*)&CTX$ + 168ll) - PREV$1) << (2ll & 63ll)) + *(int64*)LISTREG$1) << (3ll & 63ll))), 0ll );
			fb_StrAssign( (void*)&TMP$927$3, -1ll, (void*)vr$60, -1ll, 0 );
			HWRITEASM64( &TMP$927$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$927$3 );
			__builtin_memset( &TMP$932$3, 0, 24ll );
			__builtin_memset( &TMP$930$3, 0, 24ll );
			FBSTRING* vr$73 = fb_StrConcat( &TMP$930$3, (void*)"shr ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)(((*(int64*)((uint8*)&CTX$ + 168ll) - PREV$1) << (2ll & 63ll)) + *(int64*)LISTREG$1) << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$931$3, 0, 24ll );
			FBSTRING* vr$76 = fb_StrConcat( &TMP$931$3, (void*)vr$73, -1ll, (void*)", 16", 5ll );
			fb_StrAssign( (void*)&TMP$932$3, -1ll, (void*)vr$76, -1ll, 0 );
			HWRITEASM64( &TMP$932$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$932$3 );
			__builtin_memset( &TMP$936$3, 0, 24ll );
			FBSTRING* vr$89 = fb_LongintToStr( (OFS$1 + OFFST$1) + 2ll );
			__builtin_memset( &TMP$933$3, 0, 24ll );
			FBSTRING* vr$92 = fb_StrConcat( &TMP$933$3, (void*)"mov ", 5ll, (void*)vr$89, -1ll );
			__builtin_memset( &TMP$934$3, 0, 24ll );
			FBSTRING* vr$95 = fb_StrConcat( &TMP$934$3, (void*)vr$92, -1ll, (void*)"[rbp], ", 8ll );
			__builtin_memset( &TMP$935$3, 0, 24ll );
			FBSTRING* vr$98 = fb_StrConcat( &TMP$935$3, (void*)vr$95, -1ll, *(void**)((int64)(char**)REGSTRB$ + ((int64)*(int32*)(((*(int64*)((uint8*)&CTX$ + 168ll) - PREV$1) << (2ll & 63ll)) + *(int64*)LISTREG$1) << (3ll & 63ll))), 0ll );
			fb_StrAssign( (void*)&TMP$936$3, -1ll, (void*)vr$98, -1ll, 0 );
			HWRITEASM64( &TMP$936$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$936$3 );
		}
		goto label$803;
		label$808:;
		{
			FBSTRING TMP$937$3;
			FBSTRING TMP$938$3;
			FBSTRING TMP$939$3;
			FBSTRING TMP$940$3;
			__builtin_memset( &TMP$940$3, 0, 24ll );
			FBSTRING* vr$110 = fb_LongintToStr( OFS$1 + OFFST$1 );
			__builtin_memset( &TMP$937$3, 0, 24ll );
			FBSTRING* vr$113 = fb_StrConcat( &TMP$937$3, (void*)"mov ", 5ll, (void*)vr$110, -1ll );
			__builtin_memset( &TMP$938$3, 0, 24ll );
			FBSTRING* vr$116 = fb_StrConcat( &TMP$938$3, (void*)vr$113, -1ll, (void*)"[rbp], ", 8ll );
			__builtin_memset( &TMP$939$3, 0, 24ll );
			FBSTRING* vr$119 = fb_StrConcat( &TMP$939$3, (void*)vr$116, -1ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)*(int32*)(((*(int64*)((uint8*)&CTX$ + 168ll) - PREV$1) << (2ll & 63ll)) + *(int64*)LISTREG$1) << (3ll & 63ll))), 0ll );
			fb_StrAssign( (void*)&TMP$940$3, -1ll, (void*)vr$119, -1ll, 0 );
			HWRITEASM64( &TMP$940$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$940$3 );
		}
		goto label$803;
		label$809:;
		{
			FBSTRING TMP$941$3;
			FBSTRING TMP$942$3;
			FBSTRING TMP$943$3;
			FBSTRING TMP$944$3;
			FBSTRING TMP$946$3;
			FBSTRING TMP$947$3;
			FBSTRING TMP$948$3;
			FBSTRING TMP$949$3;
			FBSTRING TMP$950$3;
			FBSTRING TMP$951$3;
			FBSTRING TMP$952$3;
			__builtin_memset( &TMP$944$3, 0, 24ll );
			FBSTRING* vr$131 = fb_LongintToStr( OFS$1 + OFFST$1 );
			__builtin_memset( &TMP$941$3, 0, 24ll );
			FBSTRING* vr$134 = fb_StrConcat( &TMP$941$3, (void*)"mov ", 5ll, (void*)vr$131, -1ll );
			__builtin_memset( &TMP$942$3, 0, 24ll );
			FBSTRING* vr$137 = fb_StrConcat( &TMP$942$3, (void*)vr$134, -1ll, (void*)"[rbp], ", 8ll );
			__builtin_memset( &TMP$943$3, 0, 24ll );
			FBSTRING* vr$140 = fb_StrConcat( &TMP$943$3, (void*)vr$137, -1ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)*(int32*)(((*(int64*)((uint8*)&CTX$ + 168ll) - PREV$1) << (2ll & 63ll)) + *(int64*)LISTREG$1) << (3ll & 63ll))), 0ll );
			fb_StrAssign( (void*)&TMP$944$3, -1ll, (void*)vr$140, -1ll, 0 );
			HWRITEASM64( &TMP$944$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$944$3 );
			__builtin_memset( &TMP$948$3, 0, 24ll );
			__builtin_memset( &TMP$946$3, 0, 24ll );
			FBSTRING* vr$153 = fb_StrConcat( &TMP$946$3, (void*)"shr ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)(((*(int64*)((uint8*)&CTX$ + 168ll) - PREV$1) << (2ll & 63ll)) + *(int64*)LISTREG$1) << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$947$3, 0, 24ll );
			FBSTRING* vr$156 = fb_StrConcat( &TMP$947$3, (void*)vr$153, -1ll, (void*)", 32", 5ll );
			fb_StrAssign( (void*)&TMP$948$3, -1ll, (void*)vr$156, -1ll, 0 );
			HWRITEASM64( &TMP$948$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$948$3 );
			__builtin_memset( &TMP$952$3, 0, 24ll );
			FBSTRING* vr$169 = fb_LongintToStr( (OFS$1 + OFFST$1) + 4ll );
			__builtin_memset( &TMP$949$3, 0, 24ll );
			FBSTRING* vr$172 = fb_StrConcat( &TMP$949$3, (void*)"mov ", 5ll, (void*)vr$169, -1ll );
			__builtin_memset( &TMP$950$3, 0, 24ll );
			FBSTRING* vr$175 = fb_StrConcat( &TMP$950$3, (void*)vr$172, -1ll, (void*)"[rbp], ", 8ll );
			__builtin_memset( &TMP$951$3, 0, 24ll );
			FBSTRING* vr$178 = fb_StrConcat( &TMP$951$3, (void*)vr$175, -1ll, *(void**)((int64)(char**)REGSTRB$ + ((int64)*(int32*)(((*(int64*)((uint8*)&CTX$ + 168ll) - PREV$1) << (2ll & 63ll)) + *(int64*)LISTREG$1) << (3ll & 63ll))), 0ll );
			fb_StrAssign( (void*)&TMP$952$3, -1ll, (void*)vr$178, -1ll, 0 );
			HWRITEASM64( &TMP$952$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$952$3 );
		}
		goto label$803;
		label$810:;
		{
			FBSTRING TMP$953$3;
			FBSTRING TMP$954$3;
			FBSTRING TMP$955$3;
			FBSTRING TMP$956$3;
			FBSTRING TMP$957$3;
			FBSTRING TMP$958$3;
			FBSTRING TMP$959$3;
			FBSTRING TMP$960$3;
			FBSTRING TMP$961$3;
			FBSTRING TMP$962$3;
			FBSTRING TMP$963$3;
			__builtin_memset( &TMP$956$3, 0, 24ll );
			FBSTRING* vr$190 = fb_LongintToStr( OFS$1 + OFFST$1 );
			__builtin_memset( &TMP$953$3, 0, 24ll );
			FBSTRING* vr$193 = fb_StrConcat( &TMP$953$3, (void*)"mov ", 5ll, (void*)vr$190, -1ll );
			__builtin_memset( &TMP$954$3, 0, 24ll );
			FBSTRING* vr$196 = fb_StrConcat( &TMP$954$3, (void*)vr$193, -1ll, (void*)"[rbp], ", 8ll );
			__builtin_memset( &TMP$955$3, 0, 24ll );
			FBSTRING* vr$199 = fb_StrConcat( &TMP$955$3, (void*)vr$196, -1ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)*(int32*)(((*(int64*)((uint8*)&CTX$ + 168ll) - PREV$1) << (2ll & 63ll)) + *(int64*)LISTREG$1) << (3ll & 63ll))), 0ll );
			fb_StrAssign( (void*)&TMP$956$3, -1ll, (void*)vr$199, -1ll, 0 );
			HWRITEASM64( &TMP$956$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$956$3 );
			__builtin_memset( &TMP$959$3, 0, 24ll );
			__builtin_memset( &TMP$957$3, 0, 24ll );
			FBSTRING* vr$212 = fb_StrConcat( &TMP$957$3, (void*)"shr ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)(((*(int64*)((uint8*)&CTX$ + 168ll) - PREV$1) << (2ll & 63ll)) + *(int64*)LISTREG$1) << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$958$3, 0, 24ll );
			FBSTRING* vr$215 = fb_StrConcat( &TMP$958$3, (void*)vr$212, -1ll, (void*)", 32", 5ll );
			fb_StrAssign( (void*)&TMP$959$3, -1ll, (void*)vr$215, -1ll, 0 );
			HWRITEASM64( &TMP$959$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$959$3 );
			__builtin_memset( &TMP$963$3, 0, 24ll );
			FBSTRING* vr$228 = fb_LongintToStr( (OFS$1 + OFFST$1) + 4ll );
			__builtin_memset( &TMP$960$3, 0, 24ll );
			FBSTRING* vr$231 = fb_StrConcat( &TMP$960$3, (void*)"mov ", 5ll, (void*)vr$228, -1ll );
			__builtin_memset( &TMP$961$3, 0, 24ll );
			FBSTRING* vr$234 = fb_StrConcat( &TMP$961$3, (void*)vr$231, -1ll, (void*)"[rbp], ", 8ll );
			__builtin_memset( &TMP$962$3, 0, 24ll );
			FBSTRING* vr$237 = fb_StrConcat( &TMP$962$3, (void*)vr$234, -1ll, *(void**)((int64)(char**)REGSTRW$ + ((int64)*(int32*)(((*(int64*)((uint8*)&CTX$ + 168ll) - PREV$1) << (2ll & 63ll)) + *(int64*)LISTREG$1) << (3ll & 63ll))), 0ll );
			fb_StrAssign( (void*)&TMP$963$3, -1ll, (void*)vr$237, -1ll, 0 );
			HWRITEASM64( &TMP$963$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$963$3 );
		}
		goto label$803;
		label$811:;
		{
			FBSTRING TMP$964$3;
			FBSTRING TMP$965$3;
			FBSTRING TMP$966$3;
			FBSTRING TMP$967$3;
			FBSTRING TMP$968$3;
			FBSTRING TMP$969$3;
			FBSTRING TMP$970$3;
			FBSTRING TMP$971$3;
			FBSTRING TMP$972$3;
			FBSTRING TMP$973$3;
			FBSTRING TMP$974$3;
			FBSTRING TMP$975$3;
			FBSTRING TMP$976$3;
			FBSTRING TMP$977$3;
			FBSTRING TMP$978$3;
			FBSTRING TMP$979$3;
			FBSTRING TMP$980$3;
			FBSTRING TMP$981$3;
			__builtin_memset( &TMP$967$3, 0, 24ll );
			FBSTRING* vr$249 = fb_LongintToStr( OFS$1 + OFFST$1 );
			__builtin_memset( &TMP$964$3, 0, 24ll );
			FBSTRING* vr$252 = fb_StrConcat( &TMP$964$3, (void*)"mov ", 5ll, (void*)vr$249, -1ll );
			__builtin_memset( &TMP$965$3, 0, 24ll );
			FBSTRING* vr$255 = fb_StrConcat( &TMP$965$3, (void*)vr$252, -1ll, (void*)"[rbp], ", 8ll );
			__builtin_memset( &TMP$966$3, 0, 24ll );
			FBSTRING* vr$258 = fb_StrConcat( &TMP$966$3, (void*)vr$255, -1ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)*(int32*)(((*(int64*)((uint8*)&CTX$ + 168ll) - PREV$1) << (2ll & 63ll)) + *(int64*)LISTREG$1) << (3ll & 63ll))), 0ll );
			fb_StrAssign( (void*)&TMP$967$3, -1ll, (void*)vr$258, -1ll, 0 );
			HWRITEASM64( &TMP$967$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$967$3 );
			__builtin_memset( &TMP$970$3, 0, 24ll );
			__builtin_memset( &TMP$968$3, 0, 24ll );
			FBSTRING* vr$271 = fb_StrConcat( &TMP$968$3, (void*)"shr ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)(((*(int64*)((uint8*)&CTX$ + 168ll) - PREV$1) << (2ll & 63ll)) + *(int64*)LISTREG$1) << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$969$3, 0, 24ll );
			FBSTRING* vr$274 = fb_StrConcat( &TMP$969$3, (void*)vr$271, -1ll, (void*)", 32", 5ll );
			fb_StrAssign( (void*)&TMP$970$3, -1ll, (void*)vr$274, -1ll, 0 );
			HWRITEASM64( &TMP$970$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$970$3 );
			__builtin_memset( &TMP$974$3, 0, 24ll );
			FBSTRING* vr$287 = fb_LongintToStr( (OFS$1 + OFFST$1) + 4ll );
			__builtin_memset( &TMP$971$3, 0, 24ll );
			FBSTRING* vr$290 = fb_StrConcat( &TMP$971$3, (void*)"mov ", 5ll, (void*)vr$287, -1ll );
			__builtin_memset( &TMP$972$3, 0, 24ll );
			FBSTRING* vr$293 = fb_StrConcat( &TMP$972$3, (void*)vr$290, -1ll, (void*)"[rbp], ", 8ll );
			__builtin_memset( &TMP$973$3, 0, 24ll );
			FBSTRING* vr$296 = fb_StrConcat( &TMP$973$3, (void*)vr$293, -1ll, *(void**)((int64)(char**)REGSTRW$ + ((int64)*(int32*)(((*(int64*)((uint8*)&CTX$ + 168ll) - PREV$1) << (2ll & 63ll)) + *(int64*)LISTREG$1) << (3ll & 63ll))), 0ll );
			fb_StrAssign( (void*)&TMP$974$3, -1ll, (void*)vr$296, -1ll, 0 );
			HWRITEASM64( &TMP$974$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$974$3 );
			__builtin_memset( &TMP$977$3, 0, 24ll );
			__builtin_memset( &TMP$975$3, 0, 24ll );
			FBSTRING* vr$309 = fb_StrConcat( &TMP$975$3, (void*)"shr ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)(((*(int64*)((uint8*)&CTX$ + 168ll) - PREV$1) << (2ll & 63ll)) + *(int64*)LISTREG$1) << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$976$3, 0, 24ll );
			FBSTRING* vr$312 = fb_StrConcat( &TMP$976$3, (void*)vr$309, -1ll, (void*)", 16", 5ll );
			fb_StrAssign( (void*)&TMP$977$3, -1ll, (void*)vr$312, -1ll, 0 );
			HWRITEASM64( &TMP$977$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$977$3 );
			__builtin_memset( &TMP$981$3, 0, 24ll );
			FBSTRING* vr$325 = fb_LongintToStr( (OFS$1 + OFFST$1) + 6ll );
			__builtin_memset( &TMP$978$3, 0, 24ll );
			FBSTRING* vr$328 = fb_StrConcat( &TMP$978$3, (void*)"mov ", 5ll, (void*)vr$325, -1ll );
			__builtin_memset( &TMP$979$3, 0, 24ll );
			FBSTRING* vr$331 = fb_StrConcat( &TMP$979$3, (void*)vr$328, -1ll, (void*)"[rbp], ", 8ll );
			__builtin_memset( &TMP$980$3, 0, 24ll );
			FBSTRING* vr$334 = fb_StrConcat( &TMP$980$3, (void*)vr$331, -1ll, *(void**)((int64)(char**)REGSTRB$ + ((int64)*(int32*)(((*(int64*)((uint8*)&CTX$ + 168ll) - PREV$1) << (2ll & 63ll)) + *(int64*)LISTREG$1) << (3ll & 63ll))), 0ll );
			fb_StrAssign( (void*)&TMP$981$3, -1ll, (void*)vr$334, -1ll, 0 );
			HWRITEASM64( &TMP$981$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$981$3 );
		}
		goto label$803;
		label$812:;
		{
			FBSTRING TMP$982$3;
			FBSTRING TMP$983$3;
			FBSTRING TMP$984$3;
			FBSTRING TMP$985$3;
			__builtin_memset( &TMP$985$3, 0, 24ll );
			FBSTRING* vr$346 = fb_LongintToStr( OFS$1 + OFFST$1 );
			__builtin_memset( &TMP$982$3, 0, 24ll );
			FBSTRING* vr$349 = fb_StrConcat( &TMP$982$3, (void*)"mov ", 5ll, (void*)vr$346, -1ll );
			__builtin_memset( &TMP$983$3, 0, 24ll );
			FBSTRING* vr$352 = fb_StrConcat( &TMP$983$3, (void*)vr$349, -1ll, (void*)"[rbp], ", 8ll );
			__builtin_memset( &TMP$984$3, 0, 24ll );
			FBSTRING* vr$355 = fb_StrConcat( &TMP$984$3, (void*)vr$352, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)(((*(int64*)((uint8*)&CTX$ + 168ll) - PREV$1) << (2ll & 63ll)) + *(int64*)LISTREG$1) << (3ll & 63ll))), 0ll );
			fb_StrAssign( (void*)&TMP$985$3, -1ll, (void*)vr$355, -1ll, 0 );
			HWRITEASM64( &TMP$985$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$985$3 );
		}
		goto label$803;
		label$804:;
		static const void* tmp$4064[8ll] = {
			&&label$805,
			&&label$806,
			&&label$807,
			&&label$808,
			&&label$809,
			&&label$810,
			&&label$811,
			&&label$812,
		};
		if( (TMP$915$2 - 1ull) > 7ull ) goto label$803;
		goto *tmp$4064[TMP$915$2 - 1ull];
		label$803:;
	}
	label$802:;
}

static void REG_FILLR( int64 LGT$1, FBSTRING* SRC$1, int64 CPTINT$1, struct $7FBARRAYIiE* LISTREG$1, int32 REG2$1 )
{
	label$813:;
	char* REGSRC$1;
	__builtin_memset( &REGSRC$1, 0, 8ll );
	FBSTRING REGDST$1;
	fb_StrInit( (void*)&REGDST$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)LISTREG$1) << (3ll & 63ll))), 0ll, 0 );
	if( LGT$1 <= 8ll ) goto label$816;
	{
		LGT$1 = LGT$1 + -8ll;
		if( (uint64)(int64)*(uint8*)*(char**)SRC$1 != 45ull ) goto label$818;
		{
			FBSTRING TMP$986$3;
			FBSTRING* vr$11 = fb_StrAllocTempDescZEx( (char*)"[rbp]", 5ll );
			int64 vr$12 = fb_StrInstr( 1ll, (FBSTRING*)SRC$1, (FBSTRING*)vr$11 );
			FBSTRING* vr$14 = fb_LEFT( (FBSTRING*)SRC$1, vr$12 + -1ll );
			int32 vr$15 = fb_VALINT( (FBSTRING*)vr$14 );
			FBSTRING* vr$18 = fb_LongintToStr( (int64)vr$15 + 8ll );
			__builtin_memset( &TMP$986$3, 0, 24ll );
			FBSTRING* vr$21 = fb_StrConcat( &TMP$986$3, (void*)vr$18, -1ll, (void*)"[rbp]", 6ll );
			fb_StrAssign( (void*)SRC$1, -1ll, (void*)vr$21, -1ll, 0 );
		}
		goto label$817;
		label$818:;
		{
			FBSTRING TMP$988$3;
			FBSTRING TMP$989$3;
			FBSTRING TMP$991$3;
			__builtin_memset( &TMP$989$3, 0, 24ll );
			__builtin_memset( &TMP$988$3, 0, 24ll );
			FBSTRING* vr$25 = fb_StrConcat( &TMP$988$3, (void*)"lea rax, ", 10ll, (void*)SRC$1, -1ll );
			fb_StrAssign( (void*)&TMP$989$3, -1ll, (void*)vr$25, -1ll, 0 );
			HWRITEASM64( &TMP$989$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$989$3 );
			__builtin_memset( &TMP$991$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$991$3, -1ll, (void*)"add rax, 8", 11ll, 0 );
			HWRITEASM64( &TMP$991$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$991$3 );
			fb_StrAssign( (void*)SRC$1, -1ll, (void*)"[rax]", 6ll, 0 );
		}
		label$817:;
	}
	label$816:;
	label$815:;
	if( ((((int64)-(LGT$1 != 1ll) & (int64)-(LGT$1 != 2ll)) & (int64)-(LGT$1 != 4ll)) & (int64)-(LGT$1 != 8ll)) == 0ll ) goto label$820;
	{
		char* vr$40 = REG_TEMPO(  );
		REGSRC$1 = vr$40;
	}
	label$820:;
	label$819:;
	REG_TRANSFER( *(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)LISTREG$1), REG2$1 );
	{
		uint64 TMP$993$2;
		TMP$993$2 = (uint64)LGT$1;
		goto label$822;
		label$823:;
		{
			FBSTRING TMP$996$3;
			FBSTRING TMP$997$3;
			FBSTRING TMP$998$3;
			FBSTRING TMP$999$3;
			__builtin_memset( &TMP$999$3, 0, 24ll );
			__builtin_memset( &TMP$996$3, 0, 24ll );
			FBSTRING* vr$48 = fb_StrConcat( &TMP$996$3, (void*)"movzx ", 7ll, (void*)&REGDST$1, -1ll );
			__builtin_memset( &TMP$997$3, 0, 24ll );
			FBSTRING* vr$51 = fb_StrConcat( &TMP$997$3, (void*)vr$48, -1ll, (void*)", BYTE PTR ", 12ll );
			__builtin_memset( &TMP$998$3, 0, 24ll );
			FBSTRING* vr$54 = fb_StrConcat( &TMP$998$3, (void*)vr$51, -1ll, (void*)SRC$1, -1ll );
			fb_StrAssign( (void*)&TMP$999$3, -1ll, (void*)vr$54, -1ll, 0 );
			HWRITEASM64( &TMP$999$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$999$3 );
		}
		goto label$821;
		label$824:;
		{
			FBSTRING TMP$1001$3;
			FBSTRING TMP$1002$3;
			FBSTRING TMP$1003$3;
			FBSTRING TMP$1004$3;
			__builtin_memset( &TMP$1004$3, 0, 24ll );
			__builtin_memset( &TMP$1001$3, 0, 24ll );
			FBSTRING* vr$62 = fb_StrConcat( &TMP$1001$3, (void*)"movzx ", 7ll, (void*)&REGDST$1, -1ll );
			__builtin_memset( &TMP$1002$3, 0, 24ll );
			FBSTRING* vr$65 = fb_StrConcat( &TMP$1002$3, (void*)vr$62, -1ll, (void*)", WORD PTR ", 12ll );
			__builtin_memset( &TMP$1003$3, 0, 24ll );
			FBSTRING* vr$68 = fb_StrConcat( &TMP$1003$3, (void*)vr$65, -1ll, (void*)SRC$1, -1ll );
			fb_StrAssign( (void*)&TMP$1004$3, -1ll, (void*)vr$68, -1ll, 0 );
			HWRITEASM64( &TMP$1004$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1004$3 );
		}
		goto label$821;
		label$825:;
		{
			FBSTRING TMP$1005$3;
			FBSTRING TMP$1006$3;
			FBSTRING TMP$1007$3;
			FBSTRING TMP$1008$3;
			FBSTRING TMP$1010$3;
			FBSTRING TMP$1011$3;
			FBSTRING TMP$1012$3;
			FBSTRING TMP$1013$3;
			FBSTRING TMP$1014$3;
			FBSTRING TMP$1016$3;
			FBSTRING TMP$1017$3;
			FBSTRING TMP$1018$3;
			FBSTRING TMP$1020$3;
			FBSTRING TMP$1023$3;
			FBSTRING TMP$1024$3;
			FBSTRING TMP$1025$3;
			__builtin_memset( &TMP$1008$3, 0, 24ll );
			__builtin_memset( &TMP$1005$3, 0, 24ll );
			FBSTRING* vr$75 = fb_StrConcat( &TMP$1005$3, (void*)"lea ", 5ll, (void*)REGSRC$1, 0ll );
			__builtin_memset( &TMP$1006$3, 0, 24ll );
			FBSTRING* vr$78 = fb_StrConcat( &TMP$1006$3, (void*)vr$75, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$1007$3, 0, 24ll );
			FBSTRING* vr$81 = fb_StrConcat( &TMP$1007$3, (void*)vr$78, -1ll, (void*)SRC$1, -1ll );
			fb_StrAssign( (void*)&TMP$1008$3, -1ll, (void*)vr$81, -1ll, 0 );
			HWRITEASM64( &TMP$1008$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1008$3 );
			__builtin_memset( &TMP$1014$3, 0, 24ll );
			__builtin_memset( &TMP$1010$3, 0, 24ll );
			FBSTRING* vr$89 = fb_StrConcat( &TMP$1010$3, (void*)"movzx ", 7ll, (void*)&REGDST$1, -1ll );
			__builtin_memset( &TMP$1011$3, 0, 24ll );
			FBSTRING* vr$92 = fb_StrConcat( &TMP$1011$3, (void*)vr$89, -1ll, (void*)", WORD PTR [", 13ll );
			__builtin_memset( &TMP$1012$3, 0, 24ll );
			FBSTRING* vr$95 = fb_StrConcat( &TMP$1012$3, (void*)vr$92, -1ll, (void*)REGSRC$1, 0ll );
			__builtin_memset( &TMP$1013$3, 0, 24ll );
			FBSTRING* vr$98 = fb_StrConcat( &TMP$1013$3, (void*)vr$95, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)&TMP$1014$3, -1ll, (void*)vr$98, -1ll, 0 );
			HWRITEASM64( &TMP$1014$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1014$3 );
			__builtin_memset( &TMP$1018$3, 0, 24ll );
			__builtin_memset( &TMP$1016$3, 0, 24ll );
			FBSTRING* vr$105 = fb_StrConcat( &TMP$1016$3, (void*)"movzx eax, BYTE PTR 2[", 23ll, (void*)REGSRC$1, 0ll );
			__builtin_memset( &TMP$1017$3, 0, 24ll );
			FBSTRING* vr$108 = fb_StrConcat( &TMP$1017$3, (void*)vr$105, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)&TMP$1018$3, -1ll, (void*)vr$108, -1ll, 0 );
			HWRITEASM64( &TMP$1018$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1018$3 );
			__builtin_memset( &TMP$1020$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$1020$3, -1ll, (void*)"shl rax, 16", 12ll, 0 );
			HWRITEASM64( &TMP$1020$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1020$3 );
			__builtin_memset( &TMP$1025$3, 0, 24ll );
			__builtin_memset( &TMP$1023$3, 0, 24ll );
			FBSTRING* vr$120 = fb_StrConcat( &TMP$1023$3, (void*)"or ", 4ll, (void*)&REGDST$1, -1ll );
			__builtin_memset( &TMP$1024$3, 0, 24ll );
			FBSTRING* vr$123 = fb_StrConcat( &TMP$1024$3, (void*)vr$120, -1ll, (void*)", rax", 6ll );
			fb_StrAssign( (void*)&TMP$1025$3, -1ll, (void*)vr$123, -1ll, 0 );
			HWRITEASM64( &TMP$1025$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1025$3 );
		}
		goto label$821;
		label$826:;
		{
			FBSTRING TMP$1027$3;
			FBSTRING TMP$1028$3;
			FBSTRING TMP$1029$3;
			FBSTRING TMP$1030$3;
			__builtin_memset( &TMP$1030$3, 0, 24ll );
			__builtin_memset( &TMP$1027$3, 0, 24ll );
			FBSTRING* vr$135 = fb_StrConcat( &TMP$1027$3, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)*(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)LISTREG$1) << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$1028$3, 0, 24ll );
			FBSTRING* vr$138 = fb_StrConcat( &TMP$1028$3, (void*)vr$135, -1ll, (void*)", DWORD PTR ", 13ll );
			__builtin_memset( &TMP$1029$3, 0, 24ll );
			FBSTRING* vr$141 = fb_StrConcat( &TMP$1029$3, (void*)vr$138, -1ll, (void*)SRC$1, -1ll );
			fb_StrAssign( (void*)&TMP$1030$3, -1ll, (void*)vr$141, -1ll, 0 );
			HWRITEASM64( &TMP$1030$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1030$3 );
		}
		goto label$821;
		label$827:;
		{
			FBSTRING TMP$1031$3;
			FBSTRING TMP$1032$3;
			FBSTRING TMP$1033$3;
			FBSTRING TMP$1034$3;
			FBSTRING TMP$1036$3;
			FBSTRING TMP$1037$3;
			FBSTRING TMP$1038$3;
			FBSTRING TMP$1039$3;
			FBSTRING TMP$1040$3;
			FBSTRING TMP$1042$3;
			FBSTRING TMP$1043$3;
			FBSTRING TMP$1044$3;
			FBSTRING TMP$1046$3;
			FBSTRING TMP$1047$3;
			FBSTRING TMP$1048$3;
			FBSTRING TMP$1049$3;
			__builtin_memset( &TMP$1034$3, 0, 24ll );
			__builtin_memset( &TMP$1031$3, 0, 24ll );
			FBSTRING* vr$148 = fb_StrConcat( &TMP$1031$3, (void*)"lea ", 5ll, (void*)REGSRC$1, 0ll );
			__builtin_memset( &TMP$1032$3, 0, 24ll );
			FBSTRING* vr$151 = fb_StrConcat( &TMP$1032$3, (void*)vr$148, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$1033$3, 0, 24ll );
			FBSTRING* vr$154 = fb_StrConcat( &TMP$1033$3, (void*)vr$151, -1ll, (void*)SRC$1, -1ll );
			fb_StrAssign( (void*)&TMP$1034$3, -1ll, (void*)vr$154, -1ll, 0 );
			HWRITEASM64( &TMP$1034$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1034$3 );
			__builtin_memset( &TMP$1040$3, 0, 24ll );
			__builtin_memset( &TMP$1036$3, 0, 24ll );
			FBSTRING* vr$166 = fb_StrConcat( &TMP$1036$3, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)*(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)LISTREG$1) << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$1037$3, 0, 24ll );
			FBSTRING* vr$169 = fb_StrConcat( &TMP$1037$3, (void*)vr$166, -1ll, (void*)", DWORD PTR [", 14ll );
			__builtin_memset( &TMP$1038$3, 0, 24ll );
			FBSTRING* vr$172 = fb_StrConcat( &TMP$1038$3, (void*)vr$169, -1ll, (void*)REGSRC$1, 0ll );
			__builtin_memset( &TMP$1039$3, 0, 24ll );
			FBSTRING* vr$175 = fb_StrConcat( &TMP$1039$3, (void*)vr$172, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)&TMP$1040$3, -1ll, (void*)vr$175, -1ll, 0 );
			HWRITEASM64( &TMP$1040$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1040$3 );
			__builtin_memset( &TMP$1044$3, 0, 24ll );
			__builtin_memset( &TMP$1042$3, 0, 24ll );
			FBSTRING* vr$182 = fb_StrConcat( &TMP$1042$3, (void*)"movzx eax, BYTE PTR 4[", 23ll, (void*)REGSRC$1, 0ll );
			__builtin_memset( &TMP$1043$3, 0, 24ll );
			FBSTRING* vr$185 = fb_StrConcat( &TMP$1043$3, (void*)vr$182, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)&TMP$1044$3, -1ll, (void*)vr$185, -1ll, 0 );
			HWRITEASM64( &TMP$1044$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1044$3 );
			__builtin_memset( &TMP$1046$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$1046$3, -1ll, (void*)"shl rax, 32", 12ll, 0 );
			HWRITEASM64( &TMP$1046$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1046$3 );
			__builtin_memset( &TMP$1049$3, 0, 24ll );
			__builtin_memset( &TMP$1047$3, 0, 24ll );
			FBSTRING* vr$197 = fb_StrConcat( &TMP$1047$3, (void*)"or ", 4ll, (void*)&REGDST$1, -1ll );
			__builtin_memset( &TMP$1048$3, 0, 24ll );
			FBSTRING* vr$200 = fb_StrConcat( &TMP$1048$3, (void*)vr$197, -1ll, (void*)", rax", 6ll );
			fb_StrAssign( (void*)&TMP$1049$3, -1ll, (void*)vr$200, -1ll, 0 );
			HWRITEASM64( &TMP$1049$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1049$3 );
		}
		goto label$821;
		label$828:;
		{
			FBSTRING TMP$1050$3;
			FBSTRING TMP$1051$3;
			FBSTRING TMP$1052$3;
			FBSTRING TMP$1053$3;
			FBSTRING TMP$1054$3;
			FBSTRING TMP$1055$3;
			FBSTRING TMP$1056$3;
			FBSTRING TMP$1057$3;
			FBSTRING TMP$1058$3;
			FBSTRING TMP$1060$3;
			FBSTRING TMP$1061$3;
			FBSTRING TMP$1062$3;
			FBSTRING TMP$1063$3;
			FBSTRING TMP$1064$3;
			FBSTRING TMP$1065$3;
			FBSTRING TMP$1066$3;
			__builtin_memset( &TMP$1053$3, 0, 24ll );
			__builtin_memset( &TMP$1050$3, 0, 24ll );
			FBSTRING* vr$207 = fb_StrConcat( &TMP$1050$3, (void*)"lea ", 5ll, (void*)REGSRC$1, 0ll );
			__builtin_memset( &TMP$1051$3, 0, 24ll );
			FBSTRING* vr$210 = fb_StrConcat( &TMP$1051$3, (void*)vr$207, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$1052$3, 0, 24ll );
			FBSTRING* vr$213 = fb_StrConcat( &TMP$1052$3, (void*)vr$210, -1ll, (void*)SRC$1, -1ll );
			fb_StrAssign( (void*)&TMP$1053$3, -1ll, (void*)vr$213, -1ll, 0 );
			HWRITEASM64( &TMP$1053$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1053$3 );
			__builtin_memset( &TMP$1058$3, 0, 24ll );
			__builtin_memset( &TMP$1054$3, 0, 24ll );
			FBSTRING* vr$225 = fb_StrConcat( &TMP$1054$3, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)*(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)LISTREG$1) << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$1055$3, 0, 24ll );
			FBSTRING* vr$228 = fb_StrConcat( &TMP$1055$3, (void*)vr$225, -1ll, (void*)", DWORD PTR [", 14ll );
			__builtin_memset( &TMP$1056$3, 0, 24ll );
			FBSTRING* vr$231 = fb_StrConcat( &TMP$1056$3, (void*)vr$228, -1ll, (void*)REGSRC$1, 0ll );
			__builtin_memset( &TMP$1057$3, 0, 24ll );
			FBSTRING* vr$234 = fb_StrConcat( &TMP$1057$3, (void*)vr$231, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)&TMP$1058$3, -1ll, (void*)vr$234, -1ll, 0 );
			HWRITEASM64( &TMP$1058$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1058$3 );
			__builtin_memset( &TMP$1062$3, 0, 24ll );
			__builtin_memset( &TMP$1060$3, 0, 24ll );
			FBSTRING* vr$241 = fb_StrConcat( &TMP$1060$3, (void*)"movzx eax, WORD PTR 4[", 23ll, (void*)REGSRC$1, 0ll );
			__builtin_memset( &TMP$1061$3, 0, 24ll );
			FBSTRING* vr$244 = fb_StrConcat( &TMP$1061$3, (void*)vr$241, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)&TMP$1062$3, -1ll, (void*)vr$244, -1ll, 0 );
			HWRITEASM64( &TMP$1062$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1062$3 );
			__builtin_memset( &TMP$1063$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$1063$3, -1ll, (void*)"shl rax, 32", 12ll, 0 );
			HWRITEASM64( &TMP$1063$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1063$3 );
			__builtin_memset( &TMP$1066$3, 0, 24ll );
			__builtin_memset( &TMP$1064$3, 0, 24ll );
			FBSTRING* vr$256 = fb_StrConcat( &TMP$1064$3, (void*)"or ", 4ll, (void*)&REGDST$1, -1ll );
			__builtin_memset( &TMP$1065$3, 0, 24ll );
			FBSTRING* vr$259 = fb_StrConcat( &TMP$1065$3, (void*)vr$256, -1ll, (void*)", rax", 6ll );
			fb_StrAssign( (void*)&TMP$1066$3, -1ll, (void*)vr$259, -1ll, 0 );
			HWRITEASM64( &TMP$1066$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1066$3 );
		}
		goto label$821;
		label$829:;
		{
			FBSTRING TMP$1067$3;
			FBSTRING TMP$1068$3;
			FBSTRING TMP$1069$3;
			FBSTRING TMP$1070$3;
			FBSTRING TMP$1071$3;
			FBSTRING TMP$1072$3;
			FBSTRING TMP$1073$3;
			FBSTRING TMP$1074$3;
			FBSTRING TMP$1075$3;
			FBSTRING TMP$1076$3;
			FBSTRING TMP$1077$3;
			FBSTRING TMP$1078$3;
			FBSTRING TMP$1079$3;
			FBSTRING TMP$1080$3;
			FBSTRING TMP$1081$3;
			FBSTRING TMP$1082$3;
			FBSTRING TMP$1084$3;
			FBSTRING TMP$1085$3;
			FBSTRING TMP$1086$3;
			FBSTRING TMP$1088$3;
			FBSTRING TMP$1089$3;
			FBSTRING TMP$1090$3;
			FBSTRING TMP$1091$3;
			__builtin_memset( &TMP$1070$3, 0, 24ll );
			__builtin_memset( &TMP$1067$3, 0, 24ll );
			FBSTRING* vr$266 = fb_StrConcat( &TMP$1067$3, (void*)"lea ", 5ll, (void*)REGSRC$1, 0ll );
			__builtin_memset( &TMP$1068$3, 0, 24ll );
			FBSTRING* vr$269 = fb_StrConcat( &TMP$1068$3, (void*)vr$266, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$1069$3, 0, 24ll );
			FBSTRING* vr$272 = fb_StrConcat( &TMP$1069$3, (void*)vr$269, -1ll, (void*)SRC$1, -1ll );
			fb_StrAssign( (void*)&TMP$1070$3, -1ll, (void*)vr$272, -1ll, 0 );
			HWRITEASM64( &TMP$1070$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1070$3 );
			__builtin_memset( &TMP$1075$3, 0, 24ll );
			__builtin_memset( &TMP$1071$3, 0, 24ll );
			FBSTRING* vr$284 = fb_StrConcat( &TMP$1071$3, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)*(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)LISTREG$1) << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$1072$3, 0, 24ll );
			FBSTRING* vr$287 = fb_StrConcat( &TMP$1072$3, (void*)vr$284, -1ll, (void*)", DWORD PTR [", 14ll );
			__builtin_memset( &TMP$1073$3, 0, 24ll );
			FBSTRING* vr$290 = fb_StrConcat( &TMP$1073$3, (void*)vr$287, -1ll, (void*)REGSRC$1, 0ll );
			__builtin_memset( &TMP$1074$3, 0, 24ll );
			FBSTRING* vr$293 = fb_StrConcat( &TMP$1074$3, (void*)vr$290, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)&TMP$1075$3, -1ll, (void*)vr$293, -1ll, 0 );
			HWRITEASM64( &TMP$1075$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1075$3 );
			__builtin_memset( &TMP$1078$3, 0, 24ll );
			__builtin_memset( &TMP$1076$3, 0, 24ll );
			FBSTRING* vr$300 = fb_StrConcat( &TMP$1076$3, (void*)"movzx eax, WORD PTR 4[", 23ll, (void*)REGSRC$1, 0ll );
			__builtin_memset( &TMP$1077$3, 0, 24ll );
			FBSTRING* vr$303 = fb_StrConcat( &TMP$1077$3, (void*)vr$300, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)&TMP$1078$3, -1ll, (void*)vr$303, -1ll, 0 );
			HWRITEASM64( &TMP$1078$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1078$3 );
			__builtin_memset( &TMP$1079$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$1079$3, -1ll, (void*)"shl rax, 32", 12ll, 0 );
			HWRITEASM64( &TMP$1079$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1079$3 );
			__builtin_memset( &TMP$1082$3, 0, 24ll );
			__builtin_memset( &TMP$1080$3, 0, 24ll );
			FBSTRING* vr$315 = fb_StrConcat( &TMP$1080$3, (void*)"or ", 4ll, (void*)&REGDST$1, -1ll );
			__builtin_memset( &TMP$1081$3, 0, 24ll );
			FBSTRING* vr$318 = fb_StrConcat( &TMP$1081$3, (void*)vr$315, -1ll, (void*)", rax", 6ll );
			fb_StrAssign( (void*)&TMP$1082$3, -1ll, (void*)vr$318, -1ll, 0 );
			HWRITEASM64( &TMP$1082$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1082$3 );
			__builtin_memset( &TMP$1086$3, 0, 24ll );
			__builtin_memset( &TMP$1084$3, 0, 24ll );
			FBSTRING* vr$325 = fb_StrConcat( &TMP$1084$3, (void*)"movzx eax, BYTE PTR 6[", 23ll, (void*)REGSRC$1, 0ll );
			__builtin_memset( &TMP$1085$3, 0, 24ll );
			FBSTRING* vr$328 = fb_StrConcat( &TMP$1085$3, (void*)vr$325, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)&TMP$1086$3, -1ll, (void*)vr$328, -1ll, 0 );
			HWRITEASM64( &TMP$1086$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1086$3 );
			__builtin_memset( &TMP$1088$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$1088$3, -1ll, (void*)"shl rax, 48", 12ll, 0 );
			HWRITEASM64( &TMP$1088$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1088$3 );
			__builtin_memset( &TMP$1091$3, 0, 24ll );
			__builtin_memset( &TMP$1089$3, 0, 24ll );
			FBSTRING* vr$340 = fb_StrConcat( &TMP$1089$3, (void*)"or ", 4ll, (void*)&REGDST$1, -1ll );
			__builtin_memset( &TMP$1090$3, 0, 24ll );
			FBSTRING* vr$343 = fb_StrConcat( &TMP$1090$3, (void*)vr$340, -1ll, (void*)", rax", 6ll );
			fb_StrAssign( (void*)&TMP$1091$3, -1ll, (void*)vr$343, -1ll, 0 );
			HWRITEASM64( &TMP$1091$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1091$3 );
		}
		goto label$821;
		label$830:;
		{
			FBSTRING TMP$1092$3;
			FBSTRING TMP$1093$3;
			FBSTRING TMP$1094$3;
			FBSTRING TMP$1095$3;
			__builtin_memset( &TMP$1095$3, 0, 24ll );
			__builtin_memset( &TMP$1092$3, 0, 24ll );
			FBSTRING* vr$351 = fb_StrConcat( &TMP$1092$3, (void*)"mov ", 5ll, (void*)&REGDST$1, -1ll );
			__builtin_memset( &TMP$1093$3, 0, 24ll );
			FBSTRING* vr$354 = fb_StrConcat( &TMP$1093$3, (void*)vr$351, -1ll, (void*)", QWORD PTR ", 13ll );
			__builtin_memset( &TMP$1094$3, 0, 24ll );
			FBSTRING* vr$357 = fb_StrConcat( &TMP$1094$3, (void*)vr$354, -1ll, (void*)SRC$1, -1ll );
			fb_StrAssign( (void*)&TMP$1095$3, -1ll, (void*)vr$357, -1ll, 0 );
			HWRITEASM64( &TMP$1095$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1095$3 );
		}
		goto label$821;
		label$822:;
		static const void* tmp$4065[8ll] = {
			&&label$823,
			&&label$824,
			&&label$825,
			&&label$826,
			&&label$827,
			&&label$828,
			&&label$829,
			&&label$830,
		};
		if( (TMP$993$2 - 1ull) > 7ull ) goto label$821;
		goto *tmp$4065[TMP$993$2 - 1ull];
		label$821:;
	}
	fb_StrDelete( (FBSTRING*)&REGDST$1 );
	label$814:;
}

static void REG_FILLX( int64 LGT$1, FBSTRING* SRC$1, int64 CPTFLOAT$1 )
{
	label$831:;
	if( LGT$1 <= 8ll ) goto label$834;
	{
		LGT$1 = LGT$1 + -8ll;
		if( (uint64)(int64)*(uint8*)*(char**)SRC$1 != 45ull ) goto label$836;
		{
			FBSTRING TMP$1096$3;
			FBSTRING* vr$4 = fb_StrAllocTempDescZEx( (char*)"[rbp]", 5ll );
			int64 vr$5 = fb_StrInstr( 1ll, (FBSTRING*)SRC$1, (FBSTRING*)vr$4 );
			FBSTRING* vr$7 = fb_LEFT( (FBSTRING*)SRC$1, vr$5 + -1ll );
			int32 vr$8 = fb_VALINT( (FBSTRING*)vr$7 );
			FBSTRING* vr$11 = fb_LongintToStr( (int64)vr$8 + 8ll );
			__builtin_memset( &TMP$1096$3, 0, 24ll );
			FBSTRING* vr$14 = fb_StrConcat( &TMP$1096$3, (void*)vr$11, -1ll, (void*)"[rbp]", 6ll );
			fb_StrAssign( (void*)SRC$1, -1ll, (void*)vr$14, -1ll, 0 );
		}
		goto label$835;
		label$836:;
		{
			FBSTRING TMP$1097$3;
			FBSTRING TMP$1098$3;
			FBSTRING TMP$1099$3;
			__builtin_memset( &TMP$1098$3, 0, 24ll );
			__builtin_memset( &TMP$1097$3, 0, 24ll );
			FBSTRING* vr$18 = fb_StrConcat( &TMP$1097$3, (void*)"lea rax, ", 10ll, (void*)SRC$1, -1ll );
			fb_StrAssign( (void*)&TMP$1098$3, -1ll, (void*)vr$18, -1ll, 0 );
			HWRITEASM64( &TMP$1098$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1098$3 );
			__builtin_memset( &TMP$1099$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$1099$3, -1ll, (void*)"add rax, 8", 11ll, 0 );
			HWRITEASM64( &TMP$1099$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1099$3 );
			fb_StrAssign( (void*)SRC$1, -1ll, (void*)"[rax]", 6ll, 0 );
		}
		label$835:;
	}
	label$834:;
	label$833:;
	if( LGT$1 != 4ll ) goto label$838;
	{
		FBSTRING TMP$1101$2;
		FBSTRING TMP$1102$2;
		FBSTRING TMP$1103$2;
		FBSTRING TMP$1104$2;
		__builtin_memset( &TMP$1104$2, 0, 24ll );
		FBSTRING* vr$28 = fb_LongintToStr( CPTFLOAT$1 + -1ll );
		__builtin_memset( &TMP$1101$2, 0, 24ll );
		FBSTRING* vr$31 = fb_StrConcat( &TMP$1101$2, (void*)"movd xmm", 9ll, (void*)vr$28, -1ll );
		__builtin_memset( &TMP$1102$2, 0, 24ll );
		FBSTRING* vr$34 = fb_StrConcat( &TMP$1102$2, (void*)vr$31, -1ll, (void*)", ", 3ll );
		__builtin_memset( &TMP$1103$2, 0, 24ll );
		FBSTRING* vr$37 = fb_StrConcat( &TMP$1103$2, (void*)vr$34, -1ll, (void*)SRC$1, -1ll );
		fb_StrAssign( (void*)&TMP$1104$2, -1ll, (void*)vr$37, -1ll, 0 );
		HWRITEASM64( &TMP$1104$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$1104$2 );
	}
	goto label$837;
	label$838:;
	{
		FBSTRING TMP$1106$2;
		FBSTRING TMP$1107$2;
		FBSTRING TMP$1108$2;
		FBSTRING TMP$1109$2;
		__builtin_memset( &TMP$1109$2, 0, 24ll );
		FBSTRING* vr$43 = fb_LongintToStr( CPTFLOAT$1 + -1ll );
		__builtin_memset( &TMP$1106$2, 0, 24ll );
		FBSTRING* vr$46 = fb_StrConcat( &TMP$1106$2, (void*)"movq xmm", 9ll, (void*)vr$43, -1ll );
		__builtin_memset( &TMP$1107$2, 0, 24ll );
		FBSTRING* vr$49 = fb_StrConcat( &TMP$1107$2, (void*)vr$46, -1ll, (void*)", ", 3ll );
		__builtin_memset( &TMP$1108$2, 0, 24ll );
		FBSTRING* vr$52 = fb_StrConcat( &TMP$1108$2, (void*)vr$49, -1ll, (void*)SRC$1, -1ll );
		fb_StrAssign( (void*)&TMP$1109$2, -1ll, (void*)vr$52, -1ll, 0 );
		HWRITEASM64( &TMP$1109$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$1109$2 );
	}
	label$837:;
	label$832:;
}

static void _PROCALLOCARG( struct $8FBSYMBOL* PROC$1, struct $8FBSYMBOL* SYM$1 )
{
	label$839:;
	int32 LGT$1;
	__builtin_memset( &LGT$1, 0, 4ll );
	int32 REG$1;
	__builtin_memset( &REG$1, 0, 4ll );
	int64 DTYPE$1;
	__builtin_memset( &DTYPE$1, 0, 8ll );
	int64 PARAMTYPE$1;
	__builtin_memset( &PARAMTYPE$1, 0, 8ll );
	struct $8FBSYMBOL* SUBTYPE$1;
	__builtin_memset( &SUBTYPE$1, 0, 8ll );
	FBSTRING REGSTR$1;
	__builtin_memset( &REGSTR$1, 0, 24ll );
	FBSTRING REGX$1;
	__builtin_memset( &REGX$1, 0, 24ll );
	SYMBGETREALTYPE( SYM$1, &DTYPE$1, &SUBTYPE$1 );
	if( *(boolean*)((uint8*)&CTX$ + 416ll) == (boolean)0ll ) goto label$842;
	{
		$19FB_CVA_LIST_TYPEDEF vr$11 = SYMBGETVALISTTYPE( DTYPE$1, SUBTYPE$1 );
		if( ((int64)-((DTYPE$1 & 480ll) == 0ll) & (int64)-(vr$11 == 3ll)) == 0ll ) goto label$844;
		{
			*($13FB_SYMBATTRIB*)((uint8*)SYM$1 + 8ll) = *(int64*)((uint8*)SYM$1 + 8ll) ^ 32768ll;
			*($13FB_SYMBATTRIB*)((uint8*)SYM$1 + 8ll) = *(int64*)((uint8*)SYM$1 + 8ll) | 65536ll;
		}
		label$844:;
		label$843:;
		if( (*(int64*)((uint8*)SYM$1 + 8ll) & 32768ll) == 0ll ) goto label$846;
		{
			if( (DTYPE$1 & 511ll) != 20ll ) goto label$848;
			{
				int64 TMP$1110$4;
				TMP$1110$4 = 0ll;
				int64 vr$27 = PARAM_ANALYZE( 20ll, *(struct $8FBSYMBOL**)((uint8*)SYM$1 + 64ll), &TMP$1110$4, (int64*)((uint8*)&CTX$ + 168ll), (int64*)((uint8*)&CTX$ + 176ll) );
				PARAMTYPE$1 = vr$27;
				if( PARAMTYPE$1 != 10ll ) goto label$850;
				{
					*(int64*)((uint8*)SYM$1 + 88ll) = *(int64*)((uint8*)&CTX$ + 184ll);
					*(int64*)((uint8*)&CTX$ + 184ll) = *(int64*)((uint8*)&CTX$ + 184ll) + *(int64*)((uint8*)SYM$1 + 80ll);
				}
				goto label$849;
				label$850:;
				{
					LGT$1 = (int32)*(int64*)((uint8*)SYM$1 + 80ll);
					*(int64*)((uint8*)&CTX$ + 192ll) = ((((int64)LGT$1 + *(int64*)((uint8*)&CTX$ + 192ll)) + (int64)LGT$1) + -1ll) & ~((int64)LGT$1 + -1ll);
					*(int64*)((uint8*)SYM$1 + 88ll) = -(*(int64*)((uint8*)&CTX$ + 192ll));
					{
						uint64 TMP$1111$6;
						TMP$1111$6 = (uint64)PARAMTYPE$1;
						goto label$852;
						label$853:;
						{
							REG_FILLM( *(int64*)((uint8*)SYM$1 + 88ll), (struct $7FBARRAYIiE*)&LISTREG$, (int64)LGT$1, 0ll, 0ll );
						}
						goto label$851;
						label$854:;
						{
							REG_FILLM( *(int64*)((uint8*)SYM$1 + 88ll), (struct $7FBARRAYIiE*)&LISTREG$, 8ll, 1ll, 0ll );
							REG_FILLM( *(int64*)((uint8*)SYM$1 + 88ll), (struct $7FBARRAYIiE*)&LISTREG$, (int64)LGT$1, 0ll, 8ll );
						}
						goto label$851;
						label$855:;
						{
							REG_FILLM( *(int64*)((uint8*)SYM$1 + 88ll), (struct $7FBARRAYIiE*)&LISTREG$, 8ll, 0ll, 0ll );
							if( (int64)LGT$1 >= 13ll ) goto label$857;
							{
								FBSTRING TMP$1114$8;
								FBSTRING TMP$1115$8;
								FBSTRING TMP$1116$8;
								FBSTRING TMP$1117$8;
								__builtin_memset( &TMP$1117$8, 0, 24ll );
								FBSTRING* vr$53 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 176ll) + -1ll );
								FBSTRING* vr$56 = fb_LongintToStr( *(int64*)((uint8*)SYM$1 + 88ll) + 8ll );
								__builtin_memset( &TMP$1114$8, 0, 24ll );
								FBSTRING* vr$59 = fb_StrConcat( &TMP$1114$8, (void*)"movd ", 6ll, (void*)vr$56, -1ll );
								__builtin_memset( &TMP$1115$8, 0, 24ll );
								FBSTRING* vr$62 = fb_StrConcat( &TMP$1115$8, (void*)vr$59, -1ll, (void*)"[rbp], xmm", 11ll );
								__builtin_memset( &TMP$1116$8, 0, 24ll );
								FBSTRING* vr$65 = fb_StrConcat( &TMP$1116$8, (void*)vr$62, -1ll, (void*)vr$53, -1ll );
								fb_StrAssign( (void*)&TMP$1117$8, -1ll, (void*)vr$65, -1ll, 0 );
								HWRITEASM64( &TMP$1117$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$1117$8 );
							}
							goto label$856;
							label$857:;
							{
								FBSTRING TMP$1119$8;
								FBSTRING TMP$1120$8;
								FBSTRING TMP$1121$8;
								FBSTRING TMP$1122$8;
								__builtin_memset( &TMP$1122$8, 0, 24ll );
								FBSTRING* vr$71 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 176ll) + -1ll );
								FBSTRING* vr$74 = fb_LongintToStr( *(int64*)((uint8*)SYM$1 + 88ll) + 8ll );
								__builtin_memset( &TMP$1119$8, 0, 24ll );
								FBSTRING* vr$77 = fb_StrConcat( &TMP$1119$8, (void*)"movq ", 6ll, (void*)vr$74, -1ll );
								__builtin_memset( &TMP$1120$8, 0, 24ll );
								FBSTRING* vr$80 = fb_StrConcat( &TMP$1120$8, (void*)vr$77, -1ll, (void*)"[rbp], xmm", 11ll );
								__builtin_memset( &TMP$1121$8, 0, 24ll );
								FBSTRING* vr$83 = fb_StrConcat( &TMP$1121$8, (void*)vr$80, -1ll, (void*)vr$71, -1ll );
								fb_StrAssign( (void*)&TMP$1122$8, -1ll, (void*)vr$83, -1ll, 0 );
								HWRITEASM64( &TMP$1122$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$1122$8 );
							}
							label$856:;
						}
						goto label$851;
						label$858:;
						{
							if( (int64)LGT$1 != 4ll ) goto label$860;
							{
								FBSTRING TMP$1123$8;
								FBSTRING TMP$1124$8;
								FBSTRING TMP$1125$8;
								FBSTRING TMP$1126$8;
								__builtin_memset( &TMP$1126$8, 0, 24ll );
								FBSTRING* vr$90 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 176ll) + -1ll );
								FBSTRING* vr$92 = fb_LongintToStr( *(int64*)((uint8*)SYM$1 + 88ll) );
								__builtin_memset( &TMP$1123$8, 0, 24ll );
								FBSTRING* vr$95 = fb_StrConcat( &TMP$1123$8, (void*)"movd ", 6ll, (void*)vr$92, -1ll );
								__builtin_memset( &TMP$1124$8, 0, 24ll );
								FBSTRING* vr$98 = fb_StrConcat( &TMP$1124$8, (void*)vr$95, -1ll, (void*)"[rbp], xmm", 11ll );
								__builtin_memset( &TMP$1125$8, 0, 24ll );
								FBSTRING* vr$101 = fb_StrConcat( &TMP$1125$8, (void*)vr$98, -1ll, (void*)vr$90, -1ll );
								fb_StrAssign( (void*)&TMP$1126$8, -1ll, (void*)vr$101, -1ll, 0 );
								HWRITEASM64( &TMP$1126$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$1126$8 );
							}
							goto label$859;
							label$860:;
							{
								FBSTRING TMP$1127$8;
								FBSTRING TMP$1128$8;
								FBSTRING TMP$1129$8;
								FBSTRING TMP$1130$8;
								__builtin_memset( &TMP$1130$8, 0, 24ll );
								FBSTRING* vr$107 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 176ll) + -1ll );
								FBSTRING* vr$109 = fb_LongintToStr( *(int64*)((uint8*)SYM$1 + 88ll) );
								__builtin_memset( &TMP$1127$8, 0, 24ll );
								FBSTRING* vr$112 = fb_StrConcat( &TMP$1127$8, (void*)"movq ", 6ll, (void*)vr$109, -1ll );
								__builtin_memset( &TMP$1128$8, 0, 24ll );
								FBSTRING* vr$115 = fb_StrConcat( &TMP$1128$8, (void*)vr$112, -1ll, (void*)"[rbp], xmm", 11ll );
								__builtin_memset( &TMP$1129$8, 0, 24ll );
								FBSTRING* vr$118 = fb_StrConcat( &TMP$1129$8, (void*)vr$115, -1ll, (void*)vr$107, -1ll );
								fb_StrAssign( (void*)&TMP$1130$8, -1ll, (void*)vr$118, -1ll, 0 );
								HWRITEASM64( &TMP$1130$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$1130$8 );
							}
							label$859:;
							REG_FILLM( *(int64*)((uint8*)SYM$1 + 88ll), (struct $7FBARRAYIiE*)&LISTREG$, (int64)LGT$1, 0ll, 8ll );
						}
						goto label$851;
						label$861:;
						{
							if( (int64)LGT$1 != 4ll ) goto label$863;
							{
								FBSTRING TMP$1131$8;
								FBSTRING TMP$1132$8;
								FBSTRING TMP$1133$8;
								FBSTRING TMP$1134$8;
								__builtin_memset( &TMP$1134$8, 0, 24ll );
								FBSTRING* vr$127 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 176ll) + -1ll );
								FBSTRING* vr$129 = fb_LongintToStr( *(int64*)((uint8*)SYM$1 + 88ll) );
								__builtin_memset( &TMP$1131$8, 0, 24ll );
								FBSTRING* vr$132 = fb_StrConcat( &TMP$1131$8, (void*)"movd ", 6ll, (void*)vr$129, -1ll );
								__builtin_memset( &TMP$1132$8, 0, 24ll );
								FBSTRING* vr$135 = fb_StrConcat( &TMP$1132$8, (void*)vr$132, -1ll, (void*)"[rbp], xmm", 11ll );
								__builtin_memset( &TMP$1133$8, 0, 24ll );
								FBSTRING* vr$138 = fb_StrConcat( &TMP$1133$8, (void*)vr$135, -1ll, (void*)vr$127, -1ll );
								fb_StrAssign( (void*)&TMP$1134$8, -1ll, (void*)vr$138, -1ll, 0 );
								HWRITEASM64( &TMP$1134$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$1134$8 );
							}
							goto label$862;
							label$863:;
							{
								FBSTRING TMP$1135$8;
								FBSTRING TMP$1136$8;
								FBSTRING TMP$1137$8;
								FBSTRING TMP$1138$8;
								__builtin_memset( &TMP$1138$8, 0, 24ll );
								FBSTRING* vr$144 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 176ll) + -1ll );
								FBSTRING* vr$146 = fb_LongintToStr( *(int64*)((uint8*)SYM$1 + 88ll) );
								__builtin_memset( &TMP$1135$8, 0, 24ll );
								FBSTRING* vr$149 = fb_StrConcat( &TMP$1135$8, (void*)"movq ", 6ll, (void*)vr$146, -1ll );
								__builtin_memset( &TMP$1136$8, 0, 24ll );
								FBSTRING* vr$152 = fb_StrConcat( &TMP$1136$8, (void*)vr$149, -1ll, (void*)"[rbp], xmm", 11ll );
								__builtin_memset( &TMP$1137$8, 0, 24ll );
								FBSTRING* vr$155 = fb_StrConcat( &TMP$1137$8, (void*)vr$152, -1ll, (void*)vr$144, -1ll );
								fb_StrAssign( (void*)&TMP$1138$8, -1ll, (void*)vr$155, -1ll, 0 );
								HWRITEASM64( &TMP$1138$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$1138$8 );
							}
							label$862:;
						}
						goto label$851;
						label$864:;
						{
							FBSTRING TMP$1139$7;
							FBSTRING TMP$1140$7;
							FBSTRING TMP$1141$7;
							FBSTRING TMP$1142$7;
							__builtin_memset( &TMP$1142$7, 0, 24ll );
							FBSTRING* vr$161 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 176ll) + -2ll );
							FBSTRING* vr$163 = fb_LongintToStr( *(int64*)((uint8*)SYM$1 + 88ll) );
							__builtin_memset( &TMP$1139$7, 0, 24ll );
							FBSTRING* vr$166 = fb_StrConcat( &TMP$1139$7, (void*)"movq ", 6ll, (void*)vr$163, -1ll );
							__builtin_memset( &TMP$1140$7, 0, 24ll );
							FBSTRING* vr$169 = fb_StrConcat( &TMP$1140$7, (void*)vr$166, -1ll, (void*)"[rbp], xmm", 11ll );
							__builtin_memset( &TMP$1141$7, 0, 24ll );
							FBSTRING* vr$172 = fb_StrConcat( &TMP$1141$7, (void*)vr$169, -1ll, (void*)vr$161, -1ll );
							fb_StrAssign( (void*)&TMP$1142$7, -1ll, (void*)vr$172, -1ll, 0 );
							HWRITEASM64( &TMP$1142$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$1142$7 );
							if( (int64)LGT$1 >= 13ll ) goto label$866;
							{
								FBSTRING TMP$1143$8;
								FBSTRING TMP$1144$8;
								FBSTRING TMP$1145$8;
								FBSTRING TMP$1146$8;
								__builtin_memset( &TMP$1146$8, 0, 24ll );
								FBSTRING* vr$179 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 176ll) + -1ll );
								FBSTRING* vr$182 = fb_LongintToStr( *(int64*)((uint8*)SYM$1 + 88ll) + 8ll );
								__builtin_memset( &TMP$1143$8, 0, 24ll );
								FBSTRING* vr$185 = fb_StrConcat( &TMP$1143$8, (void*)"movd ", 6ll, (void*)vr$182, -1ll );
								__builtin_memset( &TMP$1144$8, 0, 24ll );
								FBSTRING* vr$188 = fb_StrConcat( &TMP$1144$8, (void*)vr$185, -1ll, (void*)"[rbp], xmm", 11ll );
								__builtin_memset( &TMP$1145$8, 0, 24ll );
								FBSTRING* vr$191 = fb_StrConcat( &TMP$1145$8, (void*)vr$188, -1ll, (void*)vr$179, -1ll );
								fb_StrAssign( (void*)&TMP$1146$8, -1ll, (void*)vr$191, -1ll, 0 );
								HWRITEASM64( &TMP$1146$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$1146$8 );
							}
							goto label$865;
							label$866:;
							{
								FBSTRING TMP$1147$8;
								FBSTRING TMP$1148$8;
								FBSTRING TMP$1149$8;
								FBSTRING TMP$1150$8;
								__builtin_memset( &TMP$1150$8, 0, 24ll );
								FBSTRING* vr$197 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 176ll) + -1ll );
								FBSTRING* vr$200 = fb_LongintToStr( *(int64*)((uint8*)SYM$1 + 88ll) + 8ll );
								__builtin_memset( &TMP$1147$8, 0, 24ll );
								FBSTRING* vr$203 = fb_StrConcat( &TMP$1147$8, (void*)"movq ", 6ll, (void*)vr$200, -1ll );
								__builtin_memset( &TMP$1148$8, 0, 24ll );
								FBSTRING* vr$206 = fb_StrConcat( &TMP$1148$8, (void*)vr$203, -1ll, (void*)"[rbp], xmm", 11ll );
								__builtin_memset( &TMP$1149$8, 0, 24ll );
								FBSTRING* vr$209 = fb_StrConcat( &TMP$1149$8, (void*)vr$206, -1ll, (void*)vr$197, -1ll );
								fb_StrAssign( (void*)&TMP$1150$8, -1ll, (void*)vr$209, -1ll, 0 );
								HWRITEASM64( &TMP$1150$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$1150$8 );
							}
							label$865:;
						}
						goto label$851;
						label$852:;
						static const void* tmp$4066[6ll] = {
							&&label$853,
							&&label$861,
							&&label$854,
							&&label$855,
							&&label$858,
							&&label$864,
						};
						if( TMP$1111$6 > 5ull ) goto label$851;
						goto *tmp$4066[TMP$1111$6 - 0ull];
						label$851:;
					}
				}
				label$849:;
			}
			goto label$847;
			label$848:;
			{
				int64 TMP$1151$4;
				LGT$1 = (int32)*(int64*)((uint8*)SYM$1 + 80ll);
				if( (DTYPE$1 & 480ll) == 0ll ) goto label$867;
				TMP$1151$4 = 24ll;
				goto label$3093;
				label$867:;
				TMP$1151$4 = DTYPE$1 & 31ll;
				label$3093:;
				if( *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$1151$4 * 56ll)) != 1ll ) goto label$869;
				{
					*(int64*)((uint8*)&CTX$ + 176ll) = *(int64*)((uint8*)&CTX$ + 176ll) + 1ll;
					if( *(int64*)((uint8*)&CTX$ + 176ll) > 8ll ) goto label$871;
					{
						*(int64*)((uint8*)&CTX$ + 192ll) = ((((int64)LGT$1 + *(int64*)((uint8*)&CTX$ + 192ll)) + (int64)LGT$1) + -1ll) & ~((int64)LGT$1 + -1ll);
						*(int64*)((uint8*)SYM$1 + 88ll) = -(*(int64*)((uint8*)&CTX$ + 192ll));
						if( (int64)LGT$1 != 4ll ) goto label$873;
						{
							FBSTRING TMP$1152$7;
							FBSTRING TMP$1153$7;
							FBSTRING TMP$1154$7;
							FBSTRING TMP$1155$7;
							__builtin_memset( &TMP$1155$7, 0, 24ll );
							FBSTRING* vr$233 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 176ll) + -1ll );
							FBSTRING* vr$235 = fb_LongintToStr( *(int64*)((uint8*)SYM$1 + 88ll) );
							__builtin_memset( &TMP$1152$7, 0, 24ll );
							FBSTRING* vr$238 = fb_StrConcat( &TMP$1152$7, (void*)"movd ", 6ll, (void*)vr$235, -1ll );
							__builtin_memset( &TMP$1153$7, 0, 24ll );
							FBSTRING* vr$241 = fb_StrConcat( &TMP$1153$7, (void*)vr$238, -1ll, (void*)"[rbp], xmm", 11ll );
							__builtin_memset( &TMP$1154$7, 0, 24ll );
							FBSTRING* vr$244 = fb_StrConcat( &TMP$1154$7, (void*)vr$241, -1ll, (void*)vr$233, -1ll );
							fb_StrAssign( (void*)&TMP$1155$7, -1ll, (void*)vr$244, -1ll, 0 );
							HWRITEASM64( &TMP$1155$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$1155$7 );
						}
						goto label$872;
						label$873:;
						{
							FBSTRING TMP$1156$7;
							FBSTRING TMP$1157$7;
							FBSTRING TMP$1158$7;
							FBSTRING TMP$1159$7;
							__builtin_memset( &TMP$1159$7, 0, 24ll );
							FBSTRING* vr$250 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 176ll) + -1ll );
							FBSTRING* vr$252 = fb_LongintToStr( *(int64*)((uint8*)SYM$1 + 88ll) );
							__builtin_memset( &TMP$1156$7, 0, 24ll );
							FBSTRING* vr$255 = fb_StrConcat( &TMP$1156$7, (void*)"movq ", 6ll, (void*)vr$252, -1ll );
							__builtin_memset( &TMP$1157$7, 0, 24ll );
							FBSTRING* vr$258 = fb_StrConcat( &TMP$1157$7, (void*)vr$255, -1ll, (void*)"[rbp], xmm", 11ll );
							__builtin_memset( &TMP$1158$7, 0, 24ll );
							FBSTRING* vr$261 = fb_StrConcat( &TMP$1158$7, (void*)vr$258, -1ll, (void*)vr$250, -1ll );
							fb_StrAssign( (void*)&TMP$1159$7, -1ll, (void*)vr$261, -1ll, 0 );
							HWRITEASM64( &TMP$1159$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$1159$7 );
						}
						label$872:;
					}
					goto label$870;
					label$871:;
					{
						*(int64*)((uint8*)SYM$1 + 88ll) = *(int64*)((uint8*)&CTX$ + 184ll);
						*(int64*)((uint8*)&CTX$ + 184ll) = *(int64*)((uint8*)&CTX$ + 184ll) + 8ll;
					}
					label$870:;
				}
				goto label$868;
				label$869:;
				{
					*(int64*)((uint8*)&CTX$ + 168ll) = *(int64*)((uint8*)&CTX$ + 168ll) + 1ll;
					if( *(int64*)((uint8*)&CTX$ + 168ll) > 6ll ) goto label$875;
					{
						*(int64*)((uint8*)&CTX$ + 192ll) = ((((int64)LGT$1 + *(int64*)((uint8*)&CTX$ + 192ll)) + (int64)LGT$1) + -1ll) & ~((int64)LGT$1 + -1ll);
						*(int64*)((uint8*)SYM$1 + 88ll) = -(*(int64*)((uint8*)&CTX$ + 192ll));
						{
							uint64 TMP$1160$7;
							TMP$1160$7 = (uint64)LGT$1;
							goto label$877;
							label$878:;
							{
								FBSTRING TMP$1162$8;
								FBSTRING TMP$1163$8;
								FBSTRING TMP$1164$8;
								FBSTRING TMP$1165$8;
								__builtin_memset( &TMP$1165$8, 0, 24ll );
								FBSTRING* vr$286 = fb_LongintToStr( *(int64*)((uint8*)SYM$1 + 88ll) );
								__builtin_memset( &TMP$1162$8, 0, 24ll );
								FBSTRING* vr$289 = fb_StrConcat( &TMP$1162$8, (void*)"mov BYTE PTR ", 14ll, (void*)vr$286, -1ll );
								__builtin_memset( &TMP$1163$8, 0, 24ll );
								FBSTRING* vr$292 = fb_StrConcat( &TMP$1163$8, (void*)vr$289, -1ll, (void*)"[rbp], ", 8ll );
								__builtin_memset( &TMP$1164$8, 0, 24ll );
								FBSTRING* vr$295 = fb_StrConcat( &TMP$1164$8, (void*)vr$292, -1ll, *(void**)((int64)(char**)REGSTRB$ + ((int64)*(int32*)((*(int64*)((uint8*)&CTX$ + 168ll) << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
								fb_StrAssign( (void*)&TMP$1165$8, -1ll, (void*)vr$295, -1ll, 0 );
								HWRITEASM64( &TMP$1165$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$1165$8 );
							}
							goto label$876;
							label$879:;
							{
								FBSTRING TMP$1167$8;
								FBSTRING TMP$1168$8;
								FBSTRING TMP$1169$8;
								FBSTRING TMP$1170$8;
								__builtin_memset( &TMP$1170$8, 0, 24ll );
								FBSTRING* vr$305 = fb_LongintToStr( *(int64*)((uint8*)SYM$1 + 88ll) );
								__builtin_memset( &TMP$1167$8, 0, 24ll );
								FBSTRING* vr$308 = fb_StrConcat( &TMP$1167$8, (void*)"mov WORD PTR ", 14ll, (void*)vr$305, -1ll );
								__builtin_memset( &TMP$1168$8, 0, 24ll );
								FBSTRING* vr$311 = fb_StrConcat( &TMP$1168$8, (void*)vr$308, -1ll, (void*)"[rbp], ", 8ll );
								__builtin_memset( &TMP$1169$8, 0, 24ll );
								FBSTRING* vr$314 = fb_StrConcat( &TMP$1169$8, (void*)vr$311, -1ll, *(void**)((int64)(char**)REGSTRW$ + ((int64)*(int32*)((*(int64*)((uint8*)&CTX$ + 168ll) << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
								fb_StrAssign( (void*)&TMP$1170$8, -1ll, (void*)vr$314, -1ll, 0 );
								HWRITEASM64( &TMP$1170$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$1170$8 );
							}
							goto label$876;
							label$880:;
							{
								FBSTRING TMP$1172$8;
								FBSTRING TMP$1173$8;
								FBSTRING TMP$1174$8;
								FBSTRING TMP$1175$8;
								__builtin_memset( &TMP$1175$8, 0, 24ll );
								FBSTRING* vr$324 = fb_LongintToStr( *(int64*)((uint8*)SYM$1 + 88ll) );
								__builtin_memset( &TMP$1172$8, 0, 24ll );
								FBSTRING* vr$327 = fb_StrConcat( &TMP$1172$8, (void*)"mov DWORD PTR ", 15ll, (void*)vr$324, -1ll );
								__builtin_memset( &TMP$1173$8, 0, 24ll );
								FBSTRING* vr$330 = fb_StrConcat( &TMP$1173$8, (void*)vr$327, -1ll, (void*)"[rbp], ", 8ll );
								__builtin_memset( &TMP$1174$8, 0, 24ll );
								FBSTRING* vr$333 = fb_StrConcat( &TMP$1174$8, (void*)vr$330, -1ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)*(int32*)((*(int64*)((uint8*)&CTX$ + 168ll) << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
								fb_StrAssign( (void*)&TMP$1175$8, -1ll, (void*)vr$333, -1ll, 0 );
								HWRITEASM64( &TMP$1175$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$1175$8 );
							}
							goto label$876;
							label$881:;
							{
								FBSTRING TMP$1176$8;
								FBSTRING TMP$1177$8;
								FBSTRING TMP$1178$8;
								FBSTRING TMP$1179$8;
								__builtin_memset( &TMP$1179$8, 0, 24ll );
								FBSTRING* vr$343 = fb_LongintToStr( *(int64*)((uint8*)SYM$1 + 88ll) );
								__builtin_memset( &TMP$1176$8, 0, 24ll );
								FBSTRING* vr$346 = fb_StrConcat( &TMP$1176$8, (void*)"mov QWORD PTR ", 15ll, (void*)vr$343, -1ll );
								__builtin_memset( &TMP$1177$8, 0, 24ll );
								FBSTRING* vr$349 = fb_StrConcat( &TMP$1177$8, (void*)vr$346, -1ll, (void*)"[rbp], ", 8ll );
								__builtin_memset( &TMP$1178$8, 0, 24ll );
								FBSTRING* vr$352 = fb_StrConcat( &TMP$1178$8, (void*)vr$349, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((*(int64*)((uint8*)&CTX$ + 168ll) << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
								fb_StrAssign( (void*)&TMP$1179$8, -1ll, (void*)vr$352, -1ll, 0 );
								HWRITEASM64( &TMP$1179$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$1179$8 );
							}
							goto label$876;
							label$877:;
							static const void* tmp$4067[8ll] = {
								&&label$878,
								&&label$879,
								&&label$876,
								&&label$880,
								&&label$876,
								&&label$876,
								&&label$876,
								&&label$881,
							};
							if( (TMP$1160$7 - 1ull) > 7ull ) goto label$876;
							goto *tmp$4067[TMP$1160$7 - 1ull];
							label$876:;
						}
					}
					goto label$874;
					label$875:;
					{
						*(int64*)((uint8*)SYM$1 + 88ll) = *(int64*)((uint8*)&CTX$ + 184ll);
						*(int64*)((uint8*)&CTX$ + 184ll) = *(int64*)((uint8*)&CTX$ + 184ll) + 8ll;
					}
					label$874:;
				}
				label$868:;
			}
			label$847:;
		}
		goto label$845;
		label$846:;
		{
			*(int64*)((uint8*)&CTX$ + 168ll) = *(int64*)((uint8*)&CTX$ + 168ll) + 1ll;
			LGT$1 = 8;
			if( *(int64*)((uint8*)&CTX$ + 168ll) > 6ll ) goto label$883;
			{
				FBSTRING TMP$1180$4;
				FBSTRING TMP$1181$4;
				FBSTRING TMP$1182$4;
				FBSTRING TMP$1183$4;
				*(int64*)((uint8*)&CTX$ + 192ll) = ((((int64)LGT$1 + *(int64*)((uint8*)&CTX$ + 192ll)) + (int64)LGT$1) + -1ll) & ~((int64)LGT$1 + -1ll);
				*(int64*)((uint8*)SYM$1 + 88ll) = -(*(int64*)((uint8*)&CTX$ + 192ll));
				__builtin_memset( &TMP$1183$4, 0, 24ll );
				FBSTRING* vr$376 = fb_LongintToStr( *(int64*)((uint8*)SYM$1 + 88ll) );
				__builtin_memset( &TMP$1180$4, 0, 24ll );
				FBSTRING* vr$379 = fb_StrConcat( &TMP$1180$4, (void*)"mov QWORD PTR ", 15ll, (void*)vr$376, -1ll );
				__builtin_memset( &TMP$1181$4, 0, 24ll );
				FBSTRING* vr$382 = fb_StrConcat( &TMP$1181$4, (void*)vr$379, -1ll, (void*)"[rbp], ", 8ll );
				__builtin_memset( &TMP$1182$4, 0, 24ll );
				FBSTRING* vr$385 = fb_StrConcat( &TMP$1182$4, (void*)vr$382, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((*(int64*)((uint8*)&CTX$ + 168ll) << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
				fb_StrAssign( (void*)&TMP$1183$4, -1ll, (void*)vr$385, -1ll, 0 );
				HWRITEASM64( &TMP$1183$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1183$4 );
			}
			goto label$882;
			label$883:;
			{
				*(int64*)((uint8*)SYM$1 + 88ll) = *(int64*)((uint8*)&CTX$ + 184ll);
				*(int64*)((uint8*)&CTX$ + 184ll) = *(int64*)((uint8*)&CTX$ + 184ll) + 8ll;
			}
			label$882:;
		}
		label$845:;
	}
	goto label$841;
	label$842:;
	{
		*(int64*)((uint8*)&CTX$ + 184ll) = *(int64*)((uint8*)&CTX$ + 184ll) + 8ll;
		if( (*(int64*)((uint8*)SYM$1 + 8ll) & 32768ll) == 0ll ) goto label$885;
		{
			if( (DTYPE$1 & 511ll) != 20ll ) goto label$887;
			{
				int64 TMP$1184$4;
				int64 TMP$1185$4;
				TMP$1185$4 = 0ll;
				TMP$1184$4 = 0ll;
				int64 vr$399 = PARAM_ANALYZE( 20ll, *(struct $8FBSYMBOL**)((uint8*)SYM$1 + 64ll), (int64*)((uint8*)&CTX$ + 168ll), &TMP$1184$4, &TMP$1185$4 );
				PARAMTYPE$1 = vr$399;
				{
					uint64 TMP$1186$5;
					TMP$1186$5 = (uint64)PARAMTYPE$1;
					goto label$889;
					label$890:;
					{
						*(int64*)((uint8*)&CTX$ + 192ll) = (((*(int64*)((uint8*)SYM$1 + 80ll) + *(int64*)((uint8*)&CTX$ + 192ll)) + *(int64*)((uint8*)SYM$1 + 80ll)) + -1ll) & ~(*(int64*)((uint8*)SYM$1 + 80ll) + -1ll);
						*(int64*)((uint8*)SYM$1 + 88ll) = -(*(int64*)((uint8*)&CTX$ + 192ll));
						if( PARAMTYPE$1 != 12ll ) goto label$892;
						{
							FBSTRING TMP$1187$7;
							FBSTRING TMP$1188$7;
							fb_StrAssign( (void*)&REGSTR$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((*(int64*)((uint8*)&CTX$ + 168ll) << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll, 0 );
							__builtin_memset( &TMP$1188$7, 0, 24ll );
							FBSTRING* vr$418 = fb_LongintToStr( *(int64*)((uint8*)SYM$1 + 88ll) );
							__builtin_memset( &TMP$1187$7, 0, 24ll );
							FBSTRING* vr$421 = fb_StrConcat( &TMP$1187$7, (void*)vr$418, -1ll, (void*)"[rbp]", 6ll );
							fb_StrAssign( (void*)&TMP$1188$7, -1ll, (void*)vr$421, -1ll, 0 );
							int64 vr$425 = SYMBGETREALSIZE( SYM$1 );
							MEMCOPY( vr$425, &REGSTR$1, &TMP$1188$7, 0, 1 );
							fb_StrDelete( (FBSTRING*)&TMP$1188$7 );
						}
						goto label$891;
						label$892:;
						{
							FBSTRING TMP$1189$7;
							FBSTRING TMP$1190$7;
							FBSTRING TMP$1191$7;
							FBSTRING TMP$1192$7;
							__builtin_memset( &TMP$1192$7, 0, 24ll );
							FBSTRING* vr$429 = fb_LongintToStr( *(int64*)((uint8*)SYM$1 + 88ll) );
							__builtin_memset( &TMP$1191$7, 0, 24ll );
							FBSTRING* vr$432 = fb_StrConcat( &TMP$1191$7, (void*)vr$429, -1ll, (void*)"[rbp]", 6ll );
							fb_StrAssign( (void*)&TMP$1192$7, -1ll, (void*)vr$432, -1ll, 0 );
							__builtin_memset( &TMP$1190$7, 0, 24ll );
							FBSTRING* vr$436 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 184ll) );
							__builtin_memset( &TMP$1189$7, 0, 24ll );
							FBSTRING* vr$439 = fb_StrConcat( &TMP$1189$7, (void*)vr$436, -1ll, (void*)"[rbp]", 6ll );
							fb_StrAssign( (void*)&TMP$1190$7, -1ll, (void*)vr$439, -1ll, 0 );
							int64 vr$442 = SYMBGETREALSIZE( SYM$1 );
							MEMCOPY( vr$442, &TMP$1190$7, &TMP$1192$7, 0, 1 );
							fb_StrDelete( (FBSTRING*)&TMP$1192$7 );
							fb_StrDelete( (FBSTRING*)&TMP$1190$7 );
						}
						label$891:;
					}
					goto label$888;
					label$893:;
					{
						*(int64*)((uint8*)SYM$1 + 88ll) = *(int64*)((uint8*)&CTX$ + 184ll);
						if( (int64)-(*(boolean*)((uint8*)&CTX$ + 400ll)) != 0ll ) goto label$895;
						{
							LGT$1 = (int32)*(int64*)((uint8*)SYM$1 + 80ll);
							if( PARAMTYPE$1 != 1ll ) goto label$897;
							{
								if( (int64)LGT$1 != 4ll ) goto label$899;
								{
									FBSTRING TMP$1193$9;
									FBSTRING TMP$1194$9;
									FBSTRING TMP$1195$9;
									FBSTRING TMP$1196$9;
									__builtin_memset( &TMP$1196$9, 0, 24ll );
									FBSTRING* vr$452 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 168ll) + -1ll );
									FBSTRING* vr$453 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 184ll) );
									__builtin_memset( &TMP$1193$9, 0, 24ll );
									FBSTRING* vr$456 = fb_StrConcat( &TMP$1193$9, (void*)"movd ", 6ll, (void*)vr$453, -1ll );
									__builtin_memset( &TMP$1194$9, 0, 24ll );
									FBSTRING* vr$459 = fb_StrConcat( &TMP$1194$9, (void*)vr$456, -1ll, (void*)"[rbp], xmm", 11ll );
									__builtin_memset( &TMP$1195$9, 0, 24ll );
									FBSTRING* vr$462 = fb_StrConcat( &TMP$1195$9, (void*)vr$459, -1ll, (void*)vr$452, -1ll );
									fb_StrAssign( (void*)&TMP$1196$9, -1ll, (void*)vr$462, -1ll, 0 );
									HWRITEASM64( &TMP$1196$9, 0ll );
									fb_StrDelete( (FBSTRING*)&TMP$1196$9 );
								}
								goto label$898;
								label$899:;
								{
									FBSTRING TMP$1197$9;
									FBSTRING TMP$1198$9;
									FBSTRING TMP$1199$9;
									FBSTRING TMP$1200$9;
									__builtin_memset( &TMP$1200$9, 0, 24ll );
									FBSTRING* vr$468 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 168ll) + -1ll );
									FBSTRING* vr$469 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 184ll) );
									__builtin_memset( &TMP$1197$9, 0, 24ll );
									FBSTRING* vr$472 = fb_StrConcat( &TMP$1197$9, (void*)"movq ", 6ll, (void*)vr$469, -1ll );
									__builtin_memset( &TMP$1198$9, 0, 24ll );
									FBSTRING* vr$475 = fb_StrConcat( &TMP$1198$9, (void*)vr$472, -1ll, (void*)"[rbp], xmm", 11ll );
									__builtin_memset( &TMP$1199$9, 0, 24ll );
									FBSTRING* vr$478 = fb_StrConcat( &TMP$1199$9, (void*)vr$475, -1ll, (void*)vr$468, -1ll );
									fb_StrAssign( (void*)&TMP$1200$9, -1ll, (void*)vr$478, -1ll, 0 );
									HWRITEASM64( &TMP$1200$9, 0ll );
									fb_StrDelete( (FBSTRING*)&TMP$1200$9 );
								}
								label$898:;
							}
							goto label$896;
							label$897:;
							{
								{
									uint64 TMP$1201$9;
									TMP$1201$9 = (uint64)LGT$1;
									goto label$901;
									label$902:;
									{
										FBSTRING TMP$1202$10;
										FBSTRING TMP$1203$10;
										FBSTRING TMP$1204$10;
										FBSTRING TMP$1205$10;
										__builtin_memset( &TMP$1205$10, 0, 24ll );
										FBSTRING* vr$488 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 184ll) );
										__builtin_memset( &TMP$1202$10, 0, 24ll );
										FBSTRING* vr$491 = fb_StrConcat( &TMP$1202$10, (void*)"mov BYTE PTR ", 14ll, (void*)vr$488, -1ll );
										__builtin_memset( &TMP$1203$10, 0, 24ll );
										FBSTRING* vr$494 = fb_StrConcat( &TMP$1203$10, (void*)vr$491, -1ll, (void*)"[rbp], ", 8ll );
										__builtin_memset( &TMP$1204$10, 0, 24ll );
										FBSTRING* vr$497 = fb_StrConcat( &TMP$1204$10, (void*)vr$494, -1ll, *(void**)((int64)(char**)REGSTRB$ + ((int64)*(int32*)((*(int64*)((uint8*)&CTX$ + 168ll) << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
										fb_StrAssign( (void*)&TMP$1205$10, -1ll, (void*)vr$497, -1ll, 0 );
										HWRITEASM64( &TMP$1205$10, 0ll );
										fb_StrDelete( (FBSTRING*)&TMP$1205$10 );
									}
									goto label$900;
									label$903:;
									{
										FBSTRING TMP$1206$10;
										FBSTRING TMP$1207$10;
										FBSTRING TMP$1208$10;
										FBSTRING TMP$1209$10;
										__builtin_memset( &TMP$1209$10, 0, 24ll );
										FBSTRING* vr$506 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 184ll) );
										__builtin_memset( &TMP$1206$10, 0, 24ll );
										FBSTRING* vr$509 = fb_StrConcat( &TMP$1206$10, (void*)"mov WORD PTR ", 14ll, (void*)vr$506, -1ll );
										__builtin_memset( &TMP$1207$10, 0, 24ll );
										FBSTRING* vr$512 = fb_StrConcat( &TMP$1207$10, (void*)vr$509, -1ll, (void*)"[rbp], ", 8ll );
										__builtin_memset( &TMP$1208$10, 0, 24ll );
										FBSTRING* vr$515 = fb_StrConcat( &TMP$1208$10, (void*)vr$512, -1ll, *(void**)((int64)(char**)REGSTRW$ + ((int64)*(int32*)((*(int64*)((uint8*)&CTX$ + 168ll) << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
										fb_StrAssign( (void*)&TMP$1209$10, -1ll, (void*)vr$515, -1ll, 0 );
										HWRITEASM64( &TMP$1209$10, 0ll );
										fb_StrDelete( (FBSTRING*)&TMP$1209$10 );
									}
									goto label$900;
									label$904:;
									{
										FBSTRING TMP$1210$10;
										FBSTRING TMP$1211$10;
										FBSTRING TMP$1212$10;
										FBSTRING TMP$1213$10;
										__builtin_memset( &TMP$1213$10, 0, 24ll );
										FBSTRING* vr$524 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 184ll) );
										__builtin_memset( &TMP$1210$10, 0, 24ll );
										FBSTRING* vr$527 = fb_StrConcat( &TMP$1210$10, (void*)"mov DWORD PTR ", 15ll, (void*)vr$524, -1ll );
										__builtin_memset( &TMP$1211$10, 0, 24ll );
										FBSTRING* vr$530 = fb_StrConcat( &TMP$1211$10, (void*)vr$527, -1ll, (void*)"[rbp], ", 8ll );
										__builtin_memset( &TMP$1212$10, 0, 24ll );
										FBSTRING* vr$533 = fb_StrConcat( &TMP$1212$10, (void*)vr$530, -1ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)*(int32*)((*(int64*)((uint8*)&CTX$ + 168ll) << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
										fb_StrAssign( (void*)&TMP$1213$10, -1ll, (void*)vr$533, -1ll, 0 );
										HWRITEASM64( &TMP$1213$10, 0ll );
										fb_StrDelete( (FBSTRING*)&TMP$1213$10 );
									}
									goto label$900;
									label$905:;
									{
										FBSTRING TMP$1214$10;
										FBSTRING TMP$1215$10;
										FBSTRING TMP$1216$10;
										FBSTRING TMP$1217$10;
										__builtin_memset( &TMP$1217$10, 0, 24ll );
										FBSTRING* vr$542 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 184ll) );
										__builtin_memset( &TMP$1214$10, 0, 24ll );
										FBSTRING* vr$545 = fb_StrConcat( &TMP$1214$10, (void*)"mov QWORD PTR ", 15ll, (void*)vr$542, -1ll );
										__builtin_memset( &TMP$1215$10, 0, 24ll );
										FBSTRING* vr$548 = fb_StrConcat( &TMP$1215$10, (void*)vr$545, -1ll, (void*)"[rbp], ", 8ll );
										__builtin_memset( &TMP$1216$10, 0, 24ll );
										FBSTRING* vr$551 = fb_StrConcat( &TMP$1216$10, (void*)vr$548, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((*(int64*)((uint8*)&CTX$ + 168ll) << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
										fb_StrAssign( (void*)&TMP$1217$10, -1ll, (void*)vr$551, -1ll, 0 );
										HWRITEASM64( &TMP$1217$10, 0ll );
										fb_StrDelete( (FBSTRING*)&TMP$1217$10 );
									}
									goto label$900;
									label$901:;
									static const void* tmp$4068[8ll] = {
										&&label$902,
										&&label$903,
										&&label$900,
										&&label$904,
										&&label$900,
										&&label$900,
										&&label$900,
										&&label$905,
									};
									if( (TMP$1201$9 - 1ull) > 7ull ) goto label$900;
									goto *tmp$4068[TMP$1201$9 - 1ull];
									label$900:;
								}
							}
							label$896:;
						}
						label$895:;
						label$894:;
					}
					goto label$888;
					label$906:;
					{
						*(int64*)((uint8*)SYM$1 + 88ll) = *(int64*)((uint8*)&CTX$ + 184ll);
					}
					goto label$888;
					label$889:;
					static const void* tmp$4069[14ll] = {
						&&label$893,
						&&label$893,
						&&label$906,
						&&label$906,
						&&label$906,
						&&label$906,
						&&label$906,
						&&label$906,
						&&label$906,
						&&label$906,
						&&label$906,
						&&label$906,
						&&label$890,
						&&label$890,
					};
					if( TMP$1186$5 > 13ull ) goto label$906;
					goto *tmp$4069[TMP$1186$5 - 0ull];
					label$888:;
				}
			}
			goto label$886;
			label$887:;
			{
				LGT$1 = (int32)*(int64*)((uint8*)SYM$1 + 80ll);
				*(int64*)((uint8*)SYM$1 + 88ll) = *(int64*)((uint8*)&CTX$ + 184ll);
				*(int64*)((uint8*)&CTX$ + 168ll) = *(int64*)((uint8*)&CTX$ + 168ll) + 1ll;
				if( ((int64)-(*(int64*)((uint8*)&CTX$ + 168ll) <= 4ll) & (int64)-((int64)-(*(boolean*)((uint8*)&CTX$ + 400ll)) == 0ll)) == 0ll ) goto label$908;
				{
					int64 TMP$1218$5;
					if( (DTYPE$1 & 480ll) == 0ll ) goto label$909;
					TMP$1218$5 = 24ll;
					goto label$3094;
					label$909:;
					TMP$1218$5 = DTYPE$1 & 31ll;
					label$3094:;
					if( *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$1218$5 * 56ll)) != 1ll ) goto label$911;
					{
						if( (int64)LGT$1 != 4ll ) goto label$913;
						{
							FBSTRING TMP$1219$7;
							FBSTRING TMP$1220$7;
							FBSTRING TMP$1221$7;
							FBSTRING TMP$1222$7;
							__builtin_memset( &TMP$1222$7, 0, 24ll );
							FBSTRING* vr$570 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 168ll) + -1ll );
							FBSTRING* vr$571 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 184ll) );
							__builtin_memset( &TMP$1219$7, 0, 24ll );
							FBSTRING* vr$574 = fb_StrConcat( &TMP$1219$7, (void*)"movd ", 6ll, (void*)vr$571, -1ll );
							__builtin_memset( &TMP$1220$7, 0, 24ll );
							FBSTRING* vr$577 = fb_StrConcat( &TMP$1220$7, (void*)vr$574, -1ll, (void*)"[rbp], xmm", 11ll );
							__builtin_memset( &TMP$1221$7, 0, 24ll );
							FBSTRING* vr$580 = fb_StrConcat( &TMP$1221$7, (void*)vr$577, -1ll, (void*)vr$570, -1ll );
							fb_StrAssign( (void*)&TMP$1222$7, -1ll, (void*)vr$580, -1ll, 0 );
							HWRITEASM64( &TMP$1222$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$1222$7 );
						}
						goto label$912;
						label$913:;
						{
							FBSTRING TMP$1223$7;
							FBSTRING TMP$1224$7;
							FBSTRING TMP$1225$7;
							FBSTRING TMP$1226$7;
							__builtin_memset( &TMP$1226$7, 0, 24ll );
							FBSTRING* vr$586 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 168ll) + -1ll );
							FBSTRING* vr$587 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 184ll) );
							__builtin_memset( &TMP$1223$7, 0, 24ll );
							FBSTRING* vr$590 = fb_StrConcat( &TMP$1223$7, (void*)"movq ", 6ll, (void*)vr$587, -1ll );
							__builtin_memset( &TMP$1224$7, 0, 24ll );
							FBSTRING* vr$593 = fb_StrConcat( &TMP$1224$7, (void*)vr$590, -1ll, (void*)"[rbp], xmm", 11ll );
							__builtin_memset( &TMP$1225$7, 0, 24ll );
							FBSTRING* vr$596 = fb_StrConcat( &TMP$1225$7, (void*)vr$593, -1ll, (void*)vr$586, -1ll );
							fb_StrAssign( (void*)&TMP$1226$7, -1ll, (void*)vr$596, -1ll, 0 );
							HWRITEASM64( &TMP$1226$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$1226$7 );
						}
						label$912:;
					}
					goto label$910;
					label$911:;
					{
						{
							uint64 TMP$1227$7;
							TMP$1227$7 = (uint64)LGT$1;
							goto label$915;
							label$916:;
							{
								FBSTRING TMP$1228$8;
								FBSTRING TMP$1229$8;
								FBSTRING TMP$1230$8;
								FBSTRING TMP$1231$8;
								__builtin_memset( &TMP$1231$8, 0, 24ll );
								FBSTRING* vr$606 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 184ll) );
								__builtin_memset( &TMP$1228$8, 0, 24ll );
								FBSTRING* vr$609 = fb_StrConcat( &TMP$1228$8, (void*)"mov BYTE PTR ", 14ll, (void*)vr$606, -1ll );
								__builtin_memset( &TMP$1229$8, 0, 24ll );
								FBSTRING* vr$612 = fb_StrConcat( &TMP$1229$8, (void*)vr$609, -1ll, (void*)"[rbp], ", 8ll );
								__builtin_memset( &TMP$1230$8, 0, 24ll );
								FBSTRING* vr$615 = fb_StrConcat( &TMP$1230$8, (void*)vr$612, -1ll, *(void**)((int64)(char**)REGSTRB$ + ((int64)*(int32*)((*(int64*)((uint8*)&CTX$ + 168ll) << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
								fb_StrAssign( (void*)&TMP$1231$8, -1ll, (void*)vr$615, -1ll, 0 );
								HWRITEASM64( &TMP$1231$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$1231$8 );
							}
							goto label$914;
							label$917:;
							{
								FBSTRING TMP$1232$8;
								FBSTRING TMP$1233$8;
								FBSTRING TMP$1234$8;
								FBSTRING TMP$1235$8;
								__builtin_memset( &TMP$1235$8, 0, 24ll );
								FBSTRING* vr$624 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 184ll) );
								__builtin_memset( &TMP$1232$8, 0, 24ll );
								FBSTRING* vr$627 = fb_StrConcat( &TMP$1232$8, (void*)"mov WORD PTR ", 14ll, (void*)vr$624, -1ll );
								__builtin_memset( &TMP$1233$8, 0, 24ll );
								FBSTRING* vr$630 = fb_StrConcat( &TMP$1233$8, (void*)vr$627, -1ll, (void*)"[rbp], ", 8ll );
								__builtin_memset( &TMP$1234$8, 0, 24ll );
								FBSTRING* vr$633 = fb_StrConcat( &TMP$1234$8, (void*)vr$630, -1ll, *(void**)((int64)(char**)REGSTRW$ + ((int64)*(int32*)((*(int64*)((uint8*)&CTX$ + 168ll) << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
								fb_StrAssign( (void*)&TMP$1235$8, -1ll, (void*)vr$633, -1ll, 0 );
								HWRITEASM64( &TMP$1235$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$1235$8 );
							}
							goto label$914;
							label$918:;
							{
								FBSTRING TMP$1236$8;
								FBSTRING TMP$1237$8;
								FBSTRING TMP$1238$8;
								FBSTRING TMP$1239$8;
								__builtin_memset( &TMP$1239$8, 0, 24ll );
								FBSTRING* vr$642 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 184ll) );
								__builtin_memset( &TMP$1236$8, 0, 24ll );
								FBSTRING* vr$645 = fb_StrConcat( &TMP$1236$8, (void*)"mov DWORD PTR ", 15ll, (void*)vr$642, -1ll );
								__builtin_memset( &TMP$1237$8, 0, 24ll );
								FBSTRING* vr$648 = fb_StrConcat( &TMP$1237$8, (void*)vr$645, -1ll, (void*)"[rbp], ", 8ll );
								__builtin_memset( &TMP$1238$8, 0, 24ll );
								FBSTRING* vr$651 = fb_StrConcat( &TMP$1238$8, (void*)vr$648, -1ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)*(int32*)((*(int64*)((uint8*)&CTX$ + 168ll) << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
								fb_StrAssign( (void*)&TMP$1239$8, -1ll, (void*)vr$651, -1ll, 0 );
								HWRITEASM64( &TMP$1239$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$1239$8 );
							}
							goto label$914;
							label$919:;
							{
								FBSTRING TMP$1240$8;
								FBSTRING TMP$1241$8;
								FBSTRING TMP$1242$8;
								FBSTRING TMP$1243$8;
								__builtin_memset( &TMP$1243$8, 0, 24ll );
								FBSTRING* vr$660 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 184ll) );
								__builtin_memset( &TMP$1240$8, 0, 24ll );
								FBSTRING* vr$663 = fb_StrConcat( &TMP$1240$8, (void*)"mov QWORD PTR ", 15ll, (void*)vr$660, -1ll );
								__builtin_memset( &TMP$1241$8, 0, 24ll );
								FBSTRING* vr$666 = fb_StrConcat( &TMP$1241$8, (void*)vr$663, -1ll, (void*)"[rbp], ", 8ll );
								__builtin_memset( &TMP$1242$8, 0, 24ll );
								FBSTRING* vr$669 = fb_StrConcat( &TMP$1242$8, (void*)vr$666, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((*(int64*)((uint8*)&CTX$ + 168ll) << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
								fb_StrAssign( (void*)&TMP$1243$8, -1ll, (void*)vr$669, -1ll, 0 );
								HWRITEASM64( &TMP$1243$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$1243$8 );
							}
							goto label$914;
							label$915:;
							static const void* tmp$4070[8ll] = {
								&&label$916,
								&&label$917,
								&&label$914,
								&&label$918,
								&&label$914,
								&&label$914,
								&&label$914,
								&&label$919,
							};
							if( (TMP$1227$7 - 1ull) > 7ull ) goto label$914;
							goto *tmp$4070[TMP$1227$7 - 1ull];
							label$914:;
						}
					}
					label$910:;
				}
				label$908:;
				label$907:;
			}
			label$886:;
		}
		goto label$884;
		label$885:;
		{
			*(int64*)((uint8*)&CTX$ + 168ll) = *(int64*)((uint8*)&CTX$ + 168ll) + 1ll;
			*(int64*)((uint8*)SYM$1 + 88ll) = *(int64*)((uint8*)&CTX$ + 184ll);
			if( ((int64)-(*(int64*)((uint8*)&CTX$ + 168ll) <= 4ll) & (int64)-((int64)-(*(boolean*)((uint8*)&CTX$ + 400ll)) == 0ll)) == 0ll ) goto label$921;
			{
				FBSTRING TMP$1244$4;
				FBSTRING TMP$1245$4;
				FBSTRING TMP$1246$4;
				FBSTRING TMP$1247$4;
				__builtin_memset( &TMP$1247$4, 0, 24ll );
				FBSTRING* vr$684 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 184ll) );
				__builtin_memset( &TMP$1244$4, 0, 24ll );
				FBSTRING* vr$687 = fb_StrConcat( &TMP$1244$4, (void*)"mov QWORD PTR ", 15ll, (void*)vr$684, -1ll );
				__builtin_memset( &TMP$1245$4, 0, 24ll );
				FBSTRING* vr$690 = fb_StrConcat( &TMP$1245$4, (void*)vr$687, -1ll, (void*)"[rbp], ", 8ll );
				__builtin_memset( &TMP$1246$4, 0, 24ll );
				FBSTRING* vr$693 = fb_StrConcat( &TMP$1246$4, (void*)vr$690, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((*(int64*)((uint8*)&CTX$ + 168ll) << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
				fb_StrAssign( (void*)&TMP$1247$4, -1ll, (void*)vr$693, -1ll, 0 );
				HWRITEASM64( &TMP$1247$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1247$4 );
			}
			label$921:;
			label$920:;
		}
		label$884:;
	}
	label$841:;
	if( *(int64*)((uint8*)&ENV$ + 296ll) != -1ll ) goto label$923;
	{
		EDBGEMITPROCARG_ASM64( SYM$1 );
		label$923:;
	}
	fb_StrDelete( (FBSTRING*)&REGX$1 );
	fb_StrDelete( (FBSTRING*)&REGSTR$1 );
	label$840:;
}

static void _PROCALLOCLOCAL( struct $8FBSYMBOL* PROC$1, struct $8FBSYMBOL* SYM$1 )
{
	label$924:;
	HEMITVARIABLE( SYM$1 );
	label$925:;
}

static void _PROCALLOCSTATICVARS( struct $8FBSYMBOL* SYM$1 )
{
	label$926:;
	*(int64*)((uint8*)&CTX$ + 8ll) = 2ll;
	label$928:;
	if( SYM$1 == (struct $8FBSYMBOL*)0ull ) goto label$929;
	{
		{
			$12FB_SYMBCLASS TMP$1248$3;
			TMP$1248$3 = *($12FB_SYMBCLASS*)SYM$1;
			if( TMP$1248$3 != 15ll ) goto label$931;
			label$932:;
			{
				_PROCALLOCSTATICVARS( *(struct $8FBSYMBOL**)((uint8*)SYM$1 + 112ll) );
			}
			goto label$930;
			label$931:;
			if( TMP$1248$3 != 1ll ) goto label$933;
			label$934:;
			{
				if( (*(int64*)((uint8*)SYM$1 + 8ll) & 2ll) == 0ll ) goto label$936;
				{
					HMAYBEEMITGLOBALVAR( SYM$1 );
				}
				label$936:;
				label$935:;
			}
			label$933:;
			label$930:;
		}
		SYM$1 = *(struct $8FBSYMBOL**)((uint8*)SYM$1 + 312ll);
	}
	goto label$928;
	label$929:;
	label$927:;
}

static void _SETVREGDATATYPE( struct $6IRVREG* V$1, int64 DTYPE$1, struct $8FBSYMBOL* SUBTYPE$1 )
{
	label$937:;
	struct $6IRVREG* TEMP0$1;
	if( ((int64)-(*(int64*)((uint8*)V$1 + 8ll) != DTYPE$1) | (int64)-(*(struct $8FBSYMBOL**)((uint8*)V$1 + 16ll) != SUBTYPE$1)) == 0ll ) goto label$940;
	{
		struct $6IRVREG* vr$5 = IRHLALLOCVREG( DTYPE$1, SUBTYPE$1 );
		TEMP0$1 = vr$5;
		_EMITCONVERT( TEMP0$1, V$1 );
		__builtin_memcpy( V$1, TEMP0$1, 120 );
	}
	label$940:;
	label$939:;
	label$938:;
}

static void _EMITLABEL( struct $8FBSYMBOL* LABEL$1 )
{
	label$941:;
	if( ((int64)-(*(struct $8FBSYMBOL**)((uint8*)&CTX$ + 384ll) == LABEL$1) | (int64)-(*(struct $8FBSYMBOL**)((uint8*)&CTX$ + 392ll) == LABEL$1)) == 0ll ) goto label$944;
	{
		REG_BRANCH( LABEL$1 );
	}
	goto label$943;
	label$944:;
	{
		FBSTRING TMP$1249$2;
		FBSTRING TMP$1250$2;
		__builtin_memset( &TMP$1250$2, 0, 24ll );
		char* vr$4 = SYMBGETMANGLEDNAME( LABEL$1 );
		__builtin_memset( &TMP$1249$2, 0, 24ll );
		FBSTRING* vr$7 = fb_StrConcat( &TMP$1249$2, (void*)vr$4, 0ll, (void*)":", 2ll );
		fb_StrAssign( (void*)&TMP$1250$2, -1ll, (void*)vr$7, -1ll, 0 );
		HWRITEASM64( &TMP$1250$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$1250$2 );
	}
	label$943:;
	if( *(boolean*)((uint8*)LABEL$1 + 120ll) == (boolean)0ll ) goto label$946;
	{
		FBSTRING TMP$1252$2;
		__builtin_memset( &TMP$1252$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$1252$2, -1ll, (void*)"sub rsp, 88 #stack for gosub", 29ll, 0 );
		HWRITEASM64( &TMP$1252$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$1252$2 );
	}
	label$946:;
	label$945:;
	label$942:;
}

static void PREPARE_IDX( struct $6IRVREG* V1$1, FBSTRING* OP1$1, FBSTRING* OP3$1 )
{
	FBSTRING TMP$1322$1;
	FBSTRING TMP$1325$1;
	FBSTRING TMP$1326$1;
	label$947:;
	FBSTRING REGTEMPO$1;
	__builtin_memset( &REGTEMPO$1, 0, 24ll );
	if( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) != (struct $8FBSYMBOL*)0ull ) goto label$950;
	{
		if( *(struct $8FBSYMBOL**)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 56ll) != (struct $8FBSYMBOL*)0ull ) goto label$952;
		{
			if( *(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 24ll) == -1ll ) goto label$954;
			{
				FBSTRING TMP$1253$4;
				FBSTRING TMP$1254$4;
				FBSTRING TMP$1255$4;
				int32 vr$9 = REG_FINDREAL( (int32)*(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 24ll) );
				FBSTRING* vr$13 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
				__builtin_memset( &TMP$1253$4, 0, 24ll );
				FBSTRING* vr$16 = fb_StrConcat( &TMP$1253$4, (void*)vr$13, -1ll, (void*)"[", 2ll );
				__builtin_memset( &TMP$1254$4, 0, 24ll );
				FBSTRING* vr$19 = fb_StrConcat( &TMP$1254$4, (void*)vr$16, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$9 << (3ll & 63ll))), 0ll );
				__builtin_memset( &TMP$1255$4, 0, 24ll );
				FBSTRING* vr$22 = fb_StrConcat( &TMP$1255$4, (void*)vr$19, -1ll, (void*)"]", 2ll );
				fb_StrAssign( (void*)OP1$1, -1ll, (void*)vr$22, -1ll, 0 );
				fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
				goto label$948;
			}
			goto label$953;
			label$954:;
			{
				FBSTRING TMP$1256$4;
				FBSTRING TMP$1257$4;
				FBSTRING TMP$1258$4;
				FBSTRING TMP$1259$4;
				FBSTRING TMP$1260$4;
				FBSTRING TMP$1261$4;
				FBSTRING TMP$1262$4;
				FBSTRING TMP$1263$4;
				int32 vr$28 = REG_FINDREAL( (int32)*(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 80ll) + 24ll) );
				fb_StrAssign( (void*)&REGTEMPO$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$28 << (3ll & 63ll))), 0ll, 0 );
				__builtin_memset( &TMP$1256$4, 0, 24ll );
				FBSTRING* vr$36 = fb_StrConcat( &TMP$1256$4, (void*)"mov ", 5ll, (void*)&REGTEMPO$1, -1ll );
				__builtin_memset( &TMP$1257$4, 0, 24ll );
				FBSTRING* vr$39 = fb_StrConcat( &TMP$1257$4, (void*)vr$36, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$1258$4, 0, 24ll );
				FBSTRING* vr$42 = fb_StrConcat( &TMP$1258$4, (void*)vr$39, -1ll, (void*)"[", 2ll );
				__builtin_memset( &TMP$1259$4, 0, 24ll );
				FBSTRING* vr$45 = fb_StrConcat( &TMP$1259$4, (void*)vr$42, -1ll, (void*)&REGTEMPO$1, -1ll );
				__builtin_memset( &TMP$1260$4, 0, 24ll );
				FBSTRING* vr$48 = fb_StrConcat( &TMP$1260$4, (void*)vr$45, -1ll, (void*)"]", 2ll );
				fb_StrAssign( (void*)OP3$1, -1ll, (void*)vr$48, -1ll, 0 );
				FBSTRING* vr$51 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
				__builtin_memset( &TMP$1261$4, 0, 24ll );
				FBSTRING* vr$54 = fb_StrConcat( &TMP$1261$4, (void*)vr$51, -1ll, (void*)"[", 2ll );
				__builtin_memset( &TMP$1262$4, 0, 24ll );
				FBSTRING* vr$57 = fb_StrConcat( &TMP$1262$4, (void*)vr$54, -1ll, (void*)&REGTEMPO$1, -1ll );
				__builtin_memset( &TMP$1263$4, 0, 24ll );
				FBSTRING* vr$60 = fb_StrConcat( &TMP$1263$4, (void*)vr$57, -1ll, (void*)"]", 2ll );
				fb_StrAssign( (void*)OP1$1, -1ll, (void*)vr$60, -1ll, 0 );
				fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
				goto label$948;
			}
			label$953:;
		}
		goto label$951;
		label$952:;
		{
			char* vr$62 = REG_TEMPO(  );
			fb_StrAssign( (void*)&REGTEMPO$1, -1ll, (void*)vr$62, 0ll, 0 );
			if( ((int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 56ll) + 8ll) & 2ll) != 0ll) | (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 56ll) + 8ll) & 1ll) != 0ll)) == 0ll ) goto label$956;
			{
				FBSTRING TMP$1265$4;
				FBSTRING TMP$1266$4;
				FBSTRING TMP$1267$4;
				FBSTRING TMP$1268$4;
				FBSTRING TMP$1269$4;
				FBSTRING TMP$1270$4;
				FBSTRING TMP$1272$4;
				FBSTRING TMP$1273$4;
				FBSTRING TMP$1274$4;
				FBSTRING TMP$1275$4;
				FBSTRING TMP$1276$4;
				FBSTRING TMP$1277$4;
				FBSTRING TMP$1278$4;
				FBSTRING TMP$1279$4;
				FBSTRING TMP$1280$4;
				FBSTRING TMP$1281$4;
				FBSTRING* vr$77 = fb_LongintToStr( *(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 64ll) );
				char* vr$80 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 56ll) );
				__builtin_memset( &TMP$1265$4, 0, 24ll );
				FBSTRING* vr$84 = fb_StrConcat( &TMP$1265$4, (void*)"lea ", 5ll, (void*)&REGTEMPO$1, -1ll );
				__builtin_memset( &TMP$1266$4, 0, 24ll );
				FBSTRING* vr$87 = fb_StrConcat( &TMP$1266$4, (void*)vr$84, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$1267$4, 0, 24ll );
				FBSTRING* vr$90 = fb_StrConcat( &TMP$1267$4, (void*)vr$87, -1ll, (void*)vr$80, 0ll );
				__builtin_memset( &TMP$1268$4, 0, 24ll );
				FBSTRING* vr$93 = fb_StrConcat( &TMP$1268$4, (void*)vr$90, -1ll, (void*)"[rip+", 6ll );
				__builtin_memset( &TMP$1269$4, 0, 24ll );
				FBSTRING* vr$96 = fb_StrConcat( &TMP$1269$4, (void*)vr$93, -1ll, (void*)vr$77, -1ll );
				__builtin_memset( &TMP$1270$4, 0, 24ll );
				FBSTRING* vr$99 = fb_StrConcat( &TMP$1270$4, (void*)vr$96, -1ll, (void*)"]", 2ll );
				fb_StrAssign( (void*)OP3$1, -1ll, (void*)vr$99, -1ll, 0 );
				FBSTRING* vr$103 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
				__builtin_memset( &TMP$1272$4, 0, 24ll );
				FBSTRING* vr$106 = fb_StrConcat( &TMP$1272$4, (void*)"\x0A", 2ll, (void*)vr$103, -1ll );
				__builtin_memset( &TMP$1273$4, 0, 24ll );
				FBSTRING* vr$109 = fb_StrConcat( &TMP$1273$4, (void*)vr$106, -1ll, (void*)"mov ", 5ll );
				__builtin_memset( &TMP$1274$4, 0, 24ll );
				FBSTRING* vr$112 = fb_StrConcat( &TMP$1274$4, (void*)vr$109, -1ll, (void*)&REGTEMPO$1, -1ll );
				__builtin_memset( &TMP$1275$4, 0, 24ll );
				FBSTRING* vr$115 = fb_StrConcat( &TMP$1275$4, (void*)vr$112, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$1276$4, 0, 24ll );
				FBSTRING* vr$118 = fb_StrConcat( &TMP$1276$4, (void*)vr$115, -1ll, (void*)"[", 2ll );
				__builtin_memset( &TMP$1277$4, 0, 24ll );
				FBSTRING* vr$121 = fb_StrConcat( &TMP$1277$4, (void*)vr$118, -1ll, (void*)&REGTEMPO$1, -1ll );
				__builtin_memset( &TMP$1278$4, 0, 24ll );
				FBSTRING* vr$124 = fb_StrConcat( &TMP$1278$4, (void*)vr$121, -1ll, (void*)"] #NO", 6ll );
				fb_StrConcatByref( (void*)OP3$1, -1ll, (void*)vr$124, -1ll, 0 );
				FBSTRING* vr$127 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
				__builtin_memset( &TMP$1279$4, 0, 24ll );
				FBSTRING* vr$130 = fb_StrConcat( &TMP$1279$4, (void*)vr$127, -1ll, (void*)"[", 2ll );
				__builtin_memset( &TMP$1280$4, 0, 24ll );
				FBSTRING* vr$133 = fb_StrConcat( &TMP$1280$4, (void*)vr$130, -1ll, (void*)&REGTEMPO$1, -1ll );
				__builtin_memset( &TMP$1281$4, 0, 24ll );
				FBSTRING* vr$136 = fb_StrConcat( &TMP$1281$4, (void*)vr$133, -1ll, (void*)"]", 2ll );
				fb_StrAssign( (void*)OP1$1, -1ll, (void*)vr$136, -1ll, 0 );
				fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
				goto label$948;
			}
			goto label$955;
			label$956:;
			{
				FBSTRING TMP$1282$4;
				FBSTRING TMP$1283$4;
				FBSTRING TMP$1284$4;
				FBSTRING TMP$1285$4;
				FBSTRING TMP$1286$4;
				FBSTRING TMP$1287$4;
				FBSTRING TMP$1288$4;
				FBSTRING* vr$140 = fb_LongintToStr( *(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 64ll) );
				__builtin_memset( &TMP$1282$4, 0, 24ll );
				FBSTRING* vr$144 = fb_StrConcat( &TMP$1282$4, (void*)"mov ", 5ll, (void*)&REGTEMPO$1, -1ll );
				__builtin_memset( &TMP$1283$4, 0, 24ll );
				FBSTRING* vr$147 = fb_StrConcat( &TMP$1283$4, (void*)vr$144, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$1284$4, 0, 24ll );
				FBSTRING* vr$150 = fb_StrConcat( &TMP$1284$4, (void*)vr$147, -1ll, (void*)vr$140, -1ll );
				__builtin_memset( &TMP$1285$4, 0, 24ll );
				FBSTRING* vr$153 = fb_StrConcat( &TMP$1285$4, (void*)vr$150, -1ll, (void*)"[rbp]", 6ll );
				fb_StrAssign( (void*)OP3$1, -1ll, (void*)vr$153, -1ll, 0 );
				FBSTRING* vr$156 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
				__builtin_memset( &TMP$1286$4, 0, 24ll );
				FBSTRING* vr$159 = fb_StrConcat( &TMP$1286$4, (void*)vr$156, -1ll, (void*)"[", 2ll );
				__builtin_memset( &TMP$1287$4, 0, 24ll );
				FBSTRING* vr$162 = fb_StrConcat( &TMP$1287$4, (void*)vr$159, -1ll, (void*)&REGTEMPO$1, -1ll );
				__builtin_memset( &TMP$1288$4, 0, 24ll );
				FBSTRING* vr$165 = fb_StrConcat( &TMP$1288$4, (void*)vr$162, -1ll, (void*)"]", 2ll );
				fb_StrAssign( (void*)OP1$1, -1ll, (void*)vr$165, -1ll, 0 );
				fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
				goto label$948;
			}
			label$955:;
		}
		label$951:;
	}
	goto label$949;
	label$950:;
	{
		char* vr$167 = REG_TEMPO(  );
		fb_StrAssign( (void*)&REGTEMPO$1, -1ll, (void*)vr$167, 0ll, 0 );
		if( ((int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 2ll) != 0ll) | (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 1ll) != 0ll)) == 0ll ) goto label$958;
		{
			FBSTRING TMP$1289$3;
			FBSTRING TMP$1290$3;
			FBSTRING TMP$1291$3;
			FBSTRING TMP$1292$3;
			FBSTRING TMP$1293$3;
			FBSTRING TMP$1294$3;
			FBSTRING* vr$179 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
			char* vr$181 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
			__builtin_memset( &TMP$1289$3, 0, 24ll );
			FBSTRING* vr$185 = fb_StrConcat( &TMP$1289$3, (void*)"lea ", 5ll, (void*)&REGTEMPO$1, -1ll );
			__builtin_memset( &TMP$1290$3, 0, 24ll );
			FBSTRING* vr$188 = fb_StrConcat( &TMP$1290$3, (void*)vr$185, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$1291$3, 0, 24ll );
			FBSTRING* vr$191 = fb_StrConcat( &TMP$1291$3, (void*)vr$188, -1ll, (void*)vr$181, 0ll );
			__builtin_memset( &TMP$1292$3, 0, 24ll );
			FBSTRING* vr$194 = fb_StrConcat( &TMP$1292$3, (void*)vr$191, -1ll, (void*)"[rip+", 6ll );
			__builtin_memset( &TMP$1293$3, 0, 24ll );
			FBSTRING* vr$197 = fb_StrConcat( &TMP$1293$3, (void*)vr$194, -1ll, (void*)vr$179, -1ll );
			__builtin_memset( &TMP$1294$3, 0, 24ll );
			FBSTRING* vr$200 = fb_StrConcat( &TMP$1294$3, (void*)vr$197, -1ll, (void*)"] #NO", 6ll );
			fb_StrAssign( (void*)OP3$1, -1ll, (void*)vr$200, -1ll, 0 );
		}
		goto label$957;
		label$958:;
		{
			FBSTRING TMP$1295$3;
			FBSTRING TMP$1296$3;
			FBSTRING TMP$1297$3;
			FBSTRING TMP$1298$3;
			FBSTRING* vr$202 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
			__builtin_memset( &TMP$1295$3, 0, 24ll );
			FBSTRING* vr$206 = fb_StrConcat( &TMP$1295$3, (void*)"lea ", 5ll, (void*)&REGTEMPO$1, -1ll );
			__builtin_memset( &TMP$1296$3, 0, 24ll );
			FBSTRING* vr$209 = fb_StrConcat( &TMP$1296$3, (void*)vr$206, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$1297$3, 0, 24ll );
			FBSTRING* vr$212 = fb_StrConcat( &TMP$1297$3, (void*)vr$209, -1ll, (void*)vr$202, -1ll );
			__builtin_memset( &TMP$1298$3, 0, 24ll );
			FBSTRING* vr$215 = fb_StrConcat( &TMP$1298$3, (void*)vr$212, -1ll, (void*)"[rbp]", 6ll );
			fb_StrAssign( (void*)OP3$1, -1ll, (void*)vr$215, -1ll, 0 );
		}
		label$957:;
		if( *(int64*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) != 4ll ) goto label$960;
		{
			FBSTRING TMP$1300$3;
			FBSTRING TMP$1301$3;
			FBSTRING TMP$1302$3;
			FBSTRING TMP$1303$3;
			int32 vr$221 = REG_FINDREAL( (int32)*(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 24ll) );
			__builtin_memset( &TMP$1300$3, 0, 24ll );
			FBSTRING* vr$227 = fb_StrConcat( &TMP$1300$3, (void*)"[", 2ll, (void*)&REGTEMPO$1, -1ll );
			__builtin_memset( &TMP$1301$3, 0, 24ll );
			FBSTRING* vr$230 = fb_StrConcat( &TMP$1301$3, (void*)vr$227, -1ll, (void*)"+", 2ll );
			__builtin_memset( &TMP$1302$3, 0, 24ll );
			FBSTRING* vr$233 = fb_StrConcat( &TMP$1302$3, (void*)vr$230, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$221 << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$1303$3, 0, 24ll );
			FBSTRING* vr$236 = fb_StrConcat( &TMP$1303$3, (void*)vr$233, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)OP1$1, -1ll, (void*)vr$236, -1ll, 0 );
			fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
			goto label$948;
		}
		goto label$959;
		label$960:;
		if( *(int64*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) != 1ll ) goto label$961;
		{
			FBSTRING TMP$1320$3;
			FBSTRING TMP$1321$3;
			if( ((int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 56ll) + 8ll) & 2ll) != 0ll) | (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 56ll) + 8ll) & 1ll) != 0ll)) == 0ll ) goto label$963;
			{
				FBSTRING TMP$1304$4;
				FBSTRING TMP$1305$4;
				FBSTRING TMP$1306$4;
				FBSTRING TMP$1307$4;
				FBSTRING TMP$1308$4;
				FBSTRING TMP$1309$4;
				FBSTRING TMP$1310$4;
				FBSTRING TMP$1311$4;
				FBSTRING TMP$1312$4;
				FBSTRING* vr$253 = fb_LongintToStr( *(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 64ll) );
				char* vr$256 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 56ll) );
				FBSTRING* vr$259 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
				__builtin_memset( &TMP$1304$4, 0, 24ll );
				FBSTRING* vr$262 = fb_StrConcat( &TMP$1304$4, (void*)"\x0A", 2ll, (void*)vr$259, -1ll );
				__builtin_memset( &TMP$1305$4, 0, 24ll );
				FBSTRING* vr$265 = fb_StrConcat( &TMP$1305$4, (void*)vr$262, -1ll, (void*)"add ", 5ll );
				__builtin_memset( &TMP$1306$4, 0, 24ll );
				FBSTRING* vr$268 = fb_StrConcat( &TMP$1306$4, (void*)vr$265, -1ll, (void*)&REGTEMPO$1, -1ll );
				__builtin_memset( &TMP$1307$4, 0, 24ll );
				FBSTRING* vr$271 = fb_StrConcat( &TMP$1307$4, (void*)vr$268, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$1308$4, 0, 24ll );
				FBSTRING* vr$274 = fb_StrConcat( &TMP$1308$4, (void*)vr$271, -1ll, (void*)vr$256, 0ll );
				__builtin_memset( &TMP$1309$4, 0, 24ll );
				FBSTRING* vr$277 = fb_StrConcat( &TMP$1309$4, (void*)vr$274, -1ll, (void*)"[rip+", 6ll );
				__builtin_memset( &TMP$1310$4, 0, 24ll );
				FBSTRING* vr$280 = fb_StrConcat( &TMP$1310$4, (void*)vr$277, -1ll, (void*)vr$253, -1ll );
				__builtin_memset( &TMP$1311$4, 0, 24ll );
				FBSTRING* vr$283 = fb_StrConcat( &TMP$1311$4, (void*)vr$280, -1ll, (void*)"]", 2ll );
				__builtin_memset( &TMP$1312$4, 0, 24ll );
				FBSTRING* vr$286 = fb_StrConcat( &TMP$1312$4, (void*)OP3$1, -1ll, (void*)vr$283, -1ll );
				fb_StrAssign( (void*)OP3$1, -1ll, (void*)vr$286, -1ll, 0 );
			}
			goto label$962;
			label$963:;
			{
				FBSTRING TMP$1313$4;
				FBSTRING TMP$1314$4;
				FBSTRING TMP$1315$4;
				FBSTRING TMP$1316$4;
				FBSTRING TMP$1317$4;
				FBSTRING TMP$1318$4;
				FBSTRING TMP$1319$4;
				FBSTRING* vr$289 = fb_LongintToStr( *(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 64ll) );
				FBSTRING* vr$292 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
				__builtin_memset( &TMP$1313$4, 0, 24ll );
				FBSTRING* vr$295 = fb_StrConcat( &TMP$1313$4, (void*)"\x0A", 2ll, (void*)vr$292, -1ll );
				__builtin_memset( &TMP$1314$4, 0, 24ll );
				FBSTRING* vr$298 = fb_StrConcat( &TMP$1314$4, (void*)vr$295, -1ll, (void*)"add ", 5ll );
				__builtin_memset( &TMP$1315$4, 0, 24ll );
				FBSTRING* vr$301 = fb_StrConcat( &TMP$1315$4, (void*)vr$298, -1ll, (void*)&REGTEMPO$1, -1ll );
				__builtin_memset( &TMP$1316$4, 0, 24ll );
				FBSTRING* vr$304 = fb_StrConcat( &TMP$1316$4, (void*)vr$301, -1ll, (void*)",", 2ll );
				__builtin_memset( &TMP$1317$4, 0, 24ll );
				FBSTRING* vr$307 = fb_StrConcat( &TMP$1317$4, (void*)vr$304, -1ll, (void*)vr$289, -1ll );
				__builtin_memset( &TMP$1318$4, 0, 24ll );
				FBSTRING* vr$310 = fb_StrConcat( &TMP$1318$4, (void*)vr$307, -1ll, (void*)"[rbp]", 6ll );
				__builtin_memset( &TMP$1319$4, 0, 24ll );
				FBSTRING* vr$313 = fb_StrConcat( &TMP$1319$4, (void*)OP3$1, -1ll, (void*)vr$310, -1ll );
				fb_StrAssign( (void*)OP3$1, -1ll, (void*)vr$313, -1ll, 0 );
			}
			label$962:;
			__builtin_memset( &TMP$1320$3, 0, 24ll );
			FBSTRING* vr$317 = fb_StrConcat( &TMP$1320$3, (void*)"[", 2ll, (void*)&REGTEMPO$1, -1ll );
			__builtin_memset( &TMP$1321$3, 0, 24ll );
			FBSTRING* vr$320 = fb_StrConcat( &TMP$1321$3, (void*)vr$317, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)OP1$1, -1ll, (void*)vr$320, -1ll, 0 );
			fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
			goto label$948;
		}
		label$961:;
		label$959:;
	}
	label$949:;
	__builtin_memset( &TMP$1322$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$1322$1, -1ll, (void*)"", 1ll, 0 );
	HWRITEASM64( &TMP$1322$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$1322$1 );
	__builtin_memset( &TMP$1325$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$1325$1, -1ll, (void*)"FOUND AN ERROR : prepare_IDX case not handled 01", 49ll, 0 );
	HWRITEASM64( &TMP$1325$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$1325$1 );
	__builtin_memset( &TMP$1326$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$1326$1, -1ll, (void*)"", 1ll, 0 );
	HWRITEASM64( &TMP$1326$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$1326$1 );
	int32 vr$334 = fb_StrCompare( (void*)OP1$1, -1ll, (void*)"", 1ll );
	if( (int64)vr$334 != 0ll ) goto label$965;
	{
		fb_StrAssign( (void*)OP1$1, -1ll, (void*)"X X", 4ll, 0 );
		label$965:;
	}
	fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
	label$948:;
}

static char* HGETBOPCODE( int64 OP$1 )
{
	char* fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$966:;
	{
		uint64 TMP$1328$2;
		TMP$1328$2 = (uint64)OP$1;
		goto label$969;
		label$970:;
		{
			fb$result$1 = (char*)"add";
		}
		goto label$968;
		label$971:;
		{
			fb$result$1 = (char*)"sub";
		}
		goto label$968;
		label$972:;
		{
			fb$result$1 = (char*)"mul";
		}
		goto label$968;
		label$973:;
		{
			fb$result$1 = (char*)"div";
		}
		goto label$968;
		label$974:;
		{
			fb$result$1 = (char*)"intdiv";
		}
		goto label$968;
		label$975:;
		{
			fb$result$1 = (char*)"mod";
		}
		goto label$968;
		label$976:;
		{
			fb$result$1 = (char*)"shl";
		}
		goto label$968;
		label$977:;
		{
			fb$result$1 = (char*)"ashr";
		}
		goto label$968;
		label$978:;
		{
			fb$result$1 = (char*)"and";
		}
		goto label$968;
		label$979:;
		{
			fb$result$1 = (char*)"or";
		}
		goto label$968;
		label$980:;
		{
			fb$result$1 = (char*)"xor";
		}
		goto label$968;
		label$981:;
		{
			fb$result$1 = (char*)"icmp eq";
		}
		goto label$968;
		label$982:;
		{
			fb$result$1 = (char*)"icmp ne";
		}
		goto label$968;
		label$983:;
		{
			fb$result$1 = (char*)"icmp sgt";
		}
		goto label$968;
		label$984:;
		{
			fb$result$1 = (char*)"icmp slt";
		}
		goto label$968;
		label$985:;
		{
			fb$result$1 = (char*)"icmp sge";
		}
		goto label$968;
		label$986:;
		{
			fb$result$1 = (char*)"icmp sle";
		}
		goto label$968;
		label$987:;
		{
			fb$result$1 = (char*)"eqv";
		}
		goto label$968;
		label$988:;
		{
			fb$result$1 = (char*)"imp";
		}
		goto label$968;
		label$989:;
		{
			fb$result$1 = (char*)"jmp";
		}
		goto label$968;
		label$990:;
		{
			fb$result$1 = (char*)"je";
		}
		goto label$968;
		label$991:;
		{
			fb$result$1 = (char*)"jgt";
		}
		goto label$968;
		label$992:;
		{
			fb$result$1 = (char*)"jlt";
		}
		goto label$968;
		label$993:;
		{
			fb$result$1 = (char*)"jne";
		}
		goto label$968;
		label$994:;
		{
			fb$result$1 = (char*)"jge";
		}
		goto label$968;
		label$995:;
		{
			fb$result$1 = (char*)"jle";
		}
		goto label$968;
		label$996:;
		{
			fb$result$1 = (char*)"call";
		}
		goto label$968;
		label$997:;
		{
			fb$result$1 = (char*)"bop unknown";
		}
		goto label$968;
		label$969:;
		static const void* tmp$4071[72ll] = {
			&&label$970,
			&&label$971,
			&&label$972,
			&&label$973,
			&&label$974,
			&&label$975,
			&&label$978,
			&&label$979,
			&&label$997,
			&&label$997,
			&&label$980,
			&&label$987,
			&&label$988,
			&&label$976,
			&&label$977,
			&&label$997,
			&&label$997,
			&&label$981,
			&&label$983,
			&&label$984,
			&&label$982,
			&&label$985,
			&&label$986,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$997,
			&&label$990,
			&&label$991,
			&&label$992,
			&&label$993,
			&&label$994,
			&&label$995,
			&&label$989,
			&&label$996,
		};
		if( (TMP$1328$2 - 28ull) > 71ull ) goto label$997;
		goto *tmp$4071[TMP$1328$2 - 28ull];
		label$968:;
	}
	label$967:;
	return fb$result$1;
}

static void RESTORE_VRREG( struct $6IRVREG* VR$1, int64 VRREG$1 )
{
	label$998:;
	*(int64*)((uint8*)&CTX$ + 424ll) = VRREG$1;
	*(int64*)((uint8*)&CTX$ + 432ll) = 1ll;
	if( (int64)*(int32*)((int64)(int32*)REGHANDLE$ + (VRREG$1 << (2ll & 63ll))) != -2ll ) goto label$1001;
	{
		*(int32*)((int64)(int32*)REGHANDLE$ + (VRREG$1 << (2ll & 63ll))) = (int32)*(int64*)((uint8*)VR$1 + 24ll);
	}
	label$1001:;
	label$1000:;
	label$999:;
}

static void BOP_FLOAT( int64 OP$1, struct $6IRVREG* V1$1, struct $6IRVREG* V2$1, struct $6IRVREG* VR$1, FBSTRING* OP1$1, FBSTRING* OP2$1, FBSTRING* OP3$1, FBSTRING* OP4$1, FBSTRING* PREFIX$1, struct $8FBSYMBOL* LABEL$1 )
{
	label$1002:;
	FBSTRING LNAME1$1;
	__builtin_memset( &LNAME1$1, 0, 24ll );
	FBSTRING LNAME2$1;
	__builtin_memset( &LNAME2$1, 0, 24ll );
	FBSTRING MOVREG$1;
	__builtin_memset( &MOVREG$1, 0, 24ll );
	FBSTRING MOVMEM$1;
	__builtin_memset( &MOVMEM$1, 0, 24ll );
	FBSTRING COMPREG$1;
	__builtin_memset( &COMPREG$1, 0, 24ll );
	FBSTRING IMMREG$1;
	__builtin_memset( &IMMREG$1, 0, 24ll );
	FBSTRING ADDREG$1;
	__builtin_memset( &ADDREG$1, 0, 24ll );
	FBSTRING SUBREG$1;
	__builtin_memset( &SUBREG$1, 0, 24ll );
	FBSTRING MULREG$1;
	__builtin_memset( &MULREG$1, 0, 24ll );
	FBSTRING DIVREG$1;
	__builtin_memset( &DIVREG$1, 0, 24ll );
	int32 VRREG$1;
	__builtin_memset( &VRREG$1, 0, 4ll );
	$11FB_DATATYPE V1DTYPE$1;
	__builtin_memset( &V1DTYPE$1, 0, 8ll );
	char* JMPCODE$1;
	__builtin_memset( &JMPCODE$1, 0, 8ll );
	if( VR$1 == (struct $6IRVREG*)0ull ) goto label$1005;
	{
		int32 vr$15 = REG_FINDFREE( (int32)*(int64*)((uint8*)VR$1 + 24ll), -1ll );
		VRREG$1 = vr$15;
	}
	label$1005:;
	label$1004:;
	V1DTYPE$1 = *(int64*)((uint8*)V1$1 + 8ll) & 511ll;
	if( V1DTYPE$1 != 16ll ) goto label$1007;
	{
		fb_StrAssign( (void*)&MOVREG$1, -1ll, (void*)"movq ", 6ll, 0 );
		fb_StrAssign( (void*)&MOVMEM$1, -1ll, (void*)"movsd ", 7ll, 0 );
		fb_StrAssign( (void*)&COMPREG$1, -1ll, (void*)"ucomisd ", 9ll, 0 );
		fb_StrAssign( (void*)&IMMREG$1, -1ll, (void*)"rax", 4ll, 0 );
		fb_StrAssign( (void*)&ADDREG$1, -1ll, (void*)"addsd ", 7ll, 0 );
		fb_StrAssign( (void*)&SUBREG$1, -1ll, (void*)"subsd ", 7ll, 0 );
		fb_StrAssign( (void*)&MULREG$1, -1ll, (void*)"mulsd ", 7ll, 0 );
		fb_StrAssign( (void*)&DIVREG$1, -1ll, (void*)"divsd ", 7ll, 0 );
	}
	goto label$1006;
	label$1007:;
	{
		fb_StrAssign( (void*)&MOVREG$1, -1ll, (void*)"movd ", 6ll, 0 );
		fb_StrAssign( (void*)&MOVMEM$1, -1ll, (void*)"movss ", 7ll, 0 );
		fb_StrAssign( (void*)&COMPREG$1, -1ll, (void*)"ucomiss ", 9ll, 0 );
		fb_StrAssign( (void*)&IMMREG$1, -1ll, (void*)"eax", 4ll, 0 );
		fb_StrAssign( (void*)&ADDREG$1, -1ll, (void*)"addss ", 7ll, 0 );
		fb_StrAssign( (void*)&SUBREG$1, -1ll, (void*)"subss ", 7ll, 0 );
		fb_StrAssign( (void*)&MULREG$1, -1ll, (void*)"mulss ", 7ll, 0 );
		fb_StrAssign( (void*)&DIVREG$1, -1ll, (void*)"divss ", 7ll, 0 );
	}
	label$1006:;
	if( *(int64*)V1$1 != 4ll ) goto label$1009;
	{
		FBSTRING TMP$1367$2;
		FBSTRING TMP$1368$2;
		FBSTRING TMP$1369$2;
		__builtin_memset( &TMP$1369$2, 0, 24ll );
		__builtin_memset( &TMP$1367$2, 0, 24ll );
		FBSTRING* vr$39 = fb_StrConcat( &TMP$1367$2, (void*)&MOVREG$1, -1ll, (void*)"xmm0, ", 7ll );
		__builtin_memset( &TMP$1368$2, 0, 24ll );
		FBSTRING* vr$42 = fb_StrConcat( &TMP$1368$2, (void*)vr$39, -1ll, (void*)OP1$1, -1ll );
		fb_StrAssign( (void*)&TMP$1369$2, -1ll, (void*)vr$42, -1ll, 0 );
		HWRITEASM64( &TMP$1369$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$1369$2 );
	}
	goto label$1008;
	label$1009:;
	if( *(int64*)V1$1 != 0ll ) goto label$1010;
	{
		FBSTRING TMP$1370$2;
		FBSTRING TMP$1371$2;
		FBSTRING TMP$1372$2;
		FBSTRING TMP$1373$2;
		FBSTRING TMP$1374$2;
		FBSTRING TMP$1375$2;
		FBSTRING TMP$1376$2;
		__builtin_memset( &TMP$1373$2, 0, 24ll );
		__builtin_memset( &TMP$1370$2, 0, 24ll );
		FBSTRING* vr$51 = fb_StrConcat( &TMP$1370$2, (void*)"mov ", 5ll, (void*)&IMMREG$1, -1ll );
		__builtin_memset( &TMP$1371$2, 0, 24ll );
		FBSTRING* vr$54 = fb_StrConcat( &TMP$1371$2, (void*)vr$51, -1ll, (void*)", ", 3ll );
		__builtin_memset( &TMP$1372$2, 0, 24ll );
		FBSTRING* vr$57 = fb_StrConcat( &TMP$1372$2, (void*)vr$54, -1ll, (void*)OP1$1, -1ll );
		fb_StrAssign( (void*)&TMP$1373$2, -1ll, (void*)vr$57, -1ll, 0 );
		HWRITEASM64( &TMP$1373$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$1373$2 );
		__builtin_memset( &TMP$1376$2, 0, 24ll );
		__builtin_memset( &TMP$1374$2, 0, 24ll );
		FBSTRING* vr$66 = fb_StrConcat( &TMP$1374$2, (void*)&MOVREG$1, -1ll, (void*)"xmm0, ", 7ll );
		__builtin_memset( &TMP$1375$2, 0, 24ll );
		FBSTRING* vr$69 = fb_StrConcat( &TMP$1375$2, (void*)vr$66, -1ll, (void*)&IMMREG$1, -1ll );
		fb_StrAssign( (void*)&TMP$1376$2, -1ll, (void*)vr$69, -1ll, 0 );
		HWRITEASM64( &TMP$1376$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$1376$2 );
	}
	goto label$1008;
	label$1010:;
	{
		FBSTRING TMP$1377$2;
		FBSTRING TMP$1378$2;
		FBSTRING TMP$1379$2;
		__builtin_memset( &TMP$1379$2, 0, 24ll );
		__builtin_memset( &TMP$1377$2, 0, 24ll );
		FBSTRING* vr$77 = fb_StrConcat( &TMP$1377$2, (void*)&MOVMEM$1, -1ll, (void*)"xmm0, ", 7ll );
		__builtin_memset( &TMP$1378$2, 0, 24ll );
		FBSTRING* vr$80 = fb_StrConcat( &TMP$1378$2, (void*)vr$77, -1ll, (void*)OP1$1, -1ll );
		fb_StrAssign( (void*)&TMP$1379$2, -1ll, (void*)vr$80, -1ll, 0 );
		HWRITEASM64( &TMP$1379$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$1379$2 );
	}
	label$1008:;
	if( *(int64*)V2$1 != 4ll ) goto label$1012;
	{
		FBSTRING TMP$1381$2;
		FBSTRING TMP$1382$2;
		FBSTRING TMP$1383$2;
		__builtin_memset( &TMP$1383$2, 0, 24ll );
		__builtin_memset( &TMP$1381$2, 0, 24ll );
		FBSTRING* vr$89 = fb_StrConcat( &TMP$1381$2, (void*)&MOVREG$1, -1ll, (void*)"xmm1, ", 7ll );
		__builtin_memset( &TMP$1382$2, 0, 24ll );
		FBSTRING* vr$92 = fb_StrConcat( &TMP$1382$2, (void*)vr$89, -1ll, (void*)OP2$1, -1ll );
		fb_StrAssign( (void*)&TMP$1383$2, -1ll, (void*)vr$92, -1ll, 0 );
		HWRITEASM64( &TMP$1383$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$1383$2 );
	}
	goto label$1011;
	label$1012:;
	if( *(int64*)V2$1 != 0ll ) goto label$1013;
	{
		FBSTRING TMP$1384$2;
		FBSTRING TMP$1385$2;
		FBSTRING TMP$1386$2;
		FBSTRING TMP$1387$2;
		FBSTRING TMP$1388$2;
		FBSTRING TMP$1389$2;
		FBSTRING TMP$1390$2;
		__builtin_memset( &TMP$1387$2, 0, 24ll );
		__builtin_memset( &TMP$1384$2, 0, 24ll );
		FBSTRING* vr$101 = fb_StrConcat( &TMP$1384$2, (void*)"mov ", 5ll, (void*)&IMMREG$1, -1ll );
		__builtin_memset( &TMP$1385$2, 0, 24ll );
		FBSTRING* vr$104 = fb_StrConcat( &TMP$1385$2, (void*)vr$101, -1ll, (void*)", ", 3ll );
		__builtin_memset( &TMP$1386$2, 0, 24ll );
		FBSTRING* vr$107 = fb_StrConcat( &TMP$1386$2, (void*)vr$104, -1ll, (void*)OP2$1, -1ll );
		fb_StrAssign( (void*)&TMP$1387$2, -1ll, (void*)vr$107, -1ll, 0 );
		HWRITEASM64( &TMP$1387$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$1387$2 );
		__builtin_memset( &TMP$1390$2, 0, 24ll );
		__builtin_memset( &TMP$1388$2, 0, 24ll );
		FBSTRING* vr$116 = fb_StrConcat( &TMP$1388$2, (void*)&MOVREG$1, -1ll, (void*)"xmm1, ", 7ll );
		__builtin_memset( &TMP$1389$2, 0, 24ll );
		FBSTRING* vr$119 = fb_StrConcat( &TMP$1389$2, (void*)vr$116, -1ll, (void*)&IMMREG$1, -1ll );
		fb_StrAssign( (void*)&TMP$1390$2, -1ll, (void*)vr$119, -1ll, 0 );
		HWRITEASM64( &TMP$1390$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$1390$2 );
	}
	goto label$1011;
	label$1013:;
	{
		FBSTRING TMP$1391$2;
		FBSTRING TMP$1392$2;
		FBSTRING TMP$1393$2;
		__builtin_memset( &TMP$1393$2, 0, 24ll );
		__builtin_memset( &TMP$1391$2, 0, 24ll );
		FBSTRING* vr$127 = fb_StrConcat( &TMP$1391$2, (void*)&MOVMEM$1, -1ll, (void*)"xmm1, ", 7ll );
		__builtin_memset( &TMP$1392$2, 0, 24ll );
		FBSTRING* vr$130 = fb_StrConcat( &TMP$1392$2, (void*)vr$127, -1ll, (void*)OP2$1, -1ll );
		fb_StrAssign( (void*)&TMP$1393$2, -1ll, (void*)vr$130, -1ll, 0 );
		HWRITEASM64( &TMP$1393$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$1393$2 );
	}
	label$1011:;
	{
		if( OP$1 == 45ll ) goto label$1016;
		label$1017:;
		if( OP$1 == 48ll ) goto label$1016;
		label$1018:;
		if( OP$1 == 47ll ) goto label$1016;
		label$1019:;
		if( OP$1 == 50ll ) goto label$1016;
		label$1020:;
		if( OP$1 == 46ll ) goto label$1016;
		label$1021:;
		if( OP$1 != 49ll ) goto label$1015;
		label$1016:;
		{
			if( LABEL$1 != (struct $8FBSYMBOL*)0ull ) goto label$1023;
			{
				FBSTRING TMP$1395$4;
				FBSTRING TMP$1396$4;
				FBSTRING TMP$1397$4;
				char* vr$134 = SYMBUNIQUELABEL(  );
				fb_StrAssign( (void*)&LNAME1$1, -1ll, (void*)vr$134, 0ll, 0 );
				__builtin_memset( &TMP$1397$4, 0, 24ll );
				__builtin_memset( &TMP$1395$4, 0, 24ll );
				FBSTRING* vr$141 = fb_StrConcat( &TMP$1395$4, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)VRREG$1 << (3ll & 63ll))), 0ll );
				__builtin_memset( &TMP$1396$4, 0, 24ll );
				FBSTRING* vr$144 = fb_StrConcat( &TMP$1396$4, (void*)vr$141, -1ll, (void*)", -1", 5ll );
				fb_StrAssign( (void*)&TMP$1397$4, -1ll, (void*)vr$144, -1ll, 0 );
				HWRITEASM64( &TMP$1397$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1397$4 );
			}
			label$1023:;
			label$1022:;
			{
				if( OP$1 != 45ll ) goto label$1025;
				label$1026:;
				{
					FBSTRING TMP$1399$5;
					FBSTRING TMP$1400$5;
					FBSTRING TMP$1402$5;
					FBSTRING TMP$1403$5;
					__builtin_memset( &TMP$1400$5, 0, 24ll );
					__builtin_memset( &TMP$1399$5, 0, 24ll );
					FBSTRING* vr$152 = fb_StrConcat( &TMP$1399$5, (void*)&COMPREG$1, -1ll, (void*)"xmm0, xmm1", 11ll );
					fb_StrAssign( (void*)&TMP$1400$5, -1ll, (void*)vr$152, -1ll, 0 );
					HWRITEASM64( &TMP$1400$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1400$5 );
					char* vr$156 = SYMBUNIQUELABEL(  );
					fb_StrAssign( (void*)&LNAME2$1, -1ll, (void*)vr$156, 0ll, 0 );
					__builtin_memset( &TMP$1403$5, 0, 24ll );
					__builtin_memset( &TMP$1402$5, 0, 24ll );
					FBSTRING* vr$162 = fb_StrConcat( &TMP$1402$5, (void*)"jp ", 4ll, (void*)&LNAME2$1, -1ll );
					fb_StrAssign( (void*)&TMP$1403$5, -1ll, (void*)vr$162, -1ll, 0 );
					HWRITEASM64( &TMP$1403$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1403$5 );
					JMPCODE$1 = (char*)"je ";
				}
				goto label$1024;
				label$1025:;
				if( OP$1 != 48ll ) goto label$1027;
				label$1028:;
				{
					FBSTRING TMP$1405$5;
					FBSTRING TMP$1406$5;
					__builtin_memset( &TMP$1406$5, 0, 24ll );
					__builtin_memset( &TMP$1405$5, 0, 24ll );
					FBSTRING* vr$170 = fb_StrConcat( &TMP$1405$5, (void*)&COMPREG$1, -1ll, (void*)"xmm0, xmm1", 11ll );
					fb_StrAssign( (void*)&TMP$1406$5, -1ll, (void*)vr$170, -1ll, 0 );
					HWRITEASM64( &TMP$1406$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1406$5 );
					if( LABEL$1 != (struct $8FBSYMBOL*)0ull ) goto label$1030;
					{
						FBSTRING TMP$1407$6;
						FBSTRING TMP$1408$6;
						__builtin_memset( &TMP$1408$6, 0, 24ll );
						__builtin_memset( &TMP$1407$6, 0, 24ll );
						FBSTRING* vr$178 = fb_StrConcat( &TMP$1407$6, (void*)"jp ", 4ll, (void*)&LNAME1$1, -1ll );
						fb_StrAssign( (void*)&TMP$1408$6, -1ll, (void*)vr$178, -1ll, 0 );
						HWRITEASM64( &TMP$1408$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1408$6 );
					}
					goto label$1029;
					label$1030:;
					{
						FBSTRING TMP$1409$6;
						FBSTRING TMP$1410$6;
						__builtin_memset( &TMP$1410$6, 0, 24ll );
						char* vr$183 = SYMBGETMANGLEDNAME( LABEL$1 );
						__builtin_memset( &TMP$1409$6, 0, 24ll );
						FBSTRING* vr$186 = fb_StrConcat( &TMP$1409$6, (void*)"jp ", 4ll, (void*)vr$183, 0ll );
						fb_StrAssign( (void*)&TMP$1410$6, -1ll, (void*)vr$186, -1ll, 0 );
						HWRITEASM64( &TMP$1410$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1410$6 );
					}
					label$1029:;
					JMPCODE$1 = (char*)"jne ";
				}
				goto label$1024;
				label$1027:;
				if( OP$1 != 47ll ) goto label$1031;
				label$1032:;
				{
					if( LABEL$1 == (struct $8FBSYMBOL*)0ull ) goto label$1034;
					{
						FBSTRING TMP$1412$6;
						FBSTRING TMP$1413$6;
						__builtin_memset( &TMP$1413$6, 0, 24ll );
						__builtin_memset( &TMP$1412$6, 0, 24ll );
						FBSTRING* vr$194 = fb_StrConcat( &TMP$1412$6, (void*)&COMPREG$1, -1ll, (void*)"xmm0, xmm1", 11ll );
						fb_StrAssign( (void*)&TMP$1413$6, -1ll, (void*)vr$194, -1ll, 0 );
						HWRITEASM64( &TMP$1413$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1413$6 );
						JMPCODE$1 = (char*)"jb ";
					}
					goto label$1033;
					label$1034:;
					{
						FBSTRING TMP$1416$6;
						FBSTRING TMP$1417$6;
						__builtin_memset( &TMP$1417$6, 0, 24ll );
						__builtin_memset( &TMP$1416$6, 0, 24ll );
						FBSTRING* vr$202 = fb_StrConcat( &TMP$1416$6, (void*)&COMPREG$1, -1ll, (void*)"xmm1, xmm0", 11ll );
						fb_StrAssign( (void*)&TMP$1417$6, -1ll, (void*)vr$202, -1ll, 0 );
						HWRITEASM64( &TMP$1417$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1417$6 );
						JMPCODE$1 = (char*)"ja ";
					}
					label$1033:;
				}
				goto label$1024;
				label$1031:;
				if( OP$1 != 50ll ) goto label$1035;
				label$1036:;
				{
					if( LABEL$1 == (struct $8FBSYMBOL*)0ull ) goto label$1038;
					{
						FBSTRING TMP$1419$6;
						FBSTRING TMP$1420$6;
						__builtin_memset( &TMP$1420$6, 0, 24ll );
						__builtin_memset( &TMP$1419$6, 0, 24ll );
						FBSTRING* vr$210 = fb_StrConcat( &TMP$1419$6, (void*)&COMPREG$1, -1ll, (void*)"xmm0, xmm1", 11ll );
						fb_StrAssign( (void*)&TMP$1420$6, -1ll, (void*)vr$210, -1ll, 0 );
						HWRITEASM64( &TMP$1420$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1420$6 );
						JMPCODE$1 = (char*)"jbe ";
					}
					goto label$1037;
					label$1038:;
					{
						FBSTRING TMP$1422$6;
						FBSTRING TMP$1423$6;
						__builtin_memset( &TMP$1423$6, 0, 24ll );
						__builtin_memset( &TMP$1422$6, 0, 24ll );
						FBSTRING* vr$218 = fb_StrConcat( &TMP$1422$6, (void*)&COMPREG$1, -1ll, (void*)"xmm1, xmm0", 11ll );
						fb_StrAssign( (void*)&TMP$1423$6, -1ll, (void*)vr$218, -1ll, 0 );
						HWRITEASM64( &TMP$1423$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1423$6 );
						JMPCODE$1 = (char*)"jae ";
					}
					label$1037:;
				}
				goto label$1024;
				label$1035:;
				if( OP$1 != 46ll ) goto label$1039;
				label$1040:;
				{
					if( LABEL$1 == (struct $8FBSYMBOL*)0ull ) goto label$1042;
					{
						FBSTRING TMP$1425$6;
						FBSTRING TMP$1426$6;
						__builtin_memset( &TMP$1426$6, 0, 24ll );
						__builtin_memset( &TMP$1425$6, 0, 24ll );
						FBSTRING* vr$226 = fb_StrConcat( &TMP$1425$6, (void*)&COMPREG$1, -1ll, (void*)"xmm1, xmm0", 11ll );
						fb_StrAssign( (void*)&TMP$1426$6, -1ll, (void*)vr$226, -1ll, 0 );
						HWRITEASM64( &TMP$1426$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1426$6 );
						JMPCODE$1 = (char*)"jb ";
					}
					goto label$1041;
					label$1042:;
					{
						FBSTRING TMP$1427$6;
						FBSTRING TMP$1428$6;
						__builtin_memset( &TMP$1428$6, 0, 24ll );
						__builtin_memset( &TMP$1427$6, 0, 24ll );
						FBSTRING* vr$234 = fb_StrConcat( &TMP$1427$6, (void*)&COMPREG$1, -1ll, (void*)"xmm0, xmm1", 11ll );
						fb_StrAssign( (void*)&TMP$1428$6, -1ll, (void*)vr$234, -1ll, 0 );
						HWRITEASM64( &TMP$1428$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1428$6 );
						JMPCODE$1 = (char*)"ja ";
					}
					label$1041:;
				}
				goto label$1024;
				label$1039:;
				if( OP$1 != 49ll ) goto label$1043;
				label$1044:;
				{
					if( LABEL$1 == (struct $8FBSYMBOL*)0ull ) goto label$1046;
					{
						FBSTRING TMP$1429$6;
						FBSTRING TMP$1430$6;
						__builtin_memset( &TMP$1430$6, 0, 24ll );
						__builtin_memset( &TMP$1429$6, 0, 24ll );
						FBSTRING* vr$242 = fb_StrConcat( &TMP$1429$6, (void*)&COMPREG$1, -1ll, (void*)"xmm1, xmm0", 11ll );
						fb_StrAssign( (void*)&TMP$1430$6, -1ll, (void*)vr$242, -1ll, 0 );
						HWRITEASM64( &TMP$1430$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1430$6 );
						JMPCODE$1 = (char*)"jbe ";
					}
					goto label$1045;
					label$1046:;
					{
						FBSTRING TMP$1431$6;
						FBSTRING TMP$1432$6;
						__builtin_memset( &TMP$1432$6, 0, 24ll );
						__builtin_memset( &TMP$1431$6, 0, 24ll );
						FBSTRING* vr$250 = fb_StrConcat( &TMP$1431$6, (void*)&COMPREG$1, -1ll, (void*)"xmm0, xmm1", 11ll );
						fb_StrAssign( (void*)&TMP$1432$6, -1ll, (void*)vr$250, -1ll, 0 );
						HWRITEASM64( &TMP$1432$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1432$6 );
						JMPCODE$1 = (char*)"jae ";
					}
					label$1045:;
				}
				label$1043:;
				label$1024:;
			}
			if( LABEL$1 != (struct $8FBSYMBOL*)0ull ) goto label$1048;
			{
				FBSTRING TMP$1433$4;
				FBSTRING TMP$1434$4;
				__builtin_memset( &TMP$1434$4, 0, 24ll );
				__builtin_memset( &TMP$1433$4, 0, 24ll );
				FBSTRING* vr$258 = fb_StrConcat( &TMP$1433$4, (void*)JMPCODE$1, 0ll, (void*)&LNAME1$1, -1ll );
				fb_StrAssign( (void*)&TMP$1434$4, -1ll, (void*)vr$258, -1ll, 0 );
				HWRITEASM64( &TMP$1434$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1434$4 );
			}
			goto label$1047;
			label$1048:;
			{
				FBSTRING TMP$1435$4;
				FBSTRING TMP$1436$4;
				__builtin_memset( &TMP$1436$4, 0, 24ll );
				char* vr$263 = SYMBGETMANGLEDNAME( LABEL$1 );
				__builtin_memset( &TMP$1435$4, 0, 24ll );
				FBSTRING* vr$266 = fb_StrConcat( &TMP$1435$4, (void*)JMPCODE$1, 0ll, (void*)vr$263, 0ll );
				fb_StrAssign( (void*)&TMP$1436$4, -1ll, (void*)vr$266, -1ll, 0 );
				HWRITEASM64( &TMP$1436$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1436$4 );
				REG_MARK( LABEL$1 );
			}
			label$1047:;
			if( OP$1 != 45ll ) goto label$1050;
			{
				FBSTRING TMP$1437$4;
				FBSTRING TMP$1438$4;
				__builtin_memset( &TMP$1438$4, 0, 24ll );
				__builtin_memset( &TMP$1437$4, 0, 24ll );
				FBSTRING* vr$274 = fb_StrConcat( &TMP$1437$4, (void*)&LNAME2$1, -1ll, (void*)":", 2ll );
				fb_StrAssign( (void*)&TMP$1438$4, -1ll, (void*)vr$274, -1ll, 0 );
				HWRITEASM64( &TMP$1438$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1438$4 );
				label$1050:;
			}
			if( LABEL$1 != (struct $8FBSYMBOL*)0ull ) goto label$1052;
			{
				FBSTRING TMP$1440$4;
				FBSTRING TMP$1441$4;
				FBSTRING TMP$1442$4;
				FBSTRING TMP$1443$4;
				FBSTRING TMP$1444$4;
				FBSTRING TMP$1445$4;
				__builtin_memset( &TMP$1443$4, 0, 24ll );
				__builtin_memset( &TMP$1440$4, 0, 24ll );
				FBSTRING* vr$285 = fb_StrConcat( &TMP$1440$4, (void*)"xor ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)VRREG$1 << (3ll & 63ll))), 0ll );
				__builtin_memset( &TMP$1441$4, 0, 24ll );
				FBSTRING* vr$288 = fb_StrConcat( &TMP$1441$4, (void*)vr$285, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$1442$4, 0, 24ll );
				FBSTRING* vr$291 = fb_StrConcat( &TMP$1442$4, (void*)vr$288, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)VRREG$1 << (3ll & 63ll))), 0ll );
				fb_StrAssign( (void*)&TMP$1443$4, -1ll, (void*)vr$291, -1ll, 0 );
				HWRITEASM64( &TMP$1443$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1443$4 );
				RESTORE_VRREG( VR$1, (int64)VRREG$1 );
				__builtin_memset( &TMP$1445$4, 0, 24ll );
				__builtin_memset( &TMP$1444$4, 0, 24ll );
				FBSTRING* vr$300 = fb_StrConcat( &TMP$1444$4, (void*)&LNAME1$1, -1ll, (void*)":", 2ll );
				fb_StrAssign( (void*)&TMP$1445$4, -1ll, (void*)vr$300, -1ll, 0 );
				HWRITEASM64( &TMP$1445$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1445$4 );
			}
			label$1052:;
			label$1051:;
		}
		goto label$1014;
		label$1015:;
		if( OP$1 == 28ll ) goto label$1054;
		label$1055:;
		if( OP$1 == 29ll ) goto label$1054;
		label$1056:;
		if( OP$1 == 30ll ) goto label$1054;
		label$1057:;
		if( OP$1 != 31ll ) goto label$1053;
		label$1054:;
		{
			{
				if( OP$1 != 28ll ) goto label$1059;
				label$1060:;
				{
					FBSTRING TMP$1446$5;
					FBSTRING TMP$1447$5;
					__builtin_memset( &TMP$1447$5, 0, 24ll );
					__builtin_memset( &TMP$1446$5, 0, 24ll );
					FBSTRING* vr$308 = fb_StrConcat( &TMP$1446$5, (void*)&ADDREG$1, -1ll, (void*)"xmm0, xmm1", 11ll );
					fb_StrAssign( (void*)&TMP$1447$5, -1ll, (void*)vr$308, -1ll, 0 );
					HWRITEASM64( &TMP$1447$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1447$5 );
				}
				goto label$1058;
				label$1059:;
				if( OP$1 != 29ll ) goto label$1061;
				label$1062:;
				{
					FBSTRING TMP$1448$5;
					FBSTRING TMP$1449$5;
					__builtin_memset( &TMP$1449$5, 0, 24ll );
					__builtin_memset( &TMP$1448$5, 0, 24ll );
					FBSTRING* vr$316 = fb_StrConcat( &TMP$1448$5, (void*)&SUBREG$1, -1ll, (void*)"xmm0, xmm1", 11ll );
					fb_StrAssign( (void*)&TMP$1449$5, -1ll, (void*)vr$316, -1ll, 0 );
					HWRITEASM64( &TMP$1449$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1449$5 );
				}
				goto label$1058;
				label$1061:;
				if( OP$1 != 30ll ) goto label$1063;
				label$1064:;
				{
					FBSTRING TMP$1450$5;
					FBSTRING TMP$1451$5;
					__builtin_memset( &TMP$1451$5, 0, 24ll );
					__builtin_memset( &TMP$1450$5, 0, 24ll );
					FBSTRING* vr$324 = fb_StrConcat( &TMP$1450$5, (void*)&MULREG$1, -1ll, (void*)"xmm0, xmm1", 11ll );
					fb_StrAssign( (void*)&TMP$1451$5, -1ll, (void*)vr$324, -1ll, 0 );
					HWRITEASM64( &TMP$1451$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1451$5 );
				}
				goto label$1058;
				label$1063:;
				if( OP$1 != 31ll ) goto label$1065;
				label$1066:;
				{
					FBSTRING TMP$1452$5;
					FBSTRING TMP$1453$5;
					__builtin_memset( &TMP$1453$5, 0, 24ll );
					__builtin_memset( &TMP$1452$5, 0, 24ll );
					FBSTRING* vr$332 = fb_StrConcat( &TMP$1452$5, (void*)&DIVREG$1, -1ll, (void*)"xmm0, xmm1", 11ll );
					fb_StrAssign( (void*)&TMP$1453$5, -1ll, (void*)vr$332, -1ll, 0 );
					HWRITEASM64( &TMP$1453$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1453$5 );
				}
				label$1065:;
				label$1058:;
			}
			if( *(int64*)((uint8*)VR$1 + 8ll) != 16ll ) goto label$1068;
			{
				FBSTRING TMP$1457$4;
				FBSTRING TMP$1458$4;
				FBSTRING TMP$1459$4;
				if( V1DTYPE$1 != 15ll ) goto label$1070;
				{
					FBSTRING TMP$1455$5;
					__builtin_memset( &TMP$1455$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$1455$5, -1ll, (void*)"cvtss2sd xmm0, xmm0", 20ll, 0 );
					HWRITEASM64( &TMP$1455$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1455$5 );
				}
				label$1070:;
				label$1069:;
				__builtin_memset( &TMP$1459$4, 0, 24ll );
				__builtin_memset( &TMP$1457$4, 0, 24ll );
				FBSTRING* vr$346 = fb_StrConcat( &TMP$1457$4, (void*)"movq ", 6ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)VRREG$1 << (3ll & 63ll))), 0ll );
				__builtin_memset( &TMP$1458$4, 0, 24ll );
				FBSTRING* vr$349 = fb_StrConcat( &TMP$1458$4, (void*)vr$346, -1ll, (void*)", xmm0", 7ll );
				fb_StrAssign( (void*)&TMP$1459$4, -1ll, (void*)vr$349, -1ll, 0 );
				HWRITEASM64( &TMP$1459$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1459$4 );
			}
			goto label$1067;
			label$1068:;
			{
				FBSTRING TMP$1460$4;
				FBSTRING TMP$1461$4;
				FBSTRING TMP$1462$4;
				__builtin_memset( &TMP$1462$4, 0, 24ll );
				__builtin_memset( &TMP$1460$4, 0, 24ll );
				FBSTRING* vr$358 = fb_StrConcat( &TMP$1460$4, (void*)"movd ", 6ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)VRREG$1 << (3ll & 63ll))), 0ll );
				__builtin_memset( &TMP$1461$4, 0, 24ll );
				FBSTRING* vr$361 = fb_StrConcat( &TMP$1461$4, (void*)vr$358, -1ll, (void*)", xmm0", 7ll );
				fb_StrAssign( (void*)&TMP$1462$4, -1ll, (void*)vr$361, -1ll, 0 );
				HWRITEASM64( &TMP$1462$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1462$4 );
			}
			label$1067:;
			RESTORE_VRREG( VR$1, (int64)VRREG$1 );
		}
		goto label$1014;
		label$1053:;
		if( OP$1 != 64ll ) goto label$1071;
		label$1072:;
		{
			if( V1DTYPE$1 != 16ll ) goto label$1074;
			{
				FBSTRING TMP$1464$4;
				FBSTRING TMP$1465$4;
				FBSTRING TMP$1466$4;
				FBSTRING TMP$1467$4;
				__builtin_memset( &TMP$1464$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1464$4, -1ll, (void*)"atan2", 6ll, 0 );
				SAVE_CALL( &TMP$1464$4, VR$1, (int64)VRREG$1 );
				fb_StrDelete( (FBSTRING*)&TMP$1464$4 );
				__builtin_memset( &TMP$1467$4, 0, 24ll );
				__builtin_memset( &TMP$1465$4, 0, 24ll );
				FBSTRING* vr$376 = fb_StrConcat( &TMP$1465$4, (void*)"movq ", 6ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)VRREG$1 << (3ll & 63ll))), 0ll );
				__builtin_memset( &TMP$1466$4, 0, 24ll );
				FBSTRING* vr$379 = fb_StrConcat( &TMP$1466$4, (void*)vr$376, -1ll, (void*)", xmm0", 7ll );
				fb_StrAssign( (void*)&TMP$1467$4, -1ll, (void*)vr$379, -1ll, 0 );
				HWRITEASM64( &TMP$1467$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1467$4 );
			}
			goto label$1073;
			label$1074:;
			{
				FBSTRING TMP$1469$4;
				FBSTRING TMP$1470$4;
				FBSTRING TMP$1471$4;
				FBSTRING TMP$1472$4;
				__builtin_memset( &TMP$1469$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1469$4, -1ll, (void*)"atan2f", 7ll, 0 );
				SAVE_CALL( &TMP$1469$4, VR$1, (int64)VRREG$1 );
				fb_StrDelete( (FBSTRING*)&TMP$1469$4 );
				__builtin_memset( &TMP$1472$4, 0, 24ll );
				__builtin_memset( &TMP$1470$4, 0, 24ll );
				FBSTRING* vr$393 = fb_StrConcat( &TMP$1470$4, (void*)"movd ", 6ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)VRREG$1 << (3ll & 63ll))), 0ll );
				__builtin_memset( &TMP$1471$4, 0, 24ll );
				FBSTRING* vr$396 = fb_StrConcat( &TMP$1471$4, (void*)vr$393, -1ll, (void*)", xmm0", 7ll );
				fb_StrAssign( (void*)&TMP$1472$4, -1ll, (void*)vr$396, -1ll, 0 );
				HWRITEASM64( &TMP$1472$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1472$4 );
			}
			label$1073:;
		}
		goto label$1014;
		label$1071:;
		{
			FBSTRING TMP$1473$3;
			FBSTRING TMP$1476$3;
			FBSTRING TMP$1477$3;
			FBSTRING TMP$1478$3;
			__builtin_memset( &TMP$1473$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$1473$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$1473$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1473$3 );
			__builtin_memset( &TMP$1477$3, 0, 24ll );
			char* vr$405 = HGETBOPCODE( OP$1 );
			__builtin_memset( &TMP$1476$3, 0, 24ll );
			FBSTRING* vr$408 = fb_StrConcat( &TMP$1476$3, (void*)"FOUND AN ERROR : in bop float needs to be coded : ", 51ll, (void*)vr$405, 0ll );
			fb_StrAssign( (void*)&TMP$1477$3, -1ll, (void*)vr$408, -1ll, 0 );
			HWRITEASM64( &TMP$1477$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1477$3 );
			__builtin_memset( &TMP$1478$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$1478$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$1478$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1478$3 );
		}
		label$1075:;
		label$1014:;
	}
	fb_StrDelete( (FBSTRING*)&DIVREG$1 );
	fb_StrDelete( (FBSTRING*)&MULREG$1 );
	fb_StrDelete( (FBSTRING*)&SUBREG$1 );
	fb_StrDelete( (FBSTRING*)&ADDREG$1 );
	fb_StrDelete( (FBSTRING*)&IMMREG$1 );
	fb_StrDelete( (FBSTRING*)&COMPREG$1 );
	fb_StrDelete( (FBSTRING*)&MOVMEM$1 );
	fb_StrDelete( (FBSTRING*)&MOVREG$1 );
	fb_StrDelete( (FBSTRING*)&LNAME2$1 );
	fb_StrDelete( (FBSTRING*)&LNAME1$1 );
	label$1003:;
}

static void HLOADOPERANDSANDWRITEBOP( int64 OP$1, struct $6IRVREG* V1$1, struct $6IRVREG* V2$1, struct $6IRVREG* VR$1, struct $8FBSYMBOL* LABEL$1 )
{
	int64 TMP$1551$1;
	int64 TMP$1552$1;
	FBSTRING TMP$1553$1;
	FBSTRING TMP$1554$1;
	label$1076:;
	FBSTRING OP1$1;
	__builtin_memset( &OP1$1, 0, 24ll );
	FBSTRING OP2$1;
	__builtin_memset( &OP2$1, 0, 24ll );
	FBSTRING OP3$1;
	__builtin_memset( &OP3$1, 0, 24ll );
	FBSTRING OP4$1;
	__builtin_memset( &OP4$1, 0, 24ll );
	FBSTRING PREFIX1$1;
	__builtin_memset( &PREFIX1$1, 0, 24ll );
	FBSTRING PREFIX2$1;
	__builtin_memset( &PREFIX2$1, 0, 24ll );
	FBSTRING SUFFIX$1;
	__builtin_memset( &SUFFIX$1, 0, 24ll );
	FBSTRING OP1PREV$1;
	__builtin_memset( &OP1PREV$1, 0, 24ll );
	FBSTRING REGTEMPO$1;
	__builtin_memset( &REGTEMPO$1, 0, 24ll );
	FBSTRING OP1BIS$1;
	__builtin_memset( &OP1BIS$1, 0, 24ll );
	$11FB_DATATYPE TEMPODTYPE$1;
	__builtin_memset( &TEMPODTYPE$1, 0, 8ll );
	$11FB_DATATYPE TEMPO2DTYPE$1;
	__builtin_memset( &TEMPO2DTYPE$1, 0, 8ll );
	int64 VRREG$1;
	__builtin_memset( &VRREG$1, 0, 8ll );
	int64 VRREG2$1;
	__builtin_memset( &VRREG2$1, 0, 8ll );
	int64 TEMPO$1;
	__builtin_memset( &TEMPO$1, 0, 8ll );
	struct $6IRVREG* VRTEMPO$1;
	__builtin_memset( &VRTEMPO$1, 0, 8ll );
	TEMPODTYPE$1 = *(int64*)((uint8*)V1$1 + 8ll) & 511ll;
	if( (TEMPODTYPE$1 & 480ll) == 0ll ) goto label$1079;
	{
		TEMPODTYPE$1 = 8ll;
		label$1079:;
	}
	{
		if( TEMPODTYPE$1 == 8ll ) goto label$1082;
		label$1083:;
		if( TEMPODTYPE$1 == 9ll ) goto label$1082;
		label$1084:;
		if( TEMPODTYPE$1 == 13ll ) goto label$1082;
		label$1085:;
		if( TEMPODTYPE$1 == 14ll ) goto label$1082;
		label$1086:;
		if( TEMPODTYPE$1 == 10ll ) goto label$1082;
		label$1087:;
		if( TEMPODTYPE$1 != 16ll ) goto label$1081;
		label$1082:;
		{
			fb_StrAssign( (void*)&PREFIX1$1, -1ll, (void*)"QWORD PTR ", 11ll, 0 );
		}
		goto label$1080;
		label$1081:;
		if( TEMPODTYPE$1 == 11ll ) goto label$1089;
		label$1090:;
		if( TEMPODTYPE$1 == 12ll ) goto label$1089;
		label$1091:;
		if( TEMPODTYPE$1 != 15ll ) goto label$1088;
		label$1089:;
		{
			fb_StrAssign( (void*)&PREFIX1$1, -1ll, (void*)"DWORD PTR ", 11ll, 0 );
		}
		goto label$1080;
		label$1088:;
		if( TEMPODTYPE$1 == 5ll ) goto label$1093;
		label$1094:;
		if( TEMPODTYPE$1 != 6ll ) goto label$1092;
		label$1093:;
		{
			fb_StrAssign( (void*)&PREFIX1$1, -1ll, (void*)"WORD PTR ", 10ll, 0 );
		}
		goto label$1080;
		label$1092:;
		if( TEMPODTYPE$1 == 2ll ) goto label$1096;
		label$1097:;
		if( TEMPODTYPE$1 == 3ll ) goto label$1096;
		label$1098:;
		if( TEMPODTYPE$1 == 1ll ) goto label$1096;
		label$1099:;
		if( TEMPODTYPE$1 != 4ll ) goto label$1095;
		label$1096:;
		{
			fb_StrAssign( (void*)&PREFIX1$1, -1ll, (void*)"BYTE PTR ", 10ll, 0 );
		}
		goto label$1080;
		label$1095:;
		{
			FBSTRING TMP$1483$3;
			FBSTRING TMP$1487$3;
			FBSTRING TMP$1488$3;
			FBSTRING TMP$1489$3;
			__builtin_memset( &TMP$1483$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$1483$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$1483$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1483$3 );
			__builtin_memset( &TMP$1488$3, 0, 24ll );
			FBSTRING* vr$29 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 8ll) );
			__builtin_memset( &TMP$1487$3, 0, 24ll );
			FBSTRING* vr$32 = fb_StrConcat( &TMP$1487$3, (void*)"FOUND AN ERROR : BOP datatype not handled 01 = ", 48ll, (void*)vr$29, -1ll );
			fb_StrAssign( (void*)&TMP$1488$3, -1ll, (void*)vr$32, -1ll, 0 );
			HWRITEASM64( &TMP$1488$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1488$3 );
			__builtin_memset( &TMP$1489$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$1489$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$1489$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1489$3 );
		}
		label$1100:;
		label$1080:;
	}
	fb_StrAssign( (void*)&PREFIX2$1, -1ll, (void*)&PREFIX1$1, -1ll, 0 );
	{
		$15IRVREGTYPE_ENUM TMP$1490$2;
		TMP$1490$2 = *($15IRVREGTYPE_ENUM*)V1$1;
		if( TMP$1490$2 != 4ll ) goto label$1102;
		label$1103:;
		{
			int32 vr$45 = REG_FINDREAL( (int32)*(int64*)((uint8*)V1$1 + 24ll) );
			VRREG$1 = (int64)vr$45;
			{
				if( TEMPODTYPE$1 == 8ll ) goto label$1106;
				label$1107:;
				if( TEMPODTYPE$1 == 9ll ) goto label$1106;
				label$1108:;
				if( TEMPODTYPE$1 == 13ll ) goto label$1106;
				label$1109:;
				if( TEMPODTYPE$1 == 14ll ) goto label$1106;
				label$1110:;
				if( TEMPODTYPE$1 == 10ll ) goto label$1106;
				label$1111:;
				if( TEMPODTYPE$1 != 16ll ) goto label$1105;
				label$1106:;
				{
					fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + (VRREG$1 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$1104;
				label$1105:;
				if( TEMPODTYPE$1 == 11ll ) goto label$1113;
				label$1114:;
				if( TEMPODTYPE$1 == 12ll ) goto label$1113;
				label$1115:;
				if( TEMPODTYPE$1 != 15ll ) goto label$1112;
				label$1113:;
				{
					fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRD$ + (VRREG$1 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$1104;
				label$1112:;
				if( TEMPODTYPE$1 == 5ll ) goto label$1117;
				label$1118:;
				if( TEMPODTYPE$1 != 6ll ) goto label$1116;
				label$1117:;
				{
					fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRW$ + (VRREG$1 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$1104;
				label$1116:;
				if( TEMPODTYPE$1 == 2ll ) goto label$1120;
				label$1121:;
				if( TEMPODTYPE$1 == 3ll ) goto label$1120;
				label$1122:;
				if( TEMPODTYPE$1 == 1ll ) goto label$1120;
				label$1123:;
				if( TEMPODTYPE$1 != 4ll ) goto label$1119;
				label$1120:;
				{
					fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRB$ + (VRREG$1 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$1104;
				label$1119:;
				{
					FBSTRING TMP$1491$5;
					FBSTRING TMP$1495$5;
					FBSTRING TMP$1496$5;
					FBSTRING TMP$1497$5;
					__builtin_memset( &TMP$1491$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$1491$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$1491$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1491$5 );
					__builtin_memset( &TMP$1496$5, 0, 24ll );
					FBSTRING* vr$61 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 8ll) );
					__builtin_memset( &TMP$1495$5, 0, 24ll );
					FBSTRING* vr$64 = fb_StrConcat( &TMP$1495$5, (void*)"FOUND AN ERROR : BOP datatype not handled 010 ", 47ll, (void*)vr$61, -1ll );
					fb_StrAssign( (void*)&TMP$1496$5, -1ll, (void*)vr$64, -1ll, 0 );
					HWRITEASM64( &TMP$1496$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1496$5 );
					__builtin_memset( &TMP$1497$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$1497$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$1497$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1497$5 );
				}
				label$1124:;
				label$1104:;
			}
			fb_StrAssign( (void*)&PREFIX1$1, -1ll, (void*)"", 1ll, 0 );
		}
		goto label$1101;
		label$1102:;
		if( TMP$1490$2 != 2ll ) goto label$1125;
		label$1126:;
		{
			PREPARE_IDX( V1$1, &OP1$1, &OP3$1 );
		}
		goto label$1101;
		label$1125:;
		if( TMP$1490$2 != 3ll ) goto label$1127;
		label$1128:;
		{
			FBSTRING TMP$1498$3;
			FBSTRING TMP$1499$3;
			FBSTRING TMP$1500$3;
			int32 vr$78 = REG_FINDREAL( (int32)*(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 24ll) );
			FBSTRING* vr$82 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
			__builtin_memset( &TMP$1498$3, 0, 24ll );
			FBSTRING* vr$85 = fb_StrConcat( &TMP$1498$3, (void*)vr$82, -1ll, (void*)"[", 2ll );
			__builtin_memset( &TMP$1499$3, 0, 24ll );
			FBSTRING* vr$88 = fb_StrConcat( &TMP$1499$3, (void*)vr$85, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$78 << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$1500$3, 0, 24ll );
			FBSTRING* vr$91 = fb_StrConcat( &TMP$1500$3, (void*)vr$88, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$91, -1ll, 0 );
		}
		goto label$1101;
		label$1127:;
		if( TMP$1490$2 != 5ll ) goto label$1129;
		label$1130:;
		{
			FBSTRING TMP$1501$3;
			FBSTRING TMP$1502$3;
			FBSTRING TMP$1503$3;
			FBSTRING* vr$94 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
			char* vr$96 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
			__builtin_memset( &TMP$1501$3, 0, 24ll );
			FBSTRING* vr$99 = fb_StrConcat( &TMP$1501$3, (void*)vr$96, 0ll, (void*)"[rip+", 6ll );
			__builtin_memset( &TMP$1502$3, 0, 24ll );
			FBSTRING* vr$102 = fb_StrConcat( &TMP$1502$3, (void*)vr$99, -1ll, (void*)vr$94, -1ll );
			__builtin_memset( &TMP$1503$3, 0, 24ll );
			FBSTRING* vr$105 = fb_StrConcat( &TMP$1503$3, (void*)vr$102, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$105, -1ll, 0 );
		}
		goto label$1101;
		label$1129:;
		if( TMP$1490$2 != 0ll ) goto label$1131;
		label$1132:;
		{
			int64 TMP$1504$3;
			if( (*(int64*)((uint8*)V1$1 + 8ll) & 480ll) == 0ll ) goto label$1133;
			TMP$1504$3 = 24ll;
			goto label$3095;
			label$1133:;
			TMP$1504$3 = *(int64*)((uint8*)V1$1 + 8ll) & 31ll;
			label$3095:;
			if( *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$1504$3 * 56ll)) != 1ll ) goto label$1135;
			{
				FBSTRING* vr$114 = HFLOATTOHEX_ASM64( *(double*)((uint8*)V1$1 + 48ll), *(int64*)((uint8*)V1$1 + 8ll), (int8)0 );
				fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$114, -1ll, 0 );
			}
			goto label$1134;
			label$1135:;
			{
				if( TEMPODTYPE$1 != 1ll ) goto label$1137;
				{
					if( *(int64*)((uint8*)V1$1 + 48ll) == 0ll ) goto label$1139;
					{
						*(int64*)((uint8*)V1$1 + 48ll) = 1ll;
					}
					label$1139:;
					label$1138:;
				}
				label$1137:;
				label$1136:;
				FBSTRING* vr$119 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 48ll) );
				fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$119, -1ll, 0 );
			}
			label$1134:;
			fb_StrAssign( (void*)&PREFIX1$1, -1ll, (void*)"", 1ll, 0 );
		}
		goto label$1101;
		label$1131:;
		if( TMP$1490$2 != 1ll ) goto label$1140;
		label$1141:;
		{
			int64 TMP$1505$3;
			int64 TMP$1506$3;
			if( (int64)-(*(boolean*)((uint8*)&CTX$ + 416ll)) != -1ll ) goto label$1142;
			int64 vr$123 = FBGETOPTION( 0ll );
			TMP$1505$3 = (int64)-(vr$123 == 2ll);
			goto label$3096;
			label$1142:;
			TMP$1505$3 = 0ll;
			label$3096:;
			if( TMP$1505$3 == 0ll ) goto label$1143;
			TMP$1506$3 = (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 8ll) != 0ll);
			goto label$3097;
			label$1143:;
			TMP$1506$3 = 0ll;
			label$3097:;
			if( TMP$1506$3 == 0ll ) goto label$1145;
			{
				FBSTRING TMP$1508$4;
				FBSTRING TMP$1509$4;
				FBSTRING TMP$1510$4;
				FBSTRING TMP$1511$4;
				int32 vr$129 = REG_FINDFREE( 999994, -1ll );
				TEMPO$1 = (int64)vr$129;
				fb_StrAssign( (void*)&REGTEMPO$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + (TEMPO$1 << (3ll & 63ll))), 0ll, 0 );
				char* vr$134 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
				__builtin_memset( &TMP$1508$4, 0, 24ll );
				FBSTRING* vr$138 = fb_StrConcat( &TMP$1508$4, (void*)"mov ", 5ll, (void*)&REGTEMPO$1, -1ll );
				__builtin_memset( &TMP$1509$4, 0, 24ll );
				FBSTRING* vr$141 = fb_StrConcat( &TMP$1509$4, (void*)vr$138, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$1510$4, 0, 24ll );
				FBSTRING* vr$144 = fb_StrConcat( &TMP$1510$4, (void*)vr$141, -1ll, (void*)vr$134, 0ll );
				__builtin_memset( &TMP$1511$4, 0, 24ll );
				FBSTRING* vr$147 = fb_StrConcat( &TMP$1511$4, (void*)vr$144, -1ll, (void*)"@GOTPCREL[rip]", 15ll );
				fb_StrAssign( (void*)&OP3$1, -1ll, (void*)vr$147, -1ll, 0 );
				fb_StrAssign( (void*)&OP1$1, -1ll, (void*)"[", 2ll, 0 );
				fb_StrConcatAssign( (void*)&OP1$1, -1ll, (void*)&REGTEMPO$1, -1ll, 0 );
				fb_StrConcatAssign( (void*)&OP1$1, -1ll, (void*)"]", 2ll, 0 );
			}
			goto label$1144;
			label$1145:;
			{
				if( ((int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 2ll) != 0ll) | (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 1ll) != 0ll)) == 0ll ) goto label$1147;
				{
					FBSTRING TMP$1512$5;
					FBSTRING TMP$1513$5;
					FBSTRING TMP$1514$5;
					FBSTRING* vr$163 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
					char* vr$165 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
					__builtin_memset( &TMP$1512$5, 0, 24ll );
					FBSTRING* vr$168 = fb_StrConcat( &TMP$1512$5, (void*)vr$165, 0ll, (void*)"[rip+", 6ll );
					__builtin_memset( &TMP$1513$5, 0, 24ll );
					FBSTRING* vr$171 = fb_StrConcat( &TMP$1513$5, (void*)vr$168, -1ll, (void*)vr$163, -1ll );
					__builtin_memset( &TMP$1514$5, 0, 24ll );
					FBSTRING* vr$174 = fb_StrConcat( &TMP$1514$5, (void*)vr$171, -1ll, (void*)"]", 2ll );
					fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$174, -1ll, 0 );
				}
				goto label$1146;
				label$1147:;
				{
					FBSTRING TMP$1515$5;
					FBSTRING* vr$177 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
					__builtin_memset( &TMP$1515$5, 0, 24ll );
					FBSTRING* vr$180 = fb_StrConcat( &TMP$1515$5, (void*)vr$177, -1ll, (void*)"[rbp]", 6ll );
					fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$180, -1ll, 0 );
				}
				label$1146:;
			}
			label$1144:;
		}
		goto label$1101;
		label$1140:;
		{
			FBSTRING TMP$1516$3;
			FBSTRING TMP$1519$3;
			FBSTRING TMP$1520$3;
			__builtin_memset( &TMP$1516$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$1516$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$1516$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1516$3 );
			__builtin_memset( &TMP$1519$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$1519$3, -1ll, (void*)"FOUND AN ERROR : in loadoperand typ not handled v1", 51ll, 0 );
			HWRITEASM64( &TMP$1519$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1519$3 );
			__builtin_memset( &TMP$1520$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$1520$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$1520$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1520$3 );
		}
		label$1148:;
		label$1101:;
	}
	{
		$15IRVREGTYPE_ENUM TMP$1521$2;
		TMP$1521$2 = *($15IRVREGTYPE_ENUM*)V2$1;
		if( TMP$1521$2 != 4ll ) goto label$1150;
		label$1151:;
		{
			int32 vr$197 = REG_FINDREAL( (int32)*(int64*)((uint8*)V2$1 + 24ll) );
			TEMPO$1 = (int64)vr$197;
			{
				if( TEMPODTYPE$1 == 8ll ) goto label$1154;
				label$1155:;
				if( TEMPODTYPE$1 == 9ll ) goto label$1154;
				label$1156:;
				if( TEMPODTYPE$1 == 13ll ) goto label$1154;
				label$1157:;
				if( TEMPODTYPE$1 == 14ll ) goto label$1154;
				label$1158:;
				if( TEMPODTYPE$1 == 10ll ) goto label$1154;
				label$1159:;
				if( TEMPODTYPE$1 != 16ll ) goto label$1153;
				label$1154:;
				{
					fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + (TEMPO$1 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$1152;
				label$1153:;
				if( TEMPODTYPE$1 == 11ll ) goto label$1161;
				label$1162:;
				if( TEMPODTYPE$1 == 12ll ) goto label$1161;
				label$1163:;
				if( TEMPODTYPE$1 != 15ll ) goto label$1160;
				label$1161:;
				{
					fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRD$ + (TEMPO$1 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$1152;
				label$1160:;
				if( TEMPODTYPE$1 == 5ll ) goto label$1165;
				label$1166:;
				if( TEMPODTYPE$1 != 6ll ) goto label$1164;
				label$1165:;
				{
					fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRW$ + (TEMPO$1 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$1152;
				label$1164:;
				if( TEMPODTYPE$1 == 2ll ) goto label$1168;
				label$1169:;
				if( TEMPODTYPE$1 == 3ll ) goto label$1168;
				label$1170:;
				if( TEMPODTYPE$1 == 1ll ) goto label$1168;
				label$1171:;
				if( TEMPODTYPE$1 != 4ll ) goto label$1167;
				label$1168:;
				{
					fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRB$ + (TEMPO$1 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$1152;
				label$1167:;
				{
					FBSTRING TMP$1522$5;
					FBSTRING TMP$1526$5;
					FBSTRING TMP$1527$5;
					FBSTRING TMP$1528$5;
					__builtin_memset( &TMP$1522$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$1522$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$1522$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1522$5 );
					__builtin_memset( &TMP$1527$5, 0, 24ll );
					FBSTRING* vr$213 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 8ll) );
					__builtin_memset( &TMP$1526$5, 0, 24ll );
					FBSTRING* vr$216 = fb_StrConcat( &TMP$1526$5, (void*)"FOUND AN ERROR : BOP datatype not handled 012 ", 47ll, (void*)vr$213, -1ll );
					fb_StrAssign( (void*)&TMP$1527$5, -1ll, (void*)vr$216, -1ll, 0 );
					HWRITEASM64( &TMP$1527$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1527$5 );
					__builtin_memset( &TMP$1528$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$1528$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$1528$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1528$5 );
				}
				label$1172:;
				label$1152:;
			}
			fb_StrAssign( (void*)&PREFIX2$1, -1ll, (void*)"", 1ll, 0 );
		}
		goto label$1149;
		label$1150:;
		if( TMP$1521$2 != 0ll ) goto label$1173;
		label$1174:;
		{
			int64 TMP$1529$3;
			fb_StrAssign( (void*)&PREFIX2$1, -1ll, (void*)"", 1ll, 0 );
			if( (*(int64*)((uint8*)V2$1 + 8ll) & 480ll) == 0ll ) goto label$1175;
			TMP$1529$3 = 24ll;
			goto label$3098;
			label$1175:;
			TMP$1529$3 = *(int64*)((uint8*)V2$1 + 8ll) & 31ll;
			label$3098:;
			if( *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$1529$3 * 56ll)) != 1ll ) goto label$1177;
			{
				FBSTRING* vr$233 = HFLOATTOHEX_ASM64( *(double*)((uint8*)V2$1 + 48ll), *(int64*)((uint8*)V2$1 + 8ll), (int8)0 );
				fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$233, -1ll, 0 );
			}
			goto label$1176;
			label$1177:;
			{
				if( *(int64*)((uint8*)V2$1 + 8ll) != 1ll ) goto label$1179;
				{
					if( *(int64*)((uint8*)V2$1 + 48ll) == 0ll ) goto label$1181;
					{
						*(int64*)((uint8*)V2$1 + 48ll) = 1ll;
					}
					label$1181:;
					label$1180:;
				}
				label$1179:;
				label$1178:;
				FBSTRING* vr$239 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 48ll) );
				fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$239, -1ll, 0 );
			}
			label$1176:;
		}
		goto label$1149;
		label$1173:;
		if( TMP$1521$2 != 3ll ) goto label$1182;
		label$1183:;
		{
			FBSTRING TMP$1530$3;
			FBSTRING TMP$1531$3;
			FBSTRING TMP$1532$3;
			int32 vr$244 = REG_FINDREAL( (int32)*(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V2$1 + 80ll) + 24ll) );
			FBSTRING* vr$248 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
			__builtin_memset( &TMP$1530$3, 0, 24ll );
			FBSTRING* vr$251 = fb_StrConcat( &TMP$1530$3, (void*)vr$248, -1ll, (void*)"[", 2ll );
			__builtin_memset( &TMP$1531$3, 0, 24ll );
			FBSTRING* vr$254 = fb_StrConcat( &TMP$1531$3, (void*)vr$251, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$244 << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$1532$3, 0, 24ll );
			FBSTRING* vr$257 = fb_StrConcat( &TMP$1532$3, (void*)vr$254, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$257, -1ll, 0 );
		}
		goto label$1149;
		label$1182:;
		if( TMP$1521$2 != 5ll ) goto label$1184;
		label$1185:;
		{
			FBSTRING TMP$1533$3;
			FBSTRING TMP$1534$3;
			FBSTRING TMP$1535$3;
			FBSTRING* vr$260 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
			char* vr$262 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) );
			__builtin_memset( &TMP$1533$3, 0, 24ll );
			FBSTRING* vr$265 = fb_StrConcat( &TMP$1533$3, (void*)vr$262, 0ll, (void*)"[rip+", 6ll );
			__builtin_memset( &TMP$1534$3, 0, 24ll );
			FBSTRING* vr$268 = fb_StrConcat( &TMP$1534$3, (void*)vr$265, -1ll, (void*)vr$260, -1ll );
			__builtin_memset( &TMP$1535$3, 0, 24ll );
			FBSTRING* vr$271 = fb_StrConcat( &TMP$1535$3, (void*)vr$268, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$271, -1ll, 0 );
		}
		goto label$1149;
		label$1184:;
		if( TMP$1521$2 != 2ll ) goto label$1186;
		label$1187:;
		{
			PREPARE_IDX( V2$1, &OP2$1, &OP4$1 );
		}
		goto label$1149;
		label$1186:;
		if( TMP$1521$2 != 1ll ) goto label$1188;
		label$1189:;
		{
			int64 TMP$1536$3;
			int64 TMP$1537$3;
			if( (int64)-(*(boolean*)((uint8*)&CTX$ + 416ll)) != -1ll ) goto label$1190;
			int64 vr$276 = FBGETOPTION( 0ll );
			TMP$1536$3 = (int64)-(vr$276 == 2ll);
			goto label$3099;
			label$1190:;
			TMP$1536$3 = 0ll;
			label$3099:;
			if( TMP$1536$3 == 0ll ) goto label$1191;
			TMP$1537$3 = (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 8ll) != 0ll);
			goto label$3100;
			label$1191:;
			TMP$1537$3 = 0ll;
			label$3100:;
			if( TMP$1537$3 == 0ll ) goto label$1193;
			{
				FBSTRING TMP$1538$4;
				FBSTRING TMP$1539$4;
				FBSTRING TMP$1540$4;
				FBSTRING TMP$1541$4;
				int32 vr$282 = REG_FINDFREE( 999993, -1ll );
				TEMPO$1 = (int64)vr$282;
				fb_StrAssign( (void*)&REGTEMPO$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + (TEMPO$1 << (3ll & 63ll))), 0ll, 0 );
				char* vr$287 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
				__builtin_memset( &TMP$1538$4, 0, 24ll );
				FBSTRING* vr$291 = fb_StrConcat( &TMP$1538$4, (void*)"mov ", 5ll, (void*)&REGTEMPO$1, -1ll );
				__builtin_memset( &TMP$1539$4, 0, 24ll );
				FBSTRING* vr$294 = fb_StrConcat( &TMP$1539$4, (void*)vr$291, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$1540$4, 0, 24ll );
				FBSTRING* vr$297 = fb_StrConcat( &TMP$1540$4, (void*)vr$294, -1ll, (void*)vr$287, 0ll );
				__builtin_memset( &TMP$1541$4, 0, 24ll );
				FBSTRING* vr$300 = fb_StrConcat( &TMP$1541$4, (void*)vr$297, -1ll, (void*)"@GOTPCREL[rip]", 15ll );
				fb_StrAssign( (void*)&OP4$1, -1ll, (void*)vr$300, -1ll, 0 );
				fb_StrAssign( (void*)&OP2$1, -1ll, (void*)"[", 2ll, 0 );
				fb_StrConcatAssign( (void*)&OP2$1, -1ll, (void*)&REGTEMPO$1, -1ll, 0 );
				fb_StrConcatAssign( (void*)&OP2$1, -1ll, (void*)"]", 2ll, 0 );
			}
			goto label$1192;
			label$1193:;
			{
				if( ((int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) + 8ll) & 2ll) != 0ll) | (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) + 8ll) & 1ll) != 0ll)) == 0ll ) goto label$1195;
				{
					FBSTRING TMP$1542$5;
					FBSTRING TMP$1543$5;
					FBSTRING TMP$1544$5;
					FBSTRING* vr$316 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
					char* vr$318 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) );
					__builtin_memset( &TMP$1542$5, 0, 24ll );
					FBSTRING* vr$321 = fb_StrConcat( &TMP$1542$5, (void*)vr$318, 0ll, (void*)"[rip+", 6ll );
					__builtin_memset( &TMP$1543$5, 0, 24ll );
					FBSTRING* vr$324 = fb_StrConcat( &TMP$1543$5, (void*)vr$321, -1ll, (void*)vr$316, -1ll );
					__builtin_memset( &TMP$1544$5, 0, 24ll );
					FBSTRING* vr$327 = fb_StrConcat( &TMP$1544$5, (void*)vr$324, -1ll, (void*)"]", 2ll );
					fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$327, -1ll, 0 );
				}
				goto label$1194;
				label$1195:;
				{
					FBSTRING TMP$1545$5;
					FBSTRING* vr$330 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
					__builtin_memset( &TMP$1545$5, 0, 24ll );
					FBSTRING* vr$333 = fb_StrConcat( &TMP$1545$5, (void*)vr$330, -1ll, (void*)"[rbp]", 6ll );
					fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$333, -1ll, 0 );
				}
				label$1194:;
			}
			label$1192:;
		}
		goto label$1149;
		label$1188:;
		{
			FBSTRING TMP$1546$3;
			FBSTRING TMP$1549$3;
			FBSTRING TMP$1550$3;
			__builtin_memset( &TMP$1546$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$1546$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$1546$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1546$3 );
			__builtin_memset( &TMP$1549$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$1549$3, -1ll, (void*)"FOUND AN ERROR : in loadoperand typ not handled v2", 51ll, 0 );
			HWRITEASM64( &TMP$1549$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1549$3 );
			__builtin_memset( &TMP$1550$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$1550$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$1550$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1550$3 );
		}
		label$1196:;
		label$1149:;
	}
	int32 vr$348 = fb_StrCompare( (void*)&OP3$1, -1ll, (void*)"", 1ll );
	if( (int64)vr$348 == 0ll ) goto label$1198;
	{
		EMITOP3_OP4( &OP3$1 );
		label$1198:;
	}
	int32 vr$352 = fb_StrCompare( (void*)&OP4$1, -1ll, (void*)"", 1ll );
	if( (int64)vr$352 == 0ll ) goto label$1200;
	{
		EMITOP3_OP4( &OP4$1 );
		label$1200:;
	}
	if( (*(int64*)((uint8*)V1$1 + 8ll) & 480ll) == 0ll ) goto label$1201;
	TMP$1551$1 = 24ll;
	goto label$3101;
	label$1201:;
	TMP$1551$1 = *(int64*)((uint8*)V1$1 + 8ll) & 31ll;
	label$3101:;
	if( (*(int64*)((uint8*)V2$1 + 8ll) & 480ll) == 0ll ) goto label$1202;
	TMP$1552$1 = 24ll;
	goto label$3102;
	label$1202:;
	TMP$1552$1 = *(int64*)((uint8*)V2$1 + 8ll) & 31ll;
	label$3102:;
	if( ((int64)-(*(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$1551$1 * 56ll)) == 1ll) | (int64)-(*(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$1552$1 * 56ll)) == 1ll)) == 0ll ) goto label$1204;
	{
		BOP_FLOAT( OP$1, V1$1, V2$1, VR$1, &OP1$1, &OP2$1, &OP3$1, &OP4$1, &PREFIX1$1, LABEL$1 );
		fb_StrDelete( (FBSTRING*)&OP1BIS$1 );
		fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
		fb_StrDelete( (FBSTRING*)&OP1PREV$1 );
		fb_StrDelete( (FBSTRING*)&SUFFIX$1 );
		fb_StrDelete( (FBSTRING*)&PREFIX2$1 );
		fb_StrDelete( (FBSTRING*)&PREFIX1$1 );
		fb_StrDelete( (FBSTRING*)&OP4$1 );
		fb_StrDelete( (FBSTRING*)&OP3$1 );
		fb_StrDelete( (FBSTRING*)&OP2$1 );
		fb_StrDelete( (FBSTRING*)&OP1$1 );
		goto label$1077;
	}
	label$1204:;
	label$1203:;
	__builtin_memset( &TMP$1553$1, 0, 24ll );
	FBSTRING* vr$387 = fb_StrConcat( &TMP$1553$1, (void*)&PREFIX1$1, -1ll, (void*)&OP1$1, -1ll );
	fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$387, -1ll, 0 );
	__builtin_memset( &TMP$1554$1, 0, 24ll );
	FBSTRING* vr$393 = fb_StrConcat( &TMP$1554$1, (void*)&PREFIX2$1, -1ll, (void*)&OP2$1, -1ll );
	fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$393, -1ll, 0 );
	if( VR$1 == (struct $6IRVREG*)0ull ) goto label$1206;
	{
		if( *(int64*)V1$1 != 4ll ) goto label$1208;
		{
			*(int64*)((uint8*)VR$1 + 24ll) = *(int64*)((uint8*)V1$1 + 24ll);
		}
		goto label$1207;
		label$1208:;
		{
			int32 vr$400 = REG_FINDFREE( (int32)*(int64*)((uint8*)VR$1 + 24ll), -1ll );
			VRREG$1 = (int64)vr$400;
			if( *(int64*)V1$1 != 5ll ) goto label$1210;
			{
				FBSTRING TMP$1555$4;
				FBSTRING TMP$1556$4;
				FBSTRING TMP$1557$4;
				FBSTRING TMP$1558$4;
				__builtin_memset( &TMP$1558$4, 0, 24ll );
				__builtin_memset( &TMP$1555$4, 0, 24ll );
				FBSTRING* vr$408 = fb_StrConcat( &TMP$1555$4, (void*)"lea ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + (VRREG$1 << (3ll & 63ll))), 0ll );
				__builtin_memset( &TMP$1556$4, 0, 24ll );
				FBSTRING* vr$411 = fb_StrConcat( &TMP$1556$4, (void*)vr$408, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$1557$4, 0, 24ll );
				FBSTRING* vr$414 = fb_StrConcat( &TMP$1557$4, (void*)vr$411, -1ll, (void*)&OP1$1, -1ll );
				fb_StrAssign( (void*)&TMP$1558$4, -1ll, (void*)vr$414, -1ll, 0 );
				HWRITEASM64( &TMP$1558$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1558$4 );
				fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + (VRREG$1 << (3ll & 63ll))), 0ll, 0 );
			}
			goto label$1209;
			label$1210:;
			{
				{
					if( TEMPODTYPE$1 == 8ll ) goto label$1213;
					label$1214:;
					if( TEMPODTYPE$1 == 9ll ) goto label$1213;
					label$1215:;
					if( TEMPODTYPE$1 == 13ll ) goto label$1213;
					label$1216:;
					if( TEMPODTYPE$1 == 14ll ) goto label$1213;
					label$1217:;
					if( TEMPODTYPE$1 != 10ll ) goto label$1212;
					label$1213:;
					{
						FBSTRING TMP$1559$6;
						FBSTRING TMP$1560$6;
						FBSTRING TMP$1561$6;
						FBSTRING TMP$1562$6;
						__builtin_memset( &TMP$1562$6, 0, 24ll );
						__builtin_memset( &TMP$1559$6, 0, 24ll );
						FBSTRING* vr$425 = fb_StrConcat( &TMP$1559$6, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + (VRREG$1 << (3ll & 63ll))), 0ll );
						__builtin_memset( &TMP$1560$6, 0, 24ll );
						FBSTRING* vr$428 = fb_StrConcat( &TMP$1560$6, (void*)vr$425, -1ll, (void*)", ", 3ll );
						__builtin_memset( &TMP$1561$6, 0, 24ll );
						FBSTRING* vr$431 = fb_StrConcat( &TMP$1561$6, (void*)vr$428, -1ll, (void*)&OP1$1, -1ll );
						fb_StrAssign( (void*)&TMP$1562$6, -1ll, (void*)vr$431, -1ll, 0 );
						HWRITEASM64( &TMP$1562$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1562$6 );
						fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + (VRREG$1 << (3ll & 63ll))), 0ll, 0 );
					}
					goto label$1211;
					label$1212:;
					if( TEMPODTYPE$1 == 11ll ) goto label$1219;
					label$1220:;
					if( TEMPODTYPE$1 != 12ll ) goto label$1218;
					label$1219:;
					{
						FBSTRING TMP$1563$6;
						FBSTRING TMP$1564$6;
						FBSTRING TMP$1565$6;
						FBSTRING TMP$1566$6;
						__builtin_memset( &TMP$1566$6, 0, 24ll );
						__builtin_memset( &TMP$1563$6, 0, 24ll );
						FBSTRING* vr$442 = fb_StrConcat( &TMP$1563$6, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRD$ + (VRREG$1 << (3ll & 63ll))), 0ll );
						__builtin_memset( &TMP$1564$6, 0, 24ll );
						FBSTRING* vr$445 = fb_StrConcat( &TMP$1564$6, (void*)vr$442, -1ll, (void*)", ", 3ll );
						__builtin_memset( &TMP$1565$6, 0, 24ll );
						FBSTRING* vr$448 = fb_StrConcat( &TMP$1565$6, (void*)vr$445, -1ll, (void*)&OP1$1, -1ll );
						fb_StrAssign( (void*)&TMP$1566$6, -1ll, (void*)vr$448, -1ll, 0 );
						HWRITEASM64( &TMP$1566$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1566$6 );
						fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRD$ + (VRREG$1 << (3ll & 63ll))), 0ll, 0 );
					}
					goto label$1211;
					label$1218:;
					if( TEMPODTYPE$1 == 5ll ) goto label$1222;
					label$1223:;
					if( TEMPODTYPE$1 != 6ll ) goto label$1221;
					label$1222:;
					{
						FBSTRING TMP$1567$6;
						FBSTRING TMP$1568$6;
						FBSTRING TMP$1569$6;
						FBSTRING TMP$1570$6;
						__builtin_memset( &TMP$1570$6, 0, 24ll );
						__builtin_memset( &TMP$1567$6, 0, 24ll );
						FBSTRING* vr$459 = fb_StrConcat( &TMP$1567$6, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRW$ + (VRREG$1 << (3ll & 63ll))), 0ll );
						__builtin_memset( &TMP$1568$6, 0, 24ll );
						FBSTRING* vr$462 = fb_StrConcat( &TMP$1568$6, (void*)vr$459, -1ll, (void*)", ", 3ll );
						__builtin_memset( &TMP$1569$6, 0, 24ll );
						FBSTRING* vr$465 = fb_StrConcat( &TMP$1569$6, (void*)vr$462, -1ll, (void*)&OP1$1, -1ll );
						fb_StrAssign( (void*)&TMP$1570$6, -1ll, (void*)vr$465, -1ll, 0 );
						HWRITEASM64( &TMP$1570$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1570$6 );
						fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRW$ + (VRREG$1 << (3ll & 63ll))), 0ll, 0 );
					}
					goto label$1211;
					label$1221:;
					if( TEMPODTYPE$1 == 2ll ) goto label$1225;
					label$1226:;
					if( TEMPODTYPE$1 == 3ll ) goto label$1225;
					label$1227:;
					if( TEMPODTYPE$1 == 1ll ) goto label$1225;
					label$1228:;
					if( TEMPODTYPE$1 != 4ll ) goto label$1224;
					label$1225:;
					{
						FBSTRING TMP$1571$6;
						FBSTRING TMP$1572$6;
						FBSTRING TMP$1573$6;
						FBSTRING TMP$1574$6;
						__builtin_memset( &TMP$1574$6, 0, 24ll );
						__builtin_memset( &TMP$1571$6, 0, 24ll );
						FBSTRING* vr$476 = fb_StrConcat( &TMP$1571$6, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRB$ + (VRREG$1 << (3ll & 63ll))), 0ll );
						__builtin_memset( &TMP$1572$6, 0, 24ll );
						FBSTRING* vr$479 = fb_StrConcat( &TMP$1572$6, (void*)vr$476, -1ll, (void*)", ", 3ll );
						__builtin_memset( &TMP$1573$6, 0, 24ll );
						FBSTRING* vr$482 = fb_StrConcat( &TMP$1573$6, (void*)vr$479, -1ll, (void*)&OP1$1, -1ll );
						fb_StrAssign( (void*)&TMP$1574$6, -1ll, (void*)vr$482, -1ll, 0 );
						HWRITEASM64( &TMP$1574$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1574$6 );
						fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRB$ + (VRREG$1 << (3ll & 63ll))), 0ll, 0 );
					}
					goto label$1211;
					label$1224:;
					{
						FBSTRING TMP$1575$6;
						FBSTRING TMP$1579$6;
						FBSTRING TMP$1580$6;
						FBSTRING TMP$1581$6;
						__builtin_memset( &TMP$1575$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$1575$6, -1ll, (void*)"", 1ll, 0 );
						HWRITEASM64( &TMP$1575$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1575$6 );
						__builtin_memset( &TMP$1580$6, 0, 24ll );
						FBSTRING* vr$494 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 8ll) );
						__builtin_memset( &TMP$1579$6, 0, 24ll );
						FBSTRING* vr$497 = fb_StrConcat( &TMP$1579$6, (void*)"FOUND AN ERROR : BOP datatype not handled 011 = ", 49ll, (void*)vr$494, -1ll );
						fb_StrAssign( (void*)&TMP$1580$6, -1ll, (void*)vr$497, -1ll, 0 );
						HWRITEASM64( &TMP$1580$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1580$6 );
						__builtin_memset( &TMP$1581$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$1581$6, -1ll, (void*)"", 1ll, 0 );
						HWRITEASM64( &TMP$1581$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1581$6 );
					}
					label$1229:;
					label$1211:;
				}
			}
			label$1209:;
			fb_StrAssign( (void*)&PREFIX1$1, -1ll, (void*)"", 1ll, 0 );
		}
		label$1207:;
		if( *(int64*)V2$1 != 5ll ) goto label$1231;
		{
			FBSTRING TMP$1582$3;
			FBSTRING TMP$1583$3;
			FBSTRING TMP$1584$3;
			FBSTRING TMP$1585$3;
			int32 vr$507 = REG_FINDFREE( 99999, -1ll );
			VRREG2$1 = (int64)vr$507;
			__builtin_memset( &TMP$1585$3, 0, 24ll );
			__builtin_memset( &TMP$1582$3, 0, 24ll );
			FBSTRING* vr$514 = fb_StrConcat( &TMP$1582$3, (void*)"lea ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + (VRREG2$1 << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$1583$3, 0, 24ll );
			FBSTRING* vr$517 = fb_StrConcat( &TMP$1583$3, (void*)vr$514, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$1584$3, 0, 24ll );
			FBSTRING* vr$520 = fb_StrConcat( &TMP$1584$3, (void*)vr$517, -1ll, (void*)&OP2$1, -1ll );
			fb_StrAssign( (void*)&TMP$1585$3, -1ll, (void*)vr$520, -1ll, 0 );
			HWRITEASM64( &TMP$1585$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1585$3 );
			fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + (VRREG2$1 << (3ll & 63ll))), 0ll, 0 );
		}
		label$1231:;
		label$1230:;
	}
	goto label$1205;
	label$1206:;
	{
		if( *(int64*)V1$1 != 5ll ) goto label$1233;
		{
			FBSTRING TMP$1586$3;
			FBSTRING TMP$1587$3;
			FBSTRING TMP$1588$3;
			FBSTRING TMP$1589$3;
			int32 vr$527 = REG_FINDFREE( 99999, -1ll );
			VRREG2$1 = (int64)vr$527;
			__builtin_memset( &TMP$1589$3, 0, 24ll );
			__builtin_memset( &TMP$1586$3, 0, 24ll );
			FBSTRING* vr$534 = fb_StrConcat( &TMP$1586$3, (void*)"lea ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + (VRREG2$1 << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$1587$3, 0, 24ll );
			FBSTRING* vr$537 = fb_StrConcat( &TMP$1587$3, (void*)vr$534, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$1588$3, 0, 24ll );
			FBSTRING* vr$540 = fb_StrConcat( &TMP$1588$3, (void*)vr$537, -1ll, (void*)&OP1$1, -1ll );
			fb_StrAssign( (void*)&TMP$1589$3, -1ll, (void*)vr$540, -1ll, 0 );
			HWRITEASM64( &TMP$1589$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1589$3 );
			fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + (VRREG2$1 << (3ll & 63ll))), 0ll, 0 );
		}
		label$1233:;
		label$1232:;
		if( OP$1 != 30ll ) goto label$1235;
		{
			if( *(int64*)V1$1 == 4ll ) goto label$1237;
			{
				FBSTRING TMP$1590$4;
				FBSTRING TMP$1591$4;
				FBSTRING TMP$1592$4;
				FBSTRING TMP$1593$4;
				struct $6IRVREG* vr$547 = IRHLALLOCVREG( 8ll, (struct $8FBSYMBOL*)0ull );
				VR$1 = vr$547;
				int32 vr$550 = REG_FINDFREE( (int32)*(int64*)((uint8*)VR$1 + 24ll), -1ll );
				VRREG$1 = (int64)vr$550;
				fb_StrAssign( (void*)&OP1PREV$1, -1ll, (void*)&OP1$1, -1ll, 0 );
				__builtin_memset( &TMP$1593$4, 0, 24ll );
				__builtin_memset( &TMP$1590$4, 0, 24ll );
				FBSTRING* vr$559 = fb_StrConcat( &TMP$1590$4, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + (VRREG$1 << (3ll & 63ll))), 0ll );
				__builtin_memset( &TMP$1591$4, 0, 24ll );
				FBSTRING* vr$562 = fb_StrConcat( &TMP$1591$4, (void*)vr$559, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$1592$4, 0, 24ll );
				FBSTRING* vr$565 = fb_StrConcat( &TMP$1592$4, (void*)vr$562, -1ll, (void*)&OP1$1, -1ll );
				fb_StrAssign( (void*)&TMP$1593$4, -1ll, (void*)vr$565, -1ll, 0 );
				HWRITEASM64( &TMP$1593$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1593$4 );
				fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + (VRREG$1 << (3ll & 63ll))), 0ll, 0 );
			}
			label$1237:;
			label$1236:;
		}
		goto label$1234;
		label$1235:;
		{
			if( ((int64)-(*(int64*)V2$1 != 4ll) & (int64)-(*(int64*)V2$1 != 0ll)) == 0ll ) goto label$1239;
			{
				struct $6IRVREG* vr$576 = IRHLALLOCVREG( TEMPODTYPE$1, (struct $8FBSYMBOL*)0ull );
				VRTEMPO$1 = vr$576;
				int32 vr$579 = REG_FINDFREE( (int32)*(int64*)((uint8*)VRTEMPO$1 + 24ll), -1ll );
				VRREG$1 = (int64)vr$579;
				if( *(int64*)V2$1 != 5ll ) goto label$1241;
				{
					FBSTRING TMP$1594$5;
					FBSTRING TMP$1595$5;
					FBSTRING TMP$1596$5;
					FBSTRING TMP$1597$5;
					__builtin_memset( &TMP$1597$5, 0, 24ll );
					__builtin_memset( &TMP$1594$5, 0, 24ll );
					FBSTRING* vr$587 = fb_StrConcat( &TMP$1594$5, (void*)"lea ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + (VRREG$1 << (3ll & 63ll))), 0ll );
					__builtin_memset( &TMP$1595$5, 0, 24ll );
					FBSTRING* vr$590 = fb_StrConcat( &TMP$1595$5, (void*)vr$587, -1ll, (void*)", ", 3ll );
					__builtin_memset( &TMP$1596$5, 0, 24ll );
					FBSTRING* vr$593 = fb_StrConcat( &TMP$1596$5, (void*)vr$590, -1ll, (void*)&OP2$1, -1ll );
					fb_StrAssign( (void*)&TMP$1597$5, -1ll, (void*)vr$593, -1ll, 0 );
					HWRITEASM64( &TMP$1597$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1597$5 );
					fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + (VRREG$1 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$1240;
				label$1241:;
				{
					{
						if( TEMPODTYPE$1 == 8ll ) goto label$1244;
						label$1245:;
						if( TEMPODTYPE$1 == 9ll ) goto label$1244;
						label$1246:;
						if( TEMPODTYPE$1 == 13ll ) goto label$1244;
						label$1247:;
						if( TEMPODTYPE$1 == 14ll ) goto label$1244;
						label$1248:;
						if( TEMPODTYPE$1 != 10ll ) goto label$1243;
						label$1244:;
						{
							FBSTRING TMP$1598$7;
							FBSTRING TMP$1599$7;
							FBSTRING TMP$1600$7;
							FBSTRING TMP$1601$7;
							__builtin_memset( &TMP$1601$7, 0, 24ll );
							__builtin_memset( &TMP$1598$7, 0, 24ll );
							FBSTRING* vr$604 = fb_StrConcat( &TMP$1598$7, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + (VRREG$1 << (3ll & 63ll))), 0ll );
							__builtin_memset( &TMP$1599$7, 0, 24ll );
							FBSTRING* vr$607 = fb_StrConcat( &TMP$1599$7, (void*)vr$604, -1ll, (void*)", ", 3ll );
							__builtin_memset( &TMP$1600$7, 0, 24ll );
							FBSTRING* vr$610 = fb_StrConcat( &TMP$1600$7, (void*)vr$607, -1ll, (void*)&OP2$1, -1ll );
							fb_StrAssign( (void*)&TMP$1601$7, -1ll, (void*)vr$610, -1ll, 0 );
							HWRITEASM64( &TMP$1601$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$1601$7 );
							fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + (VRREG$1 << (3ll & 63ll))), 0ll, 0 );
						}
						goto label$1242;
						label$1243:;
						if( TEMPODTYPE$1 == 11ll ) goto label$1250;
						label$1251:;
						if( TEMPODTYPE$1 != 12ll ) goto label$1249;
						label$1250:;
						{
							FBSTRING TMP$1602$7;
							FBSTRING TMP$1603$7;
							FBSTRING TMP$1604$7;
							FBSTRING TMP$1605$7;
							__builtin_memset( &TMP$1605$7, 0, 24ll );
							__builtin_memset( &TMP$1602$7, 0, 24ll );
							FBSTRING* vr$621 = fb_StrConcat( &TMP$1602$7, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRD$ + (VRREG$1 << (3ll & 63ll))), 0ll );
							__builtin_memset( &TMP$1603$7, 0, 24ll );
							FBSTRING* vr$624 = fb_StrConcat( &TMP$1603$7, (void*)vr$621, -1ll, (void*)", ", 3ll );
							__builtin_memset( &TMP$1604$7, 0, 24ll );
							FBSTRING* vr$627 = fb_StrConcat( &TMP$1604$7, (void*)vr$624, -1ll, (void*)&OP2$1, -1ll );
							fb_StrAssign( (void*)&TMP$1605$7, -1ll, (void*)vr$627, -1ll, 0 );
							HWRITEASM64( &TMP$1605$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$1605$7 );
							fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRD$ + (VRREG$1 << (3ll & 63ll))), 0ll, 0 );
						}
						goto label$1242;
						label$1249:;
						if( TEMPODTYPE$1 == 5ll ) goto label$1253;
						label$1254:;
						if( TEMPODTYPE$1 != 6ll ) goto label$1252;
						label$1253:;
						{
							FBSTRING TMP$1606$7;
							FBSTRING TMP$1607$7;
							FBSTRING TMP$1608$7;
							FBSTRING TMP$1609$7;
							__builtin_memset( &TMP$1609$7, 0, 24ll );
							__builtin_memset( &TMP$1606$7, 0, 24ll );
							FBSTRING* vr$638 = fb_StrConcat( &TMP$1606$7, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRW$ + (VRREG$1 << (3ll & 63ll))), 0ll );
							__builtin_memset( &TMP$1607$7, 0, 24ll );
							FBSTRING* vr$641 = fb_StrConcat( &TMP$1607$7, (void*)vr$638, -1ll, (void*)", ", 3ll );
							__builtin_memset( &TMP$1608$7, 0, 24ll );
							FBSTRING* vr$644 = fb_StrConcat( &TMP$1608$7, (void*)vr$641, -1ll, (void*)&OP2$1, -1ll );
							fb_StrAssign( (void*)&TMP$1609$7, -1ll, (void*)vr$644, -1ll, 0 );
							HWRITEASM64( &TMP$1609$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$1609$7 );
							fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRW$ + (VRREG$1 << (3ll & 63ll))), 0ll, 0 );
						}
						goto label$1242;
						label$1252:;
						if( TEMPODTYPE$1 == 2ll ) goto label$1256;
						label$1257:;
						if( TEMPODTYPE$1 == 3ll ) goto label$1256;
						label$1258:;
						if( TEMPODTYPE$1 == 1ll ) goto label$1256;
						label$1259:;
						if( TEMPODTYPE$1 != 4ll ) goto label$1255;
						label$1256:;
						{
							FBSTRING TMP$1610$7;
							FBSTRING TMP$1611$7;
							FBSTRING TMP$1612$7;
							FBSTRING TMP$1613$7;
							__builtin_memset( &TMP$1613$7, 0, 24ll );
							__builtin_memset( &TMP$1610$7, 0, 24ll );
							FBSTRING* vr$655 = fb_StrConcat( &TMP$1610$7, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRB$ + (VRREG$1 << (3ll & 63ll))), 0ll );
							__builtin_memset( &TMP$1611$7, 0, 24ll );
							FBSTRING* vr$658 = fb_StrConcat( &TMP$1611$7, (void*)vr$655, -1ll, (void*)", ", 3ll );
							__builtin_memset( &TMP$1612$7, 0, 24ll );
							FBSTRING* vr$661 = fb_StrConcat( &TMP$1612$7, (void*)vr$658, -1ll, (void*)&OP2$1, -1ll );
							fb_StrAssign( (void*)&TMP$1613$7, -1ll, (void*)vr$661, -1ll, 0 );
							HWRITEASM64( &TMP$1613$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$1613$7 );
							fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRB$ + (VRREG$1 << (3ll & 63ll))), 0ll, 0 );
						}
						goto label$1242;
						label$1255:;
						{
							FBSTRING TMP$1614$7;
							FBSTRING TMP$1618$7;
							FBSTRING TMP$1619$7;
							FBSTRING TMP$1620$7;
							__builtin_memset( &TMP$1614$7, 0, 24ll );
							fb_StrAssign( (void*)&TMP$1614$7, -1ll, (void*)"", 1ll, 0 );
							HWRITEASM64( &TMP$1614$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$1614$7 );
							__builtin_memset( &TMP$1619$7, 0, 24ll );
							FBSTRING* vr$673 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 8ll) );
							__builtin_memset( &TMP$1618$7, 0, 24ll );
							FBSTRING* vr$676 = fb_StrConcat( &TMP$1618$7, (void*)"FOUND AN ERROR : BOP datatype not handled 012 = ", 49ll, (void*)vr$673, -1ll );
							fb_StrAssign( (void*)&TMP$1619$7, -1ll, (void*)vr$676, -1ll, 0 );
							HWRITEASM64( &TMP$1619$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$1619$7 );
							__builtin_memset( &TMP$1620$7, 0, 24ll );
							fb_StrAssign( (void*)&TMP$1620$7, -1ll, (void*)"", 1ll, 0 );
							HWRITEASM64( &TMP$1620$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$1620$7 );
						}
						label$1260:;
						label$1242:;
					}
				}
				label$1240:;
			}
			label$1239:;
			label$1238:;
		}
		label$1234:;
	}
	label$1205:;
	if( *(int64*)V2$1 != 0ll ) goto label$1262;
	{
		if( ((int64)-(*(int64*)((uint8*)V2$1 + 48ll) < -2147483648ll) | (int64)-(*(uint64*)((uint8*)V2$1 + 48ll) >= 2147483648ull)) == 0ll ) goto label$1264;
		{
			if( ((int64)-(*(int64*)((uint8*)V2$1 + 48ll) < -2147483648ll) | (int64)-(*(uint64*)((uint8*)V2$1 + 48ll) > 4294967295ull)) == 0ll ) goto label$1266;
			{
				FBSTRING TMP$1621$4;
				FBSTRING TMP$1622$4;
				__builtin_memset( &TMP$1622$4, 0, 24ll );
				FBSTRING* vr$697 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 48ll) );
				__builtin_memset( &TMP$1621$4, 0, 24ll );
				FBSTRING* vr$700 = fb_StrConcat( &TMP$1621$4, (void*)"mov rax, ", 10ll, (void*)vr$697, -1ll );
				fb_StrAssign( (void*)&TMP$1622$4, -1ll, (void*)vr$700, -1ll, 0 );
				HWRITEASM64( &TMP$1622$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1622$4 );
			}
			goto label$1265;
			label$1266:;
			{
				FBSTRING TMP$1624$4;
				FBSTRING TMP$1625$4;
				__builtin_memset( &TMP$1625$4, 0, 24ll );
				FBSTRING* vr$706 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 48ll) );
				__builtin_memset( &TMP$1624$4, 0, 24ll );
				FBSTRING* vr$709 = fb_StrConcat( &TMP$1624$4, (void*)"mov eax, ", 10ll, (void*)vr$706, -1ll );
				fb_StrAssign( (void*)&TMP$1625$4, -1ll, (void*)vr$709, -1ll, 0 );
				HWRITEASM64( &TMP$1625$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1625$4 );
			}
			label$1265:;
			fb_StrAssign( (void*)&OP2$1, -1ll, (void*)"rax", 4ll, 0 );
			{
				if( TEMPODTYPE$1 == 8ll ) goto label$1269;
				label$1270:;
				if( TEMPODTYPE$1 == 9ll ) goto label$1269;
				label$1271:;
				if( TEMPODTYPE$1 == 13ll ) goto label$1269;
				label$1272:;
				if( TEMPODTYPE$1 == 14ll ) goto label$1269;
				label$1273:;
				if( TEMPODTYPE$1 == 10ll ) goto label$1269;
				label$1274:;
				if( TEMPODTYPE$1 != 16ll ) goto label$1268;
				label$1269:;
				{
				}
				goto label$1267;
				label$1268:;
				if( TEMPODTYPE$1 == 11ll ) goto label$1276;
				label$1277:;
				if( TEMPODTYPE$1 == 12ll ) goto label$1276;
				label$1278:;
				if( TEMPODTYPE$1 != 15ll ) goto label$1275;
				label$1276:;
				{
					fb_StrAssign( (void*)&OP2$1, -1ll, (void*)"eax", 4ll, 0 );
				}
				goto label$1267;
				label$1275:;
				if( TEMPODTYPE$1 == 5ll ) goto label$1280;
				label$1281:;
				if( TEMPODTYPE$1 != 6ll ) goto label$1279;
				label$1280:;
				{
					fb_StrAssign( (void*)&OP2$1, -1ll, (void*)"ax", 3ll, 0 );
				}
				goto label$1267;
				label$1279:;
				if( TEMPODTYPE$1 == 2ll ) goto label$1283;
				label$1284:;
				if( TEMPODTYPE$1 == 3ll ) goto label$1283;
				label$1285:;
				if( TEMPODTYPE$1 == 1ll ) goto label$1283;
				label$1286:;
				if( TEMPODTYPE$1 != 4ll ) goto label$1282;
				label$1283:;
				{
					fb_StrAssign( (void*)&OP2$1, -1ll, (void*)"al", 3ll, 0 );
				}
				goto label$1267;
				label$1282:;
				{
					FBSTRING TMP$1626$5;
					FBSTRING TMP$1630$5;
					FBSTRING TMP$1631$5;
					FBSTRING TMP$1632$5;
					__builtin_memset( &TMP$1626$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$1626$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$1626$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1626$5 );
					__builtin_memset( &TMP$1631$5, 0, 24ll );
					FBSTRING* vr$723 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 8ll) );
					__builtin_memset( &TMP$1630$5, 0, 24ll );
					FBSTRING* vr$726 = fb_StrConcat( &TMP$1630$5, (void*)"FOUND AN ERROR : BOP datatype not handled 0100 = ", 50ll, (void*)vr$723, -1ll );
					fb_StrAssign( (void*)&TMP$1631$5, -1ll, (void*)vr$726, -1ll, 0 );
					HWRITEASM64( &TMP$1631$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1631$5 );
					__builtin_memset( &TMP$1632$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$1632$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$1632$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1632$5 );
				}
				label$1287:;
				label$1267:;
			}
		}
		label$1264:;
		label$1263:;
	}
	label$1262:;
	label$1261:;
	{
		uint64 TMP$1633$2;
		TMP$1633$2 = (uint64)OP$1;
		goto label$1289;
		label$1290:;
		{
			int32 vr$735 = fb_StrCompare( (void*)&OP2$1, -1ll, (void*)"1", 2ll );
			if( (int64)vr$735 != 0ll ) goto label$1292;
			{
				FBSTRING TMP$1635$4;
				FBSTRING TMP$1636$4;
				__builtin_memset( &TMP$1636$4, 0, 24ll );
				__builtin_memset( &TMP$1635$4, 0, 24ll );
				FBSTRING* vr$741 = fb_StrConcat( &TMP$1635$4, (void*)"inc ", 5ll, (void*)&OP1$1, -1ll );
				fb_StrAssign( (void*)&TMP$1636$4, -1ll, (void*)vr$741, -1ll, 0 );
				HWRITEASM64( &TMP$1636$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1636$4 );
			}
			goto label$1291;
			label$1292:;
			int32 vr$746 = fb_StrCompare( (void*)&OP2$1, -1ll, (void*)"-1", 3ll );
			if( (int64)vr$746 != 0ll ) goto label$1293;
			{
				FBSTRING TMP$1638$4;
				FBSTRING TMP$1639$4;
				__builtin_memset( &TMP$1639$4, 0, 24ll );
				__builtin_memset( &TMP$1638$4, 0, 24ll );
				FBSTRING* vr$752 = fb_StrConcat( &TMP$1638$4, (void*)"dec ", 5ll, (void*)&OP1$1, -1ll );
				fb_StrAssign( (void*)&TMP$1639$4, -1ll, (void*)vr$752, -1ll, 0 );
				HWRITEASM64( &TMP$1639$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1639$4 );
			}
			goto label$1291;
			label$1293:;
			{
				FBSTRING TMP$1640$4;
				FBSTRING TMP$1641$4;
				FBSTRING TMP$1642$4;
				FBSTRING TMP$1643$4;
				__builtin_memset( &TMP$1643$4, 0, 24ll );
				__builtin_memset( &TMP$1640$4, 0, 24ll );
				FBSTRING* vr$761 = fb_StrConcat( &TMP$1640$4, (void*)"add ", 5ll, (void*)&OP1$1, -1ll );
				__builtin_memset( &TMP$1641$4, 0, 24ll );
				FBSTRING* vr$764 = fb_StrConcat( &TMP$1641$4, (void*)vr$761, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$1642$4, 0, 24ll );
				FBSTRING* vr$767 = fb_StrConcat( &TMP$1642$4, (void*)vr$764, -1ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$1643$4, -1ll, (void*)vr$767, -1ll, 0 );
				HWRITEASM64( &TMP$1643$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1643$4 );
			}
			label$1291:;
			if( VR$1 == (struct $6IRVREG*)0ull ) goto label$1295;
			{
				RESTORE_VRREG( VR$1, VRREG$1 );
				label$1295:;
			}
		}
		goto label$1288;
		label$1296:;
		{
			FBSTRING TMP$1645$3;
			FBSTRING TMP$1646$3;
			FBSTRING TMP$1647$3;
			FBSTRING TMP$1648$3;
			__builtin_memset( &TMP$1648$3, 0, 24ll );
			__builtin_memset( &TMP$1645$3, 0, 24ll );
			FBSTRING* vr$776 = fb_StrConcat( &TMP$1645$3, (void*)"and ", 5ll, (void*)&OP1$1, -1ll );
			__builtin_memset( &TMP$1646$3, 0, 24ll );
			FBSTRING* vr$779 = fb_StrConcat( &TMP$1646$3, (void*)vr$776, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$1647$3, 0, 24ll );
			FBSTRING* vr$782 = fb_StrConcat( &TMP$1647$3, (void*)vr$779, -1ll, (void*)&OP2$1, -1ll );
			fb_StrAssign( (void*)&TMP$1648$3, -1ll, (void*)vr$782, -1ll, 0 );
			HWRITEASM64( &TMP$1648$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1648$3 );
			if( VR$1 == (struct $6IRVREG*)0ull ) goto label$1298;
			{
				RESTORE_VRREG( VR$1, VRREG$1 );
				label$1298:;
			}
		}
		goto label$1288;
		label$1299:;
		{
			FBSTRING TMP$1649$3;
			FBSTRING TMP$1650$3;
			FBSTRING TMP$1651$3;
			FBSTRING TMP$1652$3;
			__builtin_memset( &TMP$1652$3, 0, 24ll );
			__builtin_memset( &TMP$1649$3, 0, 24ll );
			FBSTRING* vr$791 = fb_StrConcat( &TMP$1649$3, (void*)"or ", 4ll, (void*)&OP1$1, -1ll );
			__builtin_memset( &TMP$1650$3, 0, 24ll );
			FBSTRING* vr$794 = fb_StrConcat( &TMP$1650$3, (void*)vr$791, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$1651$3, 0, 24ll );
			FBSTRING* vr$797 = fb_StrConcat( &TMP$1651$3, (void*)vr$794, -1ll, (void*)&OP2$1, -1ll );
			fb_StrAssign( (void*)&TMP$1652$3, -1ll, (void*)vr$797, -1ll, 0 );
			HWRITEASM64( &TMP$1652$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1652$3 );
			if( VR$1 == (struct $6IRVREG*)0ull ) goto label$1301;
			{
				RESTORE_VRREG( VR$1, VRREG$1 );
				label$1301:;
			}
		}
		goto label$1288;
		label$1302:;
		{
			if( VR$1 == (struct $6IRVREG*)0ull ) goto label$1304;
			{
				FBSTRING TMP$1680$4;
				FBSTRING TMP$1681$4;
				FBSTRING TMP$1682$4;
				FBSTRING TMP$1683$4;
				if( TEMPODTYPE$1 != 1ll ) goto label$1306;
				{
					FBSTRING TMP$1654$5;
					FBSTRING TMP$1655$5;
					FBSTRING TMP$1656$5;
					__builtin_memset( &TMP$1656$5, 0, 24ll );
					__builtin_memset( &TMP$1654$5, 0, 24ll );
					FBSTRING* vr$805 = fb_StrConcat( &TMP$1654$5, (void*)"xor ", 5ll, (void*)&OP1$1, -1ll );
					__builtin_memset( &TMP$1655$5, 0, 24ll );
					FBSTRING* vr$808 = fb_StrConcat( &TMP$1655$5, (void*)vr$805, -1ll, (void*)", 1", 4ll );
					fb_StrAssign( (void*)&TMP$1656$5, -1ll, (void*)vr$808, -1ll, 0 );
					HWRITEASM64( &TMP$1656$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1656$5 );
				}
				goto label$1305;
				label$1306:;
				{
					FBSTRING TMP$1658$5;
					FBSTRING TMP$1659$5;
					__builtin_memset( &TMP$1659$5, 0, 24ll );
					__builtin_memset( &TMP$1658$5, 0, 24ll );
					FBSTRING* vr$816 = fb_StrConcat( &TMP$1658$5, (void*)"not ", 5ll, (void*)&OP1$1, -1ll );
					fb_StrAssign( (void*)&TMP$1659$5, -1ll, (void*)vr$816, -1ll, 0 );
					HWRITEASM64( &TMP$1659$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1659$5 );
				}
				label$1305:;
				{
					if( TEMPODTYPE$1 == 8ll ) goto label$1309;
					label$1310:;
					if( TEMPODTYPE$1 == 9ll ) goto label$1309;
					label$1311:;
					if( TEMPODTYPE$1 == 13ll ) goto label$1309;
					label$1312:;
					if( TEMPODTYPE$1 == 14ll ) goto label$1309;
					label$1313:;
					if( TEMPODTYPE$1 != 10ll ) goto label$1308;
					label$1309:;
					{
						FBSTRING TMP$1660$6;
						FBSTRING TMP$1661$6;
						FBSTRING TMP$1662$6;
						FBSTRING TMP$1663$6;
						__builtin_memset( &TMP$1663$6, 0, 24ll );
						__builtin_memset( &TMP$1660$6, 0, 24ll );
						FBSTRING* vr$824 = fb_StrConcat( &TMP$1660$6, (void*)"mov ", 5ll, *(void**)REGSTRQ$, 0ll );
						__builtin_memset( &TMP$1661$6, 0, 24ll );
						FBSTRING* vr$827 = fb_StrConcat( &TMP$1661$6, (void*)vr$824, -1ll, (void*)", ", 3ll );
						__builtin_memset( &TMP$1662$6, 0, 24ll );
						FBSTRING* vr$830 = fb_StrConcat( &TMP$1662$6, (void*)vr$827, -1ll, (void*)&OP2$1, -1ll );
						fb_StrAssign( (void*)&TMP$1663$6, -1ll, (void*)vr$830, -1ll, 0 );
						HWRITEASM64( &TMP$1663$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1663$6 );
						fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)REGSTRQ$, 0ll, 0 );
					}
					goto label$1307;
					label$1308:;
					if( TEMPODTYPE$1 == 11ll ) goto label$1315;
					label$1316:;
					if( TEMPODTYPE$1 != 12ll ) goto label$1314;
					label$1315:;
					{
						FBSTRING TMP$1664$6;
						FBSTRING TMP$1665$6;
						FBSTRING TMP$1666$6;
						FBSTRING TMP$1667$6;
						__builtin_memset( &TMP$1667$6, 0, 24ll );
						__builtin_memset( &TMP$1664$6, 0, 24ll );
						FBSTRING* vr$839 = fb_StrConcat( &TMP$1664$6, (void*)"mov ", 5ll, *(void**)REGSTRD$, 0ll );
						__builtin_memset( &TMP$1665$6, 0, 24ll );
						FBSTRING* vr$842 = fb_StrConcat( &TMP$1665$6, (void*)vr$839, -1ll, (void*)", ", 3ll );
						__builtin_memset( &TMP$1666$6, 0, 24ll );
						FBSTRING* vr$845 = fb_StrConcat( &TMP$1666$6, (void*)vr$842, -1ll, (void*)&OP2$1, -1ll );
						fb_StrAssign( (void*)&TMP$1667$6, -1ll, (void*)vr$845, -1ll, 0 );
						HWRITEASM64( &TMP$1667$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1667$6 );
						fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)REGSTRD$, 0ll, 0 );
					}
					goto label$1307;
					label$1314:;
					if( TEMPODTYPE$1 == 5ll ) goto label$1318;
					label$1319:;
					if( TEMPODTYPE$1 != 6ll ) goto label$1317;
					label$1318:;
					{
						FBSTRING TMP$1668$6;
						FBSTRING TMP$1669$6;
						FBSTRING TMP$1670$6;
						FBSTRING TMP$1671$6;
						__builtin_memset( &TMP$1671$6, 0, 24ll );
						__builtin_memset( &TMP$1668$6, 0, 24ll );
						FBSTRING* vr$854 = fb_StrConcat( &TMP$1668$6, (void*)"mov ", 5ll, *(void**)REGSTRW$, 0ll );
						__builtin_memset( &TMP$1669$6, 0, 24ll );
						FBSTRING* vr$857 = fb_StrConcat( &TMP$1669$6, (void*)vr$854, -1ll, (void*)", ", 3ll );
						__builtin_memset( &TMP$1670$6, 0, 24ll );
						FBSTRING* vr$860 = fb_StrConcat( &TMP$1670$6, (void*)vr$857, -1ll, (void*)&OP2$1, -1ll );
						fb_StrAssign( (void*)&TMP$1671$6, -1ll, (void*)vr$860, -1ll, 0 );
						HWRITEASM64( &TMP$1671$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1671$6 );
						fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)REGSTRW$, 0ll, 0 );
					}
					goto label$1307;
					label$1317:;
					if( TEMPODTYPE$1 == 2ll ) goto label$1321;
					label$1322:;
					if( TEMPODTYPE$1 == 3ll ) goto label$1321;
					label$1323:;
					if( TEMPODTYPE$1 == 1ll ) goto label$1321;
					label$1324:;
					if( TEMPODTYPE$1 != 4ll ) goto label$1320;
					label$1321:;
					{
						FBSTRING TMP$1672$6;
						FBSTRING TMP$1673$6;
						FBSTRING TMP$1674$6;
						FBSTRING TMP$1675$6;
						__builtin_memset( &TMP$1675$6, 0, 24ll );
						__builtin_memset( &TMP$1672$6, 0, 24ll );
						FBSTRING* vr$869 = fb_StrConcat( &TMP$1672$6, (void*)"mov ", 5ll, *(void**)REGSTRB$, 0ll );
						__builtin_memset( &TMP$1673$6, 0, 24ll );
						FBSTRING* vr$872 = fb_StrConcat( &TMP$1673$6, (void*)vr$869, -1ll, (void*)", ", 3ll );
						__builtin_memset( &TMP$1674$6, 0, 24ll );
						FBSTRING* vr$875 = fb_StrConcat( &TMP$1674$6, (void*)vr$872, -1ll, (void*)&OP2$1, -1ll );
						fb_StrAssign( (void*)&TMP$1675$6, -1ll, (void*)vr$875, -1ll, 0 );
						HWRITEASM64( &TMP$1675$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1675$6 );
						fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)REGSTRB$, 0ll, 0 );
					}
					goto label$1307;
					label$1320:;
					{
						FBSTRING TMP$1676$6;
						FBSTRING TMP$1677$6;
						FBSTRING TMP$1678$6;
						FBSTRING TMP$1679$6;
						__builtin_memset( &TMP$1676$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$1676$6, -1ll, (void*)"", 1ll, 0 );
						HWRITEASM64( &TMP$1676$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1676$6 );
						__builtin_memset( &TMP$1678$6, 0, 24ll );
						FBSTRING* vr$886 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 8ll) );
						__builtin_memset( &TMP$1677$6, 0, 24ll );
						FBSTRING* vr$889 = fb_StrConcat( &TMP$1677$6, (void*)"FOUND AN ERROR : BOP datatype not handled 012 = ", 49ll, (void*)vr$886, -1ll );
						fb_StrAssign( (void*)&TMP$1678$6, -1ll, (void*)vr$889, -1ll, 0 );
						HWRITEASM64( &TMP$1678$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1678$6 );
						__builtin_memset( &TMP$1679$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$1679$6, -1ll, (void*)"", 1ll, 0 );
						HWRITEASM64( &TMP$1679$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1679$6 );
					}
					label$1325:;
					label$1307:;
				}
				__builtin_memset( &TMP$1683$4, 0, 24ll );
				__builtin_memset( &TMP$1680$4, 0, 24ll );
				FBSTRING* vr$902 = fb_StrConcat( &TMP$1680$4, (void*)"or ", 4ll, (void*)&OP1$1, -1ll );
				__builtin_memset( &TMP$1681$4, 0, 24ll );
				FBSTRING* vr$905 = fb_StrConcat( &TMP$1681$4, (void*)vr$902, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$1682$4, 0, 24ll );
				FBSTRING* vr$908 = fb_StrConcat( &TMP$1682$4, (void*)vr$905, -1ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$1683$4, -1ll, (void*)vr$908, -1ll, 0 );
				HWRITEASM64( &TMP$1683$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1683$4 );
			}
			goto label$1303;
			label$1304:;
			{
				FBSTRING TMP$1709$4;
				FBSTRING TMP$1710$4;
				FBSTRING TMP$1711$4;
				FBSTRING TMP$1712$4;
				FBSTRING TMP$1713$4;
				FBSTRING TMP$1714$4;
				FBSTRING TMP$1715$4;
				FBSTRING TMP$1716$4;
				{
					if( TEMPODTYPE$1 == 8ll ) goto label$1328;
					label$1329:;
					if( TEMPODTYPE$1 == 9ll ) goto label$1328;
					label$1330:;
					if( TEMPODTYPE$1 == 13ll ) goto label$1328;
					label$1331:;
					if( TEMPODTYPE$1 == 14ll ) goto label$1328;
					label$1332:;
					if( TEMPODTYPE$1 != 10ll ) goto label$1327;
					label$1328:;
					{
						FBSTRING TMP$1684$6;
						FBSTRING TMP$1685$6;
						FBSTRING TMP$1686$6;
						FBSTRING TMP$1687$6;
						__builtin_memset( &TMP$1687$6, 0, 24ll );
						__builtin_memset( &TMP$1684$6, 0, 24ll );
						FBSTRING* vr$916 = fb_StrConcat( &TMP$1684$6, (void*)"mov ", 5ll, *(void**)REGSTRQ$, 0ll );
						__builtin_memset( &TMP$1685$6, 0, 24ll );
						FBSTRING* vr$919 = fb_StrConcat( &TMP$1685$6, (void*)vr$916, -1ll, (void*)", ", 3ll );
						__builtin_memset( &TMP$1686$6, 0, 24ll );
						FBSTRING* vr$922 = fb_StrConcat( &TMP$1686$6, (void*)vr$919, -1ll, (void*)&OP1$1, -1ll );
						fb_StrAssign( (void*)&TMP$1687$6, -1ll, (void*)vr$922, -1ll, 0 );
						HWRITEASM64( &TMP$1687$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1687$6 );
						fb_StrAssign( (void*)&OP1BIS$1, -1ll, *(void**)REGSTRQ$, 0ll, 0 );
					}
					goto label$1326;
					label$1327:;
					if( TEMPODTYPE$1 == 11ll ) goto label$1334;
					label$1335:;
					if( TEMPODTYPE$1 != 12ll ) goto label$1333;
					label$1334:;
					{
						FBSTRING TMP$1688$6;
						FBSTRING TMP$1689$6;
						FBSTRING TMP$1690$6;
						FBSTRING TMP$1691$6;
						__builtin_memset( &TMP$1691$6, 0, 24ll );
						__builtin_memset( &TMP$1688$6, 0, 24ll );
						FBSTRING* vr$931 = fb_StrConcat( &TMP$1688$6, (void*)"mov ", 5ll, *(void**)REGSTRD$, 0ll );
						__builtin_memset( &TMP$1689$6, 0, 24ll );
						FBSTRING* vr$934 = fb_StrConcat( &TMP$1689$6, (void*)vr$931, -1ll, (void*)", ", 3ll );
						__builtin_memset( &TMP$1690$6, 0, 24ll );
						FBSTRING* vr$937 = fb_StrConcat( &TMP$1690$6, (void*)vr$934, -1ll, (void*)&OP1$1, -1ll );
						fb_StrAssign( (void*)&TMP$1691$6, -1ll, (void*)vr$937, -1ll, 0 );
						HWRITEASM64( &TMP$1691$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1691$6 );
						fb_StrAssign( (void*)&OP1BIS$1, -1ll, *(void**)REGSTRD$, 0ll, 0 );
					}
					goto label$1326;
					label$1333:;
					if( TEMPODTYPE$1 == 5ll ) goto label$1337;
					label$1338:;
					if( TEMPODTYPE$1 != 6ll ) goto label$1336;
					label$1337:;
					{
						FBSTRING TMP$1692$6;
						FBSTRING TMP$1693$6;
						FBSTRING TMP$1694$6;
						FBSTRING TMP$1695$6;
						__builtin_memset( &TMP$1695$6, 0, 24ll );
						__builtin_memset( &TMP$1692$6, 0, 24ll );
						FBSTRING* vr$946 = fb_StrConcat( &TMP$1692$6, (void*)"mov ", 5ll, *(void**)REGSTRW$, 0ll );
						__builtin_memset( &TMP$1693$6, 0, 24ll );
						FBSTRING* vr$949 = fb_StrConcat( &TMP$1693$6, (void*)vr$946, -1ll, (void*)", ", 3ll );
						__builtin_memset( &TMP$1694$6, 0, 24ll );
						FBSTRING* vr$952 = fb_StrConcat( &TMP$1694$6, (void*)vr$949, -1ll, (void*)&OP1$1, -1ll );
						fb_StrAssign( (void*)&TMP$1695$6, -1ll, (void*)vr$952, -1ll, 0 );
						HWRITEASM64( &TMP$1695$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1695$6 );
						fb_StrAssign( (void*)&OP1BIS$1, -1ll, *(void**)REGSTRW$, 0ll, 0 );
					}
					goto label$1326;
					label$1336:;
					if( TEMPODTYPE$1 == 2ll ) goto label$1340;
					label$1341:;
					if( TEMPODTYPE$1 == 3ll ) goto label$1340;
					label$1342:;
					if( TEMPODTYPE$1 == 1ll ) goto label$1340;
					label$1343:;
					if( TEMPODTYPE$1 != 4ll ) goto label$1339;
					label$1340:;
					{
						FBSTRING TMP$1696$6;
						FBSTRING TMP$1697$6;
						FBSTRING TMP$1698$6;
						FBSTRING TMP$1699$6;
						__builtin_memset( &TMP$1699$6, 0, 24ll );
						__builtin_memset( &TMP$1696$6, 0, 24ll );
						FBSTRING* vr$961 = fb_StrConcat( &TMP$1696$6, (void*)"mov ", 5ll, *(void**)REGSTRB$, 0ll );
						__builtin_memset( &TMP$1697$6, 0, 24ll );
						FBSTRING* vr$964 = fb_StrConcat( &TMP$1697$6, (void*)vr$961, -1ll, (void*)", ", 3ll );
						__builtin_memset( &TMP$1698$6, 0, 24ll );
						FBSTRING* vr$967 = fb_StrConcat( &TMP$1698$6, (void*)vr$964, -1ll, (void*)&OP1$1, -1ll );
						fb_StrAssign( (void*)&TMP$1699$6, -1ll, (void*)vr$967, -1ll, 0 );
						HWRITEASM64( &TMP$1699$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1699$6 );
						fb_StrAssign( (void*)&OP1BIS$1, -1ll, *(void**)REGSTRB$, 0ll, 0 );
					}
					goto label$1326;
					label$1339:;
					{
						FBSTRING TMP$1700$6;
						FBSTRING TMP$1701$6;
						FBSTRING TMP$1702$6;
						FBSTRING TMP$1703$6;
						__builtin_memset( &TMP$1700$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$1700$6, -1ll, (void*)"", 1ll, 0 );
						HWRITEASM64( &TMP$1700$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1700$6 );
						__builtin_memset( &TMP$1702$6, 0, 24ll );
						FBSTRING* vr$978 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 8ll) );
						__builtin_memset( &TMP$1701$6, 0, 24ll );
						FBSTRING* vr$981 = fb_StrConcat( &TMP$1701$6, (void*)"FOUND AN ERROR : BOP datatype not handled 012 = ", 49ll, (void*)vr$978, -1ll );
						fb_StrAssign( (void*)&TMP$1702$6, -1ll, (void*)vr$981, -1ll, 0 );
						HWRITEASM64( &TMP$1702$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1702$6 );
						__builtin_memset( &TMP$1703$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$1703$6, -1ll, (void*)"", 1ll, 0 );
						HWRITEASM64( &TMP$1703$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1703$6 );
					}
					label$1344:;
					label$1326:;
				}
				if( TEMPODTYPE$1 != 1ll ) goto label$1346;
				{
					FBSTRING TMP$1704$5;
					FBSTRING TMP$1705$5;
					FBSTRING TMP$1706$5;
					__builtin_memset( &TMP$1706$5, 0, 24ll );
					__builtin_memset( &TMP$1704$5, 0, 24ll );
					FBSTRING* vr$993 = fb_StrConcat( &TMP$1704$5, (void*)"xor ", 5ll, (void*)&OP1BIS$1, -1ll );
					__builtin_memset( &TMP$1705$5, 0, 24ll );
					FBSTRING* vr$996 = fb_StrConcat( &TMP$1705$5, (void*)vr$993, -1ll, (void*)", 1", 4ll );
					fb_StrAssign( (void*)&TMP$1706$5, -1ll, (void*)vr$996, -1ll, 0 );
					HWRITEASM64( &TMP$1706$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1706$5 );
				}
				goto label$1345;
				label$1346:;
				{
					FBSTRING TMP$1707$5;
					FBSTRING TMP$1708$5;
					__builtin_memset( &TMP$1708$5, 0, 24ll );
					__builtin_memset( &TMP$1707$5, 0, 24ll );
					FBSTRING* vr$1004 = fb_StrConcat( &TMP$1707$5, (void*)"not ", 5ll, (void*)&OP1BIS$1, -1ll );
					fb_StrAssign( (void*)&TMP$1708$5, -1ll, (void*)vr$1004, -1ll, 0 );
					HWRITEASM64( &TMP$1708$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1708$5 );
				}
				label$1345:;
				__builtin_memset( &TMP$1712$4, 0, 24ll );
				__builtin_memset( &TMP$1709$4, 0, 24ll );
				FBSTRING* vr$1013 = fb_StrConcat( &TMP$1709$4, (void*)"or ", 4ll, (void*)&OP1BIS$1, -1ll );
				__builtin_memset( &TMP$1710$4, 0, 24ll );
				FBSTRING* vr$1016 = fb_StrConcat( &TMP$1710$4, (void*)vr$1013, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$1711$4, 0, 24ll );
				FBSTRING* vr$1019 = fb_StrConcat( &TMP$1711$4, (void*)vr$1016, -1ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$1712$4, -1ll, (void*)vr$1019, -1ll, 0 );
				HWRITEASM64( &TMP$1712$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1712$4 );
				__builtin_memset( &TMP$1716$4, 0, 24ll );
				__builtin_memset( &TMP$1713$4, 0, 24ll );
				FBSTRING* vr$1028 = fb_StrConcat( &TMP$1713$4, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
				__builtin_memset( &TMP$1714$4, 0, 24ll );
				FBSTRING* vr$1031 = fb_StrConcat( &TMP$1714$4, (void*)vr$1028, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$1715$4, 0, 24ll );
				FBSTRING* vr$1034 = fb_StrConcat( &TMP$1715$4, (void*)vr$1031, -1ll, (void*)&OP1BIS$1, -1ll );
				fb_StrAssign( (void*)&TMP$1716$4, -1ll, (void*)vr$1034, -1ll, 0 );
				HWRITEASM64( &TMP$1716$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1716$4 );
			}
			label$1303:;
			if( VR$1 == (struct $6IRVREG*)0ull ) goto label$1348;
			{
				RESTORE_VRREG( VR$1, VRREG$1 );
				label$1348:;
			}
		}
		goto label$1288;
		label$1349:;
		{
			FBSTRING TMP$1717$3;
			FBSTRING TMP$1718$3;
			FBSTRING TMP$1719$3;
			FBSTRING TMP$1720$3;
			__builtin_memset( &TMP$1720$3, 0, 24ll );
			__builtin_memset( &TMP$1717$3, 0, 24ll );
			FBSTRING* vr$1043 = fb_StrConcat( &TMP$1717$3, (void*)"xor ", 5ll, (void*)&OP1$1, -1ll );
			__builtin_memset( &TMP$1718$3, 0, 24ll );
			FBSTRING* vr$1046 = fb_StrConcat( &TMP$1718$3, (void*)vr$1043, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$1719$3, 0, 24ll );
			FBSTRING* vr$1049 = fb_StrConcat( &TMP$1719$3, (void*)vr$1046, -1ll, (void*)&OP2$1, -1ll );
			fb_StrAssign( (void*)&TMP$1720$3, -1ll, (void*)vr$1049, -1ll, 0 );
			HWRITEASM64( &TMP$1720$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1720$3 );
			if( VR$1 == (struct $6IRVREG*)0ull ) goto label$1351;
			{
				RESTORE_VRREG( VR$1, VRREG$1 );
				label$1351:;
			}
		}
		goto label$1288;
		label$1352:;
		{
			FBSTRING TMP$1741$3;
			FBSTRING TMP$1742$3;
			FBSTRING TMP$1743$3;
			FBSTRING TMP$1744$3;
			FBSTRING TMP$1750$3;
			FBSTRING TMP$1751$3;
			FBSTRING TMP$1752$3;
			FBSTRING TMP$1753$3;
			{
				if( TEMPODTYPE$1 == 8ll ) goto label$1355;
				label$1356:;
				if( TEMPODTYPE$1 == 9ll ) goto label$1355;
				label$1357:;
				if( TEMPODTYPE$1 == 13ll ) goto label$1355;
				label$1358:;
				if( TEMPODTYPE$1 == 14ll ) goto label$1355;
				label$1359:;
				if( TEMPODTYPE$1 != 10ll ) goto label$1354;
				label$1355:;
				{
					FBSTRING TMP$1721$5;
					FBSTRING TMP$1722$5;
					FBSTRING TMP$1723$5;
					FBSTRING TMP$1724$5;
					__builtin_memset( &TMP$1724$5, 0, 24ll );
					__builtin_memset( &TMP$1721$5, 0, 24ll );
					FBSTRING* vr$1057 = fb_StrConcat( &TMP$1721$5, (void*)"mov ", 5ll, *(void**)REGSTRQ$, 0ll );
					__builtin_memset( &TMP$1722$5, 0, 24ll );
					FBSTRING* vr$1060 = fb_StrConcat( &TMP$1722$5, (void*)vr$1057, -1ll, (void*)", ", 3ll );
					__builtin_memset( &TMP$1723$5, 0, 24ll );
					FBSTRING* vr$1063 = fb_StrConcat( &TMP$1723$5, (void*)vr$1060, -1ll, (void*)&OP2$1, -1ll );
					fb_StrAssign( (void*)&TMP$1724$5, -1ll, (void*)vr$1063, -1ll, 0 );
					HWRITEASM64( &TMP$1724$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1724$5 );
					fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)REGSTRQ$, 0ll, 0 );
				}
				goto label$1353;
				label$1354:;
				if( TEMPODTYPE$1 == 11ll ) goto label$1361;
				label$1362:;
				if( TEMPODTYPE$1 != 12ll ) goto label$1360;
				label$1361:;
				{
					FBSTRING TMP$1725$5;
					FBSTRING TMP$1726$5;
					FBSTRING TMP$1727$5;
					FBSTRING TMP$1728$5;
					__builtin_memset( &TMP$1728$5, 0, 24ll );
					__builtin_memset( &TMP$1725$5, 0, 24ll );
					FBSTRING* vr$1072 = fb_StrConcat( &TMP$1725$5, (void*)"mov ", 5ll, *(void**)REGSTRD$, 0ll );
					__builtin_memset( &TMP$1726$5, 0, 24ll );
					FBSTRING* vr$1075 = fb_StrConcat( &TMP$1726$5, (void*)vr$1072, -1ll, (void*)", ", 3ll );
					__builtin_memset( &TMP$1727$5, 0, 24ll );
					FBSTRING* vr$1078 = fb_StrConcat( &TMP$1727$5, (void*)vr$1075, -1ll, (void*)&OP2$1, -1ll );
					fb_StrAssign( (void*)&TMP$1728$5, -1ll, (void*)vr$1078, -1ll, 0 );
					HWRITEASM64( &TMP$1728$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1728$5 );
					fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)REGSTRD$, 0ll, 0 );
				}
				goto label$1353;
				label$1360:;
				if( TEMPODTYPE$1 == 5ll ) goto label$1364;
				label$1365:;
				if( TEMPODTYPE$1 != 6ll ) goto label$1363;
				label$1364:;
				{
					FBSTRING TMP$1729$5;
					FBSTRING TMP$1730$5;
					FBSTRING TMP$1731$5;
					FBSTRING TMP$1732$5;
					__builtin_memset( &TMP$1732$5, 0, 24ll );
					__builtin_memset( &TMP$1729$5, 0, 24ll );
					FBSTRING* vr$1087 = fb_StrConcat( &TMP$1729$5, (void*)"mov ", 5ll, *(void**)REGSTRW$, 0ll );
					__builtin_memset( &TMP$1730$5, 0, 24ll );
					FBSTRING* vr$1090 = fb_StrConcat( &TMP$1730$5, (void*)vr$1087, -1ll, (void*)", ", 3ll );
					__builtin_memset( &TMP$1731$5, 0, 24ll );
					FBSTRING* vr$1093 = fb_StrConcat( &TMP$1731$5, (void*)vr$1090, -1ll, (void*)&OP2$1, -1ll );
					fb_StrAssign( (void*)&TMP$1732$5, -1ll, (void*)vr$1093, -1ll, 0 );
					HWRITEASM64( &TMP$1732$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1732$5 );
					fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)REGSTRW$, 0ll, 0 );
				}
				goto label$1353;
				label$1363:;
				if( TEMPODTYPE$1 == 2ll ) goto label$1367;
				label$1368:;
				if( TEMPODTYPE$1 == 3ll ) goto label$1367;
				label$1369:;
				if( TEMPODTYPE$1 == 1ll ) goto label$1367;
				label$1370:;
				if( TEMPODTYPE$1 != 4ll ) goto label$1366;
				label$1367:;
				{
					FBSTRING TMP$1733$5;
					FBSTRING TMP$1734$5;
					FBSTRING TMP$1735$5;
					FBSTRING TMP$1736$5;
					__builtin_memset( &TMP$1736$5, 0, 24ll );
					__builtin_memset( &TMP$1733$5, 0, 24ll );
					FBSTRING* vr$1102 = fb_StrConcat( &TMP$1733$5, (void*)"mov ", 5ll, *(void**)REGSTRB$, 0ll );
					__builtin_memset( &TMP$1734$5, 0, 24ll );
					FBSTRING* vr$1105 = fb_StrConcat( &TMP$1734$5, (void*)vr$1102, -1ll, (void*)", ", 3ll );
					__builtin_memset( &TMP$1735$5, 0, 24ll );
					FBSTRING* vr$1108 = fb_StrConcat( &TMP$1735$5, (void*)vr$1105, -1ll, (void*)&OP2$1, -1ll );
					fb_StrAssign( (void*)&TMP$1736$5, -1ll, (void*)vr$1108, -1ll, 0 );
					HWRITEASM64( &TMP$1736$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1736$5 );
					fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)REGSTRB$, 0ll, 0 );
				}
				goto label$1353;
				label$1366:;
				{
					FBSTRING TMP$1737$5;
					FBSTRING TMP$1738$5;
					FBSTRING TMP$1739$5;
					FBSTRING TMP$1740$5;
					__builtin_memset( &TMP$1737$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$1737$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$1737$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1737$5 );
					__builtin_memset( &TMP$1739$5, 0, 24ll );
					FBSTRING* vr$1119 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 8ll) );
					__builtin_memset( &TMP$1738$5, 0, 24ll );
					FBSTRING* vr$1122 = fb_StrConcat( &TMP$1738$5, (void*)"FOUND AN ERROR : BOP datatype not handled 012 = ", 49ll, (void*)vr$1119, -1ll );
					fb_StrAssign( (void*)&TMP$1739$5, -1ll, (void*)vr$1122, -1ll, 0 );
					HWRITEASM64( &TMP$1739$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1739$5 );
					__builtin_memset( &TMP$1740$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$1740$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$1740$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1740$5 );
				}
				label$1371:;
				label$1353:;
			}
			__builtin_memset( &TMP$1744$3, 0, 24ll );
			__builtin_memset( &TMP$1741$3, 0, 24ll );
			FBSTRING* vr$1135 = fb_StrConcat( &TMP$1741$3, (void*)"xor ", 5ll, (void*)&OP2$1, -1ll );
			__builtin_memset( &TMP$1742$3, 0, 24ll );
			FBSTRING* vr$1138 = fb_StrConcat( &TMP$1742$3, (void*)vr$1135, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$1743$3, 0, 24ll );
			FBSTRING* vr$1141 = fb_StrConcat( &TMP$1743$3, (void*)vr$1138, -1ll, (void*)&OP1$1, -1ll );
			fb_StrAssign( (void*)&TMP$1744$3, -1ll, (void*)vr$1141, -1ll, 0 );
			HWRITEASM64( &TMP$1744$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1744$3 );
			if( TEMPODTYPE$1 != 1ll ) goto label$1373;
			{
				FBSTRING TMP$1745$4;
				FBSTRING TMP$1746$4;
				FBSTRING TMP$1747$4;
				__builtin_memset( &TMP$1747$4, 0, 24ll );
				__builtin_memset( &TMP$1745$4, 0, 24ll );
				FBSTRING* vr$1149 = fb_StrConcat( &TMP$1745$4, (void*)"xor ", 5ll, (void*)&OP2$1, -1ll );
				__builtin_memset( &TMP$1746$4, 0, 24ll );
				FBSTRING* vr$1152 = fb_StrConcat( &TMP$1746$4, (void*)vr$1149, -1ll, (void*)", 1", 4ll );
				fb_StrAssign( (void*)&TMP$1747$4, -1ll, (void*)vr$1152, -1ll, 0 );
				HWRITEASM64( &TMP$1747$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1747$4 );
			}
			goto label$1372;
			label$1373:;
			{
				FBSTRING TMP$1748$4;
				FBSTRING TMP$1749$4;
				__builtin_memset( &TMP$1749$4, 0, 24ll );
				__builtin_memset( &TMP$1748$4, 0, 24ll );
				FBSTRING* vr$1160 = fb_StrConcat( &TMP$1748$4, (void*)"not ", 5ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$1749$4, -1ll, (void*)vr$1160, -1ll, 0 );
				HWRITEASM64( &TMP$1749$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1749$4 );
			}
			label$1372:;
			__builtin_memset( &TMP$1753$3, 0, 24ll );
			__builtin_memset( &TMP$1750$3, 0, 24ll );
			FBSTRING* vr$1169 = fb_StrConcat( &TMP$1750$3, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
			__builtin_memset( &TMP$1751$3, 0, 24ll );
			FBSTRING* vr$1172 = fb_StrConcat( &TMP$1751$3, (void*)vr$1169, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$1752$3, 0, 24ll );
			FBSTRING* vr$1175 = fb_StrConcat( &TMP$1752$3, (void*)vr$1172, -1ll, (void*)&OP2$1, -1ll );
			fb_StrAssign( (void*)&TMP$1753$3, -1ll, (void*)vr$1175, -1ll, 0 );
			HWRITEASM64( &TMP$1753$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1753$3 );
			if( VR$1 == (struct $6IRVREG*)0ull ) goto label$1375;
			{
				RESTORE_VRREG( VR$1, VRREG$1 );
				label$1375:;
			}
		}
		goto label$1288;
		label$1376:;
		{
			int32 vr$1180 = fb_StrCompare( (void*)&OP2$1, -1ll, (void*)"1", 2ll );
			if( (int64)vr$1180 != 0ll ) goto label$1378;
			{
				FBSTRING TMP$1754$4;
				FBSTRING TMP$1755$4;
				__builtin_memset( &TMP$1755$4, 0, 24ll );
				__builtin_memset( &TMP$1754$4, 0, 24ll );
				FBSTRING* vr$1186 = fb_StrConcat( &TMP$1754$4, (void*)"dec ", 5ll, (void*)&OP1$1, -1ll );
				fb_StrAssign( (void*)&TMP$1755$4, -1ll, (void*)vr$1186, -1ll, 0 );
				HWRITEASM64( &TMP$1755$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1755$4 );
			}
			goto label$1377;
			label$1378:;
			int32 vr$1191 = fb_StrCompare( (void*)&OP2$1, -1ll, (void*)"-1", 3ll );
			if( (int64)vr$1191 != 0ll ) goto label$1379;
			{
				FBSTRING TMP$1756$4;
				FBSTRING TMP$1757$4;
				__builtin_memset( &TMP$1757$4, 0, 24ll );
				__builtin_memset( &TMP$1756$4, 0, 24ll );
				FBSTRING* vr$1197 = fb_StrConcat( &TMP$1756$4, (void*)"inc ", 5ll, (void*)&OP1$1, -1ll );
				fb_StrAssign( (void*)&TMP$1757$4, -1ll, (void*)vr$1197, -1ll, 0 );
				HWRITEASM64( &TMP$1757$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1757$4 );
			}
			goto label$1377;
			label$1379:;
			{
				FBSTRING TMP$1759$4;
				FBSTRING TMP$1760$4;
				FBSTRING TMP$1761$4;
				FBSTRING TMP$1762$4;
				__builtin_memset( &TMP$1762$4, 0, 24ll );
				__builtin_memset( &TMP$1759$4, 0, 24ll );
				FBSTRING* vr$1206 = fb_StrConcat( &TMP$1759$4, (void*)"sub ", 5ll, (void*)&OP1$1, -1ll );
				__builtin_memset( &TMP$1760$4, 0, 24ll );
				FBSTRING* vr$1209 = fb_StrConcat( &TMP$1760$4, (void*)vr$1206, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$1761$4, 0, 24ll );
				FBSTRING* vr$1212 = fb_StrConcat( &TMP$1761$4, (void*)vr$1209, -1ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$1762$4, -1ll, (void*)vr$1212, -1ll, 0 );
				HWRITEASM64( &TMP$1762$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1762$4 );
			}
			label$1377:;
			if( VR$1 == (struct $6IRVREG*)0ull ) goto label$1381;
			{
				RESTORE_VRREG( VR$1, VRREG$1 );
				label$1381:;
			}
		}
		goto label$1288;
		label$1382:;
		{
			FBSTRING TMP$1764$3;
			FBSTRING TMP$1765$3;
			FBSTRING TMP$1766$3;
			FBSTRING TMP$1767$3;
			__builtin_memset( &TMP$1767$3, 0, 24ll );
			__builtin_memset( &TMP$1764$3, 0, 24ll );
			FBSTRING* vr$1221 = fb_StrConcat( &TMP$1764$3, (void*)"imul ", 6ll, (void*)&OP1$1, -1ll );
			__builtin_memset( &TMP$1765$3, 0, 24ll );
			FBSTRING* vr$1224 = fb_StrConcat( &TMP$1765$3, (void*)vr$1221, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$1766$3, 0, 24ll );
			FBSTRING* vr$1227 = fb_StrConcat( &TMP$1766$3, (void*)vr$1224, -1ll, (void*)&OP2$1, -1ll );
			fb_StrAssign( (void*)&TMP$1767$3, -1ll, (void*)vr$1227, -1ll, 0 );
			HWRITEASM64( &TMP$1767$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1767$3 );
			int32 vr$1232 = fb_StrCompare( (void*)&OP1PREV$1, -1ll, (void*)"", 1ll );
			if( (int64)vr$1232 == 0ll ) goto label$1384;
			{
				FBSTRING TMP$1768$4;
				FBSTRING TMP$1769$4;
				FBSTRING TMP$1770$4;
				FBSTRING TMP$1771$4;
				__builtin_memset( &TMP$1771$4, 0, 24ll );
				__builtin_memset( &TMP$1768$4, 0, 24ll );
				FBSTRING* vr$1239 = fb_StrConcat( &TMP$1768$4, (void*)"mov ", 5ll, (void*)&OP1PREV$1, -1ll );
				__builtin_memset( &TMP$1769$4, 0, 24ll );
				FBSTRING* vr$1242 = fb_StrConcat( &TMP$1769$4, (void*)vr$1239, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$1770$4, 0, 24ll );
				FBSTRING* vr$1245 = fb_StrConcat( &TMP$1770$4, (void*)vr$1242, -1ll, (void*)&OP1$1, -1ll );
				fb_StrAssign( (void*)&TMP$1771$4, -1ll, (void*)vr$1245, -1ll, 0 );
				HWRITEASM64( &TMP$1771$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1771$4 );
				label$1384:;
			}
		}
		goto label$1288;
		label$1385:;
		{
			FBSTRING TMP$1783$3;
			FBSTRING TMP$1784$3;
			FBSTRING TMP$1785$3;
			FBSTRING TMP$1786$3;
			if( ((((int64)-(*(int64*)((uint8*)V1$1 + 8ll) == 9ll) | (int64)-(*(int64*)((uint8*)V1$1 + 8ll) == 14ll)) | (int64)-(*(int64*)((uint8*)V2$1 + 8ll) == 9ll)) | (int64)-(*(int64*)((uint8*)V2$1 + 8ll) == 14ll)) == 0ll ) goto label$1387;
			{
				{
					uint64 TMP$1772$5;
					TMP$1772$5 = (uint64)OP$1;
					goto label$1389;
					label$1390:;
					{
						fb_StrAssign( (void*)&SUFFIX$1, -1ll, (void*)"be", 3ll, 0 );
					}
					goto label$1388;
					label$1391:;
					{
						fb_StrAssign( (void*)&SUFFIX$1, -1ll, (void*)"b", 2ll, 0 );
					}
					goto label$1388;
					label$1392:;
					{
						fb_StrAssign( (void*)&SUFFIX$1, -1ll, (void*)"ne", 3ll, 0 );
					}
					goto label$1388;
					label$1393:;
					{
						fb_StrAssign( (void*)&SUFFIX$1, -1ll, (void*)"nb", 3ll, 0 );
					}
					goto label$1388;
					label$1394:;
					{
						fb_StrAssign( (void*)&SUFFIX$1, -1ll, (void*)"a", 2ll, 0 );
					}
					goto label$1388;
					label$1395:;
					{
						fb_StrAssign( (void*)&SUFFIX$1, -1ll, (void*)"e", 2ll, 0 );
					}
					goto label$1388;
					label$1389:;
					static const void* tmp$4072[6ll] = {
						&&label$1395,
						&&label$1394,
						&&label$1391,
						&&label$1392,
						&&label$1393,
						&&label$1390,
					};
					if( (TMP$1772$5 - 45ull) > 5ull ) goto label$1388;
					goto *tmp$4072[TMP$1772$5 - 45ull];
					label$1388:;
				}
			}
			goto label$1386;
			label$1387:;
			{
				{
					uint64 TMP$1778$5;
					TMP$1778$5 = (uint64)OP$1;
					goto label$1397;
					label$1398:;
					{
						fb_StrAssign( (void*)&SUFFIX$1, -1ll, (void*)"le", 3ll, 0 );
					}
					goto label$1396;
					label$1399:;
					{
						fb_StrAssign( (void*)&SUFFIX$1, -1ll, (void*)"l", 2ll, 0 );
					}
					goto label$1396;
					label$1400:;
					{
						fb_StrAssign( (void*)&SUFFIX$1, -1ll, (void*)"ne", 3ll, 0 );
					}
					goto label$1396;
					label$1401:;
					{
						fb_StrAssign( (void*)&SUFFIX$1, -1ll, (void*)"ge", 3ll, 0 );
					}
					goto label$1396;
					label$1402:;
					{
						fb_StrAssign( (void*)&SUFFIX$1, -1ll, (void*)"g", 2ll, 0 );
					}
					goto label$1396;
					label$1403:;
					{
						fb_StrAssign( (void*)&SUFFIX$1, -1ll, (void*)"e", 2ll, 0 );
					}
					goto label$1396;
					label$1397:;
					static const void* tmp$4073[6ll] = {
						&&label$1403,
						&&label$1402,
						&&label$1399,
						&&label$1400,
						&&label$1401,
						&&label$1398,
					};
					if( (TMP$1778$5 - 45ull) > 5ull ) goto label$1396;
					goto *tmp$4073[TMP$1778$5 - 45ull];
					label$1396:;
				}
			}
			label$1386:;
			__builtin_memset( &TMP$1786$3, 0, 24ll );
			__builtin_memset( &TMP$1783$3, 0, 24ll );
			FBSTRING* vr$1277 = fb_StrConcat( &TMP$1783$3, (void*)"cmp ", 5ll, (void*)&OP1$1, -1ll );
			__builtin_memset( &TMP$1784$3, 0, 24ll );
			FBSTRING* vr$1280 = fb_StrConcat( &TMP$1784$3, (void*)vr$1277, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$1785$3, 0, 24ll );
			FBSTRING* vr$1283 = fb_StrConcat( &TMP$1785$3, (void*)vr$1280, -1ll, (void*)&OP2$1, -1ll );
			fb_StrAssign( (void*)&TMP$1786$3, -1ll, (void*)vr$1283, -1ll, 0 );
			HWRITEASM64( &TMP$1786$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1786$3 );
			if( LABEL$1 != (struct $8FBSYMBOL*)0ull ) goto label$1405;
			{
				FBSTRING TMP$1789$4;
				FBSTRING TMP$1790$4;
				FBSTRING TMP$1791$4;
				FBSTRING TMP$1793$4;
				FBSTRING TMP$1794$4;
				FBSTRING TMP$1795$4;
				__builtin_memset( &TMP$1791$4, 0, 24ll );
				__builtin_memset( &TMP$1789$4, 0, 24ll );
				FBSTRING* vr$1291 = fb_StrConcat( &TMP$1789$4, (void*)"set", 4ll, (void*)&SUFFIX$1, -1ll );
				__builtin_memset( &TMP$1790$4, 0, 24ll );
				FBSTRING* vr$1294 = fb_StrConcat( &TMP$1790$4, (void*)vr$1291, -1ll, (void*)" al", 4ll );
				fb_StrAssign( (void*)&TMP$1791$4, -1ll, (void*)vr$1294, -1ll, 0 );
				HWRITEASM64( &TMP$1791$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1791$4 );
				__builtin_memset( &TMP$1795$4, 0, 24ll );
				__builtin_memset( &TMP$1793$4, 0, 24ll );
				FBSTRING* vr$1302 = fb_StrConcat( &TMP$1793$4, (void*)"movzx ", 7ll, *(void**)((int64)(char**)REGSTRQ$ + (VRREG$1 << (3ll & 63ll))), 0ll );
				__builtin_memset( &TMP$1794$4, 0, 24ll );
				FBSTRING* vr$1305 = fb_StrConcat( &TMP$1794$4, (void*)vr$1302, -1ll, (void*)", al", 5ll );
				fb_StrAssign( (void*)&TMP$1795$4, -1ll, (void*)vr$1305, -1ll, 0 );
				HWRITEASM64( &TMP$1795$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1795$4 );
				if( TEMPODTYPE$1 == 1ll ) goto label$1407;
				{
					FBSTRING TMP$1797$5;
					FBSTRING TMP$1798$5;
					__builtin_memset( &TMP$1798$5, 0, 24ll );
					__builtin_memset( &TMP$1797$5, 0, 24ll );
					FBSTRING* vr$1313 = fb_StrConcat( &TMP$1797$5, (void*)"neg ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + (VRREG$1 << (3ll & 63ll))), 0ll );
					fb_StrAssign( (void*)&TMP$1798$5, -1ll, (void*)vr$1313, -1ll, 0 );
					HWRITEASM64( &TMP$1798$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1798$5 );
				}
				label$1407:;
				label$1406:;
				RESTORE_VRREG( VR$1, VRREG$1 );
			}
			goto label$1404;
			label$1405:;
			{
				FBSTRING TMP$1800$4;
				FBSTRING TMP$1801$4;
				FBSTRING TMP$1802$4;
				FBSTRING TMP$1803$4;
				__builtin_memset( &TMP$1803$4, 0, 24ll );
				char* vr$1318 = SYMBGETMANGLEDNAME( LABEL$1 );
				__builtin_memset( &TMP$1800$4, 0, 24ll );
				FBSTRING* vr$1322 = fb_StrConcat( &TMP$1800$4, (void*)"j", 2ll, (void*)&SUFFIX$1, -1ll );
				__builtin_memset( &TMP$1801$4, 0, 24ll );
				FBSTRING* vr$1325 = fb_StrConcat( &TMP$1801$4, (void*)vr$1322, -1ll, (void*)" ", 2ll );
				__builtin_memset( &TMP$1802$4, 0, 24ll );
				FBSTRING* vr$1328 = fb_StrConcat( &TMP$1802$4, (void*)vr$1325, -1ll, (void*)vr$1318, 0ll );
				fb_StrAssign( (void*)&TMP$1803$4, -1ll, (void*)vr$1328, -1ll, 0 );
				HWRITEASM64( &TMP$1803$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1803$4 );
				REG_MARK( LABEL$1 );
			}
			label$1404:;
		}
		goto label$1288;
		label$1408:;
		{
			if( *(int64*)V2$1 == 0ll ) goto label$1410;
			{
				int32 vr$1334 = fb_StrCompare( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + 16ll), 0ll );
				if( (int64)vr$1334 == 0ll ) goto label$1412;
				{
					FBSTRING TMP$1809$5;
					FBSTRING TMP$1810$5;
					if( (int64)*(int32*)((int64)(int32*)REGHANDLE$ + 8ll) == -2ll ) goto label$1414;
					{
						FBSTRING TMP$1804$6;
						FBSTRING TMP$1805$6;
						FBSTRING TMP$1806$6;
						FBSTRING TMP$1807$6;
						TEMPO$1 = (int64)*(int32*)((int64)(int32*)REGHANDLE$ + 8ll);
						REG_FINDFREE( (int32)TEMPO$1, -1ll );
						*(int32*)((int64)(int32*)REGHANDLE$ + 8ll) = -2;
						__builtin_memset( &TMP$1807$6, 0, 24ll );
						int32 vr$1341 = REG_FINDREAL( (int32)TEMPO$1 );
						__builtin_memset( &TMP$1804$6, 0, 24ll );
						FBSTRING* vr$1346 = fb_StrConcat( &TMP$1804$6, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$1341 << (3ll & 63ll))), 0ll );
						__builtin_memset( &TMP$1805$6, 0, 24ll );
						FBSTRING* vr$1349 = fb_StrConcat( &TMP$1805$6, (void*)vr$1346, -1ll, (void*)", ", 3ll );
						__builtin_memset( &TMP$1806$6, 0, 24ll );
						FBSTRING* vr$1352 = fb_StrConcat( &TMP$1806$6, (void*)vr$1349, -1ll, *(void**)((int64)(char**)REGSTRQ$ + 16ll), 0ll );
						fb_StrAssign( (void*)&TMP$1807$6, -1ll, (void*)vr$1352, -1ll, 0 );
						HWRITEASM64( &TMP$1807$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$1807$6 );
						if( VRREG$1 != 2ll ) goto label$1416;
						{
							int32 vr$1357 = REG_FINDREAL( (int32)TEMPO$1 );
							VRREG$1 = (int64)vr$1357;
							label$1416:;
						}
					}
					goto label$1413;
					label$1414:;
					{
						*(int32*)((uint8*)&CTX$ + 224ll) = (int32)((int64)*(int32*)((uint8*)&CTX$ + 224ll) | 4ll);
					}
					label$1413:;
					__builtin_memset( &TMP$1810$5, 0, 24ll );
					__builtin_memset( &TMP$1809$5, 0, 24ll );
					FBSTRING* vr$1366 = fb_StrConcat( &TMP$1809$5, (void*)"mov rcx, ", 10ll, (void*)&OP2$1, -1ll );
					fb_StrAssign( (void*)&TMP$1810$5, -1ll, (void*)vr$1366, -1ll, 0 );
					HWRITEASM64( &TMP$1810$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1810$5 );
				}
				label$1412:;
				label$1411:;
				fb_StrAssign( (void*)&OP2$1, -1ll, (void*)"cl", 3ll, 0 );
			}
			label$1410:;
			label$1409:;
			if( OP$1 != 41ll ) goto label$1418;
			{
				FBSTRING TMP$1812$4;
				FBSTRING TMP$1813$4;
				FBSTRING TMP$1814$4;
				FBSTRING TMP$1815$4;
				__builtin_memset( &TMP$1815$4, 0, 24ll );
				__builtin_memset( &TMP$1812$4, 0, 24ll );
				FBSTRING* vr$1376 = fb_StrConcat( &TMP$1812$4, (void*)"shl ", 5ll, (void*)&OP1$1, -1ll );
				__builtin_memset( &TMP$1813$4, 0, 24ll );
				FBSTRING* vr$1379 = fb_StrConcat( &TMP$1813$4, (void*)vr$1376, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$1814$4, 0, 24ll );
				FBSTRING* vr$1382 = fb_StrConcat( &TMP$1814$4, (void*)vr$1379, -1ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$1815$4, -1ll, (void*)vr$1382, -1ll, 0 );
				HWRITEASM64( &TMP$1815$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1815$4 );
			}
			goto label$1417;
			label$1418:;
			{
				if( ((int64)-(TEMPODTYPE$1 == 8ll) | (int64)-(TEMPODTYPE$1 == 13ll)) == 0ll ) goto label$1420;
				{
					FBSTRING TMP$1817$5;
					FBSTRING TMP$1818$5;
					FBSTRING TMP$1819$5;
					FBSTRING TMP$1820$5;
					__builtin_memset( &TMP$1820$5, 0, 24ll );
					__builtin_memset( &TMP$1817$5, 0, 24ll );
					FBSTRING* vr$1394 = fb_StrConcat( &TMP$1817$5, (void*)"sar ", 5ll, (void*)&OP1$1, -1ll );
					__builtin_memset( &TMP$1818$5, 0, 24ll );
					FBSTRING* vr$1397 = fb_StrConcat( &TMP$1818$5, (void*)vr$1394, -1ll, (void*)", ", 3ll );
					__builtin_memset( &TMP$1819$5, 0, 24ll );
					FBSTRING* vr$1400 = fb_StrConcat( &TMP$1819$5, (void*)vr$1397, -1ll, (void*)&OP2$1, -1ll );
					fb_StrAssign( (void*)&TMP$1820$5, -1ll, (void*)vr$1400, -1ll, 0 );
					HWRITEASM64( &TMP$1820$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1820$5 );
				}
				goto label$1419;
				label$1420:;
				{
					FBSTRING TMP$1821$5;
					FBSTRING TMP$1822$5;
					FBSTRING TMP$1823$5;
					FBSTRING TMP$1824$5;
					__builtin_memset( &TMP$1824$5, 0, 24ll );
					__builtin_memset( &TMP$1821$5, 0, 24ll );
					FBSTRING* vr$1409 = fb_StrConcat( &TMP$1821$5, (void*)"shr ", 5ll, (void*)&OP1$1, -1ll );
					__builtin_memset( &TMP$1822$5, 0, 24ll );
					FBSTRING* vr$1412 = fb_StrConcat( &TMP$1822$5, (void*)vr$1409, -1ll, (void*)", ", 3ll );
					__builtin_memset( &TMP$1823$5, 0, 24ll );
					FBSTRING* vr$1415 = fb_StrConcat( &TMP$1823$5, (void*)vr$1412, -1ll, (void*)&OP2$1, -1ll );
					fb_StrAssign( (void*)&TMP$1824$5, -1ll, (void*)vr$1415, -1ll, 0 );
					HWRITEASM64( &TMP$1824$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1824$5 );
				}
				label$1419:;
			}
			label$1417:;
		}
		goto label$1288;
		label$1421:;
		{
			FBSTRING TMP$1833$3;
			FBSTRING TMP$1834$3;
			if( (int64)*(int32*)((int64)(int32*)REGHANDLE$ + 12ll) == -2ll ) goto label$1423;
			{
				int32 vr$1421 = fb_StrCompare( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + 24ll), 0ll );
				if( (int64)vr$1421 == 0ll ) goto label$1425;
				{
					FBSTRING TMP$1825$5;
					FBSTRING TMP$1826$5;
					FBSTRING TMP$1827$5;
					FBSTRING TMP$1828$5;
					TEMPO$1 = (int64)*(int32*)((int64)(int32*)REGHANDLE$ + 12ll);
					REG_FINDFREE( (int32)TEMPO$1, -1ll );
					*(int32*)((int64)(int32*)REGHANDLE$ + 12ll) = -2;
					__builtin_memset( &TMP$1828$5, 0, 24ll );
					int32 vr$1427 = REG_FINDREAL( (int32)TEMPO$1 );
					__builtin_memset( &TMP$1825$5, 0, 24ll );
					FBSTRING* vr$1432 = fb_StrConcat( &TMP$1825$5, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$1427 << (3ll & 63ll))), 0ll );
					__builtin_memset( &TMP$1826$5, 0, 24ll );
					FBSTRING* vr$1435 = fb_StrConcat( &TMP$1826$5, (void*)vr$1432, -1ll, (void*)", ", 3ll );
					__builtin_memset( &TMP$1827$5, 0, 24ll );
					FBSTRING* vr$1438 = fb_StrConcat( &TMP$1827$5, (void*)vr$1435, -1ll, *(void**)((int64)(char**)REGSTRQ$ + 24ll), 0ll );
					fb_StrAssign( (void*)&TMP$1828$5, -1ll, (void*)vr$1438, -1ll, 0 );
					HWRITEASM64( &TMP$1828$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1828$5 );
					int32 vr$1443 = fb_StrCompare( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + 24ll), 0ll );
					if( (int64)vr$1443 != 0ll ) goto label$1427;
					{
						int32 vr$1446 = REG_FINDREAL( (int32)TEMPO$1 );
						fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$1446 << (3ll & 63ll))), 0ll, 0 );
					}
					label$1427:;
					label$1426:;
					if( VRREG$1 != 3ll ) goto label$1429;
					{
						int32 vr$1451 = REG_FINDREAL( (int32)TEMPO$1 );
						VRREG$1 = (int64)vr$1451;
						label$1429:;
					}
				}
				label$1425:;
				label$1424:;
			}
			goto label$1422;
			label$1423:;
			{
				*(int32*)((uint8*)&CTX$ + 224ll) = (int32)((int64)*(int32*)((uint8*)&CTX$ + 224ll) | 8ll);
			}
			label$1422:;
			if( *(int64*)V2$1 != 0ll ) goto label$1431;
			{
				FBSTRING TMP$1829$4;
				FBSTRING TMP$1830$4;
				FBSTRING TMP$1831$4;
				FBSTRING TMP$1832$4;
				if( (int64)*(int32*)((int64)(int32*)REGHANDLE$ + 12ll) != -2ll ) goto label$1433;
				{
					*(int32*)((int64)(int32*)REGHANDLE$ + 12ll) = -3;
					label$1433:;
				}
				char* vr$1458 = REG_TEMPO(  );
				fb_StrAssign( (void*)&REGTEMPO$1, -1ll, (void*)vr$1458, 0ll, 0 );
				if( (int64)*(int32*)((int64)(int32*)REGHANDLE$ + 12ll) != -3ll ) goto label$1435;
				{
					*(int32*)((int64)(int32*)REGHANDLE$ + 12ll) = -2;
					label$1435:;
				}
				__builtin_memset( &TMP$1832$4, 0, 24ll );
				__builtin_memset( &TMP$1829$4, 0, 24ll );
				FBSTRING* vr$1466 = fb_StrConcat( &TMP$1829$4, (void*)"mov ", 5ll, (void*)&REGTEMPO$1, -1ll );
				__builtin_memset( &TMP$1830$4, 0, 24ll );
				FBSTRING* vr$1469 = fb_StrConcat( &TMP$1830$4, (void*)vr$1466, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$1831$4, 0, 24ll );
				FBSTRING* vr$1472 = fb_StrConcat( &TMP$1831$4, (void*)vr$1469, -1ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$1832$4, -1ll, (void*)vr$1472, -1ll, 0 );
				HWRITEASM64( &TMP$1832$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1832$4 );
				fb_StrAssign( (void*)&OP2$1, -1ll, (void*)&REGTEMPO$1, -1ll, 0 );
			}
			label$1431:;
			label$1430:;
			__builtin_memset( &TMP$1834$3, 0, 24ll );
			__builtin_memset( &TMP$1833$3, 0, 24ll );
			FBSTRING* vr$1482 = fb_StrConcat( &TMP$1833$3, (void*)"mov rax, ", 10ll, (void*)&OP1$1, -1ll );
			fb_StrAssign( (void*)&TMP$1834$3, -1ll, (void*)vr$1482, -1ll, 0 );
			HWRITEASM64( &TMP$1834$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1834$3 );
			TEMPO2DTYPE$1 = *($11FB_DATATYPE*)((uint8*)V2$1 + 8ll);
			if( (TEMPO2DTYPE$1 & 480ll) == 0ll ) goto label$1437;
			{
				TEMPO2DTYPE$1 = 8ll;
				label$1437:;
			}
			if( ((((int64)-(TEMPODTYPE$1 == 9ll) | (int64)-(TEMPODTYPE$1 == 14ll)) | (int64)-(TEMPO2DTYPE$1 == 9ll)) | (int64)-(TEMPO2DTYPE$1 == 14ll)) == 0ll ) goto label$1439;
			{
				FBSTRING TMP$1836$4;
				FBSTRING TMP$1838$4;
				FBSTRING TMP$1839$4;
				__builtin_memset( &TMP$1836$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1836$4, -1ll, (void*)"mov edx, 0", 11ll, 0 );
				HWRITEASM64( &TMP$1836$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1836$4 );
				__builtin_memset( &TMP$1839$4, 0, 24ll );
				__builtin_memset( &TMP$1838$4, 0, 24ll );
				FBSTRING* vr$1503 = fb_StrConcat( &TMP$1838$4, (void*)"div ", 5ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$1839$4, -1ll, (void*)vr$1503, -1ll, 0 );
				HWRITEASM64( &TMP$1839$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1839$4 );
			}
			goto label$1438;
			label$1439:;
			{
				FBSTRING TMP$1841$4;
				FBSTRING TMP$1843$4;
				FBSTRING TMP$1844$4;
				__builtin_memset( &TMP$1841$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1841$4, -1ll, (void*)"cqo", 4ll, 0 );
				HWRITEASM64( &TMP$1841$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1841$4 );
				__builtin_memset( &TMP$1844$4, 0, 24ll );
				__builtin_memset( &TMP$1843$4, 0, 24ll );
				FBSTRING* vr$1515 = fb_StrConcat( &TMP$1843$4, (void*)"idiv ", 6ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$1844$4, -1ll, (void*)vr$1515, -1ll, 0 );
				HWRITEASM64( &TMP$1844$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1844$4 );
			}
			label$1438:;
			if( VR$1 != (struct $6IRVREG*)0ull ) goto label$1441;
			{
				FBSTRING TMP$1845$4;
				FBSTRING TMP$1846$4;
				FBSTRING TMP$1847$4;
				__builtin_memset( &TMP$1847$4, 0, 24ll );
				__builtin_memset( &TMP$1845$4, 0, 24ll );
				FBSTRING* vr$1523 = fb_StrConcat( &TMP$1845$4, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
				__builtin_memset( &TMP$1846$4, 0, 24ll );
				FBSTRING* vr$1526 = fb_StrConcat( &TMP$1846$4, (void*)vr$1523, -1ll, (void*)", rax", 6ll );
				fb_StrAssign( (void*)&TMP$1847$4, -1ll, (void*)vr$1526, -1ll, 0 );
				HWRITEASM64( &TMP$1847$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1847$4 );
			}
			goto label$1440;
			label$1441:;
			{
				FBSTRING TMP$1848$4;
				FBSTRING TMP$1849$4;
				FBSTRING TMP$1850$4;
				__builtin_memset( &TMP$1850$4, 0, 24ll );
				__builtin_memset( &TMP$1848$4, 0, 24ll );
				FBSTRING* vr$1534 = fb_StrConcat( &TMP$1848$4, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + (VRREG$1 << (3ll & 63ll))), 0ll );
				__builtin_memset( &TMP$1849$4, 0, 24ll );
				FBSTRING* vr$1537 = fb_StrConcat( &TMP$1849$4, (void*)vr$1534, -1ll, (void*)", rax", 6ll );
				fb_StrAssign( (void*)&TMP$1850$4, -1ll, (void*)vr$1537, -1ll, 0 );
				HWRITEASM64( &TMP$1850$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1850$4 );
				RESTORE_VRREG( VR$1, VRREG$1 );
			}
			label$1440:;
		}
		goto label$1288;
		label$1442:;
		{
			FBSTRING TMP$1859$3;
			FBSTRING TMP$1860$3;
			if( (int64)*(int32*)((int64)(int32*)REGHANDLE$ + 12ll) == -2ll ) goto label$1444;
			{
				int32 vr$1543 = fb_StrCompare( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + 24ll), 0ll );
				if( (int64)vr$1543 == 0ll ) goto label$1446;
				{
					FBSTRING TMP$1851$5;
					FBSTRING TMP$1852$5;
					FBSTRING TMP$1853$5;
					FBSTRING TMP$1854$5;
					TEMPO$1 = (int64)*(int32*)((int64)(int32*)REGHANDLE$ + 12ll);
					REG_FINDFREE( (int32)TEMPO$1, -1ll );
					*(int32*)((int64)(int32*)REGHANDLE$ + 12ll) = -2;
					__builtin_memset( &TMP$1854$5, 0, 24ll );
					int32 vr$1549 = REG_FINDREAL( (int32)TEMPO$1 );
					__builtin_memset( &TMP$1851$5, 0, 24ll );
					FBSTRING* vr$1554 = fb_StrConcat( &TMP$1851$5, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$1549 << (3ll & 63ll))), 0ll );
					__builtin_memset( &TMP$1852$5, 0, 24ll );
					FBSTRING* vr$1557 = fb_StrConcat( &TMP$1852$5, (void*)vr$1554, -1ll, (void*)", ", 3ll );
					__builtin_memset( &TMP$1853$5, 0, 24ll );
					FBSTRING* vr$1560 = fb_StrConcat( &TMP$1853$5, (void*)vr$1557, -1ll, *(void**)((int64)(char**)REGSTRQ$ + 24ll), 0ll );
					fb_StrAssign( (void*)&TMP$1854$5, -1ll, (void*)vr$1560, -1ll, 0 );
					HWRITEASM64( &TMP$1854$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1854$5 );
					int32 vr$1565 = fb_StrCompare( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + 24ll), 0ll );
					if( (int64)vr$1565 != 0ll ) goto label$1448;
					{
						int32 vr$1568 = REG_FINDREAL( (int32)TEMPO$1 );
						fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$1568 << (3ll & 63ll))), 0ll, 0 );
					}
					label$1448:;
					label$1447:;
					if( VRREG$1 != 3ll ) goto label$1450;
					{
						int32 vr$1573 = REG_FINDREAL( (int32)TEMPO$1 );
						VRREG$1 = (int64)vr$1573;
						label$1450:;
					}
				}
				label$1446:;
				label$1445:;
			}
			goto label$1443;
			label$1444:;
			{
				*(int32*)((uint8*)&CTX$ + 224ll) = (int32)((int64)*(int32*)((uint8*)&CTX$ + 224ll) | 8ll);
			}
			label$1443:;
			if( *(int64*)V2$1 != 0ll ) goto label$1452;
			{
				FBSTRING TMP$1855$4;
				FBSTRING TMP$1856$4;
				FBSTRING TMP$1857$4;
				FBSTRING TMP$1858$4;
				if( (int64)*(int32*)((int64)(int32*)REGHANDLE$ + 12ll) != -2ll ) goto label$1454;
				{
					*(int32*)((int64)(int32*)REGHANDLE$ + 12ll) = -3;
					label$1454:;
				}
				char* vr$1580 = REG_TEMPO(  );
				fb_StrAssign( (void*)&REGTEMPO$1, -1ll, (void*)vr$1580, 0ll, 0 );
				if( (int64)*(int32*)((int64)(int32*)REGHANDLE$ + 12ll) != -3ll ) goto label$1456;
				{
					*(int32*)((int64)(int32*)REGHANDLE$ + 12ll) = -2;
					label$1456:;
				}
				__builtin_memset( &TMP$1858$4, 0, 24ll );
				__builtin_memset( &TMP$1855$4, 0, 24ll );
				FBSTRING* vr$1588 = fb_StrConcat( &TMP$1855$4, (void*)"mov ", 5ll, (void*)&REGTEMPO$1, -1ll );
				__builtin_memset( &TMP$1856$4, 0, 24ll );
				FBSTRING* vr$1591 = fb_StrConcat( &TMP$1856$4, (void*)vr$1588, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$1857$4, 0, 24ll );
				FBSTRING* vr$1594 = fb_StrConcat( &TMP$1857$4, (void*)vr$1591, -1ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$1858$4, -1ll, (void*)vr$1594, -1ll, 0 );
				HWRITEASM64( &TMP$1858$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1858$4 );
				fb_StrAssign( (void*)&OP2$1, -1ll, (void*)&REGTEMPO$1, -1ll, 0 );
			}
			label$1452:;
			label$1451:;
			__builtin_memset( &TMP$1860$3, 0, 24ll );
			__builtin_memset( &TMP$1859$3, 0, 24ll );
			FBSTRING* vr$1604 = fb_StrConcat( &TMP$1859$3, (void*)"mov rax, ", 10ll, (void*)&OP1$1, -1ll );
			fb_StrAssign( (void*)&TMP$1860$3, -1ll, (void*)vr$1604, -1ll, 0 );
			HWRITEASM64( &TMP$1860$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1860$3 );
			TEMPO2DTYPE$1 = *($11FB_DATATYPE*)((uint8*)V2$1 + 8ll);
			if( (TEMPO2DTYPE$1 & 480ll) == 0ll ) goto label$1458;
			{
				TEMPO2DTYPE$1 = 8ll;
				label$1458:;
			}
			if( ((((int64)-(TEMPODTYPE$1 == 9ll) | (int64)-(TEMPODTYPE$1 == 14ll)) | (int64)-(TEMPO2DTYPE$1 == 9ll)) | (int64)-(TEMPO2DTYPE$1 == 14ll)) == 0ll ) goto label$1460;
			{
				FBSTRING TMP$1861$4;
				FBSTRING TMP$1862$4;
				FBSTRING TMP$1863$4;
				__builtin_memset( &TMP$1861$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1861$4, -1ll, (void*)"mov edx, 0", 11ll, 0 );
				HWRITEASM64( &TMP$1861$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1861$4 );
				__builtin_memset( &TMP$1863$4, 0, 24ll );
				__builtin_memset( &TMP$1862$4, 0, 24ll );
				FBSTRING* vr$1625 = fb_StrConcat( &TMP$1862$4, (void*)"div ", 5ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$1863$4, -1ll, (void*)vr$1625, -1ll, 0 );
				HWRITEASM64( &TMP$1863$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1863$4 );
			}
			goto label$1459;
			label$1460:;
			{
				FBSTRING TMP$1864$4;
				FBSTRING TMP$1865$4;
				FBSTRING TMP$1866$4;
				__builtin_memset( &TMP$1864$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1864$4, -1ll, (void*)"cqo", 4ll, 0 );
				HWRITEASM64( &TMP$1864$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1864$4 );
				__builtin_memset( &TMP$1866$4, 0, 24ll );
				__builtin_memset( &TMP$1865$4, 0, 24ll );
				FBSTRING* vr$1637 = fb_StrConcat( &TMP$1865$4, (void*)"idiv ", 6ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$1866$4, -1ll, (void*)vr$1637, -1ll, 0 );
				HWRITEASM64( &TMP$1866$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1866$4 );
			}
			label$1459:;
			if( VR$1 != (struct $6IRVREG*)0ull ) goto label$1462;
			{
				FBSTRING TMP$1868$4;
				FBSTRING TMP$1869$4;
				FBSTRING TMP$1870$4;
				__builtin_memset( &TMP$1870$4, 0, 24ll );
				__builtin_memset( &TMP$1868$4, 0, 24ll );
				FBSTRING* vr$1645 = fb_StrConcat( &TMP$1868$4, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
				__builtin_memset( &TMP$1869$4, 0, 24ll );
				FBSTRING* vr$1648 = fb_StrConcat( &TMP$1869$4, (void*)vr$1645, -1ll, (void*)", rdx", 6ll );
				fb_StrAssign( (void*)&TMP$1870$4, -1ll, (void*)vr$1648, -1ll, 0 );
				HWRITEASM64( &TMP$1870$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1870$4 );
			}
			goto label$1461;
			label$1462:;
			{
				FBSTRING TMP$1871$4;
				FBSTRING TMP$1872$4;
				FBSTRING TMP$1873$4;
				__builtin_memset( &TMP$1873$4, 0, 24ll );
				__builtin_memset( &TMP$1871$4, 0, 24ll );
				FBSTRING* vr$1656 = fb_StrConcat( &TMP$1871$4, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + (VRREG$1 << (3ll & 63ll))), 0ll );
				__builtin_memset( &TMP$1872$4, 0, 24ll );
				FBSTRING* vr$1659 = fb_StrConcat( &TMP$1872$4, (void*)vr$1656, -1ll, (void*)", rdx", 6ll );
				fb_StrAssign( (void*)&TMP$1873$4, -1ll, (void*)vr$1659, -1ll, 0 );
				HWRITEASM64( &TMP$1873$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1873$4 );
				RESTORE_VRREG( VR$1, VRREG$1 );
			}
			label$1461:;
		}
		goto label$1288;
		label$1463:;
		{
			FBSTRING TMP$1874$3;
			FBSTRING TMP$1877$3;
			FBSTRING TMP$1878$3;
			FBSTRING TMP$1879$3;
			__builtin_memset( &TMP$1874$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$1874$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$1874$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1874$3 );
			__builtin_memset( &TMP$1878$3, 0, 24ll );
			char* vr$1668 = HGETBOPCODE( OP$1 );
			__builtin_memset( &TMP$1877$3, 0, 24ll );
			FBSTRING* vr$1671 = fb_StrConcat( &TMP$1877$3, (void*)"FOUND AN ERROR : op int needs to be coded : ", 45ll, (void*)vr$1668, 0ll );
			fb_StrAssign( (void*)&TMP$1878$3, -1ll, (void*)vr$1671, -1ll, 0 );
			HWRITEASM64( &TMP$1878$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1878$3 );
			__builtin_memset( &TMP$1879$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$1879$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$1879$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1879$3 );
		}
		goto label$1288;
		label$1289:;
		static const void* tmp$4074[23ll] = {
			&&label$1290,
			&&label$1376,
			&&label$1382,
			&&label$1463,
			&&label$1421,
			&&label$1442,
			&&label$1296,
			&&label$1299,
			&&label$1463,
			&&label$1463,
			&&label$1349,
			&&label$1352,
			&&label$1302,
			&&label$1408,
			&&label$1408,
			&&label$1463,
			&&label$1463,
			&&label$1385,
			&&label$1385,
			&&label$1385,
			&&label$1385,
			&&label$1385,
			&&label$1385,
		};
		if( (TMP$1633$2 - 28ull) > 22ull ) goto label$1463;
		goto *tmp$4074[TMP$1633$2 - 28ull];
		label$1288:;
	}
	fb_StrDelete( (FBSTRING*)&OP1BIS$1 );
	fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
	fb_StrDelete( (FBSTRING*)&OP1PREV$1 );
	fb_StrDelete( (FBSTRING*)&SUFFIX$1 );
	fb_StrDelete( (FBSTRING*)&PREFIX2$1 );
	fb_StrDelete( (FBSTRING*)&PREFIX1$1 );
	fb_StrDelete( (FBSTRING*)&OP4$1 );
	fb_StrDelete( (FBSTRING*)&OP3$1 );
	fb_StrDelete( (FBSTRING*)&OP2$1 );
	fb_StrDelete( (FBSTRING*)&OP1$1 );
	label$1077:;
}

static void _EMITBOP( int64 OP$1, struct $6IRVREG* V1$1, struct $6IRVREG* V2$1, struct $6IRVREG* VR$1, struct $8FBSYMBOL* LABEL$1 )
{
	int64 TMP$1880$1;
	int64 TMP$1881$1;
	int64 TMP$1882$1;
	int64 TMP$1883$1;
	label$1464:;
	$11FB_DATATYPE DTYPE$1;
	__builtin_memset( &DTYPE$1, 0, 8ll );
	if( LABEL$1 == (struct $8FBSYMBOL*)0ull ) goto label$1467;
	{
	}
	goto label$1466;
	label$1467:;
	if( VR$1 != (struct $6IRVREG*)0ull ) goto label$1468;
	{
	}
	goto label$1466;
	label$1468:;
	{
	}
	label$1466:;
	if( VR$1 != (struct $6IRVREG*)0ull ) goto label$1470;
	{
	}
	goto label$1469;
	label$1470:;
	{
	}
	label$1469:;
	if( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) == (struct $8FBSYMBOL*)0ull ) goto label$1474;
	if( (*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 56ll) & 480ll) == 0ll ) goto label$1471;
	TMP$1880$1 = 24ll;
	goto label$3104;
	label$1471:;
	TMP$1880$1 = *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 56ll) & 31ll;
	label$3104:;
	if( (*(int64*)((uint8*)V1$1 + 8ll) & 480ll) == 0ll ) goto label$1472;
	TMP$1881$1 = 24ll;
	goto label$3105;
	label$1472:;
	TMP$1881$1 = *(int64*)((uint8*)V1$1 + 8ll) & 31ll;
	label$3105:;
	if( (*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 56ll) & 480ll) == 0ll ) goto label$1473;
	TMP$1882$1 = 24ll;
	goto label$3106;
	label$1473:;
	TMP$1882$1 = *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 56ll) & 31ll;
	label$3106:;
	TMP$1883$1 = (int64)-((((int64)-(*(int64*)((uint8*)V1$1 + 8ll) != *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 56ll)) & (int64)-(*(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$1880$1 * 56ll)) == 0ll)) & (int64)-(*(int64*)(((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$1881$1 * 56ll)) + 8ll) != *(int64*)(((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$1882$1 * 56ll)) + 8ll))) != 0ll);
	goto label$3103;
	label$1474:;
	TMP$1883$1 = 0ll;
	label$3103:;
	if( TMP$1883$1 == 0ll ) goto label$1476;
	{
		DTYPE$1 = *($11FB_DATATYPE*)((uint8*)V1$1 + 8ll);
		if( (*(int64*)((uint8*)V1$1 + 8ll) & 480ll) == 0ll ) goto label$1478;
		{
		}
		goto label$1477;
		label$1478:;
		{
			*($11FB_DATATYPE*)((uint8*)V1$1 + 8ll) = *($11FB_DATATYPE*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 56ll);
			_SETVREGDATATYPE( V1$1, DTYPE$1, (struct $8FBSYMBOL*)0ull );
		}
		label$1477:;
	}
	label$1476:;
	label$1475:;
	HLOADOPERANDSANDWRITEBOP( OP$1, V1$1, V2$1, VR$1, LABEL$1 );
	label$1465:;
}

static void _EMITUOP( int64 OP$1, struct $6IRVREG* V1$1, struct $6IRVREG* VR$1 )
{
	FBSTRING TMP$1913$1;
	label$1479:;
	FBSTRING OP1$1;
	__builtin_memset( &OP1$1, 0, 24ll );
	FBSTRING OP3$1;
	__builtin_memset( &OP3$1, 0, 24ll );
	FBSTRING PREFIX$1;
	__builtin_memset( &PREFIX$1, 0, 24ll );
	int32 VRREG$1;
	__builtin_memset( &VRREG$1, 0, 4ll );
	int32 TEMPO$1;
	__builtin_memset( &TEMPO$1, 0, 4ll );
	$11FB_DATATYPE TEMPODTYPE$1;
	__builtin_memset( &TEMPODTYPE$1, 0, 8ll );
	if( VR$1 != (struct $6IRVREG*)0ull ) goto label$1482;
	{
	}
	goto label$1481;
	label$1482:;
	{
	}
	label$1481:;
	if( VR$1 == (struct $6IRVREG*)0ull ) goto label$1484;
	{
		if( *(int64*)V1$1 == 4ll ) goto label$1486;
		{
			{
				$15IRVREGTYPE_ENUM TMP$1884$4;
				TMP$1884$4 = *($15IRVREGTYPE_ENUM*)VR$1;
				if( TMP$1884$4 != 4ll ) goto label$1488;
				label$1489:;
				{
					int32 vr$10 = REG_FINDFREE( (int32)*(int64*)((uint8*)VR$1 + 24ll), -1ll );
					VRREG$1 = vr$10;
				}
				goto label$1487;
				label$1488:;
				{
					FBSTRING TMP$1885$5;
					FBSTRING TMP$1888$5;
					FBSTRING TMP$1889$5;
					__builtin_memset( &TMP$1885$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$1885$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$1885$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1885$5 );
					__builtin_memset( &TMP$1888$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$1888$5, -1ll, (void*)"FOUND AN ERROR : in emituop typ not handled vr", 47ll, 0 );
					HWRITEASM64( &TMP$1888$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1888$5 );
					__builtin_memset( &TMP$1889$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$1889$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$1889$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1889$5 );
				}
				label$1490:;
				label$1487:;
			}
		}
		goto label$1485;
		label$1486:;
		{
			*(int64*)((uint8*)VR$1 + 24ll) = *(int64*)((uint8*)V1$1 + 24ll);
			int32 vr$27 = REG_FINDREAL( (int32)*(int64*)((uint8*)V1$1 + 24ll) );
			VRREG$1 = vr$27;
		}
		label$1485:;
	}
	label$1484:;
	label$1483:;
	TEMPODTYPE$1 = *(int64*)((uint8*)V1$1 + 8ll) & 511ll;
	if( (TEMPODTYPE$1 & 480ll) == 0ll ) goto label$1492;
	{
		TEMPODTYPE$1 = 8ll;
		label$1492:;
	}
	{
		if( TEMPODTYPE$1 == 8ll ) goto label$1495;
		label$1496:;
		if( TEMPODTYPE$1 == 9ll ) goto label$1495;
		label$1497:;
		if( TEMPODTYPE$1 == 13ll ) goto label$1495;
		label$1498:;
		if( TEMPODTYPE$1 == 14ll ) goto label$1495;
		label$1499:;
		if( TEMPODTYPE$1 == 16ll ) goto label$1495;
		label$1500:;
		if( TEMPODTYPE$1 != 10ll ) goto label$1494;
		label$1495:;
		{
			fb_StrAssign( (void*)&PREFIX$1, -1ll, (void*)"QWORD PTR ", 11ll, 0 );
		}
		goto label$1493;
		label$1494:;
		if( TEMPODTYPE$1 == 11ll ) goto label$1502;
		label$1503:;
		if( TEMPODTYPE$1 == 12ll ) goto label$1502;
		label$1504:;
		if( TEMPODTYPE$1 != 15ll ) goto label$1501;
		label$1502:;
		{
			fb_StrAssign( (void*)&PREFIX$1, -1ll, (void*)"DWORD PTR ", 11ll, 0 );
		}
		goto label$1493;
		label$1501:;
		if( TEMPODTYPE$1 == 5ll ) goto label$1506;
		label$1507:;
		if( TEMPODTYPE$1 != 6ll ) goto label$1505;
		label$1506:;
		{
			fb_StrAssign( (void*)&PREFIX$1, -1ll, (void*)"WORD PTR ", 10ll, 0 );
		}
		goto label$1493;
		label$1505:;
		if( TEMPODTYPE$1 == 2ll ) goto label$1509;
		label$1510:;
		if( TEMPODTYPE$1 == 3ll ) goto label$1509;
		label$1511:;
		if( TEMPODTYPE$1 == 1ll ) goto label$1509;
		label$1512:;
		if( TEMPODTYPE$1 != 4ll ) goto label$1508;
		label$1509:;
		{
			fb_StrAssign( (void*)&PREFIX$1, -1ll, (void*)"BYTE PTR ", 10ll, 0 );
		}
		goto label$1493;
		label$1508:;
		{
			FBSTRING TMP$1890$3;
			FBSTRING TMP$1894$3;
			FBSTRING TMP$1895$3;
			FBSTRING TMP$1896$3;
			__builtin_memset( &TMP$1890$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$1890$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$1890$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1890$3 );
			__builtin_memset( &TMP$1895$3, 0, 24ll );
			FBSTRING* vr$41 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 8ll) );
			__builtin_memset( &TMP$1894$3, 0, 24ll );
			FBSTRING* vr$44 = fb_StrConcat( &TMP$1894$3, (void*)"FOUND AN ERROR : UOP datatype not handled 01 = ", 48ll, (void*)vr$41, -1ll );
			fb_StrAssign( (void*)&TMP$1895$3, -1ll, (void*)vr$44, -1ll, 0 );
			HWRITEASM64( &TMP$1895$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1895$3 );
			__builtin_memset( &TMP$1896$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$1896$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$1896$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1896$3 );
		}
		label$1513:;
		label$1493:;
	}
	{
		$15IRVREGTYPE_ENUM TMP$1897$2;
		TMP$1897$2 = *($15IRVREGTYPE_ENUM*)V1$1;
		if( TMP$1897$2 != 4ll ) goto label$1515;
		label$1516:;
		{
			if( TEMPODTYPE$1 != 1ll ) goto label$1518;
			{
				int32 vr$55 = REG_FINDREAL( (int32)*(int64*)((uint8*)V1$1 + 24ll) );
				fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRB$ + ((int64)vr$55 << (3ll & 63ll))), 0ll, 0 );
			}
			goto label$1517;
			label$1518:;
			{
				int32 vr$61 = REG_FINDREAL( (int32)*(int64*)((uint8*)V1$1 + 24ll) );
				fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$61 << (3ll & 63ll))), 0ll, 0 );
			}
			label$1517:;
			fb_StrAssign( (void*)&PREFIX$1, -1ll, (void*)"", 1ll, 0 );
		}
		goto label$1514;
		label$1515:;
		if( TMP$1897$2 != 2ll ) goto label$1519;
		label$1520:;
		{
			PREPARE_IDX( V1$1, &OP1$1, &OP3$1 );
		}
		goto label$1514;
		label$1519:;
		if( TMP$1897$2 != 3ll ) goto label$1521;
		label$1522:;
		{
			FBSTRING TMP$1898$3;
			FBSTRING TMP$1899$3;
			FBSTRING TMP$1900$3;
			int32 vr$71 = REG_FINDREAL( (int32)*(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 24ll) );
			FBSTRING* vr$75 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
			__builtin_memset( &TMP$1898$3, 0, 24ll );
			FBSTRING* vr$78 = fb_StrConcat( &TMP$1898$3, (void*)vr$75, -1ll, (void*)"[", 2ll );
			__builtin_memset( &TMP$1899$3, 0, 24ll );
			FBSTRING* vr$81 = fb_StrConcat( &TMP$1899$3, (void*)vr$78, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$71 << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$1900$3, 0, 24ll );
			FBSTRING* vr$84 = fb_StrConcat( &TMP$1900$3, (void*)vr$81, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$84, -1ll, 0 );
		}
		goto label$1514;
		label$1521:;
		if( TMP$1897$2 != 5ll ) goto label$1523;
		label$1524:;
		{
			FBSTRING TMP$1901$3;
			FBSTRING TMP$1902$3;
			FBSTRING TMP$1903$3;
			FBSTRING* vr$87 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
			char* vr$89 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
			__builtin_memset( &TMP$1901$3, 0, 24ll );
			FBSTRING* vr$92 = fb_StrConcat( &TMP$1901$3, (void*)vr$89, 0ll, (void*)"[rip+", 6ll );
			__builtin_memset( &TMP$1902$3, 0, 24ll );
			FBSTRING* vr$95 = fb_StrConcat( &TMP$1902$3, (void*)vr$92, -1ll, (void*)vr$87, -1ll );
			__builtin_memset( &TMP$1903$3, 0, 24ll );
			FBSTRING* vr$98 = fb_StrConcat( &TMP$1903$3, (void*)vr$95, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$98, -1ll, 0 );
		}
		goto label$1514;
		label$1523:;
		if( TMP$1897$2 != 0ll ) goto label$1525;
		label$1526:;
		{
		}
		goto label$1514;
		label$1525:;
		if( TMP$1897$2 != 1ll ) goto label$1527;
		label$1528:;
		{
			if( ((int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 2ll) != 0ll) | (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 1ll) != 0ll)) == 0ll ) goto label$1530;
			{
				FBSTRING TMP$1904$4;
				FBSTRING TMP$1905$4;
				FBSTRING TMP$1906$4;
				FBSTRING* vr$110 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
				char* vr$112 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
				__builtin_memset( &TMP$1904$4, 0, 24ll );
				FBSTRING* vr$115 = fb_StrConcat( &TMP$1904$4, (void*)vr$112, 0ll, (void*)"[rip+", 6ll );
				__builtin_memset( &TMP$1905$4, 0, 24ll );
				FBSTRING* vr$118 = fb_StrConcat( &TMP$1905$4, (void*)vr$115, -1ll, (void*)vr$110, -1ll );
				__builtin_memset( &TMP$1906$4, 0, 24ll );
				FBSTRING* vr$121 = fb_StrConcat( &TMP$1906$4, (void*)vr$118, -1ll, (void*)"]", 2ll );
				fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$121, -1ll, 0 );
			}
			goto label$1529;
			label$1530:;
			{
				FBSTRING TMP$1907$4;
				FBSTRING* vr$124 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
				__builtin_memset( &TMP$1907$4, 0, 24ll );
				FBSTRING* vr$127 = fb_StrConcat( &TMP$1907$4, (void*)vr$124, -1ll, (void*)"[rbp]", 6ll );
				fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$127, -1ll, 0 );
			}
			label$1529:;
		}
		goto label$1514;
		label$1527:;
		{
			FBSTRING TMP$1908$3;
			FBSTRING TMP$1911$3;
			FBSTRING TMP$1912$3;
			__builtin_memset( &TMP$1908$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$1908$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$1908$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1908$3 );
			__builtin_memset( &TMP$1911$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$1911$3, -1ll, (void*)"FOUND AN ERROR : in uop typ not handled v1", 43ll, 0 );
			HWRITEASM64( &TMP$1911$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1911$3 );
			__builtin_memset( &TMP$1912$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$1912$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$1912$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1912$3 );
		}
		label$1531:;
		label$1514:;
	}
	int32 vr$142 = fb_StrCompare( (void*)&OP3$1, -1ll, (void*)"", 1ll );
	if( (int64)vr$142 == 0ll ) goto label$1533;
	{
		EMITOP3_OP4( &OP3$1 );
		label$1533:;
	}
	__builtin_memset( &TMP$1913$1, 0, 24ll );
	FBSTRING* vr$149 = fb_StrConcat( &TMP$1913$1, (void*)&PREFIX$1, -1ll, (void*)&OP1$1, -1ll );
	fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$149, -1ll, 0 );
	if( OP$1 != 52ll ) goto label$1535;
	{
		if( ((int64)-(VR$1 != (struct $6IRVREG*)0ull) & (int64)-(*(int64*)V1$1 != 4ll)) == 0ll ) goto label$1537;
		{
			{
				if( TEMPODTYPE$1 == 8ll ) goto label$1540;
				label$1541:;
				if( TEMPODTYPE$1 == 9ll ) goto label$1540;
				label$1542:;
				if( TEMPODTYPE$1 == 13ll ) goto label$1540;
				label$1543:;
				if( TEMPODTYPE$1 == 14ll ) goto label$1540;
				label$1544:;
				if( TEMPODTYPE$1 != 10ll ) goto label$1539;
				label$1540:;
				{
					FBSTRING TMP$1914$5;
					FBSTRING TMP$1915$5;
					FBSTRING TMP$1916$5;
					FBSTRING TMP$1917$5;
					__builtin_memset( &TMP$1917$5, 0, 24ll );
					__builtin_memset( &TMP$1914$5, 0, 24ll );
					FBSTRING* vr$161 = fb_StrConcat( &TMP$1914$5, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)VRREG$1 << (3ll & 63ll))), 0ll );
					__builtin_memset( &TMP$1915$5, 0, 24ll );
					FBSTRING* vr$164 = fb_StrConcat( &TMP$1915$5, (void*)vr$161, -1ll, (void*)", ", 3ll );
					__builtin_memset( &TMP$1916$5, 0, 24ll );
					FBSTRING* vr$167 = fb_StrConcat( &TMP$1916$5, (void*)vr$164, -1ll, (void*)&OP1$1, -1ll );
					fb_StrAssign( (void*)&TMP$1917$5, -1ll, (void*)vr$167, -1ll, 0 );
					HWRITEASM64( &TMP$1917$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1917$5 );
					fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)VRREG$1 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$1538;
				label$1539:;
				if( TEMPODTYPE$1 == 11ll ) goto label$1546;
				label$1547:;
				if( TEMPODTYPE$1 != 12ll ) goto label$1545;
				label$1546:;
				{
					FBSTRING TMP$1918$5;
					FBSTRING TMP$1919$5;
					FBSTRING TMP$1920$5;
					FBSTRING TMP$1921$5;
					__builtin_memset( &TMP$1921$5, 0, 24ll );
					__builtin_memset( &TMP$1918$5, 0, 24ll );
					FBSTRING* vr$180 = fb_StrConcat( &TMP$1918$5, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)VRREG$1 << (3ll & 63ll))), 0ll );
					__builtin_memset( &TMP$1919$5, 0, 24ll );
					FBSTRING* vr$183 = fb_StrConcat( &TMP$1919$5, (void*)vr$180, -1ll, (void*)", ", 3ll );
					__builtin_memset( &TMP$1920$5, 0, 24ll );
					FBSTRING* vr$186 = fb_StrConcat( &TMP$1920$5, (void*)vr$183, -1ll, (void*)&OP1$1, -1ll );
					fb_StrAssign( (void*)&TMP$1921$5, -1ll, (void*)vr$186, -1ll, 0 );
					HWRITEASM64( &TMP$1921$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1921$5 );
					fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)VRREG$1 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$1538;
				label$1545:;
				if( TEMPODTYPE$1 == 5ll ) goto label$1549;
				label$1550:;
				if( TEMPODTYPE$1 != 6ll ) goto label$1548;
				label$1549:;
				{
					FBSTRING TMP$1922$5;
					FBSTRING TMP$1923$5;
					FBSTRING TMP$1924$5;
					FBSTRING TMP$1925$5;
					__builtin_memset( &TMP$1925$5, 0, 24ll );
					__builtin_memset( &TMP$1922$5, 0, 24ll );
					FBSTRING* vr$199 = fb_StrConcat( &TMP$1922$5, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRW$ + ((int64)VRREG$1 << (3ll & 63ll))), 0ll );
					__builtin_memset( &TMP$1923$5, 0, 24ll );
					FBSTRING* vr$202 = fb_StrConcat( &TMP$1923$5, (void*)vr$199, -1ll, (void*)", ", 3ll );
					__builtin_memset( &TMP$1924$5, 0, 24ll );
					FBSTRING* vr$205 = fb_StrConcat( &TMP$1924$5, (void*)vr$202, -1ll, (void*)&OP1$1, -1ll );
					fb_StrAssign( (void*)&TMP$1925$5, -1ll, (void*)vr$205, -1ll, 0 );
					HWRITEASM64( &TMP$1925$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1925$5 );
					fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRW$ + ((int64)VRREG$1 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$1538;
				label$1548:;
				if( TEMPODTYPE$1 == 2ll ) goto label$1552;
				label$1553:;
				if( TEMPODTYPE$1 == 3ll ) goto label$1552;
				label$1554:;
				if( TEMPODTYPE$1 == 1ll ) goto label$1552;
				label$1555:;
				if( TEMPODTYPE$1 != 4ll ) goto label$1551;
				label$1552:;
				{
					FBSTRING TMP$1926$5;
					FBSTRING TMP$1927$5;
					FBSTRING TMP$1928$5;
					FBSTRING TMP$1929$5;
					__builtin_memset( &TMP$1929$5, 0, 24ll );
					__builtin_memset( &TMP$1926$5, 0, 24ll );
					FBSTRING* vr$218 = fb_StrConcat( &TMP$1926$5, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRB$ + ((int64)VRREG$1 << (3ll & 63ll))), 0ll );
					__builtin_memset( &TMP$1927$5, 0, 24ll );
					FBSTRING* vr$221 = fb_StrConcat( &TMP$1927$5, (void*)vr$218, -1ll, (void*)", ", 3ll );
					__builtin_memset( &TMP$1928$5, 0, 24ll );
					FBSTRING* vr$224 = fb_StrConcat( &TMP$1928$5, (void*)vr$221, -1ll, (void*)&OP1$1, -1ll );
					fb_StrAssign( (void*)&TMP$1929$5, -1ll, (void*)vr$224, -1ll, 0 );
					HWRITEASM64( &TMP$1929$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1929$5 );
					fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRB$ + ((int64)VRREG$1 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$1538;
				label$1551:;
				{
					FBSTRING TMP$1930$5;
					FBSTRING TMP$1934$5;
					FBSTRING TMP$1935$5;
					FBSTRING TMP$1936$5;
					__builtin_memset( &TMP$1930$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$1930$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$1930$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1930$5 );
					__builtin_memset( &TMP$1935$5, 0, 24ll );
					FBSTRING* vr$237 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 8ll) );
					__builtin_memset( &TMP$1934$5, 0, 24ll );
					FBSTRING* vr$240 = fb_StrConcat( &TMP$1934$5, (void*)"FOUND AN ERROR : UOP datatype not handled 011 = ", 49ll, (void*)vr$237, -1ll );
					fb_StrAssign( (void*)&TMP$1935$5, -1ll, (void*)vr$240, -1ll, 0 );
					HWRITEASM64( &TMP$1935$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1935$5 );
					__builtin_memset( &TMP$1936$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$1936$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$1936$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$1936$5 );
				}
				label$1556:;
				label$1538:;
			}
		}
		label$1537:;
		label$1536:;
		if( TEMPODTYPE$1 != 1ll ) goto label$1558;
		{
			FBSTRING TMP$1938$3;
			FBSTRING TMP$1939$3;
			FBSTRING TMP$1940$3;
			FBSTRING TMP$1941$3;
			FBSTRING TMP$1943$3;
			FBSTRING TMP$1944$3;
			__builtin_memset( &TMP$1941$3, 0, 24ll );
			__builtin_memset( &TMP$1938$3, 0, 24ll );
			FBSTRING* vr$253 = fb_StrConcat( &TMP$1938$3, (void*)"test ", 6ll, (void*)&OP1$1, -1ll );
			__builtin_memset( &TMP$1939$3, 0, 24ll );
			FBSTRING* vr$256 = fb_StrConcat( &TMP$1939$3, (void*)vr$253, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$1940$3, 0, 24ll );
			FBSTRING* vr$259 = fb_StrConcat( &TMP$1940$3, (void*)vr$256, -1ll, (void*)&OP1$1, -1ll );
			fb_StrAssign( (void*)&TMP$1941$3, -1ll, (void*)vr$259, -1ll, 0 );
			HWRITEASM64( &TMP$1941$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1941$3 );
			__builtin_memset( &TMP$1944$3, 0, 24ll );
			__builtin_memset( &TMP$1943$3, 0, 24ll );
			FBSTRING* vr$267 = fb_StrConcat( &TMP$1943$3, (void*)"sete ", 6ll, (void*)&OP1$1, -1ll );
			fb_StrAssign( (void*)&TMP$1944$3, -1ll, (void*)vr$267, -1ll, 0 );
			HWRITEASM64( &TMP$1944$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1944$3 );
		}
		goto label$1557;
		label$1558:;
		{
			FBSTRING TMP$1945$3;
			FBSTRING TMP$1946$3;
			__builtin_memset( &TMP$1946$3, 0, 24ll );
			__builtin_memset( &TMP$1945$3, 0, 24ll );
			FBSTRING* vr$275 = fb_StrConcat( &TMP$1945$3, (void*)"not ", 5ll, (void*)&OP1$1, -1ll );
			fb_StrAssign( (void*)&TMP$1946$3, -1ll, (void*)vr$275, -1ll, 0 );
			HWRITEASM64( &TMP$1946$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1946$3 );
		}
		label$1557:;
		fb_StrDelete( (FBSTRING*)&PREFIX$1 );
		fb_StrDelete( (FBSTRING*)&OP3$1 );
		fb_StrDelete( (FBSTRING*)&OP1$1 );
		goto label$1480;
	}
	label$1535:;
	label$1534:;
	if( TEMPODTYPE$1 != 15ll ) goto label$1560;
	{
		if( *(int64*)V1$1 != 4ll ) goto label$1562;
		{
			FBSTRING TMP$1948$3;
			FBSTRING TMP$1949$3;
			__builtin_memset( &TMP$1949$3, 0, 24ll );
			__builtin_memset( &TMP$1948$3, 0, 24ll );
			FBSTRING* vr$287 = fb_StrConcat( &TMP$1948$3, (void*)"movd xmm0, ", 12ll, (void*)&OP1$1, -1ll );
			fb_StrAssign( (void*)&TMP$1949$3, -1ll, (void*)vr$287, -1ll, 0 );
			HWRITEASM64( &TMP$1949$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1949$3 );
		}
		goto label$1561;
		label$1562:;
		{
			FBSTRING TMP$1951$3;
			FBSTRING TMP$1952$3;
			__builtin_memset( &TMP$1952$3, 0, 24ll );
			__builtin_memset( &TMP$1951$3, 0, 24ll );
			FBSTRING* vr$295 = fb_StrConcat( &TMP$1951$3, (void*)"movss xmm0, ", 13ll, (void*)&OP1$1, -1ll );
			fb_StrAssign( (void*)&TMP$1952$3, -1ll, (void*)vr$295, -1ll, 0 );
			HWRITEASM64( &TMP$1952$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$1952$3 );
		}
		label$1561:;
		{
			if( OP$1 != 60ll ) goto label$1564;
			label$1565:;
			{
				FBSTRING TMP$1954$4;
				__builtin_memset( &TMP$1954$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1954$4, -1ll, (void*)"cosf", 5ll, 0 );
				SAVE_CALL( &TMP$1954$4, VR$1, (int64)VRREG$1 );
				fb_StrDelete( (FBSTRING*)&TMP$1954$4 );
			}
			goto label$1563;
			label$1564:;
			if( OP$1 != 58ll ) goto label$1566;
			label$1567:;
			{
				FBSTRING TMP$1956$4;
				__builtin_memset( &TMP$1956$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1956$4, -1ll, (void*)"sinf", 5ll, 0 );
				SAVE_CALL( &TMP$1956$4, VR$1, (int64)VRREG$1 );
				fb_StrDelete( (FBSTRING*)&TMP$1956$4 );
			}
			goto label$1563;
			label$1566:;
			if( OP$1 != 69ll ) goto label$1568;
			label$1569:;
			{
				FBSTRING TMP$1958$4;
				__builtin_memset( &TMP$1958$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1958$4, -1ll, (void*)"expf", 5ll, 0 );
				SAVE_CALL( &TMP$1958$4, VR$1, (int64)VRREG$1 );
				fb_StrDelete( (FBSTRING*)&TMP$1958$4 );
			}
			goto label$1563;
			label$1568:;
			if( OP$1 != 68ll ) goto label$1570;
			label$1571:;
			{
				FBSTRING TMP$1960$4;
				__builtin_memset( &TMP$1960$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1960$4, -1ll, (void*)"logf", 5ll, 0 );
				SAVE_CALL( &TMP$1960$4, VR$1, (int64)VRREG$1 );
				fb_StrDelete( (FBSTRING*)&TMP$1960$4 );
			}
			goto label$1563;
			label$1570:;
			if( OP$1 != 61ll ) goto label$1572;
			label$1573:;
			{
				FBSTRING TMP$1962$4;
				__builtin_memset( &TMP$1962$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1962$4, -1ll, (void*)"acosf", 6ll, 0 );
				SAVE_CALL( &TMP$1962$4, VR$1, (int64)VRREG$1 );
				fb_StrDelete( (FBSTRING*)&TMP$1962$4 );
			}
			goto label$1563;
			label$1572:;
			if( OP$1 != 59ll ) goto label$1574;
			label$1575:;
			{
				FBSTRING TMP$1964$4;
				__builtin_memset( &TMP$1964$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1964$4, -1ll, (void*)"asinf", 6ll, 0 );
				SAVE_CALL( &TMP$1964$4, VR$1, (int64)VRREG$1 );
				fb_StrDelete( (FBSTRING*)&TMP$1964$4 );
			}
			goto label$1563;
			label$1574:;
			if( OP$1 != 62ll ) goto label$1576;
			label$1577:;
			{
				FBSTRING TMP$1966$4;
				__builtin_memset( &TMP$1966$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1966$4, -1ll, (void*)"tanf", 5ll, 0 );
				SAVE_CALL( &TMP$1966$4, VR$1, (int64)VRREG$1 );
				fb_StrDelete( (FBSTRING*)&TMP$1966$4 );
			}
			goto label$1563;
			label$1576:;
			if( OP$1 != 63ll ) goto label$1578;
			label$1579:;
			{
				FBSTRING TMP$1968$4;
				__builtin_memset( &TMP$1968$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1968$4, -1ll, (void*)"atanf", 6ll, 0 );
				SAVE_CALL( &TMP$1968$4, VR$1, (int64)VRREG$1 );
				fb_StrDelete( (FBSTRING*)&TMP$1968$4 );
			}
			goto label$1563;
			label$1578:;
			if( OP$1 != 65ll ) goto label$1580;
			label$1581:;
			{
				FBSTRING TMP$1970$4;
				__builtin_memset( &TMP$1970$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1970$4, -1ll, (void*)"sqrtss    xmm0, xmm0", 21ll, 0 );
				HWRITEASM64( &TMP$1970$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1970$4 );
				RESTORE_VRREG( VR$1, (int64)VRREG$1 );
			}
			goto label$1563;
			label$1580:;
			if( OP$1 != 56ll ) goto label$1582;
			label$1583:;
			{
				FBSTRING TMP$1972$4;
				FBSTRING TMP$1974$4;
				FBSTRING TMP$1976$4;
				FBSTRING TMP$1978$4;
				__builtin_memset( &TMP$1972$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1972$4, -1ll, (void*)"mov eax, 0x7FFFFFFF", 20ll, 0 );
				HWRITEASM64( &TMP$1972$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1972$4 );
				__builtin_memset( &TMP$1974$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1974$4, -1ll, (void*)"movd xmm1, eax", 15ll, 0 );
				HWRITEASM64( &TMP$1974$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1974$4 );
				__builtin_memset( &TMP$1976$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1976$4, -1ll, (void*)"andps xmm1, xmm0", 17ll, 0 );
				HWRITEASM64( &TMP$1976$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1976$4 );
				__builtin_memset( &TMP$1978$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1978$4, -1ll, (void*)"movd xmm0, xmm1", 16ll, 0 );
				HWRITEASM64( &TMP$1978$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1978$4 );
				RESTORE_VRREG( VR$1, (int64)VRREG$1 );
			}
			goto label$1563;
			label$1582:;
			if( OP$1 != 57ll ) goto label$1584;
			label$1585:;
			{
				FBSTRING TMP$1980$4;
				__builtin_memset( &TMP$1980$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1980$4, -1ll, (void*)"fb_SGNSingle", 13ll, 0 );
				SAVE_CALL( &TMP$1980$4, VR$1, (int64)VRREG$1 );
				fb_StrDelete( (FBSTRING*)&TMP$1980$4 );
			}
			goto label$1563;
			label$1584:;
			if( OP$1 != 72ll ) goto label$1586;
			label$1587:;
			{
				FBSTRING TMP$1982$4;
				__builtin_memset( &TMP$1982$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1982$4, -1ll, (void*)"fb_FRACf", 9ll, 0 );
				SAVE_CALL( &TMP$1982$4, VR$1, (int64)VRREG$1 );
				fb_StrDelete( (FBSTRING*)&TMP$1982$4 );
			}
			goto label$1563;
			label$1586:;
			if( OP$1 != 71ll ) goto label$1588;
			label$1589:;
			{
				FBSTRING TMP$1984$4;
				__builtin_memset( &TMP$1984$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1984$4, -1ll, (void*)"fb_FIXSingle", 13ll, 0 );
				SAVE_CALL( &TMP$1984$4, VR$1, (int64)VRREG$1 );
				fb_StrDelete( (FBSTRING*)&TMP$1984$4 );
			}
			goto label$1563;
			label$1588:;
			if( OP$1 != 70ll ) goto label$1590;
			label$1591:;
			{
				FBSTRING TMP$1986$4;
				__builtin_memset( &TMP$1986$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1986$4, -1ll, (void*)"floorf", 7ll, 0 );
				SAVE_CALL( &TMP$1986$4, VR$1, (int64)VRREG$1 );
				fb_StrDelete( (FBSTRING*)&TMP$1986$4 );
			}
			goto label$1563;
			label$1590:;
			if( OP$1 != 54ll ) goto label$1592;
			label$1593:;
			{
				FBSTRING TMP$1989$4;
				FBSTRING TMP$1990$4;
				FBSTRING TMP$1992$4;
				__builtin_memset( &TMP$1989$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1989$4, -1ll, (void*)"mov eax, 0x80000000", 20ll, 0 );
				HWRITEASM64( &TMP$1989$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1989$4 );
				__builtin_memset( &TMP$1990$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1990$4, -1ll, (void*)"movd xmm1, eax", 15ll, 0 );
				HWRITEASM64( &TMP$1990$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1990$4 );
				__builtin_memset( &TMP$1992$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1992$4, -1ll, (void*)"xorps xmm0, xmm1", 17ll, 0 );
				HWRITEASM64( &TMP$1992$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1992$4 );
				RESTORE_VRREG( VR$1, (int64)VRREG$1 );
			}
			goto label$1563;
			label$1592:;
			{
				FBSTRING TMP$1993$4;
				FBSTRING TMP$1996$4;
				FBSTRING TMP$1997$4;
				__builtin_memset( &TMP$1993$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1993$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$1993$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1993$4 );
				__builtin_memset( &TMP$1996$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1996$4, -1ll, (void*)"FOUND AN ERROR : in uop not handled for single", 47ll, 0 );
				HWRITEASM64( &TMP$1996$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1996$4 );
				__builtin_memset( &TMP$1997$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$1997$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$1997$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$1997$4 );
			}
			label$1594:;
			label$1563:;
		}
		if( OP$1 != 57ll ) goto label$1596;
		{
			FBSTRING TMP$1999$3;
			FBSTRING TMP$2000$3;
			FBSTRING TMP$2001$3;
			__builtin_memset( &TMP$2001$3, 0, 24ll );
			__builtin_memset( &TMP$1999$3, 0, 24ll );
			FBSTRING* vr$411 = fb_StrConcat( &TMP$1999$3, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)VRREG$1 << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$2000$3, 0, 24ll );
			FBSTRING* vr$414 = fb_StrConcat( &TMP$2000$3, (void*)vr$411, -1ll, (void*)", eax", 6ll );
			fb_StrAssign( (void*)&TMP$2001$3, -1ll, (void*)vr$414, -1ll, 0 );
			HWRITEASM64( &TMP$2001$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2001$3 );
		}
		goto label$1595;
		label$1596:;
		{
			FBSTRING TMP$2002$3;
			FBSTRING TMP$2003$3;
			FBSTRING TMP$2004$3;
			__builtin_memset( &TMP$2004$3, 0, 24ll );
			__builtin_memset( &TMP$2002$3, 0, 24ll );
			FBSTRING* vr$423 = fb_StrConcat( &TMP$2002$3, (void*)"movd ", 6ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)VRREG$1 << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$2003$3, 0, 24ll );
			FBSTRING* vr$426 = fb_StrConcat( &TMP$2003$3, (void*)vr$423, -1ll, (void*)", xmm0", 7ll );
			fb_StrAssign( (void*)&TMP$2004$3, -1ll, (void*)vr$426, -1ll, 0 );
			HWRITEASM64( &TMP$2004$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2004$3 );
		}
		label$1595:;
		fb_StrDelete( (FBSTRING*)&PREFIX$1 );
		fb_StrDelete( (FBSTRING*)&OP3$1 );
		fb_StrDelete( (FBSTRING*)&OP1$1 );
		goto label$1480;
	}
	label$1560:;
	label$1559:;
	if( ((int64)-(OP$1 == 56ll) & (int64)-(TEMPODTYPE$1 != 16ll)) == 0ll ) goto label$1598;
	{
		FBSTRING TMP$2005$2;
		FBSTRING TMP$2006$2;
		FBSTRING TMP$2011$2;
		FBSTRING TMP$2013$2;
		FBSTRING TMP$2015$2;
		__builtin_memset( &TMP$2006$2, 0, 24ll );
		__builtin_memset( &TMP$2005$2, 0, 24ll );
		FBSTRING* vr$440 = fb_StrConcat( &TMP$2005$2, (void*)"mov rax, ", 10ll, (void*)&OP1$1, -1ll );
		fb_StrAssign( (void*)&TMP$2006$2, -1ll, (void*)vr$440, -1ll, 0 );
		HWRITEASM64( &TMP$2006$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2006$2 );
		if( (int64)*(int32*)((int64)(int32*)REGHANDLE$ + 12ll) == -2ll ) goto label$1600;
		{
			FBSTRING TMP$2007$3;
			FBSTRING TMP$2008$3;
			FBSTRING TMP$2009$3;
			FBSTRING TMP$2010$3;
			TEMPO$1 = *(int32*)((int64)(int32*)REGHANDLE$ + 12ll);
			REG_FINDFREE( TEMPO$1, -1ll );
			*(int32*)((int64)(int32*)REGHANDLE$ + 12ll) = -2;
			__builtin_memset( &TMP$2010$3, 0, 24ll );
			int32 vr$446 = REG_FINDREAL( TEMPO$1 );
			__builtin_memset( &TMP$2007$3, 0, 24ll );
			FBSTRING* vr$451 = fb_StrConcat( &TMP$2007$3, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$446 << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$2008$3, 0, 24ll );
			FBSTRING* vr$454 = fb_StrConcat( &TMP$2008$3, (void*)vr$451, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$2009$3, 0, 24ll );
			FBSTRING* vr$457 = fb_StrConcat( &TMP$2009$3, (void*)vr$454, -1ll, *(void**)((int64)(char**)REGSTRQ$ + 24ll), 0ll );
			fb_StrAssign( (void*)&TMP$2010$3, -1ll, (void*)vr$457, -1ll, 0 );
			HWRITEASM64( &TMP$2010$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2010$3 );
			if( (int64)VRREG$1 != 3ll ) goto label$1602;
			{
				int32 vr$462 = REG_FINDREAL( TEMPO$1 );
				VRREG$1 = vr$462;
				label$1602:;
			}
		}
		goto label$1599;
		label$1600:;
		{
			*(int32*)((uint8*)&CTX$ + 224ll) = (int32)((int64)*(int32*)((uint8*)&CTX$ + 224ll) | 8ll);
		}
		label$1599:;
		__builtin_memset( &TMP$2011$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$2011$2, -1ll, (void*)"cqo", 4ll, 0 );
		HWRITEASM64( &TMP$2011$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2011$2 );
		__builtin_memset( &TMP$2013$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$2013$2, -1ll, (void*)"xor rax, rdx", 13ll, 0 );
		HWRITEASM64( &TMP$2013$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2013$2 );
		__builtin_memset( &TMP$2015$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$2015$2, -1ll, (void*)"sub rax, rdx", 13ll, 0 );
		HWRITEASM64( &TMP$2015$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2015$2 );
		if( VR$1 != (struct $6IRVREG*)0ull ) goto label$1604;
		{
			FBSTRING TMP$2016$3;
			FBSTRING TMP$2017$3;
			FBSTRING TMP$2018$3;
			__builtin_memset( &TMP$2018$3, 0, 24ll );
			__builtin_memset( &TMP$2016$3, 0, 24ll );
			FBSTRING* vr$482 = fb_StrConcat( &TMP$2016$3, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
			__builtin_memset( &TMP$2017$3, 0, 24ll );
			FBSTRING* vr$485 = fb_StrConcat( &TMP$2017$3, (void*)vr$482, -1ll, (void*)", rax", 6ll );
			fb_StrAssign( (void*)&TMP$2018$3, -1ll, (void*)vr$485, -1ll, 0 );
			HWRITEASM64( &TMP$2018$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2018$3 );
		}
		goto label$1603;
		label$1604:;
		{
			FBSTRING TMP$2019$3;
			FBSTRING TMP$2020$3;
			FBSTRING TMP$2021$3;
			__builtin_memset( &TMP$2021$3, 0, 24ll );
			__builtin_memset( &TMP$2019$3, 0, 24ll );
			FBSTRING* vr$494 = fb_StrConcat( &TMP$2019$3, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)VRREG$1 << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$2020$3, 0, 24ll );
			FBSTRING* vr$497 = fb_StrConcat( &TMP$2020$3, (void*)vr$494, -1ll, (void*)", rax", 6ll );
			fb_StrAssign( (void*)&TMP$2021$3, -1ll, (void*)vr$497, -1ll, 0 );
			HWRITEASM64( &TMP$2021$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2021$3 );
			RESTORE_VRREG( VR$1, (int64)VRREG$1 );
		}
		label$1603:;
		fb_StrDelete( (FBSTRING*)&PREFIX$1 );
		fb_StrDelete( (FBSTRING*)&OP3$1 );
		fb_StrDelete( (FBSTRING*)&OP1$1 );
		goto label$1480;
	}
	label$1598:;
	label$1597:;
	if( ((int64)-(OP$1 == 54ll) & (int64)-(TEMPODTYPE$1 != 16ll)) == 0ll ) goto label$1606;
	{
		FBSTRING TMP$2026$2;
		FBSTRING TMP$2027$2;
		if( ((int64)-(VR$1 != (struct $6IRVREG*)0ull) & (int64)-(*(int64*)V1$1 != 4ll)) == 0ll ) goto label$1608;
		{
			FBSTRING TMP$2022$3;
			FBSTRING TMP$2023$3;
			FBSTRING TMP$2024$3;
			FBSTRING TMP$2025$3;
			__builtin_memset( &TMP$2025$3, 0, 24ll );
			__builtin_memset( &TMP$2022$3, 0, 24ll );
			FBSTRING* vr$518 = fb_StrConcat( &TMP$2022$3, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)VRREG$1 << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$2023$3, 0, 24ll );
			FBSTRING* vr$521 = fb_StrConcat( &TMP$2023$3, (void*)vr$518, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$2024$3, 0, 24ll );
			FBSTRING* vr$524 = fb_StrConcat( &TMP$2024$3, (void*)vr$521, -1ll, (void*)&OP1$1, -1ll );
			fb_StrAssign( (void*)&TMP$2025$3, -1ll, (void*)vr$524, -1ll, 0 );
			HWRITEASM64( &TMP$2025$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2025$3 );
			fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)VRREG$1 << (3ll & 63ll))), 0ll, 0 );
		}
		label$1608:;
		label$1607:;
		__builtin_memset( &TMP$2027$2, 0, 24ll );
		__builtin_memset( &TMP$2026$2, 0, 24ll );
		FBSTRING* vr$535 = fb_StrConcat( &TMP$2026$2, (void*)"neg ", 5ll, (void*)&OP1$1, -1ll );
		fb_StrAssign( (void*)&TMP$2027$2, -1ll, (void*)vr$535, -1ll, 0 );
		HWRITEASM64( &TMP$2027$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2027$2 );
		if( VR$1 == (struct $6IRVREG*)0ull ) goto label$1610;
		{
			RESTORE_VRREG( VR$1, (int64)VRREG$1 );
			label$1610:;
		}
		fb_StrDelete( (FBSTRING*)&PREFIX$1 );
		fb_StrDelete( (FBSTRING*)&OP3$1 );
		fb_StrDelete( (FBSTRING*)&OP1$1 );
		goto label$1480;
	}
	label$1606:;
	label$1605:;
	if( ((int64)-(OP$1 == 57ll) & (int64)-(TEMPODTYPE$1 != 16ll)) == 0ll ) goto label$1612;
	{
		FBSTRING LNAME$2;
		char* vr$546 = SYMBUNIQUELABEL(  );
		fb_StrInit( (void*)&LNAME$2, -1ll, (void*)vr$546, 0ll, 0 );
		if( *(int64*)V1$1 != 4ll ) goto label$1614;
		{
			FBSTRING TMP$2029$3;
			FBSTRING TMP$2030$3;
			FBSTRING TMP$2031$3;
			FBSTRING TMP$2032$3;
			FBSTRING TMP$2033$3;
			FBSTRING TMP$2034$3;
			FBSTRING TMP$2035$3;
			FBSTRING TMP$2036$3;
			FBSTRING TMP$2038$3;
			FBSTRING TMP$2039$3;
			FBSTRING TMP$2040$3;
			FBSTRING TMP$2041$3;
			FBSTRING TMP$2042$3;
			FBSTRING TMP$2043$3;
			FBSTRING TMP$2044$3;
			__builtin_memset( &TMP$2031$3, 0, 24ll );
			__builtin_memset( &TMP$2029$3, 0, 24ll );
			FBSTRING* vr$553 = fb_StrConcat( &TMP$2029$3, (void*)"cmp ", 5ll, (void*)&OP1$1, -1ll );
			__builtin_memset( &TMP$2030$3, 0, 24ll );
			FBSTRING* vr$556 = fb_StrConcat( &TMP$2030$3, (void*)vr$553, -1ll, (void*)", 0", 4ll );
			fb_StrAssign( (void*)&TMP$2031$3, -1ll, (void*)vr$556, -1ll, 0 );
			HWRITEASM64( &TMP$2031$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2031$3 );
			__builtin_memset( &TMP$2033$3, 0, 24ll );
			__builtin_memset( &TMP$2032$3, 0, 24ll );
			FBSTRING* vr$564 = fb_StrConcat( &TMP$2032$3, (void*)"je ", 4ll, (void*)&LNAME$2, -1ll );
			fb_StrAssign( (void*)&TMP$2033$3, -1ll, (void*)vr$564, -1ll, 0 );
			HWRITEASM64( &TMP$2033$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2033$3 );
			__builtin_memset( &TMP$2036$3, 0, 24ll );
			__builtin_memset( &TMP$2034$3, 0, 24ll );
			FBSTRING* vr$572 = fb_StrConcat( &TMP$2034$3, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
			__builtin_memset( &TMP$2035$3, 0, 24ll );
			FBSTRING* vr$575 = fb_StrConcat( &TMP$2035$3, (void*)vr$572, -1ll, (void*)", 1", 4ll );
			fb_StrAssign( (void*)&TMP$2036$3, -1ll, (void*)vr$575, -1ll, 0 );
			HWRITEASM64( &TMP$2036$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2036$3 );
			__builtin_memset( &TMP$2039$3, 0, 24ll );
			__builtin_memset( &TMP$2038$3, 0, 24ll );
			FBSTRING* vr$583 = fb_StrConcat( &TMP$2038$3, (void*)"jg ", 4ll, (void*)&LNAME$2, -1ll );
			fb_StrAssign( (void*)&TMP$2039$3, -1ll, (void*)vr$583, -1ll, 0 );
			HWRITEASM64( &TMP$2039$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2039$3 );
			__builtin_memset( &TMP$2042$3, 0, 24ll );
			__builtin_memset( &TMP$2040$3, 0, 24ll );
			FBSTRING* vr$591 = fb_StrConcat( &TMP$2040$3, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
			__builtin_memset( &TMP$2041$3, 0, 24ll );
			FBSTRING* vr$594 = fb_StrConcat( &TMP$2041$3, (void*)vr$591, -1ll, (void*)", -1", 5ll );
			fb_StrAssign( (void*)&TMP$2042$3, -1ll, (void*)vr$594, -1ll, 0 );
			HWRITEASM64( &TMP$2042$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2042$3 );
			__builtin_memset( &TMP$2044$3, 0, 24ll );
			__builtin_memset( &TMP$2043$3, 0, 24ll );
			FBSTRING* vr$602 = fb_StrConcat( &TMP$2043$3, (void*)&LNAME$2, -1ll, (void*)":", 2ll );
			fb_StrAssign( (void*)&TMP$2044$3, -1ll, (void*)vr$602, -1ll, 0 );
			HWRITEASM64( &TMP$2044$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2044$3 );
			RESTORE_VRREG( VR$1, (int64)VRREG$1 );
		}
		goto label$1613;
		label$1614:;
		{
			FBSTRING TMP$2045$3;
			FBSTRING TMP$2046$3;
			FBSTRING TMP$2048$3;
			FBSTRING TMP$2049$3;
			FBSTRING TMP$2050$3;
			FBSTRING TMP$2052$3;
			FBSTRING TMP$2053$3;
			FBSTRING TMP$2054$3;
			FBSTRING TMP$2056$3;
			FBSTRING TMP$2057$3;
			FBSTRING TMP$2058$3;
			__builtin_memset( &TMP$2046$3, 0, 24ll );
			__builtin_memset( &TMP$2045$3, 0, 24ll );
			FBSTRING* vr$611 = fb_StrConcat( &TMP$2045$3, (void*)"mov rax, ", 10ll, (void*)&OP1$1, -1ll );
			fb_StrAssign( (void*)&TMP$2046$3, -1ll, (void*)vr$611, -1ll, 0 );
			HWRITEASM64( &TMP$2046$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2046$3 );
			__builtin_memset( &TMP$2048$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2048$3, -1ll, (void*)"cmp rax, 0", 11ll, 0 );
			HWRITEASM64( &TMP$2048$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2048$3 );
			__builtin_memset( &TMP$2050$3, 0, 24ll );
			__builtin_memset( &TMP$2049$3, 0, 24ll );
			FBSTRING* vr$623 = fb_StrConcat( &TMP$2049$3, (void*)"je ", 4ll, (void*)&LNAME$2, -1ll );
			fb_StrAssign( (void*)&TMP$2050$3, -1ll, (void*)vr$623, -1ll, 0 );
			HWRITEASM64( &TMP$2050$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2050$3 );
			__builtin_memset( &TMP$2052$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2052$3, -1ll, (void*)"mov eax, 1", 11ll, 0 );
			HWRITEASM64( &TMP$2052$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2052$3 );
			__builtin_memset( &TMP$2054$3, 0, 24ll );
			__builtin_memset( &TMP$2053$3, 0, 24ll );
			FBSTRING* vr$635 = fb_StrConcat( &TMP$2053$3, (void*)"jg ", 4ll, (void*)&LNAME$2, -1ll );
			fb_StrAssign( (void*)&TMP$2054$3, -1ll, (void*)vr$635, -1ll, 0 );
			HWRITEASM64( &TMP$2054$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2054$3 );
			__builtin_memset( &TMP$2056$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2056$3, -1ll, (void*)"mov rax, -1", 12ll, 0 );
			HWRITEASM64( &TMP$2056$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2056$3 );
			__builtin_memset( &TMP$2058$3, 0, 24ll );
			__builtin_memset( &TMP$2057$3, 0, 24ll );
			FBSTRING* vr$647 = fb_StrConcat( &TMP$2057$3, (void*)&LNAME$2, -1ll, (void*)":", 2ll );
			fb_StrAssign( (void*)&TMP$2058$3, -1ll, (void*)vr$647, -1ll, 0 );
			HWRITEASM64( &TMP$2058$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2058$3 );
			if( VR$1 != (struct $6IRVREG*)0ull ) goto label$1616;
			{
				FBSTRING TMP$2059$4;
				FBSTRING TMP$2060$4;
				FBSTRING TMP$2061$4;
				__builtin_memset( &TMP$2061$4, 0, 24ll );
				__builtin_memset( &TMP$2059$4, 0, 24ll );
				FBSTRING* vr$655 = fb_StrConcat( &TMP$2059$4, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
				__builtin_memset( &TMP$2060$4, 0, 24ll );
				FBSTRING* vr$658 = fb_StrConcat( &TMP$2060$4, (void*)vr$655, -1ll, (void*)", rax", 6ll );
				fb_StrAssign( (void*)&TMP$2061$4, -1ll, (void*)vr$658, -1ll, 0 );
				HWRITEASM64( &TMP$2061$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2061$4 );
			}
			goto label$1615;
			label$1616:;
			{
				FBSTRING TMP$2062$4;
				FBSTRING TMP$2063$4;
				FBSTRING TMP$2064$4;
				__builtin_memset( &TMP$2064$4, 0, 24ll );
				__builtin_memset( &TMP$2062$4, 0, 24ll );
				FBSTRING* vr$667 = fb_StrConcat( &TMP$2062$4, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)VRREG$1 << (3ll & 63ll))), 0ll );
				__builtin_memset( &TMP$2063$4, 0, 24ll );
				FBSTRING* vr$670 = fb_StrConcat( &TMP$2063$4, (void*)vr$667, -1ll, (void*)", rax", 6ll );
				fb_StrAssign( (void*)&TMP$2064$4, -1ll, (void*)vr$670, -1ll, 0 );
				HWRITEASM64( &TMP$2064$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2064$4 );
			}
			label$1615:;
		}
		label$1613:;
		fb_StrDelete( (FBSTRING*)&LNAME$2 );
		fb_StrDelete( (FBSTRING*)&PREFIX$1 );
		fb_StrDelete( (FBSTRING*)&OP3$1 );
		fb_StrDelete( (FBSTRING*)&OP1$1 );
		goto label$1480;
		fb_StrDelete( (FBSTRING*)&LNAME$2 );
	}
	label$1612:;
	label$1611:;
	if( *(int64*)V1$1 != 4ll ) goto label$1618;
	{
		FBSTRING TMP$2066$2;
		FBSTRING TMP$2067$2;
		__builtin_memset( &TMP$2067$2, 0, 24ll );
		__builtin_memset( &TMP$2066$2, 0, 24ll );
		FBSTRING* vr$684 = fb_StrConcat( &TMP$2066$2, (void*)"movq xmm0, ", 12ll, (void*)&OP1$1, -1ll );
		fb_StrAssign( (void*)&TMP$2067$2, -1ll, (void*)vr$684, -1ll, 0 );
		HWRITEASM64( &TMP$2067$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2067$2 );
	}
	goto label$1617;
	label$1618:;
	{
		FBSTRING TMP$2069$2;
		FBSTRING TMP$2070$2;
		__builtin_memset( &TMP$2070$2, 0, 24ll );
		__builtin_memset( &TMP$2069$2, 0, 24ll );
		FBSTRING* vr$692 = fb_StrConcat( &TMP$2069$2, (void*)"movsd xmm0, ", 13ll, (void*)&OP1$1, -1ll );
		fb_StrAssign( (void*)&TMP$2070$2, -1ll, (void*)vr$692, -1ll, 0 );
		HWRITEASM64( &TMP$2070$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2070$2 );
	}
	label$1617:;
	{
		if( OP$1 != 60ll ) goto label$1620;
		label$1621:;
		{
			FBSTRING TMP$2072$3;
			__builtin_memset( &TMP$2072$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2072$3, -1ll, (void*)"cos", 4ll, 0 );
			SAVE_CALL( &TMP$2072$3, VR$1, (int64)VRREG$1 );
			fb_StrDelete( (FBSTRING*)&TMP$2072$3 );
		}
		goto label$1619;
		label$1620:;
		if( OP$1 != 58ll ) goto label$1622;
		label$1623:;
		{
			FBSTRING TMP$2074$3;
			__builtin_memset( &TMP$2074$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2074$3, -1ll, (void*)"sin", 4ll, 0 );
			SAVE_CALL( &TMP$2074$3, VR$1, (int64)VRREG$1 );
			fb_StrDelete( (FBSTRING*)&TMP$2074$3 );
		}
		goto label$1619;
		label$1622:;
		if( OP$1 != 69ll ) goto label$1624;
		label$1625:;
		{
			FBSTRING TMP$2076$3;
			__builtin_memset( &TMP$2076$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2076$3, -1ll, (void*)"exp", 4ll, 0 );
			SAVE_CALL( &TMP$2076$3, VR$1, (int64)VRREG$1 );
			fb_StrDelete( (FBSTRING*)&TMP$2076$3 );
		}
		goto label$1619;
		label$1624:;
		if( OP$1 != 68ll ) goto label$1626;
		label$1627:;
		{
			FBSTRING TMP$2078$3;
			__builtin_memset( &TMP$2078$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2078$3, -1ll, (void*)"log", 4ll, 0 );
			SAVE_CALL( &TMP$2078$3, VR$1, (int64)VRREG$1 );
			fb_StrDelete( (FBSTRING*)&TMP$2078$3 );
		}
		goto label$1619;
		label$1626:;
		if( OP$1 != 61ll ) goto label$1628;
		label$1629:;
		{
			FBSTRING TMP$2080$3;
			__builtin_memset( &TMP$2080$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2080$3, -1ll, (void*)"acos", 5ll, 0 );
			SAVE_CALL( &TMP$2080$3, VR$1, (int64)VRREG$1 );
			fb_StrDelete( (FBSTRING*)&TMP$2080$3 );
		}
		goto label$1619;
		label$1628:;
		if( OP$1 != 59ll ) goto label$1630;
		label$1631:;
		{
			FBSTRING TMP$2082$3;
			__builtin_memset( &TMP$2082$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2082$3, -1ll, (void*)"asin", 5ll, 0 );
			SAVE_CALL( &TMP$2082$3, VR$1, (int64)VRREG$1 );
			fb_StrDelete( (FBSTRING*)&TMP$2082$3 );
		}
		goto label$1619;
		label$1630:;
		if( OP$1 != 62ll ) goto label$1632;
		label$1633:;
		{
			FBSTRING TMP$2084$3;
			__builtin_memset( &TMP$2084$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2084$3, -1ll, (void*)"tan", 4ll, 0 );
			SAVE_CALL( &TMP$2084$3, VR$1, (int64)VRREG$1 );
			fb_StrDelete( (FBSTRING*)&TMP$2084$3 );
		}
		goto label$1619;
		label$1632:;
		if( OP$1 != 63ll ) goto label$1634;
		label$1635:;
		{
			FBSTRING TMP$2086$3;
			__builtin_memset( &TMP$2086$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2086$3, -1ll, (void*)"atan", 5ll, 0 );
			SAVE_CALL( &TMP$2086$3, VR$1, (int64)VRREG$1 );
			fb_StrDelete( (FBSTRING*)&TMP$2086$3 );
		}
		goto label$1619;
		label$1634:;
		if( OP$1 != 56ll ) goto label$1636;
		label$1637:;
		{
			FBSTRING TMP$2088$3;
			FBSTRING TMP$2090$3;
			FBSTRING TMP$2092$3;
			FBSTRING TMP$2094$3;
			__builtin_memset( &TMP$2088$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2088$3, -1ll, (void*)"mov rax, 0x7FFFFFFFFFFFFFFF", 28ll, 0 );
			HWRITEASM64( &TMP$2088$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2088$3 );
			__builtin_memset( &TMP$2090$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2090$3, -1ll, (void*)"movq xmm1, rax", 15ll, 0 );
			HWRITEASM64( &TMP$2090$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2090$3 );
			__builtin_memset( &TMP$2092$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2092$3, -1ll, (void*)"andpd xmm1, xmm0", 17ll, 0 );
			HWRITEASM64( &TMP$2092$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2092$3 );
			__builtin_memset( &TMP$2094$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2094$3, -1ll, (void*)"movq xmm0, xmm1", 16ll, 0 );
			HWRITEASM64( &TMP$2094$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2094$3 );
			RESTORE_VRREG( VR$1, (int64)VRREG$1 );
		}
		goto label$1619;
		label$1636:;
		if( OP$1 != 65ll ) goto label$1638;
		label$1639:;
		{
			FBSTRING TMP$2096$3;
			__builtin_memset( &TMP$2096$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2096$3, -1ll, (void*)"sqrtsd    xmm0, xmm0", 21ll, 0 );
			HWRITEASM64( &TMP$2096$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2096$3 );
			RESTORE_VRREG( VR$1, (int64)VRREG$1 );
		}
		goto label$1619;
		label$1638:;
		if( OP$1 != 57ll ) goto label$1640;
		label$1641:;
		{
			FBSTRING TMP$2098$3;
			__builtin_memset( &TMP$2098$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2098$3, -1ll, (void*)"fb_SGNDouble", 13ll, 0 );
			SAVE_CALL( &TMP$2098$3, VR$1, (int64)VRREG$1 );
			fb_StrDelete( (FBSTRING*)&TMP$2098$3 );
		}
		goto label$1619;
		label$1640:;
		if( OP$1 != 72ll ) goto label$1642;
		label$1643:;
		{
			FBSTRING TMP$2100$3;
			__builtin_memset( &TMP$2100$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2100$3, -1ll, (void*)"fb_FRACd", 9ll, 0 );
			SAVE_CALL( &TMP$2100$3, VR$1, (int64)VRREG$1 );
			fb_StrDelete( (FBSTRING*)&TMP$2100$3 );
		}
		goto label$1619;
		label$1642:;
		if( OP$1 != 71ll ) goto label$1644;
		label$1645:;
		{
			FBSTRING TMP$2102$3;
			__builtin_memset( &TMP$2102$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2102$3, -1ll, (void*)"fb_FIXDouble", 13ll, 0 );
			SAVE_CALL( &TMP$2102$3, VR$1, (int64)VRREG$1 );
			fb_StrDelete( (FBSTRING*)&TMP$2102$3 );
		}
		goto label$1619;
		label$1644:;
		if( OP$1 != 70ll ) goto label$1646;
		label$1647:;
		{
			FBSTRING TMP$2104$3;
			__builtin_memset( &TMP$2104$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2104$3, -1ll, (void*)"floor", 6ll, 0 );
			SAVE_CALL( &TMP$2104$3, VR$1, (int64)VRREG$1 );
			fb_StrDelete( (FBSTRING*)&TMP$2104$3 );
		}
		goto label$1619;
		label$1646:;
		if( OP$1 != 54ll ) goto label$1648;
		label$1649:;
		{
			FBSTRING TMP$2107$3;
			FBSTRING TMP$2108$3;
			FBSTRING TMP$2110$3;
			__builtin_memset( &TMP$2107$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2107$3, -1ll, (void*)"mov rax, 0x8000000000000000", 28ll, 0 );
			HWRITEASM64( &TMP$2107$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2107$3 );
			__builtin_memset( &TMP$2108$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2108$3, -1ll, (void*)"movq xmm1, rax", 15ll, 0 );
			HWRITEASM64( &TMP$2108$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2108$3 );
			__builtin_memset( &TMP$2110$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2110$3, -1ll, (void*)"xorpd xmm0, xmm1", 17ll, 0 );
			HWRITEASM64( &TMP$2110$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2110$3 );
			RESTORE_VRREG( VR$1, (int64)VRREG$1 );
		}
		goto label$1619;
		label$1648:;
		{
			FBSTRING TMP$2111$3;
			FBSTRING TMP$2114$3;
			FBSTRING TMP$2115$3;
			__builtin_memset( &TMP$2111$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2111$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$2111$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2111$3 );
			__builtin_memset( &TMP$2114$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2114$3, -1ll, (void*)"FOUND AN ERROR : in uop not handled for double", 47ll, 0 );
			HWRITEASM64( &TMP$2114$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2114$3 );
			__builtin_memset( &TMP$2115$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2115$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$2115$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2115$3 );
		}
		label$1650:;
		label$1619:;
	}
	if( OP$1 != 57ll ) goto label$1652;
	{
		FBSTRING TMP$2117$2;
		FBSTRING TMP$2118$2;
		FBSTRING TMP$2119$2;
		__builtin_memset( &TMP$2119$2, 0, 24ll );
		__builtin_memset( &TMP$2117$2, 0, 24ll );
		FBSTRING* vr$808 = fb_StrConcat( &TMP$2117$2, (void*)"movsxd ", 8ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)VRREG$1 << (3ll & 63ll))), 0ll );
		__builtin_memset( &TMP$2118$2, 0, 24ll );
		FBSTRING* vr$811 = fb_StrConcat( &TMP$2118$2, (void*)vr$808, -1ll, (void*)", eax", 6ll );
		fb_StrAssign( (void*)&TMP$2119$2, -1ll, (void*)vr$811, -1ll, 0 );
		HWRITEASM64( &TMP$2119$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2119$2 );
	}
	goto label$1651;
	label$1652:;
	{
		FBSTRING TMP$2120$2;
		FBSTRING TMP$2121$2;
		FBSTRING TMP$2122$2;
		__builtin_memset( &TMP$2122$2, 0, 24ll );
		__builtin_memset( &TMP$2120$2, 0, 24ll );
		FBSTRING* vr$820 = fb_StrConcat( &TMP$2120$2, (void*)"movq ", 6ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)VRREG$1 << (3ll & 63ll))), 0ll );
		__builtin_memset( &TMP$2121$2, 0, 24ll );
		FBSTRING* vr$823 = fb_StrConcat( &TMP$2121$2, (void*)vr$820, -1ll, (void*)", xmm0", 7ll );
		fb_StrAssign( (void*)&TMP$2122$2, -1ll, (void*)vr$823, -1ll, 0 );
		HWRITEASM64( &TMP$2122$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2122$2 );
	}
	label$1651:;
	fb_StrDelete( (FBSTRING*)&PREFIX$1 );
	fb_StrDelete( (FBSTRING*)&OP3$1 );
	fb_StrDelete( (FBSTRING*)&OP1$1 );
	label$1480:;
}

static void HEMITROUNDFLOAT( $11FB_DATATYPE DTYPE1$1, $11FB_DATATYPE DTYPE2$1 )
{
	FBSTRING TMP$2124$1;
	FBSTRING TMP$2125$1;
	FBSTRING TMP$2126$1;
	FBSTRING TMP$2135$1;
	FBSTRING TMP$2136$1;
	FBSTRING TMP$2137$1;
	FBSTRING TMP$2138$1;
	FBSTRING TMP$2144$1;
	FBSTRING TMP$2145$1;
	label$1653:;
	FBSTRING LNAME1$1;
	__builtin_memset( &LNAME1$1, 0, 24ll );
	FBSTRING LNAME2$1;
	__builtin_memset( &LNAME2$1, 0, 24ll );
	*(boolean*)((uint8*)&CTX$ + 256ll) = (boolean)1ll;
	__builtin_memset( &TMP$2124$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$2124$1, -1ll, (void*)"test DWORD PTR $sse41[rip], 0b10000000000000000000", 51ll, 0 );
	HWRITEASM64( &TMP$2124$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$2124$1 );
	char* vr$6 = SYMBUNIQUELABEL(  );
	fb_StrAssign( (void*)&LNAME1$1, -1ll, (void*)vr$6, 0ll, 0 );
	__builtin_memset( &TMP$2126$1, 0, 24ll );
	__builtin_memset( &TMP$2125$1, 0, 24ll );
	FBSTRING* vr$12 = fb_StrConcat( &TMP$2125$1, (void*)"je ", 4ll, (void*)&LNAME1$1, -1ll );
	fb_StrAssign( (void*)&TMP$2126$1, -1ll, (void*)vr$12, -1ll, 0 );
	HWRITEASM64( &TMP$2126$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$2126$1 );
	if( DTYPE1$1 != 16ll ) goto label$1656;
	{
		FBSTRING TMP$2128$2;
		__builtin_memset( &TMP$2128$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$2128$2, -1ll, (void*)"roundsd xmm0,xmm0,4", 20ll, 0 );
		HWRITEASM64( &TMP$2128$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2128$2 );
		if( DTYPE2$1 == 14ll ) goto label$1658;
		{
			FBSTRING TMP$2130$3;
			__builtin_memset( &TMP$2130$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2130$3, -1ll, (void*)"cvttsd2si rax, xmm0", 20ll, 0 );
			HWRITEASM64( &TMP$2130$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2130$3 );
		}
		label$1658:;
		label$1657:;
	}
	goto label$1655;
	label$1656:;
	{
		FBSTRING TMP$2132$2;
		__builtin_memset( &TMP$2132$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$2132$2, -1ll, (void*)"roundss xmm0,xmm0,4", 20ll, 0 );
		HWRITEASM64( &TMP$2132$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2132$2 );
		if( DTYPE2$1 == 14ll ) goto label$1660;
		{
			FBSTRING TMP$2134$3;
			__builtin_memset( &TMP$2134$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2134$3, -1ll, (void*)"cvttss2si rax, xmm0", 20ll, 0 );
			HWRITEASM64( &TMP$2134$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2134$3 );
		}
		label$1660:;
		label$1659:;
	}
	label$1655:;
	char* vr$32 = SYMBUNIQUELABEL(  );
	fb_StrAssign( (void*)&LNAME2$1, -1ll, (void*)vr$32, 0ll, 0 );
	__builtin_memset( &TMP$2136$1, 0, 24ll );
	__builtin_memset( &TMP$2135$1, 0, 24ll );
	FBSTRING* vr$38 = fb_StrConcat( &TMP$2135$1, (void*)"jmp ", 5ll, (void*)&LNAME2$1, -1ll );
	fb_StrAssign( (void*)&TMP$2136$1, -1ll, (void*)vr$38, -1ll, 0 );
	HWRITEASM64( &TMP$2136$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$2136$1 );
	__builtin_memset( &TMP$2138$1, 0, 24ll );
	__builtin_memset( &TMP$2137$1, 0, 24ll );
	FBSTRING* vr$46 = fb_StrConcat( &TMP$2137$1, (void*)&LNAME1$1, -1ll, (void*)":", 2ll );
	fb_StrAssign( (void*)&TMP$2138$1, -1ll, (void*)vr$46, -1ll, 0 );
	HWRITEASM64( &TMP$2138$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$2138$1 );
	if( DTYPE1$1 != 16ll ) goto label$1662;
	{
		if( DTYPE2$1 == 14ll ) goto label$1664;
		{
			NO_ROUNDSD( (char*)"d" );
		}
		goto label$1663;
		label$1664:;
		{
			FBSTRING TMP$2140$3;
			__builtin_memset( &TMP$2140$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2140$3, -1ll, (void*)"call nearbyint", 15ll, 0 );
			HWRITEASM64( &TMP$2140$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2140$3 );
		}
		label$1663:;
	}
	goto label$1661;
	label$1662:;
	{
		if( DTYPE2$1 == 14ll ) goto label$1666;
		{
			NO_ROUNDSD( (char*)"s" );
		}
		goto label$1665;
		label$1666:;
		{
			FBSTRING TMP$2143$3;
			__builtin_memset( &TMP$2143$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2143$3, -1ll, (void*)"call nearbyintf", 16ll, 0 );
			HWRITEASM64( &TMP$2143$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2143$3 );
		}
		label$1665:;
	}
	label$1661:;
	__builtin_memset( &TMP$2145$1, 0, 24ll );
	__builtin_memset( &TMP$2144$1, 0, 24ll );
	FBSTRING* vr$62 = fb_StrConcat( &TMP$2144$1, (void*)&LNAME2$1, -1ll, (void*)":", 2ll );
	fb_StrAssign( (void*)&TMP$2145$1, -1ll, (void*)vr$62, -1ll, 0 );
	HWRITEASM64( &TMP$2145$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$2145$1 );
	fb_StrDelete( (FBSTRING*)&LNAME2$1 );
	fb_StrDelete( (FBSTRING*)&LNAME1$1 );
	label$1654:;
}

static void _EMITCONVERT( struct $6IRVREG* V1$1, struct $6IRVREG* V2$1 )
{
	int64 TMP$2151$1;
	int64 TMP$2152$1;
	int64 TMP$2153$1;
	int64 TMP$2154$1;
	int64 TMP$2213$1;
	int64 TMP$2357$1;
	int64 TMP$2358$1;
	int64 TMP$2523$1;
	int64 TMP$2524$1;
	int64 TMP$2534$1;
	label$1667:;
	$11FB_DATATYPE V1DTYPE$1;
	__builtin_memset( &V1DTYPE$1, 0, 8ll );
	$11FB_DATATYPE V2DTYPE$1;
	__builtin_memset( &V2DTYPE$1, 0, 8ll );
	$11FB_DATATYPE V1OLD$1;
	__builtin_memset( &V1OLD$1, 0, 8ll );
	FBSTRING LNAME1$1;
	__builtin_memset( &LNAME1$1, 0, 24ll );
	FBSTRING LNAME2$1;
	__builtin_memset( &LNAME2$1, 0, 24ll );
	FBSTRING REGTEMPO$1;
	__builtin_memset( &REGTEMPO$1, 0, 24ll );
	FBSTRING OP1$1;
	__builtin_memset( &OP1$1, 0, 24ll );
	FBSTRING OP2$1;
	__builtin_memset( &OP2$1, 0, 24ll );
	FBSTRING OP3$1;
	__builtin_memset( &OP3$1, 0, 24ll );
	FBSTRING OP4$1;
	__builtin_memset( &OP4$1, 0, 24ll );
	FBSTRING PREFIX1$1;
	__builtin_memset( &PREFIX1$1, 0, 24ll );
	FBSTRING PREFIX2$1;
	__builtin_memset( &PREFIX2$1, 0, 24ll );
	int32 REGRESULT$1;
	__builtin_memset( &REGRESULT$1, 0, 4ll );
	int32 SRCREG$1;
	__builtin_memset( &SRCREG$1, 0, 4ll );
	int32 REG$1;
	__builtin_memset( &REG$1, 0, 4ll );
	if( *(int64*)V1$1 == 4ll ) goto label$1670;
	{
		FBSTRING TMP$2146$2;
		FBSTRING TMP$2149$2;
		FBSTRING TMP$2150$2;
		__builtin_memset( &TMP$2146$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$2146$2, -1ll, (void*)"", 1ll, 0 );
		HWRITEASM64( &TMP$2146$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2146$2 );
		__builtin_memset( &TMP$2149$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$2149$2, -1ll, (void*)"FOUND AN ERROR : v1 in converting not a reg", 44ll, 0 );
		HWRITEASM64( &TMP$2149$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2149$2 );
		__builtin_memset( &TMP$2150$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$2150$2, -1ll, (void*)"", 1ll, 0 );
		HWRITEASM64( &TMP$2150$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2150$2 );
	}
	label$1670:;
	label$1669:;
	V1DTYPE$1 = *(int64*)((uint8*)V1$1 + 8ll) & 511ll;
	V2DTYPE$1 = *(int64*)((uint8*)V2$1 + 8ll) & 511ll;
	if( ((int64)-((V1DTYPE$1 & 480ll) != 0ll) & (int64)-((V2DTYPE$1 & 480ll) != 0ll)) == 0ll ) goto label$1672;
	{
		__builtin_memcpy( V1$1, V2$1, 120 );
		fb_StrDelete( (FBSTRING*)&PREFIX2$1 );
		fb_StrDelete( (FBSTRING*)&PREFIX1$1 );
		fb_StrDelete( (FBSTRING*)&OP4$1 );
		fb_StrDelete( (FBSTRING*)&OP3$1 );
		fb_StrDelete( (FBSTRING*)&OP2$1 );
		fb_StrDelete( (FBSTRING*)&OP1$1 );
		fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
		fb_StrDelete( (FBSTRING*)&LNAME2$1 );
		fb_StrDelete( (FBSTRING*)&LNAME1$1 );
		goto label$1668;
	}
	label$1672:;
	label$1671:;
	if( (V1DTYPE$1 & 480ll) == 0ll ) goto label$1674;
	{
		V1DTYPE$1 = 13ll;
		label$1674:;
	}
	if( (V2DTYPE$1 & 480ll) == 0ll ) goto label$1676;
	{
		V2DTYPE$1 = 13ll;
		label$1676:;
	}
	if( V1DTYPE$1 != 8ll ) goto label$1678;
	{
		V1DTYPE$1 = 13ll;
	}
	goto label$1677;
	label$1678:;
	if( V1DTYPE$1 != 10ll ) goto label$1679;
	{
		V1DTYPE$1 = 13ll;
	}
	goto label$1677;
	label$1679:;
	if( V1DTYPE$1 != 9ll ) goto label$1680;
	{
		V1DTYPE$1 = 14ll;
	}
	label$1680:;
	label$1677:;
	if( V2DTYPE$1 != 8ll ) goto label$1682;
	{
		V2DTYPE$1 = 13ll;
	}
	goto label$1681;
	label$1682:;
	if( V2DTYPE$1 != 10ll ) goto label$1683;
	{
		V2DTYPE$1 = 13ll;
	}
	goto label$1681;
	label$1683:;
	if( V2DTYPE$1 != 9ll ) goto label$1684;
	{
		V2DTYPE$1 = 14ll;
	}
	label$1684:;
	label$1681:;
	if( (V1DTYPE$1 & 480ll) == 0ll ) goto label$1685;
	TMP$2151$1 = 24ll;
	goto label$3107;
	label$1685:;
	TMP$2151$1 = V1DTYPE$1 & 31ll;
	label$3107:;
	if( (V2DTYPE$1 & 480ll) == 0ll ) goto label$1686;
	TMP$2152$1 = 24ll;
	goto label$3108;
	label$1686:;
	TMP$2152$1 = V2DTYPE$1 & 31ll;
	label$3108:;
	if( (V1DTYPE$1 & 480ll) == 0ll ) goto label$1687;
	TMP$2153$1 = 24ll;
	goto label$3109;
	label$1687:;
	TMP$2153$1 = V1DTYPE$1 & 31ll;
	label$3109:;
	if( (V2DTYPE$1 & 480ll) == 0ll ) goto label$1688;
	TMP$2154$1 = 24ll;
	goto label$3110;
	label$1688:;
	TMP$2154$1 = V2DTYPE$1 & 31ll;
	label$3110:;
	if( ((((int64)-(*(int64*)V1$1 == 4ll) & (int64)-(*(int64*)V2$1 == 4ll)) & (int64)-(*(int64*)(((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$2151$1 * 56ll)) + 8ll) == *(int64*)(((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$2152$1 * 56ll)) + 8ll))) & (int64)-(*(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$2153$1 * 56ll)) == *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$2154$1 * 56ll)))) == 0ll ) goto label$1690;
	{
		*(int64*)((uint8*)V1$1 + 24ll) = *(int64*)((uint8*)V2$1 + 24ll);
		fb_StrDelete( (FBSTRING*)&PREFIX2$1 );
		fb_StrDelete( (FBSTRING*)&PREFIX1$1 );
		fb_StrDelete( (FBSTRING*)&OP4$1 );
		fb_StrDelete( (FBSTRING*)&OP3$1 );
		fb_StrDelete( (FBSTRING*)&OP2$1 );
		fb_StrDelete( (FBSTRING*)&OP1$1 );
		fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
		fb_StrDelete( (FBSTRING*)&LNAME2$1 );
		fb_StrDelete( (FBSTRING*)&LNAME1$1 );
		goto label$1668;
	}
	label$1690:;
	label$1689:;
	if( (((int64)-(V1DTYPE$1 == 13ll) & (int64)-(V2DTYPE$1 == 13ll)) | ((int64)-(V1DTYPE$1 == 14ll) & (int64)-(V2DTYPE$1 == 14ll))) == 0ll ) goto label$1692;
	{
		__builtin_memcpy( V1$1, V2$1, 120 );
		fb_StrDelete( (FBSTRING*)&PREFIX2$1 );
		fb_StrDelete( (FBSTRING*)&PREFIX1$1 );
		fb_StrDelete( (FBSTRING*)&OP4$1 );
		fb_StrDelete( (FBSTRING*)&OP3$1 );
		fb_StrDelete( (FBSTRING*)&OP2$1 );
		fb_StrDelete( (FBSTRING*)&OP1$1 );
		fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
		fb_StrDelete( (FBSTRING*)&LNAME2$1 );
		fb_StrDelete( (FBSTRING*)&LNAME1$1 );
		goto label$1668;
	}
	label$1692:;
	label$1691:;
	if( (((int64)-(V1DTYPE$1 == 13ll) & (int64)-(V2DTYPE$1 == 14ll)) | ((int64)-(V2DTYPE$1 == 13ll) & (int64)-(V1DTYPE$1 == 14ll))) == 0ll ) goto label$1694;
	{
		V1OLD$1 = *($11FB_DATATYPE*)((uint8*)V1$1 + 8ll);
		__builtin_memcpy( V1$1, V2$1, 120 );
		*($11FB_DATATYPE*)((uint8*)V1$1 + 8ll) = V1OLD$1;
		fb_StrDelete( (FBSTRING*)&PREFIX2$1 );
		fb_StrDelete( (FBSTRING*)&PREFIX1$1 );
		fb_StrDelete( (FBSTRING*)&OP4$1 );
		fb_StrDelete( (FBSTRING*)&OP3$1 );
		fb_StrDelete( (FBSTRING*)&OP2$1 );
		fb_StrDelete( (FBSTRING*)&OP1$1 );
		fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
		fb_StrDelete( (FBSTRING*)&LNAME2$1 );
		fb_StrDelete( (FBSTRING*)&LNAME1$1 );
		goto label$1668;
	}
	label$1694:;
	label$1693:;
	if( ((int64)-(V1DTYPE$1 == 17ll) & (int64)-(V2DTYPE$1 == 20ll)) == 0ll ) goto label$1696;
	{
		__builtin_memcpy( V1$1, V2$1, 120 );
		fb_StrDelete( (FBSTRING*)&PREFIX2$1 );
		fb_StrDelete( (FBSTRING*)&PREFIX1$1 );
		fb_StrDelete( (FBSTRING*)&OP4$1 );
		fb_StrDelete( (FBSTRING*)&OP3$1 );
		fb_StrDelete( (FBSTRING*)&OP2$1 );
		fb_StrDelete( (FBSTRING*)&OP1$1 );
		fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
		fb_StrDelete( (FBSTRING*)&LNAME2$1 );
		fb_StrDelete( (FBSTRING*)&LNAME1$1 );
		goto label$1668;
	}
	label$1696:;
	label$1695:;
	if( ((int64)-(V1DTYPE$1 == 20ll) & (int64)-(V2DTYPE$1 == 20ll)) == 0ll ) goto label$1698;
	{
		struct $8FBSYMBOL* V1SUBTYPE$2;
		V1SUBTYPE$2 = *(struct $8FBSYMBOL**)((uint8*)V1$1 + 16ll);
		__builtin_memcpy( V1$1, V2$1, 120 );
		*(struct $8FBSYMBOL**)((uint8*)V1$1 + 16ll) = V1SUBTYPE$2;
		fb_StrDelete( (FBSTRING*)&PREFIX2$1 );
		fb_StrDelete( (FBSTRING*)&PREFIX1$1 );
		fb_StrDelete( (FBSTRING*)&OP4$1 );
		fb_StrDelete( (FBSTRING*)&OP3$1 );
		fb_StrDelete( (FBSTRING*)&OP2$1 );
		fb_StrDelete( (FBSTRING*)&OP1$1 );
		fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
		fb_StrDelete( (FBSTRING*)&LNAME2$1 );
		fb_StrDelete( (FBSTRING*)&LNAME1$1 );
		goto label$1668;
	}
	label$1698:;
	label$1697:;
	REG_FINDFREE( (int32)*(int64*)((uint8*)V1$1 + 24ll), -1ll );
	int32 vr$144 = REG_FINDREAL( (int32)*(int64*)((uint8*)V1$1 + 24ll) );
	REGRESULT$1 = vr$144;
	if( V1DTYPE$1 != 17ll ) goto label$1700;
	{
		V1DTYPE$1 = 13ll;
		label$1700:;
	}
	{
		if( V1DTYPE$1 == 13ll ) goto label$1703;
		label$1704:;
		if( V1DTYPE$1 == 14ll ) goto label$1703;
		label$1705:;
		if( V1DTYPE$1 == 16ll ) goto label$1703;
		label$1706:;
		if( V1DTYPE$1 != 20ll ) goto label$1702;
		label$1703:;
		{
			fb_StrAssign( (void*)&PREFIX1$1, -1ll, (void*)"QWORD PTR ", 11ll, 0 );
			fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)REGRESULT$1 << (3ll & 63ll))), 0ll, 0 );
		}
		goto label$1701;
		label$1702:;
		if( V1DTYPE$1 == 11ll ) goto label$1708;
		label$1709:;
		if( V1DTYPE$1 == 12ll ) goto label$1708;
		label$1710:;
		if( V1DTYPE$1 != 15ll ) goto label$1707;
		label$1708:;
		{
			fb_StrAssign( (void*)&PREFIX1$1, -1ll, (void*)"DWORD PTR ", 11ll, 0 );
			fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)REGRESULT$1 << (3ll & 63ll))), 0ll, 0 );
		}
		goto label$1701;
		label$1707:;
		if( V1DTYPE$1 == 5ll ) goto label$1712;
		label$1713:;
		if( V1DTYPE$1 != 6ll ) goto label$1711;
		label$1712:;
		{
			fb_StrAssign( (void*)&PREFIX1$1, -1ll, (void*)"WORD PTR ", 10ll, 0 );
			fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRW$ + ((int64)REGRESULT$1 << (3ll & 63ll))), 0ll, 0 );
		}
		goto label$1701;
		label$1711:;
		if( V1DTYPE$1 == 2ll ) goto label$1715;
		label$1716:;
		if( V1DTYPE$1 == 3ll ) goto label$1715;
		label$1717:;
		if( V1DTYPE$1 == 1ll ) goto label$1715;
		label$1718:;
		if( V1DTYPE$1 != 4ll ) goto label$1714;
		label$1715:;
		{
			fb_StrAssign( (void*)&PREFIX1$1, -1ll, (void*)"BYTE PTR ", 10ll, 0 );
			fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRB$ + ((int64)REGRESULT$1 << (3ll & 63ll))), 0ll, 0 );
		}
		goto label$1701;
		label$1714:;
		{
			FBSTRING TMP$2155$3;
			FBSTRING TMP$2159$3;
			FBSTRING TMP$2160$3;
			FBSTRING TMP$2161$3;
			__builtin_memset( &TMP$2155$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2155$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$2155$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2155$3 );
			__builtin_memset( &TMP$2160$3, 0, 24ll );
			FBSTRING* vr$167 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 8ll) );
			__builtin_memset( &TMP$2159$3, 0, 24ll );
			FBSTRING* vr$170 = fb_StrConcat( &TMP$2159$3, (void*)"FOUND AN ERROR : converting datatype not handled 01 = ", 55ll, (void*)vr$167, -1ll );
			fb_StrAssign( (void*)&TMP$2160$3, -1ll, (void*)vr$170, -1ll, 0 );
			HWRITEASM64( &TMP$2160$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2160$3 );
			__builtin_memset( &TMP$2161$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2161$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$2161$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2161$3 );
		}
		label$1719:;
		label$1701:;
	}
	{
		if( V2DTYPE$1 == 13ll ) goto label$1722;
		label$1723:;
		if( V2DTYPE$1 == 14ll ) goto label$1722;
		label$1724:;
		if( V2DTYPE$1 == 16ll ) goto label$1722;
		label$1725:;
		if( V2DTYPE$1 != 20ll ) goto label$1721;
		label$1722:;
		{
			fb_StrAssign( (void*)&PREFIX2$1, -1ll, (void*)"QWORD PTR ", 11ll, 0 );
		}
		goto label$1720;
		label$1721:;
		if( V2DTYPE$1 == 11ll ) goto label$1727;
		label$1728:;
		if( V2DTYPE$1 == 12ll ) goto label$1727;
		label$1729:;
		if( V2DTYPE$1 != 15ll ) goto label$1726;
		label$1727:;
		{
			fb_StrAssign( (void*)&PREFIX2$1, -1ll, (void*)"DWORD PTR ", 11ll, 0 );
		}
		goto label$1720;
		label$1726:;
		if( V2DTYPE$1 == 5ll ) goto label$1731;
		label$1732:;
		if( V2DTYPE$1 != 6ll ) goto label$1730;
		label$1731:;
		{
			fb_StrAssign( (void*)&PREFIX2$1, -1ll, (void*)"WORD PTR ", 10ll, 0 );
		}
		goto label$1720;
		label$1730:;
		if( V2DTYPE$1 == 2ll ) goto label$1734;
		label$1735:;
		if( V2DTYPE$1 == 3ll ) goto label$1734;
		label$1736:;
		if( V2DTYPE$1 == 1ll ) goto label$1734;
		label$1737:;
		if( V2DTYPE$1 != 4ll ) goto label$1733;
		label$1734:;
		{
			fb_StrAssign( (void*)&PREFIX2$1, -1ll, (void*)"BYTE PTR ", 10ll, 0 );
		}
		goto label$1720;
		label$1733:;
		if( V2DTYPE$1 != 7ll ) goto label$1738;
		label$1739:;
		{
			if( *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + 400ll) != 2ll ) goto label$1741;
			{
				fb_StrAssign( (void*)&PREFIX2$1, -1ll, (void*)"WORD PTR ", 10ll, 0 );
				V2DTYPE$1 = 6ll;
			}
			goto label$1740;
			label$1741:;
			if( *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + 400ll) != 4ll ) goto label$1742;
			{
				fb_StrAssign( (void*)&PREFIX2$1, -1ll, (void*)"DWORD PTR ", 11ll, 0 );
				V2DTYPE$1 = 12ll;
			}
			goto label$1740;
			label$1742:;
			{
				FBSTRING TMP$2162$4;
				FBSTRING TMP$2165$4;
				FBSTRING TMP$2166$4;
				__builtin_memset( &TMP$2162$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2162$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$2162$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2162$4 );
				__builtin_memset( &TMP$2165$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2165$4, -1ll, (void*)"FOUND AN ERROR : converting datatype WCHAR not handled", 55ll, 0 );
				HWRITEASM64( &TMP$2165$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2165$4 );
				__builtin_memset( &TMP$2166$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2166$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$2166$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2166$4 );
			}
			label$1740:;
		}
		goto label$1720;
		label$1738:;
		{
			FBSTRING TMP$2167$3;
			FBSTRING TMP$2171$3;
			FBSTRING TMP$2172$3;
			FBSTRING TMP$2173$3;
			__builtin_memset( &TMP$2167$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2167$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$2167$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2167$3 );
			__builtin_memset( &TMP$2172$3, 0, 24ll );
			FBSTRING* vr$202 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 8ll) );
			__builtin_memset( &TMP$2171$3, 0, 24ll );
			FBSTRING* vr$205 = fb_StrConcat( &TMP$2171$3, (void*)"FOUND AN ERROR : converting datatype not handled 02 = ", 55ll, (void*)vr$202, -1ll );
			fb_StrAssign( (void*)&TMP$2172$3, -1ll, (void*)vr$205, -1ll, 0 );
			HWRITEASM64( &TMP$2172$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2172$3 );
			__builtin_memset( &TMP$2173$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2173$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$2173$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2173$3 );
		}
		label$1743:;
		label$1720:;
	}
	{
		$15IRVREGTYPE_ENUM TMP$2174$2;
		TMP$2174$2 = *($15IRVREGTYPE_ENUM*)V2$1;
		if( TMP$2174$2 != 2ll ) goto label$1745;
		label$1746:;
		{
			PREPARE_IDX( V2$1, &OP2$1, &OP4$1 );
		}
		goto label$1744;
		label$1745:;
		if( TMP$2174$2 != 4ll ) goto label$1747;
		label$1748:;
		{
			fb_StrAssign( (void*)&PREFIX2$1, -1ll, (void*)"", 1ll, 0 );
			int32 vr$219 = REG_FINDREAL( (int32)*(int64*)((uint8*)V2$1 + 24ll) );
			SRCREG$1 = vr$219;
			if( (V2DTYPE$1 & 480ll) == 0ll ) goto label$1750;
			{
				V2DTYPE$1 = 13ll;
				label$1750:;
			}
			{
				if( V2DTYPE$1 == 13ll ) goto label$1753;
				label$1754:;
				if( V2DTYPE$1 == 14ll ) goto label$1753;
				label$1755:;
				if( V2DTYPE$1 != 16ll ) goto label$1752;
				label$1753:;
				{
					fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)SRCREG$1 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$1751;
				label$1752:;
				if( V2DTYPE$1 == 11ll ) goto label$1757;
				label$1758:;
				if( V2DTYPE$1 == 12ll ) goto label$1757;
				label$1759:;
				if( V2DTYPE$1 != 15ll ) goto label$1756;
				label$1757:;
				{
					fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)SRCREG$1 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$1751;
				label$1756:;
				if( V2DTYPE$1 == 5ll ) goto label$1761;
				label$1762:;
				if( V2DTYPE$1 != 6ll ) goto label$1760;
				label$1761:;
				{
					fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRW$ + ((int64)SRCREG$1 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$1751;
				label$1760:;
				if( V2DTYPE$1 == 2ll ) goto label$1764;
				label$1765:;
				if( V2DTYPE$1 == 3ll ) goto label$1764;
				label$1766:;
				if( V2DTYPE$1 == 1ll ) goto label$1764;
				label$1767:;
				if( V2DTYPE$1 != 4ll ) goto label$1763;
				label$1764:;
				{
					fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRB$ + ((int64)SRCREG$1 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$1751;
				label$1763:;
				{
					FBSTRING TMP$2175$5;
					FBSTRING TMP$2179$5;
					FBSTRING TMP$2180$5;
					FBSTRING TMP$2181$5;
					__builtin_memset( &TMP$2175$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$2175$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$2175$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2175$5 );
					__builtin_memset( &TMP$2180$5, 0, 24ll );
					FBSTRING* vr$239 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 8ll) );
					__builtin_memset( &TMP$2179$5, 0, 24ll );
					FBSTRING* vr$242 = fb_StrConcat( &TMP$2179$5, (void*)"FOUND AN ERROR : Converting datatype not handled 03 = ", 55ll, (void*)vr$239, -1ll );
					fb_StrAssign( (void*)&TMP$2180$5, -1ll, (void*)vr$242, -1ll, 0 );
					HWRITEASM64( &TMP$2180$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2180$5 );
					__builtin_memset( &TMP$2181$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$2181$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$2181$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2181$5 );
				}
				label$1768:;
				label$1751:;
			}
		}
		goto label$1744;
		label$1747:;
		if( TMP$2174$2 != 1ll ) goto label$1769;
		label$1770:;
		{
			if( ((int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) + 8ll) & 2ll) != 0ll) | (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) + 8ll) & 1ll) != 0ll)) == 0ll ) goto label$1772;
			{
				int64 TMP$2182$4;
				if( (int64)-(*(boolean*)((uint8*)&CTX$ + 416ll)) != -1ll ) goto label$1773;
				int64 vr$260 = FBGETOPTION( 0ll );
				TMP$2182$4 = (int64)-(vr$260 == 2ll);
				goto label$3111;
				label$1773:;
				TMP$2182$4 = 0ll;
				label$3111:;
				if( TMP$2182$4 == 0ll ) goto label$1775;
				{
					FBSTRING TMP$2183$5;
					char* vr$263 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) );
					__builtin_memset( &TMP$2183$5, 0, 24ll );
					FBSTRING* vr$266 = fb_StrConcat( &TMP$2183$5, (void*)vr$263, 0ll, (void*)"@GOTPCREL[rip]", 15ll );
					fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$266, -1ll, 0 );
				}
				goto label$1774;
				label$1775:;
				{
					FBSTRING TMP$2184$5;
					FBSTRING TMP$2185$5;
					FBSTRING TMP$2186$5;
					FBSTRING* vr$269 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
					char* vr$271 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) );
					__builtin_memset( &TMP$2184$5, 0, 24ll );
					FBSTRING* vr$274 = fb_StrConcat( &TMP$2184$5, (void*)vr$271, 0ll, (void*)"[rip+", 6ll );
					__builtin_memset( &TMP$2185$5, 0, 24ll );
					FBSTRING* vr$277 = fb_StrConcat( &TMP$2185$5, (void*)vr$274, -1ll, (void*)vr$269, -1ll );
					__builtin_memset( &TMP$2186$5, 0, 24ll );
					FBSTRING* vr$280 = fb_StrConcat( &TMP$2186$5, (void*)vr$277, -1ll, (void*)"]", 2ll );
					fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$280, -1ll, 0 );
				}
				label$1774:;
			}
			goto label$1771;
			label$1772:;
			{
				FBSTRING TMP$2187$4;
				FBSTRING* vr$283 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
				__builtin_memset( &TMP$2187$4, 0, 24ll );
				FBSTRING* vr$286 = fb_StrConcat( &TMP$2187$4, (void*)vr$283, -1ll, (void*)"[rbp]", 6ll );
				fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$286, -1ll, 0 );
			}
			label$1771:;
		}
		goto label$1744;
		label$1769:;
		if( TMP$2174$2 != 3ll ) goto label$1776;
		label$1777:;
		{
			FBSTRING TMP$2188$3;
			FBSTRING TMP$2189$3;
			FBSTRING TMP$2190$3;
			int32 vr$291 = REG_FINDREAL( (int32)*(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V2$1 + 80ll) + 24ll) );
			FBSTRING* vr$295 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
			__builtin_memset( &TMP$2188$3, 0, 24ll );
			FBSTRING* vr$298 = fb_StrConcat( &TMP$2188$3, (void*)vr$295, -1ll, (void*)"[", 2ll );
			__builtin_memset( &TMP$2189$3, 0, 24ll );
			FBSTRING* vr$301 = fb_StrConcat( &TMP$2189$3, (void*)vr$298, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$291 << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$2190$3, 0, 24ll );
			FBSTRING* vr$304 = fb_StrConcat( &TMP$2190$3, (void*)vr$301, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$304, -1ll, 0 );
		}
		goto label$1744;
		label$1776:;
		if( TMP$2174$2 != 5ll ) goto label$1778;
		label$1779:;
		{
			FBSTRING TMP$2191$3;
			FBSTRING TMP$2192$3;
			FBSTRING TMP$2193$3;
			int64 TMP$2194$3;
			int64 TMP$2195$3;
			FBSTRING* vr$307 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
			char* vr$309 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) );
			__builtin_memset( &TMP$2191$3, 0, 24ll );
			FBSTRING* vr$312 = fb_StrConcat( &TMP$2191$3, (void*)vr$309, 0ll, (void*)"[rip+", 6ll );
			__builtin_memset( &TMP$2192$3, 0, 24ll );
			FBSTRING* vr$315 = fb_StrConcat( &TMP$2192$3, (void*)vr$312, -1ll, (void*)vr$307, -1ll );
			__builtin_memset( &TMP$2193$3, 0, 24ll );
			FBSTRING* vr$318 = fb_StrConcat( &TMP$2193$3, (void*)vr$315, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$318, -1ll, 0 );
			if( (*(int64*)((uint8*)V2$1 + 8ll) & 31ll) != 22ll ) goto label$1780;
			TMP$2194$3 = (int64)-((int64)-(*(boolean*)((uint8*)&CTX$ + 416ll)) == -1ll);
			goto label$3112;
			label$1780:;
			TMP$2194$3 = 0ll;
			label$3112:;
			if( TMP$2194$3 == 0ll ) goto label$1781;
			int64 vr$324 = FBGETOPTION( 0ll );
			TMP$2195$3 = (int64)-(vr$324 == 2ll);
			goto label$3113;
			label$1781:;
			TMP$2195$3 = 0ll;
			label$3113:;
			if( TMP$2195$3 == 0ll ) goto label$1783;
			{
				FBSTRING TMP$2197$4;
				FBSTRING TMP$2198$4;
				FBSTRING TMP$2199$4;
				FBSTRING TMP$2200$4;
				FBSTRING TMP$2201$4;
				FBSTRING TMP$2202$4;
				__builtin_memset( &TMP$2199$4, 0, 24ll );
				FBSTRING* vr$327 = fb_StrAllocTempDescZEx( (char*)"[", 1ll );
				int64 vr$329 = fb_StrInstr( 1ll, (FBSTRING*)&OP2$1, (FBSTRING*)vr$327 );
				FBSTRING* vr$332 = fb_LEFT( (FBSTRING*)&OP2$1, vr$329 + -1ll );
				__builtin_memset( &TMP$2197$4, 0, 24ll );
				FBSTRING* vr$335 = fb_StrConcat( &TMP$2197$4, (void*)"mov rax, QWORD PTR ", 20ll, (void*)vr$332, -1ll );
				__builtin_memset( &TMP$2198$4, 0, 24ll );
				FBSTRING* vr$338 = fb_StrConcat( &TMP$2198$4, (void*)vr$335, -1ll, (void*)"@GOTPCREL[rip]", 15ll );
				fb_StrAssign( (void*)&TMP$2199$4, -1ll, (void*)vr$338, -1ll, 0 );
				HWRITEASM64( &TMP$2199$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2199$4 );
				__builtin_memset( &TMP$2202$4, 0, 24ll );
				__builtin_memset( &TMP$2200$4, 0, 24ll );
				FBSTRING* vr$346 = fb_StrConcat( &TMP$2200$4, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
				__builtin_memset( &TMP$2201$4, 0, 24ll );
				FBSTRING* vr$349 = fb_StrConcat( &TMP$2201$4, (void*)vr$346, -1ll, (void*)", rax", 6ll );
				fb_StrAssign( (void*)&TMP$2202$4, -1ll, (void*)vr$349, -1ll, 0 );
				HWRITEASM64( &TMP$2202$4, 3ll );
				fb_StrDelete( (FBSTRING*)&TMP$2202$4 );
			}
			goto label$1782;
			label$1783:;
			{
				FBSTRING TMP$2203$4;
				FBSTRING TMP$2204$4;
				FBSTRING TMP$2205$4;
				FBSTRING TMP$2206$4;
				__builtin_memset( &TMP$2206$4, 0, 24ll );
				__builtin_memset( &TMP$2203$4, 0, 24ll );
				FBSTRING* vr$358 = fb_StrConcat( &TMP$2203$4, (void*)"lea ", 5ll, (void*)&OP1$1, -1ll );
				__builtin_memset( &TMP$2204$4, 0, 24ll );
				FBSTRING* vr$361 = fb_StrConcat( &TMP$2204$4, (void*)vr$358, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$2205$4, 0, 24ll );
				FBSTRING* vr$364 = fb_StrConcat( &TMP$2205$4, (void*)vr$361, -1ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$2206$4, -1ll, (void*)vr$364, -1ll, 0 );
				HWRITEASM64( &TMP$2206$4, 3ll );
				fb_StrDelete( (FBSTRING*)&TMP$2206$4 );
			}
			label$1782:;
			fb_StrDelete( (FBSTRING*)&PREFIX2$1 );
			fb_StrDelete( (FBSTRING*)&PREFIX1$1 );
			fb_StrDelete( (FBSTRING*)&OP4$1 );
			fb_StrDelete( (FBSTRING*)&OP3$1 );
			fb_StrDelete( (FBSTRING*)&OP2$1 );
			fb_StrDelete( (FBSTRING*)&OP1$1 );
			fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
			fb_StrDelete( (FBSTRING*)&LNAME2$1 );
			fb_StrDelete( (FBSTRING*)&LNAME1$1 );
			goto label$1668;
		}
		goto label$1744;
		label$1778:;
		if( TMP$2174$2 != 0ll ) goto label$1784;
		label$1785:;
		{
			int64 TMP$2207$3;
			fb_StrAssign( (void*)&PREFIX1$1, -1ll, (void*)"", 1ll, 0 );
			if( (*(int64*)((uint8*)V2$1 + 8ll) & 480ll) == 0ll ) goto label$1786;
			TMP$2207$3 = 24ll;
			goto label$3114;
			label$1786:;
			TMP$2207$3 = *(int64*)((uint8*)V2$1 + 8ll) & 31ll;
			label$3114:;
			if( *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$2207$3 * 56ll)) != 1ll ) goto label$1788;
			{
				FBSTRING* vr$385 = HFLOATTOHEX_ASM64( *(double*)((uint8*)V2$1 + 48ll), *(int64*)((uint8*)V2$1 + 8ll), (int8)0 );
				fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$385, -1ll, 0 );
			}
			goto label$1787;
			label$1788:;
			{
				FBSTRING* vr$388 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 48ll) );
				fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$388, -1ll, 0 );
			}
			label$1787:;
		}
		goto label$1744;
		label$1784:;
		{
			FBSTRING TMP$2208$3;
			FBSTRING TMP$2211$3;
			FBSTRING TMP$2212$3;
			__builtin_memset( &TMP$2208$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2208$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$2208$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2208$3 );
			__builtin_memset( &TMP$2211$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2211$3, -1ll, (void*)"FOUND AN ERROR : store 02 ??", 29ll, 0 );
			HWRITEASM64( &TMP$2211$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2211$3 );
			__builtin_memset( &TMP$2212$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2212$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$2212$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2212$3 );
		}
		label$1789:;
		label$1744:;
	}
	int32 vr$403 = fb_StrCompare( (void*)&OP4$1, -1ll, (void*)"", 1ll );
	if( (int64)vr$403 == 0ll ) goto label$1791;
	{
		EMITOP3_OP4( &OP4$1 );
		label$1791:;
	}
	if( (V1DTYPE$1 & 480ll) == 0ll ) goto label$1792;
	TMP$2213$1 = 24ll;
	goto label$3115;
	label$1792:;
	TMP$2213$1 = V1DTYPE$1 & 31ll;
	label$3115:;
	if( *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$2213$1 * 56ll)) != 1ll ) goto label$1794;
	{
		int64 TMP$2214$2;
		if( (V2DTYPE$1 & 480ll) == 0ll ) goto label$1795;
		TMP$2214$2 = 24ll;
		goto label$3116;
		label$1795:;
		TMP$2214$2 = V2DTYPE$1 & 31ll;
		label$3116:;
		if( *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$2214$2 * 56ll)) != 1ll ) goto label$1797;
		{
			if( V1DTYPE$1 != 16ll ) goto label$1799;
			{
				FBSTRING TMP$2219$4;
				FBSTRING TMP$2220$4;
				FBSTRING TMP$2221$4;
				FBSTRING TMP$2222$4;
				FBSTRING TMP$2223$4;
				if( *(int64*)V2$1 != 4ll ) goto label$1801;
				{
					FBSTRING TMP$2215$5;
					FBSTRING TMP$2216$5;
					__builtin_memset( &TMP$2216$5, 0, 24ll );
					__builtin_memset( &TMP$2215$5, 0, 24ll );
					FBSTRING* vr$417 = fb_StrConcat( &TMP$2215$5, (void*)"movd xmm0, ", 12ll, (void*)&OP2$1, -1ll );
					fb_StrAssign( (void*)&TMP$2216$5, -1ll, (void*)vr$417, -1ll, 0 );
					HWRITEASM64( &TMP$2216$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2216$5 );
					fb_StrAssign( (void*)&OP2$1, -1ll, (void*)"xmm0", 5ll, 0 );
				}
				label$1801:;
				label$1800:;
				__builtin_memset( &TMP$2220$4, 0, 24ll );
				__builtin_memset( &TMP$2219$4, 0, 24ll );
				FBSTRING* vr$426 = fb_StrConcat( &TMP$2219$4, (void*)"cvtss2sd xmm0, ", 16ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$2220$4, -1ll, (void*)vr$426, -1ll, 0 );
				HWRITEASM64( &TMP$2220$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2220$4 );
				__builtin_memset( &TMP$2223$4, 0, 24ll );
				__builtin_memset( &TMP$2221$4, 0, 24ll );
				FBSTRING* vr$434 = fb_StrConcat( &TMP$2221$4, (void*)"movq ", 6ll, (void*)&OP1$1, -1ll );
				__builtin_memset( &TMP$2222$4, 0, 24ll );
				FBSTRING* vr$437 = fb_StrConcat( &TMP$2222$4, (void*)vr$434, -1ll, (void*)", xmm0", 7ll );
				fb_StrAssign( (void*)&TMP$2223$4, -1ll, (void*)vr$437, -1ll, 0 );
				HWRITEASM64( &TMP$2223$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2223$4 );
			}
			goto label$1798;
			label$1799:;
			{
				FBSTRING TMP$2229$4;
				FBSTRING TMP$2230$4;
				FBSTRING TMP$2231$4;
				FBSTRING TMP$2232$4;
				FBSTRING TMP$2233$4;
				if( *(int64*)V2$1 != 4ll ) goto label$1803;
				{
					FBSTRING TMP$2225$5;
					FBSTRING TMP$2226$5;
					__builtin_memset( &TMP$2226$5, 0, 24ll );
					__builtin_memset( &TMP$2225$5, 0, 24ll );
					FBSTRING* vr$446 = fb_StrConcat( &TMP$2225$5, (void*)"movq xmm1, ", 12ll, (void*)&OP2$1, -1ll );
					fb_StrAssign( (void*)&TMP$2226$5, -1ll, (void*)vr$446, -1ll, 0 );
					HWRITEASM64( &TMP$2226$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2226$5 );
					fb_StrAssign( (void*)&OP2$1, -1ll, (void*)"xmm1", 5ll, 0 );
				}
				label$1803:;
				label$1802:;
				__builtin_memset( &TMP$2230$4, 0, 24ll );
				__builtin_memset( &TMP$2229$4, 0, 24ll );
				FBSTRING* vr$455 = fb_StrConcat( &TMP$2229$4, (void*)"cvtsd2ss xmm0, ", 16ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$2230$4, -1ll, (void*)vr$455, -1ll, 0 );
				HWRITEASM64( &TMP$2230$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2230$4 );
				__builtin_memset( &TMP$2233$4, 0, 24ll );
				__builtin_memset( &TMP$2231$4, 0, 24ll );
				FBSTRING* vr$463 = fb_StrConcat( &TMP$2231$4, (void*)"movd ", 6ll, (void*)&OP1$1, -1ll );
				__builtin_memset( &TMP$2232$4, 0, 24ll );
				FBSTRING* vr$466 = fb_StrConcat( &TMP$2232$4, (void*)vr$463, -1ll, (void*)", xmm0", 7ll );
				fb_StrAssign( (void*)&TMP$2233$4, -1ll, (void*)vr$466, -1ll, 0 );
				HWRITEASM64( &TMP$2233$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2233$4 );
			}
			label$1798:;
		}
		goto label$1796;
		label$1797:;
		{
			FBSTRING TMP$2235$3;
			__builtin_memset( &TMP$2235$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2235$3, -1ll, (void*)"pxor xmm0,xmm0", 15ll, 0 );
			HWRITEASM64( &TMP$2235$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2235$3 );
			{
				if( V2DTYPE$1 != 14ll ) goto label$1805;
				label$1806:;
				{
					if( V1DTYPE$1 != 16ll ) goto label$1808;
					{
						FBSTRING TMP$2236$6;
						FBSTRING TMP$2237$6;
						FBSTRING TMP$2239$6;
						FBSTRING TMP$2241$6;
						FBSTRING TMP$2242$6;
						FBSTRING TMP$2244$6;
						FBSTRING TMP$2245$6;
						FBSTRING TMP$2246$6;
						FBSTRING TMP$2247$6;
						FBSTRING TMP$2248$6;
						FBSTRING TMP$2249$6;
						FBSTRING TMP$2250$6;
						FBSTRING TMP$2251$6;
						FBSTRING TMP$2252$6;
						FBSTRING TMP$2253$6;
						FBSTRING TMP$2255$6;
						FBSTRING TMP$2256$6;
						FBSTRING TMP$2257$6;
						FBSTRING TMP$2258$6;
						FBSTRING TMP$2260$6;
						FBSTRING TMP$2261$6;
						FBSTRING TMP$2263$6;
						FBSTRING TMP$2264$6;
						FBSTRING TMP$2265$6;
						FBSTRING TMP$2266$6;
						FBSTRING TMP$2267$6;
						FBSTRING TMP$2268$6;
						__builtin_memset( &TMP$2237$6, 0, 24ll );
						__builtin_memset( &TMP$2236$6, 0, 24ll );
						FBSTRING* vr$478 = fb_StrConcat( &TMP$2236$6, (void*)"mov rax, ", 10ll, (void*)&OP2$1, -1ll );
						fb_StrAssign( (void*)&TMP$2237$6, -1ll, (void*)vr$478, -1ll, 0 );
						HWRITEASM64( &TMP$2237$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2237$6 );
						__builtin_memset( &TMP$2239$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$2239$6, -1ll, (void*)"test  rax, rax", 15ll, 0 );
						HWRITEASM64( &TMP$2239$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2239$6 );
						char* vr$486 = SYMBUNIQUELABEL(  );
						fb_StrAssign( (void*)&LNAME1$1, -1ll, (void*)vr$486, 0ll, 0 );
						__builtin_memset( &TMP$2242$6, 0, 24ll );
						__builtin_memset( &TMP$2241$6, 0, 24ll );
						FBSTRING* vr$492 = fb_StrConcat( &TMP$2241$6, (void*)"js ", 4ll, (void*)&LNAME1$1, -1ll );
						fb_StrAssign( (void*)&TMP$2242$6, -1ll, (void*)vr$492, -1ll, 0 );
						HWRITEASM64( &TMP$2242$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2242$6 );
						__builtin_memset( &TMP$2244$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$2244$6, -1ll, (void*)"cvtsi2sd xmm0, rax", 19ll, 0 );
						HWRITEASM64( &TMP$2244$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2244$6 );
						char* vr$500 = SYMBUNIQUELABEL(  );
						fb_StrAssign( (void*)&LNAME2$1, -1ll, (void*)vr$500, 0ll, 0 );
						__builtin_memset( &TMP$2246$6, 0, 24ll );
						__builtin_memset( &TMP$2245$6, 0, 24ll );
						FBSTRING* vr$506 = fb_StrConcat( &TMP$2245$6, (void*)"jmp ", 5ll, (void*)&LNAME2$1, -1ll );
						fb_StrAssign( (void*)&TMP$2246$6, -1ll, (void*)vr$506, -1ll, 0 );
						HWRITEASM64( &TMP$2246$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2246$6 );
						__builtin_memset( &TMP$2248$6, 0, 24ll );
						__builtin_memset( &TMP$2247$6, 0, 24ll );
						FBSTRING* vr$514 = fb_StrConcat( &TMP$2247$6, (void*)&LNAME1$1, -1ll, (void*)":", 2ll );
						fb_StrAssign( (void*)&TMP$2248$6, -1ll, (void*)vr$514, -1ll, 0 );
						HWRITEASM64( &TMP$2248$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2248$6 );
						int32 vr$518 = REG_FINDFREE( 999999, -1ll );
						REG$1 = vr$518;
						fb_StrAssign( (void*)&REGTEMPO$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)REG$1 << (3ll & 63ll))), 0ll, 0 );
						*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)REG$1 << (2ll & 63ll))) = -2;
						__builtin_memset( &TMP$2251$6, 0, 24ll );
						__builtin_memset( &TMP$2249$6, 0, 24ll );
						FBSTRING* vr$528 = fb_StrConcat( &TMP$2249$6, (void*)"mov ", 5ll, (void*)&REGTEMPO$1, -1ll );
						__builtin_memset( &TMP$2250$6, 0, 24ll );
						FBSTRING* vr$531 = fb_StrConcat( &TMP$2250$6, (void*)vr$528, -1ll, (void*)", rax", 6ll );
						fb_StrAssign( (void*)&TMP$2251$6, -1ll, (void*)vr$531, -1ll, 0 );
						HWRITEASM64( &TMP$2251$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2251$6 );
						__builtin_memset( &TMP$2253$6, 0, 24ll );
						__builtin_memset( &TMP$2252$6, 0, 24ll );
						FBSTRING* vr$539 = fb_StrConcat( &TMP$2252$6, (void*)"shr ", 5ll, (void*)&REGTEMPO$1, -1ll );
						fb_StrAssign( (void*)&TMP$2253$6, -1ll, (void*)vr$539, -1ll, 0 );
						HWRITEASM64( &TMP$2253$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2253$6 );
						__builtin_memset( &TMP$2255$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$2255$6, -1ll, (void*)"and eax, 1", 11ll, 0 );
						HWRITEASM64( &TMP$2255$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2255$6 );
						__builtin_memset( &TMP$2258$6, 0, 24ll );
						__builtin_memset( &TMP$2256$6, 0, 24ll );
						FBSTRING* vr$551 = fb_StrConcat( &TMP$2256$6, (void*)"or ", 4ll, (void*)&REGTEMPO$1, -1ll );
						__builtin_memset( &TMP$2257$6, 0, 24ll );
						FBSTRING* vr$554 = fb_StrConcat( &TMP$2257$6, (void*)vr$551, -1ll, (void*)", rax", 6ll );
						fb_StrAssign( (void*)&TMP$2258$6, -1ll, (void*)vr$554, -1ll, 0 );
						HWRITEASM64( &TMP$2258$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2258$6 );
						__builtin_memset( &TMP$2261$6, 0, 24ll );
						__builtin_memset( &TMP$2260$6, 0, 24ll );
						FBSTRING* vr$562 = fb_StrConcat( &TMP$2260$6, (void*)"cvtsi2sd xmm0, ", 16ll, (void*)&REGTEMPO$1, -1ll );
						fb_StrAssign( (void*)&TMP$2261$6, -1ll, (void*)vr$562, -1ll, 0 );
						HWRITEASM64( &TMP$2261$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2261$6 );
						__builtin_memset( &TMP$2263$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$2263$6, -1ll, (void*)"addsd xmm0, xmm0", 17ll, 0 );
						HWRITEASM64( &TMP$2263$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2263$6 );
						__builtin_memset( &TMP$2265$6, 0, 24ll );
						__builtin_memset( &TMP$2264$6, 0, 24ll );
						FBSTRING* vr$574 = fb_StrConcat( &TMP$2264$6, (void*)&LNAME2$1, -1ll, (void*)":", 2ll );
						fb_StrAssign( (void*)&TMP$2265$6, -1ll, (void*)vr$574, -1ll, 0 );
						HWRITEASM64( &TMP$2265$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2265$6 );
						__builtin_memset( &TMP$2268$6, 0, 24ll );
						__builtin_memset( &TMP$2266$6, 0, 24ll );
						FBSTRING* vr$582 = fb_StrConcat( &TMP$2266$6, (void*)"movq ", 6ll, (void*)&OP1$1, -1ll );
						__builtin_memset( &TMP$2267$6, 0, 24ll );
						FBSTRING* vr$585 = fb_StrConcat( &TMP$2267$6, (void*)vr$582, -1ll, (void*)", xmm0", 7ll );
						fb_StrAssign( (void*)&TMP$2268$6, -1ll, (void*)vr$585, -1ll, 0 );
						HWRITEASM64( &TMP$2268$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2268$6 );
					}
					goto label$1807;
					label$1808:;
					{
						FBSTRING TMP$2269$6;
						FBSTRING TMP$2270$6;
						FBSTRING TMP$2272$6;
						FBSTRING TMP$2273$6;
						FBSTRING TMP$2274$6;
						FBSTRING TMP$2276$6;
						FBSTRING TMP$2277$6;
						FBSTRING TMP$2278$6;
						FBSTRING TMP$2279$6;
						FBSTRING TMP$2280$6;
						FBSTRING TMP$2281$6;
						FBSTRING TMP$2282$6;
						FBSTRING TMP$2283$6;
						FBSTRING TMP$2284$6;
						FBSTRING TMP$2285$6;
						FBSTRING TMP$2286$6;
						FBSTRING TMP$2287$6;
						FBSTRING TMP$2288$6;
						FBSTRING TMP$2289$6;
						FBSTRING TMP$2291$6;
						FBSTRING TMP$2292$6;
						FBSTRING TMP$2294$6;
						FBSTRING TMP$2295$6;
						FBSTRING TMP$2296$6;
						FBSTRING TMP$2297$6;
						FBSTRING TMP$2298$6;
						FBSTRING TMP$2299$6;
						__builtin_memset( &TMP$2270$6, 0, 24ll );
						__builtin_memset( &TMP$2269$6, 0, 24ll );
						FBSTRING* vr$593 = fb_StrConcat( &TMP$2269$6, (void*)"mov rax, ", 10ll, (void*)&OP2$1, -1ll );
						fb_StrAssign( (void*)&TMP$2270$6, -1ll, (void*)vr$593, -1ll, 0 );
						HWRITEASM64( &TMP$2270$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2270$6 );
						__builtin_memset( &TMP$2272$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$2272$6, -1ll, (void*)"test rax, rax", 14ll, 0 );
						HWRITEASM64( &TMP$2272$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2272$6 );
						char* vr$601 = SYMBUNIQUELABEL(  );
						fb_StrAssign( (void*)&LNAME1$1, -1ll, (void*)vr$601, 0ll, 0 );
						__builtin_memset( &TMP$2274$6, 0, 24ll );
						__builtin_memset( &TMP$2273$6, 0, 24ll );
						FBSTRING* vr$607 = fb_StrConcat( &TMP$2273$6, (void*)"js ", 4ll, (void*)&LNAME1$1, -1ll );
						fb_StrAssign( (void*)&TMP$2274$6, -1ll, (void*)vr$607, -1ll, 0 );
						HWRITEASM64( &TMP$2274$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2274$6 );
						__builtin_memset( &TMP$2276$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$2276$6, -1ll, (void*)"cvtsi2ss  xmm0, rax", 20ll, 0 );
						HWRITEASM64( &TMP$2276$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2276$6 );
						char* vr$615 = SYMBUNIQUELABEL(  );
						fb_StrAssign( (void*)&LNAME2$1, -1ll, (void*)vr$615, 0ll, 0 );
						__builtin_memset( &TMP$2278$6, 0, 24ll );
						__builtin_memset( &TMP$2277$6, 0, 24ll );
						FBSTRING* vr$621 = fb_StrConcat( &TMP$2277$6, (void*)"jmp ", 5ll, (void*)&LNAME2$1, -1ll );
						fb_StrAssign( (void*)&TMP$2278$6, -1ll, (void*)vr$621, -1ll, 0 );
						HWRITEASM64( &TMP$2278$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2278$6 );
						__builtin_memset( &TMP$2280$6, 0, 24ll );
						__builtin_memset( &TMP$2279$6, 0, 24ll );
						FBSTRING* vr$629 = fb_StrConcat( &TMP$2279$6, (void*)&LNAME1$1, -1ll, (void*)":", 2ll );
						fb_StrAssign( (void*)&TMP$2280$6, -1ll, (void*)vr$629, -1ll, 0 );
						HWRITEASM64( &TMP$2280$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2280$6 );
						int32 vr$633 = REG_FINDFREE( 999999, -1ll );
						REG$1 = vr$633;
						fb_StrAssign( (void*)&REGTEMPO$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)REG$1 << (3ll & 63ll))), 0ll, 0 );
						*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)REG$1 << (2ll & 63ll))) = -2;
						__builtin_memset( &TMP$2283$6, 0, 24ll );
						__builtin_memset( &TMP$2281$6, 0, 24ll );
						FBSTRING* vr$643 = fb_StrConcat( &TMP$2281$6, (void*)"mov ", 5ll, (void*)&REGTEMPO$1, -1ll );
						__builtin_memset( &TMP$2282$6, 0, 24ll );
						FBSTRING* vr$646 = fb_StrConcat( &TMP$2282$6, (void*)vr$643, -1ll, (void*)", rax", 6ll );
						fb_StrAssign( (void*)&TMP$2283$6, -1ll, (void*)vr$646, -1ll, 0 );
						HWRITEASM64( &TMP$2283$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2283$6 );
						__builtin_memset( &TMP$2285$6, 0, 24ll );
						__builtin_memset( &TMP$2284$6, 0, 24ll );
						FBSTRING* vr$654 = fb_StrConcat( &TMP$2284$6, (void*)"shr ", 5ll, (void*)&REGTEMPO$1, -1ll );
						fb_StrAssign( (void*)&TMP$2285$6, -1ll, (void*)vr$654, -1ll, 0 );
						HWRITEASM64( &TMP$2285$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2285$6 );
						__builtin_memset( &TMP$2286$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$2286$6, -1ll, (void*)"and eax, 1", 11ll, 0 );
						HWRITEASM64( &TMP$2286$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2286$6 );
						__builtin_memset( &TMP$2289$6, 0, 24ll );
						__builtin_memset( &TMP$2287$6, 0, 24ll );
						FBSTRING* vr$666 = fb_StrConcat( &TMP$2287$6, (void*)"or ", 4ll, (void*)&REGTEMPO$1, -1ll );
						__builtin_memset( &TMP$2288$6, 0, 24ll );
						FBSTRING* vr$669 = fb_StrConcat( &TMP$2288$6, (void*)vr$666, -1ll, (void*)", rax", 6ll );
						fb_StrAssign( (void*)&TMP$2289$6, -1ll, (void*)vr$669, -1ll, 0 );
						HWRITEASM64( &TMP$2289$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2289$6 );
						__builtin_memset( &TMP$2292$6, 0, 24ll );
						__builtin_memset( &TMP$2291$6, 0, 24ll );
						FBSTRING* vr$677 = fb_StrConcat( &TMP$2291$6, (void*)"cvtsi2ss xmm0, ", 16ll, (void*)&REGTEMPO$1, -1ll );
						fb_StrAssign( (void*)&TMP$2292$6, -1ll, (void*)vr$677, -1ll, 0 );
						HWRITEASM64( &TMP$2292$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2292$6 );
						__builtin_memset( &TMP$2294$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$2294$6, -1ll, (void*)"addss xmm0, xmm0", 17ll, 0 );
						HWRITEASM64( &TMP$2294$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2294$6 );
						__builtin_memset( &TMP$2296$6, 0, 24ll );
						__builtin_memset( &TMP$2295$6, 0, 24ll );
						FBSTRING* vr$689 = fb_StrConcat( &TMP$2295$6, (void*)&LNAME2$1, -1ll, (void*)":", 2ll );
						fb_StrAssign( (void*)&TMP$2296$6, -1ll, (void*)vr$689, -1ll, 0 );
						HWRITEASM64( &TMP$2296$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2296$6 );
						__builtin_memset( &TMP$2299$6, 0, 24ll );
						__builtin_memset( &TMP$2297$6, 0, 24ll );
						FBSTRING* vr$697 = fb_StrConcat( &TMP$2297$6, (void*)"movd ", 6ll, (void*)&OP1$1, -1ll );
						__builtin_memset( &TMP$2298$6, 0, 24ll );
						FBSTRING* vr$700 = fb_StrConcat( &TMP$2298$6, (void*)vr$697, -1ll, (void*)", xmm0", 7ll );
						fb_StrAssign( (void*)&TMP$2299$6, -1ll, (void*)vr$700, -1ll, 0 );
						HWRITEASM64( &TMP$2299$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2299$6 );
					}
					label$1807:;
				}
				goto label$1804;
				label$1805:;
				if( V2DTYPE$1 != 13ll ) goto label$1809;
				label$1810:;
				{
					if( V1DTYPE$1 != 16ll ) goto label$1812;
					{
						FBSTRING TMP$2300$6;
						FBSTRING TMP$2301$6;
						FBSTRING TMP$2302$6;
						FBSTRING TMP$2303$6;
						FBSTRING TMP$2304$6;
						FBSTRING TMP$2305$6;
						__builtin_memset( &TMP$2302$6, 0, 24ll );
						__builtin_memset( &TMP$2300$6, 0, 24ll );
						FBSTRING* vr$709 = fb_StrConcat( &TMP$2300$6, (void*)"cvtsi2sd xmm0, ", 16ll, (void*)&PREFIX2$1, -1ll );
						__builtin_memset( &TMP$2301$6, 0, 24ll );
						FBSTRING* vr$712 = fb_StrConcat( &TMP$2301$6, (void*)vr$709, -1ll, (void*)&OP2$1, -1ll );
						fb_StrAssign( (void*)&TMP$2302$6, -1ll, (void*)vr$712, -1ll, 0 );
						HWRITEASM64( &TMP$2302$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2302$6 );
						__builtin_memset( &TMP$2305$6, 0, 24ll );
						__builtin_memset( &TMP$2303$6, 0, 24ll );
						FBSTRING* vr$720 = fb_StrConcat( &TMP$2303$6, (void*)"movq ", 6ll, (void*)&OP1$1, -1ll );
						__builtin_memset( &TMP$2304$6, 0, 24ll );
						FBSTRING* vr$723 = fb_StrConcat( &TMP$2304$6, (void*)vr$720, -1ll, (void*)", xmm0", 7ll );
						fb_StrAssign( (void*)&TMP$2305$6, -1ll, (void*)vr$723, -1ll, 0 );
						HWRITEASM64( &TMP$2305$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2305$6 );
					}
					goto label$1811;
					label$1812:;
					{
						FBSTRING TMP$2306$6;
						FBSTRING TMP$2307$6;
						FBSTRING TMP$2308$6;
						FBSTRING TMP$2309$6;
						FBSTRING TMP$2310$6;
						FBSTRING TMP$2311$6;
						__builtin_memset( &TMP$2308$6, 0, 24ll );
						__builtin_memset( &TMP$2306$6, 0, 24ll );
						FBSTRING* vr$732 = fb_StrConcat( &TMP$2306$6, (void*)"cvtsi2ss xmm0, ", 16ll, (void*)&PREFIX2$1, -1ll );
						__builtin_memset( &TMP$2307$6, 0, 24ll );
						FBSTRING* vr$735 = fb_StrConcat( &TMP$2307$6, (void*)vr$732, -1ll, (void*)&OP2$1, -1ll );
						fb_StrAssign( (void*)&TMP$2308$6, -1ll, (void*)vr$735, -1ll, 0 );
						HWRITEASM64( &TMP$2308$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2308$6 );
						__builtin_memset( &TMP$2311$6, 0, 24ll );
						__builtin_memset( &TMP$2309$6, 0, 24ll );
						FBSTRING* vr$743 = fb_StrConcat( &TMP$2309$6, (void*)"movd ", 6ll, (void*)&OP1$1, -1ll );
						__builtin_memset( &TMP$2310$6, 0, 24ll );
						FBSTRING* vr$746 = fb_StrConcat( &TMP$2310$6, (void*)vr$743, -1ll, (void*)", xmm0", 7ll );
						fb_StrAssign( (void*)&TMP$2311$6, -1ll, (void*)vr$746, -1ll, 0 );
						HWRITEASM64( &TMP$2311$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2311$6 );
					}
					label$1811:;
				}
				goto label$1804;
				label$1809:;
				if( V2DTYPE$1 == 11ll ) goto label$1814;
				label$1815:;
				if( V2DTYPE$1 != 12ll ) goto label$1813;
				label$1814:;
				{
					if( V1DTYPE$1 != 16ll ) goto label$1817;
					{
						FBSTRING TMP$2312$6;
						FBSTRING TMP$2313$6;
						FBSTRING TMP$2314$6;
						FBSTRING TMP$2315$6;
						FBSTRING TMP$2316$6;
						FBSTRING TMP$2317$6;
						__builtin_memset( &TMP$2314$6, 0, 24ll );
						__builtin_memset( &TMP$2312$6, 0, 24ll );
						FBSTRING* vr$755 = fb_StrConcat( &TMP$2312$6, (void*)"cvtsi2sd xmm0, ", 16ll, (void*)&PREFIX2$1, -1ll );
						__builtin_memset( &TMP$2313$6, 0, 24ll );
						FBSTRING* vr$758 = fb_StrConcat( &TMP$2313$6, (void*)vr$755, -1ll, (void*)&OP2$1, -1ll );
						fb_StrAssign( (void*)&TMP$2314$6, -1ll, (void*)vr$758, -1ll, 0 );
						HWRITEASM64( &TMP$2314$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2314$6 );
						__builtin_memset( &TMP$2317$6, 0, 24ll );
						__builtin_memset( &TMP$2315$6, 0, 24ll );
						FBSTRING* vr$766 = fb_StrConcat( &TMP$2315$6, (void*)"movq ", 6ll, (void*)&OP1$1, -1ll );
						__builtin_memset( &TMP$2316$6, 0, 24ll );
						FBSTRING* vr$769 = fb_StrConcat( &TMP$2316$6, (void*)vr$766, -1ll, (void*)", xmm0", 7ll );
						fb_StrAssign( (void*)&TMP$2317$6, -1ll, (void*)vr$769, -1ll, 0 );
						HWRITEASM64( &TMP$2317$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2317$6 );
					}
					goto label$1816;
					label$1817:;
					{
						FBSTRING TMP$2318$6;
						FBSTRING TMP$2319$6;
						FBSTRING TMP$2320$6;
						FBSTRING TMP$2321$6;
						FBSTRING TMP$2322$6;
						FBSTRING TMP$2323$6;
						__builtin_memset( &TMP$2320$6, 0, 24ll );
						__builtin_memset( &TMP$2318$6, 0, 24ll );
						FBSTRING* vr$778 = fb_StrConcat( &TMP$2318$6, (void*)"cvtsi2ss xmm0, ", 16ll, (void*)&PREFIX2$1, -1ll );
						__builtin_memset( &TMP$2319$6, 0, 24ll );
						FBSTRING* vr$781 = fb_StrConcat( &TMP$2319$6, (void*)vr$778, -1ll, (void*)&OP2$1, -1ll );
						fb_StrAssign( (void*)&TMP$2320$6, -1ll, (void*)vr$781, -1ll, 0 );
						HWRITEASM64( &TMP$2320$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2320$6 );
						__builtin_memset( &TMP$2323$6, 0, 24ll );
						__builtin_memset( &TMP$2321$6, 0, 24ll );
						FBSTRING* vr$789 = fb_StrConcat( &TMP$2321$6, (void*)"movd ", 6ll, (void*)&OP1$1, -1ll );
						__builtin_memset( &TMP$2322$6, 0, 24ll );
						FBSTRING* vr$792 = fb_StrConcat( &TMP$2322$6, (void*)vr$789, -1ll, (void*)", xmm0", 7ll );
						fb_StrAssign( (void*)&TMP$2323$6, -1ll, (void*)vr$792, -1ll, 0 );
						HWRITEASM64( &TMP$2323$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2323$6 );
					}
					label$1816:;
				}
				goto label$1804;
				label$1813:;
				if( V2DTYPE$1 == 2ll ) goto label$1819;
				label$1820:;
				if( V2DTYPE$1 == 5ll ) goto label$1819;
				label$1821:;
				if( V2DTYPE$1 == 3ll ) goto label$1819;
				label$1822:;
				if( V2DTYPE$1 == 6ll ) goto label$1819;
				label$1823:;
				if( V2DTYPE$1 == 1ll ) goto label$1819;
				label$1824:;
				if( V2DTYPE$1 != 4ll ) goto label$1818;
				label$1819:;
				{
					if( ((int64)-(V2DTYPE$1 == 2ll) | (int64)-(V2DTYPE$1 == 5ll)) == 0ll ) goto label$1826;
					{
						FBSTRING TMP$2325$6;
						FBSTRING TMP$2326$6;
						FBSTRING TMP$2327$6;
						__builtin_memset( &TMP$2327$6, 0, 24ll );
						__builtin_memset( &TMP$2325$6, 0, 24ll );
						FBSTRING* vr$804 = fb_StrConcat( &TMP$2325$6, (void*)"movsx eax, ", 12ll, (void*)&PREFIX2$1, -1ll );
						__builtin_memset( &TMP$2326$6, 0, 24ll );
						FBSTRING* vr$807 = fb_StrConcat( &TMP$2326$6, (void*)vr$804, -1ll, (void*)&OP2$1, -1ll );
						fb_StrAssign( (void*)&TMP$2327$6, -1ll, (void*)vr$807, -1ll, 0 );
						HWRITEASM64( &TMP$2327$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2327$6 );
					}
					goto label$1825;
					label$1826:;
					if( V2DTYPE$1 != 1ll ) goto label$1827;
					{
						FBSTRING TMP$2328$6;
						FBSTRING TMP$2329$6;
						FBSTRING TMP$2330$6;
						FBSTRING TMP$2331$6;
						FBSTRING TMP$2333$6;
						FBSTRING TMP$2335$6;
						FBSTRING TMP$2337$6;
						__builtin_memset( &TMP$2331$6, 0, 24ll );
						__builtin_memset( &TMP$2328$6, 0, 24ll );
						FBSTRING* vr$816 = fb_StrConcat( &TMP$2328$6, (void*)"cmp ", 5ll, (void*)&PREFIX2$1, -1ll );
						__builtin_memset( &TMP$2329$6, 0, 24ll );
						FBSTRING* vr$819 = fb_StrConcat( &TMP$2329$6, (void*)vr$816, -1ll, (void*)&OP2$1, -1ll );
						__builtin_memset( &TMP$2330$6, 0, 24ll );
						FBSTRING* vr$822 = fb_StrConcat( &TMP$2330$6, (void*)vr$819, -1ll, (void*)", 0", 4ll );
						fb_StrAssign( (void*)&TMP$2331$6, -1ll, (void*)vr$822, -1ll, 0 );
						HWRITEASM64( &TMP$2331$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2331$6 );
						__builtin_memset( &TMP$2333$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$2333$6, -1ll, (void*)"setne al", 9ll, 0 );
						HWRITEASM64( &TMP$2333$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2333$6 );
						__builtin_memset( &TMP$2335$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$2335$6, -1ll, (void*)"neg al", 7ll, 0 );
						HWRITEASM64( &TMP$2335$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2335$6 );
						__builtin_memset( &TMP$2337$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$2337$6, -1ll, (void*)"movsx eax, al", 14ll, 0 );
						HWRITEASM64( &TMP$2337$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2337$6 );
					}
					goto label$1825;
					label$1827:;
					{
						FBSTRING TMP$2339$6;
						FBSTRING TMP$2340$6;
						FBSTRING TMP$2341$6;
						__builtin_memset( &TMP$2341$6, 0, 24ll );
						__builtin_memset( &TMP$2339$6, 0, 24ll );
						FBSTRING* vr$843 = fb_StrConcat( &TMP$2339$6, (void*)"movzx eax, ", 12ll, (void*)&PREFIX2$1, -1ll );
						__builtin_memset( &TMP$2340$6, 0, 24ll );
						FBSTRING* vr$846 = fb_StrConcat( &TMP$2340$6, (void*)vr$843, -1ll, (void*)&OP2$1, -1ll );
						fb_StrAssign( (void*)&TMP$2341$6, -1ll, (void*)vr$846, -1ll, 0 );
						HWRITEASM64( &TMP$2341$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2341$6 );
					}
					label$1825:;
					if( V1DTYPE$1 != 16ll ) goto label$1829;
					{
						FBSTRING TMP$2343$6;
						FBSTRING TMP$2344$6;
						FBSTRING TMP$2345$6;
						FBSTRING TMP$2346$6;
						__builtin_memset( &TMP$2343$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$2343$6, -1ll, (void*)"cvtsi2sd xmm0, eax", 19ll, 0 );
						HWRITEASM64( &TMP$2343$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2343$6 );
						__builtin_memset( &TMP$2346$6, 0, 24ll );
						__builtin_memset( &TMP$2344$6, 0, 24ll );
						FBSTRING* vr$858 = fb_StrConcat( &TMP$2344$6, (void*)"movq ", 6ll, (void*)&OP1$1, -1ll );
						__builtin_memset( &TMP$2345$6, 0, 24ll );
						FBSTRING* vr$861 = fb_StrConcat( &TMP$2345$6, (void*)vr$858, -1ll, (void*)", xmm0", 7ll );
						fb_StrAssign( (void*)&TMP$2346$6, -1ll, (void*)vr$861, -1ll, 0 );
						HWRITEASM64( &TMP$2346$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2346$6 );
					}
					goto label$1828;
					label$1829:;
					{
						FBSTRING TMP$2348$6;
						FBSTRING TMP$2349$6;
						FBSTRING TMP$2350$6;
						FBSTRING TMP$2351$6;
						__builtin_memset( &TMP$2348$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$2348$6, -1ll, (void*)"cvtsi2ss xmm0, eax", 19ll, 0 );
						HWRITEASM64( &TMP$2348$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2348$6 );
						__builtin_memset( &TMP$2351$6, 0, 24ll );
						__builtin_memset( &TMP$2349$6, 0, 24ll );
						FBSTRING* vr$873 = fb_StrConcat( &TMP$2349$6, (void*)"movd ", 6ll, (void*)&OP1$1, -1ll );
						__builtin_memset( &TMP$2350$6, 0, 24ll );
						FBSTRING* vr$876 = fb_StrConcat( &TMP$2350$6, (void*)vr$873, -1ll, (void*)", xmm0", 7ll );
						fb_StrAssign( (void*)&TMP$2351$6, -1ll, (void*)vr$876, -1ll, 0 );
						HWRITEASM64( &TMP$2351$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2351$6 );
					}
					label$1828:;
				}
				goto label$1804;
				label$1818:;
				{
					FBSTRING TMP$2352$5;
					FBSTRING TMP$2355$5;
					FBSTRING TMP$2356$5;
					__builtin_memset( &TMP$2352$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$2352$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$2352$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2352$5 );
					__builtin_memset( &TMP$2355$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$2355$5, -1ll, (void*)"FOUND AN ERROR : Converting datatype not handled 04", 52ll, 0 );
					HWRITEASM64( &TMP$2355$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2355$5 );
					__builtin_memset( &TMP$2356$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$2356$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$2356$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2356$5 );
				}
				label$1830:;
				label$1804:;
			}
		}
		label$1796:;
		fb_StrDelete( (FBSTRING*)&PREFIX2$1 );
		fb_StrDelete( (FBSTRING*)&PREFIX1$1 );
		fb_StrDelete( (FBSTRING*)&OP4$1 );
		fb_StrDelete( (FBSTRING*)&OP3$1 );
		fb_StrDelete( (FBSTRING*)&OP2$1 );
		fb_StrDelete( (FBSTRING*)&OP1$1 );
		fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
		fb_StrDelete( (FBSTRING*)&LNAME2$1 );
		fb_StrDelete( (FBSTRING*)&LNAME1$1 );
		goto label$1668;
	}
	label$1794:;
	label$1793:;
	if( (V2DTYPE$1 & 480ll) == 0ll ) goto label$1831;
	TMP$2357$1 = 24ll;
	goto label$3117;
	label$1831:;
	TMP$2357$1 = V2DTYPE$1 & 31ll;
	label$3117:;
	if( (V1DTYPE$1 & 480ll) == 0ll ) goto label$1832;
	TMP$2358$1 = 24ll;
	goto label$3118;
	label$1832:;
	TMP$2358$1 = V1DTYPE$1 & 31ll;
	label$3118:;
	if( ((int64)-(*(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$2357$1 * 56ll)) == 1ll) & (int64)-(*(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$2358$1 * 56ll)) == 0ll)) == 0ll ) goto label$1834;
	{
		if( V2DTYPE$1 != 16ll ) goto label$1836;
		{
			if( V1DTYPE$1 != 14ll ) goto label$1838;
			{
				FBSTRING TMP$2360$4;
				FBSTRING TMP$2362$4;
				FBSTRING TMP$2363$4;
				FBSTRING TMP$2364$4;
				FBSTRING TMP$2366$4;
				FBSTRING TMP$2368$4;
				FBSTRING TMP$2370$4;
				FBSTRING TMP$2371$4;
				FBSTRING TMP$2372$4;
				FBSTRING TMP$2373$4;
				FBSTRING TMP$2374$4;
				FBSTRING TMP$2375$4;
				FBSTRING TMP$2376$4;
				FBSTRING TMP$2378$4;
				FBSTRING TMP$2380$4;
				FBSTRING TMP$2381$4;
				FBSTRING TMP$2384$4;
				FBSTRING TMP$2385$4;
				FBSTRING TMP$2386$4;
				FBSTRING TMP$2388$4;
				FBSTRING TMP$2389$4;
				FBSTRING TMP$2390$4;
				FBSTRING TMP$2391$4;
				FBSTRING TMP$2392$4;
				FBSTRING TMP$2393$4;
				FBSTRING TMP$2394$4;
				__builtin_memset( &TMP$2360$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2360$4, -1ll, (void*)"mov rax, 4890909195324358656", 29ll, 0 );
				HWRITEASM64( &TMP$2360$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2360$4 );
				__builtin_memset( &TMP$2362$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2362$4, -1ll, (void*)"movq xmm2, rax", 15ll, 0 );
				HWRITEASM64( &TMP$2362$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2362$4 );
				__builtin_memset( &TMP$2364$4, 0, 24ll );
				__builtin_memset( &TMP$2363$4, 0, 24ll );
				FBSTRING* vr$922 = fb_StrConcat( &TMP$2363$4, (void*)"mov rax, ", 10ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$2364$4, -1ll, (void*)vr$922, -1ll, 0 );
				HWRITEASM64( &TMP$2364$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2364$4 );
				__builtin_memset( &TMP$2366$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2366$4, -1ll, (void*)"movq xmm0, rax", 15ll, 0 );
				HWRITEASM64( &TMP$2366$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2366$4 );
				HEMITROUNDFLOAT( 16ll, 14ll );
				__builtin_memset( &TMP$2368$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2368$4, -1ll, (void*)"ucomisd xmm0, xmm2", 19ll, 0 );
				HWRITEASM64( &TMP$2368$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2368$4 );
				char* vr$934 = SYMBUNIQUELABEL(  );
				fb_StrAssign( (void*)&LNAME1$1, -1ll, (void*)vr$934, 0ll, 0 );
				__builtin_memset( &TMP$2371$4, 0, 24ll );
				__builtin_memset( &TMP$2370$4, 0, 24ll );
				FBSTRING* vr$940 = fb_StrConcat( &TMP$2370$4, (void*)"jnb ", 5ll, (void*)&LNAME1$1, -1ll );
				fb_StrAssign( (void*)&TMP$2371$4, -1ll, (void*)vr$940, -1ll, 0 );
				HWRITEASM64( &TMP$2371$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2371$4 );
				__builtin_memset( &TMP$2372$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2372$4, -1ll, (void*)"cvttsd2si rax, xmm0", 20ll, 0 );
				HWRITEASM64( &TMP$2372$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2372$4 );
				char* vr$948 = SYMBUNIQUELABEL(  );
				fb_StrAssign( (void*)&LNAME2$1, -1ll, (void*)vr$948, 0ll, 0 );
				__builtin_memset( &TMP$2374$4, 0, 24ll );
				__builtin_memset( &TMP$2373$4, 0, 24ll );
				FBSTRING* vr$954 = fb_StrConcat( &TMP$2373$4, (void*)"jmp ", 5ll, (void*)&LNAME2$1, -1ll );
				fb_StrAssign( (void*)&TMP$2374$4, -1ll, (void*)vr$954, -1ll, 0 );
				HWRITEASM64( &TMP$2374$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2374$4 );
				__builtin_memset( &TMP$2376$4, 0, 24ll );
				__builtin_memset( &TMP$2375$4, 0, 24ll );
				FBSTRING* vr$962 = fb_StrConcat( &TMP$2375$4, (void*)&LNAME1$1, -1ll, (void*)":", 2ll );
				fb_StrAssign( (void*)&TMP$2376$4, -1ll, (void*)vr$962, -1ll, 0 );
				HWRITEASM64( &TMP$2376$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2376$4 );
				__builtin_memset( &TMP$2378$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2378$4, -1ll, (void*)"movsd xmm1, xmm2", 17ll, 0 );
				HWRITEASM64( &TMP$2378$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2378$4 );
				__builtin_memset( &TMP$2380$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2380$4, -1ll, (void*)"subsd xmm0, xmm1", 17ll, 0 );
				HWRITEASM64( &TMP$2380$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2380$4 );
				__builtin_memset( &TMP$2381$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2381$4, -1ll, (void*)"cvttsd2si rax, xmm0", 20ll, 0 );
				HWRITEASM64( &TMP$2381$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2381$4 );
				int32 vr$978 = REG_FINDFREE( 999999, -1ll );
				REG$1 = vr$978;
				fb_StrAssign( (void*)&REGTEMPO$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)REG$1 << (3ll & 63ll))), 0ll, 0 );
				*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)REG$1 << (2ll & 63ll))) = -2;
				__builtin_memset( &TMP$2386$4, 0, 24ll );
				__builtin_memset( &TMP$2384$4, 0, 24ll );
				FBSTRING* vr$988 = fb_StrConcat( &TMP$2384$4, (void*)"movabs ", 8ll, (void*)&REGTEMPO$1, -1ll );
				__builtin_memset( &TMP$2385$4, 0, 24ll );
				FBSTRING* vr$991 = fb_StrConcat( &TMP$2385$4, (void*)vr$988, -1ll, (void*)", -9223372036854775808", 23ll );
				fb_StrAssign( (void*)&TMP$2386$4, -1ll, (void*)vr$991, -1ll, 0 );
				HWRITEASM64( &TMP$2386$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2386$4 );
				__builtin_memset( &TMP$2389$4, 0, 24ll );
				__builtin_memset( &TMP$2388$4, 0, 24ll );
				FBSTRING* vr$999 = fb_StrConcat( &TMP$2388$4, (void*)"xor rax,", 9ll, (void*)&REGTEMPO$1, -1ll );
				fb_StrAssign( (void*)&TMP$2389$4, -1ll, (void*)vr$999, -1ll, 0 );
				HWRITEASM64( &TMP$2389$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2389$4 );
				__builtin_memset( &TMP$2391$4, 0, 24ll );
				__builtin_memset( &TMP$2390$4, 0, 24ll );
				FBSTRING* vr$1007 = fb_StrConcat( &TMP$2390$4, (void*)&LNAME2$1, -1ll, (void*)":", 2ll );
				fb_StrAssign( (void*)&TMP$2391$4, -1ll, (void*)vr$1007, -1ll, 0 );
				HWRITEASM64( &TMP$2391$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2391$4 );
				__builtin_memset( &TMP$2394$4, 0, 24ll );
				__builtin_memset( &TMP$2392$4, 0, 24ll );
				FBSTRING* vr$1015 = fb_StrConcat( &TMP$2392$4, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
				__builtin_memset( &TMP$2393$4, 0, 24ll );
				FBSTRING* vr$1018 = fb_StrConcat( &TMP$2393$4, (void*)vr$1015, -1ll, (void*)", rax", 6ll );
				fb_StrAssign( (void*)&TMP$2394$4, -1ll, (void*)vr$1018, -1ll, 0 );
				HWRITEASM64( &TMP$2394$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2394$4 );
			}
			goto label$1837;
			label$1838:;
			if( (((((((((int64)-(V1DTYPE$1 == 13ll) | (int64)-(V1DTYPE$1 == 11ll)) | (int64)-(V1DTYPE$1 == 12ll)) | (int64)-(V1DTYPE$1 == 5ll)) | (int64)-(V1DTYPE$1 == 6ll)) | (int64)-(V1DTYPE$1 == 2ll)) | (int64)-(V1DTYPE$1 == 3ll)) | (int64)-(V1DTYPE$1 == 1ll)) | (int64)-(V1DTYPE$1 == 4ll)) == 0ll ) goto label$1839;
			{
				if( *(int64*)V2$1 != 4ll ) goto label$1841;
				{
					FBSTRING TMP$2395$5;
					FBSTRING TMP$2396$5;
					__builtin_memset( &TMP$2396$5, 0, 24ll );
					__builtin_memset( &TMP$2395$5, 0, 24ll );
					FBSTRING* vr$1044 = fb_StrConcat( &TMP$2395$5, (void*)"movq xmm0, ", 12ll, (void*)&OP2$1, -1ll );
					fb_StrAssign( (void*)&TMP$2396$5, -1ll, (void*)vr$1044, -1ll, 0 );
					HWRITEASM64( &TMP$2396$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2396$5 );
				}
				goto label$1840;
				label$1841:;
				{
					FBSTRING TMP$2397$5;
					FBSTRING TMP$2398$5;
					__builtin_memset( &TMP$2398$5, 0, 24ll );
					__builtin_memset( &TMP$2397$5, 0, 24ll );
					FBSTRING* vr$1052 = fb_StrConcat( &TMP$2397$5, (void*)"movsd xmm0, ", 13ll, (void*)&OP2$1, -1ll );
					fb_StrAssign( (void*)&TMP$2398$5, -1ll, (void*)vr$1052, -1ll, 0 );
					HWRITEASM64( &TMP$2398$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2398$5 );
				}
				label$1840:;
				HEMITROUNDFLOAT( 16ll, 2147483648ll );
				if( V1DTYPE$1 != 13ll ) goto label$1843;
				{
					FBSTRING TMP$2399$5;
					FBSTRING TMP$2400$5;
					FBSTRING TMP$2401$5;
					__builtin_memset( &TMP$2401$5, 0, 24ll );
					__builtin_memset( &TMP$2399$5, 0, 24ll );
					FBSTRING* vr$1060 = fb_StrConcat( &TMP$2399$5, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
					__builtin_memset( &TMP$2400$5, 0, 24ll );
					FBSTRING* vr$1063 = fb_StrConcat( &TMP$2400$5, (void*)vr$1060, -1ll, (void*)", rax", 6ll );
					fb_StrAssign( (void*)&TMP$2401$5, -1ll, (void*)vr$1063, -1ll, 0 );
					HWRITEASM64( &TMP$2401$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2401$5 );
				}
				goto label$1842;
				label$1843:;
				if( ((int64)-(V1DTYPE$1 == 11ll) | (int64)-(V1DTYPE$1 == 12ll)) == 0ll ) goto label$1844;
				{
					FBSTRING TMP$2402$5;
					FBSTRING TMP$2403$5;
					FBSTRING TMP$2404$5;
					__builtin_memset( &TMP$2404$5, 0, 24ll );
					__builtin_memset( &TMP$2402$5, 0, 24ll );
					FBSTRING* vr$1074 = fb_StrConcat( &TMP$2402$5, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
					__builtin_memset( &TMP$2403$5, 0, 24ll );
					FBSTRING* vr$1077 = fb_StrConcat( &TMP$2403$5, (void*)vr$1074, -1ll, (void*)", eax", 6ll );
					fb_StrAssign( (void*)&TMP$2404$5, -1ll, (void*)vr$1077, -1ll, 0 );
					HWRITEASM64( &TMP$2404$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2404$5 );
				}
				goto label$1842;
				label$1844:;
				if( ((int64)-(V1DTYPE$1 == 5ll) | (int64)-(V1DTYPE$1 == 6ll)) == 0ll ) goto label$1845;
				{
					FBSTRING TMP$2406$5;
					FBSTRING TMP$2407$5;
					FBSTRING TMP$2408$5;
					__builtin_memset( &TMP$2408$5, 0, 24ll );
					__builtin_memset( &TMP$2406$5, 0, 24ll );
					FBSTRING* vr$1088 = fb_StrConcat( &TMP$2406$5, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
					__builtin_memset( &TMP$2407$5, 0, 24ll );
					FBSTRING* vr$1091 = fb_StrConcat( &TMP$2407$5, (void*)vr$1088, -1ll, (void*)", ax", 5ll );
					fb_StrAssign( (void*)&TMP$2408$5, -1ll, (void*)vr$1091, -1ll, 0 );
					HWRITEASM64( &TMP$2408$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2408$5 );
				}
				goto label$1842;
				label$1845:;
				{
					FBSTRING TMP$2411$5;
					FBSTRING TMP$2412$5;
					FBSTRING TMP$2413$5;
					if( V1DTYPE$1 != 1ll ) goto label$1847;
					{
						FBSTRING TMP$2409$6;
						FBSTRING TMP$2410$6;
						__builtin_memset( &TMP$2409$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$2409$6, -1ll, (void*)"cmp rax, 0", 11ll, 0 );
						HWRITEASM64( &TMP$2409$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2409$6 );
						__builtin_memset( &TMP$2410$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$2410$6, -1ll, (void*)"setne al", 9ll, 0 );
						HWRITEASM64( &TMP$2410$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2410$6 );
					}
					label$1847:;
					label$1846:;
					__builtin_memset( &TMP$2413$5, 0, 24ll );
					__builtin_memset( &TMP$2411$5, 0, 24ll );
					FBSTRING* vr$1107 = fb_StrConcat( &TMP$2411$5, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
					__builtin_memset( &TMP$2412$5, 0, 24ll );
					FBSTRING* vr$1110 = fb_StrConcat( &TMP$2412$5, (void*)vr$1107, -1ll, (void*)", al", 5ll );
					fb_StrAssign( (void*)&TMP$2413$5, -1ll, (void*)vr$1110, -1ll, 0 );
					HWRITEASM64( &TMP$2413$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2413$5 );
				}
				label$1842:;
			}
			goto label$1837;
			label$1839:;
			{
				FBSTRING TMP$2414$4;
				FBSTRING TMP$2417$4;
				FBSTRING TMP$2418$4;
				__builtin_memset( &TMP$2414$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2414$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$2414$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2414$4 );
				__builtin_memset( &TMP$2417$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2417$4, -1ll, (void*)"FOUND AN ERROR : Converting float to int 01", 44ll, 0 );
				HWRITEASM64( &TMP$2417$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2417$4 );
				__builtin_memset( &TMP$2418$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2418$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$2418$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2418$4 );
			}
			label$1837:;
		}
		goto label$1835;
		label$1836:;
		{
			if( V1DTYPE$1 != 14ll ) goto label$1849;
			{
				FBSTRING TMP$2420$4;
				FBSTRING TMP$2421$4;
				FBSTRING TMP$2422$4;
				FBSTRING TMP$2423$4;
				FBSTRING TMP$2425$4;
				FBSTRING TMP$2427$4;
				FBSTRING TMP$2428$4;
				FBSTRING TMP$2429$4;
				FBSTRING TMP$2430$4;
				FBSTRING TMP$2431$4;
				FBSTRING TMP$2432$4;
				FBSTRING TMP$2433$4;
				FBSTRING TMP$2434$4;
				FBSTRING TMP$2436$4;
				FBSTRING TMP$2438$4;
				FBSTRING TMP$2439$4;
				FBSTRING TMP$2440$4;
				FBSTRING TMP$2441$4;
				FBSTRING TMP$2442$4;
				FBSTRING TMP$2443$4;
				FBSTRING TMP$2444$4;
				FBSTRING TMP$2445$4;
				FBSTRING TMP$2446$4;
				FBSTRING TMP$2447$4;
				FBSTRING TMP$2448$4;
				FBSTRING TMP$2449$4;
				__builtin_memset( &TMP$2420$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2420$4, -1ll, (void*)"mov rax, 1593835520", 20ll, 0 );
				HWRITEASM64( &TMP$2420$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2420$4 );
				__builtin_memset( &TMP$2421$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2421$4, -1ll, (void*)"movq xmm2, rax", 15ll, 0 );
				HWRITEASM64( &TMP$2421$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2421$4 );
				__builtin_memset( &TMP$2423$4, 0, 24ll );
				__builtin_memset( &TMP$2422$4, 0, 24ll );
				FBSTRING* vr$1138 = fb_StrConcat( &TMP$2422$4, (void*)"mov eax, ", 10ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$2423$4, -1ll, (void*)vr$1138, -1ll, 0 );
				HWRITEASM64( &TMP$2423$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2423$4 );
				__builtin_memset( &TMP$2425$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2425$4, -1ll, (void*)"movd xmm0, eax", 15ll, 0 );
				HWRITEASM64( &TMP$2425$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2425$4 );
				HEMITROUNDFLOAT( 15ll, 14ll );
				__builtin_memset( &TMP$2427$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2427$4, -1ll, (void*)"ucomiss xmm0, xmm2", 19ll, 0 );
				HWRITEASM64( &TMP$2427$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2427$4 );
				char* vr$1150 = SYMBUNIQUELABEL(  );
				fb_StrAssign( (void*)&LNAME1$1, -1ll, (void*)vr$1150, 0ll, 0 );
				__builtin_memset( &TMP$2429$4, 0, 24ll );
				__builtin_memset( &TMP$2428$4, 0, 24ll );
				FBSTRING* vr$1156 = fb_StrConcat( &TMP$2428$4, (void*)"jnb ", 5ll, (void*)&LNAME1$1, -1ll );
				fb_StrAssign( (void*)&TMP$2429$4, -1ll, (void*)vr$1156, -1ll, 0 );
				HWRITEASM64( &TMP$2429$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2429$4 );
				__builtin_memset( &TMP$2430$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2430$4, -1ll, (void*)"cvttss2si rax, xmm0", 20ll, 0 );
				HWRITEASM64( &TMP$2430$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2430$4 );
				char* vr$1164 = SYMBUNIQUELABEL(  );
				fb_StrAssign( (void*)&LNAME2$1, -1ll, (void*)vr$1164, 0ll, 0 );
				__builtin_memset( &TMP$2432$4, 0, 24ll );
				__builtin_memset( &TMP$2431$4, 0, 24ll );
				FBSTRING* vr$1170 = fb_StrConcat( &TMP$2431$4, (void*)"jmp ", 5ll, (void*)&LNAME2$1, -1ll );
				fb_StrAssign( (void*)&TMP$2432$4, -1ll, (void*)vr$1170, -1ll, 0 );
				HWRITEASM64( &TMP$2432$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2432$4 );
				__builtin_memset( &TMP$2434$4, 0, 24ll );
				__builtin_memset( &TMP$2433$4, 0, 24ll );
				FBSTRING* vr$1178 = fb_StrConcat( &TMP$2433$4, (void*)&LNAME1$1, -1ll, (void*)":", 2ll );
				fb_StrAssign( (void*)&TMP$2434$4, -1ll, (void*)vr$1178, -1ll, 0 );
				HWRITEASM64( &TMP$2434$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2434$4 );
				__builtin_memset( &TMP$2436$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2436$4, -1ll, (void*)"movss xmm1, xmm2", 17ll, 0 );
				HWRITEASM64( &TMP$2436$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2436$4 );
				__builtin_memset( &TMP$2438$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2438$4, -1ll, (void*)"subss xmm0, xmm1", 17ll, 0 );
				HWRITEASM64( &TMP$2438$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2438$4 );
				__builtin_memset( &TMP$2439$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2439$4, -1ll, (void*)"cvttss2si rax, xmm0", 20ll, 0 );
				HWRITEASM64( &TMP$2439$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2439$4 );
				int32 vr$1194 = REG_FINDFREE( 999999, -1ll );
				REG$1 = vr$1194;
				fb_StrAssign( (void*)&REGTEMPO$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)REG$1 << (3ll & 63ll))), 0ll, 0 );
				*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)REG$1 << (2ll & 63ll))) = -2;
				__builtin_memset( &TMP$2442$4, 0, 24ll );
				__builtin_memset( &TMP$2440$4, 0, 24ll );
				FBSTRING* vr$1204 = fb_StrConcat( &TMP$2440$4, (void*)"movabs ", 8ll, (void*)&REGTEMPO$1, -1ll );
				__builtin_memset( &TMP$2441$4, 0, 24ll );
				FBSTRING* vr$1207 = fb_StrConcat( &TMP$2441$4, (void*)vr$1204, -1ll, (void*)", -9223372036854775808", 23ll );
				fb_StrAssign( (void*)&TMP$2442$4, -1ll, (void*)vr$1207, -1ll, 0 );
				HWRITEASM64( &TMP$2442$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2442$4 );
				__builtin_memset( &TMP$2444$4, 0, 24ll );
				__builtin_memset( &TMP$2443$4, 0, 24ll );
				FBSTRING* vr$1215 = fb_StrConcat( &TMP$2443$4, (void*)"xor rax,", 9ll, (void*)&REGTEMPO$1, -1ll );
				fb_StrAssign( (void*)&TMP$2444$4, -1ll, (void*)vr$1215, -1ll, 0 );
				HWRITEASM64( &TMP$2444$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2444$4 );
				__builtin_memset( &TMP$2446$4, 0, 24ll );
				__builtin_memset( &TMP$2445$4, 0, 24ll );
				FBSTRING* vr$1223 = fb_StrConcat( &TMP$2445$4, (void*)&LNAME2$1, -1ll, (void*)":", 2ll );
				fb_StrAssign( (void*)&TMP$2446$4, -1ll, (void*)vr$1223, -1ll, 0 );
				HWRITEASM64( &TMP$2446$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2446$4 );
				__builtin_memset( &TMP$2449$4, 0, 24ll );
				__builtin_memset( &TMP$2447$4, 0, 24ll );
				FBSTRING* vr$1231 = fb_StrConcat( &TMP$2447$4, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
				__builtin_memset( &TMP$2448$4, 0, 24ll );
				FBSTRING* vr$1234 = fb_StrConcat( &TMP$2448$4, (void*)vr$1231, -1ll, (void*)", rax", 6ll );
				fb_StrAssign( (void*)&TMP$2449$4, -1ll, (void*)vr$1234, -1ll, 0 );
				HWRITEASM64( &TMP$2449$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2449$4 );
			}
			goto label$1848;
			label$1849:;
			if( (((((((((int64)-(V1DTYPE$1 == 13ll) | (int64)-(V1DTYPE$1 == 11ll)) | (int64)-(V1DTYPE$1 == 12ll)) | (int64)-(V1DTYPE$1 == 5ll)) | (int64)-(V1DTYPE$1 == 6ll)) | (int64)-(V1DTYPE$1 == 2ll)) | (int64)-(V1DTYPE$1 == 3ll)) | (int64)-(V1DTYPE$1 == 1ll)) | (int64)-(V1DTYPE$1 == 4ll)) == 0ll ) goto label$1850;
			{
				if( *(int64*)V2$1 != 4ll ) goto label$1852;
				{
					FBSTRING TMP$2450$5;
					FBSTRING TMP$2451$5;
					__builtin_memset( &TMP$2451$5, 0, 24ll );
					__builtin_memset( &TMP$2450$5, 0, 24ll );
					FBSTRING* vr$1260 = fb_StrConcat( &TMP$2450$5, (void*)"movd xmm0, ", 12ll, (void*)&OP2$1, -1ll );
					fb_StrAssign( (void*)&TMP$2451$5, -1ll, (void*)vr$1260, -1ll, 0 );
					HWRITEASM64( &TMP$2451$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2451$5 );
				}
				goto label$1851;
				label$1852:;
				{
					FBSTRING TMP$2452$5;
					FBSTRING TMP$2453$5;
					__builtin_memset( &TMP$2453$5, 0, 24ll );
					__builtin_memset( &TMP$2452$5, 0, 24ll );
					FBSTRING* vr$1268 = fb_StrConcat( &TMP$2452$5, (void*)"movss xmm0, ", 13ll, (void*)&OP2$1, -1ll );
					fb_StrAssign( (void*)&TMP$2453$5, -1ll, (void*)vr$1268, -1ll, 0 );
					HWRITEASM64( &TMP$2453$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2453$5 );
				}
				label$1851:;
				HEMITROUNDFLOAT( 15ll, 2147483648ll );
				if( V1DTYPE$1 != 13ll ) goto label$1854;
				{
					FBSTRING TMP$2454$5;
					FBSTRING TMP$2455$5;
					FBSTRING TMP$2456$5;
					__builtin_memset( &TMP$2456$5, 0, 24ll );
					__builtin_memset( &TMP$2454$5, 0, 24ll );
					FBSTRING* vr$1276 = fb_StrConcat( &TMP$2454$5, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
					__builtin_memset( &TMP$2455$5, 0, 24ll );
					FBSTRING* vr$1279 = fb_StrConcat( &TMP$2455$5, (void*)vr$1276, -1ll, (void*)", rax", 6ll );
					fb_StrAssign( (void*)&TMP$2456$5, -1ll, (void*)vr$1279, -1ll, 0 );
					HWRITEASM64( &TMP$2456$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2456$5 );
				}
				goto label$1853;
				label$1854:;
				if( ((int64)-(V1DTYPE$1 == 11ll) | (int64)-(V1DTYPE$1 == 12ll)) == 0ll ) goto label$1855;
				{
					FBSTRING TMP$2457$5;
					FBSTRING TMP$2458$5;
					FBSTRING TMP$2459$5;
					__builtin_memset( &TMP$2459$5, 0, 24ll );
					__builtin_memset( &TMP$2457$5, 0, 24ll );
					FBSTRING* vr$1290 = fb_StrConcat( &TMP$2457$5, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
					__builtin_memset( &TMP$2458$5, 0, 24ll );
					FBSTRING* vr$1293 = fb_StrConcat( &TMP$2458$5, (void*)vr$1290, -1ll, (void*)", eax", 6ll );
					fb_StrAssign( (void*)&TMP$2459$5, -1ll, (void*)vr$1293, -1ll, 0 );
					HWRITEASM64( &TMP$2459$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2459$5 );
				}
				goto label$1853;
				label$1855:;
				if( ((int64)-(V1DTYPE$1 == 5ll) | (int64)-(V1DTYPE$1 == 6ll)) == 0ll ) goto label$1856;
				{
					FBSTRING TMP$2460$5;
					FBSTRING TMP$2461$5;
					FBSTRING TMP$2462$5;
					__builtin_memset( &TMP$2462$5, 0, 24ll );
					__builtin_memset( &TMP$2460$5, 0, 24ll );
					FBSTRING* vr$1304 = fb_StrConcat( &TMP$2460$5, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
					__builtin_memset( &TMP$2461$5, 0, 24ll );
					FBSTRING* vr$1307 = fb_StrConcat( &TMP$2461$5, (void*)vr$1304, -1ll, (void*)", ax", 5ll );
					fb_StrAssign( (void*)&TMP$2462$5, -1ll, (void*)vr$1307, -1ll, 0 );
					HWRITEASM64( &TMP$2462$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2462$5 );
				}
				goto label$1853;
				label$1856:;
				{
					FBSTRING TMP$2465$5;
					FBSTRING TMP$2466$5;
					FBSTRING TMP$2467$5;
					if( V1DTYPE$1 != 1ll ) goto label$1858;
					{
						FBSTRING TMP$2463$6;
						FBSTRING TMP$2464$6;
						__builtin_memset( &TMP$2463$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$2463$6, -1ll, (void*)"cmp rax, 0", 11ll, 0 );
						HWRITEASM64( &TMP$2463$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2463$6 );
						__builtin_memset( &TMP$2464$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$2464$6, -1ll, (void*)"setne al", 9ll, 0 );
						HWRITEASM64( &TMP$2464$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2464$6 );
					}
					label$1858:;
					label$1857:;
					__builtin_memset( &TMP$2467$5, 0, 24ll );
					__builtin_memset( &TMP$2465$5, 0, 24ll );
					FBSTRING* vr$1323 = fb_StrConcat( &TMP$2465$5, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
					__builtin_memset( &TMP$2466$5, 0, 24ll );
					FBSTRING* vr$1326 = fb_StrConcat( &TMP$2466$5, (void*)vr$1323, -1ll, (void*)", al", 5ll );
					fb_StrAssign( (void*)&TMP$2467$5, -1ll, (void*)vr$1326, -1ll, 0 );
					HWRITEASM64( &TMP$2467$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2467$5 );
				}
				label$1853:;
			}
			goto label$1848;
			label$1850:;
			{
				FBSTRING TMP$2468$4;
				FBSTRING TMP$2471$4;
				FBSTRING TMP$2472$4;
				__builtin_memset( &TMP$2468$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2468$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$2468$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2468$4 );
				__builtin_memset( &TMP$2471$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2471$4, -1ll, (void*)"FOUND AN ERROR : Converting float to int 02", 44ll, 0 );
				HWRITEASM64( &TMP$2471$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2471$4 );
				__builtin_memset( &TMP$2472$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2472$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$2472$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2472$4 );
			}
			label$1848:;
		}
		label$1835:;
		fb_StrDelete( (FBSTRING*)&PREFIX2$1 );
		fb_StrDelete( (FBSTRING*)&PREFIX1$1 );
		fb_StrDelete( (FBSTRING*)&OP4$1 );
		fb_StrDelete( (FBSTRING*)&OP3$1 );
		fb_StrDelete( (FBSTRING*)&OP2$1 );
		fb_StrDelete( (FBSTRING*)&OP1$1 );
		fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
		fb_StrDelete( (FBSTRING*)&LNAME2$1 );
		fb_StrDelete( (FBSTRING*)&LNAME1$1 );
		goto label$1668;
	}
	label$1834:;
	label$1833:;
	if( ((int64)-(V1DTYPE$1 == 20ll) | (int64)-(V2DTYPE$1 == 20ll)) == 0ll ) goto label$1860;
	{
		if( V2DTYPE$1 != 20ll ) goto label$1862;
		{
			FBSTRING TMP$2473$3;
			FBSTRING TMP$2474$3;
			FBSTRING TMP$2475$3;
			FBSTRING TMP$2476$3;
			__builtin_memset( &TMP$2476$3, 0, 24ll );
			__builtin_memset( &TMP$2473$3, 0, 24ll );
			FBSTRING* vr$1359 = fb_StrConcat( &TMP$2473$3, (void*)"lea ", 5ll, (void*)&OP1$1, -1ll );
			__builtin_memset( &TMP$2474$3, 0, 24ll );
			FBSTRING* vr$1362 = fb_StrConcat( &TMP$2474$3, (void*)vr$1359, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$2475$3, 0, 24ll );
			FBSTRING* vr$1365 = fb_StrConcat( &TMP$2475$3, (void*)vr$1362, -1ll, (void*)&OP2$1, -1ll );
			fb_StrAssign( (void*)&TMP$2476$3, -1ll, (void*)vr$1365, -1ll, 0 );
			HWRITEASM64( &TMP$2476$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2476$3 );
			if( V1DTYPE$1 != 13ll ) goto label$1864;
			{
				FBSTRING TMP$2478$4;
				FBSTRING TMP$2479$4;
				FBSTRING TMP$2480$4;
				FBSTRING TMP$2481$4;
				FBSTRING TMP$2482$4;
				__builtin_memset( &TMP$2482$4, 0, 24ll );
				__builtin_memset( &TMP$2478$4, 0, 24ll );
				FBSTRING* vr$1374 = fb_StrConcat( &TMP$2478$4, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
				__builtin_memset( &TMP$2479$4, 0, 24ll );
				FBSTRING* vr$1377 = fb_StrConcat( &TMP$2479$4, (void*)vr$1374, -1ll, (void*)", QWORD PTR [", 14ll );
				__builtin_memset( &TMP$2480$4, 0, 24ll );
				FBSTRING* vr$1380 = fb_StrConcat( &TMP$2480$4, (void*)vr$1377, -1ll, (void*)&OP1$1, -1ll );
				__builtin_memset( &TMP$2481$4, 0, 24ll );
				FBSTRING* vr$1383 = fb_StrConcat( &TMP$2481$4, (void*)vr$1380, -1ll, (void*)"]", 2ll );
				fb_StrAssign( (void*)&TMP$2482$4, -1ll, (void*)vr$1383, -1ll, 0 );
				HWRITEASM64( &TMP$2482$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2482$4 );
			}
			goto label$1863;
			label$1864:;
			if( V1DTYPE$1 == 20ll ) goto label$1865;
			{
				FBSTRING TMP$2483$4;
				FBSTRING TMP$2486$4;
				FBSTRING TMP$2487$4;
				__builtin_memset( &TMP$2483$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2483$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$2483$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2483$4 );
				__builtin_memset( &TMP$2486$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2486$4, -1ll, (void*)"FOUND AN ERROR : Converting struct to datatype not handled 01", 62ll, 0 );
				HWRITEASM64( &TMP$2486$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2486$4 );
				__builtin_memset( &TMP$2487$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2487$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$2487$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2487$4 );
			}
			label$1865:;
			label$1863:;
		}
		goto label$1861;
		label$1862:;
		{
			FBSTRING TMP$2488$3;
			FBSTRING TMP$2491$3;
			FBSTRING TMP$2492$3;
			__builtin_memset( &TMP$2488$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2488$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$2488$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2488$3 );
			__builtin_memset( &TMP$2491$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2491$3, -1ll, (void*)"FOUND AN ERROR : Converting to struct not handled 02", 53ll, 0 );
			HWRITEASM64( &TMP$2491$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2491$3 );
			__builtin_memset( &TMP$2492$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2492$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$2492$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2492$3 );
		}
		label$1861:;
		fb_StrDelete( (FBSTRING*)&PREFIX2$1 );
		fb_StrDelete( (FBSTRING*)&PREFIX1$1 );
		fb_StrDelete( (FBSTRING*)&OP4$1 );
		fb_StrDelete( (FBSTRING*)&OP3$1 );
		fb_StrDelete( (FBSTRING*)&OP2$1 );
		fb_StrDelete( (FBSTRING*)&OP1$1 );
		fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
		fb_StrDelete( (FBSTRING*)&LNAME2$1 );
		fb_StrDelete( (FBSTRING*)&LNAME1$1 );
		goto label$1668;
	}
	label$1860:;
	label$1859:;
	if( V1DTYPE$1 != 1ll ) goto label$1867;
	{
		if( *(int64*)V2$1 != 0ll ) goto label$1869;
		{
			int32 vr$1422 = fb_StrCompare( (void*)&OP2$1, -1ll, (void*)"0", 2ll );
			int32 vr$1426 = fb_StrCompare( (void*)&OP2$1, -1ll, (void*)"0x0000000000000000", 19ll );
			int32 vr$1431 = fb_StrCompare( (void*)&OP2$1, -1ll, (void*)"0x00000000", 11ll );
			if( (((int64)-((int64)vr$1422 == 0ll) | (int64)-((int64)vr$1426 == 0ll)) | (int64)-((int64)vr$1431 == 0ll)) == 0ll ) goto label$1871;
			{
				FBSTRING TMP$2495$4;
				FBSTRING TMP$2496$4;
				FBSTRING TMP$2497$4;
				__builtin_memset( &TMP$2497$4, 0, 24ll );
				__builtin_memset( &TMP$2495$4, 0, 24ll );
				FBSTRING* vr$1439 = fb_StrConcat( &TMP$2495$4, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
				__builtin_memset( &TMP$2496$4, 0, 24ll );
				FBSTRING* vr$1442 = fb_StrConcat( &TMP$2496$4, (void*)vr$1439, -1ll, (void*)", 0", 4ll );
				fb_StrAssign( (void*)&TMP$2497$4, -1ll, (void*)vr$1442, -1ll, 0 );
				HWRITEASM64( &TMP$2497$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2497$4 );
			}
			goto label$1870;
			label$1871:;
			{
				FBSTRING TMP$2498$4;
				FBSTRING TMP$2499$4;
				FBSTRING TMP$2500$4;
				__builtin_memset( &TMP$2500$4, 0, 24ll );
				__builtin_memset( &TMP$2498$4, 0, 24ll );
				FBSTRING* vr$1450 = fb_StrConcat( &TMP$2498$4, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
				__builtin_memset( &TMP$2499$4, 0, 24ll );
				FBSTRING* vr$1453 = fb_StrConcat( &TMP$2499$4, (void*)vr$1450, -1ll, (void*)", 1", 4ll );
				fb_StrAssign( (void*)&TMP$2500$4, -1ll, (void*)vr$1453, -1ll, 0 );
				HWRITEASM64( &TMP$2500$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2500$4 );
			}
			label$1870:;
		}
		goto label$1868;
		label$1869:;
		{
			FBSTRING TMP$2501$3;
			FBSTRING TMP$2502$3;
			FBSTRING TMP$2503$3;
			FBSTRING TMP$2504$3;
			FBSTRING TMP$2505$3;
			FBSTRING TMP$2506$3;
			FBSTRING TMP$2507$3;
			FBSTRING TMP$2508$3;
			__builtin_memset( &TMP$2504$3, 0, 24ll );
			__builtin_memset( &TMP$2501$3, 0, 24ll );
			FBSTRING* vr$1462 = fb_StrConcat( &TMP$2501$3, (void*)"cmp ", 5ll, (void*)&PREFIX2$1, -1ll );
			__builtin_memset( &TMP$2502$3, 0, 24ll );
			FBSTRING* vr$1465 = fb_StrConcat( &TMP$2502$3, (void*)vr$1462, -1ll, (void*)&OP2$1, -1ll );
			__builtin_memset( &TMP$2503$3, 0, 24ll );
			FBSTRING* vr$1468 = fb_StrConcat( &TMP$2503$3, (void*)vr$1465, -1ll, (void*)", 0", 4ll );
			fb_StrAssign( (void*)&TMP$2504$3, -1ll, (void*)vr$1468, -1ll, 0 );
			HWRITEASM64( &TMP$2504$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2504$3 );
			__builtin_memset( &TMP$2505$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2505$3, -1ll, (void*)"setne al", 9ll, 0 );
			HWRITEASM64( &TMP$2505$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2505$3 );
			__builtin_memset( &TMP$2508$3, 0, 24ll );
			__builtin_memset( &TMP$2506$3, 0, 24ll );
			FBSTRING* vr$1480 = fb_StrConcat( &TMP$2506$3, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
			__builtin_memset( &TMP$2507$3, 0, 24ll );
			FBSTRING* vr$1483 = fb_StrConcat( &TMP$2507$3, (void*)vr$1480, -1ll, (void*)", al", 5ll );
			fb_StrAssign( (void*)&TMP$2508$3, -1ll, (void*)vr$1483, -1ll, 0 );
			HWRITEASM64( &TMP$2508$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2508$3 );
		}
		label$1868:;
		fb_StrDelete( (FBSTRING*)&PREFIX2$1 );
		fb_StrDelete( (FBSTRING*)&PREFIX1$1 );
		fb_StrDelete( (FBSTRING*)&OP4$1 );
		fb_StrDelete( (FBSTRING*)&OP3$1 );
		fb_StrDelete( (FBSTRING*)&OP2$1 );
		fb_StrDelete( (FBSTRING*)&OP1$1 );
		fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
		fb_StrDelete( (FBSTRING*)&LNAME2$1 );
		fb_StrDelete( (FBSTRING*)&LNAME1$1 );
		goto label$1668;
	}
	label$1867:;
	label$1866:;
	if( V2DTYPE$1 != 1ll ) goto label$1873;
	{
		FBSTRING TMP$2509$2;
		FBSTRING TMP$2510$2;
		FBSTRING TMP$2511$2;
		FBSTRING TMP$2512$2;
		FBSTRING TMP$2513$2;
		FBSTRING TMP$2514$2;
		int64 TMP$2515$2;
		__builtin_memset( &TMP$2512$2, 0, 24ll );
		__builtin_memset( &TMP$2509$2, 0, 24ll );
		FBSTRING* vr$1501 = fb_StrConcat( &TMP$2509$2, (void*)"cmp ", 5ll, (void*)&PREFIX2$1, -1ll );
		__builtin_memset( &TMP$2510$2, 0, 24ll );
		FBSTRING* vr$1504 = fb_StrConcat( &TMP$2510$2, (void*)vr$1501, -1ll, (void*)&OP2$1, -1ll );
		__builtin_memset( &TMP$2511$2, 0, 24ll );
		FBSTRING* vr$1507 = fb_StrConcat( &TMP$2511$2, (void*)vr$1504, -1ll, (void*)", 0", 4ll );
		fb_StrAssign( (void*)&TMP$2512$2, -1ll, (void*)vr$1507, -1ll, 0 );
		HWRITEASM64( &TMP$2512$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2512$2 );
		__builtin_memset( &TMP$2513$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$2513$2, -1ll, (void*)"setne al", 9ll, 0 );
		HWRITEASM64( &TMP$2513$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2513$2 );
		__builtin_memset( &TMP$2514$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$2514$2, -1ll, (void*)"neg al", 7ll, 0 );
		HWRITEASM64( &TMP$2514$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2514$2 );
		if( (V1DTYPE$1 & 480ll) == 0ll ) goto label$1874;
		TMP$2515$2 = 24ll;
		goto label$3119;
		label$1874:;
		TMP$2515$2 = V1DTYPE$1 & 31ll;
		label$3119:;
		if( *(int64*)(((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$2515$2 * 56ll)) + 8ll) != 1ll ) goto label$1876;
		{
			FBSTRING TMP$2516$3;
			FBSTRING TMP$2517$3;
			FBSTRING TMP$2518$3;
			__builtin_memset( &TMP$2518$3, 0, 24ll );
			__builtin_memset( &TMP$2516$3, 0, 24ll );
			FBSTRING* vr$1526 = fb_StrConcat( &TMP$2516$3, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
			__builtin_memset( &TMP$2517$3, 0, 24ll );
			FBSTRING* vr$1529 = fb_StrConcat( &TMP$2517$3, (void*)vr$1526, -1ll, (void*)", al", 5ll );
			fb_StrAssign( (void*)&TMP$2518$3, -1ll, (void*)vr$1529, -1ll, 0 );
			HWRITEASM64( &TMP$2518$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2518$3 );
		}
		goto label$1875;
		label$1876:;
		{
			FBSTRING TMP$2520$3;
			FBSTRING TMP$2521$3;
			FBSTRING TMP$2522$3;
			__builtin_memset( &TMP$2522$3, 0, 24ll );
			__builtin_memset( &TMP$2520$3, 0, 24ll );
			FBSTRING* vr$1537 = fb_StrConcat( &TMP$2520$3, (void*)"movsx ", 7ll, (void*)&OP1$1, -1ll );
			__builtin_memset( &TMP$2521$3, 0, 24ll );
			FBSTRING* vr$1540 = fb_StrConcat( &TMP$2521$3, (void*)vr$1537, -1ll, (void*)", al", 5ll );
			fb_StrAssign( (void*)&TMP$2522$3, -1ll, (void*)vr$1540, -1ll, 0 );
			HWRITEASM64( &TMP$2522$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2522$3 );
		}
		label$1875:;
		fb_StrDelete( (FBSTRING*)&PREFIX2$1 );
		fb_StrDelete( (FBSTRING*)&PREFIX1$1 );
		fb_StrDelete( (FBSTRING*)&OP4$1 );
		fb_StrDelete( (FBSTRING*)&OP3$1 );
		fb_StrDelete( (FBSTRING*)&OP2$1 );
		fb_StrDelete( (FBSTRING*)&OP1$1 );
		fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
		fb_StrDelete( (FBSTRING*)&LNAME2$1 );
		fb_StrDelete( (FBSTRING*)&LNAME1$1 );
		goto label$1668;
	}
	label$1873:;
	label$1872:;
	if( (V1DTYPE$1 & 480ll) == 0ll ) goto label$1877;
	TMP$2523$1 = 24ll;
	goto label$3120;
	label$1877:;
	TMP$2523$1 = V1DTYPE$1 & 31ll;
	label$3120:;
	if( (V2DTYPE$1 & 480ll) == 0ll ) goto label$1878;
	TMP$2524$1 = 24ll;
	goto label$3121;
	label$1878:;
	TMP$2524$1 = V2DTYPE$1 & 31ll;
	label$3121:;
	if( *(int64*)(((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$2523$1 * 56ll)) + 8ll) > *(int64*)(((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$2524$1 * 56ll)) + 8ll) ) goto label$1880;
	{
		FBSTRING TMP$2529$2;
		FBSTRING TMP$2530$2;
		FBSTRING TMP$2531$2;
		FBSTRING TMP$2532$2;
		FBSTRING TMP$2533$2;
		if( *(int64*)V2$1 != 4ll ) goto label$1882;
		{
			fb_StrAssign( (void*)&PREFIX1$1, -1ll, (void*)"", 1ll, 0 );
			{
				if( V1DTYPE$1 == 11ll ) goto label$1885;
				label$1886:;
				if( V1DTYPE$1 == 12ll ) goto label$1885;
				label$1887:;
				if( V1DTYPE$1 != 15ll ) goto label$1884;
				label$1885:;
				{
					fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)SRCREG$1 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$1883;
				label$1884:;
				if( V1DTYPE$1 == 5ll ) goto label$1889;
				label$1890:;
				if( V1DTYPE$1 != 6ll ) goto label$1888;
				label$1889:;
				{
					fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRW$ + ((int64)SRCREG$1 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$1883;
				label$1888:;
				if( V1DTYPE$1 == 2ll ) goto label$1892;
				label$1893:;
				if( V1DTYPE$1 == 3ll ) goto label$1892;
				label$1894:;
				if( V1DTYPE$1 != 4ll ) goto label$1891;
				label$1892:;
				{
					fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRB$ + ((int64)SRCREG$1 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$1883;
				label$1891:;
				if( V1DTYPE$1 != 1ll ) goto label$1895;
				label$1896:;
				{
				}
				goto label$1883;
				label$1895:;
				if( V1DTYPE$1 == 13ll ) goto label$1898;
				label$1899:;
				if( V1DTYPE$1 == 14ll ) goto label$1898;
				label$1900:;
				if( V1DTYPE$1 != 16ll ) goto label$1897;
				label$1898:;
				{
					fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)SRCREG$1 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$1883;
				label$1897:;
				{
					FBSTRING TMP$2525$5;
					FBSTRING TMP$2526$5;
					FBSTRING TMP$2527$5;
					FBSTRING TMP$2528$5;
					__builtin_memset( &TMP$2525$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$2525$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$2525$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2525$5 );
					__builtin_memset( &TMP$2527$5, 0, 24ll );
					FBSTRING* vr$1579 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 8ll) );
					__builtin_memset( &TMP$2526$5, 0, 24ll );
					FBSTRING* vr$1582 = fb_StrConcat( &TMP$2526$5, (void*)"FOUND AN ERROR : Converting datatype not handled 03 = ", 55ll, (void*)vr$1579, -1ll );
					fb_StrAssign( (void*)&TMP$2527$5, -1ll, (void*)vr$1582, -1ll, 0 );
					HWRITEASM64( &TMP$2527$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2527$5 );
					__builtin_memset( &TMP$2528$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$2528$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$2528$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2528$5 );
				}
				label$1901:;
				label$1883:;
			}
		}
		label$1882:;
		label$1881:;
		__builtin_memset( &TMP$2533$2, 0, 24ll );
		__builtin_memset( &TMP$2529$2, 0, 24ll );
		FBSTRING* vr$1596 = fb_StrConcat( &TMP$2529$2, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
		__builtin_memset( &TMP$2530$2, 0, 24ll );
		FBSTRING* vr$1599 = fb_StrConcat( &TMP$2530$2, (void*)vr$1596, -1ll, (void*)", ", 3ll );
		__builtin_memset( &TMP$2531$2, 0, 24ll );
		FBSTRING* vr$1602 = fb_StrConcat( &TMP$2531$2, (void*)vr$1599, -1ll, (void*)&PREFIX1$1, -1ll );
		__builtin_memset( &TMP$2532$2, 0, 24ll );
		FBSTRING* vr$1605 = fb_StrConcat( &TMP$2532$2, (void*)vr$1602, -1ll, (void*)&OP2$1, -1ll );
		fb_StrAssign( (void*)&TMP$2533$2, -1ll, (void*)vr$1605, -1ll, 0 );
		HWRITEASM64( &TMP$2533$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2533$2 );
		fb_StrDelete( (FBSTRING*)&PREFIX2$1 );
		fb_StrDelete( (FBSTRING*)&PREFIX1$1 );
		fb_StrDelete( (FBSTRING*)&OP4$1 );
		fb_StrDelete( (FBSTRING*)&OP3$1 );
		fb_StrDelete( (FBSTRING*)&OP2$1 );
		fb_StrDelete( (FBSTRING*)&OP1$1 );
		fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
		fb_StrDelete( (FBSTRING*)&LNAME2$1 );
		fb_StrDelete( (FBSTRING*)&LNAME1$1 );
		goto label$1668;
	}
	label$1880:;
	label$1879:;
	if( (V2DTYPE$1 & 480ll) == 0ll ) goto label$1902;
	TMP$2534$1 = 24ll;
	goto label$3122;
	label$1902:;
	TMP$2534$1 = V2DTYPE$1 & 31ll;
	label$3122:;
	if( *(int64*)(((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$2534$1 * 56ll)) + 16ll) == 0ll ) goto label$1904;
	{
		{
			int64 TMP$2535$3;
			int64 TMP$2536$3;
			if( (V2DTYPE$1 & 480ll) == 0ll ) goto label$1905;
			TMP$2535$3 = 24ll;
			goto label$3123;
			label$1905:;
			TMP$2535$3 = V2DTYPE$1 & 31ll;
			label$3123:;
			TMP$2536$3 = *(int64*)(((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$2535$3 * 56ll)) + 8ll);
			if( TMP$2536$3 == 1ll ) goto label$1908;
			label$1909:;
			if( TMP$2536$3 != 2ll ) goto label$1907;
			label$1908:;
			{
				FBSTRING TMP$2537$4;
				FBSTRING TMP$2538$4;
				FBSTRING TMP$2539$4;
				FBSTRING TMP$2540$4;
				FBSTRING TMP$2541$4;
				__builtin_memset( &TMP$2541$4, 0, 24ll );
				__builtin_memset( &TMP$2537$4, 0, 24ll );
				FBSTRING* vr$1630 = fb_StrConcat( &TMP$2537$4, (void*)"movsx ", 7ll, (void*)&OP1$1, -1ll );
				__builtin_memset( &TMP$2538$4, 0, 24ll );
				FBSTRING* vr$1633 = fb_StrConcat( &TMP$2538$4, (void*)vr$1630, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$2539$4, 0, 24ll );
				FBSTRING* vr$1636 = fb_StrConcat( &TMP$2539$4, (void*)vr$1633, -1ll, (void*)&PREFIX2$1, -1ll );
				__builtin_memset( &TMP$2540$4, 0, 24ll );
				FBSTRING* vr$1639 = fb_StrConcat( &TMP$2540$4, (void*)vr$1636, -1ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$2541$4, -1ll, (void*)vr$1639, -1ll, 0 );
				HWRITEASM64( &TMP$2541$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2541$4 );
			}
			goto label$1906;
			label$1907:;
			if( TMP$2536$3 != 4ll ) goto label$1910;
			label$1911:;
			{
				FBSTRING TMP$2542$4;
				FBSTRING TMP$2543$4;
				FBSTRING TMP$2544$4;
				FBSTRING TMP$2545$4;
				FBSTRING TMP$2546$4;
				__builtin_memset( &TMP$2546$4, 0, 24ll );
				__builtin_memset( &TMP$2542$4, 0, 24ll );
				FBSTRING* vr$1649 = fb_StrConcat( &TMP$2542$4, (void*)"movsxd ", 8ll, (void*)&OP1$1, -1ll );
				__builtin_memset( &TMP$2543$4, 0, 24ll );
				FBSTRING* vr$1652 = fb_StrConcat( &TMP$2543$4, (void*)vr$1649, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$2544$4, 0, 24ll );
				FBSTRING* vr$1655 = fb_StrConcat( &TMP$2544$4, (void*)vr$1652, -1ll, (void*)&PREFIX2$1, -1ll );
				__builtin_memset( &TMP$2545$4, 0, 24ll );
				FBSTRING* vr$1658 = fb_StrConcat( &TMP$2545$4, (void*)vr$1655, -1ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$2546$4, -1ll, (void*)vr$1658, -1ll, 0 );
				HWRITEASM64( &TMP$2546$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2546$4 );
			}
			goto label$1906;
			label$1910:;
			{
				FBSTRING TMP$2547$4;
				FBSTRING TMP$2550$4;
				FBSTRING TMP$2551$4;
				__builtin_memset( &TMP$2547$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2547$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$2547$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2547$4 );
				__builtin_memset( &TMP$2550$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2550$4, -1ll, (void*)"FOUND AN ERROR : in conv something missing 01", 46ll, 0 );
				HWRITEASM64( &TMP$2550$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2550$4 );
				__builtin_memset( &TMP$2551$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2551$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$2551$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2551$4 );
			}
			label$1912:;
			label$1906:;
		}
	}
	goto label$1903;
	label$1904:;
	{
		{
			int64 TMP$2552$3;
			int64 TMP$2553$3;
			if( (V2DTYPE$1 & 480ll) == 0ll ) goto label$1913;
			TMP$2552$3 = 24ll;
			goto label$3124;
			label$1913:;
			TMP$2552$3 = V2DTYPE$1 & 31ll;
			label$3124:;
			TMP$2553$3 = *(int64*)(((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$2552$3 * 56ll)) + 8ll);
			if( TMP$2553$3 == 1ll ) goto label$1916;
			label$1917:;
			if( TMP$2553$3 != 2ll ) goto label$1915;
			label$1916:;
			{
				FBSTRING TMP$2554$4;
				FBSTRING TMP$2555$4;
				FBSTRING TMP$2556$4;
				FBSTRING TMP$2557$4;
				FBSTRING TMP$2558$4;
				__builtin_memset( &TMP$2558$4, 0, 24ll );
				__builtin_memset( &TMP$2554$4, 0, 24ll );
				FBSTRING* vr$1683 = fb_StrConcat( &TMP$2554$4, (void*)"movzx ", 7ll, (void*)&OP1$1, -1ll );
				__builtin_memset( &TMP$2555$4, 0, 24ll );
				FBSTRING* vr$1686 = fb_StrConcat( &TMP$2555$4, (void*)vr$1683, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$2556$4, 0, 24ll );
				FBSTRING* vr$1689 = fb_StrConcat( &TMP$2556$4, (void*)vr$1686, -1ll, (void*)&PREFIX2$1, -1ll );
				__builtin_memset( &TMP$2557$4, 0, 24ll );
				FBSTRING* vr$1692 = fb_StrConcat( &TMP$2557$4, (void*)vr$1689, -1ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$2558$4, -1ll, (void*)vr$1692, -1ll, 0 );
				HWRITEASM64( &TMP$2558$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2558$4 );
			}
			goto label$1914;
			label$1915:;
			if( TMP$2553$3 != 4ll ) goto label$1918;
			label$1919:;
			{
				if( *(int64*)V2$1 != 4ll ) goto label$1921;
				{
					*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)REGRESULT$1 << (2ll & 63ll))) = -2;
					REGRESULT$1 = SRCREG$1;
					*(int64*)((uint8*)V1$1 + 24ll) = *(int64*)((uint8*)V2$1 + 24ll);
				}
				goto label$1920;
				label$1921:;
				{
					FBSTRING TMP$2559$5;
					FBSTRING TMP$2560$5;
					FBSTRING TMP$2561$5;
					FBSTRING TMP$2562$5;
					__builtin_memset( &TMP$2562$5, 0, 24ll );
					__builtin_memset( &TMP$2559$5, 0, 24ll );
					FBSTRING* vr$1707 = fb_StrConcat( &TMP$2559$5, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)REGRESULT$1 << (3ll & 63ll))), 0ll );
					__builtin_memset( &TMP$2560$5, 0, 24ll );
					FBSTRING* vr$1710 = fb_StrConcat( &TMP$2560$5, (void*)vr$1707, -1ll, (void*)", ", 3ll );
					__builtin_memset( &TMP$2561$5, 0, 24ll );
					FBSTRING* vr$1713 = fb_StrConcat( &TMP$2561$5, (void*)vr$1710, -1ll, (void*)&OP2$1, -1ll );
					fb_StrAssign( (void*)&TMP$2562$5, -1ll, (void*)vr$1713, -1ll, 0 );
					HWRITEASM64( &TMP$2562$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2562$5 );
				}
				label$1920:;
			}
			goto label$1914;
			label$1918:;
			{
				FBSTRING TMP$2563$4;
				FBSTRING TMP$2566$4;
				FBSTRING TMP$2567$4;
				__builtin_memset( &TMP$2563$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2563$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$2563$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2563$4 );
				__builtin_memset( &TMP$2566$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2566$4, -1ll, (void*)"FOUND AN ERROR : in conv something missing 02", 46ll, 0 );
				HWRITEASM64( &TMP$2566$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2566$4 );
				__builtin_memset( &TMP$2567$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2567$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$2567$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2567$4 );
			}
			label$1922:;
			label$1914:;
		}
	}
	label$1903:;
	fb_StrDelete( (FBSTRING*)&PREFIX2$1 );
	fb_StrDelete( (FBSTRING*)&PREFIX1$1 );
	fb_StrDelete( (FBSTRING*)&OP4$1 );
	fb_StrDelete( (FBSTRING*)&OP3$1 );
	fb_StrDelete( (FBSTRING*)&OP2$1 );
	fb_StrDelete( (FBSTRING*)&OP1$1 );
	fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
	fb_StrDelete( (FBSTRING*)&LNAME2$1 );
	fb_StrDelete( (FBSTRING*)&LNAME1$1 );
	label$1668:;
}

static void EMITSTORESTRUCT( struct $6IRVREG* V1$1, struct $6IRVREG* V2$1, FBSTRING* OP1$1, FBSTRING* OP3$1 )
{
	FBSTRING TMP$2592$1;
	FBSTRING TMP$2593$1;
	FBSTRING TMP$2594$1;
	label$1923:;
	FBSTRING DEST$1;
	__builtin_memset( &DEST$1, 0, 24ll );
	int64 LGTV1$1;
	LGTV1$1 = *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 80ll);
	int64 OFSV2$1;
	OFSV2$1 = *(int64*)((uint8*)V2$1 + 64ll);
	$15FB_STRUCT_INREG RETIN2REGS$1;
	RETIN2REGS$1 = *($15FB_STRUCT_INREG*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 16ll) + 224ll);
	int32 vr$6 = fb_StrCompare( (void*)OP3$1, -1ll, (void*)"", 1ll );
	if( (int64)vr$6 == 0ll ) goto label$1926;
	{
		EMITOP3_OP4( OP3$1 );
		label$1926:;
	}
	{
		if( RETIN2REGS$1 != 2ll ) goto label$1928;
		label$1929:;
		{
			FBSTRING TMP$2568$3;
			FBSTRING TMP$2569$3;
			FBSTRING TMP$2570$3;
			__builtin_memset( &TMP$2570$3, 0, 24ll );
			__builtin_memset( &TMP$2568$3, 0, 24ll );
			FBSTRING* vr$11 = fb_StrConcat( &TMP$2568$3, (void*)"mov ", 5ll, (void*)OP1$1, -1ll );
			__builtin_memset( &TMP$2569$3, 0, 24ll );
			FBSTRING* vr$14 = fb_StrConcat( &TMP$2569$3, (void*)vr$11, -1ll, (void*)", rax", 6ll );
			fb_StrAssign( (void*)&TMP$2570$3, -1ll, (void*)vr$14, -1ll, 0 );
			HWRITEASM64( &TMP$2570$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2570$3 );
		}
		goto label$1927;
		label$1928:;
		if( RETIN2REGS$1 != 3ll ) goto label$1930;
		label$1931:;
		{
			FBSTRING TMP$2571$3;
			FBSTRING TMP$2572$3;
			FBSTRING TMP$2573$3;
			FBSTRING TMP$2575$3;
			__builtin_memset( &TMP$2573$3, 0, 24ll );
			__builtin_memset( &TMP$2571$3, 0, 24ll );
			FBSTRING* vr$21 = fb_StrConcat( &TMP$2571$3, (void*)"mov ", 5ll, (void*)OP1$1, -1ll );
			__builtin_memset( &TMP$2572$3, 0, 24ll );
			FBSTRING* vr$24 = fb_StrConcat( &TMP$2572$3, (void*)vr$21, -1ll, (void*)", rax", 6ll );
			fb_StrAssign( (void*)&TMP$2573$3, -1ll, (void*)vr$24, -1ll, 0 );
			HWRITEASM64( &TMP$2573$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2573$3 );
			__builtin_memset( &TMP$2575$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2575$3, -1ll, (void*)"movq rdx, xmm0", 15ll, 0 );
			HWRITEASM64( &TMP$2575$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2575$3 );
		}
		goto label$1927;
		label$1930:;
		if( RETIN2REGS$1 != 6ll ) goto label$1932;
		label$1933:;
		{
			FBSTRING TMP$2576$3;
			FBSTRING TMP$2577$3;
			FBSTRING TMP$2578$3;
			FBSTRING TMP$2580$3;
			__builtin_memset( &TMP$2578$3, 0, 24ll );
			__builtin_memset( &TMP$2576$3, 0, 24ll );
			FBSTRING* vr$35 = fb_StrConcat( &TMP$2576$3, (void*)"movq ", 6ll, (void*)OP1$1, -1ll );
			__builtin_memset( &TMP$2577$3, 0, 24ll );
			FBSTRING* vr$38 = fb_StrConcat( &TMP$2577$3, (void*)vr$35, -1ll, (void*)", xmm0", 7ll );
			fb_StrAssign( (void*)&TMP$2578$3, -1ll, (void*)vr$38, -1ll, 0 );
			HWRITEASM64( &TMP$2578$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2578$3 );
			__builtin_memset( &TMP$2580$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2580$3, -1ll, (void*)"movq rdx, xmm1", 15ll, 0 );
			HWRITEASM64( &TMP$2580$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2580$3 );
		}
		goto label$1927;
		label$1932:;
		if( RETIN2REGS$1 != 5ll ) goto label$1934;
		label$1935:;
		{
			FBSTRING TMP$2581$3;
			FBSTRING TMP$2582$3;
			FBSTRING TMP$2583$3;
			FBSTRING TMP$2585$3;
			__builtin_memset( &TMP$2583$3, 0, 24ll );
			__builtin_memset( &TMP$2581$3, 0, 24ll );
			FBSTRING* vr$49 = fb_StrConcat( &TMP$2581$3, (void*)"movq ", 6ll, (void*)OP1$1, -1ll );
			__builtin_memset( &TMP$2582$3, 0, 24ll );
			FBSTRING* vr$52 = fb_StrConcat( &TMP$2582$3, (void*)vr$49, -1ll, (void*)", xmm0", 7ll );
			fb_StrAssign( (void*)&TMP$2583$3, -1ll, (void*)vr$52, -1ll, 0 );
			HWRITEASM64( &TMP$2583$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2583$3 );
			__builtin_memset( &TMP$2585$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2585$3, -1ll, (void*)"movq rdx, rax", 14ll, 0 );
			HWRITEASM64( &TMP$2585$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2585$3 );
		}
		goto label$1927;
		label$1934:;
		{
		}
		label$1936:;
		label$1927:;
	}
	if( ((int64)-((uint64)(int64)*(uint8*)*(char**)OP1$1 == 45ull) & ((((int64)-(LGTV1$1 == 9ll) | (int64)-(LGTV1$1 == 10ll)) | (int64)-(LGTV1$1 == 12ll)) | (int64)-(LGTV1$1 == 16ll))) == 0ll ) goto label$1938;
	{
		FBSTRING TMP$2586$2;
		FBSTRING TMP$2588$2;
		FBSTRING TMP$2589$2;
		FBSTRING TMP$2590$2;
		FBSTRING TMP$2591$2;
		FBSTRING* vr$72 = fb_StrAllocTempDescZEx( (char*)"[rbp]", 5ll );
		int64 vr$73 = fb_StrInstr( 1ll, (FBSTRING*)OP1$1, (FBSTRING*)vr$72 );
		FBSTRING* vr$75 = fb_LEFT( (FBSTRING*)OP1$1, vr$73 + -1ll );
		int32 vr$76 = fb_VALINT( (FBSTRING*)vr$75 );
		FBSTRING* vr$79 = fb_LongintToStr( (int64)vr$76 + 8ll );
		__builtin_memset( &TMP$2586$2, 0, 24ll );
		FBSTRING* vr$82 = fb_StrConcat( &TMP$2586$2, (void*)vr$79, -1ll, (void*)"[rbp]", 6ll );
		fb_StrAssign( (void*)OP1$1, -1ll, (void*)vr$82, -1ll, 0 );
		{
			uint64 TMP$2587$3;
			TMP$2587$3 = (uint64)LGTV1$1;
			goto label$1940;
			label$1941:;
			{
				fb_StrAssign( (void*)&DEST$1, -1ll, (void*)"dl", 3ll, 0 );
			}
			goto label$1939;
			label$1942:;
			{
				fb_StrAssign( (void*)&DEST$1, -1ll, (void*)"dx", 3ll, 0 );
			}
			goto label$1939;
			label$1943:;
			{
				fb_StrAssign( (void*)&DEST$1, -1ll, (void*)"edx", 4ll, 0 );
			}
			goto label$1939;
			label$1944:;
			{
				fb_StrAssign( (void*)&DEST$1, -1ll, (void*)"rdx", 4ll, 0 );
			}
			goto label$1939;
			label$1940:;
			static const void* tmp$4075[8ll] = {
				&&label$1941,
				&&label$1942,
				&&label$1939,
				&&label$1943,
				&&label$1939,
				&&label$1939,
				&&label$1939,
				&&label$1944,
			};
			if( (TMP$2587$3 - 9ull) > 7ull ) goto label$1939;
			goto *tmp$4075[TMP$2587$3 - 9ull];
			label$1939:;
		}
		__builtin_memset( &TMP$2591$2, 0, 24ll );
		__builtin_memset( &TMP$2588$2, 0, 24ll );
		FBSTRING* vr$91 = fb_StrConcat( &TMP$2588$2, (void*)"mov ", 5ll, (void*)OP1$1, -1ll );
		__builtin_memset( &TMP$2589$2, 0, 24ll );
		FBSTRING* vr$94 = fb_StrConcat( &TMP$2589$2, (void*)vr$91, -1ll, (void*)", ", 3ll );
		__builtin_memset( &TMP$2590$2, 0, 24ll );
		FBSTRING* vr$97 = fb_StrConcat( &TMP$2590$2, (void*)vr$94, -1ll, (void*)&DEST$1, -1ll );
		fb_StrAssign( (void*)&TMP$2591$2, -1ll, (void*)vr$97, -1ll, 0 );
		HWRITEASM64( &TMP$2591$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2591$2 );
		fb_StrDelete( (FBSTRING*)&DEST$1 );
		goto label$1924;
	}
	label$1938:;
	label$1937:;
	__builtin_memset( &TMP$2593$1, 0, 24ll );
	__builtin_memset( &TMP$2592$1, 0, 24ll );
	FBSTRING* vr$105 = fb_StrConcat( &TMP$2592$1, (void*)"lea rax, ", 10ll, (void*)OP1$1, -1ll );
	fb_StrAssign( (void*)&TMP$2593$1, -1ll, (void*)vr$105, -1ll, 0 );
	HWRITEASM64( &TMP$2593$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$2593$1 );
	__builtin_memset( &TMP$2594$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$2594$1, -1ll, (void*)"add rax, 8", 11ll, 0 );
	HWRITEASM64( &TMP$2594$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$2594$1 );
	{
		uint64 TMP$2595$2;
		TMP$2595$2 = (uint64)LGTV1$1;
		goto label$1946;
		label$1947:;
		{
			FBSTRING TMP$2597$3;
			__builtin_memset( &TMP$2597$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2597$3, -1ll, (void*)"mov [rax], dl", 14ll, 0 );
			HWRITEASM64( &TMP$2597$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2597$3 );
		}
		goto label$1945;
		label$1948:;
		{
			FBSTRING TMP$2599$3;
			__builtin_memset( &TMP$2599$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2599$3, -1ll, (void*)"mov [rax], dx", 14ll, 0 );
			HWRITEASM64( &TMP$2599$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2599$3 );
		}
		goto label$1945;
		label$1949:;
		{
			FBSTRING TMP$2600$3;
			FBSTRING TMP$2602$3;
			FBSTRING TMP$2604$3;
			__builtin_memset( &TMP$2600$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2600$3, -1ll, (void*)"mov [rax], dx", 14ll, 0 );
			HWRITEASM64( &TMP$2600$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2600$3 );
			__builtin_memset( &TMP$2602$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2602$3, -1ll, (void*)"shr rdx, 2", 11ll, 0 );
			HWRITEASM64( &TMP$2602$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2602$3 );
			__builtin_memset( &TMP$2604$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2604$3, -1ll, (void*)"mov [rax+2], dl", 16ll, 0 );
			HWRITEASM64( &TMP$2604$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2604$3 );
		}
		goto label$1945;
		label$1950:;
		{
			FBSTRING TMP$2606$3;
			__builtin_memset( &TMP$2606$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2606$3, -1ll, (void*)"mov [rax], edx", 15ll, 0 );
			HWRITEASM64( &TMP$2606$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2606$3 );
		}
		goto label$1945;
		label$1951:;
		{
			FBSTRING TMP$2607$3;
			FBSTRING TMP$2609$3;
			FBSTRING TMP$2611$3;
			__builtin_memset( &TMP$2607$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2607$3, -1ll, (void*)"mov [rax], edx", 15ll, 0 );
			HWRITEASM64( &TMP$2607$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2607$3 );
			__builtin_memset( &TMP$2609$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2609$3, -1ll, (void*)"shr rdx, 4", 11ll, 0 );
			HWRITEASM64( &TMP$2609$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2609$3 );
			__builtin_memset( &TMP$2611$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2611$3, -1ll, (void*)"mov [rax+4], dl", 16ll, 0 );
			HWRITEASM64( &TMP$2611$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2611$3 );
		}
		goto label$1945;
		label$1952:;
		{
			FBSTRING TMP$2612$3;
			FBSTRING TMP$2613$3;
			FBSTRING TMP$2615$3;
			__builtin_memset( &TMP$2612$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2612$3, -1ll, (void*)"mov [rax], edx", 15ll, 0 );
			HWRITEASM64( &TMP$2612$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2612$3 );
			__builtin_memset( &TMP$2613$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2613$3, -1ll, (void*)"shr rdx, 4", 11ll, 0 );
			HWRITEASM64( &TMP$2613$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2613$3 );
			__builtin_memset( &TMP$2615$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2615$3, -1ll, (void*)"mov [rax+4], dx", 16ll, 0 );
			HWRITEASM64( &TMP$2615$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2615$3 );
		}
		goto label$1945;
		label$1953:;
		{
			FBSTRING TMP$2616$3;
			FBSTRING TMP$2617$3;
			FBSTRING TMP$2618$3;
			FBSTRING TMP$2619$3;
			FBSTRING TMP$2621$3;
			__builtin_memset( &TMP$2616$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2616$3, -1ll, (void*)"mov [rax], edx", 15ll, 0 );
			HWRITEASM64( &TMP$2616$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2616$3 );
			__builtin_memset( &TMP$2617$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2617$3, -1ll, (void*)"shr rdx, 4", 11ll, 0 );
			HWRITEASM64( &TMP$2617$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2617$3 );
			__builtin_memset( &TMP$2618$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2618$3, -1ll, (void*)"mov [rax+4], dx", 16ll, 0 );
			HWRITEASM64( &TMP$2618$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2618$3 );
			__builtin_memset( &TMP$2619$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2619$3, -1ll, (void*)"shr rdx, 2", 11ll, 0 );
			HWRITEASM64( &TMP$2619$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2619$3 );
			__builtin_memset( &TMP$2621$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2621$3, -1ll, (void*)"mov [rax+6], dl", 16ll, 0 );
			HWRITEASM64( &TMP$2621$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2621$3 );
		}
		goto label$1945;
		label$1954:;
		{
			FBSTRING TMP$2623$3;
			__builtin_memset( &TMP$2623$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2623$3, -1ll, (void*)"mov [rax], rdx", 15ll, 0 );
			HWRITEASM64( &TMP$2623$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2623$3 );
		}
		goto label$1945;
		label$1946:;
		static const void* tmp$4076[8ll] = {
			&&label$1947,
			&&label$1948,
			&&label$1949,
			&&label$1950,
			&&label$1951,
			&&label$1952,
			&&label$1953,
			&&label$1954,
		};
		if( (TMP$2595$2 - 9ull) > 7ull ) goto label$1945;
		goto *tmp$4076[TMP$2595$2 - 9ull];
		label$1945:;
	}
	fb_StrDelete( (FBSTRING*)&DEST$1 );
	label$1924:;
}

static int64 HISSTRUCTIN2REGS( struct $6IRVREG* V1$1 )
{
	int64 fb$result$1;
	__builtin_memset( &fb$result$1, 0, 8ll );
	label$1955:;
	if( (*(int64*)((uint8*)V1$1 + 8ll) & 511ll) != 20ll ) goto label$1958;
	{
		fb$result$1 = (int64)-(*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 16ll) + 224ll) != 0ll);
		goto label$1956;
	}
	label$1958:;
	label$1957:;
	fb$result$1 = 0ll;
	goto label$1956;
	label$1956:;
	return fb$result$1;
}

static void _EMITSTORE( struct $6IRVREG* V1$1, struct $6IRVREG* V2$1 )
{
	int64 TMP$2624$1;
	int64 TMP$2625$1;
	label$1959:;
	FBSTRING OP1$1;
	__builtin_memset( &OP1$1, 0, 24ll );
	FBSTRING OP2$1;
	__builtin_memset( &OP2$1, 0, 24ll );
	FBSTRING OP3$1;
	__builtin_memset( &OP3$1, 0, 24ll );
	FBSTRING OP4$1;
	__builtin_memset( &OP4$1, 0, 24ll );
	FBSTRING PREFIX$1;
	__builtin_memset( &PREFIX$1, 0, 24ll );
	FBSTRING CODE1$1;
	__builtin_memset( &CODE1$1, 0, 24ll );
	FBSTRING CODE2$1;
	__builtin_memset( &CODE2$1, 0, 24ll );
	FBSTRING REGTEMPO$1;
	__builtin_memset( &REGTEMPO$1, 0, 24ll );
	int32 TEMPO$1;
	__builtin_memset( &TEMPO$1, 0, 4ll );
	$11FB_DATATYPE DTYPE$1;
	__builtin_memset( &DTYPE$1, 0, 8ll );
	if( (*(int64*)((uint8*)V1$1 + 8ll) & 480ll) == 0ll ) goto label$1961;
	TMP$2624$1 = 24ll;
	goto label$3125;
	label$1961:;
	TMP$2624$1 = *(int64*)((uint8*)V1$1 + 8ll) & 31ll;
	label$3125:;
	if( (*(int64*)((uint8*)V2$1 + 8ll) & 480ll) == 0ll ) goto label$1962;
	TMP$2625$1 = 24ll;
	goto label$3126;
	label$1962:;
	TMP$2625$1 = *(int64*)((uint8*)V2$1 + 8ll) & 31ll;
	label$3126:;
	if( *(int64*)(((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$2624$1 * 56ll)) + 8ll) >= *(int64*)(((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$2625$1 * 56ll)) + 8ll) ) goto label$1964;
	{
		struct $6IRVREG* TEMP0$2;
		struct $6IRVREG* vr$21 = IRHLALLOCVREG( *(int64*)((uint8*)V1$1 + 8ll), (struct $8FBSYMBOL*)0ull );
		TEMP0$2 = vr$21;
		_EMITCONVERT( TEMP0$2, V2$1 );
		__builtin_memcpy( V2$1, TEMP0$2, 120 );
	}
	label$1964:;
	label$1963:;
	{
		$15IRVREGTYPE_ENUM TMP$2626$2;
		TMP$2626$2 = *($15IRVREGTYPE_ENUM*)V1$1;
		if( TMP$2626$2 != 2ll ) goto label$1966;
		label$1967:;
		{
			PREPARE_IDX( V1$1, &OP1$1, &OP3$1 );
		}
		goto label$1965;
		label$1966:;
		if( TMP$2626$2 != 4ll ) goto label$1968;
		label$1969:;
		{
			if( *(int64*)V2$1 != 0ll ) goto label$1971;
			{
				FBSTRING TMP$2627$4;
				FBSTRING TMP$2630$4;
				FBSTRING TMP$2631$4;
				__builtin_memset( &TMP$2627$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2627$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$2627$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2627$4 );
				__builtin_memset( &TMP$2630$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2630$4, -1ll, (void*)"FOUND AN ERROR : In emitstore used to be sure that case IMM to REG may happen.... report to dev", 96ll, 0 );
				HWRITEASM64( &TMP$2630$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2630$4 );
				__builtin_memset( &TMP$2631$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2631$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$2631$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2631$4 );
				if( ((int64)-(*(int64*)((uint8*)V2$1 + 48ll) >= 0ll) & (int64)-(*(int64*)((uint8*)V2$1 + 48ll) <= 2147483647ll)) == 0ll ) goto label$1973;
				{
					int32 vr$45 = REG_FINDREAL( (int32)*(int64*)((uint8*)V1$1 + 24ll) );
					fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)vr$45 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$1972;
				label$1973:;
				{
					int32 vr$51 = REG_FINDREAL( (int32)*(int64*)((uint8*)V1$1 + 24ll) );
					fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$51 << (3ll & 63ll))), 0ll, 0 );
				}
				label$1972:;
			}
			goto label$1970;
			label$1971:;
			{
				DTYPE$1 = *(int64*)((uint8*)V1$1 + 8ll) & 511ll;
				if( (DTYPE$1 & 480ll) == 0ll ) goto label$1975;
				{
					DTYPE$1 = 8ll;
					label$1975:;
				}
				{
					if( DTYPE$1 == 8ll ) goto label$1978;
					label$1979:;
					if( DTYPE$1 == 9ll ) goto label$1978;
					label$1980:;
					if( DTYPE$1 == 13ll ) goto label$1978;
					label$1981:;
					if( DTYPE$1 == 14ll ) goto label$1978;
					label$1982:;
					if( DTYPE$1 == 16ll ) goto label$1978;
					label$1983:;
					if( DTYPE$1 != 10ll ) goto label$1977;
					label$1978:;
					{
						int32 vr$60 = REG_FINDREAL( (int32)*(int64*)((uint8*)V1$1 + 24ll) );
						fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$60 << (3ll & 63ll))), 0ll, 0 );
					}
					goto label$1976;
					label$1977:;
					if( DTYPE$1 == 11ll ) goto label$1985;
					label$1986:;
					if( DTYPE$1 == 12ll ) goto label$1985;
					label$1987:;
					if( DTYPE$1 != 15ll ) goto label$1984;
					label$1985:;
					{
						int32 vr$66 = REG_FINDREAL( (int32)*(int64*)((uint8*)V1$1 + 24ll) );
						fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)vr$66 << (3ll & 63ll))), 0ll, 0 );
					}
					goto label$1976;
					label$1984:;
					if( DTYPE$1 == 5ll ) goto label$1989;
					label$1990:;
					if( DTYPE$1 != 6ll ) goto label$1988;
					label$1989:;
					{
						int32 vr$72 = REG_FINDREAL( (int32)*(int64*)((uint8*)V1$1 + 24ll) );
						fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRW$ + ((int64)vr$72 << (3ll & 63ll))), 0ll, 0 );
					}
					goto label$1976;
					label$1988:;
					if( DTYPE$1 == 2ll ) goto label$1992;
					label$1993:;
					if( DTYPE$1 == 3ll ) goto label$1992;
					label$1994:;
					if( DTYPE$1 == 1ll ) goto label$1992;
					label$1995:;
					if( DTYPE$1 != 4ll ) goto label$1991;
					label$1992:;
					{
						int32 vr$78 = REG_FINDREAL( (int32)*(int64*)((uint8*)V1$1 + 24ll) );
						fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRB$ + ((int64)vr$78 << (3ll & 63ll))), 0ll, 0 );
					}
					goto label$1976;
					label$1991:;
					{
						FBSTRING TMP$2632$6;
						FBSTRING TMP$2636$6;
						FBSTRING TMP$2637$6;
						FBSTRING TMP$2638$6;
						__builtin_memset( &TMP$2632$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$2632$6, -1ll, (void*)"", 1ll, 0 );
						HWRITEASM64( &TMP$2632$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2632$6 );
						__builtin_memset( &TMP$2637$6, 0, 24ll );
						FBSTRING* vr$88 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 8ll) );
						__builtin_memset( &TMP$2636$6, 0, 24ll );
						FBSTRING* vr$91 = fb_StrConcat( &TMP$2636$6, (void*)"FOUND AN ERROR : Storing datatype not handled 01 = ", 52ll, (void*)vr$88, -1ll );
						fb_StrAssign( (void*)&TMP$2637$6, -1ll, (void*)vr$91, -1ll, 0 );
						HWRITEASM64( &TMP$2637$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2637$6 );
						__builtin_memset( &TMP$2638$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$2638$6, -1ll, (void*)"", 1ll, 0 );
						HWRITEASM64( &TMP$2638$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2638$6 );
					}
					label$1996:;
					label$1976:;
				}
			}
			label$1970:;
		}
		goto label$1965;
		label$1968:;
		if( TMP$2626$2 != 1ll ) goto label$1997;
		label$1998:;
		{
			if( ((int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 2ll) != 0ll) | (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 1ll) != 0ll)) == 0ll ) goto label$2000;
			{
				FBSTRING TMP$2639$4;
				FBSTRING TMP$2640$4;
				FBSTRING TMP$2641$4;
				FBSTRING* vr$109 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
				char* vr$111 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
				__builtin_memset( &TMP$2639$4, 0, 24ll );
				FBSTRING* vr$114 = fb_StrConcat( &TMP$2639$4, (void*)vr$111, 0ll, (void*)"[rip+", 6ll );
				__builtin_memset( &TMP$2640$4, 0, 24ll );
				FBSTRING* vr$117 = fb_StrConcat( &TMP$2640$4, (void*)vr$114, -1ll, (void*)vr$109, -1ll );
				__builtin_memset( &TMP$2641$4, 0, 24ll );
				FBSTRING* vr$120 = fb_StrConcat( &TMP$2641$4, (void*)vr$117, -1ll, (void*)"]", 2ll );
				fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$120, -1ll, 0 );
			}
			goto label$1999;
			label$2000:;
			{
				FBSTRING TMP$2642$4;
				FBSTRING* vr$123 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
				__builtin_memset( &TMP$2642$4, 0, 24ll );
				FBSTRING* vr$126 = fb_StrConcat( &TMP$2642$4, (void*)vr$123, -1ll, (void*)"[rbp]", 6ll );
				fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$126, -1ll, 0 );
			}
			label$1999:;
		}
		goto label$1965;
		label$1997:;
		if( TMP$2626$2 != 3ll ) goto label$2001;
		label$2002:;
		{
			if( *(int64*)((uint8*)V1$1 + 64ll) == 0ll ) goto label$2004;
			{
				if( *(struct $6IRVREG**)((uint8*)V1$1 + 80ll) != (struct $6IRVREG*)0ull ) goto label$2006;
				{
					if( ((int64)-(*(int64*)((uint8*)V1$1 + 64ll) < -2147483648ll) | (int64)-(*(uint64*)((uint8*)V1$1 + 64ll) > 4294967295ull)) == 0ll ) goto label$2008;
					{
						FBSTRING TMP$2643$6;
						FBSTRING* vr$136 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
						__builtin_memset( &TMP$2643$6, 0, 24ll );
						FBSTRING* vr$139 = fb_StrConcat( &TMP$2643$6, (void*)"mov rax, ", 10ll, (void*)vr$136, -1ll );
						fb_StrAssign( (void*)&OP3$1, -1ll, (void*)vr$139, -1ll, 0 );
					}
					goto label$2007;
					label$2008:;
					{
						FBSTRING TMP$2644$6;
						FBSTRING* vr$142 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
						__builtin_memset( &TMP$2644$6, 0, 24ll );
						FBSTRING* vr$145 = fb_StrConcat( &TMP$2644$6, (void*)"mov eax, ", 10ll, (void*)vr$142, -1ll );
						fb_StrAssign( (void*)&OP3$1, -1ll, (void*)vr$145, -1ll, 0 );
					}
					label$2007:;
					fb_StrAssign( (void*)&OP1$1, -1ll, (void*)"[rax]", 6ll, 0 );
				}
				goto label$2005;
				label$2006:;
				{
					FBSTRING TMP$2645$5;
					FBSTRING TMP$2646$5;
					FBSTRING TMP$2647$5;
					int32 vr$151 = REG_FINDREAL( (int32)*(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 24ll) );
					FBSTRING* vr$155 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
					__builtin_memset( &TMP$2645$5, 0, 24ll );
					FBSTRING* vr$158 = fb_StrConcat( &TMP$2645$5, (void*)vr$155, -1ll, (void*)"[", 2ll );
					__builtin_memset( &TMP$2646$5, 0, 24ll );
					FBSTRING* vr$161 = fb_StrConcat( &TMP$2646$5, (void*)vr$158, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$151 << (3ll & 63ll))), 0ll );
					__builtin_memset( &TMP$2647$5, 0, 24ll );
					FBSTRING* vr$164 = fb_StrConcat( &TMP$2647$5, (void*)vr$161, -1ll, (void*)"]", 2ll );
					fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$164, -1ll, 0 );
				}
				label$2005:;
			}
			goto label$2003;
			label$2004:;
			{
				FBSTRING TMP$2648$4;
				FBSTRING TMP$2649$4;
				int32 vr$169 = REG_FINDREAL( (int32)*(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 24ll) );
				__builtin_memset( &TMP$2648$4, 0, 24ll );
				FBSTRING* vr$174 = fb_StrConcat( &TMP$2648$4, (void*)"[", 2ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$169 << (3ll & 63ll))), 0ll );
				__builtin_memset( &TMP$2649$4, 0, 24ll );
				FBSTRING* vr$177 = fb_StrConcat( &TMP$2649$4, (void*)vr$174, -1ll, (void*)"]", 2ll );
				fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$177, -1ll, 0 );
			}
			label$2003:;
		}
		goto label$1965;
		label$2001:;
		if( TMP$2626$2 != 5ll ) goto label$2009;
		label$2010:;
		{
			FBSTRING TMP$2650$3;
			FBSTRING TMP$2651$3;
			FBSTRING TMP$2652$3;
			FBSTRING* vr$180 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
			char* vr$182 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
			__builtin_memset( &TMP$2650$3, 0, 24ll );
			FBSTRING* vr$185 = fb_StrConcat( &TMP$2650$3, (void*)vr$182, 0ll, (void*)"[rip+", 6ll );
			__builtin_memset( &TMP$2651$3, 0, 24ll );
			FBSTRING* vr$188 = fb_StrConcat( &TMP$2651$3, (void*)vr$185, -1ll, (void*)vr$180, -1ll );
			__builtin_memset( &TMP$2652$3, 0, 24ll );
			FBSTRING* vr$191 = fb_StrConcat( &TMP$2652$3, (void*)vr$188, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$191, -1ll, 0 );
		}
		goto label$1965;
		label$2009:;
		{
			FBSTRING TMP$2653$3;
			FBSTRING TMP$2656$3;
			FBSTRING TMP$2657$3;
			__builtin_memset( &TMP$2653$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2653$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$2653$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2653$3 );
			__builtin_memset( &TMP$2656$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2656$3, -1ll, (void*)"FOUND AN ERROR : store 01", 26ll, 0 );
			HWRITEASM64( &TMP$2656$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2656$3 );
			__builtin_memset( &TMP$2657$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2657$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$2657$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2657$3 );
		}
		label$2011:;
		label$1965:;
	}
	int64 vr$205 = HISSTRUCTIN2REGS( V2$1 );
	if( vr$205 == 0ll ) goto label$2013;
	{
		if( (*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 24ll) & 16ll) == 0ll ) goto label$2015;
		{
			*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 88ll) = *(int64*)((uint8*)V2$1 + 64ll);
		}
		goto label$2014;
		label$2015:;
		{
			EMITSTORESTRUCT( V1$1, V2$1, &OP1$1, &OP3$1 );
		}
		label$2014:;
		fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
		fb_StrDelete( (FBSTRING*)&CODE2$1 );
		fb_StrDelete( (FBSTRING*)&CODE1$1 );
		fb_StrDelete( (FBSTRING*)&PREFIX$1 );
		fb_StrDelete( (FBSTRING*)&OP4$1 );
		fb_StrDelete( (FBSTRING*)&OP3$1 );
		fb_StrDelete( (FBSTRING*)&OP2$1 );
		fb_StrDelete( (FBSTRING*)&OP1$1 );
		goto label$1960;
	}
	label$2013:;
	label$2012:;
	{
		$15IRVREGTYPE_ENUM TMP$2658$2;
		TMP$2658$2 = *($15IRVREGTYPE_ENUM*)V2$1;
		if( TMP$2658$2 != 2ll ) goto label$2017;
		label$2018:;
		{
			PREPARE_IDX( V2$1, &OP2$1, &OP4$1 );
		}
		goto label$2016;
		label$2017:;
		if( TMP$2658$2 != 4ll ) goto label$2019;
		label$2020:;
		{
			DTYPE$1 = *(int64*)((uint8*)V2$1 + 8ll) & 511ll;
			if( (DTYPE$1 & 480ll) == 0ll ) goto label$2022;
			{
				DTYPE$1 = 8ll;
				label$2022:;
			}
			{
				if( DTYPE$1 == 8ll ) goto label$2025;
				label$2026:;
				if( DTYPE$1 == 9ll ) goto label$2025;
				label$2027:;
				if( DTYPE$1 == 13ll ) goto label$2025;
				label$2028:;
				if( DTYPE$1 == 14ll ) goto label$2025;
				label$2029:;
				if( DTYPE$1 == 16ll ) goto label$2025;
				label$2030:;
				if( DTYPE$1 != 10ll ) goto label$2024;
				label$2025:;
				{
					int32 vr$230 = REG_FINDREAL( (int32)*(int64*)((uint8*)V2$1 + 24ll) );
					fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$230 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$2023;
				label$2024:;
				if( DTYPE$1 == 11ll ) goto label$2032;
				label$2033:;
				if( DTYPE$1 == 12ll ) goto label$2032;
				label$2034:;
				if( DTYPE$1 != 15ll ) goto label$2031;
				label$2032:;
				{
					int32 vr$236 = REG_FINDREAL( (int32)*(int64*)((uint8*)V2$1 + 24ll) );
					fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)vr$236 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$2023;
				label$2031:;
				if( DTYPE$1 == 5ll ) goto label$2036;
				label$2037:;
				if( DTYPE$1 != 6ll ) goto label$2035;
				label$2036:;
				{
					int32 vr$242 = REG_FINDREAL( (int32)*(int64*)((uint8*)V2$1 + 24ll) );
					fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRW$ + ((int64)vr$242 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$2023;
				label$2035:;
				if( DTYPE$1 == 2ll ) goto label$2039;
				label$2040:;
				if( DTYPE$1 == 3ll ) goto label$2039;
				label$2041:;
				if( DTYPE$1 == 1ll ) goto label$2039;
				label$2042:;
				if( DTYPE$1 != 4ll ) goto label$2038;
				label$2039:;
				{
					int32 vr$248 = REG_FINDREAL( (int32)*(int64*)((uint8*)V2$1 + 24ll) );
					fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRB$ + ((int64)vr$248 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$2023;
				label$2038:;
				{
					FBSTRING TMP$2659$5;
					FBSTRING TMP$2663$5;
					FBSTRING TMP$2664$5;
					FBSTRING TMP$2665$5;
					__builtin_memset( &TMP$2659$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$2659$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$2659$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2659$5 );
					__builtin_memset( &TMP$2664$5, 0, 24ll );
					FBSTRING* vr$258 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 8ll) );
					__builtin_memset( &TMP$2663$5, 0, 24ll );
					FBSTRING* vr$261 = fb_StrConcat( &TMP$2663$5, (void*)"FOUND AN ERROR : Storing datatype not handled 02 = ", 52ll, (void*)vr$258, -1ll );
					fb_StrAssign( (void*)&TMP$2664$5, -1ll, (void*)vr$261, -1ll, 0 );
					HWRITEASM64( &TMP$2664$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2664$5 );
					__builtin_memset( &TMP$2665$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$2665$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$2665$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2665$5 );
				}
				label$2043:;
				label$2023:;
			}
		}
		goto label$2016;
		label$2019:;
		if( TMP$2658$2 != 1ll ) goto label$2044;
		label$2045:;
		{
			int64 TMP$2666$3;
			if( *(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) == (struct $8FBSYMBOL*)0ull ) goto label$2046;
			TMP$2666$3 = (int64)-(((int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) + 8ll) & 2ll) != 0ll) | (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) + 8ll) & 1ll) != 0ll)) != 0ll);
			goto label$3127;
			label$2046:;
			TMP$2666$3 = 0ll;
			label$3127:;
			if( TMP$2666$3 == 0ll ) goto label$2048;
			{
				FBSTRING TMP$2667$4;
				FBSTRING TMP$2668$4;
				FBSTRING TMP$2669$4;
				FBSTRING* vr$281 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
				char* vr$283 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) );
				__builtin_memset( &TMP$2667$4, 0, 24ll );
				FBSTRING* vr$286 = fb_StrConcat( &TMP$2667$4, (void*)vr$283, 0ll, (void*)"[rip+", 6ll );
				__builtin_memset( &TMP$2668$4, 0, 24ll );
				FBSTRING* vr$289 = fb_StrConcat( &TMP$2668$4, (void*)vr$286, -1ll, (void*)vr$281, -1ll );
				__builtin_memset( &TMP$2669$4, 0, 24ll );
				FBSTRING* vr$292 = fb_StrConcat( &TMP$2669$4, (void*)vr$289, -1ll, (void*)"]", 2ll );
				fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$292, -1ll, 0 );
			}
			goto label$2047;
			label$2048:;
			{
				FBSTRING TMP$2670$4;
				FBSTRING* vr$295 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
				__builtin_memset( &TMP$2670$4, 0, 24ll );
				FBSTRING* vr$298 = fb_StrConcat( &TMP$2670$4, (void*)vr$295, -1ll, (void*)"[rbp]", 6ll );
				fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$298, -1ll, 0 );
			}
			label$2047:;
		}
		goto label$2016;
		label$2044:;
		if( TMP$2658$2 != 3ll ) goto label$2049;
		label$2050:;
		{
			if( *(struct $6IRVREG**)((uint8*)V2$1 + 80ll) == (struct $6IRVREG*)0ull ) goto label$2052;
			{
				FBSTRING TMP$2671$4;
				FBSTRING TMP$2672$4;
				FBSTRING TMP$2673$4;
				int32 vr$304 = REG_FINDREAL( (int32)*(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V2$1 + 80ll) + 24ll) );
				FBSTRING* vr$308 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
				__builtin_memset( &TMP$2671$4, 0, 24ll );
				FBSTRING* vr$311 = fb_StrConcat( &TMP$2671$4, (void*)vr$308, -1ll, (void*)"[", 2ll );
				__builtin_memset( &TMP$2672$4, 0, 24ll );
				FBSTRING* vr$314 = fb_StrConcat( &TMP$2672$4, (void*)vr$311, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$304 << (3ll & 63ll))), 0ll );
				__builtin_memset( &TMP$2673$4, 0, 24ll );
				FBSTRING* vr$317 = fb_StrConcat( &TMP$2673$4, (void*)vr$314, -1ll, (void*)"]", 2ll );
				fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$317, -1ll, 0 );
			}
			goto label$2051;
			label$2052:;
			{
				FBSTRING TMP$2674$4;
				FBSTRING TMP$2675$4;
				FBSTRING* vr$320 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
				__builtin_memset( &TMP$2674$4, 0, 24ll );
				FBSTRING* vr$323 = fb_StrConcat( &TMP$2674$4, (void*)"[", 2ll, (void*)vr$320, -1ll );
				__builtin_memset( &TMP$2675$4, 0, 24ll );
				FBSTRING* vr$326 = fb_StrConcat( &TMP$2675$4, (void*)vr$323, -1ll, (void*)"]", 2ll );
				fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$326, -1ll, 0 );
			}
			label$2051:;
		}
		goto label$2016;
		label$2049:;
		if( TMP$2658$2 != 5ll ) goto label$2053;
		label$2054:;
		{
			FBSTRING TMP$2676$3;
			FBSTRING TMP$2677$3;
			FBSTRING TMP$2678$3;
			FBSTRING* vr$329 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
			char* vr$331 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) );
			__builtin_memset( &TMP$2676$3, 0, 24ll );
			FBSTRING* vr$334 = fb_StrConcat( &TMP$2676$3, (void*)vr$331, 0ll, (void*)"[rip+", 6ll );
			__builtin_memset( &TMP$2677$3, 0, 24ll );
			FBSTRING* vr$337 = fb_StrConcat( &TMP$2677$3, (void*)vr$334, -1ll, (void*)vr$329, -1ll );
			__builtin_memset( &TMP$2678$3, 0, 24ll );
			FBSTRING* vr$340 = fb_StrConcat( &TMP$2678$3, (void*)vr$337, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$340, -1ll, 0 );
		}
		goto label$2016;
		label$2053:;
		if( TMP$2658$2 != 0ll ) goto label$2055;
		label$2056:;
		{
			int64 TMP$2679$3;
			if( ((int64)-(*(int64*)((uint8*)V1$1 + 8ll) == 1ll) & (int64)-(*(int64*)((uint8*)V2$1 + 48ll) != 0ll)) == 0ll ) goto label$2058;
			{
				*(int64*)((uint8*)V2$1 + 48ll) = 1ll;
			}
			label$2058:;
			label$2057:;
			if( (*(int64*)((uint8*)V2$1 + 8ll) & 480ll) == 0ll ) goto label$2059;
			TMP$2679$3 = 24ll;
			goto label$3128;
			label$2059:;
			TMP$2679$3 = *(int64*)((uint8*)V2$1 + 8ll) & 31ll;
			label$3128:;
			if( *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$2679$3 * 56ll)) != 1ll ) goto label$2061;
			{
				FBSTRING* vr$355 = HFLOATTOHEX_ASM64( *(double*)((uint8*)V2$1 + 48ll), *(int64*)((uint8*)V2$1 + 8ll), (int8)0 );
				fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$355, -1ll, 0 );
			}
			goto label$2060;
			label$2061:;
			{
				FBSTRING* vr$358 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 48ll) );
				fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$358, -1ll, 0 );
			}
			label$2060:;
		}
		goto label$2016;
		label$2055:;
		{
			FBSTRING TMP$2680$3;
			FBSTRING TMP$2681$3;
			FBSTRING TMP$2682$3;
			__builtin_memset( &TMP$2680$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2680$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$2680$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2680$3 );
			__builtin_memset( &TMP$2681$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2681$3, -1ll, (void*)"FOUND AN ERROR : store 02 ??", 29ll, 0 );
			HWRITEASM64( &TMP$2681$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2681$3 );
			__builtin_memset( &TMP$2682$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2682$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$2682$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2682$3 );
		}
		label$2062:;
		label$2016:;
	}
	DTYPE$1 = *(int64*)((uint8*)V1$1 + 8ll) & 511ll;
	if( (DTYPE$1 & 480ll) == 0ll ) goto label$2064;
	{
		DTYPE$1 = 8ll;
		label$2064:;
	}
	{
		if( DTYPE$1 == 8ll ) goto label$2067;
		label$2068:;
		if( DTYPE$1 == 9ll ) goto label$2067;
		label$2069:;
		if( DTYPE$1 == 13ll ) goto label$2067;
		label$2070:;
		if( DTYPE$1 == 14ll ) goto label$2067;
		label$2071:;
		if( DTYPE$1 == 16ll ) goto label$2067;
		label$2072:;
		if( DTYPE$1 != 10ll ) goto label$2066;
		label$2067:;
		{
			fb_StrAssign( (void*)&PREFIX$1, -1ll, (void*)"QWORD PTR ", 11ll, 0 );
			fb_StrAssign( (void*)&CODE1$1, -1ll, (void*)"mov rax, ", 10ll, 0 );
			fb_StrAssign( (void*)&CODE2$1, -1ll, (void*)", rax", 6ll, 0 );
		}
		goto label$2065;
		label$2066:;
		if( DTYPE$1 == 11ll ) goto label$2074;
		label$2075:;
		if( DTYPE$1 == 12ll ) goto label$2074;
		label$2076:;
		if( DTYPE$1 != 15ll ) goto label$2073;
		label$2074:;
		{
			fb_StrAssign( (void*)&PREFIX$1, -1ll, (void*)"DWORD PTR ", 11ll, 0 );
			fb_StrAssign( (void*)&CODE1$1, -1ll, (void*)"mov eax, ", 10ll, 0 );
			fb_StrAssign( (void*)&CODE2$1, -1ll, (void*)", eax", 6ll, 0 );
		}
		goto label$2065;
		label$2073:;
		if( DTYPE$1 == 5ll ) goto label$2078;
		label$2079:;
		if( DTYPE$1 != 6ll ) goto label$2077;
		label$2078:;
		{
			fb_StrAssign( (void*)&PREFIX$1, -1ll, (void*)"WORD PTR ", 10ll, 0 );
			fb_StrAssign( (void*)&CODE1$1, -1ll, (void*)"movzx eax, ", 12ll, 0 );
			fb_StrAssign( (void*)&CODE2$1, -1ll, (void*)", ax", 5ll, 0 );
		}
		goto label$2065;
		label$2077:;
		if( DTYPE$1 == 2ll ) goto label$2081;
		label$2082:;
		if( DTYPE$1 == 3ll ) goto label$2081;
		label$2083:;
		if( DTYPE$1 == 1ll ) goto label$2081;
		label$2084:;
		if( DTYPE$1 != 4ll ) goto label$2080;
		label$2081:;
		{
			fb_StrAssign( (void*)&PREFIX$1, -1ll, (void*)"BYTE PTR ", 10ll, 0 );
			fb_StrAssign( (void*)&CODE1$1, -1ll, (void*)"mov al, ", 9ll, 0 );
			fb_StrAssign( (void*)&CODE2$1, -1ll, (void*)", al", 5ll, 0 );
		}
		goto label$2065;
		label$2080:;
		if( DTYPE$1 != 7ll ) goto label$2085;
		label$2086:;
		{
			if( *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + 400ll) != 2ll ) goto label$2088;
			{
				fb_StrAssign( (void*)&PREFIX$1, -1ll, (void*)"WORD PTR ", 10ll, 0 );
				fb_StrAssign( (void*)&CODE1$1, -1ll, (void*)"movzx eax, ", 12ll, 0 );
				fb_StrAssign( (void*)&CODE2$1, -1ll, (void*)", ax", 5ll, 0 );
			}
			goto label$2087;
			label$2088:;
			if( *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + 400ll) != 4ll ) goto label$2089;
			{
				fb_StrAssign( (void*)&PREFIX$1, -1ll, (void*)"DWORD PTR ", 11ll, 0 );
				fb_StrAssign( (void*)&CODE1$1, -1ll, (void*)"mov eax, ", 10ll, 0 );
				fb_StrAssign( (void*)&CODE2$1, -1ll, (void*)", eax", 6ll, 0 );
			}
			goto label$2087;
			label$2089:;
			{
				FBSTRING TMP$2684$4;
				FBSTRING TMP$2687$4;
				FBSTRING TMP$2688$4;
				__builtin_memset( &TMP$2684$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2684$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$2684$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2684$4 );
				__builtin_memset( &TMP$2687$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2687$4, -1ll, (void*)"FOUND AN ERROR : emitstore datatype WCHAR not handled", 54ll, 0 );
				HWRITEASM64( &TMP$2687$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2687$4 );
				__builtin_memset( &TMP$2688$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2688$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$2688$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2688$4 );
			}
			label$2087:;
		}
		goto label$2065;
		label$2085:;
		{
			FBSTRING TMP$2689$3;
			FBSTRING TMP$2693$3;
			FBSTRING TMP$2694$3;
			FBSTRING TMP$2695$3;
			__builtin_memset( &TMP$2689$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2689$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$2689$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2689$3 );
			__builtin_memset( &TMP$2694$3, 0, 24ll );
			FBSTRING* vr$410 = fb_LongintToStr( DTYPE$1 );
			__builtin_memset( &TMP$2693$3, 0, 24ll );
			FBSTRING* vr$413 = fb_StrConcat( &TMP$2693$3, (void*)"FOUND AN ERROR : emitstore datatype not handled 03= ", 53ll, (void*)vr$410, -1ll );
			fb_StrAssign( (void*)&TMP$2694$3, -1ll, (void*)vr$413, -1ll, 0 );
			HWRITEASM64( &TMP$2694$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2694$3 );
			__builtin_memset( &TMP$2695$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2695$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$2695$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2695$3 );
		}
		label$2090:;
		label$2065:;
	}
	if( ((int64)-(*(int64*)V1$1 == 1ll) & (int64)-(*(int64*)V2$1 == 1ll)) == 0ll ) goto label$2092;
	{
		int64 TMP$2696$2;
		FBSTRING TMP$2705$2;
		FBSTRING TMP$2706$2;
		FBSTRING TMP$2707$2;
		FBSTRING TMP$2708$2;
		FBSTRING TMP$2709$2;
		FBSTRING TMP$2710$2;
		FBSTRING TMP$2711$2;
		if( (int64)-(*(boolean*)((uint8*)&CTX$ + 416ll)) != -1ll ) goto label$2093;
		int64 vr$427 = FBGETOPTION( 0ll );
		TMP$2696$2 = (int64)-(vr$427 == 2ll);
		goto label$3129;
		label$2093:;
		TMP$2696$2 = 0ll;
		label$3129:;
		if( TMP$2696$2 == 0ll ) goto label$2095;
		{
			if( (*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 8ll) == 0ll ) goto label$2097;
			{
				FBSTRING TMP$2697$4;
				FBSTRING TMP$2698$4;
				FBSTRING TMP$2699$4;
				FBSTRING TMP$2700$4;
				FBSTRING TMP$2701$4;
				int32 vr$432 = REG_FINDFREE( 999998, -1ll );
				TEMPO$1 = vr$432;
				fb_StrAssign( (void*)&REGTEMPO$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)TEMPO$1 << (3ll & 63ll))), 0ll, 0 );
				*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)TEMPO$1 << (2ll & 63ll))) = -2;
				__builtin_memset( &TMP$2701$4, 0, 24ll );
				char* vr$440 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
				__builtin_memset( &TMP$2697$4, 0, 24ll );
				FBSTRING* vr$444 = fb_StrConcat( &TMP$2697$4, (void*)"mov ", 5ll, (void*)&REGTEMPO$1, -1ll );
				__builtin_memset( &TMP$2698$4, 0, 24ll );
				FBSTRING* vr$447 = fb_StrConcat( &TMP$2698$4, (void*)vr$444, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$2699$4, 0, 24ll );
				FBSTRING* vr$450 = fb_StrConcat( &TMP$2699$4, (void*)vr$447, -1ll, (void*)vr$440, 0ll );
				__builtin_memset( &TMP$2700$4, 0, 24ll );
				FBSTRING* vr$453 = fb_StrConcat( &TMP$2700$4, (void*)vr$450, -1ll, (void*)"@GOTPCREL[rip]", 15ll );
				fb_StrAssign( (void*)&TMP$2701$4, -1ll, (void*)vr$453, -1ll, 0 );
				HWRITEASM64( &TMP$2701$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2701$4 );
				fb_StrAssign( (void*)&OP1$1, -1ll, (void*)"[", 2ll, 0 );
				fb_StrConcatAssign( (void*)&OP1$1, -1ll, (void*)&REGTEMPO$1, -1ll, 0 );
				fb_StrConcatAssign( (void*)&OP1$1, -1ll, (void*)"]", 2ll, 0 );
			}
			label$2097:;
			label$2096:;
			if( (*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) + 8ll) & 8ll) == 0ll ) goto label$2099;
			{
				FBSTRING TMP$2702$4;
				FBSTRING TMP$2703$4;
				FBSTRING TMP$2704$4;
				__builtin_memset( &TMP$2704$4, 0, 24ll );
				char* vr$466 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) );
				__builtin_memset( &TMP$2702$4, 0, 24ll );
				FBSTRING* vr$469 = fb_StrConcat( &TMP$2702$4, (void*)"mov rax, ", 10ll, (void*)vr$466, 0ll );
				__builtin_memset( &TMP$2703$4, 0, 24ll );
				FBSTRING* vr$472 = fb_StrConcat( &TMP$2703$4, (void*)vr$469, -1ll, (void*)"@GOTPCREL[rip]", 15ll );
				fb_StrAssign( (void*)&TMP$2704$4, -1ll, (void*)vr$472, -1ll, 0 );
				HWRITEASM64( &TMP$2704$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2704$4 );
				fb_StrAssign( (void*)&OP2$1, -1ll, (void*)"[rax]", 6ll, 0 );
			}
			label$2099:;
			label$2098:;
		}
		label$2095:;
		label$2094:;
		__builtin_memset( &TMP$2707$2, 0, 24ll );
		__builtin_memset( &TMP$2705$2, 0, 24ll );
		FBSTRING* vr$483 = fb_StrConcat( &TMP$2705$2, (void*)&CODE1$1, -1ll, (void*)&PREFIX$1, -1ll );
		__builtin_memset( &TMP$2706$2, 0, 24ll );
		FBSTRING* vr$486 = fb_StrConcat( &TMP$2706$2, (void*)vr$483, -1ll, (void*)&OP2$1, -1ll );
		fb_StrAssign( (void*)&TMP$2707$2, -1ll, (void*)vr$486, -1ll, 0 );
		HWRITEASM64( &TMP$2707$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2707$2 );
		__builtin_memset( &TMP$2711$2, 0, 24ll );
		__builtin_memset( &TMP$2708$2, 0, 24ll );
		FBSTRING* vr$496 = fb_StrConcat( &TMP$2708$2, (void*)"mov ", 5ll, (void*)&PREFIX$1, -1ll );
		__builtin_memset( &TMP$2709$2, 0, 24ll );
		FBSTRING* vr$499 = fb_StrConcat( &TMP$2709$2, (void*)vr$496, -1ll, (void*)&OP1$1, -1ll );
		__builtin_memset( &TMP$2710$2, 0, 24ll );
		FBSTRING* vr$502 = fb_StrConcat( &TMP$2710$2, (void*)vr$499, -1ll, (void*)&CODE2$1, -1ll );
		fb_StrAssign( (void*)&TMP$2711$2, -1ll, (void*)vr$502, -1ll, 0 );
		HWRITEASM64( &TMP$2711$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2711$2 );
	}
	goto label$2091;
	label$2092:;
	if( ((int64)-(*(int64*)V1$1 == 2ll) & (int64)-(*(int64*)V2$1 == 2ll)) == 0ll ) goto label$2100;
	{
		FBSTRING TMP$2712$2;
		FBSTRING TMP$2713$2;
		FBSTRING TMP$2714$2;
		FBSTRING TMP$2715$2;
		FBSTRING TMP$2716$2;
		FBSTRING TMP$2717$2;
		FBSTRING TMP$2718$2;
		int32 vr$512 = fb_StrCompare( (void*)&OP4$1, -1ll, (void*)"", 1ll );
		if( (int64)vr$512 == 0ll ) goto label$2102;
		{
			EMITOP3_OP4( &OP4$1 );
			label$2102:;
		}
		__builtin_memset( &TMP$2714$2, 0, 24ll );
		__builtin_memset( &TMP$2712$2, 0, 24ll );
		FBSTRING* vr$521 = fb_StrConcat( &TMP$2712$2, (void*)&CODE1$1, -1ll, (void*)&PREFIX$1, -1ll );
		__builtin_memset( &TMP$2713$2, 0, 24ll );
		FBSTRING* vr$524 = fb_StrConcat( &TMP$2713$2, (void*)vr$521, -1ll, (void*)&OP2$1, -1ll );
		fb_StrAssign( (void*)&TMP$2714$2, -1ll, (void*)vr$524, -1ll, 0 );
		HWRITEASM64( &TMP$2714$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2714$2 );
		int32 vr$529 = fb_StrCompare( (void*)&OP3$1, -1ll, (void*)"", 1ll );
		if( (int64)vr$529 == 0ll ) goto label$2104;
		{
			EMITOP3_OP4( &OP3$1 );
			label$2104:;
		}
		__builtin_memset( &TMP$2718$2, 0, 24ll );
		__builtin_memset( &TMP$2715$2, 0, 24ll );
		FBSTRING* vr$538 = fb_StrConcat( &TMP$2715$2, (void*)"mov ", 5ll, (void*)&PREFIX$1, -1ll );
		__builtin_memset( &TMP$2716$2, 0, 24ll );
		FBSTRING* vr$541 = fb_StrConcat( &TMP$2716$2, (void*)vr$538, -1ll, (void*)&OP1$1, -1ll );
		__builtin_memset( &TMP$2717$2, 0, 24ll );
		FBSTRING* vr$544 = fb_StrConcat( &TMP$2717$2, (void*)vr$541, -1ll, (void*)&CODE2$1, -1ll );
		fb_StrAssign( (void*)&TMP$2718$2, -1ll, (void*)vr$544, -1ll, 0 );
		HWRITEASM64( &TMP$2718$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2718$2 );
	}
	goto label$2091;
	label$2100:;
	if( (((int64)-(*(int64*)V1$1 == 1ll) & (int64)-(*(int64*)V2$1 == 3ll)) | ((int64)-(*(int64*)V1$1 == 3ll) & (int64)-(*(int64*)V2$1 == 1ll))) == 0ll ) goto label$2105;
	{
		FBSTRING TMP$2719$2;
		FBSTRING TMP$2720$2;
		FBSTRING TMP$2721$2;
		FBSTRING TMP$2722$2;
		FBSTRING TMP$2723$2;
		FBSTRING TMP$2724$2;
		FBSTRING TMP$2725$2;
		__builtin_memset( &TMP$2721$2, 0, 24ll );
		__builtin_memset( &TMP$2719$2, 0, 24ll );
		FBSTRING* vr$565 = fb_StrConcat( &TMP$2719$2, (void*)&CODE1$1, -1ll, (void*)&PREFIX$1, -1ll );
		__builtin_memset( &TMP$2720$2, 0, 24ll );
		FBSTRING* vr$568 = fb_StrConcat( &TMP$2720$2, (void*)vr$565, -1ll, (void*)&OP2$1, -1ll );
		fb_StrAssign( (void*)&TMP$2721$2, -1ll, (void*)vr$568, -1ll, 0 );
		HWRITEASM64( &TMP$2721$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2721$2 );
		__builtin_memset( &TMP$2725$2, 0, 24ll );
		__builtin_memset( &TMP$2722$2, 0, 24ll );
		FBSTRING* vr$578 = fb_StrConcat( &TMP$2722$2, (void*)"mov ", 5ll, (void*)&PREFIX$1, -1ll );
		__builtin_memset( &TMP$2723$2, 0, 24ll );
		FBSTRING* vr$581 = fb_StrConcat( &TMP$2723$2, (void*)vr$578, -1ll, (void*)&OP1$1, -1ll );
		__builtin_memset( &TMP$2724$2, 0, 24ll );
		FBSTRING* vr$584 = fb_StrConcat( &TMP$2724$2, (void*)vr$581, -1ll, (void*)&CODE2$1, -1ll );
		fb_StrAssign( (void*)&TMP$2725$2, -1ll, (void*)vr$584, -1ll, 0 );
		HWRITEASM64( &TMP$2725$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2725$2 );
	}
	goto label$2091;
	label$2105:;
	if( (((int64)-(*(int64*)V1$1 == 1ll) & (int64)-(*(int64*)V2$1 == 2ll)) | ((int64)-(*(int64*)V1$1 == 2ll) & (int64)-(*(int64*)V2$1 == 1ll))) == 0ll ) goto label$2106;
	{
		FBSTRING TMP$2726$2;
		FBSTRING TMP$2727$2;
		FBSTRING TMP$2728$2;
		FBSTRING TMP$2729$2;
		FBSTRING TMP$2730$2;
		FBSTRING TMP$2731$2;
		FBSTRING TMP$2732$2;
		int32 vr$600 = fb_StrCompare( (void*)&OP4$1, -1ll, (void*)"", 1ll );
		if( (int64)vr$600 == 0ll ) goto label$2108;
		{
			EMITOP3_OP4( &OP4$1 );
			label$2108:;
		}
		__builtin_memset( &TMP$2728$2, 0, 24ll );
		__builtin_memset( &TMP$2726$2, 0, 24ll );
		FBSTRING* vr$609 = fb_StrConcat( &TMP$2726$2, (void*)&CODE1$1, -1ll, (void*)&PREFIX$1, -1ll );
		__builtin_memset( &TMP$2727$2, 0, 24ll );
		FBSTRING* vr$612 = fb_StrConcat( &TMP$2727$2, (void*)vr$609, -1ll, (void*)&OP2$1, -1ll );
		fb_StrAssign( (void*)&TMP$2728$2, -1ll, (void*)vr$612, -1ll, 0 );
		HWRITEASM64( &TMP$2728$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2728$2 );
		int32 vr$617 = fb_StrCompare( (void*)&OP3$1, -1ll, (void*)"", 1ll );
		if( (int64)vr$617 == 0ll ) goto label$2110;
		{
			EMITOP3_OP4( &OP3$1 );
			label$2110:;
		}
		__builtin_memset( &TMP$2732$2, 0, 24ll );
		__builtin_memset( &TMP$2729$2, 0, 24ll );
		FBSTRING* vr$626 = fb_StrConcat( &TMP$2729$2, (void*)"mov ", 5ll, (void*)&PREFIX$1, -1ll );
		__builtin_memset( &TMP$2730$2, 0, 24ll );
		FBSTRING* vr$629 = fb_StrConcat( &TMP$2730$2, (void*)vr$626, -1ll, (void*)&OP1$1, -1ll );
		__builtin_memset( &TMP$2731$2, 0, 24ll );
		FBSTRING* vr$632 = fb_StrConcat( &TMP$2731$2, (void*)vr$629, -1ll, (void*)&CODE2$1, -1ll );
		fb_StrAssign( (void*)&TMP$2732$2, -1ll, (void*)vr$632, -1ll, 0 );
		HWRITEASM64( &TMP$2732$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2732$2 );
	}
	goto label$2091;
	label$2106:;
	if( (((int64)-(*(int64*)V1$1 == 3ll) & (int64)-(*(int64*)V2$1 == 2ll)) | ((int64)-(*(int64*)V1$1 == 2ll) & (int64)-(*(int64*)V2$1 == 3ll))) == 0ll ) goto label$2111;
	{
		FBSTRING TMP$2733$2;
		FBSTRING TMP$2734$2;
		FBSTRING TMP$2735$2;
		FBSTRING TMP$2736$2;
		FBSTRING TMP$2737$2;
		FBSTRING TMP$2738$2;
		FBSTRING TMP$2739$2;
		int32 vr$648 = fb_StrCompare( (void*)&OP4$1, -1ll, (void*)"", 1ll );
		if( (int64)vr$648 == 0ll ) goto label$2113;
		{
			EMITOP3_OP4( &OP4$1 );
			label$2113:;
		}
		__builtin_memset( &TMP$2735$2, 0, 24ll );
		__builtin_memset( &TMP$2733$2, 0, 24ll );
		FBSTRING* vr$657 = fb_StrConcat( &TMP$2733$2, (void*)&CODE1$1, -1ll, (void*)&PREFIX$1, -1ll );
		__builtin_memset( &TMP$2734$2, 0, 24ll );
		FBSTRING* vr$660 = fb_StrConcat( &TMP$2734$2, (void*)vr$657, -1ll, (void*)&OP2$1, -1ll );
		fb_StrAssign( (void*)&TMP$2735$2, -1ll, (void*)vr$660, -1ll, 0 );
		HWRITEASM64( &TMP$2735$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2735$2 );
		int32 vr$665 = fb_StrCompare( (void*)&OP3$1, -1ll, (void*)"", 1ll );
		if( (int64)vr$665 == 0ll ) goto label$2115;
		{
			EMITOP3_OP4( &OP3$1 );
			label$2115:;
		}
		__builtin_memset( &TMP$2739$2, 0, 24ll );
		__builtin_memset( &TMP$2736$2, 0, 24ll );
		FBSTRING* vr$674 = fb_StrConcat( &TMP$2736$2, (void*)"mov ", 5ll, (void*)&PREFIX$1, -1ll );
		__builtin_memset( &TMP$2737$2, 0, 24ll );
		FBSTRING* vr$677 = fb_StrConcat( &TMP$2737$2, (void*)vr$674, -1ll, (void*)&OP1$1, -1ll );
		__builtin_memset( &TMP$2738$2, 0, 24ll );
		FBSTRING* vr$680 = fb_StrConcat( &TMP$2738$2, (void*)vr$677, -1ll, (void*)&CODE2$1, -1ll );
		fb_StrAssign( (void*)&TMP$2739$2, -1ll, (void*)vr$680, -1ll, 0 );
		HWRITEASM64( &TMP$2739$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2739$2 );
	}
	goto label$2091;
	label$2111:;
	if( ((int64)-(*(int64*)V1$1 == 3ll) & (int64)-(*(int64*)V2$1 == 3ll)) == 0ll ) goto label$2116;
	{
		FBSTRING TMP$2740$2;
		FBSTRING TMP$2741$2;
		FBSTRING TMP$2742$2;
		FBSTRING TMP$2743$2;
		FBSTRING TMP$2744$2;
		FBSTRING TMP$2745$2;
		FBSTRING TMP$2746$2;
		__builtin_memset( &TMP$2742$2, 0, 24ll );
		__builtin_memset( &TMP$2740$2, 0, 24ll );
		FBSTRING* vr$695 = fb_StrConcat( &TMP$2740$2, (void*)&CODE1$1, -1ll, (void*)&PREFIX$1, -1ll );
		__builtin_memset( &TMP$2741$2, 0, 24ll );
		FBSTRING* vr$698 = fb_StrConcat( &TMP$2741$2, (void*)vr$695, -1ll, (void*)&OP2$1, -1ll );
		fb_StrAssign( (void*)&TMP$2742$2, -1ll, (void*)vr$698, -1ll, 0 );
		HWRITEASM64( &TMP$2742$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2742$2 );
		__builtin_memset( &TMP$2746$2, 0, 24ll );
		__builtin_memset( &TMP$2743$2, 0, 24ll );
		FBSTRING* vr$708 = fb_StrConcat( &TMP$2743$2, (void*)"mov ", 5ll, (void*)&PREFIX$1, -1ll );
		__builtin_memset( &TMP$2744$2, 0, 24ll );
		FBSTRING* vr$711 = fb_StrConcat( &TMP$2744$2, (void*)vr$708, -1ll, (void*)&OP1$1, -1ll );
		__builtin_memset( &TMP$2745$2, 0, 24ll );
		FBSTRING* vr$714 = fb_StrConcat( &TMP$2745$2, (void*)vr$711, -1ll, (void*)&CODE2$1, -1ll );
		fb_StrAssign( (void*)&TMP$2746$2, -1ll, (void*)vr$714, -1ll, 0 );
		HWRITEASM64( &TMP$2746$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2746$2 );
	}
	goto label$2091;
	label$2116:;
	{
		int32 vr$719 = fb_StrCompare( (void*)&OP3$1, -1ll, (void*)"", 1ll );
		if( (int64)vr$719 == 0ll ) goto label$2118;
		{
			EMITOP3_OP4( &OP3$1 );
			label$2118:;
		}
		int32 vr$723 = fb_StrCompare( (void*)&OP4$1, -1ll, (void*)"", 1ll );
		if( (int64)vr$723 == 0ll ) goto label$2120;
		{
			EMITOP3_OP4( &OP4$1 );
			label$2120:;
		}
		if( *(int64*)V2$1 != 0ll ) goto label$2122;
		{
			{
				$15IRVREGTYPE_ENUM TMP$2747$4;
				TMP$2747$4 = *($15IRVREGTYPE_ENUM*)V1$1;
				if( TMP$2747$4 != 4ll ) goto label$2124;
				label$2125:;
				{
					FBSTRING TMP$2749$5;
					FBSTRING TMP$2750$5;
					FBSTRING TMP$2751$5;
					FBSTRING TMP$2752$5;
					FBSTRING TMP$2753$5;
					__builtin_memset( &TMP$2753$5, 0, 24ll );
					__builtin_memset( &TMP$2749$5, 0, 24ll );
					FBSTRING* vr$734 = fb_StrConcat( &TMP$2749$5, (void*)"movNOTUSED? ", 13ll, (void*)&PREFIX$1, -1ll );
					__builtin_memset( &TMP$2750$5, 0, 24ll );
					FBSTRING* vr$737 = fb_StrConcat( &TMP$2750$5, (void*)vr$734, -1ll, (void*)&OP1$1, -1ll );
					__builtin_memset( &TMP$2751$5, 0, 24ll );
					FBSTRING* vr$740 = fb_StrConcat( &TMP$2751$5, (void*)vr$737, -1ll, (void*)", ", 3ll );
					__builtin_memset( &TMP$2752$5, 0, 24ll );
					FBSTRING* vr$743 = fb_StrConcat( &TMP$2752$5, (void*)vr$740, -1ll, (void*)&OP2$1, -1ll );
					fb_StrAssign( (void*)&TMP$2753$5, -1ll, (void*)vr$743, -1ll, 0 );
					HWRITEASM64( &TMP$2753$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2753$5 );
				}
				goto label$2123;
				label$2124:;
				if( TMP$2747$4 == 1ll ) goto label$2127;
				label$2128:;
				if( TMP$2747$4 == 2ll ) goto label$2127;
				label$2129:;
				if( TMP$2747$4 != 3ll ) goto label$2126;
				label$2127:;
				{
					int64 TMP$2754$5;
					if( (int64)-(*(boolean*)((uint8*)&CTX$ + 416ll)) != -1ll ) goto label$2130;
					int64 vr$748 = FBGETOPTION( 0ll );
					TMP$2754$5 = (int64)-(vr$748 == 2ll);
					goto label$3130;
					label$2130:;
					TMP$2754$5 = 0ll;
					label$3130:;
					if( TMP$2754$5 == 0ll ) goto label$2132;
					{
						int64 TMP$2755$6;
						if( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) == (struct $8FBSYMBOL*)0ull ) goto label$2133;
						TMP$2755$6 = (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 8ll) != 0ll);
						goto label$3131;
						label$2133:;
						TMP$2755$6 = 0ll;
						label$3131:;
						if( TMP$2755$6 == 0ll ) goto label$2135;
						{
							FBSTRING TMP$2756$7;
							FBSTRING TMP$2757$7;
							FBSTRING TMP$2758$7;
							FBSTRING TMP$2759$7;
							FBSTRING TMP$2760$7;
							int32 vr$755 = REG_FINDFREE( 999998, -1ll );
							TEMPO$1 = vr$755;
							fb_StrAssign( (void*)&REGTEMPO$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)TEMPO$1 << (3ll & 63ll))), 0ll, 0 );
							*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)TEMPO$1 << (2ll & 63ll))) = -2;
							__builtin_memset( &TMP$2760$7, 0, 24ll );
							char* vr$763 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
							__builtin_memset( &TMP$2756$7, 0, 24ll );
							FBSTRING* vr$767 = fb_StrConcat( &TMP$2756$7, (void*)"mov ", 5ll, (void*)&REGTEMPO$1, -1ll );
							__builtin_memset( &TMP$2757$7, 0, 24ll );
							FBSTRING* vr$770 = fb_StrConcat( &TMP$2757$7, (void*)vr$767, -1ll, (void*)", ", 3ll );
							__builtin_memset( &TMP$2758$7, 0, 24ll );
							FBSTRING* vr$773 = fb_StrConcat( &TMP$2758$7, (void*)vr$770, -1ll, (void*)vr$763, 0ll );
							__builtin_memset( &TMP$2759$7, 0, 24ll );
							FBSTRING* vr$776 = fb_StrConcat( &TMP$2759$7, (void*)vr$773, -1ll, (void*)"@GOTPCREL[rip]", 15ll );
							fb_StrAssign( (void*)&TMP$2760$7, -1ll, (void*)vr$776, -1ll, 0 );
							HWRITEASM64( &TMP$2760$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$2760$7 );
							fb_StrAssign( (void*)&OP1$1, -1ll, (void*)"[", 2ll, 0 );
							fb_StrConcatAssign( (void*)&OP1$1, -1ll, (void*)&REGTEMPO$1, -1ll, 0 );
							fb_StrConcatAssign( (void*)&OP1$1, -1ll, (void*)"]", 2ll, 0 );
						}
						label$2135:;
						label$2134:;
					}
					label$2132:;
					label$2131:;
					{
						if( DTYPE$1 != 15ll ) goto label$2137;
						label$2138:;
						{
							FBSTRING TMP$2761$7;
							FBSTRING TMP$2762$7;
							FBSTRING TMP$2763$7;
							FBSTRING TMP$2764$7;
							FBSTRING TMP$2765$7;
							__builtin_memset( &TMP$2765$7, 0, 24ll );
							__builtin_memset( &TMP$2761$7, 0, 24ll );
							FBSTRING* vr$790 = fb_StrConcat( &TMP$2761$7, (void*)"mov ", 5ll, (void*)&PREFIX$1, -1ll );
							__builtin_memset( &TMP$2762$7, 0, 24ll );
							FBSTRING* vr$793 = fb_StrConcat( &TMP$2762$7, (void*)vr$790, -1ll, (void*)&OP1$1, -1ll );
							__builtin_memset( &TMP$2763$7, 0, 24ll );
							FBSTRING* vr$796 = fb_StrConcat( &TMP$2763$7, (void*)vr$793, -1ll, (void*)", ", 3ll );
							__builtin_memset( &TMP$2764$7, 0, 24ll );
							FBSTRING* vr$799 = fb_StrConcat( &TMP$2764$7, (void*)vr$796, -1ll, (void*)&OP2$1, -1ll );
							fb_StrAssign( (void*)&TMP$2765$7, -1ll, (void*)vr$799, -1ll, 0 );
							HWRITEASM64( &TMP$2765$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$2765$7 );
						}
						goto label$2136;
						label$2137:;
						if( DTYPE$1 != 16ll ) goto label$2139;
						label$2140:;
						{
							FBSTRING TMP$2766$7;
							FBSTRING TMP$2767$7;
							FBSTRING TMP$2768$7;
							FBSTRING TMP$2769$7;
							FBSTRING TMP$2770$7;
							FBSTRING TMP$2771$7;
							__builtin_memset( &TMP$2767$7, 0, 24ll );
							__builtin_memset( &TMP$2766$7, 0, 24ll );
							FBSTRING* vr$807 = fb_StrConcat( &TMP$2766$7, (void*)"mov rax, ", 10ll, (void*)&OP2$1, -1ll );
							fb_StrAssign( (void*)&TMP$2767$7, -1ll, (void*)vr$807, -1ll, 0 );
							HWRITEASM64( &TMP$2767$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$2767$7 );
							__builtin_memset( &TMP$2771$7, 0, 24ll );
							__builtin_memset( &TMP$2768$7, 0, 24ll );
							FBSTRING* vr$816 = fb_StrConcat( &TMP$2768$7, (void*)"mov ", 5ll, (void*)&PREFIX$1, -1ll );
							__builtin_memset( &TMP$2769$7, 0, 24ll );
							FBSTRING* vr$819 = fb_StrConcat( &TMP$2769$7, (void*)vr$816, -1ll, (void*)&OP1$1, -1ll );
							__builtin_memset( &TMP$2770$7, 0, 24ll );
							FBSTRING* vr$822 = fb_StrConcat( &TMP$2770$7, (void*)vr$819, -1ll, (void*)", rax", 6ll );
							fb_StrAssign( (void*)&TMP$2771$7, -1ll, (void*)vr$822, -1ll, 0 );
							HWRITEASM64( &TMP$2771$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$2771$7 );
						}
						goto label$2136;
						label$2139:;
						if( DTYPE$1 == 8ll ) goto label$2142;
						label$2143:;
						if( DTYPE$1 == 9ll ) goto label$2142;
						label$2144:;
						if( DTYPE$1 == 13ll ) goto label$2142;
						label$2145:;
						if( DTYPE$1 == 14ll ) goto label$2142;
						label$2146:;
						if( DTYPE$1 != 10ll ) goto label$2141;
						label$2142:;
						{
							if( ((int64)-(*(int64*)((uint8*)V2$1 + 48ll) < -2147483648ll) | (int64)-(*(uint64*)((uint8*)V2$1 + 48ll) > 4294967295ull)) == 0ll ) goto label$2148;
							{
								FBSTRING TMP$2772$8;
								FBSTRING TMP$2773$8;
								FBSTRING TMP$2774$8;
								FBSTRING TMP$2775$8;
								FBSTRING TMP$2776$8;
								FBSTRING TMP$2777$8;
								__builtin_memset( &TMP$2773$8, 0, 24ll );
								__builtin_memset( &TMP$2772$8, 0, 24ll );
								FBSTRING* vr$835 = fb_StrConcat( &TMP$2772$8, (void*)"mov rax, ", 10ll, (void*)&OP2$1, -1ll );
								fb_StrAssign( (void*)&TMP$2773$8, -1ll, (void*)vr$835, -1ll, 0 );
								HWRITEASM64( &TMP$2773$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$2773$8 );
								__builtin_memset( &TMP$2777$8, 0, 24ll );
								__builtin_memset( &TMP$2774$8, 0, 24ll );
								FBSTRING* vr$844 = fb_StrConcat( &TMP$2774$8, (void*)"mov ", 5ll, (void*)&PREFIX$1, -1ll );
								__builtin_memset( &TMP$2775$8, 0, 24ll );
								FBSTRING* vr$847 = fb_StrConcat( &TMP$2775$8, (void*)vr$844, -1ll, (void*)&OP1$1, -1ll );
								__builtin_memset( &TMP$2776$8, 0, 24ll );
								FBSTRING* vr$850 = fb_StrConcat( &TMP$2776$8, (void*)vr$847, -1ll, (void*)", rax", 6ll );
								fb_StrAssign( (void*)&TMP$2777$8, -1ll, (void*)vr$850, -1ll, 0 );
								HWRITEASM64( &TMP$2777$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$2777$8 );
							}
							goto label$2147;
							label$2148:;
							if( *(uint64*)((uint8*)V2$1 + 48ll) < 2147483648ull ) goto label$2149;
							{
								FBSTRING TMP$2778$8;
								FBSTRING TMP$2779$8;
								FBSTRING TMP$2780$8;
								FBSTRING TMP$2781$8;
								FBSTRING TMP$2782$8;
								FBSTRING TMP$2783$8;
								__builtin_memset( &TMP$2779$8, 0, 24ll );
								__builtin_memset( &TMP$2778$8, 0, 24ll );
								FBSTRING* vr$859 = fb_StrConcat( &TMP$2778$8, (void*)"mov eax, ", 10ll, (void*)&OP2$1, -1ll );
								fb_StrAssign( (void*)&TMP$2779$8, -1ll, (void*)vr$859, -1ll, 0 );
								HWRITEASM64( &TMP$2779$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$2779$8 );
								__builtin_memset( &TMP$2783$8, 0, 24ll );
								__builtin_memset( &TMP$2780$8, 0, 24ll );
								FBSTRING* vr$868 = fb_StrConcat( &TMP$2780$8, (void*)"mov ", 5ll, (void*)&PREFIX$1, -1ll );
								__builtin_memset( &TMP$2781$8, 0, 24ll );
								FBSTRING* vr$871 = fb_StrConcat( &TMP$2781$8, (void*)vr$868, -1ll, (void*)&OP1$1, -1ll );
								__builtin_memset( &TMP$2782$8, 0, 24ll );
								FBSTRING* vr$874 = fb_StrConcat( &TMP$2782$8, (void*)vr$871, -1ll, (void*)", rax", 6ll );
								fb_StrAssign( (void*)&TMP$2783$8, -1ll, (void*)vr$874, -1ll, 0 );
								HWRITEASM64( &TMP$2783$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$2783$8 );
							}
							goto label$2147;
							label$2149:;
							{
								FBSTRING TMP$2784$8;
								FBSTRING TMP$2785$8;
								FBSTRING TMP$2786$8;
								FBSTRING TMP$2787$8;
								FBSTRING TMP$2788$8;
								__builtin_memset( &TMP$2788$8, 0, 24ll );
								__builtin_memset( &TMP$2784$8, 0, 24ll );
								FBSTRING* vr$884 = fb_StrConcat( &TMP$2784$8, (void*)"mov ", 5ll, (void*)&PREFIX$1, -1ll );
								__builtin_memset( &TMP$2785$8, 0, 24ll );
								FBSTRING* vr$887 = fb_StrConcat( &TMP$2785$8, (void*)vr$884, -1ll, (void*)&OP1$1, -1ll );
								__builtin_memset( &TMP$2786$8, 0, 24ll );
								FBSTRING* vr$890 = fb_StrConcat( &TMP$2786$8, (void*)vr$887, -1ll, (void*)", ", 3ll );
								__builtin_memset( &TMP$2787$8, 0, 24ll );
								FBSTRING* vr$893 = fb_StrConcat( &TMP$2787$8, (void*)vr$890, -1ll, (void*)&OP2$1, -1ll );
								fb_StrAssign( (void*)&TMP$2788$8, -1ll, (void*)vr$893, -1ll, 0 );
								HWRITEASM64( &TMP$2788$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$2788$8 );
							}
							label$2147:;
						}
						goto label$2136;
						label$2141:;
						{
							FBSTRING TMP$2789$7;
							FBSTRING TMP$2790$7;
							FBSTRING TMP$2791$7;
							FBSTRING TMP$2792$7;
							FBSTRING TMP$2793$7;
							__builtin_memset( &TMP$2793$7, 0, 24ll );
							__builtin_memset( &TMP$2789$7, 0, 24ll );
							FBSTRING* vr$903 = fb_StrConcat( &TMP$2789$7, (void*)"mov ", 5ll, (void*)&PREFIX$1, -1ll );
							__builtin_memset( &TMP$2790$7, 0, 24ll );
							FBSTRING* vr$906 = fb_StrConcat( &TMP$2790$7, (void*)vr$903, -1ll, (void*)&OP1$1, -1ll );
							__builtin_memset( &TMP$2791$7, 0, 24ll );
							FBSTRING* vr$909 = fb_StrConcat( &TMP$2791$7, (void*)vr$906, -1ll, (void*)", ", 3ll );
							__builtin_memset( &TMP$2792$7, 0, 24ll );
							FBSTRING* vr$912 = fb_StrConcat( &TMP$2792$7, (void*)vr$909, -1ll, (void*)&OP2$1, -1ll );
							fb_StrAssign( (void*)&TMP$2793$7, -1ll, (void*)vr$912, -1ll, 0 );
							HWRITEASM64( &TMP$2793$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$2793$7 );
						}
						label$2150:;
						label$2136:;
					}
				}
				goto label$2123;
				label$2126:;
				{
					FBSTRING TMP$2794$5;
					FBSTRING TMP$2797$5;
					FBSTRING TMP$2798$5;
					__builtin_memset( &TMP$2794$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$2794$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$2794$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2794$5 );
					__builtin_memset( &TMP$2797$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$2797$5, -1ll, (void*)"FOUND AN ERROR : in store perhaps OFS not handled", 50ll, 0 );
					HWRITEASM64( &TMP$2797$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2797$5 );
					__builtin_memset( &TMP$2798$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$2798$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$2798$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2798$5 );
				}
				label$2151:;
				label$2123:;
			}
		}
		goto label$2121;
		label$2122:;
		if( *(int64*)V2$1 != 5ll ) goto label$2152;
		{
			int64 TMP$2799$3;
			int64 TMP$2800$3;
			int64 TMP$2806$3;
			FBSTRING TMP$2813$3;
			FBSTRING TMP$2814$3;
			FBSTRING TMP$2815$3;
			if( (*(int64*)((uint8*)V2$1 + 8ll) & 31ll) != 22ll ) goto label$2153;
			TMP$2799$3 = (int64)-((int64)-(*(boolean*)((uint8*)&CTX$ + 416ll)) == -1ll);
			goto label$3132;
			label$2153:;
			TMP$2799$3 = 0ll;
			label$3132:;
			if( TMP$2799$3 == 0ll ) goto label$2154;
			int64 vr$933 = FBGETOPTION( 0ll );
			TMP$2800$3 = (int64)-(vr$933 == 2ll);
			goto label$3133;
			label$2154:;
			TMP$2800$3 = 0ll;
			label$3133:;
			if( TMP$2800$3 == 0ll ) goto label$2156;
			{
				FBSTRING TMP$2801$4;
				FBSTRING TMP$2802$4;
				FBSTRING TMP$2803$4;
				__builtin_memset( &TMP$2803$4, 0, 24ll );
				FBSTRING* vr$936 = fb_StrAllocTempDescZEx( (char*)"[", 1ll );
				int64 vr$938 = fb_StrInstr( 1ll, (FBSTRING*)&OP2$1, (FBSTRING*)vr$936 );
				FBSTRING* vr$941 = fb_LEFT( (FBSTRING*)&OP2$1, vr$938 + -1ll );
				__builtin_memset( &TMP$2801$4, 0, 24ll );
				FBSTRING* vr$944 = fb_StrConcat( &TMP$2801$4, (void*)"mov rax, QWORD PTR ", 20ll, (void*)vr$941, -1ll );
				__builtin_memset( &TMP$2802$4, 0, 24ll );
				FBSTRING* vr$947 = fb_StrConcat( &TMP$2802$4, (void*)vr$944, -1ll, (void*)"@GOTPCREL[rip]", 15ll );
				fb_StrAssign( (void*)&TMP$2803$4, -1ll, (void*)vr$947, -1ll, 0 );
				HWRITEASM64( &TMP$2803$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2803$4 );
			}
			goto label$2155;
			label$2156:;
			{
				FBSTRING TMP$2804$4;
				FBSTRING TMP$2805$4;
				__builtin_memset( &TMP$2805$4, 0, 24ll );
				__builtin_memset( &TMP$2804$4, 0, 24ll );
				FBSTRING* vr$955 = fb_StrConcat( &TMP$2804$4, (void*)"lea rax, ", 10ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$2805$4, -1ll, (void*)vr$955, -1ll, 0 );
				HWRITEASM64( &TMP$2805$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2805$4 );
			}
			label$2155:;
			if( (int64)-(*(boolean*)((uint8*)&CTX$ + 416ll)) != -1ll ) goto label$2157;
			int64 vr$960 = FBGETOPTION( 0ll );
			TMP$2806$3 = (int64)-(vr$960 == 2ll);
			goto label$3134;
			label$2157:;
			TMP$2806$3 = 0ll;
			label$3134:;
			if( TMP$2806$3 == 0ll ) goto label$2159;
			{
				int64 TMP$2807$4;
				if( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) == (struct $8FBSYMBOL*)0ull ) goto label$2160;
				TMP$2807$4 = (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 8ll) != 0ll);
				goto label$3135;
				label$2160:;
				TMP$2807$4 = 0ll;
				label$3135:;
				if( TMP$2807$4 == 0ll ) goto label$2162;
				{
					FBSTRING TMP$2808$5;
					FBSTRING TMP$2809$5;
					FBSTRING TMP$2810$5;
					FBSTRING TMP$2811$5;
					FBSTRING TMP$2812$5;
					int32 vr$967 = REG_FINDFREE( 999998, -1ll );
					TEMPO$1 = vr$967;
					fb_StrAssign( (void*)&REGTEMPO$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)TEMPO$1 << (3ll & 63ll))), 0ll, 0 );
					*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)TEMPO$1 << (2ll & 63ll))) = -2;
					__builtin_memset( &TMP$2812$5, 0, 24ll );
					char* vr$975 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
					__builtin_memset( &TMP$2808$5, 0, 24ll );
					FBSTRING* vr$979 = fb_StrConcat( &TMP$2808$5, (void*)"mov ", 5ll, (void*)&REGTEMPO$1, -1ll );
					__builtin_memset( &TMP$2809$5, 0, 24ll );
					FBSTRING* vr$982 = fb_StrConcat( &TMP$2809$5, (void*)vr$979, -1ll, (void*)", ", 3ll );
					__builtin_memset( &TMP$2810$5, 0, 24ll );
					FBSTRING* vr$985 = fb_StrConcat( &TMP$2810$5, (void*)vr$982, -1ll, (void*)vr$975, 0ll );
					__builtin_memset( &TMP$2811$5, 0, 24ll );
					FBSTRING* vr$988 = fb_StrConcat( &TMP$2811$5, (void*)vr$985, -1ll, (void*)"@GOTPCREL[rip]", 15ll );
					fb_StrAssign( (void*)&TMP$2812$5, -1ll, (void*)vr$988, -1ll, 0 );
					HWRITEASM64( &TMP$2812$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2812$5 );
					fb_StrAssign( (void*)&OP1$1, -1ll, (void*)"[", 2ll, 0 );
					fb_StrConcatAssign( (void*)&OP1$1, -1ll, (void*)&REGTEMPO$1, -1ll, 0 );
					fb_StrConcatAssign( (void*)&OP1$1, -1ll, (void*)"]", 2ll, 0 );
				}
				label$2162:;
				label$2161:;
			}
			label$2159:;
			label$2158:;
			__builtin_memset( &TMP$2815$3, 0, 24ll );
			__builtin_memset( &TMP$2813$3, 0, 24ll );
			FBSTRING* vr$1000 = fb_StrConcat( &TMP$2813$3, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
			__builtin_memset( &TMP$2814$3, 0, 24ll );
			FBSTRING* vr$1003 = fb_StrConcat( &TMP$2814$3, (void*)vr$1000, -1ll, (void*)", rax", 6ll );
			fb_StrAssign( (void*)&TMP$2815$3, -1ll, (void*)vr$1003, -1ll, 0 );
			HWRITEASM64( &TMP$2815$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2815$3 );
		}
		goto label$2121;
		label$2152:;
		{
			int64 TMP$2816$3;
			FBSTRING TMP$2821$3;
			FBSTRING TMP$2822$3;
			FBSTRING TMP$2823$3;
			FBSTRING TMP$2824$3;
			if( (int64)-(*(boolean*)((uint8*)&CTX$ + 416ll)) != -1ll ) goto label$2163;
			int64 vr$1008 = FBGETOPTION( 0ll );
			TMP$2816$3 = (int64)-(vr$1008 == 2ll);
			goto label$3136;
			label$2163:;
			TMP$2816$3 = 0ll;
			label$3136:;
			if( TMP$2816$3 == 0ll ) goto label$2165;
			{
				int64 TMP$2817$4;
				if( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) == (struct $8FBSYMBOL*)0ull ) goto label$2166;
				TMP$2817$4 = (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 8ll) != 0ll);
				goto label$3137;
				label$2166:;
				TMP$2817$4 = 0ll;
				label$3137:;
				if( TMP$2817$4 == 0ll ) goto label$2168;
				{
					FBSTRING TMP$2818$5;
					FBSTRING TMP$2819$5;
					FBSTRING TMP$2820$5;
					__builtin_memset( &TMP$2820$5, 0, 24ll );
					char* vr$1017 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
					__builtin_memset( &TMP$2818$5, 0, 24ll );
					FBSTRING* vr$1020 = fb_StrConcat( &TMP$2818$5, (void*)"mov rax, ", 10ll, (void*)vr$1017, 0ll );
					__builtin_memset( &TMP$2819$5, 0, 24ll );
					FBSTRING* vr$1023 = fb_StrConcat( &TMP$2819$5, (void*)vr$1020, -1ll, (void*)"@GOTPCREL[rip]", 15ll );
					fb_StrAssign( (void*)&TMP$2820$5, -1ll, (void*)vr$1023, -1ll, 0 );
					HWRITEASM64( &TMP$2820$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2820$5 );
					fb_StrAssign( (void*)&OP1$1, -1ll, (void*)"[rax]", 6ll, 0 );
				}
				label$2168:;
				label$2167:;
			}
			label$2165:;
			label$2164:;
			__builtin_memset( &TMP$2824$3, 0, 24ll );
			__builtin_memset( &TMP$2821$3, 0, 24ll );
			FBSTRING* vr$1033 = fb_StrConcat( &TMP$2821$3, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
			__builtin_memset( &TMP$2822$3, 0, 24ll );
			FBSTRING* vr$1036 = fb_StrConcat( &TMP$2822$3, (void*)vr$1033, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$2823$3, 0, 24ll );
			FBSTRING* vr$1039 = fb_StrConcat( &TMP$2823$3, (void*)vr$1036, -1ll, (void*)&OP2$1, -1ll );
			fb_StrAssign( (void*)&TMP$2824$3, -1ll, (void*)vr$1039, -1ll, 0 );
			HWRITEASM64( &TMP$2824$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2824$3 );
		}
		label$2121:;
	}
	label$2091:;
	fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
	fb_StrDelete( (FBSTRING*)&CODE2$1 );
	fb_StrDelete( (FBSTRING*)&CODE1$1 );
	fb_StrDelete( (FBSTRING*)&PREFIX$1 );
	fb_StrDelete( (FBSTRING*)&OP4$1 );
	fb_StrDelete( (FBSTRING*)&OP3$1 );
	fb_StrDelete( (FBSTRING*)&OP2$1 );
	fb_StrDelete( (FBSTRING*)&OP1$1 );
	label$1960:;
}

static void _EMITLOADRES( struct $6IRVREG* V1$1, struct $6IRVREG* VR$1 )
{
	label$2169:;
	FBSTRING OP1$1;
	__builtin_memset( &OP1$1, 0, 24ll );
	FBSTRING OP2$1;
	__builtin_memset( &OP2$1, 0, 24ll );
	FBSTRING OP3$1;
	__builtin_memset( &OP3$1, 0, 24ll );
	$11FB_DATATYPE DTYPE$1;
	DTYPE$1 = *(int64*)((uint8*)V1$1 + 8ll) & 511ll;
	int64 LGT$1;
	__builtin_memset( &LGT$1, 0, 8ll );
	{
		$15IRVREGTYPE_ENUM TMP$2825$2;
		TMP$2825$2 = *($15IRVREGTYPE_ENUM*)V1$1;
		if( TMP$2825$2 != 2ll ) goto label$2172;
		label$2173:;
		{
			PREPARE_IDX( V1$1, &OP1$1, &OP3$1 );
		}
		goto label$2171;
		label$2172:;
		if( TMP$2825$2 != 1ll ) goto label$2174;
		label$2175:;
		{
			if( ((int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 2ll) != 0ll) | (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 1ll) != 0ll)) == 0ll ) goto label$2177;
			{
				FBSTRING TMP$2826$4;
				FBSTRING TMP$2827$4;
				FBSTRING TMP$2828$4;
				FBSTRING* vr$19 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
				char* vr$21 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
				__builtin_memset( &TMP$2826$4, 0, 24ll );
				FBSTRING* vr$24 = fb_StrConcat( &TMP$2826$4, (void*)vr$21, 0ll, (void*)"[rip+", 6ll );
				__builtin_memset( &TMP$2827$4, 0, 24ll );
				FBSTRING* vr$27 = fb_StrConcat( &TMP$2827$4, (void*)vr$24, -1ll, (void*)vr$19, -1ll );
				__builtin_memset( &TMP$2828$4, 0, 24ll );
				FBSTRING* vr$30 = fb_StrConcat( &TMP$2828$4, (void*)vr$27, -1ll, (void*)"]", 2ll );
				fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$30, -1ll, 0 );
			}
			goto label$2176;
			label$2177:;
			{
				FBSTRING TMP$2829$4;
				FBSTRING* vr$33 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
				__builtin_memset( &TMP$2829$4, 0, 24ll );
				FBSTRING* vr$36 = fb_StrConcat( &TMP$2829$4, (void*)vr$33, -1ll, (void*)"[rbp]", 6ll );
				fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$36, -1ll, 0 );
			}
			label$2176:;
		}
		goto label$2171;
		label$2174:;
		if( TMP$2825$2 != 3ll ) goto label$2178;
		label$2179:;
		{
			FBSTRING TMP$2830$3;
			FBSTRING TMP$2831$3;
			FBSTRING TMP$2832$3;
			FBSTRING TMP$2833$3;
			FBSTRING TMP$2836$3;
			FBSTRING TMP$2837$3;
			int32 vr$41 = REG_FINDREAL( (int32)*(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 24ll) );
			FBSTRING* vr$45 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
			__builtin_memset( &TMP$2830$3, 0, 24ll );
			FBSTRING* vr$48 = fb_StrConcat( &TMP$2830$3, (void*)vr$45, -1ll, (void*)"[", 2ll );
			__builtin_memset( &TMP$2831$3, 0, 24ll );
			FBSTRING* vr$51 = fb_StrConcat( &TMP$2831$3, (void*)vr$48, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$41 << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$2832$3, 0, 24ll );
			FBSTRING* vr$54 = fb_StrConcat( &TMP$2832$3, (void*)vr$51, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$54, -1ll, 0 );
			__builtin_memset( &TMP$2833$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2833$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$2833$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2833$3 );
			__builtin_memset( &TMP$2836$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2836$3, -1ll, (void*)"FOUND AN ERROR : in loadres OFS not handled", 44ll, 0 );
			HWRITEASM64( &TMP$2836$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2836$3 );
			__builtin_memset( &TMP$2837$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2837$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$2837$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2837$3 );
		}
		goto label$2171;
		label$2178:;
		if( TMP$2825$2 != 4ll ) goto label$2180;
		label$2181:;
		{
			int32 vr$70 = REG_FINDREAL( (int32)*(int64*)((uint8*)V1$1 + 24ll) );
			fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$70 << (3ll & 63ll))), 0ll, 0 );
		}
		goto label$2171;
		label$2180:;
		{
			FBSTRING TMP$2838$3;
			FBSTRING TMP$2841$3;
			FBSTRING TMP$2842$3;
			__builtin_memset( &TMP$2838$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2838$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$2838$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2838$3 );
			__builtin_memset( &TMP$2841$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2841$3, -1ll, (void*)"FOUND AN ERROR : in loadres typ not handled", 44ll, 0 );
			HWRITEASM64( &TMP$2841$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2841$3 );
			__builtin_memset( &TMP$2842$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2842$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$2842$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2842$3 );
		}
		label$2182:;
		label$2171:;
	}
	int64 vr$86 = HISSTRUCTIN2REGS( V1$1 );
	if( vr$86 == 0ll ) goto label$2184;
	{
		int64 TMP$2843$2;
		FBSTRING TMP$2849$2;
		if( *(int64*)V1$1 != 1ll ) goto label$2185;
		TMP$2843$2 = (int64)-(((int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 2ll) != 0ll) | (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 1ll) != 0ll)) != 0ll);
		goto label$3138;
		label$2185:;
		TMP$2843$2 = -1ll;
		label$3138:;
		if( TMP$2843$2 == 0ll ) goto label$2187;
		{
			FBSTRING TMP$2844$3;
			FBSTRING TMP$2847$3;
			FBSTRING TMP$2848$3;
			__builtin_memset( &TMP$2844$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2844$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$2844$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2844$3 );
			__builtin_memset( &TMP$2847$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2847$3, -1ll, (void*)"FOUND AN ERROR : IR_VREGTYPE not handled in emitloadres (linux)", 64ll, 0 );
			HWRITEASM64( &TMP$2847$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2847$3 );
			__builtin_memset( &TMP$2848$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$2848$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$2848$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2848$3 );
		}
		label$2187:;
		label$2186:;
		LGT$1 = *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 80ll);
		FBSTRING* vr$114 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) + 8ll );
		__builtin_memset( &TMP$2849$2, 0, 24ll );
		FBSTRING* vr$117 = fb_StrConcat( &TMP$2849$2, (void*)vr$114, -1ll, (void*)"[rbp]", 6ll );
		fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$117, -1ll, 0 );
		{
			uint64 TMP$2850$3;
			TMP$2850$3 = *(uint64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 64ll) + 224ll);
			goto label$2189;
			label$2190:;
			{
				FBSTRING TMP$2851$4;
				FBSTRING TMP$2852$4;
				FBSTRING TMP$2854$4;
				FBSTRING TMP$2855$4;
				__builtin_memset( &TMP$2852$4, 0, 24ll );
				__builtin_memset( &TMP$2851$4, 0, 24ll );
				FBSTRING* vr$126 = fb_StrConcat( &TMP$2851$4, (void*)"mov rax, ", 10ll, (void*)&OP1$1, -1ll );
				fb_StrAssign( (void*)&TMP$2852$4, -1ll, (void*)vr$126, -1ll, 0 );
				HWRITEASM64( &TMP$2852$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2852$4 );
				__builtin_memset( &TMP$2855$4, 0, 24ll );
				__builtin_memset( &TMP$2854$4, 0, 24ll );
				FBSTRING* vr$134 = fb_StrConcat( &TMP$2854$4, (void*)"mov rdx, ", 10ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$2855$4, -1ll, (void*)vr$134, -1ll, 0 );
				HWRITEASM64( &TMP$2855$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2855$4 );
			}
			goto label$2188;
			label$2191:;
			{
				FBSTRING TMP$2856$4;
				FBSTRING TMP$2857$4;
				__builtin_memset( &TMP$2857$4, 0, 24ll );
				__builtin_memset( &TMP$2856$4, 0, 24ll );
				FBSTRING* vr$142 = fb_StrConcat( &TMP$2856$4, (void*)"mov rax, ", 10ll, (void*)&OP1$1, -1ll );
				fb_StrAssign( (void*)&TMP$2857$4, -1ll, (void*)vr$142, -1ll, 0 );
				HWRITEASM64( &TMP$2857$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2857$4 );
				if( LGT$1 != 12ll ) goto label$2193;
				{
					FBSTRING TMP$2858$5;
					FBSTRING TMP$2859$5;
					__builtin_memset( &TMP$2859$5, 0, 24ll );
					__builtin_memset( &TMP$2858$5, 0, 24ll );
					FBSTRING* vr$150 = fb_StrConcat( &TMP$2858$5, (void*)"movss xmm0, ", 13ll, (void*)&OP2$1, -1ll );
					fb_StrAssign( (void*)&TMP$2859$5, -1ll, (void*)vr$150, -1ll, 0 );
					HWRITEASM64( &TMP$2859$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2859$5 );
				}
				goto label$2192;
				label$2193:;
				{
					FBSTRING TMP$2860$5;
					FBSTRING TMP$2861$5;
					__builtin_memset( &TMP$2861$5, 0, 24ll );
					__builtin_memset( &TMP$2860$5, 0, 24ll );
					FBSTRING* vr$158 = fb_StrConcat( &TMP$2860$5, (void*)"movsd xmm0, ", 13ll, (void*)&OP2$1, -1ll );
					fb_StrAssign( (void*)&TMP$2861$5, -1ll, (void*)vr$158, -1ll, 0 );
					HWRITEASM64( &TMP$2861$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2861$5 );
				}
				label$2192:;
			}
			goto label$2188;
			label$2194:;
			{
				FBSTRING TMP$2862$4;
				FBSTRING TMP$2863$4;
				FBSTRING TMP$2864$4;
				FBSTRING TMP$2865$4;
				FBSTRING TMP$2866$4;
				FBSTRING TMP$2867$4;
				__builtin_memset( &TMP$2863$4, 0, 24ll );
				__builtin_memset( &TMP$2862$4, 0, 24ll );
				FBSTRING* vr$166 = fb_StrConcat( &TMP$2862$4, (void*)"movsd xmm0, ", 13ll, (void*)&OP1$1, -1ll );
				fb_StrAssign( (void*)&TMP$2863$4, -1ll, (void*)vr$166, -1ll, 0 );
				HWRITEASM64( &TMP$2863$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2863$4 );
				__builtin_memset( &TMP$2867$4, 0, 24ll );
				__builtin_memset( &TMP$2864$4, 0, 24ll );
				FBSTRING* vr$174 = fb_StrConcat( &TMP$2864$4, (void*)"mov ", 5ll, *(void**)REGSTRQ$, 0ll );
				__builtin_memset( &TMP$2865$4, 0, 24ll );
				FBSTRING* vr$177 = fb_StrConcat( &TMP$2865$4, (void*)vr$174, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$2866$4, 0, 24ll );
				FBSTRING* vr$180 = fb_StrConcat( &TMP$2866$4, (void*)vr$177, -1ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$2867$4, -1ll, (void*)vr$180, -1ll, 0 );
				HWRITEASM64( &TMP$2867$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2867$4 );
			}
			goto label$2188;
			label$2195:;
			{
				FBSTRING TMP$2868$4;
				FBSTRING TMP$2869$4;
				__builtin_memset( &TMP$2869$4, 0, 24ll );
				__builtin_memset( &TMP$2868$4, 0, 24ll );
				FBSTRING* vr$188 = fb_StrConcat( &TMP$2868$4, (void*)"movsd xmm0, ", 13ll, (void*)&OP1$1, -1ll );
				fb_StrAssign( (void*)&TMP$2869$4, -1ll, (void*)vr$188, -1ll, 0 );
				HWRITEASM64( &TMP$2869$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2869$4 );
				if( LGT$1 != 12ll ) goto label$2197;
				{
					FBSTRING TMP$2871$5;
					FBSTRING TMP$2872$5;
					__builtin_memset( &TMP$2872$5, 0, 24ll );
					__builtin_memset( &TMP$2871$5, 0, 24ll );
					FBSTRING* vr$196 = fb_StrConcat( &TMP$2871$5, (void*)"movss xmm1, ", 13ll, (void*)&OP2$1, -1ll );
					fb_StrAssign( (void*)&TMP$2872$5, -1ll, (void*)vr$196, -1ll, 0 );
					HWRITEASM64( &TMP$2872$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2872$5 );
				}
				goto label$2196;
				label$2197:;
				{
					FBSTRING TMP$2874$5;
					FBSTRING TMP$2875$5;
					__builtin_memset( &TMP$2875$5, 0, 24ll );
					__builtin_memset( &TMP$2874$5, 0, 24ll );
					FBSTRING* vr$204 = fb_StrConcat( &TMP$2874$5, (void*)"movsd xmm1, ", 13ll, (void*)&OP2$1, -1ll );
					fb_StrAssign( (void*)&TMP$2875$5, -1ll, (void*)vr$204, -1ll, 0 );
					HWRITEASM64( &TMP$2875$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2875$5 );
				}
				label$2196:;
			}
			goto label$2188;
			label$2189:;
			static const void* tmp$4077[5ll] = {
				&&label$2190,
				&&label$2191,
				&&label$2188,
				&&label$2194,
				&&label$2195,
			};
			if( (TMP$2850$3 - 2ull) > 4ull ) goto label$2188;
			goto *tmp$4077[TMP$2850$3 - 2ull];
			label$2188:;
		}
	}
	goto label$2183;
	label$2184:;
	{
		int64 TMP$2876$2;
		if( (DTYPE$1 & 480ll) == 0ll ) goto label$2198;
		TMP$2876$2 = 24ll;
		goto label$3139;
		label$2198:;
		TMP$2876$2 = DTYPE$1 & 31ll;
		label$3139:;
		if( TMP$2876$2 != 24ll ) goto label$2200;
		{
			DTYPE$1 = 8ll;
			label$2200:;
		}
		int32 vr$211 = fb_StrCompare( (void*)&OP3$1, -1ll, (void*)"", 1ll );
		if( (int64)vr$211 == 0ll ) goto label$2202;
		{
			EMITOP3_OP4( &OP3$1 );
			label$2202:;
		}
		{
			if( DTYPE$1 != 16ll ) goto label$2204;
			label$2205:;
			{
				if( (*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 56ll) & 511ll) == 20ll ) goto label$2207;
				{
					FBSTRING TMP$2877$5;
					FBSTRING TMP$2878$5;
					__builtin_memset( &TMP$2878$5, 0, 24ll );
					__builtin_memset( &TMP$2877$5, 0, 24ll );
					FBSTRING* vr$221 = fb_StrConcat( &TMP$2877$5, (void*)"movq xmm0, ", 12ll, (void*)&OP1$1, -1ll );
					fb_StrAssign( (void*)&TMP$2878$5, -1ll, (void*)vr$221, -1ll, 0 );
					HWRITEASM64( &TMP$2878$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2878$5 );
				}
				goto label$2206;
				label$2207:;
				{
					if( (*(int64*)((uint8*)&ENV$ + 568ll) & 16ll) == 0ll ) goto label$2209;
					{
						if( (*(int64*)((uint8*)&ENV$ + 568ll) & 32ll) == 0ll ) goto label$2211;
						{
							FBSTRING TMP$2879$7;
							FBSTRING TMP$2880$7;
							__builtin_memset( &TMP$2880$7, 0, 24ll );
							__builtin_memset( &TMP$2879$7, 0, 24ll );
							FBSTRING* vr$231 = fb_StrConcat( &TMP$2879$7, (void*)"movq xmm0, ", 12ll, (void*)&OP1$1, -1ll );
							fb_StrAssign( (void*)&TMP$2880$7, -1ll, (void*)vr$231, -1ll, 0 );
							HWRITEASM64( &TMP$2880$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$2880$7 );
						}
						goto label$2210;
						label$2211:;
						{
							FBSTRING TMP$2881$7;
							FBSTRING TMP$2882$7;
							__builtin_memset( &TMP$2882$7, 0, 24ll );
							__builtin_memset( &TMP$2881$7, 0, 24ll );
							FBSTRING* vr$239 = fb_StrConcat( &TMP$2881$7, (void*)"mov rax, ", 10ll, (void*)&OP1$1, -1ll );
							fb_StrAssign( (void*)&TMP$2882$7, -1ll, (void*)vr$239, -1ll, 0 );
							HWRITEASM64( &TMP$2882$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$2882$7 );
						}
						label$2210:;
					}
					goto label$2208;
					label$2209:;
					{
						FBSTRING TMP$2883$6;
						FBSTRING TMP$2884$6;
						__builtin_memset( &TMP$2884$6, 0, 24ll );
						__builtin_memset( &TMP$2883$6, 0, 24ll );
						FBSTRING* vr$247 = fb_StrConcat( &TMP$2883$6, (void*)"movq xmm0, ", 12ll, (void*)&OP1$1, -1ll );
						fb_StrAssign( (void*)&TMP$2884$6, -1ll, (void*)vr$247, -1ll, 0 );
						HWRITEASM64( &TMP$2884$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2884$6 );
					}
					label$2208:;
				}
				label$2206:;
			}
			goto label$2203;
			label$2204:;
			if( DTYPE$1 != 15ll ) goto label$2212;
			label$2213:;
			{
				if( (*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 56ll) & 511ll) == 20ll ) goto label$2215;
				{
					FBSTRING TMP$2885$5;
					FBSTRING TMP$2886$5;
					__builtin_memset( &TMP$2886$5, 0, 24ll );
					__builtin_memset( &TMP$2885$5, 0, 24ll );
					FBSTRING* vr$258 = fb_StrConcat( &TMP$2885$5, (void*)"movd xmm0, ", 12ll, (void*)&OP1$1, -1ll );
					fb_StrAssign( (void*)&TMP$2886$5, -1ll, (void*)vr$258, -1ll, 0 );
					HWRITEASM64( &TMP$2886$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2886$5 );
				}
				goto label$2214;
				label$2215:;
				{
					if( (*(int64*)((uint8*)&ENV$ + 568ll) & 16ll) == 0ll ) goto label$2217;
					{
						if( (*(int64*)((uint8*)&ENV$ + 568ll) & 32ll) == 0ll ) goto label$2219;
						{
							FBSTRING TMP$2887$7;
							FBSTRING TMP$2888$7;
							__builtin_memset( &TMP$2888$7, 0, 24ll );
							__builtin_memset( &TMP$2887$7, 0, 24ll );
							FBSTRING* vr$268 = fb_StrConcat( &TMP$2887$7, (void*)"movd xmm0, ", 12ll, (void*)&OP1$1, -1ll );
							fb_StrAssign( (void*)&TMP$2888$7, -1ll, (void*)vr$268, -1ll, 0 );
							HWRITEASM64( &TMP$2888$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$2888$7 );
						}
						goto label$2218;
						label$2219:;
						{
							FBSTRING TMP$2889$7;
							FBSTRING TMP$2890$7;
							__builtin_memset( &TMP$2890$7, 0, 24ll );
							__builtin_memset( &TMP$2889$7, 0, 24ll );
							FBSTRING* vr$276 = fb_StrConcat( &TMP$2889$7, (void*)"mov eax, ", 10ll, (void*)&OP1$1, -1ll );
							fb_StrAssign( (void*)&TMP$2890$7, -1ll, (void*)vr$276, -1ll, 0 );
							HWRITEASM64( &TMP$2890$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$2890$7 );
						}
						label$2218:;
					}
					goto label$2216;
					label$2217:;
					{
						FBSTRING TMP$2891$6;
						FBSTRING TMP$2892$6;
						__builtin_memset( &TMP$2892$6, 0, 24ll );
						__builtin_memset( &TMP$2891$6, 0, 24ll );
						FBSTRING* vr$284 = fb_StrConcat( &TMP$2891$6, (void*)"movd xmm0, ", 12ll, (void*)&OP1$1, -1ll );
						fb_StrAssign( (void*)&TMP$2892$6, -1ll, (void*)vr$284, -1ll, 0 );
						HWRITEASM64( &TMP$2892$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$2892$6 );
					}
					label$2216:;
				}
				label$2214:;
			}
			goto label$2203;
			label$2212:;
			if( DTYPE$1 == 8ll ) goto label$2221;
			label$2222:;
			if( DTYPE$1 == 9ll ) goto label$2221;
			label$2223:;
			if( DTYPE$1 == 13ll ) goto label$2221;
			label$2224:;
			if( DTYPE$1 == 14ll ) goto label$2221;
			label$2225:;
			if( DTYPE$1 != 10ll ) goto label$2220;
			label$2221:;
			{
				FBSTRING TMP$2893$4;
				FBSTRING TMP$2894$4;
				FBSTRING TMP$2895$4;
				FBSTRING TMP$2896$4;
				__builtin_memset( &TMP$2896$4, 0, 24ll );
				__builtin_memset( &TMP$2893$4, 0, 24ll );
				FBSTRING* vr$292 = fb_StrConcat( &TMP$2893$4, (void*)"mov ", 5ll, *(void**)REGSTRQ$, 0ll );
				__builtin_memset( &TMP$2894$4, 0, 24ll );
				FBSTRING* vr$295 = fb_StrConcat( &TMP$2894$4, (void*)vr$292, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$2895$4, 0, 24ll );
				FBSTRING* vr$298 = fb_StrConcat( &TMP$2895$4, (void*)vr$295, -1ll, (void*)&OP1$1, -1ll );
				fb_StrAssign( (void*)&TMP$2896$4, -1ll, (void*)vr$298, -1ll, 0 );
				HWRITEASM64( &TMP$2896$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2896$4 );
			}
			goto label$2203;
			label$2220:;
			if( DTYPE$1 == 11ll ) goto label$2227;
			label$2228:;
			if( DTYPE$1 != 12ll ) goto label$2226;
			label$2227:;
			{
				FBSTRING TMP$2897$4;
				FBSTRING TMP$2898$4;
				FBSTRING TMP$2899$4;
				FBSTRING TMP$2900$4;
				__builtin_memset( &TMP$2900$4, 0, 24ll );
				__builtin_memset( &TMP$2897$4, 0, 24ll );
				FBSTRING* vr$306 = fb_StrConcat( &TMP$2897$4, (void*)"mov ", 5ll, *(void**)REGSTRD$, 0ll );
				__builtin_memset( &TMP$2898$4, 0, 24ll );
				FBSTRING* vr$309 = fb_StrConcat( &TMP$2898$4, (void*)vr$306, -1ll, (void*)", DWORD PTR ", 13ll );
				__builtin_memset( &TMP$2899$4, 0, 24ll );
				FBSTRING* vr$312 = fb_StrConcat( &TMP$2899$4, (void*)vr$309, -1ll, (void*)&OP1$1, -1ll );
				fb_StrAssign( (void*)&TMP$2900$4, -1ll, (void*)vr$312, -1ll, 0 );
				HWRITEASM64( &TMP$2900$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2900$4 );
			}
			goto label$2203;
			label$2226:;
			if( DTYPE$1 == 5ll ) goto label$2230;
			label$2231:;
			if( DTYPE$1 != 6ll ) goto label$2229;
			label$2230:;
			{
				FBSTRING TMP$2901$4;
				FBSTRING TMP$2902$4;
				FBSTRING TMP$2903$4;
				FBSTRING TMP$2904$4;
				__builtin_memset( &TMP$2904$4, 0, 24ll );
				__builtin_memset( &TMP$2901$4, 0, 24ll );
				FBSTRING* vr$320 = fb_StrConcat( &TMP$2901$4, (void*)"movzx ", 7ll, *(void**)REGSTRQ$, 0ll );
				__builtin_memset( &TMP$2902$4, 0, 24ll );
				FBSTRING* vr$323 = fb_StrConcat( &TMP$2902$4, (void*)vr$320, -1ll, (void*)", WORD PTR ", 12ll );
				__builtin_memset( &TMP$2903$4, 0, 24ll );
				FBSTRING* vr$326 = fb_StrConcat( &TMP$2903$4, (void*)vr$323, -1ll, (void*)&OP1$1, -1ll );
				fb_StrAssign( (void*)&TMP$2904$4, -1ll, (void*)vr$326, -1ll, 0 );
				HWRITEASM64( &TMP$2904$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2904$4 );
			}
			goto label$2203;
			label$2229:;
			if( DTYPE$1 == 2ll ) goto label$2233;
			label$2234:;
			if( DTYPE$1 == 3ll ) goto label$2233;
			label$2235:;
			if( DTYPE$1 == 1ll ) goto label$2233;
			label$2236:;
			if( DTYPE$1 != 4ll ) goto label$2232;
			label$2233:;
			{
				FBSTRING TMP$2905$4;
				FBSTRING TMP$2906$4;
				FBSTRING TMP$2907$4;
				FBSTRING TMP$2908$4;
				__builtin_memset( &TMP$2908$4, 0, 24ll );
				__builtin_memset( &TMP$2905$4, 0, 24ll );
				FBSTRING* vr$334 = fb_StrConcat( &TMP$2905$4, (void*)"movzx ", 7ll, *(void**)REGSTRQ$, 0ll );
				__builtin_memset( &TMP$2906$4, 0, 24ll );
				FBSTRING* vr$337 = fb_StrConcat( &TMP$2906$4, (void*)vr$334, -1ll, (void*)", BYTE PTR ", 12ll );
				__builtin_memset( &TMP$2907$4, 0, 24ll );
				FBSTRING* vr$340 = fb_StrConcat( &TMP$2907$4, (void*)vr$337, -1ll, (void*)&OP1$1, -1ll );
				fb_StrAssign( (void*)&TMP$2908$4, -1ll, (void*)vr$340, -1ll, 0 );
				HWRITEASM64( &TMP$2908$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2908$4 );
			}
			goto label$2203;
			label$2232:;
			{
				FBSTRING TMP$2909$4;
				FBSTRING TMP$2913$4;
				FBSTRING TMP$2914$4;
				FBSTRING TMP$2915$4;
				__builtin_memset( &TMP$2909$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2909$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$2909$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2909$4 );
				__builtin_memset( &TMP$2914$4, 0, 24ll );
				FBSTRING* vr$350 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 8ll) );
				__builtin_memset( &TMP$2913$4, 0, 24ll );
				FBSTRING* vr$353 = fb_StrConcat( &TMP$2913$4, (void*)"FOUND AN ERROR : in loadres datatype not handled = ", 52ll, (void*)vr$350, -1ll );
				fb_StrAssign( (void*)&TMP$2914$4, -1ll, (void*)vr$353, -1ll, 0 );
				HWRITEASM64( &TMP$2914$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2914$4 );
				__builtin_memset( &TMP$2915$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$2915$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$2915$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2915$4 );
			}
			label$2237:;
			label$2203:;
		}
	}
	label$2183:;
	fb_StrDelete( (FBSTRING*)&OP3$1 );
	fb_StrDelete( (FBSTRING*)&OP2$1 );
	fb_StrDelete( (FBSTRING*)&OP1$1 );
	label$2170:;
}

static void _EMITADDR( int64 OP$1, struct $6IRVREG* V1$1, struct $6IRVREG* VR$1 )
{
	int64 TMP$2921$1;
	label$2238:;
	FBSTRING OP1$1;
	__builtin_memset( &OP1$1, 0, 24ll );
	FBSTRING OP3$1;
	__builtin_memset( &OP3$1, 0, 24ll );
	if( *(int64*)VR$1 == 4ll ) goto label$2241;
	{
		FBSTRING TMP$2916$2;
		FBSTRING TMP$2919$2;
		FBSTRING TMP$2920$2;
		__builtin_memset( &TMP$2916$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$2916$2, -1ll, (void*)"", 1ll, 0 );
		HWRITEASM64( &TMP$2916$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2916$2 );
		__builtin_memset( &TMP$2919$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$2919$2, -1ll, (void*)"FOUND AN ERROR : vr in addrof/deref not a reg", 46ll, 0 );
		HWRITEASM64( &TMP$2919$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2919$2 );
		__builtin_memset( &TMP$2920$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$2920$2, -1ll, (void*)"", 1ll, 0 );
		HWRITEASM64( &TMP$2920$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$2920$2 );
		fb_StrDelete( (FBSTRING*)&OP3$1 );
		fb_StrDelete( (FBSTRING*)&OP1$1 );
		goto label$2239;
	}
	label$2241:;
	label$2240:;
	if( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) == (struct $8FBSYMBOL*)0ull ) goto label$2242;
	$19FB_CVA_LIST_TYPEDEF vr$22 = SYMBGETVALISTTYPE( *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 56ll), *(struct $8FBSYMBOL**)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 64ll) );
	TMP$2921$1 = (int64)-((struct $8FBSYMBOL*)((int64)-(vr$22 == 3ll) & (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 65536ll) != 0ll)) != (struct $8FBSYMBOL*)0ull);
	goto label$3140;
	label$2242:;
	TMP$2921$1 = 0ll;
	label$3140:;
	if( TMP$2921$1 == 0ll ) goto label$2244;
	{
		if( OP$1 != 22ll ) goto label$2246;
		{
			OP$1 = 76ll;
		}
		label$2246:;
		label$2245:;
	}
	label$2244:;
	label$2243:;
	REG_FINDFREE( (int32)*(int64*)((uint8*)VR$1 + 24ll), -1ll );
	{
		if( OP$1 != 22ll ) goto label$2248;
		label$2249:;
		{
			FBSTRING TMP$2943$3;
			FBSTRING TMP$2944$3;
			FBSTRING TMP$2945$3;
			FBSTRING TMP$2946$3;
			{
				$15IRVREGTYPE_ENUM TMP$2922$4;
				TMP$2922$4 = *($15IRVREGTYPE_ENUM*)V1$1;
				if( TMP$2922$4 != 2ll ) goto label$2251;
				label$2252:;
				{
					PREPARE_IDX( V1$1, &OP1$1, &OP3$1 );
				}
				goto label$2250;
				label$2251:;
				if( TMP$2922$4 != 1ll ) goto label$2253;
				label$2254:;
				{
					if( (((int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 2ll) != 0ll) | (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 1ll) != 0ll)) | (int64)-(*(int64*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) == 7ll)) == 0ll ) goto label$2256;
					{
						FBSTRING TMP$2923$6;
						FBSTRING TMP$2924$6;
						FBSTRING TMP$2925$6;
						FBSTRING* vr$49 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
						char* vr$51 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
						__builtin_memset( &TMP$2923$6, 0, 24ll );
						FBSTRING* vr$54 = fb_StrConcat( &TMP$2923$6, (void*)vr$51, 0ll, (void*)"[rip+", 6ll );
						__builtin_memset( &TMP$2924$6, 0, 24ll );
						FBSTRING* vr$57 = fb_StrConcat( &TMP$2924$6, (void*)vr$54, -1ll, (void*)vr$49, -1ll );
						__builtin_memset( &TMP$2925$6, 0, 24ll );
						FBSTRING* vr$60 = fb_StrConcat( &TMP$2925$6, (void*)vr$57, -1ll, (void*)"]", 2ll );
						fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$60, -1ll, 0 );
					}
					goto label$2255;
					label$2256:;
					{
						FBSTRING TMP$2926$6;
						FBSTRING* vr$63 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
						__builtin_memset( &TMP$2926$6, 0, 24ll );
						FBSTRING* vr$66 = fb_StrConcat( &TMP$2926$6, (void*)vr$63, -1ll, (void*)"[rbp]", 6ll );
						fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$66, -1ll, 0 );
					}
					label$2255:;
				}
				goto label$2250;
				label$2253:;
				if( TMP$2922$4 != 3ll ) goto label$2257;
				label$2258:;
				{
					FBSTRING TMP$2927$5;
					FBSTRING TMP$2928$5;
					FBSTRING TMP$2929$5;
					int32 vr$71 = REG_FINDREAL( (int32)*(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 24ll) );
					FBSTRING* vr$75 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
					__builtin_memset( &TMP$2927$5, 0, 24ll );
					FBSTRING* vr$78 = fb_StrConcat( &TMP$2927$5, (void*)vr$75, -1ll, (void*)"[", 2ll );
					__builtin_memset( &TMP$2928$5, 0, 24ll );
					FBSTRING* vr$81 = fb_StrConcat( &TMP$2928$5, (void*)vr$78, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$71 << (3ll & 63ll))), 0ll );
					__builtin_memset( &TMP$2929$5, 0, 24ll );
					FBSTRING* vr$84 = fb_StrConcat( &TMP$2929$5, (void*)vr$81, -1ll, (void*)"]", 2ll );
					fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$84, -1ll, 0 );
				}
				goto label$2250;
				label$2257:;
				if( TMP$2922$4 != 5ll ) goto label$2259;
				label$2260:;
				{
					FBSTRING TMP$2930$5;
					FBSTRING TMP$2931$5;
					FBSTRING TMP$2932$5;
					FBSTRING TMP$2933$5;
					FBSTRING TMP$2936$5;
					FBSTRING TMP$2937$5;
					FBSTRING* vr$87 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
					char* vr$89 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
					__builtin_memset( &TMP$2930$5, 0, 24ll );
					FBSTRING* vr$92 = fb_StrConcat( &TMP$2930$5, (void*)vr$89, 0ll, (void*)"[rip+", 6ll );
					__builtin_memset( &TMP$2931$5, 0, 24ll );
					FBSTRING* vr$95 = fb_StrConcat( &TMP$2931$5, (void*)vr$92, -1ll, (void*)vr$87, -1ll );
					__builtin_memset( &TMP$2932$5, 0, 24ll );
					FBSTRING* vr$98 = fb_StrConcat( &TMP$2932$5, (void*)vr$95, -1ll, (void*)"]", 2ll );
					fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$98, -1ll, 0 );
					__builtin_memset( &TMP$2933$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$2933$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$2933$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2933$5 );
					__builtin_memset( &TMP$2936$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$2936$5, -1ll, (void*)"FOUND AN ERROR : in emitaddr OFS not handled", 45ll, 0 );
					HWRITEASM64( &TMP$2936$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2936$5 );
					__builtin_memset( &TMP$2937$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$2937$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$2937$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2937$5 );
				}
				goto label$2250;
				label$2259:;
				{
					FBSTRING TMP$2938$5;
					FBSTRING TMP$2941$5;
					FBSTRING TMP$2942$5;
					__builtin_memset( &TMP$2938$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$2938$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$2938$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2938$5 );
					__builtin_memset( &TMP$2941$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$2941$5, -1ll, (void*)"FOUND AN ERROR : typ in addrof not handled", 43ll, 0 );
					HWRITEASM64( &TMP$2941$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2941$5 );
					__builtin_memset( &TMP$2942$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$2942$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$2942$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2942$5 );
				}
				label$2261:;
				label$2250:;
			}
			int32 vr$125 = fb_StrCompare( (void*)&OP3$1, -1ll, (void*)"", 1ll );
			if( (int64)vr$125 == 0ll ) goto label$2263;
			{
				EMITOP3_OP4( &OP3$1 );
				label$2263:;
			}
			__builtin_memset( &TMP$2946$3, 0, 24ll );
			int32 vr$132 = REG_FINDREAL( (int32)*(int64*)((uint8*)VR$1 + 24ll) );
			__builtin_memset( &TMP$2943$3, 0, 24ll );
			FBSTRING* vr$137 = fb_StrConcat( &TMP$2943$3, (void*)"lea ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$132 << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$2944$3, 0, 24ll );
			FBSTRING* vr$140 = fb_StrConcat( &TMP$2944$3, (void*)vr$137, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$2945$3, 0, 24ll );
			FBSTRING* vr$143 = fb_StrConcat( &TMP$2945$3, (void*)vr$140, -1ll, (void*)&OP1$1, -1ll );
			fb_StrAssign( (void*)&TMP$2946$3, -1ll, (void*)vr$143, -1ll, 0 );
			HWRITEASM64( &TMP$2946$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$2946$3 );
		}
		goto label$2247;
		label$2248:;
		if( OP$1 != 76ll ) goto label$2264;
		label$2265:;
		{
			{
				$15IRVREGTYPE_ENUM TMP$2947$4;
				TMP$2947$4 = *($15IRVREGTYPE_ENUM*)V1$1;
				if( TMP$2947$4 != 2ll ) goto label$2267;
				label$2268:;
				{
					PREPARE_IDX( V1$1, &OP1$1, &OP3$1 );
					int32 vr$151 = fb_StrCompare( (void*)&OP3$1, -1ll, (void*)"", 1ll );
					if( (int64)vr$151 == 0ll ) goto label$2270;
					{
						EMITOP3_OP4( &OP3$1 );
						label$2270:;
					}
				}
				goto label$2266;
				label$2267:;
				if( TMP$2947$4 != 1ll ) goto label$2271;
				label$2272:;
				{
					if( ((int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 2ll) != 0ll) | (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 1ll) != 0ll)) == 0ll ) goto label$2274;
					{
						int64 TMP$2948$6;
						int64 TMP$2949$6;
						if( (*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 8ll) == 0ll ) goto label$2275;
						TMP$2948$6 = (int64)-((int64)-(*(boolean*)((uint8*)&CTX$ + 416ll)) == -1ll);
						goto label$3141;
						label$2275:;
						TMP$2948$6 = 0ll;
						label$3141:;
						if( TMP$2948$6 == 0ll ) goto label$2276;
						int64 vr$168 = FBGETOPTION( 0ll );
						TMP$2949$6 = (int64)-(vr$168 == 2ll);
						goto label$3142;
						label$2276:;
						TMP$2949$6 = 0ll;
						label$3142:;
						if( TMP$2949$6 == 0ll ) goto label$2278;
						{
							FBSTRING TMP$2950$7;
							FBSTRING TMP$2951$7;
							FBSTRING TMP$2952$7;
							__builtin_memset( &TMP$2952$7, 0, 24ll );
							char* vr$172 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
							__builtin_memset( &TMP$2950$7, 0, 24ll );
							FBSTRING* vr$175 = fb_StrConcat( &TMP$2950$7, (void*)"mov rax, ", 10ll, (void*)vr$172, 0ll );
							__builtin_memset( &TMP$2951$7, 0, 24ll );
							FBSTRING* vr$178 = fb_StrConcat( &TMP$2951$7, (void*)vr$175, -1ll, (void*)"@GOTPCREL[rip]", 15ll );
							fb_StrAssign( (void*)&TMP$2952$7, -1ll, (void*)vr$178, -1ll, 0 );
							HWRITEASM64( &TMP$2952$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$2952$7 );
							fb_StrAssign( (void*)&OP1$1, -1ll, (void*)"[rax]", 6ll, 0 );
						}
						goto label$2277;
						label$2278:;
						{
							FBSTRING TMP$2953$7;
							FBSTRING TMP$2954$7;
							FBSTRING TMP$2955$7;
							FBSTRING* vr$184 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
							char* vr$186 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
							__builtin_memset( &TMP$2953$7, 0, 24ll );
							FBSTRING* vr$189 = fb_StrConcat( &TMP$2953$7, (void*)vr$186, 0ll, (void*)"[rip+", 6ll );
							__builtin_memset( &TMP$2954$7, 0, 24ll );
							FBSTRING* vr$192 = fb_StrConcat( &TMP$2954$7, (void*)vr$189, -1ll, (void*)vr$184, -1ll );
							__builtin_memset( &TMP$2955$7, 0, 24ll );
							FBSTRING* vr$195 = fb_StrConcat( &TMP$2955$7, (void*)vr$192, -1ll, (void*)"]", 2ll );
							fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$195, -1ll, 0 );
						}
						label$2277:;
					}
					goto label$2273;
					label$2274:;
					{
						FBSTRING TMP$2956$6;
						FBSTRING* vr$198 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
						__builtin_memset( &TMP$2956$6, 0, 24ll );
						FBSTRING* vr$201 = fb_StrConcat( &TMP$2956$6, (void*)vr$198, -1ll, (void*)"[rbp]", 6ll );
						fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$201, -1ll, 0 );
					}
					label$2273:;
				}
				goto label$2266;
				label$2271:;
				if( TMP$2947$4 != 3ll ) goto label$2279;
				label$2280:;
				{
					FBSTRING TMP$2957$5;
					FBSTRING TMP$2958$5;
					FBSTRING TMP$2959$5;
					int32 vr$206 = REG_FINDREAL( (int32)*(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 24ll) );
					FBSTRING* vr$210 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
					__builtin_memset( &TMP$2957$5, 0, 24ll );
					FBSTRING* vr$213 = fb_StrConcat( &TMP$2957$5, (void*)vr$210, -1ll, (void*)"[", 2ll );
					__builtin_memset( &TMP$2958$5, 0, 24ll );
					FBSTRING* vr$216 = fb_StrConcat( &TMP$2958$5, (void*)vr$213, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$206 << (3ll & 63ll))), 0ll );
					__builtin_memset( &TMP$2959$5, 0, 24ll );
					FBSTRING* vr$219 = fb_StrConcat( &TMP$2959$5, (void*)vr$216, -1ll, (void*)"]", 2ll );
					fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$219, -1ll, 0 );
				}
				goto label$2266;
				label$2279:;
				if( TMP$2947$4 != 5ll ) goto label$2281;
				label$2282:;
				{
					FBSTRING TMP$2960$5;
					FBSTRING TMP$2961$5;
					FBSTRING TMP$2962$5;
					FBSTRING* vr$222 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
					char* vr$224 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
					__builtin_memset( &TMP$2960$5, 0, 24ll );
					FBSTRING* vr$227 = fb_StrConcat( &TMP$2960$5, (void*)vr$224, 0ll, (void*)"[rip+", 6ll );
					__builtin_memset( &TMP$2961$5, 0, 24ll );
					FBSTRING* vr$230 = fb_StrConcat( &TMP$2961$5, (void*)vr$227, -1ll, (void*)vr$222, -1ll );
					__builtin_memset( &TMP$2962$5, 0, 24ll );
					FBSTRING* vr$233 = fb_StrConcat( &TMP$2962$5, (void*)vr$230, -1ll, (void*)"]", 2ll );
					fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$233, -1ll, 0 );
				}
				goto label$2266;
				label$2281:;
				if( TMP$2947$4 != 4ll ) goto label$2283;
				label$2284:;
				{
					FBSTRING TMP$2963$5;
					FBSTRING TMP$2964$5;
					int32 vr$237 = REG_FINDREAL( (int32)*(int64*)((uint8*)V1$1 + 24ll) );
					__builtin_memset( &TMP$2963$5, 0, 24ll );
					FBSTRING* vr$242 = fb_StrConcat( &TMP$2963$5, (void*)"[", 2ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$237 << (3ll & 63ll))), 0ll );
					__builtin_memset( &TMP$2964$5, 0, 24ll );
					FBSTRING* vr$245 = fb_StrConcat( &TMP$2964$5, (void*)vr$242, -1ll, (void*)"]", 2ll );
					fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$245, -1ll, 0 );
				}
				goto label$2266;
				label$2283:;
				{
					FBSTRING TMP$2965$5;
					FBSTRING TMP$2968$5;
					FBSTRING TMP$2969$5;
					__builtin_memset( &TMP$2965$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$2965$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$2965$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2965$5 );
					__builtin_memset( &TMP$2968$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$2968$5, -1ll, (void*)"FOUND AN ERROR : typ in deref not handled", 42ll, 0 );
					HWRITEASM64( &TMP$2968$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2968$5 );
					__builtin_memset( &TMP$2969$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$2969$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$2969$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$2969$5 );
				}
				label$2285:;
				label$2266:;
			}
			if( *(int64*)V1$1 != 5ll ) goto label$2287;
			{
				FBSTRING TMP$2970$4;
				FBSTRING TMP$2971$4;
				FBSTRING TMP$2972$4;
				FBSTRING TMP$2973$4;
				__builtin_memset( &TMP$2973$4, 0, 24ll );
				int32 vr$264 = REG_FINDREAL( (int32)*(int64*)((uint8*)VR$1 + 24ll) );
				__builtin_memset( &TMP$2970$4, 0, 24ll );
				FBSTRING* vr$269 = fb_StrConcat( &TMP$2970$4, (void*)"lea ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$264 << (3ll & 63ll))), 0ll );
				__builtin_memset( &TMP$2971$4, 0, 24ll );
				FBSTRING* vr$272 = fb_StrConcat( &TMP$2971$4, (void*)vr$269, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$2972$4, 0, 24ll );
				FBSTRING* vr$275 = fb_StrConcat( &TMP$2972$4, (void*)vr$272, -1ll, (void*)&OP1$1, -1ll );
				fb_StrAssign( (void*)&TMP$2973$4, -1ll, (void*)vr$275, -1ll, 0 );
				HWRITEASM64( &TMP$2973$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2973$4 );
			}
			goto label$2286;
			label$2287:;
			{
				FBSTRING TMP$2974$4;
				FBSTRING TMP$2975$4;
				FBSTRING TMP$2976$4;
				FBSTRING TMP$2977$4;
				__builtin_memset( &TMP$2977$4, 0, 24ll );
				int32 vr$283 = REG_FINDREAL( (int32)*(int64*)((uint8*)VR$1 + 24ll) );
				__builtin_memset( &TMP$2974$4, 0, 24ll );
				FBSTRING* vr$288 = fb_StrConcat( &TMP$2974$4, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$283 << (3ll & 63ll))), 0ll );
				__builtin_memset( &TMP$2975$4, 0, 24ll );
				FBSTRING* vr$291 = fb_StrConcat( &TMP$2975$4, (void*)vr$288, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$2976$4, 0, 24ll );
				FBSTRING* vr$294 = fb_StrConcat( &TMP$2976$4, (void*)vr$291, -1ll, (void*)&OP1$1, -1ll );
				fb_StrAssign( (void*)&TMP$2977$4, -1ll, (void*)vr$294, -1ll, 0 );
				HWRITEASM64( &TMP$2977$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$2977$4 );
			}
			label$2286:;
		}
		label$2264:;
		label$2247:;
	}
	fb_StrDelete( (FBSTRING*)&OP3$1 );
	fb_StrDelete( (FBSTRING*)&OP1$1 );
	label$2239:;
}

static void HDOCALL( struct $8FBSYMBOL* PROC$1, FBSTRING* PNAME$1, FBSTRING* FIRSTMOV$1, struct $6IRVREG* VR$1, int64 LEVEL$1, boolean VARIADIC$1, boolean CALLPTR$1 )
{
	int64 TMP$2987$1;
	int64 TMP$3372$1;
	label$2300:;
	int64 REG2$1;
	__builtin_memset( &REG2$1, 0, 8ll );
	int64 CPTARG$1;
	__builtin_memset( &CPTARG$1, 0, 8ll );
	int64 CPTINT$1;
	__builtin_memset( &CPTINT$1, 0, 8ll );
	int64 CPTFLOAT$1;
	__builtin_memset( &CPTFLOAT$1, 0, 8ll );
	$11FB_DATATYPE DTYPE$1;
	__builtin_memset( &DTYPE$1, 0, 8ll );
	struct $9IRCALLARG* ARG$1;
	struct $9IRCALLARG* PREV$1;
	struct $6IRVREG* V2$1;
	FBSTRING OP1$1;
	__builtin_memset( &OP1$1, 0, 24ll );
	FBSTRING OP3$1;
	__builtin_memset( &OP3$1, 0, 24ll );
	FBSTRING REGTEMPO$1;
	__builtin_memset( &REGTEMPO$1, 0, 24ll );
	boolean TOSTACK$1;
	__builtin_memset( &TOSTACK$1, 0, 1ll );
	int64 PARAMTYPE$1;
	__builtin_memset( &PARAMTYPE$1, 0, 8ll );
	int64 LGT$1;
	__builtin_memset( &LGT$1, 0, 8ll );
	int64 OFST$1;
	__builtin_memset( &OFST$1, 0, 8ll );
	FBSTRING PUSHSTR$1[301];
	__builtin_memset( (FBSTRING*)PUSHSTR$1, 0, 7224ll );
	struct $8FBARRAY1I8FBSTRINGE tmp$2986$1;
	*(FBSTRING**)&tmp$2986$1 = (FBSTRING*)PUSHSTR$1;
	*(FBSTRING**)((uint8*)&tmp$2986$1 + 8ll) = (FBSTRING*)PUSHSTR$1;
	*(int64*)((uint8*)&tmp$2986$1 + 16ll) = 7224ll;
	*(int64*)((uint8*)&tmp$2986$1 + 24ll) = 24ll;
	*(int64*)((uint8*)&tmp$2986$1 + 32ll) = 1ll;
	*(int64*)((uint8*)&tmp$2986$1 + 40ll) = 49ll;
	*(int64*)((uint8*)&tmp$2986$1 + 48ll) = 301ll;
	*(int64*)((uint8*)&tmp$2986$1 + 56ll) = 0ll;
	*(int64*)((uint8*)&tmp$2986$1 + 64ll) = 300ll;
	int64 PUSHNBSTR$1;
	__builtin_memset( &PUSHNBSTR$1, 0, 8ll );
	int64 PUSHSIZE$1;
	__builtin_memset( &PUSHSIZE$1, 0, 8ll );
	struct $6IRVREG* TEMPO1$1;
	__builtin_memset( &TEMPO1$1, 0, 8ll );
	$15FB_STRUCT_INREG RETIN2REGS$1;
	__builtin_memset( &RETIN2REGS$1, 0, 8ll );
	*(boolean*)((uint8*)&CTX$ + 257ll) = (boolean)1ll;
	if( CALLPTR$1 == (boolean)0ll ) goto label$2303;
	{
		REG_CALLPTR( PNAME$1, FIRSTMOV$1 );
		label$2303:;
	}
	*(int64*)((uint8*)&CTX$ + 216ll) = *(int64*)((uint8*)&CTX$ + 192ll) + 104ll;
	*(int64*)((uint8*)&CTX$ + 208ll) = *(int64*)((uint8*)&CTX$ + 216ll);
	void* vr$21 = LISTGETTAIL( (struct $5TLIST*)((uint8*)&IRHL$ + 120ll) );
	ARG$1 = (struct $9IRCALLARG*)vr$21;
	label$2304:;
	if( ARG$1 == (struct $9IRCALLARG*)0ull ) goto label$2306;
	TMP$2987$1 = (int64)-((struct $9IRCALLARG*)(int64)-(*(int64*)((uint8*)ARG$1 + 16ll) == LEVEL$1) != (struct $9IRCALLARG*)0ull);
	goto label$3143;
	label$2306:;
	TMP$2987$1 = 0ll;
	label$3143:;
	if( TMP$2987$1 == 0ll ) goto label$2305;
	{
		int64 TMP$3077$2;
		void* vr$25 = LISTGETPREV( (void*)ARG$1 );
		PREV$1 = (struct $9IRCALLARG*)vr$25;
		V2$1 = *(struct $6IRVREG**)((uint8*)ARG$1 + 8ll);
		fb_StrAssign( (void*)&OP3$1, -1ll, (void*)"", 1ll, 0 );
		REG2$1 = -1ll;
		$19FB_CVA_LIST_TYPEDEF vr$33 = SYMBGETVALISTTYPE( *(int64*)((uint8*)V2$1 + 8ll), *(struct $8FBSYMBOL**)((uint8*)V2$1 + 16ll) );
		if( ((int64)-((*(int64*)((uint8*)V2$1 + 8ll) & 480ll) == 0ll) & (int64)-(vr$33 == 3ll)) == 0ll ) goto label$2308;
		{
			struct $6IRVREG* vr$36 = IRHLALLOCVREG( 8ll, (struct $8FBSYMBOL*)0ull );
			TEMPO1$1 = vr$36;
			_EMITADDR( 22ll, V2$1, TEMPO1$1 );
			__builtin_memcpy( V2$1, TEMPO1$1, 120 );
		}
		label$2308:;
		label$2307:;
		DTYPE$1 = *(int64*)((uint8*)V2$1 + 8ll) & 511ll;
		{
			$15IRVREGTYPE_ENUM TMP$2988$3;
			TMP$2988$3 = *($15IRVREGTYPE_ENUM*)V2$1;
			if( TMP$2988$3 != 2ll ) goto label$2310;
			label$2311:;
			{
				if( *(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) != (struct $8FBSYMBOL*)0ull ) goto label$2313;
				{
					if( *(struct $8FBSYMBOL**)((uint8*)*(struct $6IRVREG**)((uint8*)V2$1 + 80ll) + 56ll) != (struct $8FBSYMBOL*)0ull ) goto label$2315;
					{
						if( *(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V2$1 + 80ll) + 24ll) == -1ll ) goto label$2317;
						{
							FBSTRING TMP$2989$7;
							FBSTRING TMP$2990$7;
							FBSTRING TMP$2991$7;
							int32 vr$48 = REG_FINDREAL( (int32)*(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V2$1 + 80ll) + 24ll) );
							REG2$1 = (int64)vr$48;
							FBSTRING* vr$52 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
							__builtin_memset( &TMP$2989$7, 0, 24ll );
							FBSTRING* vr$55 = fb_StrConcat( &TMP$2989$7, (void*)vr$52, -1ll, (void*)"[", 2ll );
							__builtin_memset( &TMP$2990$7, 0, 24ll );
							FBSTRING* vr$58 = fb_StrConcat( &TMP$2990$7, (void*)vr$55, -1ll, *(void**)((int64)(char**)REGSTRQ$ + (REG2$1 << (3ll & 63ll))), 0ll );
							__builtin_memset( &TMP$2991$7, 0, 24ll );
							FBSTRING* vr$61 = fb_StrConcat( &TMP$2991$7, (void*)vr$58, -1ll, (void*)"]", 2ll );
							fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$61, -1ll, 0 );
						}
						goto label$2316;
						label$2317:;
						{
							FBSTRING TMP$2992$7;
							FBSTRING TMP$2993$7;
							FBSTRING TMP$2994$7;
							FBSTRING TMP$2995$7;
							FBSTRING TMP$2996$7;
							FBSTRING TMP$2997$7;
							FBSTRING TMP$2998$7;
							FBSTRING TMP$2999$7;
							int32 vr$67 = REG_FINDREAL( (int32)*(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)*(struct $6IRVREG**)((uint8*)V2$1 + 80ll) + 80ll) + 24ll) );
							REG2$1 = (int64)vr$67;
							__builtin_memset( &TMP$2992$7, 0, 24ll );
							FBSTRING* vr$73 = fb_StrConcat( &TMP$2992$7, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + (REG2$1 << (3ll & 63ll))), 0ll );
							__builtin_memset( &TMP$2993$7, 0, 24ll );
							FBSTRING* vr$76 = fb_StrConcat( &TMP$2993$7, (void*)vr$73, -1ll, (void*)", ", 3ll );
							__builtin_memset( &TMP$2994$7, 0, 24ll );
							FBSTRING* vr$79 = fb_StrConcat( &TMP$2994$7, (void*)vr$76, -1ll, (void*)"[", 2ll );
							__builtin_memset( &TMP$2995$7, 0, 24ll );
							FBSTRING* vr$82 = fb_StrConcat( &TMP$2995$7, (void*)vr$79, -1ll, *(void**)((int64)(char**)REGSTRQ$ + (REG2$1 << (3ll & 63ll))), 0ll );
							__builtin_memset( &TMP$2996$7, 0, 24ll );
							FBSTRING* vr$85 = fb_StrConcat( &TMP$2996$7, (void*)vr$82, -1ll, (void*)"]", 2ll );
							fb_StrAssign( (void*)&OP3$1, -1ll, (void*)vr$85, -1ll, 0 );
							FBSTRING* vr$89 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
							__builtin_memset( &TMP$2997$7, 0, 24ll );
							FBSTRING* vr$92 = fb_StrConcat( &TMP$2997$7, (void*)vr$89, -1ll, (void*)"[", 2ll );
							__builtin_memset( &TMP$2998$7, 0, 24ll );
							FBSTRING* vr$95 = fb_StrConcat( &TMP$2998$7, (void*)vr$92, -1ll, *(void**)((int64)(char**)REGSTRQ$ + (REG2$1 << (3ll & 63ll))), 0ll );
							__builtin_memset( &TMP$2999$7, 0, 24ll );
							FBSTRING* vr$98 = fb_StrConcat( &TMP$2999$7, (void*)vr$95, -1ll, (void*)"]", 2ll );
							fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$98, -1ll, 0 );
						}
						label$2316:;
					}
					goto label$2314;
					label$2315:;
					{
						char* vr$100 = REG_TEMPO(  );
						fb_StrAssign( (void*)&REGTEMPO$1, -1ll, (void*)vr$100, 0ll, 0 );
						if( ((int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)*(struct $6IRVREG**)((uint8*)V2$1 + 80ll) + 56ll) + 8ll) & 2ll) != 0ll) | (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)*(struct $6IRVREG**)((uint8*)V2$1 + 80ll) + 56ll) + 8ll) & 1ll) != 0ll)) == 0ll ) goto label$2319;
						{
							FBSTRING TMP$3000$7;
							FBSTRING TMP$3001$7;
							FBSTRING TMP$3002$7;
							FBSTRING TMP$3003$7;
							FBSTRING TMP$3004$7;
							FBSTRING TMP$3005$7;
							FBSTRING TMP$3007$7;
							FBSTRING TMP$3008$7;
							FBSTRING TMP$3009$7;
							FBSTRING* vr$115 = fb_LongintToStr( *(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V2$1 + 80ll) + 64ll) );
							char* vr$118 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)*(struct $6IRVREG**)((uint8*)V2$1 + 80ll) + 56ll) );
							__builtin_memset( &TMP$3000$7, 0, 24ll );
							FBSTRING* vr$122 = fb_StrConcat( &TMP$3000$7, (void*)"lea ", 5ll, (void*)&REGTEMPO$1, -1ll );
							__builtin_memset( &TMP$3001$7, 0, 24ll );
							FBSTRING* vr$125 = fb_StrConcat( &TMP$3001$7, (void*)vr$122, -1ll, (void*)", ", 3ll );
							__builtin_memset( &TMP$3002$7, 0, 24ll );
							FBSTRING* vr$128 = fb_StrConcat( &TMP$3002$7, (void*)vr$125, -1ll, (void*)vr$118, 0ll );
							__builtin_memset( &TMP$3003$7, 0, 24ll );
							FBSTRING* vr$131 = fb_StrConcat( &TMP$3003$7, (void*)vr$128, -1ll, (void*)"[rip+", 6ll );
							__builtin_memset( &TMP$3004$7, 0, 24ll );
							FBSTRING* vr$134 = fb_StrConcat( &TMP$3004$7, (void*)vr$131, -1ll, (void*)vr$115, -1ll );
							__builtin_memset( &TMP$3005$7, 0, 24ll );
							FBSTRING* vr$137 = fb_StrConcat( &TMP$3005$7, (void*)vr$134, -1ll, (void*)"]", 2ll );
							fb_StrAssign( (void*)&OP3$1, -1ll, (void*)vr$137, -1ll, 0 );
							fb_StrConcatAssign( (void*)&OP3$1, -1ll, (void*)"\x0A", 2ll, 0 );
							FBSTRING* vr$141 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
							fb_StrConcatAssign( (void*)&OP3$1, -1ll, (void*)vr$141, -1ll, 0 );
							fb_StrConcatAssign( (void*)&OP3$1, -1ll, (void*)"mov ", 5ll, 0 );
							fb_StrConcatAssign( (void*)&OP3$1, -1ll, (void*)&REGTEMPO$1, -1ll, 0 );
							fb_StrConcatAssign( (void*)&OP3$1, -1ll, (void*)", ", 3ll, 0 );
							fb_StrConcatAssign( (void*)&OP3$1, -1ll, (void*)"[", 2ll, 0 );
							fb_StrConcatAssign( (void*)&OP3$1, -1ll, (void*)&REGTEMPO$1, -1ll, 0 );
							fb_StrConcatAssign( (void*)&OP3$1, -1ll, (void*)"]", 2ll, 0 );
							fb_StrConcatAssign( (void*)&OP3$1, -1ll, (void*)" #NO", 5ll, 0 );
							FBSTRING* vr$154 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
							__builtin_memset( &TMP$3007$7, 0, 24ll );
							FBSTRING* vr$157 = fb_StrConcat( &TMP$3007$7, (void*)vr$154, -1ll, (void*)"[", 2ll );
							__builtin_memset( &TMP$3008$7, 0, 24ll );
							FBSTRING* vr$160 = fb_StrConcat( &TMP$3008$7, (void*)vr$157, -1ll, (void*)&REGTEMPO$1, -1ll );
							__builtin_memset( &TMP$3009$7, 0, 24ll );
							FBSTRING* vr$163 = fb_StrConcat( &TMP$3009$7, (void*)vr$160, -1ll, (void*)"]", 2ll );
							fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$163, -1ll, 0 );
						}
						goto label$2318;
						label$2319:;
						{
							FBSTRING TMP$3010$7;
							FBSTRING TMP$3011$7;
							FBSTRING TMP$3012$7;
							FBSTRING TMP$3013$7;
							FBSTRING TMP$3014$7;
							FBSTRING TMP$3015$7;
							FBSTRING TMP$3016$7;
							FBSTRING* vr$167 = fb_LongintToStr( *(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V2$1 + 80ll) + 64ll) );
							__builtin_memset( &TMP$3010$7, 0, 24ll );
							FBSTRING* vr$171 = fb_StrConcat( &TMP$3010$7, (void*)"mov ", 5ll, (void*)&REGTEMPO$1, -1ll );
							__builtin_memset( &TMP$3011$7, 0, 24ll );
							FBSTRING* vr$174 = fb_StrConcat( &TMP$3011$7, (void*)vr$171, -1ll, (void*)", ", 3ll );
							__builtin_memset( &TMP$3012$7, 0, 24ll );
							FBSTRING* vr$177 = fb_StrConcat( &TMP$3012$7, (void*)vr$174, -1ll, (void*)vr$167, -1ll );
							__builtin_memset( &TMP$3013$7, 0, 24ll );
							FBSTRING* vr$180 = fb_StrConcat( &TMP$3013$7, (void*)vr$177, -1ll, (void*)"[rbp]", 6ll );
							fb_StrAssign( (void*)&OP3$1, -1ll, (void*)vr$180, -1ll, 0 );
							FBSTRING* vr$184 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
							__builtin_memset( &TMP$3014$7, 0, 24ll );
							FBSTRING* vr$187 = fb_StrConcat( &TMP$3014$7, (void*)vr$184, -1ll, (void*)"[", 2ll );
							__builtin_memset( &TMP$3015$7, 0, 24ll );
							FBSTRING* vr$190 = fb_StrConcat( &TMP$3015$7, (void*)vr$187, -1ll, (void*)&REGTEMPO$1, -1ll );
							__builtin_memset( &TMP$3016$7, 0, 24ll );
							FBSTRING* vr$193 = fb_StrConcat( &TMP$3016$7, (void*)vr$190, -1ll, (void*)"]", 2ll );
							fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$193, -1ll, 0 );
						}
						label$2318:;
					}
					label$2314:;
				}
				goto label$2312;
				label$2313:;
				{
					char* vr$195 = REG_TEMPO(  );
					fb_StrAssign( (void*)&REGTEMPO$1, -1ll, (void*)vr$195, 0ll, 0 );
					if( ((int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) + 8ll) & 2ll) != 0ll) | (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) + 8ll) & 1ll) != 0ll)) == 0ll ) goto label$2321;
					{
						FBSTRING TMP$3017$6;
						FBSTRING TMP$3018$6;
						FBSTRING TMP$3019$6;
						FBSTRING TMP$3020$6;
						FBSTRING TMP$3021$6;
						FBSTRING TMP$3022$6;
						FBSTRING* vr$207 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
						char* vr$209 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) );
						__builtin_memset( &TMP$3017$6, 0, 24ll );
						FBSTRING* vr$213 = fb_StrConcat( &TMP$3017$6, (void*)"lea ", 5ll, (void*)&REGTEMPO$1, -1ll );
						__builtin_memset( &TMP$3018$6, 0, 24ll );
						FBSTRING* vr$216 = fb_StrConcat( &TMP$3018$6, (void*)vr$213, -1ll, (void*)", ", 3ll );
						__builtin_memset( &TMP$3019$6, 0, 24ll );
						FBSTRING* vr$219 = fb_StrConcat( &TMP$3019$6, (void*)vr$216, -1ll, (void*)vr$209, 0ll );
						__builtin_memset( &TMP$3020$6, 0, 24ll );
						FBSTRING* vr$222 = fb_StrConcat( &TMP$3020$6, (void*)vr$219, -1ll, (void*)"[rip+", 6ll );
						__builtin_memset( &TMP$3021$6, 0, 24ll );
						FBSTRING* vr$225 = fb_StrConcat( &TMP$3021$6, (void*)vr$222, -1ll, (void*)vr$207, -1ll );
						__builtin_memset( &TMP$3022$6, 0, 24ll );
						FBSTRING* vr$228 = fb_StrConcat( &TMP$3022$6, (void*)vr$225, -1ll, (void*)"]", 2ll );
						fb_StrAssign( (void*)&OP3$1, -1ll, (void*)vr$228, -1ll, 0 );
					}
					goto label$2320;
					label$2321:;
					{
						FBSTRING TMP$3023$6;
						FBSTRING TMP$3024$6;
						FBSTRING TMP$3025$6;
						FBSTRING TMP$3026$6;
						FBSTRING* vr$231 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
						__builtin_memset( &TMP$3023$6, 0, 24ll );
						FBSTRING* vr$235 = fb_StrConcat( &TMP$3023$6, (void*)"lea ", 5ll, (void*)&REGTEMPO$1, -1ll );
						__builtin_memset( &TMP$3024$6, 0, 24ll );
						FBSTRING* vr$238 = fb_StrConcat( &TMP$3024$6, (void*)vr$235, -1ll, (void*)", ", 3ll );
						__builtin_memset( &TMP$3025$6, 0, 24ll );
						FBSTRING* vr$241 = fb_StrConcat( &TMP$3025$6, (void*)vr$238, -1ll, (void*)vr$231, -1ll );
						__builtin_memset( &TMP$3026$6, 0, 24ll );
						FBSTRING* vr$244 = fb_StrConcat( &TMP$3026$6, (void*)vr$241, -1ll, (void*)"[rbp]", 6ll );
						fb_StrAssign( (void*)&OP3$1, -1ll, (void*)vr$244, -1ll, 0 );
					}
					label$2320:;
					if( *(int64*)*(struct $6IRVREG**)((uint8*)V2$1 + 80ll) != 4ll ) goto label$2323;
					{
						FBSTRING TMP$3027$6;
						FBSTRING TMP$3028$6;
						FBSTRING TMP$3029$6;
						FBSTRING TMP$3030$6;
						int32 vr$251 = REG_FINDREAL( (int32)*(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V2$1 + 80ll) + 24ll) );
						REG2$1 = (int64)vr$251;
						__builtin_memset( &TMP$3027$6, 0, 24ll );
						FBSTRING* vr$257 = fb_StrConcat( &TMP$3027$6, (void*)"[", 2ll, (void*)&REGTEMPO$1, -1ll );
						__builtin_memset( &TMP$3028$6, 0, 24ll );
						FBSTRING* vr$260 = fb_StrConcat( &TMP$3028$6, (void*)vr$257, -1ll, (void*)"+", 2ll );
						__builtin_memset( &TMP$3029$6, 0, 24ll );
						FBSTRING* vr$263 = fb_StrConcat( &TMP$3029$6, (void*)vr$260, -1ll, *(void**)((int64)(char**)REGSTRQ$ + (REG2$1 << (3ll & 63ll))), 0ll );
						__builtin_memset( &TMP$3030$6, 0, 24ll );
						FBSTRING* vr$266 = fb_StrConcat( &TMP$3030$6, (void*)vr$263, -1ll, (void*)"]", 2ll );
						fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$266, -1ll, 0 );
					}
					goto label$2322;
					label$2323:;
					if( *(int64*)*(struct $6IRVREG**)((uint8*)V2$1 + 80ll) != 1ll ) goto label$2324;
					{
						if( ((int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)*(struct $6IRVREG**)((uint8*)V2$1 + 80ll) + 56ll) + 8ll) & 2ll) != 0ll) | (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)*(struct $6IRVREG**)((uint8*)V2$1 + 80ll) + 56ll) + 8ll) & 1ll) != 0ll)) == 0ll ) goto label$2326;
						{
							FBSTRING TMP$3031$7;
							FBSTRING TMP$3032$7;
							FBSTRING TMP$3033$7;
							FBSTRING TMP$3034$7;
							FBSTRING TMP$3035$7;
							FBSTRING TMP$3036$7;
							FBSTRING TMP$3037$7;
							FBSTRING TMP$3038$7;
							FBSTRING TMP$3039$7;
							FBSTRING* vr$283 = fb_LongintToStr( *(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V2$1 + 80ll) + 64ll) );
							char* vr$286 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)*(struct $6IRVREG**)((uint8*)V2$1 + 80ll) + 56ll) );
							FBSTRING* vr$289 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
							__builtin_memset( &TMP$3031$7, 0, 24ll );
							FBSTRING* vr$292 = fb_StrConcat( &TMP$3031$7, (void*)"\x0A", 2ll, (void*)vr$289, -1ll );
							__builtin_memset( &TMP$3032$7, 0, 24ll );
							FBSTRING* vr$295 = fb_StrConcat( &TMP$3032$7, (void*)vr$292, -1ll, (void*)"add ", 5ll );
							__builtin_memset( &TMP$3033$7, 0, 24ll );
							FBSTRING* vr$298 = fb_StrConcat( &TMP$3033$7, (void*)vr$295, -1ll, (void*)&REGTEMPO$1, -1ll );
							__builtin_memset( &TMP$3034$7, 0, 24ll );
							FBSTRING* vr$301 = fb_StrConcat( &TMP$3034$7, (void*)vr$298, -1ll, (void*)", ", 3ll );
							__builtin_memset( &TMP$3035$7, 0, 24ll );
							FBSTRING* vr$304 = fb_StrConcat( &TMP$3035$7, (void*)vr$301, -1ll, (void*)vr$286, 0ll );
							__builtin_memset( &TMP$3036$7, 0, 24ll );
							FBSTRING* vr$307 = fb_StrConcat( &TMP$3036$7, (void*)vr$304, -1ll, (void*)"[rip+", 6ll );
							__builtin_memset( &TMP$3037$7, 0, 24ll );
							FBSTRING* vr$310 = fb_StrConcat( &TMP$3037$7, (void*)vr$307, -1ll, (void*)vr$283, -1ll );
							__builtin_memset( &TMP$3038$7, 0, 24ll );
							FBSTRING* vr$313 = fb_StrConcat( &TMP$3038$7, (void*)vr$310, -1ll, (void*)"]", 2ll );
							__builtin_memset( &TMP$3039$7, 0, 24ll );
							FBSTRING* vr$317 = fb_StrConcat( &TMP$3039$7, (void*)&OP3$1, -1ll, (void*)vr$313, -1ll );
							fb_StrAssign( (void*)&OP3$1, -1ll, (void*)vr$317, -1ll, 0 );
						}
						goto label$2325;
						label$2326:;
						{
							FBSTRING TMP$3040$7;
							FBSTRING TMP$3041$7;
							FBSTRING TMP$3042$7;
							FBSTRING TMP$3043$7;
							FBSTRING TMP$3044$7;
							FBSTRING TMP$3045$7;
							FBSTRING TMP$3046$7;
							FBSTRING* vr$321 = fb_LongintToStr( *(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V2$1 + 80ll) + 64ll) );
							FBSTRING* vr$324 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
							__builtin_memset( &TMP$3040$7, 0, 24ll );
							FBSTRING* vr$327 = fb_StrConcat( &TMP$3040$7, (void*)"\x0A", 2ll, (void*)vr$324, -1ll );
							__builtin_memset( &TMP$3041$7, 0, 24ll );
							FBSTRING* vr$330 = fb_StrConcat( &TMP$3041$7, (void*)vr$327, -1ll, (void*)"add ", 5ll );
							__builtin_memset( &TMP$3042$7, 0, 24ll );
							FBSTRING* vr$333 = fb_StrConcat( &TMP$3042$7, (void*)vr$330, -1ll, (void*)&REGTEMPO$1, -1ll );
							__builtin_memset( &TMP$3043$7, 0, 24ll );
							FBSTRING* vr$336 = fb_StrConcat( &TMP$3043$7, (void*)vr$333, -1ll, (void*)",", 2ll );
							__builtin_memset( &TMP$3044$7, 0, 24ll );
							FBSTRING* vr$339 = fb_StrConcat( &TMP$3044$7, (void*)vr$336, -1ll, (void*)vr$321, -1ll );
							__builtin_memset( &TMP$3045$7, 0, 24ll );
							FBSTRING* vr$342 = fb_StrConcat( &TMP$3045$7, (void*)vr$339, -1ll, (void*)"[rbp]", 6ll );
							__builtin_memset( &TMP$3046$7, 0, 24ll );
							FBSTRING* vr$346 = fb_StrConcat( &TMP$3046$7, (void*)&OP3$1, -1ll, (void*)vr$342, -1ll );
							fb_StrAssign( (void*)&OP3$1, -1ll, (void*)vr$346, -1ll, 0 );
						}
						label$2325:;
						fb_StrAssign( (void*)&OP1$1, -1ll, (void*)"[", 2ll, 0 );
						fb_StrConcatAssign( (void*)&OP1$1, -1ll, (void*)&REGTEMPO$1, -1ll, 0 );
						fb_StrConcatAssign( (void*)&OP1$1, -1ll, (void*)"]", 2ll, 0 );
					}
					goto label$2322;
					label$2324:;
					{
						FBSTRING TMP$3047$6;
						FBSTRING TMP$3050$6;
						FBSTRING TMP$3051$6;
						__builtin_memset( &TMP$3047$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$3047$6, -1ll, (void*)"", 1ll, 0 );
						HWRITEASM64( &TMP$3047$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3047$6 );
						__builtin_memset( &TMP$3050$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$3050$6, -1ll, (void*)"FOUND AN ERROR : hdocall error with idx", 40ll, 0 );
						HWRITEASM64( &TMP$3050$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3050$6 );
						__builtin_memset( &TMP$3051$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$3051$6, -1ll, (void*)"", 1ll, 0 );
						HWRITEASM64( &TMP$3051$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3051$6 );
					}
					label$2322:;
				}
				label$2312:;
			}
			goto label$2309;
			label$2310:;
			if( TMP$2988$3 != 4ll ) goto label$2327;
			label$2328:;
			{
				int64 TMP$3052$4;
				if( (DTYPE$1 & 480ll) == 0ll ) goto label$2329;
				TMP$3052$4 = 24ll;
				goto label$3144;
				label$2329:;
				TMP$3052$4 = DTYPE$1 & 31ll;
				label$3144:;
				if( TMP$3052$4 != 24ll ) goto label$2331;
				{
					DTYPE$1 = 8ll;
					label$2331:;
				}
				int32 vr$368 = REG_FINDREAL( (int32)*(int64*)((uint8*)V2$1 + 24ll) );
				REG2$1 = (int64)vr$368;
				{
					if( DTYPE$1 == 8ll ) goto label$2334;
					label$2335:;
					if( DTYPE$1 == 9ll ) goto label$2334;
					label$2336:;
					if( DTYPE$1 == 13ll ) goto label$2334;
					label$2337:;
					if( DTYPE$1 == 14ll ) goto label$2334;
					label$2338:;
					if( DTYPE$1 == 16ll ) goto label$2334;
					label$2339:;
					if( DTYPE$1 == 10ll ) goto label$2334;
					label$2340:;
					if( DTYPE$1 != 20ll ) goto label$2333;
					label$2334:;
					{
						fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + (REG2$1 << (3ll & 63ll))), 0ll, 0 );
					}
					goto label$2332;
					label$2333:;
					if( DTYPE$1 == 11ll ) goto label$2342;
					label$2343:;
					if( DTYPE$1 == 12ll ) goto label$2342;
					label$2344:;
					if( DTYPE$1 != 15ll ) goto label$2341;
					label$2342:;
					{
						fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRD$ + (REG2$1 << (3ll & 63ll))), 0ll, 0 );
					}
					goto label$2332;
					label$2341:;
					if( DTYPE$1 == 5ll ) goto label$2346;
					label$2347:;
					if( DTYPE$1 != 6ll ) goto label$2345;
					label$2346:;
					{
						fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRW$ + (REG2$1 << (3ll & 63ll))), 0ll, 0 );
					}
					goto label$2332;
					label$2345:;
					if( DTYPE$1 == 2ll ) goto label$2349;
					label$2350:;
					if( DTYPE$1 == 3ll ) goto label$2349;
					label$2351:;
					if( DTYPE$1 == 1ll ) goto label$2349;
					label$2352:;
					if( DTYPE$1 != 4ll ) goto label$2348;
					label$2349:;
					{
						fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRB$ + (REG2$1 << (3ll & 63ll))), 0ll, 0 );
					}
					goto label$2332;
					label$2348:;
					{
						FBSTRING TMP$3053$6;
						FBSTRING TMP$3057$6;
						FBSTRING TMP$3058$6;
						FBSTRING TMP$3059$6;
						__builtin_memset( &TMP$3053$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$3053$6, -1ll, (void*)"", 1ll, 0 );
						HWRITEASM64( &TMP$3053$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3053$6 );
						__builtin_memset( &TMP$3058$6, 0, 24ll );
						FBSTRING* vr$383 = fb_LongintToStr( DTYPE$1 );
						__builtin_memset( &TMP$3057$6, 0, 24ll );
						FBSTRING* vr$386 = fb_StrConcat( &TMP$3057$6, (void*)"FOUND AN ERROR : in hdocall datatype not handled 01 = ", 55ll, (void*)vr$383, -1ll );
						fb_StrAssign( (void*)&TMP$3058$6, -1ll, (void*)vr$386, -1ll, 0 );
						HWRITEASM64( &TMP$3058$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3058$6 );
						__builtin_memset( &TMP$3059$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$3059$6, -1ll, (void*)"", 1ll, 0 );
						HWRITEASM64( &TMP$3059$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3059$6 );
					}
					label$2353:;
					label$2332:;
				}
			}
			goto label$2309;
			label$2327:;
			if( TMP$2988$3 != 1ll ) goto label$2354;
			label$2355:;
			{
				int64 TMP$3060$4;
				if( *(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) == (struct $8FBSYMBOL*)0ull ) goto label$2356;
				TMP$3060$4 = (int64)-(((int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) + 8ll) & 2ll) != 0ll) | (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) + 8ll) & 1ll) != 0ll)) != 0ll);
				goto label$3145;
				label$2356:;
				TMP$3060$4 = 0ll;
				label$3145:;
				if( TMP$3060$4 == 0ll ) goto label$2358;
				{
					FBSTRING TMP$3061$5;
					FBSTRING TMP$3062$5;
					FBSTRING TMP$3063$5;
					FBSTRING* vr$406 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
					char* vr$408 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) );
					__builtin_memset( &TMP$3061$5, 0, 24ll );
					FBSTRING* vr$411 = fb_StrConcat( &TMP$3061$5, (void*)vr$408, 0ll, (void*)"[rip+", 6ll );
					__builtin_memset( &TMP$3062$5, 0, 24ll );
					FBSTRING* vr$414 = fb_StrConcat( &TMP$3062$5, (void*)vr$411, -1ll, (void*)vr$406, -1ll );
					__builtin_memset( &TMP$3063$5, 0, 24ll );
					FBSTRING* vr$417 = fb_StrConcat( &TMP$3063$5, (void*)vr$414, -1ll, (void*)"]", 2ll );
					fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$417, -1ll, 0 );
				}
				goto label$2357;
				label$2358:;
				{
					FBSTRING TMP$3064$5;
					FBSTRING* vr$420 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
					__builtin_memset( &TMP$3064$5, 0, 24ll );
					FBSTRING* vr$423 = fb_StrConcat( &TMP$3064$5, (void*)vr$420, -1ll, (void*)"[rbp]", 6ll );
					fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$423, -1ll, 0 );
				}
				label$2357:;
			}
			goto label$2309;
			label$2354:;
			if( TMP$2988$3 != 3ll ) goto label$2359;
			label$2360:;
			{
				FBSTRING TMP$3065$4;
				FBSTRING TMP$3066$4;
				FBSTRING TMP$3067$4;
				int32 vr$428 = REG_FINDREAL( (int32)*(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V2$1 + 80ll) + 24ll) );
				REG2$1 = (int64)vr$428;
				FBSTRING* vr$432 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
				__builtin_memset( &TMP$3065$4, 0, 24ll );
				FBSTRING* vr$435 = fb_StrConcat( &TMP$3065$4, (void*)vr$432, -1ll, (void*)"[", 2ll );
				__builtin_memset( &TMP$3066$4, 0, 24ll );
				FBSTRING* vr$438 = fb_StrConcat( &TMP$3066$4, (void*)vr$435, -1ll, *(void**)((int64)(char**)REGSTRQ$ + (REG2$1 << (3ll & 63ll))), 0ll );
				__builtin_memset( &TMP$3067$4, 0, 24ll );
				FBSTRING* vr$441 = fb_StrConcat( &TMP$3067$4, (void*)vr$438, -1ll, (void*)"]", 2ll );
				fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$441, -1ll, 0 );
			}
			goto label$2309;
			label$2359:;
			if( TMP$2988$3 != 5ll ) goto label$2361;
			label$2362:;
			{
				FBSTRING TMP$3068$4;
				FBSTRING TMP$3069$4;
				FBSTRING TMP$3070$4;
				FBSTRING* vr$444 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
				char* vr$446 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) );
				__builtin_memset( &TMP$3068$4, 0, 24ll );
				FBSTRING* vr$449 = fb_StrConcat( &TMP$3068$4, (void*)vr$446, 0ll, (void*)"[rip+", 6ll );
				__builtin_memset( &TMP$3069$4, 0, 24ll );
				FBSTRING* vr$452 = fb_StrConcat( &TMP$3069$4, (void*)vr$449, -1ll, (void*)vr$444, -1ll );
				__builtin_memset( &TMP$3070$4, 0, 24ll );
				FBSTRING* vr$455 = fb_StrConcat( &TMP$3070$4, (void*)vr$452, -1ll, (void*)"]", 2ll );
				fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$455, -1ll, 0 );
			}
			goto label$2309;
			label$2361:;
			if( TMP$2988$3 != 0ll ) goto label$2363;
			label$2364:;
			{
				int64 TMP$3071$4;
				if( (DTYPE$1 & 480ll) == 0ll ) goto label$2365;
				TMP$3071$4 = 24ll;
				goto label$3146;
				label$2365:;
				TMP$3071$4 = DTYPE$1 & 31ll;
				label$3146:;
				if( *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$3071$4 * 56ll)) != 1ll ) goto label$2367;
				{
					FBSTRING* vr$461 = HFLOATTOHEX_ASM64( *(double*)((uint8*)V2$1 + 48ll), DTYPE$1, (int8)0 );
					fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$461, -1ll, 0 );
				}
				goto label$2366;
				label$2367:;
				{
					if( DTYPE$1 != 1ll ) goto label$2369;
					{
						if( *(int64*)((uint8*)V2$1 + 48ll) == 0ll ) goto label$2371;
						{
							*(int64*)((uint8*)V2$1 + 48ll) = 1ll;
						}
						label$2371:;
						label$2370:;
					}
					label$2369:;
					label$2368:;
					FBSTRING* vr$466 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 48ll) );
					fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$466, -1ll, 0 );
				}
				label$2366:;
			}
			goto label$2309;
			label$2363:;
			{
				FBSTRING TMP$3072$4;
				FBSTRING TMP$3075$4;
				FBSTRING TMP$3076$4;
				__builtin_memset( &TMP$3072$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3072$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$3072$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3072$4 );
				__builtin_memset( &TMP$3075$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3075$4, -1ll, (void*)"FOUND AN ERROR : in hdocall typ not handled ", 45ll, 0 );
				HWRITEASM64( &TMP$3075$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3075$4 );
				__builtin_memset( &TMP$3076$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3076$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$3076$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3076$4 );
			}
			label$2372:;
			label$2309:;
		}
		if( (DTYPE$1 & 480ll) == 0ll ) goto label$2373;
		TMP$3077$2 = 24ll;
		goto label$3147;
		label$2373:;
		TMP$3077$2 = DTYPE$1 & 31ll;
		label$3147:;
		if( TMP$3077$2 != 24ll ) goto label$2375;
		{
			DTYPE$1 = 8ll;
			label$2375:;
		}
		int64 vr$486 = PARAM_ANALYZE( DTYPE$1, *(struct $8FBSYMBOL**)((uint8*)V2$1 + 16ll), &CPTARG$1, &CPTINT$1, &CPTFLOAT$1 );
		PARAMTYPE$1 = vr$486;
		if( PARAMTYPE$1 < 10ll ) goto label$2377;
		{
			if( *(boolean*)((uint8*)&CTX$ + 416ll) == (boolean)0ll ) goto label$2379;
			{
				if( *(int64*)V2$1 != 0ll ) goto label$2381;
				{
					int64 TMP$3078$5;
					PUSHSIZE$1 = PUSHSIZE$1 + 8ll;
					if( (DTYPE$1 & 480ll) == 0ll ) goto label$2382;
					TMP$3078$5 = 24ll;
					goto label$3148;
					label$2382:;
					TMP$3078$5 = DTYPE$1 & 31ll;
					label$3148:;
					if( *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$3078$5 * 56ll)) != 1ll ) goto label$2384;
					{
						if( DTYPE$1 != 15ll ) goto label$2386;
						{
							PUSHNBSTR$1 = PUSHNBSTR$1 + 1ll;
							fb_StrAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)"push ", 6ll, 0 );
							fb_StrConcatAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)&OP1$1, -1ll, 0 );
						}
						goto label$2385;
						label$2386:;
						{
							PUSHNBSTR$1 = PUSHNBSTR$1 + 1ll;
							fb_StrAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)"push rax", 9ll, 0 );
							PUSHNBSTR$1 = PUSHNBSTR$1 + 1ll;
							fb_StrAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)"mov rax, ", 10ll, 0 );
							fb_StrConcatAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)&OP1$1, -1ll, 0 );
						}
						label$2385:;
					}
					goto label$2383;
					label$2384:;
					if( ((int64)-(*(int64*)((uint8*)V2$1 + 48ll) >= -2147483648ll) & (int64)-(*(uint64*)((uint8*)V2$1 + 48ll) < 2147483648ull)) == 0ll ) goto label$2387;
					{
						PUSHNBSTR$1 = PUSHNBSTR$1 + 1ll;
						fb_StrAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)"push ", 6ll, 0 );
						fb_StrConcatAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)&OP1$1, -1ll, 0 );
					}
					goto label$2383;
					label$2387:;
					{
						PUSHNBSTR$1 = PUSHNBSTR$1 + 1ll;
						fb_StrAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)"push rax", 9ll, 0 );
						PUSHNBSTR$1 = PUSHNBSTR$1 + 1ll;
						fb_StrAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)"mov rax, ", 10ll, 0 );
						fb_StrConcatAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)&OP1$1, -1ll, 0 );
					}
					label$2383:;
				}
				goto label$2380;
				label$2381:;
				{
					if( DTYPE$1 != 20ll ) goto label$2389;
					{
						LGT$1 = *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 16ll) + 80ll);
						PUSHSIZE$1 = PUSHSIZE$1 + LGT$1;
						if( LGT$1 <= 8ll ) goto label$2391;
						{
							FBSTRING TMP$3084$7;
							OFST$1 = LGT$1 % 8ll;
							if( OFST$1 != 0ll ) goto label$2393;
							{
								OFST$1 = 8ll;
								label$2393:;
							}
							label$2394:;
							if( LGT$1 <= 0ll ) goto label$2395;
							{
								PUSHNBSTR$1 = PUSHNBSTR$1 + 1ll;
								fb_StrAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)"push [rax]", 11ll, 0 );
								if( LGT$1 <= 8ll ) goto label$2397;
								{
									PUSHNBSTR$1 = PUSHNBSTR$1 + 1ll;
									fb_StrAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)"sub rax, 8", 11ll, 0 );
								}
								label$2397:;
								label$2396:;
								LGT$1 = LGT$1 + -8ll;
							}
							goto label$2394;
							label$2395:;
							PUSHNBSTR$1 = PUSHNBSTR$1 + 1ll;
							FBSTRING* vr$542 = fb_LongintToStr( *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 16ll) + 80ll) - OFST$1 );
							__builtin_memset( &TMP$3084$7, 0, 24ll );
							FBSTRING* vr$545 = fb_StrConcat( &TMP$3084$7, (void*)"add rax, ", 10ll, (void*)vr$542, -1ll );
							fb_StrAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)vr$545, -1ll, 0 );
							if( *(int64*)V2$1 != 4ll ) goto label$2399;
							{
								PUSHNBSTR$1 = PUSHNBSTR$1 + 1ll;
								fb_StrAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)"mov rax, ", 10ll, 0 );
								fb_StrConcatAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)&OP1$1, -1ll, 0 );
							}
							goto label$2398;
							label$2399:;
							{
								PUSHNBSTR$1 = PUSHNBSTR$1 + 1ll;
								fb_StrAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)"lea rax, ", 10ll, 0 );
								fb_StrConcatAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)&OP1$1, -1ll, 0 );
							}
							label$2398:;
						}
						goto label$2390;
						label$2391:;
						{
							PUSHNBSTR$1 = PUSHNBSTR$1 + 1ll;
							fb_StrAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)"push ", 6ll, 0 );
							fb_StrConcatAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)&OP1$1, -1ll, 0 );
						}
						label$2390:;
					}
					goto label$2388;
					label$2389:;
					{
						PUSHSIZE$1 = PUSHSIZE$1 + 8ll;
						if( *(int64*)V2$1 != 5ll ) goto label$2401;
						{
							int64 TMP$3085$7;
							if( (*(int64*)((uint8*)V2$1 + 8ll) & 31ll) != 22ll ) goto label$2402;
							int64 vr$571 = FBGETOPTION( 0ll );
							TMP$3085$7 = (int64)-(vr$571 == 2ll);
							goto label$3149;
							label$2402:;
							TMP$3085$7 = 0ll;
							label$3149:;
							if( TMP$3085$7 == 0ll ) goto label$2404;
							{
								PUSHNBSTR$1 = PUSHNBSTR$1 + 1ll;
								fb_StrAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)"push rax", 9ll, 0 );
								PUSHNBSTR$1 = PUSHNBSTR$1 + 1ll;
								fb_StrAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)"mov rax, QWORD PTR ", 20ll, 0 );
								FBSTRING* vr$579 = fb_StrAllocTempDescZEx( (char*)"[", 1ll );
								int64 vr$581 = fb_StrInstr( 1ll, (FBSTRING*)&OP1$1, (FBSTRING*)vr$579 );
								FBSTRING* vr$584 = fb_LEFT( (FBSTRING*)&OP1$1, vr$581 + -1ll );
								fb_StrConcatAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)vr$584, -1ll, 0 );
								fb_StrConcatAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)"@GOTPCREL[rip]", 15ll, 0 );
							}
							goto label$2403;
							label$2404:;
							{
								PUSHNBSTR$1 = PUSHNBSTR$1 + 1ll;
								fb_StrAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)"push rax", 9ll, 0 );
								PUSHNBSTR$1 = PUSHNBSTR$1 + 1ll;
								fb_StrAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)"lea rax, ", 10ll, 0 );
								fb_StrConcatAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)&OP1$1, -1ll, 0 );
							}
							label$2403:;
						}
						goto label$2400;
						label$2401:;
						{
							if( *(int64*)V2$1 != 4ll ) goto label$2406;
							{
								fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + (REG2$1 << (3ll & 63ll))), 0ll, 0 );
								PUSHNBSTR$1 = PUSHNBSTR$1 + 1ll;
								fb_StrAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)"push ", 6ll, 0 );
								fb_StrConcatAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)&OP1$1, -1ll, 0 );
							}
							goto label$2405;
							label$2406:;
							{
								PUSHNBSTR$1 = PUSHNBSTR$1 + 1ll;
								fb_StrAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)"push ", 6ll, 0 );
								fb_StrConcatAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)&OP1$1, -1ll, 0 );
							}
							label$2405:;
						}
						label$2400:;
					}
					label$2388:;
					int32 vr$614 = fb_StrCompare( (void*)&OP3$1, -1ll, (void*)"", 1ll );
					if( (int64)vr$614 == 0ll ) goto label$2408;
					{
						PUSHNBSTR$1 = PUSHNBSTR$1 + 1ll;
						fb_StrAssign( (void*)((int64)(FBSTRING*)PUSHSTR$1 + (PUSHNBSTR$1 * 24ll)), -1ll, (void*)&OP3$1, -1ll, 0 );
					}
					label$2408:;
					label$2407:;
				}
				label$2380:;
			}
			goto label$2378;
			label$2379:;
			{
				int32 vr$621 = fb_StrCompare( (void*)&OP3$1, -1ll, (void*)"", 1ll );
				if( (int64)vr$621 == 0ll ) goto label$2410;
				{
					EMITOP3_OP4( &OP3$1 );
					label$2410:;
				}
				if( PARAMTYPE$1 != 11ll ) goto label$2412;
				{
					if( DTYPE$1 != 20ll ) goto label$2414;
					{
						LGT$1 = *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 16ll) + 80ll);
					}
					goto label$2413;
					label$2414:;
					{
						LGT$1 = *(int64*)(((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (DTYPE$1 * 56ll)) + 8ll);
					}
					label$2413:;
					if( *(int64*)V2$1 != 4ll ) goto label$2416;
					{
						{
							uint64 TMP$3086$7;
							TMP$3086$7 = (uint64)LGT$1;
							goto label$2418;
							label$2419:;
							{
								FBSTRING TMP$3089$8;
								FBSTRING TMP$3090$8;
								FBSTRING TMP$3091$8;
								FBSTRING TMP$3092$8;
								__builtin_memset( &TMP$3092$8, 0, 24ll );
								FBSTRING* vr$632 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
								__builtin_memset( &TMP$3089$8, 0, 24ll );
								FBSTRING* vr$635 = fb_StrConcat( &TMP$3089$8, (void*)"mov byte PTR ", 14ll, (void*)vr$632, -1ll );
								__builtin_memset( &TMP$3090$8, 0, 24ll );
								FBSTRING* vr$638 = fb_StrConcat( &TMP$3090$8, (void*)vr$635, -1ll, (void*)"[rsp], ", 8ll );
								__builtin_memset( &TMP$3091$8, 0, 24ll );
								FBSTRING* vr$641 = fb_StrConcat( &TMP$3091$8, (void*)vr$638, -1ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3092$8, -1ll, (void*)vr$641, -1ll, 0 );
								HWRITEASM64( &TMP$3092$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3092$8 );
							}
							goto label$2417;
							label$2420:;
							{
								FBSTRING TMP$3093$8;
								FBSTRING TMP$3094$8;
								FBSTRING TMP$3095$8;
								FBSTRING TMP$3096$8;
								__builtin_memset( &TMP$3096$8, 0, 24ll );
								FBSTRING* vr$649 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
								__builtin_memset( &TMP$3093$8, 0, 24ll );
								FBSTRING* vr$652 = fb_StrConcat( &TMP$3093$8, (void*)"mov WORD PTR ", 14ll, (void*)vr$649, -1ll );
								__builtin_memset( &TMP$3094$8, 0, 24ll );
								FBSTRING* vr$655 = fb_StrConcat( &TMP$3094$8, (void*)vr$652, -1ll, (void*)"[rsp], ", 8ll );
								__builtin_memset( &TMP$3095$8, 0, 24ll );
								FBSTRING* vr$658 = fb_StrConcat( &TMP$3095$8, (void*)vr$655, -1ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3096$8, -1ll, (void*)vr$658, -1ll, 0 );
								HWRITEASM64( &TMP$3096$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3096$8 );
							}
							goto label$2417;
							label$2421:;
							{
								FBSTRING TMP$3097$8;
								FBSTRING TMP$3098$8;
								FBSTRING TMP$3099$8;
								FBSTRING TMP$3100$8;
								__builtin_memset( &TMP$3100$8, 0, 24ll );
								FBSTRING* vr$666 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
								__builtin_memset( &TMP$3097$8, 0, 24ll );
								FBSTRING* vr$669 = fb_StrConcat( &TMP$3097$8, (void*)"mov DWORD PTR ", 15ll, (void*)vr$666, -1ll );
								__builtin_memset( &TMP$3098$8, 0, 24ll );
								FBSTRING* vr$672 = fb_StrConcat( &TMP$3098$8, (void*)vr$669, -1ll, (void*)"[rsp], ", 8ll );
								__builtin_memset( &TMP$3099$8, 0, 24ll );
								FBSTRING* vr$675 = fb_StrConcat( &TMP$3099$8, (void*)vr$672, -1ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3100$8, -1ll, (void*)vr$675, -1ll, 0 );
								HWRITEASM64( &TMP$3100$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3100$8 );
							}
							goto label$2417;
							label$2422:;
							{
								FBSTRING TMP$3101$8;
								FBSTRING TMP$3102$8;
								FBSTRING TMP$3103$8;
								FBSTRING TMP$3104$8;
								__builtin_memset( &TMP$3104$8, 0, 24ll );
								FBSTRING* vr$683 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
								__builtin_memset( &TMP$3101$8, 0, 24ll );
								FBSTRING* vr$686 = fb_StrConcat( &TMP$3101$8, (void*)"mov QWORD PTR ", 15ll, (void*)vr$683, -1ll );
								__builtin_memset( &TMP$3102$8, 0, 24ll );
								FBSTRING* vr$689 = fb_StrConcat( &TMP$3102$8, (void*)vr$686, -1ll, (void*)"[rsp], ", 8ll );
								__builtin_memset( &TMP$3103$8, 0, 24ll );
								FBSTRING* vr$692 = fb_StrConcat( &TMP$3103$8, (void*)vr$689, -1ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3104$8, -1ll, (void*)vr$692, -1ll, 0 );
								HWRITEASM64( &TMP$3104$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3104$8 );
							}
							goto label$2417;
							label$2418:;
							static const void* tmp$4078[8ll] = {
								&&label$2419,
								&&label$2420,
								&&label$2417,
								&&label$2421,
								&&label$2417,
								&&label$2417,
								&&label$2417,
								&&label$2422,
							};
							if( (TMP$3086$7 - 1ull) > 7ull ) goto label$2417;
							goto *tmp$4078[TMP$3086$7 - 1ull];
							label$2417:;
						}
					}
					goto label$2415;
					label$2416:;
					{
						{
							uint64 TMP$3105$7;
							TMP$3105$7 = (uint64)LGT$1;
							goto label$2424;
							label$2425:;
							{
								FBSTRING TMP$3106$8;
								FBSTRING TMP$3107$8;
								FBSTRING TMP$3109$8;
								FBSTRING TMP$3110$8;
								FBSTRING TMP$3111$8;
								__builtin_memset( &TMP$3107$8, 0, 24ll );
								__builtin_memset( &TMP$3106$8, 0, 24ll );
								FBSTRING* vr$700 = fb_StrConcat( &TMP$3106$8, (void*)"mov al, ", 9ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3107$8, -1ll, (void*)vr$700, -1ll, 0 );
								HWRITEASM64( &TMP$3107$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3107$8 );
								__builtin_memset( &TMP$3111$8, 0, 24ll );
								FBSTRING* vr$707 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
								__builtin_memset( &TMP$3109$8, 0, 24ll );
								FBSTRING* vr$710 = fb_StrConcat( &TMP$3109$8, (void*)"mov byte PTR ", 14ll, (void*)vr$707, -1ll );
								__builtin_memset( &TMP$3110$8, 0, 24ll );
								FBSTRING* vr$713 = fb_StrConcat( &TMP$3110$8, (void*)vr$710, -1ll, (void*)"[rsp], al", 10ll );
								fb_StrAssign( (void*)&TMP$3111$8, -1ll, (void*)vr$713, -1ll, 0 );
								HWRITEASM64( &TMP$3111$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3111$8 );
							}
							goto label$2423;
							label$2426:;
							{
								FBSTRING TMP$3113$8;
								FBSTRING TMP$3114$8;
								FBSTRING TMP$3116$8;
								FBSTRING TMP$3117$8;
								FBSTRING TMP$3118$8;
								__builtin_memset( &TMP$3114$8, 0, 24ll );
								__builtin_memset( &TMP$3113$8, 0, 24ll );
								FBSTRING* vr$721 = fb_StrConcat( &TMP$3113$8, (void*)"mov ax, ", 9ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3114$8, -1ll, (void*)vr$721, -1ll, 0 );
								HWRITEASM64( &TMP$3114$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3114$8 );
								__builtin_memset( &TMP$3118$8, 0, 24ll );
								FBSTRING* vr$728 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
								__builtin_memset( &TMP$3116$8, 0, 24ll );
								FBSTRING* vr$731 = fb_StrConcat( &TMP$3116$8, (void*)"mov WORD PTR ", 14ll, (void*)vr$728, -1ll );
								__builtin_memset( &TMP$3117$8, 0, 24ll );
								FBSTRING* vr$734 = fb_StrConcat( &TMP$3117$8, (void*)vr$731, -1ll, (void*)"[rsp], ax", 10ll );
								fb_StrAssign( (void*)&TMP$3118$8, -1ll, (void*)vr$734, -1ll, 0 );
								HWRITEASM64( &TMP$3118$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3118$8 );
							}
							goto label$2423;
							label$2427:;
							{
								FBSTRING TMP$3119$8;
								FBSTRING TMP$3120$8;
								FBSTRING TMP$3122$8;
								FBSTRING TMP$3123$8;
								FBSTRING TMP$3124$8;
								__builtin_memset( &TMP$3120$8, 0, 24ll );
								__builtin_memset( &TMP$3119$8, 0, 24ll );
								FBSTRING* vr$742 = fb_StrConcat( &TMP$3119$8, (void*)"mov eax, ", 10ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3120$8, -1ll, (void*)vr$742, -1ll, 0 );
								HWRITEASM64( &TMP$3120$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3120$8 );
								__builtin_memset( &TMP$3124$8, 0, 24ll );
								FBSTRING* vr$749 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
								__builtin_memset( &TMP$3122$8, 0, 24ll );
								FBSTRING* vr$752 = fb_StrConcat( &TMP$3122$8, (void*)"mov DWORD PTR ", 15ll, (void*)vr$749, -1ll );
								__builtin_memset( &TMP$3123$8, 0, 24ll );
								FBSTRING* vr$755 = fb_StrConcat( &TMP$3123$8, (void*)vr$752, -1ll, (void*)"[rsp], eax", 11ll );
								fb_StrAssign( (void*)&TMP$3124$8, -1ll, (void*)vr$755, -1ll, 0 );
								HWRITEASM64( &TMP$3124$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3124$8 );
							}
							goto label$2423;
							label$2428:;
							{
								FBSTRING TMP$3125$8;
								FBSTRING TMP$3126$8;
								FBSTRING TMP$3128$8;
								FBSTRING TMP$3129$8;
								FBSTRING TMP$3130$8;
								__builtin_memset( &TMP$3126$8, 0, 24ll );
								__builtin_memset( &TMP$3125$8, 0, 24ll );
								FBSTRING* vr$763 = fb_StrConcat( &TMP$3125$8, (void*)"mov rax, ", 10ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3126$8, -1ll, (void*)vr$763, -1ll, 0 );
								HWRITEASM64( &TMP$3126$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3126$8 );
								__builtin_memset( &TMP$3130$8, 0, 24ll );
								FBSTRING* vr$770 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
								__builtin_memset( &TMP$3128$8, 0, 24ll );
								FBSTRING* vr$773 = fb_StrConcat( &TMP$3128$8, (void*)"mov QWORD PTR ", 15ll, (void*)vr$770, -1ll );
								__builtin_memset( &TMP$3129$8, 0, 24ll );
								FBSTRING* vr$776 = fb_StrConcat( &TMP$3129$8, (void*)vr$773, -1ll, (void*)"[rsp], rax", 11ll );
								fb_StrAssign( (void*)&TMP$3130$8, -1ll, (void*)vr$776, -1ll, 0 );
								HWRITEASM64( &TMP$3130$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3130$8 );
							}
							goto label$2423;
							label$2424:;
							static const void* tmp$4079[8ll] = {
								&&label$2425,
								&&label$2426,
								&&label$2423,
								&&label$2427,
								&&label$2423,
								&&label$2423,
								&&label$2423,
								&&label$2428,
							};
							if( (TMP$3105$7 - 1ull) > 7ull ) goto label$2423;
							goto *tmp$4079[TMP$3105$7 - 1ull];
							label$2423:;
						}
					}
					label$2415:;
				}
				goto label$2411;
				label$2412:;
				if( PARAMTYPE$1 != 12ll ) goto label$2429;
				{
					FBSTRING TMP$3131$5;
					FBSTRING TMP$3132$5;
					FBSTRING TMP$3133$5;
					FBSTRING TMP$3134$5;
					FBSTRING TMP$3135$5;
					FBSTRING TMP$3136$5;
					FBSTRING TMP$3137$5;
					FBSTRING TMP$3138$5;
					FBSTRING TMP$3139$5;
					FBSTRING TMP$3140$5;
					FBSTRING TMP$3141$5;
					REG_TRANSFER( *(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)&LISTREG$), (int32)REG2$1 );
					__builtin_memset( &TMP$3134$5, 0, 24ll );
					__builtin_memset( &TMP$3131$5, 0, 24ll );
					FBSTRING* vr$791 = fb_StrConcat( &TMP$3131$5, (void*)"lea ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
					__builtin_memset( &TMP$3132$5, 0, 24ll );
					FBSTRING* vr$794 = fb_StrConcat( &TMP$3132$5, (void*)vr$791, -1ll, (void*)", ", 3ll );
					__builtin_memset( &TMP$3133$5, 0, 24ll );
					FBSTRING* vr$797 = fb_StrConcat( &TMP$3133$5, (void*)vr$794, -1ll, (void*)&OP1$1, -1ll );
					fb_StrAssign( (void*)&TMP$3134$5, -1ll, (void*)vr$797, -1ll, 0 );
					HWRITEASM64( &TMP$3134$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3134$5 );
					*(int64*)((uint8*)&CTX$ + 216ll) = (((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 16ll) + 80ll) + *(int64*)((uint8*)&CTX$ + 216ll)) + *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 16ll) + 80ll)) + -1ll) & ~(*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 16ll) + 80ll) + -1ll);
					*(int64*)((uint8*)&CTX$ + 216ll) = (*(int64*)((uint8*)&CTX$ + 216ll) + -(*(int64*)((uint8*)&CTX$ + 216ll) % 8ll)) + 8ll;
					fb_StrAssign( (void*)&REGTEMPO$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll, 0 );
					__builtin_memset( &TMP$3136$5, 0, 24ll );
					FBSTRING* vr$824 = fb_LongintToStr( -(*(int64*)((uint8*)&CTX$ + 216ll)) );
					__builtin_memset( &TMP$3135$5, 0, 24ll );
					FBSTRING* vr$827 = fb_StrConcat( &TMP$3135$5, (void*)vr$824, -1ll, (void*)"[rbp]", 6ll );
					fb_StrAssign( (void*)&TMP$3136$5, -1ll, (void*)vr$827, -1ll, 0 );
					MEMCOPY( *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 16ll) + 80ll), &REGTEMPO$1, &TMP$3136$5, 1, 1 );
					fb_StrDelete( (FBSTRING*)&TMP$3136$5 );
					__builtin_memset( &TMP$3141$5, 0, 24ll );
					FBSTRING* vr$836 = fb_LongintToStr( -(*(int64*)((uint8*)&CTX$ + 216ll)) );
					__builtin_memset( &TMP$3137$5, 0, 24ll );
					FBSTRING* vr$843 = fb_StrConcat( &TMP$3137$5, (void*)"lea ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
					__builtin_memset( &TMP$3138$5, 0, 24ll );
					FBSTRING* vr$846 = fb_StrConcat( &TMP$3138$5, (void*)vr$843, -1ll, (void*)", ", 3ll );
					__builtin_memset( &TMP$3139$5, 0, 24ll );
					FBSTRING* vr$849 = fb_StrConcat( &TMP$3139$5, (void*)vr$846, -1ll, (void*)vr$836, -1ll );
					__builtin_memset( &TMP$3140$5, 0, 24ll );
					FBSTRING* vr$852 = fb_StrConcat( &TMP$3140$5, (void*)vr$849, -1ll, (void*)"[rbp]", 6ll );
					fb_StrAssign( (void*)&TMP$3141$5, -1ll, (void*)vr$852, -1ll, 0 );
					HWRITEASM64( &TMP$3141$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3141$5 );
					if( ((int64)-((int64)-VARIADIC$1 == -1ll) & (int64)-(*(int64*)((uint8*)&CTX$ + 408ll) == 0ll)) == 0ll ) goto label$2431;
					{
						FBSTRING TMP$3142$6;
						FBSTRING TMP$3143$6;
						FBSTRING TMP$3144$6;
						FBSTRING TMP$3145$6;
						__builtin_memset( &TMP$3145$6, 0, 24ll );
						FBSTRING* vr$867 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
						__builtin_memset( &TMP$3142$6, 0, 24ll );
						FBSTRING* vr$870 = fb_StrConcat( &TMP$3142$6, (void*)"mov QWORD PTR ", 15ll, (void*)vr$867, -1ll );
						__builtin_memset( &TMP$3143$6, 0, 24ll );
						FBSTRING* vr$873 = fb_StrConcat( &TMP$3143$6, (void*)vr$870, -1ll, (void*)"[rsp], ", 8ll );
						__builtin_memset( &TMP$3144$6, 0, 24ll );
						FBSTRING* vr$876 = fb_StrConcat( &TMP$3144$6, (void*)vr$873, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
						fb_StrAssign( (void*)&TMP$3145$6, -1ll, (void*)vr$876, -1ll, 0 );
						HWRITEASM64( &TMP$3145$6, 3ll );
						fb_StrDelete( (FBSTRING*)&TMP$3145$6 );
					}
					label$2431:;
					label$2430:;
				}
				goto label$2411;
				label$2429:;
				{
					if( *(int64*)V2$1 != 0ll ) goto label$2433;
					{
						if( DTYPE$1 != 15ll ) goto label$2435;
						{
							FBSTRING TMP$3150$7;
							FBSTRING TMP$3151$7;
							FBSTRING TMP$3152$7;
							if( *(double*)((uint8*)V2$1 + 48ll) != 0x0p+0 ) goto label$2437;
							{
								FBSTRING TMP$3147$8;
								__builtin_memset( &TMP$3147$8, 0, 24ll );
								fb_StrAssign( (void*)&TMP$3147$8, -1ll, (void*)"xor eax, eax", 13ll, 0 );
								HWRITEASM64( &TMP$3147$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3147$8 );
							}
							goto label$2436;
							label$2437:;
							{
								FBSTRING TMP$3148$8;
								FBSTRING TMP$3149$8;
								__builtin_memset( &TMP$3149$8, 0, 24ll );
								__builtin_memset( &TMP$3148$8, 0, 24ll );
								FBSTRING* vr$890 = fb_StrConcat( &TMP$3148$8, (void*)"mov eax, ", 10ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3149$8, -1ll, (void*)vr$890, -1ll, 0 );
								HWRITEASM64( &TMP$3149$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3149$8 );
							}
							label$2436:;
							__builtin_memset( &TMP$3152$7, 0, 24ll );
							FBSTRING* vr$897 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
							__builtin_memset( &TMP$3150$7, 0, 24ll );
							FBSTRING* vr$900 = fb_StrConcat( &TMP$3150$7, (void*)"mov DWORD PTR ", 15ll, (void*)vr$897, -1ll );
							__builtin_memset( &TMP$3151$7, 0, 24ll );
							FBSTRING* vr$903 = fb_StrConcat( &TMP$3151$7, (void*)vr$900, -1ll, (void*)"[rsp], eax", 11ll );
							fb_StrAssign( (void*)&TMP$3152$7, -1ll, (void*)vr$903, -1ll, 0 );
							HWRITEASM64( &TMP$3152$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$3152$7 );
						}
						goto label$2434;
						label$2435:;
						if( DTYPE$1 != 16ll ) goto label$2438;
						{
							FBSTRING TMP$3157$7;
							FBSTRING TMP$3158$7;
							FBSTRING TMP$3159$7;
							if( *(double*)((uint8*)V2$1 + 48ll) != 0x0p+0 ) goto label$2440;
							{
								FBSTRING TMP$3154$8;
								__builtin_memset( &TMP$3154$8, 0, 24ll );
								fb_StrAssign( (void*)&TMP$3154$8, -1ll, (void*)"xor rax, rax", 13ll, 0 );
								HWRITEASM64( &TMP$3154$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3154$8 );
							}
							goto label$2439;
							label$2440:;
							{
								FBSTRING TMP$3155$8;
								FBSTRING TMP$3156$8;
								__builtin_memset( &TMP$3156$8, 0, 24ll );
								__builtin_memset( &TMP$3155$8, 0, 24ll );
								FBSTRING* vr$916 = fb_StrConcat( &TMP$3155$8, (void*)"mov rax, ", 10ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3156$8, -1ll, (void*)vr$916, -1ll, 0 );
								HWRITEASM64( &TMP$3156$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3156$8 );
							}
							label$2439:;
							__builtin_memset( &TMP$3159$7, 0, 24ll );
							FBSTRING* vr$923 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
							__builtin_memset( &TMP$3157$7, 0, 24ll );
							FBSTRING* vr$926 = fb_StrConcat( &TMP$3157$7, (void*)"mov QWORD PTR ", 15ll, (void*)vr$923, -1ll );
							__builtin_memset( &TMP$3158$7, 0, 24ll );
							FBSTRING* vr$929 = fb_StrConcat( &TMP$3158$7, (void*)vr$926, -1ll, (void*)"[rsp], rax", 11ll );
							fb_StrAssign( (void*)&TMP$3159$7, -1ll, (void*)vr$929, -1ll, 0 );
							HWRITEASM64( &TMP$3159$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$3159$7 );
						}
						goto label$2434;
						label$2438:;
						{
							if( ((int64)-(*(int64*)((uint8*)V2$1 + 48ll) < -2147483648ll) | (int64)-(*(uint64*)((uint8*)V2$1 + 48ll) > 4294967295ull)) == 0ll ) goto label$2442;
							{
								FBSTRING TMP$3160$8;
								FBSTRING TMP$3161$8;
								FBSTRING TMP$3162$8;
								FBSTRING TMP$3163$8;
								FBSTRING TMP$3164$8;
								__builtin_memset( &TMP$3161$8, 0, 24ll );
								__builtin_memset( &TMP$3160$8, 0, 24ll );
								FBSTRING* vr$942 = fb_StrConcat( &TMP$3160$8, (void*)"mov rax, ", 10ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3161$8, -1ll, (void*)vr$942, -1ll, 0 );
								HWRITEASM64( &TMP$3161$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3161$8 );
								__builtin_memset( &TMP$3164$8, 0, 24ll );
								FBSTRING* vr$949 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
								__builtin_memset( &TMP$3162$8, 0, 24ll );
								FBSTRING* vr$952 = fb_StrConcat( &TMP$3162$8, (void*)"mov QWORD PTR ", 15ll, (void*)vr$949, -1ll );
								__builtin_memset( &TMP$3163$8, 0, 24ll );
								FBSTRING* vr$955 = fb_StrConcat( &TMP$3163$8, (void*)vr$952, -1ll, (void*)"[rsp], rax", 11ll );
								fb_StrAssign( (void*)&TMP$3164$8, -1ll, (void*)vr$955, -1ll, 0 );
								HWRITEASM64( &TMP$3164$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3164$8 );
							}
							goto label$2441;
							label$2442:;
							if( *(uint64*)((uint8*)V2$1 + 48ll) < 2147483648ull ) goto label$2443;
							{
								FBSTRING TMP$3165$8;
								FBSTRING TMP$3166$8;
								FBSTRING TMP$3167$8;
								FBSTRING TMP$3168$8;
								FBSTRING TMP$3169$8;
								__builtin_memset( &TMP$3166$8, 0, 24ll );
								__builtin_memset( &TMP$3165$8, 0, 24ll );
								FBSTRING* vr$964 = fb_StrConcat( &TMP$3165$8, (void*)"mov eax, ", 10ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3166$8, -1ll, (void*)vr$964, -1ll, 0 );
								HWRITEASM64( &TMP$3166$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3166$8 );
								__builtin_memset( &TMP$3169$8, 0, 24ll );
								FBSTRING* vr$971 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
								__builtin_memset( &TMP$3167$8, 0, 24ll );
								FBSTRING* vr$974 = fb_StrConcat( &TMP$3167$8, (void*)"mov QWORD PTR ", 15ll, (void*)vr$971, -1ll );
								__builtin_memset( &TMP$3168$8, 0, 24ll );
								FBSTRING* vr$977 = fb_StrConcat( &TMP$3168$8, (void*)vr$974, -1ll, (void*)"[rsp], rax", 11ll );
								fb_StrAssign( (void*)&TMP$3169$8, -1ll, (void*)vr$977, -1ll, 0 );
								HWRITEASM64( &TMP$3169$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3169$8 );
							}
							goto label$2441;
							label$2443:;
							{
								FBSTRING TMP$3170$8;
								FBSTRING TMP$3171$8;
								FBSTRING TMP$3172$8;
								FBSTRING TMP$3173$8;
								__builtin_memset( &TMP$3173$8, 0, 24ll );
								FBSTRING* vr$985 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
								__builtin_memset( &TMP$3170$8, 0, 24ll );
								FBSTRING* vr$988 = fb_StrConcat( &TMP$3170$8, (void*)"mov QWORD PTR ", 15ll, (void*)vr$985, -1ll );
								__builtin_memset( &TMP$3171$8, 0, 24ll );
								FBSTRING* vr$991 = fb_StrConcat( &TMP$3171$8, (void*)vr$988, -1ll, (void*)"[rsp], ", 8ll );
								__builtin_memset( &TMP$3172$8, 0, 24ll );
								FBSTRING* vr$994 = fb_StrConcat( &TMP$3172$8, (void*)vr$991, -1ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3173$8, -1ll, (void*)vr$994, -1ll, 0 );
								HWRITEASM64( &TMP$3173$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3173$8 );
							}
							label$2441:;
						}
						label$2434:;
					}
					goto label$2432;
					label$2433:;
					{
						if( *(int64*)V2$1 != 4ll ) goto label$2445;
						{
							if( DTYPE$1 != 20ll ) goto label$2447;
							{
								FBSTRING TMP$3174$8;
								FBSTRING TMP$3175$8;
								FBSTRING TMP$3176$8;
								FBSTRING TMP$3177$8;
								FBSTRING TMP$3178$8;
								FBSTRING TMP$3179$8;
								FBSTRING TMP$3180$8;
								FBSTRING TMP$3181$8;
								*(int64*)((uint8*)&CTX$ + 216ll) = (((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 16ll) + 80ll) + *(int64*)((uint8*)&CTX$ + 216ll)) + *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 16ll) + 80ll)) + -1ll) & ~(*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 16ll) + 80ll) + -1ll);
								*(int64*)((uint8*)&CTX$ + 216ll) = (*(int64*)((uint8*)&CTX$ + 216ll) + -(*(int64*)((uint8*)&CTX$ + 216ll) % 8ll)) + 8ll;
								__builtin_memset( &TMP$3175$8, 0, 24ll );
								FBSTRING* vr$1017 = fb_LongintToStr( -(*(int64*)((uint8*)&CTX$ + 216ll)) );
								__builtin_memset( &TMP$3174$8, 0, 24ll );
								FBSTRING* vr$1020 = fb_StrConcat( &TMP$3174$8, (void*)vr$1017, -1ll, (void*)"[rbp]", 6ll );
								fb_StrAssign( (void*)&TMP$3175$8, -1ll, (void*)vr$1020, -1ll, 0 );
								MEMCOPY( *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 16ll) + 80ll), &OP1$1, &TMP$3175$8, 0, 1 );
								fb_StrDelete( (FBSTRING*)&TMP$3175$8 );
								__builtin_memset( &TMP$3178$8, 0, 24ll );
								FBSTRING* vr$1029 = fb_LongintToStr( -(*(int64*)((uint8*)&CTX$ + 216ll)) );
								__builtin_memset( &TMP$3176$8, 0, 24ll );
								FBSTRING* vr$1032 = fb_StrConcat( &TMP$3176$8, (void*)"mov rax, ", 10ll, (void*)vr$1029, -1ll );
								__builtin_memset( &TMP$3177$8, 0, 24ll );
								FBSTRING* vr$1035 = fb_StrConcat( &TMP$3177$8, (void*)vr$1032, -1ll, (void*)"[rbp]", 6ll );
								fb_StrAssign( (void*)&TMP$3178$8, -1ll, (void*)vr$1035, -1ll, 0 );
								HWRITEASM64( &TMP$3178$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3178$8 );
								__builtin_memset( &TMP$3181$8, 0, 24ll );
								FBSTRING* vr$1042 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
								__builtin_memset( &TMP$3179$8, 0, 24ll );
								FBSTRING* vr$1045 = fb_StrConcat( &TMP$3179$8, (void*)"mov ", 5ll, (void*)vr$1042, -1ll );
								__builtin_memset( &TMP$3180$8, 0, 24ll );
								FBSTRING* vr$1048 = fb_StrConcat( &TMP$3180$8, (void*)vr$1045, -1ll, (void*)"[rsp], rax", 11ll );
								fb_StrAssign( (void*)&TMP$3181$8, -1ll, (void*)vr$1048, -1ll, 0 );
								HWRITEASM64( &TMP$3181$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3181$8 );
							}
							goto label$2446;
							label$2447:;
							{
								FBSTRING TMP$3182$8;
								FBSTRING TMP$3183$8;
								FBSTRING TMP$3184$8;
								FBSTRING TMP$3185$8;
								__builtin_memset( &TMP$3185$8, 0, 24ll );
								FBSTRING* vr$1056 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
								__builtin_memset( &TMP$3182$8, 0, 24ll );
								FBSTRING* vr$1059 = fb_StrConcat( &TMP$3182$8, (void*)"mov ", 5ll, (void*)vr$1056, -1ll );
								__builtin_memset( &TMP$3183$8, 0, 24ll );
								FBSTRING* vr$1062 = fb_StrConcat( &TMP$3183$8, (void*)vr$1059, -1ll, (void*)"[rsp], ", 8ll );
								__builtin_memset( &TMP$3184$8, 0, 24ll );
								FBSTRING* vr$1065 = fb_StrConcat( &TMP$3184$8, (void*)vr$1062, -1ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3185$8, -1ll, (void*)vr$1065, -1ll, 0 );
								HWRITEASM64( &TMP$3185$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3185$8 );
							}
							label$2446:;
						}
						goto label$2444;
						label$2445:;
						{
							if( ((int64)-(*(int64*)V2$1 == 5ll) | (int64)-(DTYPE$1 == 20ll)) == 0ll ) goto label$2449;
							{
								int64 TMP$3186$8;
								int64 TMP$3187$8;
								if( (*(int64*)((uint8*)V2$1 + 8ll) & 31ll) != 22ll ) goto label$2450;
								TMP$3186$8 = (int64)-((int64)-(*(boolean*)((uint8*)&CTX$ + 416ll)) == -1ll);
								goto label$3150;
								label$2450:;
								TMP$3186$8 = 0ll;
								label$3150:;
								if( TMP$3186$8 == 0ll ) goto label$2451;
								int64 vr$1077 = FBGETOPTION( 0ll );
								TMP$3187$8 = (int64)-(vr$1077 == 2ll);
								goto label$3151;
								label$2451:;
								TMP$3187$8 = 0ll;
								label$3151:;
								if( TMP$3187$8 == 0ll ) goto label$2453;
								{
									FBSTRING TMP$3188$9;
									FBSTRING TMP$3189$9;
									FBSTRING TMP$3190$9;
									__builtin_memset( &TMP$3190$9, 0, 24ll );
									FBSTRING* vr$1080 = fb_StrAllocTempDescZEx( (char*)"[", 1ll );
									int64 vr$1082 = fb_StrInstr( 1ll, (FBSTRING*)&OP1$1, (FBSTRING*)vr$1080 );
									FBSTRING* vr$1085 = fb_LEFT( (FBSTRING*)&OP1$1, vr$1082 + -1ll );
									__builtin_memset( &TMP$3188$9, 0, 24ll );
									FBSTRING* vr$1088 = fb_StrConcat( &TMP$3188$9, (void*)"mov rax, QWORD PTR ", 20ll, (void*)vr$1085, -1ll );
									__builtin_memset( &TMP$3189$9, 0, 24ll );
									FBSTRING* vr$1091 = fb_StrConcat( &TMP$3189$9, (void*)vr$1088, -1ll, (void*)"@GOTPCREL[rip]", 15ll );
									fb_StrAssign( (void*)&TMP$3190$9, -1ll, (void*)vr$1091, -1ll, 0 );
									HWRITEASM64( &TMP$3190$9, 0ll );
									fb_StrDelete( (FBSTRING*)&TMP$3190$9 );
								}
								goto label$2452;
								label$2453:;
								{
									FBSTRING TMP$3191$9;
									FBSTRING TMP$3192$9;
									__builtin_memset( &TMP$3192$9, 0, 24ll );
									__builtin_memset( &TMP$3191$9, 0, 24ll );
									FBSTRING* vr$1099 = fb_StrConcat( &TMP$3191$9, (void*)"lea rax, ", 10ll, (void*)&OP1$1, -1ll );
									fb_StrAssign( (void*)&TMP$3192$9, -1ll, (void*)vr$1099, -1ll, 0 );
									HWRITEASM64( &TMP$3192$9, 0ll );
									fb_StrDelete( (FBSTRING*)&TMP$3192$9 );
								}
								label$2452:;
							}
							goto label$2448;
							label$2449:;
							{
								FBSTRING TMP$3193$8;
								FBSTRING TMP$3194$8;
								__builtin_memset( &TMP$3194$8, 0, 24ll );
								__builtin_memset( &TMP$3193$8, 0, 24ll );
								FBSTRING* vr$1107 = fb_StrConcat( &TMP$3193$8, (void*)"mov rax, ", 10ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3194$8, -1ll, (void*)vr$1107, -1ll, 0 );
								HWRITEASM64( &TMP$3194$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3194$8 );
							}
							label$2448:;
							if( DTYPE$1 != 20ll ) goto label$2455;
							{
								FBSTRING TMP$3195$8;
								FBSTRING TMP$3196$8;
								FBSTRING TMP$3197$8;
								FBSTRING TMP$3198$8;
								FBSTRING TMP$3199$8;
								FBSTRING TMP$3200$8;
								FBSTRING TMP$3201$8;
								FBSTRING TMP$3202$8;
								FBSTRING TMP$3203$8;
								*(int64*)((uint8*)&CTX$ + 216ll) = (((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 16ll) + 80ll) + *(int64*)((uint8*)&CTX$ + 216ll)) + *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 16ll) + 80ll)) + -1ll) & ~(*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 16ll) + 80ll) + -1ll);
								*(int64*)((uint8*)&CTX$ + 216ll) = (*(int64*)((uint8*)&CTX$ + 216ll) + -(*(int64*)((uint8*)&CTX$ + 216ll) % 8ll)) + 8ll;
								__builtin_memset( &TMP$3197$8, 0, 24ll );
								FBSTRING* vr$1129 = fb_LongintToStr( -(*(int64*)((uint8*)&CTX$ + 216ll)) );
								__builtin_memset( &TMP$3196$8, 0, 24ll );
								FBSTRING* vr$1132 = fb_StrConcat( &TMP$3196$8, (void*)vr$1129, -1ll, (void*)"[rbp]", 6ll );
								fb_StrAssign( (void*)&TMP$3197$8, -1ll, (void*)vr$1132, -1ll, 0 );
								__builtin_memset( &TMP$3195$8, 0, 24ll );
								fb_StrAssign( (void*)&TMP$3195$8, -1ll, (void*)"rax", 4ll, 0 );
								MEMCOPY( *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 16ll) + 80ll), &TMP$3195$8, &TMP$3197$8, 0, 1 );
								fb_StrDelete( (FBSTRING*)&TMP$3197$8 );
								fb_StrDelete( (FBSTRING*)&TMP$3195$8 );
								__builtin_memset( &TMP$3200$8, 0, 24ll );
								FBSTRING* vr$1144 = fb_LongintToStr( -(*(int64*)((uint8*)&CTX$ + 216ll)) );
								__builtin_memset( &TMP$3198$8, 0, 24ll );
								FBSTRING* vr$1147 = fb_StrConcat( &TMP$3198$8, (void*)"lea rax, ", 10ll, (void*)vr$1144, -1ll );
								__builtin_memset( &TMP$3199$8, 0, 24ll );
								FBSTRING* vr$1150 = fb_StrConcat( &TMP$3199$8, (void*)vr$1147, -1ll, (void*)"[rbp]", 6ll );
								fb_StrAssign( (void*)&TMP$3200$8, -1ll, (void*)vr$1150, -1ll, 0 );
								HWRITEASM64( &TMP$3200$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3200$8 );
								__builtin_memset( &TMP$3203$8, 0, 24ll );
								FBSTRING* vr$1157 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
								__builtin_memset( &TMP$3201$8, 0, 24ll );
								FBSTRING* vr$1160 = fb_StrConcat( &TMP$3201$8, (void*)"mov QWORD PTR ", 15ll, (void*)vr$1157, -1ll );
								__builtin_memset( &TMP$3202$8, 0, 24ll );
								FBSTRING* vr$1163 = fb_StrConcat( &TMP$3202$8, (void*)vr$1160, -1ll, (void*)"[rsp], rax", 11ll );
								fb_StrAssign( (void*)&TMP$3203$8, -1ll, (void*)vr$1163, -1ll, 0 );
								HWRITEASM64( &TMP$3203$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3203$8 );
							}
							goto label$2454;
							label$2455:;
							{
								FBSTRING TMP$3204$8;
								FBSTRING TMP$3205$8;
								FBSTRING TMP$3206$8;
								__builtin_memset( &TMP$3206$8, 0, 24ll );
								FBSTRING* vr$1170 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
								__builtin_memset( &TMP$3204$8, 0, 24ll );
								FBSTRING* vr$1173 = fb_StrConcat( &TMP$3204$8, (void*)"mov QWORD PTR ", 15ll, (void*)vr$1170, -1ll );
								__builtin_memset( &TMP$3205$8, 0, 24ll );
								FBSTRING* vr$1176 = fb_StrConcat( &TMP$3205$8, (void*)vr$1173, -1ll, (void*)"[rsp], rax", 11ll );
								fb_StrAssign( (void*)&TMP$3206$8, -1ll, (void*)vr$1176, -1ll, 0 );
								HWRITEASM64( &TMP$3206$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3206$8 );
							}
							label$2454:;
						}
						label$2444:;
					}
					label$2432:;
				}
				label$2411:;
			}
			label$2378:;
		}
		goto label$2376;
		label$2377:;
		{
			int32 vr$1181 = fb_StrCompare( (void*)&OP3$1, -1ll, (void*)"", 1ll );
			if( (int64)vr$1181 == 0ll ) goto label$2457;
			{
				EMITOP3_OP4( &OP3$1 );
				label$2457:;
			}
			if( *(int64*)V2$1 != 0ll ) goto label$2459;
			{
				if( DTYPE$1 != 15ll ) goto label$2461;
				{
					FBSTRING TMP$3210$5;
					FBSTRING TMP$3211$5;
					FBSTRING TMP$3212$5;
					if( *(double*)((uint8*)V2$1 + 48ll) != 0x0p+0 ) goto label$2463;
					{
						FBSTRING TMP$3207$6;
						__builtin_memset( &TMP$3207$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$3207$6, -1ll, (void*)"xor eax, eax", 13ll, 0 );
						HWRITEASM64( &TMP$3207$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3207$6 );
					}
					goto label$2462;
					label$2463:;
					{
						FBSTRING TMP$3208$6;
						FBSTRING TMP$3209$6;
						__builtin_memset( &TMP$3209$6, 0, 24ll );
						__builtin_memset( &TMP$3208$6, 0, 24ll );
						FBSTRING* vr$1194 = fb_StrConcat( &TMP$3208$6, (void*)"mov eax, ", 10ll, (void*)&OP1$1, -1ll );
						fb_StrAssign( (void*)&TMP$3209$6, -1ll, (void*)vr$1194, -1ll, 0 );
						HWRITEASM64( &TMP$3209$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3209$6 );
					}
					label$2462:;
					__builtin_memset( &TMP$3212$5, 0, 24ll );
					FBSTRING* vr$1200 = fb_LongintToStr( CPTFLOAT$1 + -1ll );
					__builtin_memset( &TMP$3210$5, 0, 24ll );
					FBSTRING* vr$1203 = fb_StrConcat( &TMP$3210$5, (void*)"movd xmm", 9ll, (void*)vr$1200, -1ll );
					__builtin_memset( &TMP$3211$5, 0, 24ll );
					FBSTRING* vr$1206 = fb_StrConcat( &TMP$3211$5, (void*)vr$1203, -1ll, (void*)", eax", 6ll );
					fb_StrAssign( (void*)&TMP$3212$5, -1ll, (void*)vr$1206, -1ll, 0 );
					HWRITEASM64( &TMP$3212$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3212$5 );
				}
				goto label$2460;
				label$2461:;
				if( DTYPE$1 != 16ll ) goto label$2464;
				{
					FBSTRING TMP$3216$5;
					FBSTRING TMP$3217$5;
					FBSTRING TMP$3218$5;
					if( *(double*)((uint8*)V2$1 + 48ll) != 0x0p+0 ) goto label$2466;
					{
						FBSTRING TMP$3213$6;
						__builtin_memset( &TMP$3213$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$3213$6, -1ll, (void*)"xor eax, eax", 13ll, 0 );
						HWRITEASM64( &TMP$3213$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3213$6 );
					}
					goto label$2465;
					label$2466:;
					{
						FBSTRING TMP$3214$6;
						FBSTRING TMP$3215$6;
						__builtin_memset( &TMP$3215$6, 0, 24ll );
						__builtin_memset( &TMP$3214$6, 0, 24ll );
						FBSTRING* vr$1219 = fb_StrConcat( &TMP$3214$6, (void*)"mov rax, ", 10ll, (void*)&OP1$1, -1ll );
						fb_StrAssign( (void*)&TMP$3215$6, -1ll, (void*)vr$1219, -1ll, 0 );
						HWRITEASM64( &TMP$3215$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3215$6 );
					}
					label$2465:;
					__builtin_memset( &TMP$3218$5, 0, 24ll );
					FBSTRING* vr$1225 = fb_LongintToStr( CPTFLOAT$1 + -1ll );
					__builtin_memset( &TMP$3216$5, 0, 24ll );
					FBSTRING* vr$1228 = fb_StrConcat( &TMP$3216$5, (void*)"movq xmm", 9ll, (void*)vr$1225, -1ll );
					__builtin_memset( &TMP$3217$5, 0, 24ll );
					FBSTRING* vr$1231 = fb_StrConcat( &TMP$3217$5, (void*)vr$1228, -1ll, (void*)", rax", 6ll );
					fb_StrAssign( (void*)&TMP$3218$5, -1ll, (void*)vr$1231, -1ll, 0 );
					HWRITEASM64( &TMP$3218$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3218$5 );
					if( ((int64)-((int64)-VARIADIC$1 == -1ll) & (int64)-(*(int64*)((uint8*)&CTX$ + 408ll) == 0ll)) == 0ll ) goto label$2468;
					{
						FBSTRING TMP$3219$6;
						FBSTRING TMP$3220$6;
						FBSTRING TMP$3221$6;
						__builtin_memset( &TMP$3221$6, 0, 24ll );
						FBSTRING* vr$1242 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
						__builtin_memset( &TMP$3219$6, 0, 24ll );
						FBSTRING* vr$1245 = fb_StrConcat( &TMP$3219$6, (void*)"mov QWORD PTR ", 15ll, (void*)vr$1242, -1ll );
						__builtin_memset( &TMP$3220$6, 0, 24ll );
						FBSTRING* vr$1248 = fb_StrConcat( &TMP$3220$6, (void*)vr$1245, -1ll, (void*)"[rsp], rax", 11ll );
						fb_StrAssign( (void*)&TMP$3221$6, -1ll, (void*)vr$1248, -1ll, 0 );
						HWRITEASM64( &TMP$3221$6, 3ll );
						fb_StrDelete( (FBSTRING*)&TMP$3221$6 );
					}
					label$2468:;
					label$2467:;
				}
				goto label$2460;
				label$2464:;
				{
					REG_TRANSFER( *(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)&LISTREG$), (int32)REG2$1 );
					if( *(int64*)((uint8*)V2$1 + 48ll) != 0ll ) goto label$2470;
					{
						FBSTRING TMP$3222$6;
						FBSTRING TMP$3223$6;
						FBSTRING TMP$3224$6;
						FBSTRING TMP$3225$6;
						__builtin_memset( &TMP$3225$6, 0, 24ll );
						__builtin_memset( &TMP$3222$6, 0, 24ll );
						FBSTRING* vr$1267 = fb_StrConcat( &TMP$3222$6, (void*)"xor ", 5ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)*(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
						__builtin_memset( &TMP$3223$6, 0, 24ll );
						FBSTRING* vr$1270 = fb_StrConcat( &TMP$3223$6, (void*)vr$1267, -1ll, (void*)", ", 3ll );
						__builtin_memset( &TMP$3224$6, 0, 24ll );
						FBSTRING* vr$1273 = fb_StrConcat( &TMP$3224$6, (void*)vr$1270, -1ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)*(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
						fb_StrAssign( (void*)&TMP$3225$6, -1ll, (void*)vr$1273, -1ll, 0 );
						HWRITEASM64( &TMP$3225$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3225$6 );
					}
					goto label$2469;
					label$2470:;
					if( ((int64)-(*(int64*)((uint8*)V2$1 + 48ll) > 0ll) & (int64)-(*(int64*)((uint8*)V2$1 + 48ll) <= 2147483647ll)) == 0ll ) goto label$2471;
					{
						FBSTRING TMP$3226$6;
						FBSTRING TMP$3227$6;
						FBSTRING TMP$3228$6;
						FBSTRING TMP$3229$6;
						__builtin_memset( &TMP$3229$6, 0, 24ll );
						__builtin_memset( &TMP$3226$6, 0, 24ll );
						FBSTRING* vr$1290 = fb_StrConcat( &TMP$3226$6, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)*(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
						__builtin_memset( &TMP$3227$6, 0, 24ll );
						FBSTRING* vr$1293 = fb_StrConcat( &TMP$3227$6, (void*)vr$1290, -1ll, (void*)", ", 3ll );
						__builtin_memset( &TMP$3228$6, 0, 24ll );
						FBSTRING* vr$1296 = fb_StrConcat( &TMP$3228$6, (void*)vr$1293, -1ll, (void*)&OP1$1, -1ll );
						fb_StrAssign( (void*)&TMP$3229$6, -1ll, (void*)vr$1296, -1ll, 0 );
						HWRITEASM64( &TMP$3229$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3229$6 );
					}
					goto label$2469;
					label$2471:;
					{
						{
							if( DTYPE$1 == 8ll ) goto label$2474;
							label$2475:;
							if( DTYPE$1 == 9ll ) goto label$2474;
							label$2476:;
							if( DTYPE$1 == 13ll ) goto label$2474;
							label$2477:;
							if( DTYPE$1 == 14ll ) goto label$2474;
							label$2478:;
							if( DTYPE$1 != 10ll ) goto label$2473;
							label$2474:;
							{
								FBSTRING TMP$3230$8;
								FBSTRING TMP$3231$8;
								FBSTRING TMP$3232$8;
								FBSTRING TMP$3233$8;
								__builtin_memset( &TMP$3233$8, 0, 24ll );
								__builtin_memset( &TMP$3230$8, 0, 24ll );
								FBSTRING* vr$1308 = fb_StrConcat( &TMP$3230$8, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
								__builtin_memset( &TMP$3231$8, 0, 24ll );
								FBSTRING* vr$1311 = fb_StrConcat( &TMP$3231$8, (void*)vr$1308, -1ll, (void*)", ", 3ll );
								__builtin_memset( &TMP$3232$8, 0, 24ll );
								FBSTRING* vr$1314 = fb_StrConcat( &TMP$3232$8, (void*)vr$1311, -1ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3233$8, -1ll, (void*)vr$1314, -1ll, 0 );
								HWRITEASM64( &TMP$3233$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3233$8 );
							}
							goto label$2472;
							label$2473:;
							{
								FBSTRING TMP$3234$8;
								FBSTRING TMP$3235$8;
								FBSTRING TMP$3236$8;
								FBSTRING TMP$3237$8;
								__builtin_memset( &TMP$3237$8, 0, 24ll );
								__builtin_memset( &TMP$3234$8, 0, 24ll );
								FBSTRING* vr$1326 = fb_StrConcat( &TMP$3234$8, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)*(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
								__builtin_memset( &TMP$3235$8, 0, 24ll );
								FBSTRING* vr$1329 = fb_StrConcat( &TMP$3235$8, (void*)vr$1326, -1ll, (void*)", ", 3ll );
								__builtin_memset( &TMP$3236$8, 0, 24ll );
								FBSTRING* vr$1332 = fb_StrConcat( &TMP$3236$8, (void*)vr$1329, -1ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3237$8, -1ll, (void*)vr$1332, -1ll, 0 );
								HWRITEASM64( &TMP$3237$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3237$8 );
							}
							label$2479:;
							label$2472:;
						}
					}
					label$2469:;
					if( ((int64)-((int64)-VARIADIC$1 == -1ll) & (int64)-(*(int64*)((uint8*)&CTX$ + 408ll) == 0ll)) == 0ll ) goto label$2481;
					{
						FBSTRING TMP$3238$6;
						FBSTRING TMP$3239$6;
						FBSTRING TMP$3240$6;
						FBSTRING TMP$3241$6;
						__builtin_memset( &TMP$3241$6, 0, 24ll );
						FBSTRING* vr$1347 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
						__builtin_memset( &TMP$3238$6, 0, 24ll );
						FBSTRING* vr$1350 = fb_StrConcat( &TMP$3238$6, (void*)"mov QWORD PTR ", 15ll, (void*)vr$1347, -1ll );
						__builtin_memset( &TMP$3239$6, 0, 24ll );
						FBSTRING* vr$1353 = fb_StrConcat( &TMP$3239$6, (void*)vr$1350, -1ll, (void*)"[rsp], ", 8ll );
						__builtin_memset( &TMP$3240$6, 0, 24ll );
						FBSTRING* vr$1356 = fb_StrConcat( &TMP$3240$6, (void*)vr$1353, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
						fb_StrAssign( (void*)&TMP$3241$6, -1ll, (void*)vr$1356, -1ll, 0 );
						HWRITEASM64( &TMP$3241$6, 3ll );
						fb_StrDelete( (FBSTRING*)&TMP$3241$6 );
					}
					label$2481:;
					label$2480:;
				}
				label$2460:;
			}
			goto label$2458;
			label$2459:;
			if( DTYPE$1 != 20ll ) goto label$2482;
			{
				LGT$1 = *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 16ll) + 80ll);
				if( *(int64*)V2$1 != 4ll ) goto label$2484;
				{
					FBSTRING TMP$3242$5;
					FBSTRING TMP$3243$5;
					__builtin_memset( &TMP$3242$5, 0, 24ll );
					FBSTRING* vr$1366 = fb_StrConcat( &TMP$3242$5, (void*)"[", 2ll, (void*)&OP1$1, -1ll );
					__builtin_memset( &TMP$3243$5, 0, 24ll );
					FBSTRING* vr$1369 = fb_StrConcat( &TMP$3243$5, (void*)vr$1366, -1ll, (void*)"]", 2ll );
					fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$1369, -1ll, 0 );
				}
				label$2484:;
				label$2483:;
				if( *(boolean*)((uint8*)&CTX$ + 416ll) == (boolean)0ll ) goto label$2486;
				{
					{
						uint64 TMP$3244$6;
						TMP$3244$6 = (uint64)PARAMTYPE$1;
						goto label$2488;
						label$2489:;
						{
							REG_FILLR( LGT$1, &OP1$1, CPTINT$1, (struct $7FBARRAYIiE*)&LISTREG$, (int32)REG2$1 );
						}
						goto label$2487;
						label$2490:;
						{
							REG_FILLR( 8ll, &OP1$1, CPTINT$1 + -1ll, (struct $7FBARRAYIiE*)&LISTREG$, (int32)REG2$1 );
							REG_FILLR( LGT$1, &OP1$1, CPTINT$1, (struct $7FBARRAYIiE*)&LISTREG$, (int32)REG2$1 );
						}
						goto label$2487;
						label$2491:;
						{
							REG_FILLR( 8ll, &OP1$1, CPTINT$1, (struct $7FBARRAYIiE*)&LISTREG$, (int32)REG2$1 );
							REG_FILLX( LGT$1, &OP1$1, CPTFLOAT$1 );
						}
						goto label$2487;
						label$2492:;
						{
							REG_FILLX( LGT$1, &OP1$1, CPTFLOAT$1 );
						}
						goto label$2487;
						label$2493:;
						{
							REG_FILLX( 8ll, &OP1$1, CPTFLOAT$1 );
							REG_FILLR( LGT$1, &OP1$1, CPTINT$1, (struct $7FBARRAYIiE*)&LISTREG$, (int32)REG2$1 );
						}
						goto label$2487;
						label$2494:;
						{
							REG_FILLX( 8ll, &OP1$1, CPTFLOAT$1 + -1ll );
							REG_FILLX( LGT$1, &OP1$1, CPTFLOAT$1 );
						}
						goto label$2487;
						label$2488:;
						static const void* tmp$4080[6ll] = {
							&&label$2489,
							&&label$2492,
							&&label$2490,
							&&label$2491,
							&&label$2493,
							&&label$2494,
						};
						if( TMP$3244$6 > 5ull ) goto label$2487;
						goto *tmp$4080[TMP$3244$6 - 0ull];
						label$2487:;
					}
				}
				goto label$2485;
				label$2486:;
				{
					if( PARAMTYPE$1 != 0ll ) goto label$2496;
					{
						REG_FILLR( LGT$1, &OP1$1, CPTINT$1, (struct $7FBARRAYIiE*)&LISTREG$, (int32)REG2$1 );
					}
					goto label$2495;
					label$2496:;
					if( PARAMTYPE$1 != 1ll ) goto label$2497;
					{
						REG_FILLX( LGT$1, &OP1$1, CPTFLOAT$1 );
					}
					goto label$2495;
					label$2497:;
					{
						if( *(int64*)V2$1 != 4ll ) goto label$2499;
						{
							{
								uint64 TMP$3245$8;
								TMP$3245$8 = (uint64)LGT$1;
								goto label$2501;
								label$2502:;
								{
									FBSTRING TMP$3246$9;
									FBSTRING TMP$3247$9;
									FBSTRING TMP$3248$9;
									FBSTRING TMP$3249$9;
									__builtin_memset( &TMP$3249$9, 0, 24ll );
									FBSTRING* vr$1396 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
									__builtin_memset( &TMP$3246$9, 0, 24ll );
									FBSTRING* vr$1399 = fb_StrConcat( &TMP$3246$9, (void*)"mov byte PTR ", 14ll, (void*)vr$1396, -1ll );
									__builtin_memset( &TMP$3247$9, 0, 24ll );
									FBSTRING* vr$1402 = fb_StrConcat( &TMP$3247$9, (void*)vr$1399, -1ll, (void*)"[rsp], ", 8ll );
									__builtin_memset( &TMP$3248$9, 0, 24ll );
									FBSTRING* vr$1405 = fb_StrConcat( &TMP$3248$9, (void*)vr$1402, -1ll, (void*)&OP1$1, -1ll );
									fb_StrAssign( (void*)&TMP$3249$9, -1ll, (void*)vr$1405, -1ll, 0 );
									HWRITEASM64( &TMP$3249$9, 0ll );
									fb_StrDelete( (FBSTRING*)&TMP$3249$9 );
								}
								goto label$2500;
								label$2503:;
								{
									FBSTRING TMP$3250$9;
									FBSTRING TMP$3251$9;
									FBSTRING TMP$3252$9;
									FBSTRING TMP$3253$9;
									__builtin_memset( &TMP$3253$9, 0, 24ll );
									FBSTRING* vr$1413 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
									__builtin_memset( &TMP$3250$9, 0, 24ll );
									FBSTRING* vr$1416 = fb_StrConcat( &TMP$3250$9, (void*)"mov WORD PTR ", 14ll, (void*)vr$1413, -1ll );
									__builtin_memset( &TMP$3251$9, 0, 24ll );
									FBSTRING* vr$1419 = fb_StrConcat( &TMP$3251$9, (void*)vr$1416, -1ll, (void*)"[rsp], ", 8ll );
									__builtin_memset( &TMP$3252$9, 0, 24ll );
									FBSTRING* vr$1422 = fb_StrConcat( &TMP$3252$9, (void*)vr$1419, -1ll, (void*)&OP1$1, -1ll );
									fb_StrAssign( (void*)&TMP$3253$9, -1ll, (void*)vr$1422, -1ll, 0 );
									HWRITEASM64( &TMP$3253$9, 0ll );
									fb_StrDelete( (FBSTRING*)&TMP$3253$9 );
								}
								goto label$2500;
								label$2504:;
								{
									FBSTRING TMP$3254$9;
									FBSTRING TMP$3255$9;
									FBSTRING TMP$3256$9;
									FBSTRING TMP$3257$9;
									__builtin_memset( &TMP$3257$9, 0, 24ll );
									FBSTRING* vr$1430 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
									__builtin_memset( &TMP$3254$9, 0, 24ll );
									FBSTRING* vr$1433 = fb_StrConcat( &TMP$3254$9, (void*)"mov DWORD PTR ", 15ll, (void*)vr$1430, -1ll );
									__builtin_memset( &TMP$3255$9, 0, 24ll );
									FBSTRING* vr$1436 = fb_StrConcat( &TMP$3255$9, (void*)vr$1433, -1ll, (void*)"[rsp], ", 8ll );
									__builtin_memset( &TMP$3256$9, 0, 24ll );
									FBSTRING* vr$1439 = fb_StrConcat( &TMP$3256$9, (void*)vr$1436, -1ll, (void*)&OP1$1, -1ll );
									fb_StrAssign( (void*)&TMP$3257$9, -1ll, (void*)vr$1439, -1ll, 0 );
									HWRITEASM64( &TMP$3257$9, 0ll );
									fb_StrDelete( (FBSTRING*)&TMP$3257$9 );
								}
								goto label$2500;
								label$2505:;
								{
									FBSTRING TMP$3258$9;
									FBSTRING TMP$3259$9;
									FBSTRING TMP$3260$9;
									FBSTRING TMP$3261$9;
									__builtin_memset( &TMP$3261$9, 0, 24ll );
									FBSTRING* vr$1447 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
									__builtin_memset( &TMP$3258$9, 0, 24ll );
									FBSTRING* vr$1450 = fb_StrConcat( &TMP$3258$9, (void*)"mov QWORD PTR ", 15ll, (void*)vr$1447, -1ll );
									__builtin_memset( &TMP$3259$9, 0, 24ll );
									FBSTRING* vr$1453 = fb_StrConcat( &TMP$3259$9, (void*)vr$1450, -1ll, (void*)"[rsp], ", 8ll );
									__builtin_memset( &TMP$3260$9, 0, 24ll );
									FBSTRING* vr$1456 = fb_StrConcat( &TMP$3260$9, (void*)vr$1453, -1ll, (void*)&OP1$1, -1ll );
									fb_StrAssign( (void*)&TMP$3261$9, -1ll, (void*)vr$1456, -1ll, 0 );
									HWRITEASM64( &TMP$3261$9, 0ll );
									fb_StrDelete( (FBSTRING*)&TMP$3261$9 );
								}
								goto label$2500;
								label$2501:;
								static const void* tmp$4081[8ll] = {
									&&label$2502,
									&&label$2503,
									&&label$2500,
									&&label$2504,
									&&label$2500,
									&&label$2500,
									&&label$2500,
									&&label$2505,
								};
								if( (TMP$3245$8 - 1ull) > 7ull ) goto label$2500;
								goto *tmp$4081[TMP$3245$8 - 1ull];
								label$2500:;
							}
						}
						goto label$2498;
						label$2499:;
						{
							{
								uint64 TMP$3262$8;
								TMP$3262$8 = (uint64)LGT$1;
								goto label$2507;
								label$2508:;
								{
									FBSTRING TMP$3263$9;
									FBSTRING TMP$3264$9;
									FBSTRING TMP$3265$9;
									FBSTRING TMP$3266$9;
									FBSTRING TMP$3267$9;
									__builtin_memset( &TMP$3264$9, 0, 24ll );
									__builtin_memset( &TMP$3263$9, 0, 24ll );
									FBSTRING* vr$1464 = fb_StrConcat( &TMP$3263$9, (void*)"mov al, ", 9ll, (void*)&OP1$1, -1ll );
									fb_StrAssign( (void*)&TMP$3264$9, -1ll, (void*)vr$1464, -1ll, 0 );
									HWRITEASM64( &TMP$3264$9, 0ll );
									fb_StrDelete( (FBSTRING*)&TMP$3264$9 );
									__builtin_memset( &TMP$3267$9, 0, 24ll );
									FBSTRING* vr$1471 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
									__builtin_memset( &TMP$3265$9, 0, 24ll );
									FBSTRING* vr$1474 = fb_StrConcat( &TMP$3265$9, (void*)"mov byte PTR ", 14ll, (void*)vr$1471, -1ll );
									__builtin_memset( &TMP$3266$9, 0, 24ll );
									FBSTRING* vr$1477 = fb_StrConcat( &TMP$3266$9, (void*)vr$1474, -1ll, (void*)"[rsp], al", 10ll );
									fb_StrAssign( (void*)&TMP$3267$9, -1ll, (void*)vr$1477, -1ll, 0 );
									HWRITEASM64( &TMP$3267$9, 0ll );
									fb_StrDelete( (FBSTRING*)&TMP$3267$9 );
								}
								goto label$2506;
								label$2509:;
								{
									FBSTRING TMP$3268$9;
									FBSTRING TMP$3269$9;
									FBSTRING TMP$3270$9;
									FBSTRING TMP$3271$9;
									FBSTRING TMP$3272$9;
									__builtin_memset( &TMP$3269$9, 0, 24ll );
									__builtin_memset( &TMP$3268$9, 0, 24ll );
									FBSTRING* vr$1485 = fb_StrConcat( &TMP$3268$9, (void*)"mov ax, ", 9ll, (void*)&OP1$1, -1ll );
									fb_StrAssign( (void*)&TMP$3269$9, -1ll, (void*)vr$1485, -1ll, 0 );
									HWRITEASM64( &TMP$3269$9, 0ll );
									fb_StrDelete( (FBSTRING*)&TMP$3269$9 );
									__builtin_memset( &TMP$3272$9, 0, 24ll );
									FBSTRING* vr$1492 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
									__builtin_memset( &TMP$3270$9, 0, 24ll );
									FBSTRING* vr$1495 = fb_StrConcat( &TMP$3270$9, (void*)"mov WORD PTR ", 14ll, (void*)vr$1492, -1ll );
									__builtin_memset( &TMP$3271$9, 0, 24ll );
									FBSTRING* vr$1498 = fb_StrConcat( &TMP$3271$9, (void*)vr$1495, -1ll, (void*)"[rsp], ax", 10ll );
									fb_StrAssign( (void*)&TMP$3272$9, -1ll, (void*)vr$1498, -1ll, 0 );
									HWRITEASM64( &TMP$3272$9, 0ll );
									fb_StrDelete( (FBSTRING*)&TMP$3272$9 );
								}
								goto label$2506;
								label$2510:;
								{
									FBSTRING TMP$3273$9;
									FBSTRING TMP$3274$9;
									FBSTRING TMP$3275$9;
									FBSTRING TMP$3276$9;
									FBSTRING TMP$3277$9;
									__builtin_memset( &TMP$3274$9, 0, 24ll );
									__builtin_memset( &TMP$3273$9, 0, 24ll );
									FBSTRING* vr$1506 = fb_StrConcat( &TMP$3273$9, (void*)"mov eax, ", 10ll, (void*)&OP1$1, -1ll );
									fb_StrAssign( (void*)&TMP$3274$9, -1ll, (void*)vr$1506, -1ll, 0 );
									HWRITEASM64( &TMP$3274$9, 0ll );
									fb_StrDelete( (FBSTRING*)&TMP$3274$9 );
									__builtin_memset( &TMP$3277$9, 0, 24ll );
									FBSTRING* vr$1513 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
									__builtin_memset( &TMP$3275$9, 0, 24ll );
									FBSTRING* vr$1516 = fb_StrConcat( &TMP$3275$9, (void*)"mov DWORD PTR ", 15ll, (void*)vr$1513, -1ll );
									__builtin_memset( &TMP$3276$9, 0, 24ll );
									FBSTRING* vr$1519 = fb_StrConcat( &TMP$3276$9, (void*)vr$1516, -1ll, (void*)"[rsp], eax", 11ll );
									fb_StrAssign( (void*)&TMP$3277$9, -1ll, (void*)vr$1519, -1ll, 0 );
									HWRITEASM64( &TMP$3277$9, 0ll );
									fb_StrDelete( (FBSTRING*)&TMP$3277$9 );
								}
								goto label$2506;
								label$2511:;
								{
									FBSTRING TMP$3278$9;
									FBSTRING TMP$3279$9;
									FBSTRING TMP$3280$9;
									FBSTRING TMP$3281$9;
									FBSTRING TMP$3282$9;
									__builtin_memset( &TMP$3279$9, 0, 24ll );
									__builtin_memset( &TMP$3278$9, 0, 24ll );
									FBSTRING* vr$1527 = fb_StrConcat( &TMP$3278$9, (void*)"mov rax, ", 10ll, (void*)&OP1$1, -1ll );
									fb_StrAssign( (void*)&TMP$3279$9, -1ll, (void*)vr$1527, -1ll, 0 );
									HWRITEASM64( &TMP$3279$9, 0ll );
									fb_StrDelete( (FBSTRING*)&TMP$3279$9 );
									__builtin_memset( &TMP$3282$9, 0, 24ll );
									FBSTRING* vr$1534 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
									__builtin_memset( &TMP$3280$9, 0, 24ll );
									FBSTRING* vr$1537 = fb_StrConcat( &TMP$3280$9, (void*)"mov QWORD PTR ", 15ll, (void*)vr$1534, -1ll );
									__builtin_memset( &TMP$3281$9, 0, 24ll );
									FBSTRING* vr$1540 = fb_StrConcat( &TMP$3281$9, (void*)vr$1537, -1ll, (void*)"[rsp], rax", 11ll );
									fb_StrAssign( (void*)&TMP$3282$9, -1ll, (void*)vr$1540, -1ll, 0 );
									HWRITEASM64( &TMP$3282$9, 0ll );
									fb_StrDelete( (FBSTRING*)&TMP$3282$9 );
								}
								goto label$2506;
								label$2507:;
								static const void* tmp$4082[8ll] = {
									&&label$2508,
									&&label$2509,
									&&label$2506,
									&&label$2510,
									&&label$2506,
									&&label$2506,
									&&label$2506,
									&&label$2511,
								};
								if( (TMP$3262$8 - 1ull) > 7ull ) goto label$2506;
								goto *tmp$4082[TMP$3262$8 - 1ull];
								label$2506:;
							}
						}
						label$2498:;
					}
					label$2495:;
				}
				label$2485:;
			}
			goto label$2458;
			label$2482:;
			{
				if( *(int64*)V2$1 != 5ll ) goto label$2513;
				{
					int64 TMP$3283$5;
					int64 TMP$3284$5;
					REG_TRANSFER( *(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)&LISTREG$), (int32)REG2$1 );
					if( (*(int64*)((uint8*)V2$1 + 8ll) & 31ll) != 22ll ) goto label$2514;
					TMP$3283$5 = (int64)-((int64)-(*(boolean*)((uint8*)&CTX$ + 416ll)) == -1ll);
					goto label$3152;
					label$2514:;
					TMP$3283$5 = 0ll;
					label$3152:;
					if( TMP$3283$5 == 0ll ) goto label$2515;
					int64 vr$1552 = FBGETOPTION( 0ll );
					TMP$3284$5 = (int64)-(vr$1552 == 2ll);
					goto label$3153;
					label$2515:;
					TMP$3284$5 = 0ll;
					label$3153:;
					if( TMP$3284$5 == 0ll ) goto label$2517;
					{
						FBSTRING TMP$3285$6;
						FBSTRING TMP$3286$6;
						FBSTRING TMP$3287$6;
						FBSTRING TMP$3288$6;
						FBSTRING TMP$3289$6;
						__builtin_memset( &TMP$3289$6, 0, 24ll );
						FBSTRING* vr$1555 = fb_StrAllocTempDescZEx( (char*)"[", 1ll );
						int64 vr$1557 = fb_StrInstr( 1ll, (FBSTRING*)&OP1$1, (FBSTRING*)vr$1555 );
						FBSTRING* vr$1560 = fb_LEFT( (FBSTRING*)&OP1$1, vr$1557 + -1ll );
						__builtin_memset( &TMP$3285$6, 0, 24ll );
						FBSTRING* vr$1567 = fb_StrConcat( &TMP$3285$6, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
						__builtin_memset( &TMP$3286$6, 0, 24ll );
						FBSTRING* vr$1570 = fb_StrConcat( &TMP$3286$6, (void*)vr$1567, -1ll, (void*)", QWORD PTR ", 13ll );
						__builtin_memset( &TMP$3287$6, 0, 24ll );
						FBSTRING* vr$1573 = fb_StrConcat( &TMP$3287$6, (void*)vr$1570, -1ll, (void*)vr$1560, -1ll );
						__builtin_memset( &TMP$3288$6, 0, 24ll );
						FBSTRING* vr$1576 = fb_StrConcat( &TMP$3288$6, (void*)vr$1573, -1ll, (void*)"@GOTPCREL[rip]", 15ll );
						fb_StrAssign( (void*)&TMP$3289$6, -1ll, (void*)vr$1576, -1ll, 0 );
						HWRITEASM64( &TMP$3289$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3289$6 );
					}
					goto label$2516;
					label$2517:;
					{
						FBSTRING TMP$3290$6;
						FBSTRING TMP$3291$6;
						FBSTRING TMP$3292$6;
						FBSTRING TMP$3293$6;
						__builtin_memset( &TMP$3293$6, 0, 24ll );
						__builtin_memset( &TMP$3290$6, 0, 24ll );
						FBSTRING* vr$1588 = fb_StrConcat( &TMP$3290$6, (void*)"lea ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
						__builtin_memset( &TMP$3291$6, 0, 24ll );
						FBSTRING* vr$1591 = fb_StrConcat( &TMP$3291$6, (void*)vr$1588, -1ll, (void*)", ", 3ll );
						__builtin_memset( &TMP$3292$6, 0, 24ll );
						FBSTRING* vr$1594 = fb_StrConcat( &TMP$3292$6, (void*)vr$1591, -1ll, (void*)&OP1$1, -1ll );
						fb_StrAssign( (void*)&TMP$3293$6, -1ll, (void*)vr$1594, -1ll, 0 );
						HWRITEASM64( &TMP$3293$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3293$6 );
					}
					label$2516:;
					if( ((int64)-((int64)-VARIADIC$1 == -1ll) & (int64)-(*(int64*)((uint8*)&CTX$ + 408ll) == 0ll)) == 0ll ) goto label$2519;
					{
						FBSTRING TMP$3294$6;
						FBSTRING TMP$3295$6;
						FBSTRING TMP$3296$6;
						FBSTRING TMP$3297$6;
						__builtin_memset( &TMP$3297$6, 0, 24ll );
						FBSTRING* vr$1609 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
						__builtin_memset( &TMP$3294$6, 0, 24ll );
						FBSTRING* vr$1612 = fb_StrConcat( &TMP$3294$6, (void*)"mov QWORD PTR ", 15ll, (void*)vr$1609, -1ll );
						__builtin_memset( &TMP$3295$6, 0, 24ll );
						FBSTRING* vr$1615 = fb_StrConcat( &TMP$3295$6, (void*)vr$1612, -1ll, (void*)"[rsp], ", 8ll );
						__builtin_memset( &TMP$3296$6, 0, 24ll );
						FBSTRING* vr$1618 = fb_StrConcat( &TMP$3296$6, (void*)vr$1615, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
						fb_StrAssign( (void*)&TMP$3297$6, -1ll, (void*)vr$1618, -1ll, 0 );
						HWRITEASM64( &TMP$3297$6, 3ll );
						fb_StrDelete( (FBSTRING*)&TMP$3297$6 );
					}
					label$2519:;
					label$2518:;
				}
				goto label$2512;
				label$2513:;
				{
					int64 TMP$3298$5;
					if( (DTYPE$1 & 480ll) == 0ll ) goto label$2520;
					TMP$3298$5 = 24ll;
					goto label$3154;
					label$2520:;
					TMP$3298$5 = DTYPE$1 & 31ll;
					label$3154:;
					if( *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$3298$5 * 56ll)) != 1ll ) goto label$2522;
					{
						if( DTYPE$1 != 16ll ) goto label$2524;
						{
							if( *(int64*)V2$1 != 4ll ) goto label$2526;
							{
								FBSTRING TMP$3299$8;
								FBSTRING TMP$3300$8;
								FBSTRING TMP$3301$8;
								FBSTRING TMP$3302$8;
								__builtin_memset( &TMP$3302$8, 0, 24ll );
								FBSTRING* vr$1629 = fb_LongintToStr( CPTFLOAT$1 + -1ll );
								__builtin_memset( &TMP$3299$8, 0, 24ll );
								FBSTRING* vr$1632 = fb_StrConcat( &TMP$3299$8, (void*)"movq xmm", 9ll, (void*)vr$1629, -1ll );
								__builtin_memset( &TMP$3300$8, 0, 24ll );
								FBSTRING* vr$1635 = fb_StrConcat( &TMP$3300$8, (void*)vr$1632, -1ll, (void*)", ", 3ll );
								__builtin_memset( &TMP$3301$8, 0, 24ll );
								FBSTRING* vr$1638 = fb_StrConcat( &TMP$3301$8, (void*)vr$1635, -1ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3302$8, -1ll, (void*)vr$1638, -1ll, 0 );
								HWRITEASM64( &TMP$3302$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3302$8 );
							}
							goto label$2525;
							label$2526:;
							{
								FBSTRING TMP$3304$8;
								FBSTRING TMP$3305$8;
								FBSTRING TMP$3306$8;
								FBSTRING TMP$3307$8;
								__builtin_memset( &TMP$3307$8, 0, 24ll );
								FBSTRING* vr$1645 = fb_LongintToStr( CPTFLOAT$1 + -1ll );
								__builtin_memset( &TMP$3304$8, 0, 24ll );
								FBSTRING* vr$1648 = fb_StrConcat( &TMP$3304$8, (void*)"movsd xmm", 10ll, (void*)vr$1645, -1ll );
								__builtin_memset( &TMP$3305$8, 0, 24ll );
								FBSTRING* vr$1651 = fb_StrConcat( &TMP$3305$8, (void*)vr$1648, -1ll, (void*)", ", 3ll );
								__builtin_memset( &TMP$3306$8, 0, 24ll );
								FBSTRING* vr$1654 = fb_StrConcat( &TMP$3306$8, (void*)vr$1651, -1ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3307$8, -1ll, (void*)vr$1654, -1ll, 0 );
								HWRITEASM64( &TMP$3307$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3307$8 );
							}
							label$2525:;
						}
						goto label$2523;
						label$2524:;
						{
							if( *(int64*)V2$1 != 4ll ) goto label$2528;
							{
								FBSTRING TMP$3308$8;
								FBSTRING TMP$3309$8;
								FBSTRING TMP$3310$8;
								FBSTRING TMP$3311$8;
								__builtin_memset( &TMP$3311$8, 0, 24ll );
								FBSTRING* vr$1662 = fb_LongintToStr( CPTFLOAT$1 + -1ll );
								__builtin_memset( &TMP$3308$8, 0, 24ll );
								FBSTRING* vr$1665 = fb_StrConcat( &TMP$3308$8, (void*)"movd xmm", 9ll, (void*)vr$1662, -1ll );
								__builtin_memset( &TMP$3309$8, 0, 24ll );
								FBSTRING* vr$1668 = fb_StrConcat( &TMP$3309$8, (void*)vr$1665, -1ll, (void*)", ", 3ll );
								__builtin_memset( &TMP$3310$8, 0, 24ll );
								FBSTRING* vr$1671 = fb_StrConcat( &TMP$3310$8, (void*)vr$1668, -1ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3311$8, -1ll, (void*)vr$1671, -1ll, 0 );
								HWRITEASM64( &TMP$3311$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3311$8 );
							}
							goto label$2527;
							label$2528:;
							{
								FBSTRING TMP$3313$8;
								FBSTRING TMP$3314$8;
								FBSTRING TMP$3315$8;
								FBSTRING TMP$3316$8;
								__builtin_memset( &TMP$3316$8, 0, 24ll );
								FBSTRING* vr$1678 = fb_LongintToStr( CPTFLOAT$1 + -1ll );
								__builtin_memset( &TMP$3313$8, 0, 24ll );
								FBSTRING* vr$1681 = fb_StrConcat( &TMP$3313$8, (void*)"movss xmm", 10ll, (void*)vr$1678, -1ll );
								__builtin_memset( &TMP$3314$8, 0, 24ll );
								FBSTRING* vr$1684 = fb_StrConcat( &TMP$3314$8, (void*)vr$1681, -1ll, (void*)", ", 3ll );
								__builtin_memset( &TMP$3315$8, 0, 24ll );
								FBSTRING* vr$1687 = fb_StrConcat( &TMP$3315$8, (void*)vr$1684, -1ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3316$8, -1ll, (void*)vr$1687, -1ll, 0 );
								HWRITEASM64( &TMP$3316$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3316$8 );
							}
							label$2527:;
						}
						label$2523:;
						if( ((int64)-((int64)-VARIADIC$1 == -1ll) & (int64)-(*(int64*)((uint8*)&CTX$ + 408ll) == 0ll)) == 0ll ) goto label$2530;
						{
							FBSTRING TMP$3319$7;
							FBSTRING TMP$3320$7;
							FBSTRING TMP$3321$7;
							FBSTRING TMP$3322$7;
							FBSTRING TMP$3324$7;
							FBSTRING TMP$3325$7;
							FBSTRING TMP$3326$7;
							FBSTRING TMP$3327$7;
							__builtin_memset( &TMP$3322$7, 0, 24ll );
							FBSTRING* vr$1697 = fb_LongintToStr( CPTFLOAT$1 + -1ll );
							FBSTRING* vr$1700 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
							__builtin_memset( &TMP$3319$7, 0, 24ll );
							FBSTRING* vr$1703 = fb_StrConcat( &TMP$3319$7, (void*)"movsd QWORD PTR ", 17ll, (void*)vr$1700, -1ll );
							__builtin_memset( &TMP$3320$7, 0, 24ll );
							FBSTRING* vr$1706 = fb_StrConcat( &TMP$3320$7, (void*)vr$1703, -1ll, (void*)"[rsp], xmm", 11ll );
							__builtin_memset( &TMP$3321$7, 0, 24ll );
							FBSTRING* vr$1709 = fb_StrConcat( &TMP$3321$7, (void*)vr$1706, -1ll, (void*)vr$1697, -1ll );
							fb_StrAssign( (void*)&TMP$3322$7, -1ll, (void*)vr$1709, -1ll, 0 );
							HWRITEASM64( &TMP$3322$7, 3ll );
							fb_StrDelete( (FBSTRING*)&TMP$3322$7 );
							__builtin_memset( &TMP$3327$7, 0, 24ll );
							FBSTRING* vr$1715 = fb_LongintToStr( CPTFLOAT$1 + -1ll );
							__builtin_memset( &TMP$3324$7, 0, 24ll );
							FBSTRING* vr$1722 = fb_StrConcat( &TMP$3324$7, (void*)"movq ", 6ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
							__builtin_memset( &TMP$3325$7, 0, 24ll );
							FBSTRING* vr$1725 = fb_StrConcat( &TMP$3325$7, (void*)vr$1722, -1ll, (void*)", xmm", 6ll );
							__builtin_memset( &TMP$3326$7, 0, 24ll );
							FBSTRING* vr$1728 = fb_StrConcat( &TMP$3326$7, (void*)vr$1725, -1ll, (void*)vr$1715, -1ll );
							fb_StrAssign( (void*)&TMP$3327$7, -1ll, (void*)vr$1728, -1ll, 0 );
							HWRITEASM64( &TMP$3327$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$3327$7 );
						}
						label$2530:;
						label$2529:;
					}
					goto label$2521;
					label$2522:;
					{
						int64 TMP$3333$6;
						REG_TRANSFER( *(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)&LISTREG$), (int32)REG2$1 );
						if( DTYPE$1 != 19ll ) goto label$2532;
						{
							if( *(boolean*)((uint8*)&CTX$ + 416ll) == (boolean)0ll ) goto label$2534;
							{
								FBSTRING TMP$3328$8;
								FBSTRING TMP$3331$8;
								FBSTRING TMP$3332$8;
								__builtin_memset( &TMP$3328$8, 0, 24ll );
								fb_StrAssign( (void*)&TMP$3328$8, -1ll, (void*)"", 1ll, 0 );
								HWRITEASM64( &TMP$3328$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3328$8 );
								__builtin_memset( &TMP$3331$8, 0, 24ll );
								fb_StrAssign( (void*)&TMP$3331$8, -1ll, (void*)"FOUND AN ERROR : in hdocall Va_list and target linux could be a problem", 72ll, 0 );
								HWRITEASM64( &TMP$3331$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3331$8 );
								__builtin_memset( &TMP$3332$8, 0, 24ll );
								fb_StrAssign( (void*)&TMP$3332$8, -1ll, (void*)"", 1ll, 0 );
								HWRITEASM64( &TMP$3332$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3332$8 );
							}
							goto label$2533;
							label$2534:;
							{
								DTYPE$1 = 8ll;
							}
							label$2533:;
						}
						label$2532:;
						label$2531:;
						if( (int64)-(*(boolean*)((uint8*)&CTX$ + 416ll)) != -1ll ) goto label$2535;
						int64 vr$1748 = FBGETOPTION( 0ll );
						TMP$3333$6 = (int64)-(vr$1748 == 2ll);
						goto label$3155;
						label$2535:;
						TMP$3333$6 = 0ll;
						label$3155:;
						if( TMP$3333$6 == 0ll ) goto label$2537;
						{
							int64 TMP$3334$7;
							if( *(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) == (struct $8FBSYMBOL*)0ull ) goto label$2538;
							TMP$3334$7 = (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) + 8ll) & 8ll) != 0ll);
							goto label$3156;
							label$2538:;
							TMP$3334$7 = 0ll;
							label$3156:;
							if( TMP$3334$7 == 0ll ) goto label$2540;
							{
								FBSTRING TMP$3335$8;
								FBSTRING TMP$3336$8;
								FBSTRING TMP$3337$8;
								__builtin_memset( &TMP$3337$8, 0, 24ll );
								char* vr$1757 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) );
								__builtin_memset( &TMP$3335$8, 0, 24ll );
								FBSTRING* vr$1760 = fb_StrConcat( &TMP$3335$8, (void*)"mov rax, ", 10ll, (void*)vr$1757, 0ll );
								__builtin_memset( &TMP$3336$8, 0, 24ll );
								FBSTRING* vr$1763 = fb_StrConcat( &TMP$3336$8, (void*)vr$1760, -1ll, (void*)"@GOTPCREL[rip]", 15ll );
								fb_StrAssign( (void*)&TMP$3337$8, -1ll, (void*)vr$1763, -1ll, 0 );
								HWRITEASM64( &TMP$3337$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3337$8 );
								fb_StrAssign( (void*)&OP1$1, -1ll, (void*)"[rax]", 6ll, 0 );
							}
							label$2540:;
							label$2539:;
						}
						label$2537:;
						label$2536:;
						{
							if( DTYPE$1 == 8ll ) goto label$2543;
							label$2544:;
							if( DTYPE$1 == 9ll ) goto label$2543;
							label$2545:;
							if( DTYPE$1 == 13ll ) goto label$2543;
							label$2546:;
							if( DTYPE$1 == 14ll ) goto label$2543;
							label$2547:;
							if( DTYPE$1 != 10ll ) goto label$2542;
							label$2543:;
							{
								FBSTRING TMP$3338$8;
								FBSTRING TMP$3339$8;
								FBSTRING TMP$3340$8;
								FBSTRING TMP$3341$8;
								__builtin_memset( &TMP$3341$8, 0, 24ll );
								__builtin_memset( &TMP$3338$8, 0, 24ll );
								FBSTRING* vr$1776 = fb_StrConcat( &TMP$3338$8, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
								__builtin_memset( &TMP$3339$8, 0, 24ll );
								FBSTRING* vr$1779 = fb_StrConcat( &TMP$3339$8, (void*)vr$1776, -1ll, (void*)", ", 3ll );
								__builtin_memset( &TMP$3340$8, 0, 24ll );
								FBSTRING* vr$1782 = fb_StrConcat( &TMP$3340$8, (void*)vr$1779, -1ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3341$8, -1ll, (void*)vr$1782, -1ll, 0 );
								HWRITEASM64( &TMP$3341$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3341$8 );
							}
							goto label$2541;
							label$2542:;
							if( DTYPE$1 == 11ll ) goto label$2549;
							label$2550:;
							if( DTYPE$1 != 12ll ) goto label$2548;
							label$2549:;
							{
								FBSTRING TMP$3342$8;
								FBSTRING TMP$3343$8;
								FBSTRING TMP$3344$8;
								FBSTRING TMP$3345$8;
								__builtin_memset( &TMP$3345$8, 0, 24ll );
								__builtin_memset( &TMP$3342$8, 0, 24ll );
								FBSTRING* vr$1794 = fb_StrConcat( &TMP$3342$8, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)*(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
								__builtin_memset( &TMP$3343$8, 0, 24ll );
								FBSTRING* vr$1797 = fb_StrConcat( &TMP$3343$8, (void*)vr$1794, -1ll, (void*)", ", 3ll );
								__builtin_memset( &TMP$3344$8, 0, 24ll );
								FBSTRING* vr$1800 = fb_StrConcat( &TMP$3344$8, (void*)vr$1797, -1ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3345$8, -1ll, (void*)vr$1800, -1ll, 0 );
								HWRITEASM64( &TMP$3345$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3345$8 );
							}
							goto label$2541;
							label$2548:;
							if( DTYPE$1 == 5ll ) goto label$2552;
							label$2553:;
							if( DTYPE$1 != 6ll ) goto label$2551;
							label$2552:;
							{
								FBSTRING TMP$3346$8;
								FBSTRING TMP$3347$8;
								FBSTRING TMP$3348$8;
								FBSTRING TMP$3349$8;
								__builtin_memset( &TMP$3349$8, 0, 24ll );
								__builtin_memset( &TMP$3346$8, 0, 24ll );
								FBSTRING* vr$1812 = fb_StrConcat( &TMP$3346$8, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRW$ + ((int64)*(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
								__builtin_memset( &TMP$3347$8, 0, 24ll );
								FBSTRING* vr$1815 = fb_StrConcat( &TMP$3347$8, (void*)vr$1812, -1ll, (void*)", ", 3ll );
								__builtin_memset( &TMP$3348$8, 0, 24ll );
								FBSTRING* vr$1818 = fb_StrConcat( &TMP$3348$8, (void*)vr$1815, -1ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3349$8, -1ll, (void*)vr$1818, -1ll, 0 );
								HWRITEASM64( &TMP$3349$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3349$8 );
							}
							goto label$2541;
							label$2551:;
							if( DTYPE$1 == 2ll ) goto label$2555;
							label$2556:;
							if( DTYPE$1 == 3ll ) goto label$2555;
							label$2557:;
							if( DTYPE$1 == 1ll ) goto label$2555;
							label$2558:;
							if( DTYPE$1 != 4ll ) goto label$2554;
							label$2555:;
							{
								FBSTRING TMP$3350$8;
								FBSTRING TMP$3351$8;
								FBSTRING TMP$3352$8;
								FBSTRING TMP$3353$8;
								__builtin_memset( &TMP$3353$8, 0, 24ll );
								__builtin_memset( &TMP$3350$8, 0, 24ll );
								FBSTRING* vr$1830 = fb_StrConcat( &TMP$3350$8, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRB$ + ((int64)*(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
								__builtin_memset( &TMP$3351$8, 0, 24ll );
								FBSTRING* vr$1833 = fb_StrConcat( &TMP$3351$8, (void*)vr$1830, -1ll, (void*)", ", 3ll );
								__builtin_memset( &TMP$3352$8, 0, 24ll );
								FBSTRING* vr$1836 = fb_StrConcat( &TMP$3352$8, (void*)vr$1833, -1ll, (void*)&OP1$1, -1ll );
								fb_StrAssign( (void*)&TMP$3353$8, -1ll, (void*)vr$1836, -1ll, 0 );
								HWRITEASM64( &TMP$3353$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3353$8 );
							}
							goto label$2541;
							label$2554:;
							{
								FBSTRING TMP$3354$8;
								FBSTRING TMP$3358$8;
								FBSTRING TMP$3359$8;
								FBSTRING TMP$3360$8;
								__builtin_memset( &TMP$3354$8, 0, 24ll );
								fb_StrAssign( (void*)&TMP$3354$8, -1ll, (void*)"", 1ll, 0 );
								HWRITEASM64( &TMP$3354$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3354$8 );
								__builtin_memset( &TMP$3359$8, 0, 24ll );
								FBSTRING* vr$1845 = fb_LongintToStr( DTYPE$1 );
								__builtin_memset( &TMP$3358$8, 0, 24ll );
								FBSTRING* vr$1848 = fb_StrConcat( &TMP$3358$8, (void*)"FOUND AN ERROR : in hdocall datatype not handled 03 = ", 55ll, (void*)vr$1845, -1ll );
								fb_StrAssign( (void*)&TMP$3359$8, -1ll, (void*)vr$1848, -1ll, 0 );
								HWRITEASM64( &TMP$3359$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3359$8 );
								__builtin_memset( &TMP$3360$8, 0, 24ll );
								fb_StrAssign( (void*)&TMP$3360$8, -1ll, (void*)"", 1ll, 0 );
								HWRITEASM64( &TMP$3360$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3360$8 );
							}
							label$2559:;
							label$2541:;
						}
						if( ((int64)-((int64)-VARIADIC$1 == -1ll) & (int64)-(*(int64*)((uint8*)&CTX$ + 408ll) == 0ll)) == 0ll ) goto label$2561;
						{
							FBSTRING TMP$3361$7;
							FBSTRING TMP$3362$7;
							FBSTRING TMP$3363$7;
							FBSTRING TMP$3364$7;
							__builtin_memset( &TMP$3364$7, 0, 24ll );
							FBSTRING* vr$1867 = fb_LongintToStr( (CPTARG$1 << (3ll & 63ll)) + -8ll );
							__builtin_memset( &TMP$3361$7, 0, 24ll );
							FBSTRING* vr$1870 = fb_StrConcat( &TMP$3361$7, (void*)"mov QWORD PTR ", 15ll, (void*)vr$1867, -1ll );
							__builtin_memset( &TMP$3362$7, 0, 24ll );
							FBSTRING* vr$1873 = fb_StrConcat( &TMP$3362$7, (void*)vr$1870, -1ll, (void*)"[rsp], ", 8ll );
							__builtin_memset( &TMP$3363$7, 0, 24ll );
							FBSTRING* vr$1876 = fb_StrConcat( &TMP$3363$7, (void*)vr$1873, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)*(int32*)((CPTINT$1 << (2ll & 63ll)) + *(int64*)&LISTREG$) << (3ll & 63ll))), 0ll );
							fb_StrAssign( (void*)&TMP$3364$7, -1ll, (void*)vr$1876, -1ll, 0 );
							HWRITEASM64( &TMP$3364$7, 3ll );
							fb_StrDelete( (FBSTRING*)&TMP$3364$7 );
						}
						label$2561:;
						label$2560:;
					}
					label$2521:;
				}
				label$2512:;
			}
			label$2458:;
		}
		label$2376:;
		LISTDELNODE( (struct $5TLIST*)((uint8*)&IRHL$ + 120ll), (void*)ARG$1 );
		ARG$1 = PREV$1;
	}
	goto label$2304;
	label$2305:;
	if( CPTARG$1 <= *(int64*)((uint8*)&CTX$ + 160ll) ) goto label$2563;
	{
		*(int64*)((uint8*)&CTX$ + 160ll) = CPTARG$1;
		label$2563:;
	}
	int32 vr$1881 = fb_StrCompare( (void*)FIRSTMOV$1, -1ll, (void*)"", 1ll );
	if( (int64)vr$1881 == 0ll ) goto label$2565;
	{
		HWRITEASM64( FIRSTMOV$1, 0ll );
		label$2565:;
	}
	if( CALLPTR$1 == (boolean)0ll ) goto label$2567;
	{
		FBSTRING TMP$3365$2;
		FBSTRING TMP$3366$2;
		__builtin_memset( &TMP$3366$2, 0, 24ll );
		__builtin_memset( &TMP$3365$2, 0, 24ll );
		FBSTRING* vr$1886 = fb_StrConcat( &TMP$3365$2, (void*)"call ", 6ll, (void*)PNAME$1, -1ll );
		fb_StrAssign( (void*)&TMP$3366$2, -1ll, (void*)vr$1886, -1ll, 0 );
		REG_FREEABLE( &TMP$3366$2 );
		fb_StrDelete( (FBSTRING*)&TMP$3366$2 );
		label$2567:;
	}
	if( PUSHSIZE$1 == 0ll ) goto label$2569;
	{
		if( (PUSHSIZE$1 % 16ll) == 0ll ) goto label$2571;
		{
			FBSTRING TMP$3368$3;
			PUSHSIZE$1 = (((PUSHSIZE$1 + ((PUSHSIZE$1 >> (63ll & 63ll)) & 15ll)) >> (4ll & 63ll)) << (4ll & 63ll)) + 16ll;
			__builtin_memset( &TMP$3368$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$3368$3, -1ll, (void*)"sub rsp, 8", 11ll, 0 );
			HWRITEASM64( &TMP$3368$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3368$3 );
		}
		label$2571:;
		label$2570:;
		{
			int64 ISTR$3;
			ISTR$3 = PUSHNBSTR$1;
			goto label$2572;
			label$2575:;
			{
				FBSTRING* vr$1903 = fb_RIGHT( (FBSTRING*)((int64)(FBSTRING*)PUSHSTR$1 + (ISTR$3 * 24ll)), 3ll );
				int32 vr$1904 = fb_StrCompare( (void*)vr$1903, -1ll, (void*)"#NO", 4ll );
				if( (int64)vr$1904 != 0ll ) goto label$2577;
				{
					HWRITEASM64( (FBSTRING*)((int64)(FBSTRING*)PUSHSTR$1 + (ISTR$3 * 24ll)), 3ll );
				}
				goto label$2576;
				label$2577:;
				{
					HWRITEASM64( (FBSTRING*)((int64)(FBSTRING*)PUSHSTR$1 + (ISTR$3 * 24ll)), 0ll );
				}
				label$2576:;
			}
			label$2573:;
			ISTR$3 = ISTR$3 + -1ll;
			label$2572:;
			if( ISTR$3 >= 1ll ) goto label$2575;
			label$2574:;
		}
	}
	label$2569:;
	label$2568:;
	if( CALLPTR$1 == (boolean)0ll ) goto label$2579;
	{
		REG_ALLOWED( (boolean)1ll );
		label$2579:;
	}
	REG_SAVE(  );
	if( (int64)-VARIADIC$1 != -1ll ) goto label$2581;
	{
		if( *(boolean*)((uint8*)&CTX$ + 416ll) == (boolean)0ll ) goto label$2583;
		{
			int64 TMP$3369$3;
			FBSTRING TMP$3370$3;
			FBSTRING TMP$3371$3;
			__builtin_memset( &TMP$3371$3, 0, 24ll );
			if( CPTFLOAT$1 > 8ll ) goto label$2584;
			TMP$3369$3 = CPTFLOAT$1;
			goto label$3157;
			label$2584:;
			TMP$3369$3 = 8ll;
			label$3157:;
			FBSTRING* vr$1913 = fb_LongintToStr( TMP$3369$3 );
			__builtin_memset( &TMP$3370$3, 0, 24ll );
			FBSTRING* vr$1916 = fb_StrConcat( &TMP$3370$3, (void*)"mov eax, ", 10ll, (void*)vr$1913, -1ll );
			fb_StrAssign( (void*)&TMP$3371$3, -1ll, (void*)vr$1916, -1ll, 0 );
			HWRITEASM64( &TMP$3371$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3371$3 );
		}
		label$2583:;
		label$2582:;
	}
	label$2581:;
	label$2580:;
	if( (int64)-(*(boolean*)((uint8*)&CTX$ + 416ll)) != -1ll ) goto label$2585;
	int64 vr$1921 = FBGETOPTION( 0ll );
	TMP$3372$1 = (int64)-(vr$1921 == 2ll);
	goto label$3158;
	label$2585:;
	TMP$3372$1 = 0ll;
	label$3158:;
	if( TMP$3372$1 == 0ll ) goto label$2587;
	{
		FBSTRING TMP$3373$2;
		FBSTRING TMP$3374$2;
		FBSTRING TMP$3375$2;
		__builtin_memset( &TMP$3375$2, 0, 24ll );
		__builtin_memset( &TMP$3373$2, 0, 24ll );
		FBSTRING* vr$1926 = fb_StrConcat( &TMP$3373$2, (void*)"call ", 6ll, (void*)PNAME$1, -1ll );
		__builtin_memset( &TMP$3374$2, 0, 24ll );
		FBSTRING* vr$1929 = fb_StrConcat( &TMP$3374$2, (void*)vr$1926, -1ll, (void*)"@PLT", 5ll );
		fb_StrAssign( (void*)&TMP$3375$2, -1ll, (void*)vr$1929, -1ll, 0 );
		HWRITEASM64( &TMP$3375$2, 1ll );
		fb_StrDelete( (FBSTRING*)&TMP$3375$2 );
	}
	goto label$2586;
	label$2587:;
	{
		FBSTRING TMP$3376$2;
		FBSTRING TMP$3377$2;
		__builtin_memset( &TMP$3377$2, 0, 24ll );
		__builtin_memset( &TMP$3376$2, 0, 24ll );
		FBSTRING* vr$1936 = fb_StrConcat( &TMP$3376$2, (void*)"call ", 6ll, (void*)PNAME$1, -1ll );
		fb_StrAssign( (void*)&TMP$3377$2, -1ll, (void*)vr$1936, -1ll, 0 );
		HWRITEASM64( &TMP$3377$2, 1ll );
		fb_StrDelete( (FBSTRING*)&TMP$3377$2 );
	}
	label$2586:;
	if( PUSHSIZE$1 == 0ll ) goto label$2589;
	{
		FBSTRING TMP$3379$2;
		FBSTRING TMP$3380$2;
		__builtin_memset( &TMP$3380$2, 0, 24ll );
		FBSTRING* vr$1941 = fb_LongintToStr( PUSHSIZE$1 );
		__builtin_memset( &TMP$3379$2, 0, 24ll );
		FBSTRING* vr$1944 = fb_StrConcat( &TMP$3379$2, (void*)"add rsp, ", 10ll, (void*)vr$1941, -1ll );
		fb_StrAssign( (void*)&TMP$3380$2, -1ll, (void*)vr$1944, -1ll, 0 );
		HWRITEASM64( &TMP$3380$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3380$2 );
		PUSHSIZE$1 = 0ll;
		PUSHNBSTR$1 = 0ll;
	}
	label$2589:;
	label$2588:;
	if( *(int64*)((uint8*)&CTX$ + 216ll) <= *(int64*)((uint8*)&CTX$ + 200ll) ) goto label$2591;
	{
		*(int64*)((uint8*)&CTX$ + 200ll) = *(int64*)((uint8*)&CTX$ + 216ll);
		label$2591:;
	}
	*(int64*)((uint8*)&CTX$ + 208ll) = 0ll;
	*(boolean*)((uint8*)&CTX$ + 257ll) = (boolean)0ll;
	if( VR$1 == (struct $6IRVREG*)0ull ) goto label$2593;
	{
		int64 TMP$3410$2;
		int64 vr$1948 = HISSTRUCTIN2REGS( VR$1 );
		if( vr$1948 == 0ll ) goto label$2595;
		{
			*($15IRVREGTYPE_ENUM*)VR$1 = 1ll;
			*(int64*)((uint8*)&CTX$ + 192ll) = *(int64*)((uint8*)&CTX$ + 192ll) + (*(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + 736ll) << (1ll & 63ll));
			*(int64*)((uint8*)VR$1 + 64ll) = -(*(int64*)((uint8*)&CTX$ + 192ll));
			{
				uint64 TMP$3381$4;
				TMP$3381$4 = *(uint64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)VR$1 + 16ll) + 224ll);
				goto label$2597;
				label$2598:;
				{
					FBSTRING TMP$3383$5;
					FBSTRING TMP$3384$5;
					FBSTRING TMP$3385$5;
					FBSTRING TMP$3387$5;
					FBSTRING TMP$3388$5;
					FBSTRING TMP$3389$5;
					__builtin_memset( &TMP$3385$5, 0, 24ll );
					FBSTRING* vr$1958 = fb_LongintToStr( *(int64*)((uint8*)VR$1 + 64ll) );
					__builtin_memset( &TMP$3383$5, 0, 24ll );
					FBSTRING* vr$1961 = fb_StrConcat( &TMP$3383$5, (void*)"mov ", 5ll, (void*)vr$1958, -1ll );
					__builtin_memset( &TMP$3384$5, 0, 24ll );
					FBSTRING* vr$1964 = fb_StrConcat( &TMP$3384$5, (void*)vr$1961, -1ll, (void*)"[rbp], rax", 11ll );
					fb_StrAssign( (void*)&TMP$3385$5, -1ll, (void*)vr$1964, -1ll, 0 );
					HWRITEASM64( &TMP$3385$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3385$5 );
					__builtin_memset( &TMP$3389$5, 0, 24ll );
					FBSTRING* vr$1971 = fb_LongintToStr( *(int64*)((uint8*)VR$1 + 64ll) + 8ll );
					__builtin_memset( &TMP$3387$5, 0, 24ll );
					FBSTRING* vr$1974 = fb_StrConcat( &TMP$3387$5, (void*)"mov ", 5ll, (void*)vr$1971, -1ll );
					__builtin_memset( &TMP$3388$5, 0, 24ll );
					FBSTRING* vr$1977 = fb_StrConcat( &TMP$3388$5, (void*)vr$1974, -1ll, (void*)"[rbp], rdx", 11ll );
					fb_StrAssign( (void*)&TMP$3389$5, -1ll, (void*)vr$1977, -1ll, 0 );
					HWRITEASM64( &TMP$3389$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3389$5 );
				}
				goto label$2596;
				label$2599:;
				{
					FBSTRING TMP$3390$5;
					FBSTRING TMP$3391$5;
					FBSTRING TMP$3392$5;
					FBSTRING TMP$3394$5;
					FBSTRING TMP$3395$5;
					FBSTRING TMP$3396$5;
					__builtin_memset( &TMP$3392$5, 0, 24ll );
					FBSTRING* vr$1983 = fb_LongintToStr( *(int64*)((uint8*)VR$1 + 64ll) );
					__builtin_memset( &TMP$3390$5, 0, 24ll );
					FBSTRING* vr$1986 = fb_StrConcat( &TMP$3390$5, (void*)"mov ", 5ll, (void*)vr$1983, -1ll );
					__builtin_memset( &TMP$3391$5, 0, 24ll );
					FBSTRING* vr$1989 = fb_StrConcat( &TMP$3391$5, (void*)vr$1986, -1ll, (void*)"[rbp], rax", 11ll );
					fb_StrAssign( (void*)&TMP$3392$5, -1ll, (void*)vr$1989, -1ll, 0 );
					HWRITEASM64( &TMP$3392$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3392$5 );
					__builtin_memset( &TMP$3396$5, 0, 24ll );
					FBSTRING* vr$1996 = fb_LongintToStr( *(int64*)((uint8*)VR$1 + 64ll) + 8ll );
					__builtin_memset( &TMP$3394$5, 0, 24ll );
					FBSTRING* vr$1999 = fb_StrConcat( &TMP$3394$5, (void*)"movq ", 6ll, (void*)vr$1996, -1ll );
					__builtin_memset( &TMP$3395$5, 0, 24ll );
					FBSTRING* vr$2002 = fb_StrConcat( &TMP$3395$5, (void*)vr$1999, -1ll, (void*)"[rbp], xmm0", 12ll );
					fb_StrAssign( (void*)&TMP$3396$5, -1ll, (void*)vr$2002, -1ll, 0 );
					HWRITEASM64( &TMP$3396$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3396$5 );
				}
				goto label$2596;
				label$2600:;
				{
					FBSTRING TMP$3397$5;
					FBSTRING TMP$3398$5;
					FBSTRING TMP$3399$5;
					FBSTRING TMP$3400$5;
					FBSTRING TMP$3401$5;
					FBSTRING TMP$3402$5;
					__builtin_memset( &TMP$3399$5, 0, 24ll );
					FBSTRING* vr$2008 = fb_LongintToStr( *(int64*)((uint8*)VR$1 + 64ll) );
					__builtin_memset( &TMP$3397$5, 0, 24ll );
					FBSTRING* vr$2011 = fb_StrConcat( &TMP$3397$5, (void*)"movq ", 6ll, (void*)vr$2008, -1ll );
					__builtin_memset( &TMP$3398$5, 0, 24ll );
					FBSTRING* vr$2014 = fb_StrConcat( &TMP$3398$5, (void*)vr$2011, -1ll, (void*)"[rbp], xmm0", 12ll );
					fb_StrAssign( (void*)&TMP$3399$5, -1ll, (void*)vr$2014, -1ll, 0 );
					HWRITEASM64( &TMP$3399$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3399$5 );
					__builtin_memset( &TMP$3402$5, 0, 24ll );
					FBSTRING* vr$2021 = fb_LongintToStr( *(int64*)((uint8*)VR$1 + 64ll) + 8ll );
					__builtin_memset( &TMP$3400$5, 0, 24ll );
					FBSTRING* vr$2024 = fb_StrConcat( &TMP$3400$5, (void*)"mov ", 5ll, (void*)vr$2021, -1ll );
					__builtin_memset( &TMP$3401$5, 0, 24ll );
					FBSTRING* vr$2027 = fb_StrConcat( &TMP$3401$5, (void*)vr$2024, -1ll, (void*)"[rbp], rax", 11ll );
					fb_StrAssign( (void*)&TMP$3402$5, -1ll, (void*)vr$2027, -1ll, 0 );
					HWRITEASM64( &TMP$3402$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3402$5 );
				}
				goto label$2596;
				label$2601:;
				{
					FBSTRING TMP$3403$5;
					FBSTRING TMP$3404$5;
					FBSTRING TMP$3405$5;
					FBSTRING TMP$3407$5;
					FBSTRING TMP$3408$5;
					FBSTRING TMP$3409$5;
					__builtin_memset( &TMP$3405$5, 0, 24ll );
					FBSTRING* vr$2033 = fb_LongintToStr( *(int64*)((uint8*)VR$1 + 64ll) );
					__builtin_memset( &TMP$3403$5, 0, 24ll );
					FBSTRING* vr$2036 = fb_StrConcat( &TMP$3403$5, (void*)"movq ", 6ll, (void*)vr$2033, -1ll );
					__builtin_memset( &TMP$3404$5, 0, 24ll );
					FBSTRING* vr$2039 = fb_StrConcat( &TMP$3404$5, (void*)vr$2036, -1ll, (void*)"[rbp], xmm0", 12ll );
					fb_StrAssign( (void*)&TMP$3405$5, -1ll, (void*)vr$2039, -1ll, 0 );
					HWRITEASM64( &TMP$3405$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3405$5 );
					__builtin_memset( &TMP$3409$5, 0, 24ll );
					FBSTRING* vr$2046 = fb_LongintToStr( *(int64*)((uint8*)VR$1 + 64ll) + 8ll );
					__builtin_memset( &TMP$3407$5, 0, 24ll );
					FBSTRING* vr$2049 = fb_StrConcat( &TMP$3407$5, (void*)"movq ", 6ll, (void*)vr$2046, -1ll );
					__builtin_memset( &TMP$3408$5, 0, 24ll );
					FBSTRING* vr$2052 = fb_StrConcat( &TMP$3408$5, (void*)vr$2049, -1ll, (void*)"[rbp], xmm1", 12ll );
					fb_StrAssign( (void*)&TMP$3409$5, -1ll, (void*)vr$2052, -1ll, 0 );
					HWRITEASM64( &TMP$3409$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3409$5 );
				}
				goto label$2596;
				label$2597:;
				static const void* tmp$4083[5ll] = {
					&&label$2598,
					&&label$2599,
					&&label$2596,
					&&label$2600,
					&&label$2601,
				};
				if( (TMP$3381$4 - 2ull) > 4ull ) goto label$2596;
				goto *tmp$4083[TMP$3381$4 - 2ull];
				label$2596:;
			}
			fb_ArrayDestructStr( (struct $7FBARRAYIvE*)&tmp$2986$1 );
			fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
			fb_StrDelete( (FBSTRING*)&OP3$1 );
			fb_StrDelete( (FBSTRING*)&OP1$1 );
			goto label$2301;
		}
		label$2595:;
		label$2594:;
		DTYPE$1 = *(int64*)((uint8*)VR$1 + 8ll) & 511ll;
		if( (DTYPE$1 & 480ll) == 0ll ) goto label$2602;
		TMP$3410$2 = 24ll;
		goto label$3159;
		label$2602:;
		TMP$3410$2 = DTYPE$1 & 31ll;
		label$3159:;
		if( TMP$3410$2 != 24ll ) goto label$2604;
		{
			DTYPE$1 = 8ll;
			label$2604:;
		}
		if( DTYPE$1 != 16ll ) goto label$2606;
		{
			if( (*(int64*)((uint8*)PROC$1 + 56ll) & 511ll) == 20ll ) goto label$2608;
			{
				FBSTRING TMP$3412$4;
				__builtin_memset( &TMP$3412$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3412$4, -1ll, (void*)"movq rax, xmm0", 15ll, 0 );
				HWRITEASM64( &TMP$3412$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3412$4 );
			}
			goto label$2607;
			label$2608:;
			{
				if( (*(int64*)((uint8*)&ENV$ + 568ll) & 16ll) == 0ll ) goto label$2610;
				{
					if( (*(int64*)((uint8*)&ENV$ + 568ll) & 32ll) == 0ll ) goto label$2612;
					{
						FBSTRING TMP$3413$6;
						__builtin_memset( &TMP$3413$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$3413$6, -1ll, (void*)"movq rax, xmm0", 15ll, 0 );
						HWRITEASM64( &TMP$3413$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3413$6 );
					}
					label$2612:;
					label$2611:;
				}
				goto label$2609;
				label$2610:;
				{
					FBSTRING TMP$3414$5;
					__builtin_memset( &TMP$3414$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$3414$5, -1ll, (void*)"movq rax, xmm0", 15ll, 0 );
					HWRITEASM64( &TMP$3414$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3414$5 );
				}
				label$2609:;
			}
			label$2607:;
		}
		goto label$2605;
		label$2606:;
		if( DTYPE$1 != 15ll ) goto label$2613;
		{
			if( (*(int64*)((uint8*)PROC$1 + 56ll) & 511ll) == 20ll ) goto label$2615;
			{
				FBSTRING TMP$3416$4;
				__builtin_memset( &TMP$3416$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3416$4, -1ll, (void*)"movd eax, xmm0", 15ll, 0 );
				HWRITEASM64( &TMP$3416$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3416$4 );
			}
			goto label$2614;
			label$2615:;
			{
				if( (*(int64*)((uint8*)&ENV$ + 568ll) & 16ll) == 0ll ) goto label$2617;
				{
					if( (*(int64*)((uint8*)&ENV$ + 568ll) & 32ll) == 0ll ) goto label$2619;
					{
						FBSTRING TMP$3417$6;
						__builtin_memset( &TMP$3417$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$3417$6, -1ll, (void*)"movd eax, xmm0", 15ll, 0 );
						HWRITEASM64( &TMP$3417$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3417$6 );
					}
					label$2619:;
					label$2618:;
				}
				goto label$2616;
				label$2617:;
				{
					FBSTRING TMP$3418$5;
					__builtin_memset( &TMP$3418$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$3418$5, -1ll, (void*)"movd eax, xmm0", 15ll, 0 );
					HWRITEASM64( &TMP$3418$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3418$5 );
				}
				label$2616:;
			}
			label$2614:;
		}
		label$2613:;
		label$2605:;
		REG_FINDFREE( (int32)*(int64*)((uint8*)VR$1 + 24ll), -1ll );
		{
			$15IRVREGTYPE_ENUM TMP$3419$3;
			TMP$3419$3 = *($15IRVREGTYPE_ENUM*)VR$1;
			if( TMP$3419$3 != 4ll ) goto label$2621;
			label$2622:;
			{
				{
					if( DTYPE$1 == 8ll ) goto label$2625;
					label$2626:;
					if( DTYPE$1 == 9ll ) goto label$2625;
					label$2627:;
					if( DTYPE$1 == 13ll ) goto label$2625;
					label$2628:;
					if( DTYPE$1 == 14ll ) goto label$2625;
					label$2629:;
					if( DTYPE$1 == 16ll ) goto label$2625;
					label$2630:;
					if( DTYPE$1 != 10ll ) goto label$2624;
					label$2625:;
					{
						FBSTRING TMP$3420$6;
						FBSTRING TMP$3421$6;
						FBSTRING TMP$3422$6;
						FBSTRING TMP$3423$6;
						int32 vr$2101 = REG_FINDREAL( (int32)*(int64*)((uint8*)VR$1 + 24ll) );
						fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$2101 << (3ll & 63ll))), 0ll, 0 );
						__builtin_memset( &TMP$3423$6, 0, 24ll );
						__builtin_memset( &TMP$3420$6, 0, 24ll );
						FBSTRING* vr$2109 = fb_StrConcat( &TMP$3420$6, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
						__builtin_memset( &TMP$3421$6, 0, 24ll );
						FBSTRING* vr$2112 = fb_StrConcat( &TMP$3421$6, (void*)vr$2109, -1ll, (void*)", ", 3ll );
						__builtin_memset( &TMP$3422$6, 0, 24ll );
						FBSTRING* vr$2115 = fb_StrConcat( &TMP$3422$6, (void*)vr$2112, -1ll, *(void**)REGSTRQ$, 0ll );
						fb_StrAssign( (void*)&TMP$3423$6, -1ll, (void*)vr$2115, -1ll, 0 );
						HWRITEASM64( &TMP$3423$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3423$6 );
					}
					goto label$2623;
					label$2624:;
					if( DTYPE$1 == 11ll ) goto label$2632;
					label$2633:;
					if( DTYPE$1 == 12ll ) goto label$2632;
					label$2634:;
					if( DTYPE$1 != 15ll ) goto label$2631;
					label$2632:;
					{
						FBSTRING TMP$3424$6;
						FBSTRING TMP$3425$6;
						FBSTRING TMP$3426$6;
						FBSTRING TMP$3427$6;
						int32 vr$2121 = REG_FINDREAL( (int32)*(int64*)((uint8*)VR$1 + 24ll) );
						fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRD$ + ((int64)vr$2121 << (3ll & 63ll))), 0ll, 0 );
						__builtin_memset( &TMP$3427$6, 0, 24ll );
						__builtin_memset( &TMP$3424$6, 0, 24ll );
						FBSTRING* vr$2129 = fb_StrConcat( &TMP$3424$6, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
						__builtin_memset( &TMP$3425$6, 0, 24ll );
						FBSTRING* vr$2132 = fb_StrConcat( &TMP$3425$6, (void*)vr$2129, -1ll, (void*)", ", 3ll );
						__builtin_memset( &TMP$3426$6, 0, 24ll );
						FBSTRING* vr$2135 = fb_StrConcat( &TMP$3426$6, (void*)vr$2132, -1ll, *(void**)REGSTRD$, 0ll );
						fb_StrAssign( (void*)&TMP$3427$6, -1ll, (void*)vr$2135, -1ll, 0 );
						HWRITEASM64( &TMP$3427$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3427$6 );
					}
					goto label$2623;
					label$2631:;
					if( DTYPE$1 == 5ll ) goto label$2636;
					label$2637:;
					if( DTYPE$1 != 6ll ) goto label$2635;
					label$2636:;
					{
						FBSTRING TMP$3428$6;
						FBSTRING TMP$3429$6;
						FBSTRING TMP$3430$6;
						FBSTRING TMP$3431$6;
						int32 vr$2141 = REG_FINDREAL( (int32)*(int64*)((uint8*)VR$1 + 24ll) );
						fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRW$ + ((int64)vr$2141 << (3ll & 63ll))), 0ll, 0 );
						__builtin_memset( &TMP$3431$6, 0, 24ll );
						__builtin_memset( &TMP$3428$6, 0, 24ll );
						FBSTRING* vr$2149 = fb_StrConcat( &TMP$3428$6, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
						__builtin_memset( &TMP$3429$6, 0, 24ll );
						FBSTRING* vr$2152 = fb_StrConcat( &TMP$3429$6, (void*)vr$2149, -1ll, (void*)", ", 3ll );
						__builtin_memset( &TMP$3430$6, 0, 24ll );
						FBSTRING* vr$2155 = fb_StrConcat( &TMP$3430$6, (void*)vr$2152, -1ll, *(void**)REGSTRW$, 0ll );
						fb_StrAssign( (void*)&TMP$3431$6, -1ll, (void*)vr$2155, -1ll, 0 );
						HWRITEASM64( &TMP$3431$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3431$6 );
					}
					goto label$2623;
					label$2635:;
					if( DTYPE$1 == 2ll ) goto label$2639;
					label$2640:;
					if( DTYPE$1 == 3ll ) goto label$2639;
					label$2641:;
					if( DTYPE$1 == 1ll ) goto label$2639;
					label$2642:;
					if( DTYPE$1 != 4ll ) goto label$2638;
					label$2639:;
					{
						FBSTRING TMP$3432$6;
						FBSTRING TMP$3433$6;
						FBSTRING TMP$3434$6;
						FBSTRING TMP$3435$6;
						int32 vr$2161 = REG_FINDREAL( (int32)*(int64*)((uint8*)VR$1 + 24ll) );
						fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRB$ + ((int64)vr$2161 << (3ll & 63ll))), 0ll, 0 );
						__builtin_memset( &TMP$3435$6, 0, 24ll );
						__builtin_memset( &TMP$3432$6, 0, 24ll );
						FBSTRING* vr$2169 = fb_StrConcat( &TMP$3432$6, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
						__builtin_memset( &TMP$3433$6, 0, 24ll );
						FBSTRING* vr$2172 = fb_StrConcat( &TMP$3433$6, (void*)vr$2169, -1ll, (void*)", ", 3ll );
						__builtin_memset( &TMP$3434$6, 0, 24ll );
						FBSTRING* vr$2175 = fb_StrConcat( &TMP$3434$6, (void*)vr$2172, -1ll, *(void**)REGSTRB$, 0ll );
						fb_StrAssign( (void*)&TMP$3435$6, -1ll, (void*)vr$2175, -1ll, 0 );
						HWRITEASM64( &TMP$3435$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3435$6 );
					}
					goto label$2623;
					label$2638:;
					{
						FBSTRING TMP$3436$6;
						FBSTRING TMP$3440$6;
						FBSTRING TMP$3441$6;
						FBSTRING TMP$3442$6;
						__builtin_memset( &TMP$3436$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$3436$6, -1ll, (void*)"", 1ll, 0 );
						HWRITEASM64( &TMP$3436$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3436$6 );
						__builtin_memset( &TMP$3441$6, 0, 24ll );
						FBSTRING* vr$2184 = fb_LongintToStr( DTYPE$1 );
						__builtin_memset( &TMP$3440$6, 0, 24ll );
						FBSTRING* vr$2187 = fb_StrConcat( &TMP$3440$6, (void*)"FOUND AN ERROR : in hdocall datatype not handled 04 = ", 55ll, (void*)vr$2184, -1ll );
						fb_StrAssign( (void*)&TMP$3441$6, -1ll, (void*)vr$2187, -1ll, 0 );
						HWRITEASM64( &TMP$3441$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3441$6 );
						__builtin_memset( &TMP$3442$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$3442$6, -1ll, (void*)"", 1ll, 0 );
						HWRITEASM64( &TMP$3442$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3442$6 );
						fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + 136ll), 0ll, 0 );
					}
					label$2643:;
					label$2623:;
				}
			}
			goto label$2620;
			label$2621:;
			{
				FBSTRING TMP$3443$4;
				FBSTRING TMP$3446$4;
				FBSTRING TMP$3447$4;
				__builtin_memset( &TMP$3443$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3443$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$3443$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3443$4 );
				__builtin_memset( &TMP$3446$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3446$4, -1ll, (void*)"FOUND AN ERROR : in hdocall vr->type not handled (test optim)", 62ll, 0 );
				HWRITEASM64( &TMP$3446$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3446$4 );
				__builtin_memset( &TMP$3447$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3447$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$3447$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3447$4 );
			}
			label$2644:;
			label$2620:;
		}
	}
	label$2593:;
	label$2592:;
	fb_ArrayDestructStr( (struct $7FBARRAYIvE*)&tmp$2986$1 );
	fb_StrDelete( (FBSTRING*)&REGTEMPO$1 );
	fb_StrDelete( (FBSTRING*)&OP3$1 );
	fb_StrDelete( (FBSTRING*)&OP1$1 );
	label$2301:;
}

static void _EMITCALL( struct $8FBSYMBOL* PROC$1, int64 BYTESTOPOP$1, struct $6IRVREG* VR$1, int64 LEVEL$1 )
{
	FBSTRING TMP$3448$1;
	FBSTRING TMP$3449$1;
	label$2645:;
	boolean VARIADIC$1;
	__builtin_memset( &VARIADIC$1, 0, 1ll );
	struct $8FBSYMBOL* PARAM$1;
	PARAM$1 = *(struct $8FBSYMBOL**)((uint8*)PROC$1 + 144ll);
	if( PARAM$1 == (struct $8FBSYMBOL*)0ull ) goto label$2648;
	{
		if( *(int64*)((uint8*)PARAM$1 + 96ll) != 4ll ) goto label$2650;
		{
			VARIADIC$1 = (boolean)1ll;
		}
		label$2650:;
		label$2649:;
	}
	label$2648:;
	label$2647:;
	__builtin_memset( &TMP$3449$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$3449$1, -1ll, (void*)"", 1ll, 0 );
	__builtin_memset( &TMP$3448$1, 0, 24ll );
	char* vr$7 = SYMBGETMANGLEDNAME( PROC$1 );
	fb_StrAssign( (void*)&TMP$3448$1, -1ll, (void*)vr$7, 0ll, 0 );
	HDOCALL( PROC$1, &TMP$3448$1, &TMP$3449$1, VR$1, LEVEL$1, VARIADIC$1, (boolean)0ll );
	fb_StrDelete( (FBSTRING*)&TMP$3449$1 );
	fb_StrDelete( (FBSTRING*)&TMP$3448$1 );
	label$2646:;
}

static void _EMITCALLPTR( struct $8FBSYMBOL* PROC$1, struct $6IRVREG* V1$1, struct $6IRVREG* VR$1, int64 BYTESTOPOP$1, int64 LEVEL$1 )
{
	label$2651:;
	FBSTRING OP1$1;
	__builtin_memset( &OP1$1, 0, 24ll );
	FBSTRING OP3$1;
	__builtin_memset( &OP3$1, 0, 24ll );
	boolean VARIADIC$1;
	__builtin_memset( &VARIADIC$1, 0, 1ll );
	struct $8FBSYMBOL* PARAM$1;
	__builtin_memset( &PARAM$1, 0, 8ll );
	{
		$15IRVREGTYPE_ENUM TMP$3450$2;
		TMP$3450$2 = *($15IRVREGTYPE_ENUM*)V1$1;
		if( TMP$3450$2 != 4ll ) goto label$2654;
		label$2655:;
		{
			int32 vr$7 = REG_FINDREAL( (int32)*(int64*)((uint8*)V1$1 + 24ll) );
			fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$7 << (3ll & 63ll))), 0ll, 0 );
		}
		goto label$2653;
		label$2654:;
		if( TMP$3450$2 != 2ll ) goto label$2656;
		label$2657:;
		{
			PREPARE_IDX( V1$1, &OP1$1, &OP3$1 );
		}
		goto label$2653;
		label$2656:;
		if( TMP$3450$2 != 3ll ) goto label$2658;
		label$2659:;
		{
			FBSTRING TMP$3451$3;
			FBSTRING TMP$3452$3;
			FBSTRING TMP$3453$3;
			int32 vr$16 = REG_FINDREAL( (int32)*(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 24ll) );
			FBSTRING* vr$20 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
			__builtin_memset( &TMP$3451$3, 0, 24ll );
			FBSTRING* vr$23 = fb_StrConcat( &TMP$3451$3, (void*)vr$20, -1ll, (void*)"[", 2ll );
			__builtin_memset( &TMP$3452$3, 0, 24ll );
			FBSTRING* vr$26 = fb_StrConcat( &TMP$3452$3, (void*)vr$23, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$16 << (3ll & 63ll))), 0ll );
			__builtin_memset( &TMP$3453$3, 0, 24ll );
			FBSTRING* vr$29 = fb_StrConcat( &TMP$3453$3, (void*)vr$26, -1ll, (void*)"]", 2ll );
			fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$29, -1ll, 0 );
		}
		goto label$2653;
		label$2658:;
		if( TMP$3450$2 != 5ll ) goto label$2660;
		label$2661:;
		{
			char* vr$32 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
			fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$32, 0ll, 0 );
		}
		goto label$2653;
		label$2660:;
		if( TMP$3450$2 != 0ll ) goto label$2662;
		label$2663:;
		{
			FBSTRING TMP$3454$3;
			FBSTRING TMP$3457$3;
			FBSTRING TMP$3458$3;
			__builtin_memset( &TMP$3454$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$3454$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$3454$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3454$3 );
			__builtin_memset( &TMP$3457$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$3457$3, -1ll, (void*)"FOUND AN ERROR : Never IMM as first operand", 44ll, 0 );
			HWRITEASM64( &TMP$3457$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3457$3 );
			__builtin_memset( &TMP$3458$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$3458$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$3458$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3458$3 );
		}
		goto label$2653;
		label$2662:;
		if( TMP$3450$2 != 1ll ) goto label$2664;
		label$2665:;
		{
			if( ((int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 2ll) != 0ll) | (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 1ll) != 0ll)) == 0ll ) goto label$2667;
			{
				FBSTRING TMP$3459$4;
				FBSTRING TMP$3460$4;
				FBSTRING TMP$3461$4;
				FBSTRING* vr$56 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
				char* vr$58 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
				__builtin_memset( &TMP$3459$4, 0, 24ll );
				FBSTRING* vr$61 = fb_StrConcat( &TMP$3459$4, (void*)vr$58, 0ll, (void*)"[rip+", 6ll );
				__builtin_memset( &TMP$3460$4, 0, 24ll );
				FBSTRING* vr$64 = fb_StrConcat( &TMP$3460$4, (void*)vr$61, -1ll, (void*)vr$56, -1ll );
				__builtin_memset( &TMP$3461$4, 0, 24ll );
				FBSTRING* vr$67 = fb_StrConcat( &TMP$3461$4, (void*)vr$64, -1ll, (void*)"]", 2ll );
				fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$67, -1ll, 0 );
			}
			goto label$2666;
			label$2667:;
			{
				FBSTRING TMP$3462$4;
				FBSTRING* vr$70 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
				__builtin_memset( &TMP$3462$4, 0, 24ll );
				FBSTRING* vr$73 = fb_StrConcat( &TMP$3462$4, (void*)vr$70, -1ll, (void*)"[rbp]", 6ll );
				fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$73, -1ll, 0 );
			}
			label$2666:;
		}
		goto label$2653;
		label$2664:;
		{
			FBSTRING TMP$3463$3;
			FBSTRING TMP$3464$3;
			FBSTRING TMP$3465$3;
			__builtin_memset( &TMP$3463$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$3463$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$3463$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3463$3 );
			__builtin_memset( &TMP$3464$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$3464$3, -1ll, (void*)"FOUND AN ERROR : in loadoperand typ not handled v1", 51ll, 0 );
			HWRITEASM64( &TMP$3464$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3464$3 );
			__builtin_memset( &TMP$3465$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$3465$3, -1ll, (void*)"", 1ll, 0 );
			HWRITEASM64( &TMP$3465$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3465$3 );
		}
		label$2668:;
		label$2653:;
	}
	PARAM$1 = *(struct $8FBSYMBOL**)((uint8*)PROC$1 + 144ll);
	if( PARAM$1 == (struct $8FBSYMBOL*)0ull ) goto label$2670;
	{
		if( *(int64*)((uint8*)PARAM$1 + 96ll) != 4ll ) goto label$2672;
		{
			VARIADIC$1 = (boolean)1ll;
		}
		label$2672:;
		label$2671:;
	}
	label$2670:;
	label$2669:;
	HDOCALL( PROC$1, &OP1$1, &OP3$1, VR$1, LEVEL$1, VARIADIC$1, (boolean)1ll );
	fb_StrDelete( (FBSTRING*)&OP3$1 );
	fb_StrDelete( (FBSTRING*)&OP1$1 );
	label$2652:;
}

static void _EMITJUMPPTR( struct $6IRVREG* V1$1 )
{
	FBSTRING TMP$3466$1;
	FBSTRING TMP$3467$1;
	label$2673:;
	int64 REG$1;
	__builtin_memset( &REG$1, 0, 8ll );
	if( *(int64*)((uint8*)V1$1 + 24ll) != (int64)*(int32*)((uint8*)&CTX$ + 232ll) ) goto label$2676;
	{
		REG$1 = (int64)*(int32*)((uint8*)&CTX$ + 228ll);
		*(int32*)((uint8*)&CTX$ + 236ll) = 0;
		*(int32*)((uint8*)&CTX$ + 232ll) = -2;
	}
	goto label$2675;
	label$2676:;
	{
		int32 vr$6 = REG_FINDREAL( (int32)*(int64*)((uint8*)V1$1 + 24ll) );
		REG$1 = (int64)vr$6;
	}
	label$2675:;
	__builtin_memset( &TMP$3467$1, 0, 24ll );
	__builtin_memset( &TMP$3466$1, 0, 24ll );
	FBSTRING* vr$12 = fb_StrConcat( &TMP$3466$1, (void*)"jmp ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + (REG$1 << (3ll & 63ll))), 0ll );
	fb_StrAssign( (void*)&TMP$3467$1, -1ll, (void*)vr$12, -1ll, 0 );
	HWRITEASM64( &TMP$3467$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$3467$1 );
	label$2674:;
}

static void _EMITBRANCH( int64 OP$1, struct $8FBSYMBOL* LABEL$1 )
{
	FBSTRING TMP$3468$1;
	FBSTRING TMP$3469$1;
	FBSTRING TMP$3470$1;
	label$2677:;
	__builtin_memset( &TMP$3470$1, 0, 24ll );
	char* vr$1 = SYMBGETMANGLEDNAME( LABEL$1 );
	char* vr$2 = HGETBOPCODE( OP$1 );
	__builtin_memset( &TMP$3468$1, 0, 24ll );
	FBSTRING* vr$5 = fb_StrConcat( &TMP$3468$1, (void*)vr$2, 0ll, (void*)" ", 2ll );
	__builtin_memset( &TMP$3469$1, 0, 24ll );
	FBSTRING* vr$8 = fb_StrConcat( &TMP$3469$1, (void*)vr$5, -1ll, (void*)vr$1, 0ll );
	fb_StrAssign( (void*)&TMP$3470$1, -1ll, (void*)vr$8, -1ll, 0 );
	HWRITEASM64( &TMP$3470$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$3470$1 );
	if( *(int64*)((uint8*)&CTX$ + 424ll) == 0ll ) goto label$2680;
	{
		*(int32*)((int64)(int32*)REGHANDLE$ + (*(int64*)((uint8*)&CTX$ + 424ll) << (2ll & 63ll))) = -2;
		*(int64*)((uint8*)&CTX$ + 424ll) = 0ll;
	}
	label$2680:;
	label$2679:;
	if( *(struct $8FBSYMBOL**)((uint8*)&CTX$ + 384ll) == (struct $8FBSYMBOL*)0ull ) goto label$2682;
	{
		*(struct $8FBSYMBOL**)((uint8*)&CTX$ + 392ll) = LABEL$1;
	}
	label$2682:;
	label$2681:;
	if( OP$1 == 98ll ) goto label$2684;
	{
		REG_MARK( LABEL$1 );
	}
	label$2684:;
	label$2683:;
	label$2678:;
}

static void _EMITRETURN( int64 BYTESTOPOP$1 )
{
	FBSTRING TMP$3472$1;
	FBSTRING TMP$3473$1;
	label$2685:;
	__builtin_memset( &TMP$3472$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$3472$1, -1ll, (void*)"add rsp, 88 # restore stack for gosub", 38ll, 0 );
	HWRITEASM64( &TMP$3472$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$3472$1 );
	__builtin_memset( &TMP$3473$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$3473$1, -1ll, (void*)"ret", 4ll, 0 );
	HWRITEASM64( &TMP$3473$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$3473$1 );
	label$2686:;
}

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 )
{
	FBSTRING TMP$3474$1;
	label$2687:;
	FBSTRING LNAME$1;
	__builtin_memset( &LNAME$1, 0, 24ll );
	FBSTRING OP1$1;
	FBSTRING* vr$2 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
	__builtin_memset( &TMP$3474$1, 0, 24ll );
	FBSTRING* vr$5 = fb_StrConcat( &TMP$3474$1, (void*)vr$2, -1ll, (void*)"[rbp]", 6ll );
	fb_StrInit( (void*)&OP1$1, -1ll, (void*)vr$5, -1ll, 0 );
	FBSTRING OP2$1;
	__builtin_memset( &OP2$1, 0, 24ll );
	int32 IDX$1;
	__builtin_memset( &IDX$1, 0, 4ll );
	int32 REGTEMPO$1;
	__builtin_memset( &REGTEMPO$1, 0, 4ll );
	if( LABELCOUNT$1 != 0ll ) goto label$2690;
	{
		FBSTRING TMP$3475$2;
		FBSTRING TMP$3476$2;
		__builtin_memset( &TMP$3476$2, 0, 24ll );
		char* vr$11 = SYMBGETMANGLEDNAME( DEFLABEL$1 );
		__builtin_memset( &TMP$3475$2, 0, 24ll );
		FBSTRING* vr$14 = fb_StrConcat( &TMP$3475$2, (void*)"jmp ", 5ll, (void*)vr$11, 0ll );
		fb_StrAssign( (void*)&TMP$3476$2, -1ll, (void*)vr$14, -1ll, 0 );
		HWRITEASM64( &TMP$3476$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3476$2 );
	}
	goto label$2689;
	label$2690:;
	{
		FBSTRING TMP$3477$2;
		FBSTRING TMP$3478$2;
		FBSTRING TMP$3489$2;
		FBSTRING TMP$3490$2;
		FBSTRING TMP$3491$2;
		FBSTRING TMP$3492$2;
		FBSTRING TMP$3494$2;
		FBSTRING TMP$3495$2;
		FBSTRING TMP$3496$2;
		FBSTRING TMP$3497$2;
		FBSTRING TMP$3498$2;
		FBSTRING TMP$3500$2;
		FBSTRING TMP$3501$2;
		FBSTRING TMP$3502$2;
		FBSTRING TMP$3503$2;
		FBSTRING TMP$3504$2;
		FBSTRING TMP$3505$2;
		FBSTRING TMP$3506$2;
		FBSTRING TMP$3512$2;
		char* vr$18 = SYMBUNIQUELABEL(  );
		fb_StrAssign( (void*)&LNAME$1, -1ll, (void*)vr$18, 0ll, 0 );
		__builtin_memset( &TMP$3478$2, 0, 24ll );
		__builtin_memset( &TMP$3477$2, 0, 24ll );
		FBSTRING* vr$24 = fb_StrConcat( &TMP$3477$2, (void*)"mov rax, ", 10ll, (void*)&OP1$1, -1ll );
		fb_StrAssign( (void*)&TMP$3478$2, -1ll, (void*)vr$24, -1ll, 0 );
		HWRITEASM64( &TMP$3478$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3478$2 );
		if( ((int64)-(BIAS$1 > 2147483647ull) & (int64)-(BIAS$1 < 18446744071562067968ull)) == 0ll ) goto label$2692;
		{
			FBSTRING TMP$3479$3;
			FBSTRING TMP$3480$3;
			FBSTRING TMP$3481$3;
			FBSTRING TMP$3482$3;
			FBSTRING TMP$3484$3;
			FBSTRING TMP$3485$3;
			int32 vr$31 = REG_FINDFREE( 999998, -1ll );
			fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$31 << (3ll & 63ll))), 0ll, 0 );
			__builtin_memset( &TMP$3482$3, 0, 24ll );
			FBSTRING* vr$36 = fb_ULongintToStr( BIAS$1 );
			__builtin_memset( &TMP$3479$3, 0, 24ll );
			FBSTRING* vr$40 = fb_StrConcat( &TMP$3479$3, (void*)"mov ", 5ll, (void*)&OP2$1, -1ll );
			__builtin_memset( &TMP$3480$3, 0, 24ll );
			FBSTRING* vr$43 = fb_StrConcat( &TMP$3480$3, (void*)vr$40, -1ll, (void*)", ", 3ll );
			__builtin_memset( &TMP$3481$3, 0, 24ll );
			FBSTRING* vr$46 = fb_StrConcat( &TMP$3481$3, (void*)vr$43, -1ll, (void*)vr$36, -1ll );
			fb_StrAssign( (void*)&TMP$3482$3, -1ll, (void*)vr$46, -1ll, 0 );
			HWRITEASM64( &TMP$3482$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3482$3 );
			__builtin_memset( &TMP$3485$3, 0, 24ll );
			__builtin_memset( &TMP$3484$3, 0, 24ll );
			FBSTRING* vr$54 = fb_StrConcat( &TMP$3484$3, (void*)"sub rax, ", 10ll, (void*)&OP2$1, -1ll );
			fb_StrAssign( (void*)&TMP$3485$3, -1ll, (void*)vr$54, -1ll, 0 );
			HWRITEASM64( &TMP$3485$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3485$3 );
		}
		goto label$2691;
		label$2692:;
		{
			FBSTRING TMP$3486$3;
			FBSTRING TMP$3487$3;
			__builtin_memset( &TMP$3487$3, 0, 24ll );
			FBSTRING* vr$59 = fb_ULongintToStr( BIAS$1 );
			__builtin_memset( &TMP$3486$3, 0, 24ll );
			FBSTRING* vr$62 = fb_StrConcat( &TMP$3486$3, (void*)"sub rax, ", 10ll, (void*)vr$59, -1ll );
			fb_StrAssign( (void*)&TMP$3487$3, -1ll, (void*)vr$62, -1ll, 0 );
			HWRITEASM64( &TMP$3487$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3487$3 );
		}
		label$2691:;
		__builtin_memset( &TMP$3490$2, 0, 24ll );
		FBSTRING* vr$67 = fb_ULongintToStr( SPAN$1 );
		__builtin_memset( &TMP$3489$2, 0, 24ll );
		FBSTRING* vr$70 = fb_StrConcat( &TMP$3489$2, (void*)"cmp rax, ", 10ll, (void*)vr$67, -1ll );
		fb_StrAssign( (void*)&TMP$3490$2, -1ll, (void*)vr$70, -1ll, 0 );
		HWRITEASM64( &TMP$3490$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3490$2 );
		__builtin_memset( &TMP$3492$2, 0, 24ll );
		char* vr$75 = SYMBGETMANGLEDNAME( DEFLABEL$1 );
		__builtin_memset( &TMP$3491$2, 0, 24ll );
		FBSTRING* vr$78 = fb_StrConcat( &TMP$3491$2, (void*)"ja ", 4ll, (void*)vr$75, 0ll );
		fb_StrAssign( (void*)&TMP$3492$2, -1ll, (void*)vr$78, -1ll, 0 );
		HWRITEASM64( &TMP$3492$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3492$2 );
		int32 vr$82 = REG_FINDFREE( 999997, -1ll );
		REGTEMPO$1 = vr$82;
		*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)REGTEMPO$1 << (2ll & 63ll))) = -2;
		__builtin_memset( &TMP$3498$2, 0, 24ll );
		__builtin_memset( &TMP$3494$2, 0, 24ll );
		FBSTRING* vr$91 = fb_StrConcat( &TMP$3494$2, (void*)"lea ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)REGTEMPO$1 << (3ll & 63ll))), 0ll );
		__builtin_memset( &TMP$3495$2, 0, 24ll );
		FBSTRING* vr$94 = fb_StrConcat( &TMP$3495$2, (void*)vr$91, -1ll, (void*)", ", 3ll );
		__builtin_memset( &TMP$3496$2, 0, 24ll );
		FBSTRING* vr$97 = fb_StrConcat( &TMP$3496$2, (void*)vr$94, -1ll, (void*)&LNAME$1, -1ll );
		__builtin_memset( &TMP$3497$2, 0, 24ll );
		FBSTRING* vr$100 = fb_StrConcat( &TMP$3497$2, (void*)vr$97, -1ll, (void*)"[rip]", 6ll );
		fb_StrAssign( (void*)&TMP$3498$2, -1ll, (void*)vr$100, -1ll, 0 );
		HWRITEASM64( &TMP$3498$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3498$2 );
		__builtin_memset( &TMP$3502$2, 0, 24ll );
		__builtin_memset( &TMP$3500$2, 0, 24ll );
		FBSTRING* vr$109 = fb_StrConcat( &TMP$3500$2, (void*)"jmp QWORD PTR [rax*8+", 22ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)REGTEMPO$1 << (3ll & 63ll))), 0ll );
		__builtin_memset( &TMP$3501$2, 0, 24ll );
		FBSTRING* vr$112 = fb_StrConcat( &TMP$3501$2, (void*)vr$109, -1ll, (void*)"]", 2ll );
		fb_StrAssign( (void*)&TMP$3502$2, -1ll, (void*)vr$112, -1ll, 0 );
		HWRITEASM64( &TMP$3502$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3502$2 );
		__builtin_memset( &TMP$3503$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$3503$2, -1ll, (void*)".data", 6ll, 0 );
		ASM_SECTION( &TMP$3503$2 );
		fb_StrDelete( (FBSTRING*)&TMP$3503$2 );
		__builtin_memset( &TMP$3504$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$3504$2, -1ll, (void*)".align 8", 9ll, 0 );
		HWRITEASM64( &TMP$3504$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3504$2 );
		__builtin_memset( &TMP$3506$2, 0, 24ll );
		__builtin_memset( &TMP$3505$2, 0, 24ll );
		FBSTRING* vr$128 = fb_StrConcat( &TMP$3505$2, (void*)&LNAME$1, -1ll, (void*)":", 2ll );
		fb_StrAssign( (void*)&TMP$3506$2, -1ll, (void*)vr$128, -1ll, 0 );
		HWRITEASM64( &TMP$3506$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3506$2 );
		{
			int64 ISEL$3;
			ISEL$3 = 0ll;
			int64 TMP$3507$3;
			TMP$3507$3 = (int64)SPAN$1;
			goto label$2693;
			label$2696:;
			{
				if( (uint64)ISEL$3 != *(uint64*)((uint8*)VALUES$1 + ((int64)IDX$1 << (3ll & 63ll))) ) goto label$2698;
				{
					FBSTRING TMP$3508$5;
					FBSTRING TMP$3509$5;
					__builtin_memset( &TMP$3509$5, 0, 24ll );
					char* vr$139 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)LABELS$1 + ((int64)IDX$1 << (3ll & 63ll))) );
					__builtin_memset( &TMP$3508$5, 0, 24ll );
					FBSTRING* vr$142 = fb_StrConcat( &TMP$3508$5, (void*)".quad ", 7ll, (void*)vr$139, 0ll );
					fb_StrAssign( (void*)&TMP$3509$5, -1ll, (void*)vr$142, -1ll, 0 );
					HWRITEASM64( &TMP$3509$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3509$5 );
					IDX$1 = (int32)((int64)IDX$1 + 1ll);
				}
				goto label$2697;
				label$2698:;
				{
					FBSTRING TMP$3510$5;
					FBSTRING TMP$3511$5;
					__builtin_memset( &TMP$3511$5, 0, 24ll );
					char* vr$150 = SYMBGETMANGLEDNAME( DEFLABEL$1 );
					__builtin_memset( &TMP$3510$5, 0, 24ll );
					FBSTRING* vr$153 = fb_StrConcat( &TMP$3510$5, (void*)".quad ", 7ll, (void*)vr$150, 0ll );
					fb_StrAssign( (void*)&TMP$3511$5, -1ll, (void*)vr$153, -1ll, 0 );
					HWRITEASM64( &TMP$3511$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3511$5 );
				}
				label$2697:;
			}
			label$2694:;
			ISEL$3 = ISEL$3 + 1ll;
			label$2693:;
			if( ISEL$3 <= TMP$3507$3 ) goto label$2696;
			label$2695:;
		}
		__builtin_memset( &TMP$3512$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$3512$2, -1ll, (void*)".text", 6ll, 0 );
		ASM_SECTION( &TMP$3512$2 );
		fb_StrDelete( (FBSTRING*)&TMP$3512$2 );
	}
	label$2689:;
	fb_StrDelete( (FBSTRING*)&OP2$1 );
	fb_StrDelete( (FBSTRING*)&OP1$1 );
	fb_StrDelete( (FBSTRING*)&LNAME$1 );
	label$2688:;
}

static void _EMITMEM( int64 OP$1, struct $6IRVREG* V1$1, struct $6IRVREG* V2$1, int64 BYTES$1 )
{
	label$2699:;
	FBSTRING OP1$1;
	__builtin_memset( &OP1$1, 0, 24ll );
	FBSTRING OP2$1;
	__builtin_memset( &OP2$1, 0, 24ll );
	FBSTRING OP3$1;
	__builtin_memset( &OP3$1, 0, 24ll );
	FBSTRING LNAME1$1;
	__builtin_memset( &LNAME1$1, 0, 24ll );
	FBSTRING LNAME2$1;
	__builtin_memset( &LNAME2$1, 0, 24ll );
	FBSTRING INSTRUC$1;
	fb_StrInit( (void*)&INSTRUC$1, -1ll, (void*)"mov ", 5ll, 0 );
	char* REGTEMPO$1;
	__builtin_memset( &REGTEMPO$1, 0, 8ll );
	int32 DESTTYP$1;
	DESTTYP$1 = 0;
	int32 SRCTYP$1;
	SRCTYP$1 = 0;
	int32 REGSRC$1;
	__builtin_memset( &REGSRC$1, 0, 4ll );
	{
		if( OP$1 != 107ll ) goto label$2702;
		label$2703:;
		{
			if( *(int64*)V1$1 != 4ll ) goto label$2705;
			{
				int32 vr$11 = REG_FINDREAL( (int32)*(int64*)((uint8*)V1$1 + 24ll) );
				REGSRC$1 = vr$11;
				fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)REGSRC$1 << (3ll & 63ll))), 0ll, 0 );
				SRCTYP$1 = 1;
			}
			goto label$2704;
			label$2705:;
			if( *(int64*)V1$1 != 1ll ) goto label$2706;
			{
				if( ((int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 2ll) != 0ll) | (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 1ll) != 0ll)) == 0ll ) goto label$2708;
				{
					FBSTRING TMP$3513$5;
					FBSTRING TMP$3514$5;
					FBSTRING TMP$3515$5;
					FBSTRING* vr$26 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
					char* vr$28 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
					__builtin_memset( &TMP$3513$5, 0, 24ll );
					FBSTRING* vr$31 = fb_StrConcat( &TMP$3513$5, (void*)vr$28, 0ll, (void*)"[rip+", 6ll );
					__builtin_memset( &TMP$3514$5, 0, 24ll );
					FBSTRING* vr$34 = fb_StrConcat( &TMP$3514$5, (void*)vr$31, -1ll, (void*)vr$26, -1ll );
					__builtin_memset( &TMP$3515$5, 0, 24ll );
					FBSTRING* vr$37 = fb_StrConcat( &TMP$3515$5, (void*)vr$34, -1ll, (void*)"]", 2ll );
					fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$37, -1ll, 0 );
				}
				goto label$2707;
				label$2708:;
				{
					FBSTRING TMP$3516$5;
					FBSTRING* vr$40 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
					__builtin_memset( &TMP$3516$5, 0, 24ll );
					FBSTRING* vr$43 = fb_StrConcat( &TMP$3516$5, (void*)vr$40, -1ll, (void*)"[rbp]", 6ll );
					fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$43, -1ll, 0 );
				}
				label$2707:;
				SRCTYP$1 = 0;
			}
			goto label$2704;
			label$2706:;
			if( *(int64*)V1$1 != 5ll ) goto label$2709;
			{
				FBSTRING TMP$3517$4;
				FBSTRING TMP$3518$4;
				FBSTRING TMP$3519$4;
				FBSTRING* vr$47 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
				char* vr$49 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
				__builtin_memset( &TMP$3517$4, 0, 24ll );
				FBSTRING* vr$52 = fb_StrConcat( &TMP$3517$4, (void*)vr$49, 0ll, (void*)"[rip+", 6ll );
				__builtin_memset( &TMP$3518$4, 0, 24ll );
				FBSTRING* vr$55 = fb_StrConcat( &TMP$3518$4, (void*)vr$52, -1ll, (void*)vr$47, -1ll );
				__builtin_memset( &TMP$3519$4, 0, 24ll );
				FBSTRING* vr$58 = fb_StrConcat( &TMP$3519$4, (void*)vr$55, -1ll, (void*)"]", 2ll );
				fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$58, -1ll, 0 );
				SRCTYP$1 = 1;
				fb_StrAssign( (void*)&INSTRUC$1, -1ll, (void*)"lea ", 5ll, 0 );
			}
			goto label$2704;
			label$2709:;
			{
				FBSTRING TMP$3520$4;
				FBSTRING TMP$3523$4;
				FBSTRING TMP$3524$4;
				__builtin_memset( &TMP$3520$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3520$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$3520$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3520$4 );
				__builtin_memset( &TMP$3523$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3523$4, -1ll, (void*)"FOUND AN ERROR : Memclear v1 not a reg nor a var", 49ll, 0 );
				HWRITEASM64( &TMP$3523$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3523$4 );
				__builtin_memset( &TMP$3524$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3524$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$3524$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3524$4 );
				fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
				fb_StrDelete( (FBSTRING*)&LNAME2$1 );
				fb_StrDelete( (FBSTRING*)&LNAME1$1 );
				fb_StrDelete( (FBSTRING*)&OP3$1 );
				fb_StrDelete( (FBSTRING*)&OP2$1 );
				fb_StrDelete( (FBSTRING*)&OP1$1 );
				goto label$2700;
			}
			label$2704:;
			if( *(int64*)V2$1 != 4ll ) goto label$2711;
			{
				FBSTRING TMP$3525$4;
				FBSTRING TMP$3526$4;
				FBSTRING TMP$3527$4;
				FBSTRING TMP$3528$4;
				FBSTRING TMP$3530$4;
				FBSTRING TMP$3531$4;
				FBSTRING TMP$3532$4;
				FBSTRING TMP$3533$4;
				FBSTRING TMP$3534$4;
				FBSTRING TMP$3535$4;
				FBSTRING TMP$3537$4;
				FBSTRING TMP$3539$4;
				FBSTRING TMP$3540$4;
				FBSTRING TMP$3541$4;
				FBSTRING TMP$3542$4;
				FBSTRING TMP$3543$4;
				FBSTRING TMP$3544$4;
				FBSTRING TMP$3545$4;
				int32 vr$82 = REG_FINDREAL( (int32)*(int64*)((uint8*)V2$1 + 24ll) );
				fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$82 << (3ll & 63ll))), 0ll, 0 );
				__builtin_memset( &TMP$3528$4, 0, 24ll );
				__builtin_memset( &TMP$3525$4, 0, 24ll );
				FBSTRING* vr$91 = fb_StrConcat( &TMP$3525$4, (void*)"test ", 6ll, (void*)&OP2$1, -1ll );
				__builtin_memset( &TMP$3526$4, 0, 24ll );
				FBSTRING* vr$94 = fb_StrConcat( &TMP$3526$4, (void*)vr$91, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$3527$4, 0, 24ll );
				FBSTRING* vr$97 = fb_StrConcat( &TMP$3527$4, (void*)vr$94, -1ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$3528$4, -1ll, (void*)vr$97, -1ll, 0 );
				HWRITEASM64( &TMP$3528$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3528$4 );
				char* vr$101 = SYMBUNIQUELABEL(  );
				fb_StrAssign( (void*)&LNAME2$1, -1ll, (void*)vr$101, 0ll, 0 );
				__builtin_memset( &TMP$3531$4, 0, 24ll );
				__builtin_memset( &TMP$3530$4, 0, 24ll );
				FBSTRING* vr$107 = fb_StrConcat( &TMP$3530$4, (void*)"jz ", 4ll, (void*)&LNAME2$1, -1ll );
				fb_StrAssign( (void*)&TMP$3531$4, -1ll, (void*)vr$107, -1ll, 0 );
				HWRITEASM64( &TMP$3531$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3531$4 );
				__builtin_memset( &TMP$3533$4, 0, 24ll );
				__builtin_memset( &TMP$3532$4, 0, 24ll );
				FBSTRING* vr$115 = fb_StrConcat( &TMP$3532$4, (void*)"mov rax, ", 10ll, (void*)&OP1$1, -1ll );
				fb_StrAssign( (void*)&TMP$3533$4, -1ll, (void*)vr$115, -1ll, 0 );
				HWRITEASM64( &TMP$3533$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3533$4 );
				char* vr$119 = SYMBUNIQUELABEL(  );
				fb_StrAssign( (void*)&LNAME1$1, -1ll, (void*)vr$119, 0ll, 0 );
				__builtin_memset( &TMP$3535$4, 0, 24ll );
				__builtin_memset( &TMP$3534$4, 0, 24ll );
				FBSTRING* vr$125 = fb_StrConcat( &TMP$3534$4, (void*)&LNAME1$1, -1ll, (void*)":", 2ll );
				fb_StrAssign( (void*)&TMP$3535$4, -1ll, (void*)vr$125, -1ll, 0 );
				HWRITEASM64( &TMP$3535$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3535$4 );
				__builtin_memset( &TMP$3537$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3537$4, -1ll, (void*)"mov BYTE PTR [rax], 0", 22ll, 0 );
				HWRITEASM64( &TMP$3537$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3537$4 );
				__builtin_memset( &TMP$3539$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3539$4, -1ll, (void*)"inc rax", 8ll, 0 );
				HWRITEASM64( &TMP$3539$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3539$4 );
				__builtin_memset( &TMP$3541$4, 0, 24ll );
				__builtin_memset( &TMP$3540$4, 0, 24ll );
				FBSTRING* vr$141 = fb_StrConcat( &TMP$3540$4, (void*)"dec ", 5ll, (void*)&OP2$1, -1ll );
				fb_StrAssign( (void*)&TMP$3541$4, -1ll, (void*)vr$141, -1ll, 0 );
				HWRITEASM64( &TMP$3541$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3541$4 );
				__builtin_memset( &TMP$3543$4, 0, 24ll );
				__builtin_memset( &TMP$3542$4, 0, 24ll );
				FBSTRING* vr$149 = fb_StrConcat( &TMP$3542$4, (void*)"jnz ", 5ll, (void*)&LNAME1$1, -1ll );
				fb_StrAssign( (void*)&TMP$3543$4, -1ll, (void*)vr$149, -1ll, 0 );
				HWRITEASM64( &TMP$3543$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3543$4 );
				__builtin_memset( &TMP$3545$4, 0, 24ll );
				__builtin_memset( &TMP$3544$4, 0, 24ll );
				FBSTRING* vr$157 = fb_StrConcat( &TMP$3544$4, (void*)&LNAME2$1, -1ll, (void*)":", 2ll );
				fb_StrAssign( (void*)&TMP$3545$4, -1ll, (void*)vr$157, -1ll, 0 );
				HWRITEASM64( &TMP$3545$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3545$4 );
				fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
				fb_StrDelete( (FBSTRING*)&LNAME2$1 );
				fb_StrDelete( (FBSTRING*)&LNAME1$1 );
				fb_StrDelete( (FBSTRING*)&OP3$1 );
				fb_StrDelete( (FBSTRING*)&OP2$1 );
				fb_StrDelete( (FBSTRING*)&OP1$1 );
				goto label$2700;
			}
			label$2711:;
			label$2710:;
			if( *(int64*)V2$1 == 0ll ) goto label$2713;
			{
				FBSTRING TMP$3546$4;
				FBSTRING TMP$3549$4;
				FBSTRING TMP$3550$4;
				__builtin_memset( &TMP$3546$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3546$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$3546$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3546$4 );
				__builtin_memset( &TMP$3549$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3549$4, -1ll, (void*)"FOUND AN ERROR : Memclear without an immediat as size", 54ll, 0 );
				HWRITEASM64( &TMP$3549$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3549$4 );
				__builtin_memset( &TMP$3550$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3550$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$3550$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3550$4 );
				fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
				fb_StrDelete( (FBSTRING*)&LNAME2$1 );
				fb_StrDelete( (FBSTRING*)&LNAME1$1 );
				fb_StrDelete( (FBSTRING*)&OP3$1 );
				fb_StrDelete( (FBSTRING*)&OP2$1 );
				fb_StrDelete( (FBSTRING*)&OP1$1 );
				goto label$2700;
			}
			label$2713:;
			label$2712:;
			if( *(int64*)((uint8*)V2$1 + 48ll) != 0ll ) goto label$2715;
			{
				fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
				fb_StrDelete( (FBSTRING*)&LNAME2$1 );
				fb_StrDelete( (FBSTRING*)&LNAME1$1 );
				fb_StrDelete( (FBSTRING*)&OP3$1 );
				fb_StrDelete( (FBSTRING*)&OP2$1 );
				fb_StrDelete( (FBSTRING*)&OP1$1 );
				goto label$2700;
				label$2715:;
			}
			{
				int64 TMP$3551$4;
				TMP$3551$4 = *(int64*)((uint8*)V2$1 + 48ll);
				if( TMP$3551$4 > 8ll ) goto label$2718;
				label$2719:;
				if( TMP$3551$4 == 3ll ) goto label$2718;
				label$2720:;
				if( TMP$3551$4 == 5ll ) goto label$2718;
				label$2721:;
				if( TMP$3551$4 == 6ll ) goto label$2718;
				label$2722:;
				if( TMP$3551$4 != 7ll ) goto label$2717;
				label$2718:;
				{
					MEMCLEAR( *(int64*)((uint8*)V2$1 + 48ll), &OP1$1, SRCTYP$1 );
				}
				goto label$2716;
				label$2717:;
				if( TMP$3551$4 != 1ll ) goto label$2723;
				label$2724:;
				{
					if( *(int64*)V1$1 != 4ll ) goto label$2726;
					{
						FBSTRING TMP$3553$6;
						FBSTRING TMP$3554$6;
						FBSTRING TMP$3555$6;
						__builtin_memset( &TMP$3555$6, 0, 24ll );
						__builtin_memset( &TMP$3553$6, 0, 24ll );
						FBSTRING* vr$201 = fb_StrConcat( &TMP$3553$6, (void*)"mov BYTE PTR [", 15ll, (void*)&OP1$1, -1ll );
						__builtin_memset( &TMP$3554$6, 0, 24ll );
						FBSTRING* vr$204 = fb_StrConcat( &TMP$3554$6, (void*)vr$201, -1ll, (void*)"], 0", 5ll );
						fb_StrAssign( (void*)&TMP$3555$6, -1ll, (void*)vr$204, -1ll, 0 );
						HWRITEASM64( &TMP$3555$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3555$6 );
					}
					goto label$2725;
					label$2726:;
					{
						FBSTRING TMP$3557$6;
						FBSTRING TMP$3558$6;
						FBSTRING TMP$3559$6;
						FBSTRING TMP$3560$6;
						__builtin_memset( &TMP$3559$6, 0, 24ll );
						__builtin_memset( &TMP$3557$6, 0, 24ll );
						FBSTRING* vr$213 = fb_StrConcat( &TMP$3557$6, (void*)&INSTRUC$1, -1ll, (void*)"rax, ", 6ll );
						__builtin_memset( &TMP$3558$6, 0, 24ll );
						FBSTRING* vr$216 = fb_StrConcat( &TMP$3558$6, (void*)vr$213, -1ll, (void*)&OP1$1, -1ll );
						fb_StrAssign( (void*)&TMP$3559$6, -1ll, (void*)vr$216, -1ll, 0 );
						HWRITEASM64( &TMP$3559$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3559$6 );
						__builtin_memset( &TMP$3560$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$3560$6, -1ll, (void*)"mov BYTE PTR [rax], 0", 22ll, 0 );
						HWRITEASM64( &TMP$3560$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3560$6 );
					}
					label$2725:;
				}
				goto label$2716;
				label$2723:;
				if( TMP$3551$4 != 2ll ) goto label$2727;
				label$2728:;
				{
					if( *(int64*)V1$1 != 4ll ) goto label$2730;
					{
						FBSTRING TMP$3562$6;
						FBSTRING TMP$3563$6;
						FBSTRING TMP$3564$6;
						__builtin_memset( &TMP$3564$6, 0, 24ll );
						__builtin_memset( &TMP$3562$6, 0, 24ll );
						FBSTRING* vr$229 = fb_StrConcat( &TMP$3562$6, (void*)"mov WORD PTR [", 15ll, (void*)&OP1$1, -1ll );
						__builtin_memset( &TMP$3563$6, 0, 24ll );
						FBSTRING* vr$232 = fb_StrConcat( &TMP$3563$6, (void*)vr$229, -1ll, (void*)"], 0", 5ll );
						fb_StrAssign( (void*)&TMP$3564$6, -1ll, (void*)vr$232, -1ll, 0 );
						HWRITEASM64( &TMP$3564$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3564$6 );
					}
					goto label$2729;
					label$2730:;
					{
						FBSTRING TMP$3565$6;
						FBSTRING TMP$3566$6;
						FBSTRING TMP$3567$6;
						FBSTRING TMP$3569$6;
						__builtin_memset( &TMP$3567$6, 0, 24ll );
						__builtin_memset( &TMP$3565$6, 0, 24ll );
						FBSTRING* vr$241 = fb_StrConcat( &TMP$3565$6, (void*)&INSTRUC$1, -1ll, (void*)"rax, ", 6ll );
						__builtin_memset( &TMP$3566$6, 0, 24ll );
						FBSTRING* vr$244 = fb_StrConcat( &TMP$3566$6, (void*)vr$241, -1ll, (void*)&OP1$1, -1ll );
						fb_StrAssign( (void*)&TMP$3567$6, -1ll, (void*)vr$244, -1ll, 0 );
						HWRITEASM64( &TMP$3567$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3567$6 );
						__builtin_memset( &TMP$3569$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$3569$6, -1ll, (void*)"mov WORD PTR [rax], 0", 22ll, 0 );
						HWRITEASM64( &TMP$3569$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3569$6 );
					}
					label$2729:;
				}
				goto label$2716;
				label$2727:;
				if( TMP$3551$4 != 4ll ) goto label$2731;
				label$2732:;
				{
					if( *(int64*)V1$1 != 4ll ) goto label$2734;
					{
						FBSTRING TMP$3571$6;
						FBSTRING TMP$3572$6;
						FBSTRING TMP$3573$6;
						__builtin_memset( &TMP$3573$6, 0, 24ll );
						__builtin_memset( &TMP$3571$6, 0, 24ll );
						FBSTRING* vr$257 = fb_StrConcat( &TMP$3571$6, (void*)"mov DWORD PTR [", 16ll, (void*)&OP1$1, -1ll );
						__builtin_memset( &TMP$3572$6, 0, 24ll );
						FBSTRING* vr$260 = fb_StrConcat( &TMP$3572$6, (void*)vr$257, -1ll, (void*)"], 0", 5ll );
						fb_StrAssign( (void*)&TMP$3573$6, -1ll, (void*)vr$260, -1ll, 0 );
						HWRITEASM64( &TMP$3573$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3573$6 );
					}
					goto label$2733;
					label$2734:;
					{
						FBSTRING TMP$3574$6;
						FBSTRING TMP$3575$6;
						FBSTRING TMP$3576$6;
						FBSTRING TMP$3578$6;
						__builtin_memset( &TMP$3576$6, 0, 24ll );
						__builtin_memset( &TMP$3574$6, 0, 24ll );
						FBSTRING* vr$269 = fb_StrConcat( &TMP$3574$6, (void*)&INSTRUC$1, -1ll, (void*)"rax, ", 6ll );
						__builtin_memset( &TMP$3575$6, 0, 24ll );
						FBSTRING* vr$272 = fb_StrConcat( &TMP$3575$6, (void*)vr$269, -1ll, (void*)&OP1$1, -1ll );
						fb_StrAssign( (void*)&TMP$3576$6, -1ll, (void*)vr$272, -1ll, 0 );
						HWRITEASM64( &TMP$3576$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3576$6 );
						__builtin_memset( &TMP$3578$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$3578$6, -1ll, (void*)"mov DWORD PTR [rax], 0", 23ll, 0 );
						HWRITEASM64( &TMP$3578$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3578$6 );
					}
					label$2733:;
				}
				goto label$2716;
				label$2731:;
				if( TMP$3551$4 != 8ll ) goto label$2735;
				label$2736:;
				{
					if( *(int64*)V1$1 != 4ll ) goto label$2738;
					{
						FBSTRING TMP$3579$6;
						FBSTRING TMP$3580$6;
						FBSTRING TMP$3581$6;
						__builtin_memset( &TMP$3581$6, 0, 24ll );
						__builtin_memset( &TMP$3579$6, 0, 24ll );
						FBSTRING* vr$285 = fb_StrConcat( &TMP$3579$6, (void*)"mov QWORD PTR [", 16ll, (void*)&OP1$1, -1ll );
						__builtin_memset( &TMP$3580$6, 0, 24ll );
						FBSTRING* vr$288 = fb_StrConcat( &TMP$3580$6, (void*)vr$285, -1ll, (void*)"], 0", 5ll );
						fb_StrAssign( (void*)&TMP$3581$6, -1ll, (void*)vr$288, -1ll, 0 );
						HWRITEASM64( &TMP$3581$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3581$6 );
					}
					goto label$2737;
					label$2738:;
					{
						FBSTRING TMP$3582$6;
						FBSTRING TMP$3583$6;
						FBSTRING TMP$3584$6;
						FBSTRING TMP$3586$6;
						__builtin_memset( &TMP$3584$6, 0, 24ll );
						__builtin_memset( &TMP$3582$6, 0, 24ll );
						FBSTRING* vr$297 = fb_StrConcat( &TMP$3582$6, (void*)&INSTRUC$1, -1ll, (void*)"rax, ", 6ll );
						__builtin_memset( &TMP$3583$6, 0, 24ll );
						FBSTRING* vr$300 = fb_StrConcat( &TMP$3583$6, (void*)vr$297, -1ll, (void*)&OP1$1, -1ll );
						fb_StrAssign( (void*)&TMP$3584$6, -1ll, (void*)vr$300, -1ll, 0 );
						HWRITEASM64( &TMP$3584$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3584$6 );
						__builtin_memset( &TMP$3586$6, 0, 24ll );
						fb_StrAssign( (void*)&TMP$3586$6, -1ll, (void*)"mov QWORD PTR [rax], 0", 23ll, 0 );
						HWRITEASM64( &TMP$3586$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3586$6 );
					}
					label$2737:;
				}
				label$2735:;
				label$2716:;
			}
		}
		goto label$2701;
		label$2702:;
		if( OP$1 != 105ll ) goto label$2739;
		label$2740:;
		{
			if( BYTES$1 != 0ll ) goto label$2742;
			{
				fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
				fb_StrDelete( (FBSTRING*)&LNAME2$1 );
				fb_StrDelete( (FBSTRING*)&LNAME1$1 );
				fb_StrDelete( (FBSTRING*)&OP3$1 );
				fb_StrDelete( (FBSTRING*)&OP2$1 );
				fb_StrDelete( (FBSTRING*)&OP1$1 );
				goto label$2700;
			}
			label$2742:;
			label$2741:;
			{
				$15IRVREGTYPE_ENUM TMP$3587$4;
				TMP$3587$4 = *($15IRVREGTYPE_ENUM*)V1$1;
				if( TMP$3587$4 != 2ll ) goto label$2744;
				label$2745:;
				{
					PREPARE_IDX( V1$1, &OP1$1, &OP3$1 );
				}
				goto label$2743;
				label$2744:;
				if( TMP$3587$4 != 4ll ) goto label$2746;
				label$2747:;
				{
					int32 vr$319 = REG_FINDREAL( (int32)*(int64*)((uint8*)V1$1 + 24ll) );
					fb_StrAssign( (void*)&OP1$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$319 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$2743;
				label$2746:;
				if( TMP$3587$4 != 1ll ) goto label$2748;
				label$2749:;
				{
					if( ((int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 2ll) != 0ll) | (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 8ll) & 1ll) != 0ll)) == 0ll ) goto label$2751;
					{
						FBSTRING TMP$3588$6;
						FBSTRING TMP$3589$6;
						FBSTRING TMP$3590$6;
						FBSTRING* vr$333 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
						char* vr$335 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
						__builtin_memset( &TMP$3588$6, 0, 24ll );
						FBSTRING* vr$338 = fb_StrConcat( &TMP$3588$6, (void*)vr$335, 0ll, (void*)"[rip+", 6ll );
						__builtin_memset( &TMP$3589$6, 0, 24ll );
						FBSTRING* vr$341 = fb_StrConcat( &TMP$3589$6, (void*)vr$338, -1ll, (void*)vr$333, -1ll );
						__builtin_memset( &TMP$3590$6, 0, 24ll );
						FBSTRING* vr$344 = fb_StrConcat( &TMP$3590$6, (void*)vr$341, -1ll, (void*)"]", 2ll );
						fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$344, -1ll, 0 );
					}
					goto label$2750;
					label$2751:;
					{
						FBSTRING TMP$3591$6;
						FBSTRING* vr$347 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
						__builtin_memset( &TMP$3591$6, 0, 24ll );
						FBSTRING* vr$350 = fb_StrConcat( &TMP$3591$6, (void*)vr$347, -1ll, (void*)"[rbp]", 6ll );
						fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$350, -1ll, 0 );
					}
					label$2750:;
				}
				goto label$2743;
				label$2748:;
				if( TMP$3587$4 != 3ll ) goto label$2752;
				label$2753:;
				{
					FBSTRING TMP$3592$5;
					FBSTRING TMP$3593$5;
					FBSTRING TMP$3594$5;
					int32 vr$355 = REG_FINDREAL( (int32)*(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 24ll) );
					FBSTRING* vr$359 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
					__builtin_memset( &TMP$3592$5, 0, 24ll );
					FBSTRING* vr$362 = fb_StrConcat( &TMP$3592$5, (void*)vr$359, -1ll, (void*)"[", 2ll );
					__builtin_memset( &TMP$3593$5, 0, 24ll );
					FBSTRING* vr$365 = fb_StrConcat( &TMP$3593$5, (void*)vr$362, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$355 << (3ll & 63ll))), 0ll );
					__builtin_memset( &TMP$3594$5, 0, 24ll );
					FBSTRING* vr$368 = fb_StrConcat( &TMP$3594$5, (void*)vr$365, -1ll, (void*)"]", 2ll );
					fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$368, -1ll, 0 );
				}
				goto label$2743;
				label$2752:;
				if( TMP$3587$4 != 5ll ) goto label$2754;
				label$2755:;
				{
					FBSTRING TMP$3595$5;
					FBSTRING TMP$3596$5;
					FBSTRING TMP$3597$5;
					FBSTRING* vr$371 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 64ll) );
					char* vr$373 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) );
					__builtin_memset( &TMP$3595$5, 0, 24ll );
					FBSTRING* vr$376 = fb_StrConcat( &TMP$3595$5, (void*)vr$373, 0ll, (void*)"[rip+", 6ll );
					__builtin_memset( &TMP$3596$5, 0, 24ll );
					FBSTRING* vr$379 = fb_StrConcat( &TMP$3596$5, (void*)vr$376, -1ll, (void*)vr$371, -1ll );
					__builtin_memset( &TMP$3597$5, 0, 24ll );
					FBSTRING* vr$382 = fb_StrConcat( &TMP$3597$5, (void*)vr$379, -1ll, (void*)"]", 2ll );
					fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$382, -1ll, 0 );
					DESTTYP$1 = 1;
				}
				goto label$2743;
				label$2754:;
				if( TMP$3587$4 != 0ll ) goto label$2756;
				label$2757:;
				{
					FBSTRING TMP$3598$5;
					FBSTRING TMP$3599$5;
					FBSTRING* vr$385 = fb_LongintToStr( *(int64*)((uint8*)V1$1 + 48ll) );
					__builtin_memset( &TMP$3598$5, 0, 24ll );
					FBSTRING* vr$388 = fb_StrConcat( &TMP$3598$5, (void*)"[", 2ll, (void*)vr$385, -1ll );
					__builtin_memset( &TMP$3599$5, 0, 24ll );
					FBSTRING* vr$391 = fb_StrConcat( &TMP$3599$5, (void*)vr$388, -1ll, (void*)"]", 2ll );
					fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$391, -1ll, 0 );
				}
				goto label$2743;
				label$2756:;
				{
					FBSTRING TMP$3600$5;
					FBSTRING TMP$3603$5;
					FBSTRING TMP$3604$5;
					__builtin_memset( &TMP$3600$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$3600$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$3600$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3600$5 );
					__builtin_memset( &TMP$3603$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$3603$5, -1ll, (void*)"FOUND AN ERROR : memcopy 01 type not handled", 45ll, 0 );
					HWRITEASM64( &TMP$3603$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3603$5 );
					__builtin_memset( &TMP$3604$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$3604$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$3604$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3604$5 );
				}
				label$2758:;
				label$2743:;
			}
			{
				$15IRVREGTYPE_ENUM TMP$3605$4;
				TMP$3605$4 = *($15IRVREGTYPE_ENUM*)V2$1;
				if( TMP$3605$4 != 4ll ) goto label$2760;
				label$2761:;
				{
					int32 vr$408 = REG_FINDREAL( (int32)*(int64*)((uint8*)V2$1 + 24ll) );
					REGSRC$1 = vr$408;
					fb_StrAssign( (void*)&OP2$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)REGSRC$1 << (3ll & 63ll))), 0ll, 0 );
				}
				goto label$2759;
				label$2760:;
				if( TMP$3605$4 != 1ll ) goto label$2762;
				label$2763:;
				{
					if( ((int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) + 8ll) & 2ll) != 0ll) | (int64)-((*(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) + 8ll) & 1ll) != 0ll)) == 0ll ) goto label$2765;
					{
						FBSTRING TMP$3606$6;
						FBSTRING TMP$3607$6;
						FBSTRING TMP$3608$6;
						FBSTRING* vr$422 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
						char* vr$424 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) );
						__builtin_memset( &TMP$3606$6, 0, 24ll );
						FBSTRING* vr$427 = fb_StrConcat( &TMP$3606$6, (void*)vr$424, 0ll, (void*)"[rip+", 6ll );
						__builtin_memset( &TMP$3607$6, 0, 24ll );
						FBSTRING* vr$430 = fb_StrConcat( &TMP$3607$6, (void*)vr$427, -1ll, (void*)vr$422, -1ll );
						__builtin_memset( &TMP$3608$6, 0, 24ll );
						FBSTRING* vr$433 = fb_StrConcat( &TMP$3608$6, (void*)vr$430, -1ll, (void*)"]", 2ll );
						fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$433, -1ll, 0 );
					}
					goto label$2764;
					label$2765:;
					{
						FBSTRING TMP$3609$6;
						FBSTRING* vr$436 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
						__builtin_memset( &TMP$3609$6, 0, 24ll );
						FBSTRING* vr$439 = fb_StrConcat( &TMP$3609$6, (void*)vr$436, -1ll, (void*)"[rbp]", 6ll );
						fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$439, -1ll, 0 );
					}
					label$2764:;
				}
				goto label$2759;
				label$2762:;
				if( TMP$3605$4 != 5ll ) goto label$2766;
				label$2767:;
				{
					FBSTRING TMP$3610$5;
					FBSTRING TMP$3611$5;
					FBSTRING TMP$3612$5;
					FBSTRING* vr$442 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
					char* vr$444 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)V2$1 + 56ll) );
					__builtin_memset( &TMP$3610$5, 0, 24ll );
					FBSTRING* vr$447 = fb_StrConcat( &TMP$3610$5, (void*)vr$444, 0ll, (void*)"[rip+", 6ll );
					__builtin_memset( &TMP$3611$5, 0, 24ll );
					FBSTRING* vr$450 = fb_StrConcat( &TMP$3611$5, (void*)vr$447, -1ll, (void*)vr$442, -1ll );
					__builtin_memset( &TMP$3612$5, 0, 24ll );
					FBSTRING* vr$453 = fb_StrConcat( &TMP$3612$5, (void*)vr$450, -1ll, (void*)"]", 2ll );
					fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$453, -1ll, 0 );
					SRCTYP$1 = 1;
				}
				goto label$2759;
				label$2766:;
				if( TMP$3605$4 != 3ll ) goto label$2768;
				label$2769:;
				{
					FBSTRING TMP$3613$5;
					FBSTRING TMP$3614$5;
					FBSTRING TMP$3615$5;
					int32 vr$458 = REG_FINDREAL( (int32)*(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V2$1 + 80ll) + 24ll) );
					FBSTRING* vr$462 = fb_LongintToStr( *(int64*)((uint8*)V2$1 + 64ll) );
					__builtin_memset( &TMP$3613$5, 0, 24ll );
					FBSTRING* vr$465 = fb_StrConcat( &TMP$3613$5, (void*)vr$462, -1ll, (void*)"[", 2ll );
					__builtin_memset( &TMP$3614$5, 0, 24ll );
					FBSTRING* vr$468 = fb_StrConcat( &TMP$3614$5, (void*)vr$465, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$458 << (3ll & 63ll))), 0ll );
					__builtin_memset( &TMP$3615$5, 0, 24ll );
					FBSTRING* vr$471 = fb_StrConcat( &TMP$3615$5, (void*)vr$468, -1ll, (void*)"]", 2ll );
					fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$471, -1ll, 0 );
				}
				goto label$2759;
				label$2768:;
				{
					FBSTRING TMP$3616$5;
					FBSTRING TMP$3619$5;
					FBSTRING TMP$3620$5;
					__builtin_memset( &TMP$3616$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$3616$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$3616$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3616$5 );
					__builtin_memset( &TMP$3619$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$3619$5, -1ll, (void*)"FOUND AN ERROR : Memcopy v2 not a reg nor a var nor ofs nor ptr", 64ll, 0 );
					HWRITEASM64( &TMP$3619$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3619$5 );
					__builtin_memset( &TMP$3620$5, 0, 24ll );
					fb_StrAssign( (void*)&TMP$3620$5, -1ll, (void*)"", 1ll, 0 );
					HWRITEASM64( &TMP$3620$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3620$5 );
				}
				label$2770:;
				label$2759:;
			}
			int32 vr$486 = fb_StrCompare( (void*)&OP3$1, -1ll, (void*)"", 1ll );
			if( (int64)vr$486 == 0ll ) goto label$2772;
			{
				EMITOP3_OP4( &OP3$1 );
				label$2772:;
			}
			{
				if( BYTES$1 > 8ll ) goto label$2775;
				label$2776:;
				if( BYTES$1 == 3ll ) goto label$2775;
				label$2777:;
				if( BYTES$1 == 5ll ) goto label$2775;
				label$2778:;
				if( BYTES$1 == 6ll ) goto label$2775;
				label$2779:;
				if( BYTES$1 != 7ll ) goto label$2774;
				label$2775:;
				{
					MEMCOPY( BYTES$1, &OP2$1, &OP1$1, SRCTYP$1, DESTTYP$1 );
				}
				goto label$2773;
				label$2774:;
				{
					if( *(int64*)V2$1 != 1ll ) goto label$2782;
					{
						FBSTRING TMP$3621$6;
						FBSTRING TMP$3622$6;
						FBSTRING TMP$3623$6;
						FBSTRING TMP$3624$6;
						__builtin_memset( &TMP$3622$6, 0, 24ll );
						__builtin_memset( &TMP$3621$6, 0, 24ll );
						FBSTRING* vr$496 = fb_StrConcat( &TMP$3621$6, (void*)"mov rax, ", 10ll, (void*)&OP2$1, -1ll );
						fb_StrAssign( (void*)&TMP$3622$6, -1ll, (void*)vr$496, -1ll, 0 );
						HWRITEASM64( &TMP$3622$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3622$6 );
						__builtin_memset( &TMP$3623$6, 0, 24ll );
						FBSTRING* vr$502 = fb_StrConcat( &TMP$3623$6, (void*)"[", 2ll, (void*)REGTEMPO$1, 0ll );
						__builtin_memset( &TMP$3624$6, 0, 24ll );
						FBSTRING* vr$505 = fb_StrConcat( &TMP$3624$6, (void*)vr$502, -1ll, (void*)"]", 2ll );
						fb_StrAssign( (void*)&OP2$1, -1ll, (void*)vr$505, -1ll, 0 );
					}
					goto label$2781;
					label$2782:;
					if( *(int64*)V2$1 == 4ll ) goto label$2783;
					{
						FBSTRING TMP$3625$6;
						FBSTRING TMP$3626$6;
						__builtin_memset( &TMP$3626$6, 0, 24ll );
						__builtin_memset( &TMP$3625$6, 0, 24ll );
						FBSTRING* vr$512 = fb_StrConcat( &TMP$3625$6, (void*)"lea rax, ", 10ll, (void*)&OP2$1, -1ll );
						fb_StrAssign( (void*)&TMP$3626$6, -1ll, (void*)vr$512, -1ll, 0 );
						HWRITEASM64( &TMP$3626$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3626$6 );
						REGSRC$1 = 0;
					}
					label$2783:;
					label$2781:;
					if( *(int64*)V1$1 != 1ll ) goto label$2785;
					{
						FBSTRING TMP$3627$6;
						FBSTRING TMP$3628$6;
						FBSTRING TMP$3629$6;
						FBSTRING TMP$3630$6;
						FBSTRING TMP$3631$6;
						FBSTRING TMP$3632$6;
						char* vr$517 = REG_TEMPO(  );
						REGTEMPO$1 = vr$517;
						__builtin_memset( &TMP$3630$6, 0, 24ll );
						__builtin_memset( &TMP$3627$6, 0, 24ll );
						FBSTRING* vr$522 = fb_StrConcat( &TMP$3627$6, (void*)"mov ", 5ll, (void*)REGTEMPO$1, 0ll );
						__builtin_memset( &TMP$3628$6, 0, 24ll );
						FBSTRING* vr$525 = fb_StrConcat( &TMP$3628$6, (void*)vr$522, -1ll, (void*)", ", 3ll );
						__builtin_memset( &TMP$3629$6, 0, 24ll );
						FBSTRING* vr$528 = fb_StrConcat( &TMP$3629$6, (void*)vr$525, -1ll, (void*)&OP1$1, -1ll );
						fb_StrAssign( (void*)&TMP$3630$6, -1ll, (void*)vr$528, -1ll, 0 );
						HWRITEASM64( &TMP$3630$6, 0ll );
						fb_StrDelete( (FBSTRING*)&TMP$3630$6 );
						__builtin_memset( &TMP$3631$6, 0, 24ll );
						FBSTRING* vr$534 = fb_StrConcat( &TMP$3631$6, (void*)"[", 2ll, (void*)REGTEMPO$1, 0ll );
						__builtin_memset( &TMP$3632$6, 0, 24ll );
						FBSTRING* vr$537 = fb_StrConcat( &TMP$3632$6, (void*)vr$534, -1ll, (void*)"]", 2ll );
						fb_StrAssign( (void*)&OP1$1, -1ll, (void*)vr$537, -1ll, 0 );
					}
					label$2785:;
					label$2784:;
					{
						if( BYTES$1 != 1ll ) goto label$2787;
						label$2788:;
						{
							FBSTRING TMP$3634$7;
							FBSTRING TMP$3635$7;
							FBSTRING TMP$3636$7;
							__builtin_memset( &TMP$3636$7, 0, 24ll );
							__builtin_memset( &TMP$3634$7, 0, 24ll );
							FBSTRING* vr$544 = fb_StrConcat( &TMP$3634$7, (void*)"mov al, [", 10ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)REGSRC$1 << (3ll & 63ll))), 0ll );
							__builtin_memset( &TMP$3635$7, 0, 24ll );
							FBSTRING* vr$547 = fb_StrConcat( &TMP$3635$7, (void*)vr$544, -1ll, (void*)"]", 2ll );
							fb_StrAssign( (void*)&TMP$3636$7, -1ll, (void*)vr$547, -1ll, 0 );
							HWRITEASM64( &TMP$3636$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$3636$7 );
							if( *(int64*)V1$1 != 4ll ) goto label$2790;
							{
								FBSTRING TMP$3637$8;
								FBSTRING TMP$3638$8;
								FBSTRING TMP$3639$8;
								__builtin_memset( &TMP$3639$8, 0, 24ll );
								__builtin_memset( &TMP$3637$8, 0, 24ll );
								FBSTRING* vr$556 = fb_StrConcat( &TMP$3637$8, (void*)"mov BYTE PTR [", 15ll, (void*)&OP1$1, -1ll );
								__builtin_memset( &TMP$3638$8, 0, 24ll );
								FBSTRING* vr$559 = fb_StrConcat( &TMP$3638$8, (void*)vr$556, -1ll, (void*)"], al", 6ll );
								fb_StrAssign( (void*)&TMP$3639$8, -1ll, (void*)vr$559, -1ll, 0 );
								HWRITEASM64( &TMP$3639$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3639$8 );
							}
							goto label$2789;
							label$2790:;
							{
								FBSTRING TMP$3640$8;
								FBSTRING TMP$3641$8;
								FBSTRING TMP$3642$8;
								__builtin_memset( &TMP$3642$8, 0, 24ll );
								__builtin_memset( &TMP$3640$8, 0, 24ll );
								FBSTRING* vr$567 = fb_StrConcat( &TMP$3640$8, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
								__builtin_memset( &TMP$3641$8, 0, 24ll );
								FBSTRING* vr$570 = fb_StrConcat( &TMP$3641$8, (void*)vr$567, -1ll, (void*)", al", 5ll );
								fb_StrAssign( (void*)&TMP$3642$8, -1ll, (void*)vr$570, -1ll, 0 );
								HWRITEASM64( &TMP$3642$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3642$8 );
							}
							label$2789:;
						}
						goto label$2786;
						label$2787:;
						if( BYTES$1 != 2ll ) goto label$2791;
						label$2792:;
						{
							FBSTRING TMP$3644$7;
							FBSTRING TMP$3645$7;
							FBSTRING TMP$3646$7;
							__builtin_memset( &TMP$3646$7, 0, 24ll );
							__builtin_memset( &TMP$3644$7, 0, 24ll );
							FBSTRING* vr$579 = fb_StrConcat( &TMP$3644$7, (void*)"mov ax, [", 10ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)REGSRC$1 << (3ll & 63ll))), 0ll );
							__builtin_memset( &TMP$3645$7, 0, 24ll );
							FBSTRING* vr$582 = fb_StrConcat( &TMP$3645$7, (void*)vr$579, -1ll, (void*)"]", 2ll );
							fb_StrAssign( (void*)&TMP$3646$7, -1ll, (void*)vr$582, -1ll, 0 );
							HWRITEASM64( &TMP$3646$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$3646$7 );
							if( *(int64*)V1$1 != 4ll ) goto label$2794;
							{
								FBSTRING TMP$3647$8;
								FBSTRING TMP$3648$8;
								FBSTRING TMP$3649$8;
								__builtin_memset( &TMP$3649$8, 0, 24ll );
								__builtin_memset( &TMP$3647$8, 0, 24ll );
								FBSTRING* vr$591 = fb_StrConcat( &TMP$3647$8, (void*)"mov WORD PTR [", 15ll, (void*)&OP1$1, -1ll );
								__builtin_memset( &TMP$3648$8, 0, 24ll );
								FBSTRING* vr$594 = fb_StrConcat( &TMP$3648$8, (void*)vr$591, -1ll, (void*)"], ax", 6ll );
								fb_StrAssign( (void*)&TMP$3649$8, -1ll, (void*)vr$594, -1ll, 0 );
								HWRITEASM64( &TMP$3649$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3649$8 );
							}
							goto label$2793;
							label$2794:;
							{
								FBSTRING TMP$3650$8;
								FBSTRING TMP$3651$8;
								FBSTRING TMP$3652$8;
								__builtin_memset( &TMP$3652$8, 0, 24ll );
								__builtin_memset( &TMP$3650$8, 0, 24ll );
								FBSTRING* vr$602 = fb_StrConcat( &TMP$3650$8, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
								__builtin_memset( &TMP$3651$8, 0, 24ll );
								FBSTRING* vr$605 = fb_StrConcat( &TMP$3651$8, (void*)vr$602, -1ll, (void*)", ax", 5ll );
								fb_StrAssign( (void*)&TMP$3652$8, -1ll, (void*)vr$605, -1ll, 0 );
								HWRITEASM64( &TMP$3652$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3652$8 );
							}
							label$2793:;
						}
						goto label$2786;
						label$2791:;
						if( BYTES$1 != 4ll ) goto label$2795;
						label$2796:;
						{
							FBSTRING TMP$3654$7;
							FBSTRING TMP$3655$7;
							FBSTRING TMP$3656$7;
							__builtin_memset( &TMP$3656$7, 0, 24ll );
							__builtin_memset( &TMP$3654$7, 0, 24ll );
							FBSTRING* vr$614 = fb_StrConcat( &TMP$3654$7, (void*)"mov eax, [", 11ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)REGSRC$1 << (3ll & 63ll))), 0ll );
							__builtin_memset( &TMP$3655$7, 0, 24ll );
							FBSTRING* vr$617 = fb_StrConcat( &TMP$3655$7, (void*)vr$614, -1ll, (void*)"]", 2ll );
							fb_StrAssign( (void*)&TMP$3656$7, -1ll, (void*)vr$617, -1ll, 0 );
							HWRITEASM64( &TMP$3656$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$3656$7 );
							if( *(int64*)V1$1 != 4ll ) goto label$2798;
							{
								FBSTRING TMP$3657$8;
								FBSTRING TMP$3658$8;
								FBSTRING TMP$3659$8;
								__builtin_memset( &TMP$3659$8, 0, 24ll );
								__builtin_memset( &TMP$3657$8, 0, 24ll );
								FBSTRING* vr$626 = fb_StrConcat( &TMP$3657$8, (void*)"mov DWORD PTR [", 16ll, (void*)&OP1$1, -1ll );
								__builtin_memset( &TMP$3658$8, 0, 24ll );
								FBSTRING* vr$629 = fb_StrConcat( &TMP$3658$8, (void*)vr$626, -1ll, (void*)"], eax", 7ll );
								fb_StrAssign( (void*)&TMP$3659$8, -1ll, (void*)vr$629, -1ll, 0 );
								HWRITEASM64( &TMP$3659$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3659$8 );
							}
							goto label$2797;
							label$2798:;
							{
								FBSTRING TMP$3660$8;
								FBSTRING TMP$3661$8;
								FBSTRING TMP$3662$8;
								__builtin_memset( &TMP$3662$8, 0, 24ll );
								__builtin_memset( &TMP$3660$8, 0, 24ll );
								FBSTRING* vr$637 = fb_StrConcat( &TMP$3660$8, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
								__builtin_memset( &TMP$3661$8, 0, 24ll );
								FBSTRING* vr$640 = fb_StrConcat( &TMP$3661$8, (void*)vr$637, -1ll, (void*)", eax", 6ll );
								fb_StrAssign( (void*)&TMP$3662$8, -1ll, (void*)vr$640, -1ll, 0 );
								HWRITEASM64( &TMP$3662$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3662$8 );
							}
							label$2797:;
						}
						goto label$2786;
						label$2795:;
						if( BYTES$1 != 8ll ) goto label$2799;
						label$2800:;
						{
							FBSTRING TMP$3663$7;
							FBSTRING TMP$3664$7;
							FBSTRING TMP$3665$7;
							__builtin_memset( &TMP$3665$7, 0, 24ll );
							__builtin_memset( &TMP$3663$7, 0, 24ll );
							FBSTRING* vr$649 = fb_StrConcat( &TMP$3663$7, (void*)"mov rax, [", 11ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)REGSRC$1 << (3ll & 63ll))), 0ll );
							__builtin_memset( &TMP$3664$7, 0, 24ll );
							FBSTRING* vr$652 = fb_StrConcat( &TMP$3664$7, (void*)vr$649, -1ll, (void*)"]", 2ll );
							fb_StrAssign( (void*)&TMP$3665$7, -1ll, (void*)vr$652, -1ll, 0 );
							HWRITEASM64( &TMP$3665$7, 0ll );
							fb_StrDelete( (FBSTRING*)&TMP$3665$7 );
							if( *(int64*)V1$1 != 4ll ) goto label$2802;
							{
								FBSTRING TMP$3666$8;
								FBSTRING TMP$3667$8;
								FBSTRING TMP$3668$8;
								__builtin_memset( &TMP$3668$8, 0, 24ll );
								__builtin_memset( &TMP$3666$8, 0, 24ll );
								FBSTRING* vr$661 = fb_StrConcat( &TMP$3666$8, (void*)"mov QWORD PTR [", 16ll, (void*)&OP1$1, -1ll );
								__builtin_memset( &TMP$3667$8, 0, 24ll );
								FBSTRING* vr$664 = fb_StrConcat( &TMP$3667$8, (void*)vr$661, -1ll, (void*)"], rax", 7ll );
								fb_StrAssign( (void*)&TMP$3668$8, -1ll, (void*)vr$664, -1ll, 0 );
								HWRITEASM64( &TMP$3668$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3668$8 );
							}
							goto label$2801;
							label$2802:;
							{
								FBSTRING TMP$3669$8;
								FBSTRING TMP$3670$8;
								FBSTRING TMP$3671$8;
								__builtin_memset( &TMP$3671$8, 0, 24ll );
								__builtin_memset( &TMP$3669$8, 0, 24ll );
								FBSTRING* vr$672 = fb_StrConcat( &TMP$3669$8, (void*)"mov ", 5ll, (void*)&OP1$1, -1ll );
								__builtin_memset( &TMP$3670$8, 0, 24ll );
								FBSTRING* vr$675 = fb_StrConcat( &TMP$3670$8, (void*)vr$672, -1ll, (void*)", rax", 6ll );
								fb_StrAssign( (void*)&TMP$3671$8, -1ll, (void*)vr$675, -1ll, 0 );
								HWRITEASM64( &TMP$3671$8, 0ll );
								fb_StrDelete( (FBSTRING*)&TMP$3671$8 );
							}
							label$2801:;
						}
						label$2799:;
						label$2786:;
					}
				}
				label$2780:;
				label$2773:;
			}
		}
		label$2739:;
		label$2701:;
	}
	fb_StrDelete( (FBSTRING*)&INSTRUC$1 );
	fb_StrDelete( (FBSTRING*)&LNAME2$1 );
	fb_StrDelete( (FBSTRING*)&LNAME1$1 );
	fb_StrDelete( (FBSTRING*)&OP3$1 );
	fb_StrDelete( (FBSTRING*)&OP2$1 );
	fb_StrDelete( (FBSTRING*)&OP1$1 );
	label$2700:;
}

static void _EMITCOMMENT( char* TEXT$1 )
{
	label$2803:;
	label$2804:;
}

static void _EMITASMLINE( struct $9ASTASMTOK* ASMTOKENHEAD$1 )
{
	label$2805:;
	FBSTRING ASMLINE$1;
	__builtin_memset( &ASMLINE$1, 0, 24ll );
	struct $9ASTASMTOK* N$1;
	N$1 = ASMTOKENHEAD$1;
	label$2807:;
	if( N$1 == (struct $9ASTASMTOK*)0ull ) goto label$2808;
	{
		{
			$14AST_ASMTOKTYPE TMP$3672$3;
			TMP$3672$3 = *($14AST_ASMTOKTYPE*)N$1;
			if( TMP$3672$3 != 0ll ) goto label$2810;
			label$2811:;
			{
				FBSTRING TMP$3673$4;
				__builtin_memset( &TMP$3673$4, 0, 24ll );
				FBSTRING* vr$6 = fb_StrConcat( &TMP$3673$4, (void*)&ASMLINE$1, -1ll, *(void**)((uint8*)N$1 + 8ll), 0ll );
				fb_StrAssign( (void*)&ASMLINE$1, -1ll, (void*)vr$6, -1ll, 0 );
			}
			goto label$2809;
			label$2810:;
			if( TMP$3672$3 != 1ll ) goto label$2812;
			label$2813:;
			{
				int64 OFS$4;
				OFS$4 = *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)N$1 + 8ll) + 88ll);
				if( OFS$4 == 0ll ) goto label$2815;
				{
					FBSTRING* vr$10 = fb_LongintToStr( OFS$4 );
					fb_StrConcatAssign( (void*)&ASMLINE$1, -1ll, (void*)vr$10, -1ll, 0 );
					fb_StrConcatAssign( (void*)&ASMLINE$1, -1ll, (void*)"[rbp]", 6ll, 0 );
				}
				goto label$2814;
				label$2815:;
				{
					FBSTRING TMP$3674$5;
					char* vr$14 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)N$1 + 8ll) );
					__builtin_memset( &TMP$3674$5, 0, 24ll );
					FBSTRING* vr$18 = fb_StrConcat( &TMP$3674$5, (void*)&ASMLINE$1, -1ll, (void*)vr$14, 0ll );
					fb_StrAssign( (void*)&ASMLINE$1, -1ll, (void*)vr$18, -1ll, 0 );
				}
				label$2814:;
			}
			goto label$2809;
			label$2812:;
			{
				FBSTRING TMP$3675$4;
				FBSTRING TMP$3678$4;
				FBSTRING TMP$3679$4;
				__builtin_memset( &TMP$3675$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3675$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$3675$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3675$4 );
				__builtin_memset( &TMP$3678$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3678$4, -1ll, (void*)"FOUND AN ERROR : in emitasm token unknown", 42ll, 0 );
				HWRITEASM64( &TMP$3678$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3678$4 );
				__builtin_memset( &TMP$3679$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3679$4, -1ll, (void*)"", 1ll, 0 );
				HWRITEASM64( &TMP$3679$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3679$4 );
			}
			label$2816:;
			label$2809:;
		}
		N$1 = *(struct $9ASTASMTOK**)((uint8*)N$1 + 16ll);
	}
	goto label$2807;
	label$2808:;
	*(int64*)((uint8*)&CTXDBG$ + 8ll) = -1ll;
	HWRITEASM64( &ASMLINE$1, 0ll );
	fb_StrDelete( (FBSTRING*)&ASMLINE$1 );
	label$2806:;
}

static void _EMITVARINIBEGIN( struct $8FBSYMBOL* SYM$1 )
{
	FBSTRING TMP$3681$1;
	FBSTRING TMP$3685$1;
	FBSTRING TMP$3686$1;
	FBSTRING TMP$3687$1;
	FBSTRING TMP$3688$1;
	label$2817:;
	int64 ALIGN$1;
	__builtin_memset( &ALIGN$1, 0, 8ll );
	if( (*(int64*)((uint8*)SYM$1 + 56ll) & 511ll) != 20ll ) goto label$2820;
	{
		ALIGN$1 = *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)SYM$1 + 64ll) + 192ll);
	}
	goto label$2819;
	label$2820:;
	{
		if( (*(int64*)((uint8*)SYM$1 + 8ll) & 262144ll) == 0ll ) goto label$2822;
		{
			ALIGN$1 = *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + 736ll);
		}
		goto label$2821;
		label$2822:;
		{
			int64 TMP$3680$3;
			if( ((*(int64*)((uint8*)SYM$1 + 56ll) & 511ll) & 480ll) == 0ll ) goto label$2823;
			TMP$3680$3 = 24ll;
			goto label$3160;
			label$2823:;
			TMP$3680$3 = (*(int64*)((uint8*)SYM$1 + 56ll) & 511ll) & 31ll;
			label$3160:;
			ALIGN$1 = *(int64*)(((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$3680$3 * 56ll)) + 8ll);
		}
		label$2821:;
	}
	label$2819:;
	__builtin_memset( &TMP$3681$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$3681$1, -1ll, (void*)".data", 6ll, 0 );
	ASM_SECTION( &TMP$3681$1 );
	fb_StrDelete( (FBSTRING*)&TMP$3681$1 );
	if( (*(int64*)((uint8*)SYM$1 + 8ll) & 32ll) == 0ll ) goto label$2825;
	{
		FBSTRING TMP$3682$2;
		FBSTRING TMP$3683$2;
		__builtin_memset( &TMP$3683$2, 0, 24ll );
		char* vr$21 = SYMBGETMANGLEDNAME( SYM$1 );
		__builtin_memset( &TMP$3682$2, 0, 24ll );
		FBSTRING* vr$24 = fb_StrConcat( &TMP$3682$2, (void*)".globl ", 8ll, (void*)vr$21, 0ll );
		fb_StrAssign( (void*)&TMP$3683$2, -1ll, (void*)vr$24, -1ll, 0 );
		HWRITEASM64( &TMP$3683$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3683$2 );
	}
	label$2825:;
	label$2824:;
	__builtin_memset( &TMP$3686$1, 0, 24ll );
	FBSTRING* vr$29 = fb_LongintToStr( ALIGN$1 );
	__builtin_memset( &TMP$3685$1, 0, 24ll );
	FBSTRING* vr$32 = fb_StrConcat( &TMP$3685$1, (void*)".align ", 8ll, (void*)vr$29, -1ll );
	fb_StrAssign( (void*)&TMP$3686$1, -1ll, (void*)vr$32, -1ll, 0 );
	HWRITEASM64( &TMP$3686$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$3686$1 );
	__builtin_memset( &TMP$3688$1, 0, 24ll );
	char* vr$37 = SYMBGETMANGLEDNAME( SYM$1 );
	__builtin_memset( &TMP$3687$1, 0, 24ll );
	FBSTRING* vr$40 = fb_StrConcat( &TMP$3687$1, (void*)vr$37, 0ll, (void*)":", 2ll );
	fb_StrAssign( (void*)&TMP$3688$1, -1ll, (void*)vr$40, -1ll, 0 );
	HWRITEASM64( &TMP$3688$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$3688$1 );
	if( ((int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 16ll) != 0ll) | (int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 4ll) != 0ll)) == 0ll ) goto label$2827;
	{
	}
	goto label$2826;
	label$2827:;
	{
		if( *(int64*)((uint8*)&ENV$ + 296ll) != -1ll ) goto label$2829;
		{
			if( (*(int64*)((uint8*)SYM$1 + 8ll) & 57ll) == 0ll ) goto label$2831;
			{
				EDBGEMITGLOBALVAR_ASM64( SYM$1, 1ll );
			}
			goto label$2830;
			label$2831:;
			{
				EDBGEMITLOCALVAR_ASM64( SYM$1, (int64)-((*(int64*)((uint8*)SYM$1 + 8ll) & 2ll) != 0ll) );
			}
			label$2830:;
		}
		label$2829:;
		label$2828:;
	}
	label$2826:;
	label$2818:;
}

static void _EMITVARINII( struct $8FBSYMBOL* SYM$1, int64 VALUE$1 )
{
	FBSTRING TMP$3696$1;
	FBSTRING TMP$3697$1;
	FBSTRING TMP$3698$1;
	FBSTRING TMP$3699$1;
	FBSTRING TMP$3700$1;
	label$2832:;
	FBSTRING SIZ$1;
	__builtin_memset( &SIZ$1, 0, 24ll );
	int32 LGT$1;
	__builtin_memset( &LGT$1, 0, 4ll );
	int64 DTYPE$1;
	DTYPE$1 = *(int64*)((uint8*)SYM$1 + 56ll) & 511ll;
	if( (DTYPE$1 & 480ll) == 0ll ) goto label$2835;
	{
		DTYPE$1 = 8ll;
		label$2835:;
	}
	if( ((int64)-(DTYPE$1 == 1ll) & (int64)-(VALUE$1 != 0ll)) == 0ll ) goto label$2837;
	{
		VALUE$1 = 1ll;
	}
	label$2837:;
	label$2836:;
	{
		int64 TMP$3689$2;
		uint64 TMP$3690$2;
		if( (DTYPE$1 & 480ll) == 0ll ) goto label$2838;
		TMP$3689$2 = 24ll;
		goto label$3161;
		label$2838:;
		TMP$3689$2 = DTYPE$1 & 31ll;
		label$3161:;
		TMP$3690$2 = *(uint64*)(((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + (TMP$3689$2 * 56ll)) + 8ll);
		goto label$2840;
		label$2841:;
		{
			fb_StrAssign( (void*)&SIZ$1, -1ll, (void*)".byte", 6ll, 0 );
			LGT$1 = 2;
		}
		goto label$2839;
		label$2842:;
		{
			fb_StrAssign( (void*)&SIZ$1, -1ll, (void*)".word", 6ll, 0 );
			LGT$1 = 4;
		}
		goto label$2839;
		label$2843:;
		{
			fb_StrAssign( (void*)&SIZ$1, -1ll, (void*)".long", 6ll, 0 );
			LGT$1 = 8;
		}
		goto label$2839;
		label$2844:;
		{
			fb_StrAssign( (void*)&SIZ$1, -1ll, (void*)".quad", 6ll, 0 );
			LGT$1 = 16;
		}
		goto label$2839;
		label$2845:;
		{
			fb_StrAssign( (void*)&SIZ$1, -1ll, (void*)".quad", 6ll, 0 );
			LGT$1 = 8;
		}
		goto label$2839;
		label$2840:;
		static const void* tmp$4084[8ll] = {
			&&label$2841,
			&&label$2842,
			&&label$2845,
			&&label$2843,
			&&label$2845,
			&&label$2845,
			&&label$2845,
			&&label$2844,
		};
		if( (TMP$3690$2 - 1ull) > 7ull ) goto label$2845;
		goto *tmp$4084[TMP$3690$2 - 1ull];
		label$2839:;
	}
	__builtin_memset( &TMP$3700$1, 0, 24ll );
	FBSTRING* vr$17 = fb_LongintToStr( VALUE$1 );
	FBSTRING* vr$19 = fb_HEX_l( (uint64)VALUE$1 );
	FBSTRING* vr$20 = fb_RIGHT( (FBSTRING*)vr$19, (int64)LGT$1 );
	__builtin_memset( &TMP$3696$1, 0, 24ll );
	FBSTRING* vr$24 = fb_StrConcat( &TMP$3696$1, (void*)&SIZ$1, -1ll, (void*)" 0x", 4ll );
	__builtin_memset( &TMP$3697$1, 0, 24ll );
	FBSTRING* vr$27 = fb_StrConcat( &TMP$3697$1, (void*)vr$24, -1ll, (void*)vr$20, -1ll );
	__builtin_memset( &TMP$3698$1, 0, 24ll );
	FBSTRING* vr$30 = fb_StrConcat( &TMP$3698$1, (void*)vr$27, -1ll, (void*)" # ", 4ll );
	__builtin_memset( &TMP$3699$1, 0, 24ll );
	FBSTRING* vr$33 = fb_StrConcat( &TMP$3699$1, (void*)vr$30, -1ll, (void*)vr$17, -1ll );
	fb_StrAssign( (void*)&TMP$3700$1, -1ll, (void*)vr$33, -1ll, 0 );
	HWRITEASM64( &TMP$3700$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$3700$1 );
	fb_StrDelete( (FBSTRING*)&SIZ$1 );
	label$2833:;
}

static void _EMITVARINIF( struct $8FBSYMBOL* SYM$1, double VALUE$1 )
{
	FBSTRING TMP$3701$1;
	label$2846:;
	__builtin_memset( &TMP$3701$1, 0, 24ll );
	FBSTRING* vr$3 = HFLOATTOHEX_ASM64( VALUE$1, *(int64*)((uint8*)SYM$1 + 56ll) & 511ll, (int8)1 );
	fb_StrAssign( (void*)&TMP$3701$1, -1ll, (void*)vr$3, -1ll, 0 );
	HWRITEASM64( &TMP$3701$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$3701$1 );
	label$2847:;
}

static void _EMITPROCBEGIN( struct $8FBSYMBOL* PROC$1, struct $8FBSYMBOL* INITLABEL$1 )
{
	FBSTRING TMP$3709$1;
	FBSTRING TMP$3713$1;
	FBSTRING TMP$3714$1;
	FBSTRING TMP$3715$1;
	FBSTRING TMP$3716$1;
	label$2848:;
	IRHLEMITPROCBEGIN(  );
	fb_StrAssign( (void*)((uint8*)&CTX$ + 88ll), -1ll, (void*)"", 1ll, 0 );
	fb_StrAssign( (void*)((uint8*)&CTX$ + 136ll), -1ll, (void*)"", 1ll, 0 );
	*(struct $8FBSYMBOL**)((uint8*)&CTX$ + 384ll) = (struct $8FBSYMBOL*)0ull;
	*(struct $8FBSYMBOL**)((uint8*)&CTX$ + 392ll) = (struct $8FBSYMBOL*)0ull;
	*(int32*)((uint8*)&CTX$ + 232ll) = -2;
	*(int32*)((uint8*)&CTX$ + 236ll) = 0;
	*(int64*)((uint8*)&CTX$ + 432ll) = 0ll;
	*(boolean*)((uint8*)&CTX$ + 400ll) = (boolean)0ll;
	fb_StrAssign( (void*)((uint8*)&CTX$ + 112ll), -1ll, (void*)"", 1ll, 0 );
	*(int64*)((uint8*)&CTX$ + 8ll) = 3ll;
	*(boolean*)((uint8*)&CTX$ + 257ll) = (boolean)0ll;
	*(int64*)((uint8*)&CTXDBG$ + 8ll) = -1ll;
	*(int64*)&CTX$ = *(int64*)&CTX$ + 1ll;
	*(int64*)((uint8*)&CTX$ + 168ll) = 0ll;
	*(int64*)((uint8*)&CTX$ + 176ll) = 0ll;
	if( *(boolean*)((uint8*)&CTX$ + 416ll) == (boolean)0ll ) goto label$2851;
	{
		*(int64*)((uint8*)&CTX$ + 184ll) = 16ll;
		*(int64*)((uint8*)&CTX$ + 192ll) = 40ll;
	}
	goto label$2850;
	label$2851:;
	{
		*(int64*)((uint8*)&CTX$ + 184ll) = 8ll;
		*(int64*)((uint8*)&CTX$ + 192ll) = 56ll;
	}
	label$2850:;
	*(int64*)((uint8*)&CTX$ + 160ll) = 0ll;
	*(int32*)((uint8*)&CTX$ + 224ll) = 0;
	*(int64*)((uint8*)&CTX$ + 200ll) = 0ll;
	if( (*(int64*)((uint8*)PROC$1 + 8ll) & 256ll) == 0ll ) goto label$2853;
	{
		FBSTRING TMP$3703$2;
		FBSTRING TMP$3705$2;
		FBSTRING TMP$3706$2;
		FBSTRING TMP$3707$2;
		FBSTRING TMP$3708$2;
		__builtin_memset( &TMP$3703$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$3703$2, -1ll, (void*)".drectve", 9ll, 0 );
		ASM_SECTION( &TMP$3703$2 );
		fb_StrDelete( (FBSTRING*)&TMP$3703$2 );
		__builtin_memset( &TMP$3707$2, 0, 24ll );
		char* vr$11 = SYMBGETMANGLEDNAME( PROC$1 );
		__builtin_memset( &TMP$3705$2, 0, 24ll );
		FBSTRING* vr$14 = fb_StrConcat( &TMP$3705$2, (void*)".ascii \x22 -export:", 18ll, (void*)vr$11, 0ll );
		__builtin_memset( &TMP$3706$2, 0, 24ll );
		FBSTRING* vr$17 = fb_StrConcat( &TMP$3706$2, (void*)vr$14, -1ll, (void*)"\x22", 2ll );
		fb_StrAssign( (void*)&TMP$3707$2, -1ll, (void*)vr$17, -1ll, 0 );
		HWRITEASM64( &TMP$3707$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3707$2 );
		__builtin_memset( &TMP$3708$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$3708$2, -1ll, (void*)".text", 6ll, 0 );
		ASM_SECTION( &TMP$3708$2 );
		fb_StrDelete( (FBSTRING*)&TMP$3708$2 );
	}
	label$2853:;
	label$2852:;
	struct $8FBSYMBOL* PARAM$1;
	PARAM$1 = *(struct $8FBSYMBOL**)((uint8*)PROC$1 + 144ll);
	if( PARAM$1 == (struct $8FBSYMBOL*)0ull ) goto label$2855;
	{
		if( *(int64*)((uint8*)PARAM$1 + 96ll) != 4ll ) goto label$2857;
		{
			*(boolean*)((uint8*)&CTX$ + 400ll) = (boolean)1ll;
			if( *(boolean*)((uint8*)&CTX$ + 416ll) == (boolean)0ll ) goto label$2859;
			{
				*(int64*)((uint8*)&CTX$ + 192ll) = *(int64*)((uint8*)&CTX$ + 192ll) + 112ll;
			}
			label$2859:;
			label$2858:;
		}
		label$2857:;
		label$2856:;
	}
	label$2855:;
	label$2854:;
	__builtin_memset( &TMP$3709$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$3709$1, -1ll, (void*)".text", 6ll, 0 );
	HWRITEASM64( &TMP$3709$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$3709$1 );
	if( (*(int64*)((uint8*)PROC$1 + 8ll) & 64ll) != 0ll ) goto label$2861;
	{
		FBSTRING TMP$3710$2;
		FBSTRING TMP$3711$2;
		__builtin_memset( &TMP$3711$2, 0, 24ll );
		char* vr$35 = SYMBGETMANGLEDNAME( PROC$1 );
		__builtin_memset( &TMP$3710$2, 0, 24ll );
		FBSTRING* vr$38 = fb_StrConcat( &TMP$3710$2, (void*)".globl ", 8ll, (void*)vr$35, 0ll );
		fb_StrAssign( (void*)&TMP$3711$2, -1ll, (void*)vr$38, -1ll, 0 );
		HWRITEASM64( &TMP$3711$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3711$2 );
	}
	label$2861:;
	label$2860:;
	__builtin_memset( &TMP$3714$1, 0, 24ll );
	char* vr$43 = SYMBGETMANGLEDNAME( PROC$1 );
	__builtin_memset( &TMP$3713$1, 0, 24ll );
	FBSTRING* vr$46 = fb_StrConcat( &TMP$3713$1, (void*)".seh_proc ", 11ll, (void*)vr$43, 0ll );
	fb_StrAssign( (void*)&TMP$3714$1, -1ll, (void*)vr$46, -1ll, 0 );
	CFI_WINDOWS_ASM_CODE( &TMP$3714$1 );
	fb_StrDelete( (FBSTRING*)&TMP$3714$1 );
	*(int64*)&CTX$ = *(int64*)&CTX$ + -1ll;
	__builtin_memset( &TMP$3716$1, 0, 24ll );
	char* vr$52 = SYMBGETMANGLEDNAME( PROC$1 );
	__builtin_memset( &TMP$3715$1, 0, 24ll );
	FBSTRING* vr$55 = fb_StrConcat( &TMP$3715$1, (void*)vr$52, 0ll, (void*)":", 2ll );
	fb_StrAssign( (void*)&TMP$3716$1, -1ll, (void*)vr$55, -1ll, 0 );
	HWRITEASM64( &TMP$3716$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$3716$1 );
	if( *(int64*)((uint8*)&ENV$ + 360ll) != -1ll ) goto label$2863;
	{
		FBSTRING TMP$3718$2;
		__builtin_memset( &TMP$3718$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$3718$2, -1ll, (void*)".cfi_startproc", 15ll, 0 );
		HWRITEASM64( &TMP$3718$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3718$2 );
	}
	label$2863:;
	label$2862:;
	*(int64*)&CTX$ = *(int64*)&CTX$ + 1ll;
	if( *(int64*)((uint8*)&ENV$ + 296ll) != -1ll ) goto label$2865;
	{
		EDBGEMITPROCHEADER_ASM64( PROC$1 );
		label$2865:;
	}
	*(int64*)((uint8*)&CTX$ + 8ll) = 4ll;
	label$2849:;
}

static void _EMITPROCEND( struct $8FBSYMBOL* PROC$1, struct $8FBSYMBOL* INITLABEL$1, struct $8FBSYMBOL* EXITLABEL$1 )
{
	FBSTRING TMP$3900$1;
	FBSTRING TMP$3904$1;
	label$2866:;
	int32 IDX$1;
	__builtin_memset( &IDX$1, 0, 4ll );
	FBSTRING RESTREG$1;
	__builtin_memset( &RESTREG$1, 0, 24ll );
	FBSTRING LNAME$1;
	__builtin_memset( &LNAME$1, 0, 24ll );
	if( *(int64*)((uint8*)&CTX$ + 200ll) <= *(int64*)((uint8*)&CTX$ + 192ll) ) goto label$2869;
	{
		*(int64*)((uint8*)&CTX$ + 192ll) = *(int64*)((uint8*)&CTX$ + 200ll);
		label$2869:;
	}
	if( *(int64*)((uint8*)&CTX$ + 408ll) != 0ll ) goto label$2871;
	{
		if( *(int64*)((uint8*)&CTX$ + 160ll) == 0ll ) goto label$2873;
		{
			int64 TMP$3719$3;
			if( *(int64*)((uint8*)&CTX$ + 160ll) <= 4ll ) goto label$2874;
			TMP$3719$3 = *(int64*)((uint8*)&CTX$ + 160ll) << (3ll & 63ll);
			goto label$3162;
			label$2874:;
			TMP$3719$3 = 32ll;
			label$3162:;
			*(int64*)((uint8*)&CTX$ + 192ll) = *(int64*)((uint8*)&CTX$ + 192ll) + TMP$3719$3;
			label$2873:;
		}
	}
	goto label$2870;
	label$2871:;
	{
		*(int64*)((uint8*)&CTX$ + 192ll) = *(int64*)((uint8*)&CTX$ + 192ll) + (*(int64*)((uint8*)&CTX$ + 160ll) << (3ll & 63ll));
	}
	label$2870:;
	*(int64*)((uint8*)&CTX$ + 192ll) = (*(int64*)((uint8*)&CTX$ + 192ll) + 15ll) & -16ll;
	*(int64*)((uint8*)&CTX$ + 8ll) = 3ll;
	if( (*(int64*)((uint8*)PROC$1 + 16ll) & 128ll) != 0ll ) goto label$2876;
	{
		FBSTRING TMP$3721$2;
		FBSTRING TMP$3723$2;
		FBSTRING TMP$3729$2;
		FBSTRING TMP$3731$2;
		FBSTRING TMP$3797$2;
		FBSTRING TMP$3798$2;
		FBSTRING TMP$3800$2;
		__builtin_memset( &TMP$3721$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$3721$2, -1ll, (void*)"push rbp", 9ll, 0 );
		HWRITEASM64( &TMP$3721$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3721$2 );
		__builtin_memset( &TMP$3723$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$3723$2, -1ll, (void*)".seh_pushreg rbp", 17ll, 0 );
		CFI_WINDOWS_ASM_CODE( &TMP$3723$2 );
		fb_StrDelete( (FBSTRING*)&TMP$3723$2 );
		if( *(int64*)((uint8*)&ENV$ + 360ll) != -1ll ) goto label$2878;
		{
			FBSTRING TMP$3725$3;
			__builtin_memset( &TMP$3725$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$3725$3, -1ll, (void*)".cfi_def_cfa_offset 16", 23ll, 0 );
			HWRITEASM64( &TMP$3725$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3725$3 );
		}
		label$2878:;
		label$2877:;
		if( *(int64*)((uint8*)&ENV$ + 360ll) != -1ll ) goto label$2880;
		{
			FBSTRING TMP$3727$3;
			__builtin_memset( &TMP$3727$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$3727$3, -1ll, (void*)".cfi_offset 6, -16", 19ll, 0 );
			HWRITEASM64( &TMP$3727$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3727$3 );
		}
		label$2880:;
		label$2879:;
		__builtin_memset( &TMP$3729$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$3729$2, -1ll, (void*)"mov  rbp,rsp", 13ll, 0 );
		HWRITEASM64( &TMP$3729$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3729$2 );
		__builtin_memset( &TMP$3731$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$3731$2, -1ll, (void*)".seh_setframe rbp, 0", 21ll, 0 );
		CFI_WINDOWS_ASM_CODE( &TMP$3731$2 );
		fb_StrDelete( (FBSTRING*)&TMP$3731$2 );
		if( *(int64*)((uint8*)&ENV$ + 360ll) != -1ll ) goto label$2882;
		{
			FBSTRING TMP$3733$3;
			__builtin_memset( &TMP$3733$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$3733$3, -1ll, (void*)".cfi_def_cfa_register 6", 24ll, 0 );
			HWRITEASM64( &TMP$3733$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3733$3 );
		}
		label$2882:;
		label$2881:;
		if( *(int64*)((uint8*)&ENV$ + 352ll) != -1ll ) goto label$2884;
		{
			FBSTRING TMP$3735$3;
			FBSTRING TMP$3736$3;
			FBSTRING TMP$3738$3;
			FBSTRING TMP$3739$3;
			FBSTRING TMP$3741$3;
			FBSTRING TMP$3742$3;
			FBSTRING TMP$3743$3;
			FBSTRING TMP$3744$3;
			FBSTRING TMP$3746$3;
			FBSTRING TMP$3747$3;
			FBSTRING TMP$3748$3;
			FBSTRING TMP$3749$3;
			FBSTRING TMP$3750$3;
			FBSTRING TMP$3751$3;
			FBSTRING TMP$3753$3;
			FBSTRING TMP$3754$3;
			FBSTRING TMP$3786$3;
			FBSTRING TMP$3787$3;
			FBSTRING TMP$3788$3;
			__builtin_memset( &TMP$3736$3, 0, 24ll );
			FBSTRING* vr$40 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 192ll) );
			__builtin_memset( &TMP$3735$3, 0, 24ll );
			FBSTRING* vr$43 = fb_StrConcat( &TMP$3735$3, (void*)"add qword ptr $totalstacksize[rip], ", 37ll, (void*)vr$40, -1ll );
			fb_StrAssign( (void*)&TMP$3736$3, -1ll, (void*)vr$43, -1ll, 0 );
			HWRITEASM64( &TMP$3736$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3736$3 );
			__builtin_memset( &TMP$3739$3, 0, 24ll );
			FBSTRING* vr$48 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 440ll) );
			__builtin_memset( &TMP$3738$3, 0, 24ll );
			FBSTRING* vr$51 = fb_StrConcat( &TMP$3738$3, (void*)"cmp qword ptr $totalstacksize[rip], ", 37ll, (void*)vr$48, -1ll );
			fb_StrAssign( (void*)&TMP$3739$3, -1ll, (void*)vr$51, -1ll, 0 );
			HWRITEASM64( &TMP$3739$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3739$3 );
			__builtin_memset( &TMP$3741$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$3741$3, -1ll, (void*)".section .data", 15ll, 0 );
			HWRITEASM64( &TMP$3741$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3741$3 );
			__builtin_memset( &TMP$3742$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$3742$3, -1ll, (void*)".align 8", 9ll, 0 );
			HWRITEASM64( &TMP$3742$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3742$3 );
			FBSTRING LNAME1$3;
			char* vr$63 = SYMBUNIQUELABEL(  );
			fb_StrInit( (void*)&LNAME1$3, -1ll, (void*)vr$63, 0ll, 0 );
			__builtin_memset( &TMP$3744$3, 0, 24ll );
			__builtin_memset( &TMP$3743$3, 0, 24ll );
			FBSTRING* vr$69 = fb_StrConcat( &TMP$3743$3, (void*)&LNAME1$3, -1ll, (void*)":", 2ll );
			fb_StrAssign( (void*)&TMP$3744$3, -1ll, (void*)vr$69, -1ll, 0 );
			HWRITEASM64( &TMP$3744$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3744$3 );
			__builtin_memset( &TMP$3750$3, 0, 24ll );
			char* vr$74 = SYMBGETMANGLEDNAME( PROC$1 );
			__builtin_memset( &TMP$3746$3, 0, 24ll );
			FBSTRING* vr$78 = fb_StrConcat( &TMP$3746$3, (void*)".ascii \x22" "Aborting : stack overflow ", 35ll, (void*)((uint8*)&ENV$ + 608ll), 261ll );
			__builtin_memset( &TMP$3747$3, 0, 24ll );
			FBSTRING* vr$81 = fb_StrConcat( &TMP$3747$3, (void*)vr$78, -1ll, (void*)" ", 2ll );
			__builtin_memset( &TMP$3748$3, 0, 24ll );
			FBSTRING* vr$84 = fb_StrConcat( &TMP$3748$3, (void*)vr$81, -1ll, (void*)vr$74, 0ll );
			__builtin_memset( &TMP$3749$3, 0, 24ll );
			FBSTRING* vr$87 = fb_StrConcat( &TMP$3749$3, (void*)vr$84, -1ll, (void*)"\x5C" "0\x22", 4ll );
			fb_StrAssign( (void*)&TMP$3750$3, -1ll, (void*)vr$87, -1ll, 0 );
			HWRITEASM64( &TMP$3750$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3750$3 );
			__builtin_memset( &TMP$3751$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$3751$3, -1ll, (void*)".text", 6ll, 0 );
			HWRITEASM64( &TMP$3751$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3751$3 );
			FBSTRING LNAME$3;
			char* vr$95 = SYMBUNIQUELABEL(  );
			fb_StrInit( (void*)&LNAME$3, -1ll, (void*)vr$95, 0ll, 0 );
			__builtin_memset( &TMP$3754$3, 0, 24ll );
			__builtin_memset( &TMP$3753$3, 0, 24ll );
			FBSTRING* vr$101 = fb_StrConcat( &TMP$3753$3, (void*)"jl ", 4ll, (void*)&LNAME$3, -1ll );
			fb_StrAssign( (void*)&TMP$3754$3, -1ll, (void*)vr$101, -1ll, 0 );
			HWRITEASM64( &TMP$3754$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3754$3 );
			if( *(boolean*)((uint8*)&CTX$ + 416ll) == (boolean)0ll ) goto label$2886;
			{
				FBSTRING TMP$3756$4;
				FBSTRING TMP$3757$4;
				FBSTRING TMP$3758$4;
				FBSTRING TMP$3760$4;
				FBSTRING TMP$3762$4;
				FBSTRING TMP$3764$4;
				FBSTRING TMP$3766$4;
				FBSTRING TMP$3768$4;
				FBSTRING TMP$3770$4;
				__builtin_memset( &TMP$3758$4, 0, 24ll );
				__builtin_memset( &TMP$3756$4, 0, 24ll );
				FBSTRING* vr$109 = fb_StrConcat( &TMP$3756$4, (void*)"lea rdi, ", 10ll, (void*)&LNAME1$3, -1ll );
				__builtin_memset( &TMP$3757$4, 0, 24ll );
				FBSTRING* vr$112 = fb_StrConcat( &TMP$3757$4, (void*)vr$109, -1ll, (void*)"[rip]", 6ll );
				fb_StrAssign( (void*)&TMP$3758$4, -1ll, (void*)vr$112, -1ll, 0 );
				HWRITEASM64( &TMP$3758$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3758$4 );
				__builtin_memset( &TMP$3760$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3760$4, -1ll, (void*)"call fb_StrAllocTempDescZ", 26ll, 0 );
				HWRITEASM64( &TMP$3760$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3760$4 );
				__builtin_memset( &TMP$3762$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3762$4, -1ll, (void*)"xor edi, edi", 13ll, 0 );
				HWRITEASM64( &TMP$3762$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3762$4 );
				__builtin_memset( &TMP$3764$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3764$4, -1ll, (void*)"mov rsi, rax", 13ll, 0 );
				HWRITEASM64( &TMP$3764$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3764$4 );
				__builtin_memset( &TMP$3766$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3766$4, -1ll, (void*)"mov rdx, 1", 11ll, 0 );
				HWRITEASM64( &TMP$3766$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3766$4 );
				__builtin_memset( &TMP$3768$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3768$4, -1ll, (void*)"call fb_PrintString", 20ll, 0 );
				HWRITEASM64( &TMP$3768$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3768$4 );
				__builtin_memset( &TMP$3770$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3770$4, -1ll, (void*)"mov rdi, 4", 11ll, 0 );
				HWRITEASM64( &TMP$3770$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3770$4 );
			}
			goto label$2885;
			label$2886:;
			{
				FBSTRING TMP$3772$4;
				FBSTRING TMP$3773$4;
				FBSTRING TMP$3774$4;
				FBSTRING TMP$3775$4;
				FBSTRING TMP$3777$4;
				FBSTRING TMP$3779$4;
				FBSTRING TMP$3781$4;
				FBSTRING TMP$3782$4;
				FBSTRING TMP$3784$4;
				__builtin_memset( &TMP$3774$4, 0, 24ll );
				__builtin_memset( &TMP$3772$4, 0, 24ll );
				FBSTRING* vr$144 = fb_StrConcat( &TMP$3772$4, (void*)"lea rcx, ", 10ll, (void*)&LNAME1$3, -1ll );
				__builtin_memset( &TMP$3773$4, 0, 24ll );
				FBSTRING* vr$147 = fb_StrConcat( &TMP$3773$4, (void*)vr$144, -1ll, (void*)"[rip]", 6ll );
				fb_StrAssign( (void*)&TMP$3774$4, -1ll, (void*)vr$147, -1ll, 0 );
				HWRITEASM64( &TMP$3774$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3774$4 );
				__builtin_memset( &TMP$3775$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3775$4, -1ll, (void*)"call fb_StrAllocTempDescZ", 26ll, 0 );
				HWRITEASM64( &TMP$3775$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3775$4 );
				__builtin_memset( &TMP$3777$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3777$4, -1ll, (void*)"xor ecx, ecx", 13ll, 0 );
				HWRITEASM64( &TMP$3777$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3777$4 );
				__builtin_memset( &TMP$3779$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3779$4, -1ll, (void*)"mov rdx, rax", 13ll, 0 );
				HWRITEASM64( &TMP$3779$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3779$4 );
				__builtin_memset( &TMP$3781$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3781$4, -1ll, (void*)"mov r8d, 1", 11ll, 0 );
				HWRITEASM64( &TMP$3781$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3781$4 );
				__builtin_memset( &TMP$3782$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3782$4, -1ll, (void*)"call fb_PrintString", 20ll, 0 );
				HWRITEASM64( &TMP$3782$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3782$4 );
				__builtin_memset( &TMP$3784$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3784$4, -1ll, (void*)"mov rcx, 4", 11ll, 0 );
				HWRITEASM64( &TMP$3784$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3784$4 );
			}
			label$2885:;
			__builtin_memset( &TMP$3786$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$3786$3, -1ll, (void*)"call fb_End", 12ll, 0 );
			HWRITEASM64( &TMP$3786$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3786$3 );
			__builtin_memset( &TMP$3788$3, 0, 24ll );
			__builtin_memset( &TMP$3787$3, 0, 24ll );
			FBSTRING* vr$183 = fb_StrConcat( &TMP$3787$3, (void*)&LNAME$3, -1ll, (void*)":", 2ll );
			fb_StrAssign( (void*)&TMP$3788$3, -1ll, (void*)vr$183, -1ll, 0 );
			HWRITEASM64( &TMP$3788$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3788$3 );
			fb_StrDelete( (FBSTRING*)&LNAME$3 );
			fb_StrDelete( (FBSTRING*)&LNAME1$3 );
		}
		label$2884:;
		label$2883:;
		if( *(uint64*)((uint8*)&CTX$ + 192ll) < 2147483648ull ) goto label$2888;
		{
			FBSTRING TMP$3789$3;
			FBSTRING TMP$3790$3;
			FBSTRING TMP$3792$3;
			__builtin_memset( &TMP$3790$3, 0, 24ll );
			FBSTRING* vr$190 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 192ll) );
			__builtin_memset( &TMP$3789$3, 0, 24ll );
			FBSTRING* vr$193 = fb_StrConcat( &TMP$3789$3, (void*)"mov rax, ", 10ll, (void*)vr$190, -1ll );
			fb_StrAssign( (void*)&TMP$3790$3, -1ll, (void*)vr$193, -1ll, 0 );
			HWRITEASM64( &TMP$3790$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3790$3 );
			__builtin_memset( &TMP$3792$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$3792$3, -1ll, (void*)"sub rsp, rax", 13ll, 0 );
			HWRITEASM64( &TMP$3792$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3792$3 );
		}
		goto label$2887;
		label$2888:;
		{
			FBSTRING TMP$3794$3;
			FBSTRING TMP$3795$3;
			__builtin_memset( &TMP$3795$3, 0, 24ll );
			FBSTRING* vr$202 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 192ll) );
			__builtin_memset( &TMP$3794$3, 0, 24ll );
			FBSTRING* vr$205 = fb_StrConcat( &TMP$3794$3, (void*)"sub rsp, ", 10ll, (void*)vr$202, -1ll );
			fb_StrAssign( (void*)&TMP$3795$3, -1ll, (void*)vr$205, -1ll, 0 );
			HWRITEASM64( &TMP$3795$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3795$3 );
		}
		label$2887:;
		__builtin_memset( &TMP$3798$2, 0, 24ll );
		FBSTRING* vr$210 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 192ll) );
		__builtin_memset( &TMP$3797$2, 0, 24ll );
		FBSTRING* vr$213 = fb_StrConcat( &TMP$3797$2, (void*)".seh_stackalloc ", 17ll, (void*)vr$210, -1ll );
		fb_StrAssign( (void*)&TMP$3798$2, -1ll, (void*)vr$213, -1ll, 0 );
		CFI_WINDOWS_ASM_CODE( &TMP$3798$2 );
		fb_StrDelete( (FBSTRING*)&TMP$3798$2 );
		__builtin_memset( &TMP$3800$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$3800$2, -1ll, (void*)".seh_endprologue", 17ll, 0 );
		CFI_WINDOWS_ASM_CODE( &TMP$3800$2 );
		fb_StrDelete( (FBSTRING*)&TMP$3800$2 );
		if( *(uint64*)((uint8*)&CTX$ + 192ll) < *(uint64*)((uint8*)&CTX$ + 440ll) ) goto label$2890;
		{
			FBSTRING TMP$3803$3;
			FBSTRING TMP$3804$3;
			FBSTRING MSGEX$3;
			char* vr$221 = SYMBGETMANGLEDNAME( PROC$1 );
			__builtin_memset( &TMP$3803$3, 0, 24ll );
			FBSTRING* vr$224 = fb_StrConcat( &TMP$3803$3, (void*)" proc=", 7ll, (void*)vr$221, 0ll );
			__builtin_memset( &TMP$3804$3, 0, 24ll );
			FBSTRING* vr$227 = fb_StrConcat( &TMP$3804$3, (void*)vr$224, -1ll, (void*)" STACK OVERFLOW, review array size, use redim/shared or increase stack size", 76ll );
			fb_StrInit( (void*)&MSGEX$3, -1ll, (void*)vr$227, -1ll, 0 );
			ERRREPORTWARNEX( 24ll, (char*)0ull, -1ll, 1ll, (char*)*(char**)&MSGEX$3 );
			fb_StrDelete( (FBSTRING*)&MSGEX$3 );
		}
		label$2890:;
		label$2889:;
		if( ((int64)*(int32*)((uint8*)&CTX$ + 224ll) & 2ll) == 0ll ) goto label$2892;
		{
			FBSTRING TMP$3806$3;
			__builtin_memset( &TMP$3806$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$3806$3, -1ll, (void*)"mov QWORD PTR -8[rbp], rbx", 27ll, 0 );
			HWRITEASM64( &TMP$3806$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3806$3 );
			fb_StrConcatAssign( (void*)&RESTREG$1, -1ll, (void*)"mov  rbx, QWORD PTR -8[rbp]\x0A", 29ll, 0 );
			FBSTRING* vr$238 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
			fb_StrConcatAssign( (void*)&RESTREG$1, -1ll, (void*)vr$238, -1ll, 0 );
			label$2892:;
		}
		if( *(int64*)((uint8*)&CTX$ + 408ll) != 0ll ) goto label$2894;
		{
			if( ((int64)*(int32*)((uint8*)&CTX$ + 224ll) & 32ll) == 0ll ) goto label$2896;
			{
				FBSTRING TMP$3810$4;
				__builtin_memset( &TMP$3810$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3810$4, -1ll, (void*)"mov QWORD PTR -16[rbp], rdi", 28ll, 0 );
				HWRITEASM64( &TMP$3810$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3810$4 );
				fb_StrConcatAssign( (void*)&RESTREG$1, -1ll, (void*)"mov  rdi, QWORD PTR -16[rbp]\x0A", 30ll, 0 );
				FBSTRING* vr$248 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
				fb_StrConcatAssign( (void*)&RESTREG$1, -1ll, (void*)vr$248, -1ll, 0 );
				label$2896:;
			}
			if( ((int64)*(int32*)((uint8*)&CTX$ + 224ll) & 16ll) == 0ll ) goto label$2898;
			{
				FBSTRING TMP$3814$4;
				__builtin_memset( &TMP$3814$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3814$4, -1ll, (void*)"mov QWORD PTR -24[rbp], rsi", 28ll, 0 );
				HWRITEASM64( &TMP$3814$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3814$4 );
				fb_StrConcatAssign( (void*)&RESTREG$1, -1ll, (void*)"mov  rsi, QWORD PTR -24[rbp]\x0A", 30ll, 0 );
				FBSTRING* vr$258 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
				fb_StrConcatAssign( (void*)&RESTREG$1, -1ll, (void*)vr$258, -1ll, 0 );
				label$2898:;
			}
			if( ((int64)*(int32*)((uint8*)&CTX$ + 224ll) & 4096ll) == 0ll ) goto label$2900;
			{
				FBSTRING TMP$3818$4;
				__builtin_memset( &TMP$3818$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3818$4, -1ll, (void*)"mov QWORD PTR -32[rbp], r12", 28ll, 0 );
				HWRITEASM64( &TMP$3818$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3818$4 );
				fb_StrConcatAssign( (void*)&RESTREG$1, -1ll, (void*)"mov  r12, QWORD PTR -32[rbp]\x0A", 30ll, 0 );
				FBSTRING* vr$268 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
				fb_StrConcatAssign( (void*)&RESTREG$1, -1ll, (void*)vr$268, -1ll, 0 );
				label$2900:;
			}
			if( ((int64)*(int32*)((uint8*)&CTX$ + 224ll) & 8192ll) == 0ll ) goto label$2902;
			{
				FBSTRING TMP$3822$4;
				__builtin_memset( &TMP$3822$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3822$4, -1ll, (void*)"mov QWORD PTR -40[rbp], r13", 28ll, 0 );
				HWRITEASM64( &TMP$3822$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3822$4 );
				fb_StrConcatAssign( (void*)&RESTREG$1, -1ll, (void*)"mov  r13, QWORD PTR -40[rbp]\x0A", 30ll, 0 );
				FBSTRING* vr$278 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
				fb_StrConcatAssign( (void*)&RESTREG$1, -1ll, (void*)vr$278, -1ll, 0 );
				label$2902:;
			}
			if( ((int64)*(int32*)((uint8*)&CTX$ + 224ll) & 16384ll) == 0ll ) goto label$2904;
			{
				FBSTRING TMP$3826$4;
				__builtin_memset( &TMP$3826$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3826$4, -1ll, (void*)"mov QWORD PTR -48[rbp], r14", 28ll, 0 );
				HWRITEASM64( &TMP$3826$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3826$4 );
				fb_StrConcatAssign( (void*)&RESTREG$1, -1ll, (void*)"mov  r14, QWORD PTR -48[rbp]\x0A", 30ll, 0 );
				FBSTRING* vr$288 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
				fb_StrConcatAssign( (void*)&RESTREG$1, -1ll, (void*)vr$288, -1ll, 0 );
				label$2904:;
			}
			if( ((int64)*(int32*)((uint8*)&CTX$ + 224ll) & 32768ll) == 0ll ) goto label$2906;
			{
				FBSTRING TMP$3830$4;
				__builtin_memset( &TMP$3830$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3830$4, -1ll, (void*)"mov QWORD PTR -56[rbp], r15", 28ll, 0 );
				HWRITEASM64( &TMP$3830$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3830$4 );
				fb_StrConcatAssign( (void*)&RESTREG$1, -1ll, (void*)"mov  r15, QWORD PTR -56[rbp]\x0A", 30ll, 0 );
				FBSTRING* vr$298 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
				fb_StrConcatAssign( (void*)&RESTREG$1, -1ll, (void*)vr$298, -1ll, 0 );
				label$2906:;
			}
		}
		goto label$2893;
		label$2894:;
		{
			if( ((int64)*(int32*)((uint8*)&CTX$ + 224ll) & 4096ll) == 0ll ) goto label$2908;
			{
				FBSTRING TMP$3834$4;
				__builtin_memset( &TMP$3834$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3834$4, -1ll, (void*)"mov QWORD PTR -16[rbp], r12", 28ll, 0 );
				HWRITEASM64( &TMP$3834$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3834$4 );
				fb_StrConcatAssign( (void*)&RESTREG$1, -1ll, (void*)"mov  r12, QWORD PTR -16[rbp]\x0A", 30ll, 0 );
				FBSTRING* vr$308 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
				fb_StrConcatAssign( (void*)&RESTREG$1, -1ll, (void*)vr$308, -1ll, 0 );
				label$2908:;
			}
			if( ((int64)*(int32*)((uint8*)&CTX$ + 224ll) & 8192ll) == 0ll ) goto label$2910;
			{
				FBSTRING TMP$3838$4;
				__builtin_memset( &TMP$3838$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3838$4, -1ll, (void*)"mov QWORD PTR -24[rbp], r13", 28ll, 0 );
				HWRITEASM64( &TMP$3838$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3838$4 );
				fb_StrConcatAssign( (void*)&RESTREG$1, -1ll, (void*)"mov  r13, QWORD PTR -24[rbp]\x0A", 30ll, 0 );
				FBSTRING* vr$318 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
				fb_StrConcatAssign( (void*)&RESTREG$1, -1ll, (void*)vr$318, -1ll, 0 );
				label$2910:;
			}
			if( ((int64)*(int32*)((uint8*)&CTX$ + 224ll) & 16384ll) == 0ll ) goto label$2912;
			{
				FBSTRING TMP$3842$4;
				__builtin_memset( &TMP$3842$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3842$4, -1ll, (void*)"mov QWORD PTR -32[rbp], r14", 28ll, 0 );
				HWRITEASM64( &TMP$3842$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3842$4 );
				fb_StrConcatAssign( (void*)&RESTREG$1, -1ll, (void*)"mov  r14, QWORD PTR -32[rbp]\x0A", 30ll, 0 );
				FBSTRING* vr$328 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
				fb_StrConcatAssign( (void*)&RESTREG$1, -1ll, (void*)vr$328, -1ll, 0 );
				label$2912:;
			}
			if( ((int64)*(int32*)((uint8*)&CTX$ + 224ll) & 32768ll) == 0ll ) goto label$2914;
			{
				FBSTRING TMP$3846$4;
				__builtin_memset( &TMP$3846$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3846$4, -1ll, (void*)"mov QWORD PTR -40[rbp], r15", 28ll, 0 );
				HWRITEASM64( &TMP$3846$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3846$4 );
				fb_StrConcatAssign( (void*)&RESTREG$1, -1ll, (void*)"mov  r15, QWORD PTR -40[rbp]\x0A", 30ll, 0 );
				FBSTRING* vr$338 = fb_StrFill1( *(int64*)&CTX$ * 3ll, 32 );
				fb_StrConcatAssign( (void*)&RESTREG$1, -1ll, (void*)vr$338, -1ll, 0 );
				label$2914:;
			}
		}
		label$2893:;
		int32 vr$341 = fb_StrCompare( (void*)&RESTREG$1, -1ll, (void*)"", 1ll );
		if( (int64)vr$341 == 0ll ) goto label$2916;
		{
			FBSTRING* vr$344 = fb_RTRIM( (FBSTRING*)&RESTREG$1 );
			fb_StrAssign( (void*)&RESTREG$1, -1ll, (void*)vr$344, -1ll, 0 );
			label$2916:;
		}
	}
	label$2876:;
	label$2875:;
	if( *(boolean*)((uint8*)&CTX$ + 416ll) == (boolean)0ll ) goto label$2918;
	{
		if( *(boolean*)((uint8*)&CTX$ + 400ll) == (boolean)0ll ) goto label$2920;
		{
			FBSTRING TMP$3862$3;
			FBSTRING TMP$3863$3;
			FBSTRING TMP$3864$3;
			FBSTRING TMP$3881$3;
			FBSTRING TMP$3882$3;
			if( *(int64*)((uint8*)&CTX$ + 168ll) >= 1ll ) goto label$2922;
			{
				FBSTRING TMP$3850$4;
				__builtin_memset( &TMP$3850$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3850$4, -1ll, (void*)"mov QWORD PTR -152[rbp], rdi", 29ll, 0 );
				HWRITEASM64( &TMP$3850$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3850$4 );
				label$2922:;
			}
			if( *(int64*)((uint8*)&CTX$ + 168ll) >= 2ll ) goto label$2924;
			{
				FBSTRING TMP$3852$4;
				__builtin_memset( &TMP$3852$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3852$4, -1ll, (void*)"mov QWORD PTR -144[rbp], rsi", 29ll, 0 );
				HWRITEASM64( &TMP$3852$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3852$4 );
				label$2924:;
			}
			if( *(int64*)((uint8*)&CTX$ + 168ll) >= 3ll ) goto label$2926;
			{
				FBSTRING TMP$3854$4;
				__builtin_memset( &TMP$3854$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3854$4, -1ll, (void*)"mov QWORD PTR -136[rbp], rdx", 29ll, 0 );
				HWRITEASM64( &TMP$3854$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3854$4 );
				label$2926:;
			}
			if( *(int64*)((uint8*)&CTX$ + 168ll) >= 4ll ) goto label$2928;
			{
				FBSTRING TMP$3856$4;
				__builtin_memset( &TMP$3856$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3856$4, -1ll, (void*)"mov QWORD PTR -128[rbp], rcx", 29ll, 0 );
				HWRITEASM64( &TMP$3856$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3856$4 );
				label$2928:;
			}
			if( *(int64*)((uint8*)&CTX$ + 168ll) >= 5ll ) goto label$2930;
			{
				FBSTRING TMP$3858$4;
				__builtin_memset( &TMP$3858$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3858$4, -1ll, (void*)"mov QWORD PTR -120[rbp], r8", 28ll, 0 );
				HWRITEASM64( &TMP$3858$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3858$4 );
				label$2930:;
			}
			if( *(int64*)((uint8*)&CTX$ + 168ll) >= 6ll ) goto label$2932;
			{
				FBSTRING TMP$3860$4;
				__builtin_memset( &TMP$3860$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3860$4, -1ll, (void*)"mov QWORD PTR -112[rbp], r9", 28ll, 0 );
				HWRITEASM64( &TMP$3860$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3860$4 );
				label$2932:;
			}
			char* vr$370 = SYMBUNIQUELABEL(  );
			fb_StrAssign( (void*)&LNAME$1, -1ll, (void*)vr$370, 0ll, 0 );
			__builtin_memset( &TMP$3862$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$3862$3, -1ll, (void*)"test eax, eax", 14ll, 0 );
			HWRITEASM64( &TMP$3862$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3862$3 );
			__builtin_memset( &TMP$3864$3, 0, 24ll );
			__builtin_memset( &TMP$3863$3, 0, 24ll );
			FBSTRING* vr$380 = fb_StrConcat( &TMP$3863$3, (void*)"jz ", 4ll, (void*)&LNAME$1, -1ll );
			fb_StrAssign( (void*)&TMP$3864$3, -1ll, (void*)vr$380, -1ll, 0 );
			HWRITEASM64( &TMP$3864$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3864$3 );
			if( *(int64*)((uint8*)&CTX$ + 176ll) >= 1ll ) goto label$2934;
			{
				FBSTRING TMP$3866$4;
				__builtin_memset( &TMP$3866$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3866$4, -1ll, (void*)"movq QWORD PTR -104[rbp], xmm0", 31ll, 0 );
				HWRITEASM64( &TMP$3866$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3866$4 );
				label$2934:;
			}
			if( *(int64*)((uint8*)&CTX$ + 176ll) >= 2ll ) goto label$2936;
			{
				FBSTRING TMP$3868$4;
				__builtin_memset( &TMP$3868$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3868$4, -1ll, (void*)"movq QWORD PTR -96[rbp], xmm1", 30ll, 0 );
				HWRITEASM64( &TMP$3868$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3868$4 );
				label$2936:;
			}
			if( *(int64*)((uint8*)&CTX$ + 176ll) >= 3ll ) goto label$2938;
			{
				FBSTRING TMP$3870$4;
				__builtin_memset( &TMP$3870$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3870$4, -1ll, (void*)"movq QWORD PTR -88[rbp], xmm2", 30ll, 0 );
				HWRITEASM64( &TMP$3870$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3870$4 );
				label$2938:;
			}
			if( *(int64*)((uint8*)&CTX$ + 176ll) >= 4ll ) goto label$2940;
			{
				FBSTRING TMP$3872$4;
				__builtin_memset( &TMP$3872$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3872$4, -1ll, (void*)"movq QWORD PTR -80[rbp], xmm3", 30ll, 0 );
				HWRITEASM64( &TMP$3872$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3872$4 );
				label$2940:;
			}
			if( *(int64*)((uint8*)&CTX$ + 176ll) >= 5ll ) goto label$2942;
			{
				FBSTRING TMP$3874$4;
				__builtin_memset( &TMP$3874$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3874$4, -1ll, (void*)"movq QWORD PTR -72[rbp], xmm4", 30ll, 0 );
				HWRITEASM64( &TMP$3874$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3874$4 );
				label$2942:;
			}
			if( *(int64*)((uint8*)&CTX$ + 176ll) >= 6ll ) goto label$2944;
			{
				FBSTRING TMP$3876$4;
				__builtin_memset( &TMP$3876$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3876$4, -1ll, (void*)"movq QWORD PTR -64[rbp], xmm5", 30ll, 0 );
				HWRITEASM64( &TMP$3876$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3876$4 );
				label$2944:;
			}
			if( *(int64*)((uint8*)&CTX$ + 176ll) >= 7ll ) goto label$2946;
			{
				FBSTRING TMP$3878$4;
				__builtin_memset( &TMP$3878$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3878$4, -1ll, (void*)"movq QWORD PTR -56[rbp], xmm6", 30ll, 0 );
				HWRITEASM64( &TMP$3878$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3878$4 );
				label$2946:;
			}
			if( *(int64*)((uint8*)&CTX$ + 176ll) >= 8ll ) goto label$2948;
			{
				FBSTRING TMP$3880$4;
				__builtin_memset( &TMP$3880$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3880$4, -1ll, (void*)"movq QWORD PTR -48[rbp], xmm7", 30ll, 0 );
				HWRITEASM64( &TMP$3880$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3880$4 );
				label$2948:;
			}
			__builtin_memset( &TMP$3882$3, 0, 24ll );
			__builtin_memset( &TMP$3881$3, 0, 24ll );
			FBSTRING* vr$420 = fb_StrConcat( &TMP$3881$3, (void*)&LNAME$1, -1ll, (void*)":", 2ll );
			fb_StrAssign( (void*)&TMP$3882$3, -1ll, (void*)vr$420, -1ll, 0 );
			HWRITEASM64( &TMP$3882$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3882$3 );
		}
		label$2920:;
		label$2919:;
	}
	label$2918:;
	label$2917:;
	*(int64*)((uint8*)&CTX$ + 8ll) = 5ll;
	if( *(int64*)((uint8*)&ENV$ + 352ll) != -1ll ) goto label$2950;
	{
		FBSTRING TMP$3884$2;
		FBSTRING TMP$3885$2;
		__builtin_memset( &TMP$3885$2, 0, 24ll );
		FBSTRING* vr$425 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 192ll) );
		__builtin_memset( &TMP$3884$2, 0, 24ll );
		FBSTRING* vr$428 = fb_StrConcat( &TMP$3884$2, (void*)"sub qword ptr $totalstacksize[rip], ", 37ll, (void*)vr$425, -1ll );
		fb_StrAssign( (void*)&TMP$3885$2, -1ll, (void*)vr$428, -1ll, 0 );
		HWRITEASM64( &TMP$3885$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3885$2 );
	}
	label$2950:;
	label$2949:;
	if( *(int64*)((uint8*)&ENV$ + 296ll) != -1ll ) goto label$2952;
	{
		FBSTRING TMP$3886$2;
		FBSTRING TMP$3887$2;
		FBSTRING TMP$3888$2;
		FBSTRING TMP$3889$2;
		FBSTRING TMP$3890$2;
		FBSTRING TMP$3891$2;
		char* vr$432 = SYMBUNIQUELABEL(  );
		fb_StrAssign( (void*)&LNAME$1, -1ll, (void*)vr$432, 0ll, 0 );
		__builtin_memset( &TMP$3889$2, 0, 24ll );
		char* vr$435 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)&CTXDBG$ + 64ll) );
		__builtin_memset( &TMP$3887$2, 0, 24ll );
		FBSTRING* vr$439 = fb_StrConcat( &TMP$3887$2, (void*)&LNAME$1, -1ll, (void*)"-", 2ll );
		__builtin_memset( &TMP$3888$2, 0, 24ll );
		FBSTRING* vr$442 = fb_StrConcat( &TMP$3888$2, (void*)vr$439, -1ll, (void*)vr$435, 0ll );
		fb_StrAssign( (void*)&TMP$3889$2, -1ll, (void*)vr$442, -1ll, 0 );
		__builtin_memset( &TMP$3886$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$3886$2, -1ll, (void*)"", 1ll, 0 );
		DBG_ADDSTAB( &TMP$3886$2, (uint8)224u, (int16)0, &TMP$3889$2 );
		fb_StrDelete( (FBSTRING*)&TMP$3889$2 );
		fb_StrDelete( (FBSTRING*)&TMP$3886$2 );
		__builtin_memset( &TMP$3891$2, 0, 24ll );
		__builtin_memset( &TMP$3890$2, 0, 24ll );
		FBSTRING* vr$454 = fb_StrConcat( &TMP$3890$2, (void*)&LNAME$1, -1ll, (void*)":", 2ll );
		fb_StrAssign( (void*)&TMP$3891$2, -1ll, (void*)vr$454, -1ll, 0 );
		HWRITEASM64( &TMP$3891$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3891$2 );
	}
	label$2952:;
	label$2951:;
	if( (*(int64*)((uint8*)PROC$1 + 16ll) & 128ll) != 0ll ) goto label$2954;
	{
		FBSTRING TMP$3893$2;
		FBSTRING TMP$3895$2;
		int32 vr$461 = fb_StrCompare( (void*)&RESTREG$1, -1ll, (void*)"", 1ll );
		if( (int64)vr$461 == 0ll ) goto label$2956;
		{
			HWRITEASM64( &RESTREG$1, 0ll );
			label$2956:;
		}
		__builtin_memset( &TMP$3893$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$3893$2, -1ll, (void*)"mov rsp,rbp", 12ll, 0 );
		HWRITEASM64( &TMP$3893$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3893$2 );
		__builtin_memset( &TMP$3895$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$3895$2, -1ll, (void*)"pop rbp", 8ll, 0 );
		HWRITEASM64( &TMP$3895$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3895$2 );
		if( *(int64*)((uint8*)&ENV$ + 360ll) != -1ll ) goto label$2958;
		{
			FBSTRING TMP$3897$3;
			__builtin_memset( &TMP$3897$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$3897$3, -1ll, (void*)".cfi_restore 6", 15ll, 0 );
			HWRITEASM64( &TMP$3897$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3897$3 );
		}
		label$2958:;
		label$2957:;
		if( *(int64*)((uint8*)&ENV$ + 360ll) != -1ll ) goto label$2960;
		{
			FBSTRING TMP$3899$3;
			__builtin_memset( &TMP$3899$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$3899$3, -1ll, (void*)".cfi_def_cfa 7, 8", 18ll, 0 );
			HWRITEASM64( &TMP$3899$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3899$3 );
		}
		label$2960:;
		label$2959:;
	}
	label$2954:;
	label$2953:;
	__builtin_memset( &TMP$3900$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$3900$1, -1ll, (void*)"ret", 4ll, 0 );
	HWRITEASM64( &TMP$3900$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$3900$1 );
	if( *(int64*)((uint8*)&ENV$ + 360ll) != -1ll ) goto label$2962;
	{
		FBSTRING TMP$3902$2;
		__builtin_memset( &TMP$3902$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$3902$2, -1ll, (void*)".cfi_endproc", 13ll, 0 );
		HWRITEASM64( &TMP$3902$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3902$2 );
	}
	label$2962:;
	label$2961:;
	__builtin_memset( &TMP$3904$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$3904$1, -1ll, (void*)".seh_endproc", 13ll, 0 );
	CFI_WINDOWS_ASM_CODE( &TMP$3904$1 );
	fb_StrDelete( (FBSTRING*)&TMP$3904$1 );
	if( *(int64*)((uint8*)&ENV$ + 296ll) != -1ll ) goto label$2964;
	{
		FBSTRING TMP$3905$2;
		FBSTRING TMP$3906$2;
		FBSTRING TMP$3907$2;
		FBSTRING TMP$3908$2;
		FBSTRING TMP$3909$2;
		FBSTRING TMP$3910$2;
		FBSTRING LNAME$2;
		char* vr$492 = SYMBUNIQUELABEL(  );
		fb_StrInit( (void*)&LNAME$2, -1ll, (void*)vr$492, 0ll, 0 );
		__builtin_memset( &TMP$3908$2, 0, 24ll );
		char* vr$495 = SYMBGETMANGLEDNAME( *(struct $8FBSYMBOL**)((uint8*)&CTXDBG$ + 64ll) );
		__builtin_memset( &TMP$3906$2, 0, 24ll );
		FBSTRING* vr$499 = fb_StrConcat( &TMP$3906$2, (void*)&LNAME$2, -1ll, (void*)"-", 2ll );
		__builtin_memset( &TMP$3907$2, 0, 24ll );
		FBSTRING* vr$502 = fb_StrConcat( &TMP$3907$2, (void*)vr$499, -1ll, (void*)vr$495, 0ll );
		fb_StrAssign( (void*)&TMP$3908$2, -1ll, (void*)vr$502, -1ll, 0 );
		__builtin_memset( &TMP$3905$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$3905$2, -1ll, (void*)"", 1ll, 0 );
		DBG_ADDSTAB( &TMP$3905$2, (uint8)36u, (int16)0, &TMP$3908$2 );
		fb_StrDelete( (FBSTRING*)&TMP$3908$2 );
		fb_StrDelete( (FBSTRING*)&TMP$3905$2 );
		__builtin_memset( &TMP$3910$2, 0, 24ll );
		__builtin_memset( &TMP$3909$2, 0, 24ll );
		FBSTRING* vr$514 = fb_StrConcat( &TMP$3909$2, (void*)&LNAME$2, -1ll, (void*)":", 2ll );
		fb_StrAssign( (void*)&TMP$3910$2, -1ll, (void*)vr$514, -1ll, 0 );
		HWRITEASM64( &TMP$3910$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3910$2 );
		fb_StrDelete( (FBSTRING*)&LNAME$2 );
	}
	label$2964:;
	label$2963:;
	*(int64*)&CTX$ = *(int64*)&CTX$ + -1ll;
	FLISTRESET( (struct $6TFLIST*)((uint8*)&CTX$ + 264ll) );
	*(int32*)((uint8*)&CTX$ + 376ll) = 0;
	IRHLEMITPROCEND(  );
	fb_StrConcatAssign( (void*)((uint8*)&CTX$ + 40ll), -1ll, (void*)((uint8*)&CTX$ + 88ll), -1ll, 0 );
	fb_StrConcatAssign( (void*)((uint8*)&CTX$ + 40ll), -1ll, (void*)((uint8*)&CTX$ + 112ll), -1ll, 0 );
	fb_StrConcatAssign( (void*)((uint8*)&CTX$ + 40ll), -1ll, (void*)((uint8*)&CTX$ + 136ll), -1ll, 0 );
	*(int64*)((uint8*)&CTX$ + 8ll) = 0ll;
	fb_StrDelete( (FBSTRING*)&LNAME$1 );
	fb_StrDelete( (FBSTRING*)&RESTREG$1 );
	label$2867:;
}

static void _EMITVARINIOFS( struct $8FBSYMBOL* SYM$1, struct $8FBSYMBOL* RHS$1, int64 OFS$1 )
{
	label$2965:;
	FBSTRING S$1;
	char* vr$0 = SYMBGETMANGLEDNAME( RHS$1 );
	fb_StrInit( (void*)&S$1, -1ll, (void*)vr$0, 0ll, 0 );
	int64 SYMDTYPE$1;
	SYMDTYPE$1 = *(int64*)((uint8*)SYM$1 + 56ll) & 511ll;
	int64 PTRDTYPE$1;
	PTRDTYPE$1 = ((((*(int64*)((uint8*)RHS$1 + 56ll) & 511ll) & 31ll) | (((*(int64*)((uint8*)RHS$1 + 56ll) & 511ll) & 480ll) + 32ll)) | (((*(int64*)((uint8*)RHS$1 + 56ll) & 511ll) & 261632ll) << (1ll & 63ll))) | ((*(int64*)((uint8*)RHS$1 + 56ll) & 511ll) & 32505856ll);
	if( OFS$1 == 0ll ) goto label$2968;
	{
		FBSTRING TMP$3911$2;
		FBSTRING TMP$3912$2;
		FBSTRING TMP$3913$2;
		FBSTRING TMP$3914$2;
		__builtin_memset( &TMP$3914$2, 0, 24ll );
		FBSTRING* vr$22 = fb_LongintToStr( OFS$1 );
		__builtin_memset( &TMP$3911$2, 0, 24ll );
		FBSTRING* vr$26 = fb_StrConcat( &TMP$3911$2, (void*)".quad ", 7ll, (void*)&S$1, -1ll );
		__builtin_memset( &TMP$3912$2, 0, 24ll );
		FBSTRING* vr$29 = fb_StrConcat( &TMP$3912$2, (void*)vr$26, -1ll, (void*)"+", 2ll );
		__builtin_memset( &TMP$3913$2, 0, 24ll );
		FBSTRING* vr$32 = fb_StrConcat( &TMP$3913$2, (void*)vr$29, -1ll, (void*)vr$22, -1ll );
		fb_StrAssign( (void*)&TMP$3914$2, -1ll, (void*)vr$32, -1ll, 0 );
		HWRITEASM64( &TMP$3914$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3914$2 );
	}
	goto label$2967;
	label$2968:;
	{
		FBSTRING TMP$3915$2;
		FBSTRING TMP$3916$2;
		__builtin_memset( &TMP$3916$2, 0, 24ll );
		__builtin_memset( &TMP$3915$2, 0, 24ll );
		FBSTRING* vr$40 = fb_StrConcat( &TMP$3915$2, (void*)".quad ", 7ll, (void*)&S$1, -1ll );
		fb_StrAssign( (void*)&TMP$3916$2, -1ll, (void*)vr$40, -1ll, 0 );
		HWRITEASM64( &TMP$3916$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3916$2 );
	}
	label$2967:;
	fb_StrDelete( (FBSTRING*)&S$1 );
	label$2966:;
}

static void _EMITVARINIPAD( int64 BYTES$1 )
{
	FBSTRING TMP$3918$1;
	FBSTRING TMP$3919$1;
	label$2969:;
	__builtin_memset( &TMP$3919$1, 0, 24ll );
	FBSTRING* vr$1 = fb_LongintToStr( BYTES$1 );
	__builtin_memset( &TMP$3918$1, 0, 24ll );
	FBSTRING* vr$4 = fb_StrConcat( &TMP$3918$1, (void*)".zero ", 7ll, (void*)vr$1, -1ll );
	fb_StrAssign( (void*)&TMP$3919$1, -1ll, (void*)vr$4, -1ll, 0 );
	HWRITEASM64( &TMP$3919$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$3919$1 );
	label$2970:;
}

static void _EMITFBCTINFSTRING( char* S$1 )
{
	FBSTRING TMP$3921$1;
	FBSTRING TMP$3922$1;
	FBSTRING TMP$3923$1;
	FBSTRING TMP$3924$1;
	label$2971:;
	__builtin_memset( &TMP$3921$1, 0, 24ll );
	fb_StrAssign( (void*)&TMP$3921$1, -1ll, (void*)".fbctinf", 9ll, 0 );
	ASM_SECTION( &TMP$3921$1 );
	fb_StrDelete( (FBSTRING*)&TMP$3921$1 );
	__builtin_memset( &TMP$3924$1, 0, 24ll );
	__builtin_memset( &TMP$3922$1, 0, 24ll );
	FBSTRING* vr$7 = fb_StrConcat( &TMP$3922$1, (void*)".ascii \x22", 9ll, (void*)S$1, 0ll );
	__builtin_memset( &TMP$3923$1, 0, 24ll );
	FBSTRING* vr$10 = fb_StrConcat( &TMP$3923$1, (void*)vr$7, -1ll, (void*)"\x5C" "0\x22", 4ll );
	fb_StrAssign( (void*)&TMP$3924$1, -1ll, (void*)vr$10, -1ll, 0 );
	HWRITEASM64( &TMP$3924$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$3924$1 );
	label$2972:;
}

static void _EMITVARINISTR( int64 VARLENGTH$1, char* LITERAL$1, int64 LITLENGTH$1 )
{
	FBSTRING TMP$3928$1;
	FBSTRING TMP$3929$1;
	FBSTRING TMP$3930$1;
	label$2973:;
	char* S$1;
	__builtin_memset( &S$1, 0, 8ll );
	if( VARLENGTH$1 != 0ll ) goto label$2976;
	{
		FBSTRING TMP$3926$2;
		__builtin_memset( &TMP$3926$2, 0, 24ll );
		fb_StrAssign( (void*)&TMP$3926$2, -1ll, (void*)".byte 0 # 0", 12ll, 0 );
		HWRITEASM64( &TMP$3926$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3926$2 );
		goto label$2974;
	}
	label$2976:;
	label$2975:;
	if( VARLENGTH$1 >= LITLENGTH$1 ) goto label$2978;
	{
		FBSTRING TMP$3927$2;
		ERRREPORTWARN( 9ll, (char*)0ull, 1ll, (char*)0ull );
		__builtin_memset( &TMP$3927$2, 0, 24ll );
		FBSTRING* vr$6 = fb_StrAllocTempDescZ( (char*)LITERAL$1 );
		FBSTRING* vr$7 = fb_LEFT( (FBSTRING*)vr$6, VARLENGTH$1 );
		fb_StrAssign( (void*)&TMP$3927$2, -1ll, (void*)vr$7, -1ll, 0 );
		char* vr$9 = HESCAPE( (char*)*(char**)&TMP$3927$2 );
		S$1 = vr$9;
		fb_StrDelete( (FBSTRING*)&TMP$3927$2 );
	}
	goto label$2977;
	label$2978:;
	{
		char* vr$11 = HESCAPE( (char*)LITERAL$1 );
		S$1 = vr$11;
	}
	label$2977:;
	__builtin_memset( &TMP$3930$1, 0, 24ll );
	__builtin_memset( &TMP$3928$1, 0, 24ll );
	FBSTRING* vr$15 = fb_StrConcat( &TMP$3928$1, (void*)".ascii \x22", 9ll, (void*)S$1, 0ll );
	__builtin_memset( &TMP$3929$1, 0, 24ll );
	FBSTRING* vr$18 = fb_StrConcat( &TMP$3929$1, (void*)vr$15, -1ll, (void*)"\x5C" "0\x22", 4ll );
	fb_StrAssign( (void*)&TMP$3930$1, -1ll, (void*)vr$18, -1ll, 0 );
	HWRITEASM64( &TMP$3930$1, 0ll );
	fb_StrDelete( (FBSTRING*)&TMP$3930$1 );
	if( LITLENGTH$1 >= VARLENGTH$1 ) goto label$2980;
	{
		FBSTRING TMP$3931$2;
		FBSTRING TMP$3932$2;
		__builtin_memset( &TMP$3932$2, 0, 24ll );
		FBSTRING* vr$24 = fb_LongintToStr( VARLENGTH$1 - LITLENGTH$1 );
		__builtin_memset( &TMP$3931$2, 0, 24ll );
		FBSTRING* vr$27 = fb_StrConcat( &TMP$3931$2, (void*)".zero ", 7ll, (void*)vr$24, -1ll );
		fb_StrAssign( (void*)&TMP$3932$2, -1ll, (void*)vr$27, -1ll, 0 );
		HWRITEASM64( &TMP$3932$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3932$2 );
	}
	label$2980:;
	label$2979:;
	label$2974:;
}

static void _EMITVARINIWSTR( int64 TOTLGT$1, uint32* LITSTR$1, int64 LITLGT$1 )
{
	FBSTRING TMP$3941$1;
	FBSTRING TMP$3942$1;
	FBSTRING TMP$3943$1;
	label$2981:;
	char* S$1;
	__builtin_memset( &S$1, 0, 8ll );
	FBSTRING OSTR$1;
	__builtin_memset( &OSTR$1, 0, 24ll );
	int64 WCLEN$1;
	WCLEN$1 = *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + 400ll);
	if( TOTLGT$1 != 0ll ) goto label$2984;
	{
		if( WCLEN$1 != 2ll ) goto label$2986;
		{
			FBSTRING TMP$3935$3;
			__builtin_memset( &TMP$3935$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$3935$3, -1ll, (void*)".word 0", 8ll, 0 );
			HWRITEASM64( &TMP$3935$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3935$3 );
		}
		goto label$2985;
		label$2986:;
		{
			FBSTRING TMP$3937$3;
			__builtin_memset( &TMP$3937$3, 0, 24ll );
			fb_StrAssign( (void*)&TMP$3937$3, -1ll, (void*)".long 0", 8ll, 0 );
			HWRITEASM64( &TMP$3937$3, 0ll );
			fb_StrDelete( (FBSTRING*)&TMP$3937$3 );
		}
		label$2985:;
		fb_StrDelete( (FBSTRING*)&OSTR$1 );
		goto label$2982;
	}
	label$2984:;
	label$2983:;
	if( LITLGT$1 <= TOTLGT$1 ) goto label$2988;
	{
		uint32* TMP$3938$2;
		ERRREPORTWARN( 9ll, (char*)0ull, 1ll, (char*)0ull );
		uint32* vr$11 = fb_WstrLeft( (uint32*)LITSTR$1, TOTLGT$1 );
		TMP$3938$2 = vr$11;
		char* vr$12 = HESCAPEW( (uint32*)TMP$3938$2 );
		S$1 = vr$12;
		fb_WstrDelete( (uint32*)TMP$3938$2 );
	}
	goto label$2987;
	label$2988:;
	{
		char* vr$13 = HESCAPEW( (uint32*)LITSTR$1 );
		S$1 = vr$13;
	}
	label$2987:;
	FBSTRING* vr$15 = fb_StrAllocTempDescZEx( (char*)"\x5C" "0\x5C" "0\x5C" "0\x5C" "0", 8ll );
	FBSTRING* vr$16 = fb_LEFT( (FBSTRING*)vr$15, *(int64*)((int64)(struct $13SYMB_DATATYPE*)SYMB_DTYPETB$ + 400ll) << (1ll & 63ll) );
	__builtin_memset( &TMP$3941$1, 0, 24ll );
	FBSTRING* vr$19 = fb_StrConcat( &TMP$3941$1, (void*)".ascii \x22", 9ll, (void*)S$1, 0ll );
	__builtin_memset( &TMP$3942$1, 0, 24ll );
	FBSTRING* vr$22 = fb_StrConcat( &TMP$3942$1, (void*)vr$19, -1ll, (void*)vr$16, -1ll );
	__builtin_memset( &TMP$3943$1, 0, 24ll );
	FBSTRING* vr$25 = fb_StrConcat( &TMP$3943$1, (void*)vr$22, -1ll, (void*)"\x22", 2ll );
	fb_StrAssign( (void*)&OSTR$1, -1ll, (void*)vr$25, -1ll, 0 );
	HWRITEASM64( &OSTR$1, 0ll );
	if( LITLGT$1 >= TOTLGT$1 ) goto label$2990;
	{
		FBSTRING TMP$3944$2;
		FBSTRING TMP$3945$2;
		__builtin_memset( &TMP$3945$2, 0, 24ll );
		FBSTRING* vr$31 = fb_LongintToStr( (TOTLGT$1 - LITLGT$1) * WCLEN$1 );
		__builtin_memset( &TMP$3944$2, 0, 24ll );
		FBSTRING* vr$34 = fb_StrConcat( &TMP$3944$2, (void*)".zero ", 7ll, (void*)vr$31, -1ll );
		fb_StrAssign( (void*)&TMP$3945$2, -1ll, (void*)vr$34, -1ll, 0 );
		HWRITEASM64( &TMP$3945$2, 0ll );
		fb_StrDelete( (FBSTRING*)&TMP$3945$2 );
	}
	label$2990:;
	label$2989:;
	fb_StrDelete( (FBSTRING*)&OSTR$1 );
	label$2982:;
}

static void _EMITMACRO( int64 OP$1, struct $6IRVREG* V1$1, struct $6IRVREG* V2$1, struct $6IRVREG* VR$1 )
{
	label$2991:;
	struct $6IRVREG* TEMPO1$1;
	__builtin_memset( &TEMPO1$1, 0, 8ll );
	struct $6IRVREG* TEMPO2$1;
	__builtin_memset( &TEMPO2$1, 0, 8ll );
	int32 SAVEREG$1;
	__builtin_memset( &SAVEREG$1, 0, 4ll );
	int32 STARTARG$1;
	__builtin_memset( &STARTARG$1, 0, 4ll );
	int32 VREG$1;
	__builtin_memset( &VREG$1, 0, 4ll );
	FBSTRING REGVALIST$1;
	__builtin_memset( &REGVALIST$1, 0, 24ll );
	FBSTRING LNAME1$1;
	__builtin_memset( &LNAME1$1, 0, 24ll );
	FBSTRING LNAME2$1;
	__builtin_memset( &LNAME2$1, 0, 24ll );
	if( *(int64*)((uint8*)&CTX$ + 408ll) != 0ll ) goto label$2994;
	{
		*($11FB_DATATYPE*)((uint8*)V1$1 + 8ll) = 8ll;
	}
	label$2994:;
	label$2993:;
	{
		if( OP$1 != 109ll ) goto label$2996;
		label$2997:;
		{
			struct $6IRVREG* vr$9 = IRHLALLOCVREG( 8ll, (struct $8FBSYMBOL*)0ull );
			TEMPO1$1 = vr$9;
			REG_FINDFREE( (int32)*(int64*)((uint8*)TEMPO1$1 + 24ll), -1ll );
			if( *(boolean*)((uint8*)&CTX$ + 416ll) == (boolean)0ll ) goto label$2999;
			{
				FBSTRING TMP$3947$4;
				FBSTRING TMP$3948$4;
				FBSTRING TMP$3949$4;
				FBSTRING TMP$3950$4;
				FBSTRING TMP$3952$4;
				FBSTRING TMP$3953$4;
				FBSTRING TMP$3954$4;
				FBSTRING TMP$3955$4;
				int64 TMP$3956$4;
				int64 TMP$3957$4;
				FBSTRING TMP$3959$4;
				FBSTRING TMP$3960$4;
				FBSTRING TMP$3961$4;
				FBSTRING TMP$3963$4;
				FBSTRING TMP$3964$4;
				FBSTRING TMP$3965$4;
				FBSTRING TMP$3967$4;
				FBSTRING TMP$3969$4;
				FBSTRING TMP$3970$4;
				FBSTRING TMP$3971$4;
				_EMITADDR( 22ll, V1$1, TEMPO1$1 );
				int32 vr$14 = REG_FINDREAL( (int32)*(int64*)((uint8*)TEMPO1$1 + 24ll) );
				fb_StrAssign( (void*)&REGVALIST$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$14 << (3ll & 63ll))), 0ll, 0 );
				__builtin_memset( &TMP$3950$4, 0, 24ll );
				FBSTRING* vr$20 = fb_LongintToStr( *(int64*)((uint8*)&CTX$ + 168ll) << (3ll & 63ll) );
				__builtin_memset( &TMP$3947$4, 0, 24ll );
				FBSTRING* vr$24 = fb_StrConcat( &TMP$3947$4, (void*)"mov DWORD PTR [", 16ll, (void*)&REGVALIST$1, -1ll );
				__builtin_memset( &TMP$3948$4, 0, 24ll );
				FBSTRING* vr$27 = fb_StrConcat( &TMP$3948$4, (void*)vr$24, -1ll, (void*)"], ", 4ll );
				__builtin_memset( &TMP$3949$4, 0, 24ll );
				FBSTRING* vr$30 = fb_StrConcat( &TMP$3949$4, (void*)vr$27, -1ll, (void*)vr$20, -1ll );
				fb_StrAssign( (void*)&TMP$3950$4, -1ll, (void*)vr$30, -1ll, 0 );
				HWRITEASM64( &TMP$3950$4, 1ll );
				fb_StrDelete( (FBSTRING*)&TMP$3950$4 );
				__builtin_memset( &TMP$3955$4, 0, 24ll );
				FBSTRING* vr$37 = fb_LongintToStr( (*(int64*)((uint8*)&CTX$ + 176ll) << (3ll & 63ll)) + 48ll );
				__builtin_memset( &TMP$3952$4, 0, 24ll );
				FBSTRING* vr$41 = fb_StrConcat( &TMP$3952$4, (void*)"mov DWORD PTR 4[", 17ll, (void*)&REGVALIST$1, -1ll );
				__builtin_memset( &TMP$3953$4, 0, 24ll );
				FBSTRING* vr$44 = fb_StrConcat( &TMP$3953$4, (void*)vr$41, -1ll, (void*)"], ", 4ll );
				__builtin_memset( &TMP$3954$4, 0, 24ll );
				FBSTRING* vr$47 = fb_StrConcat( &TMP$3954$4, (void*)vr$44, -1ll, (void*)vr$37, -1ll );
				fb_StrAssign( (void*)&TMP$3955$4, -1ll, (void*)vr$47, -1ll, 0 );
				HWRITEASM64( &TMP$3955$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3955$4 );
				if( *(int64*)((uint8*)&CTX$ + 168ll) > 6ll ) goto label$3000;
				TMP$3956$4 = 0ll;
				goto label$3163;
				label$3000:;
				TMP$3956$4 = *(int64*)((uint8*)&CTX$ + 168ll) + -6ll;
				label$3163:;
				if( *(int64*)((uint8*)&CTX$ + 176ll) > 8ll ) goto label$3001;
				TMP$3957$4 = 0ll;
				goto label$3164;
				label$3001:;
				TMP$3957$4 = *(int64*)((uint8*)&CTX$ + 176ll) + -8ll;
				label$3164:;
				STARTARG$1 = (int32)(((TMP$3956$4 + TMP$3957$4) << (3ll & 63ll)) + 16ll);
				__builtin_memset( &TMP$3961$4, 0, 24ll );
				FBSTRING* vr$58 = fb_IntToStr( STARTARG$1 );
				__builtin_memset( &TMP$3959$4, 0, 24ll );
				FBSTRING* vr$61 = fb_StrConcat( &TMP$3959$4, (void*)"lea rax,", 9ll, (void*)vr$58, -1ll );
				__builtin_memset( &TMP$3960$4, 0, 24ll );
				FBSTRING* vr$64 = fb_StrConcat( &TMP$3960$4, (void*)vr$61, -1ll, (void*)"[rbp]", 6ll );
				fb_StrAssign( (void*)&TMP$3961$4, -1ll, (void*)vr$64, -1ll, 0 );
				HWRITEASM64( &TMP$3961$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3961$4 );
				__builtin_memset( &TMP$3965$4, 0, 24ll );
				__builtin_memset( &TMP$3963$4, 0, 24ll );
				FBSTRING* vr$72 = fb_StrConcat( &TMP$3963$4, (void*)"mov QWORD PTR 8[", 17ll, (void*)&REGVALIST$1, -1ll );
				__builtin_memset( &TMP$3964$4, 0, 24ll );
				FBSTRING* vr$75 = fb_StrConcat( &TMP$3964$4, (void*)vr$72, -1ll, (void*)"], rax", 7ll );
				fb_StrAssign( (void*)&TMP$3965$4, -1ll, (void*)vr$75, -1ll, 0 );
				HWRITEASM64( &TMP$3965$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3965$4 );
				__builtin_memset( &TMP$3967$4, 0, 24ll );
				fb_StrAssign( (void*)&TMP$3967$4, -1ll, (void*)"lea rax, -152[rbp]", 19ll, 0 );
				HWRITEASM64( &TMP$3967$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3967$4 );
				__builtin_memset( &TMP$3971$4, 0, 24ll );
				__builtin_memset( &TMP$3969$4, 0, 24ll );
				FBSTRING* vr$87 = fb_StrConcat( &TMP$3969$4, (void*)"mov QWORD PTR 16[", 18ll, (void*)&REGVALIST$1, -1ll );
				__builtin_memset( &TMP$3970$4, 0, 24ll );
				FBSTRING* vr$90 = fb_StrConcat( &TMP$3970$4, (void*)vr$87, -1ll, (void*)"], rax", 7ll );
				fb_StrAssign( (void*)&TMP$3971$4, -1ll, (void*)vr$90, -1ll, 0 );
				HWRITEASM64( &TMP$3971$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3971$4 );
			}
			goto label$2998;
			label$2999:;
			{
				FBSTRING TMP$3972$4;
				FBSTRING TMP$3973$4;
				FBSTRING TMP$3974$4;
				FBSTRING TMP$3975$4;
				FBSTRING TMP$3976$4;
				__builtin_memset( &TMP$3976$4, 0, 24ll );
				FBSTRING* vr$97 = fb_LongintToStr( (*(int64*)((uint8*)&CTX$ + 168ll) << (3ll & 63ll)) + 16ll );
				int32 vr$100 = REG_FINDREAL( (int32)*(int64*)((uint8*)TEMPO1$1 + 24ll) );
				__builtin_memset( &TMP$3972$4, 0, 24ll );
				FBSTRING* vr$105 = fb_StrConcat( &TMP$3972$4, (void*)"lea ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$100 << (3ll & 63ll))), 0ll );
				__builtin_memset( &TMP$3973$4, 0, 24ll );
				FBSTRING* vr$108 = fb_StrConcat( &TMP$3973$4, (void*)vr$105, -1ll, (void*)", ", 3ll );
				__builtin_memset( &TMP$3974$4, 0, 24ll );
				FBSTRING* vr$111 = fb_StrConcat( &TMP$3974$4, (void*)vr$108, -1ll, (void*)vr$97, -1ll );
				__builtin_memset( &TMP$3975$4, 0, 24ll );
				FBSTRING* vr$114 = fb_StrConcat( &TMP$3975$4, (void*)vr$111, -1ll, (void*)"[rbp]", 6ll );
				fb_StrAssign( (void*)&TMP$3976$4, -1ll, (void*)vr$114, -1ll, 0 );
				HWRITEASM64( &TMP$3976$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$3976$4 );
				_EMITSTORE( V1$1, TEMPO1$1 );
			}
			label$2998:;
			if( *(int64*)V2$1 != 3ll ) goto label$3003;
			{
				VREG$1 = (int32)*(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V2$1 + 80ll) + 24ll);
				{
					int64 IREG$5;
					IREG$5 = 1ll;
					label$3007:;
					{
						if( (int64)*(int32*)((int64)(int32*)REGHANDLE$ + (IREG$5 << (2ll & 63ll))) != (int64)VREG$1 ) goto label$3009;
						{
							*(int32*)((int64)(int32*)REGHANDLE$ + (IREG$5 << (2ll & 63ll))) = -2;
							goto label$3006;
						}
						label$3009:;
						label$3008:;
					}
					label$3005:;
					IREG$5 = IREG$5 + 1ll;
					label$3004:;
					if( IREG$5 <= 15ll ) goto label$3007;
					label$3006:;
				}
			}
			label$3003:;
			label$3002:;
		}
		goto label$2995;
		label$2996:;
		if( OP$1 != 112ll ) goto label$3010;
		label$3011:;
		{
			if( *(boolean*)((uint8*)&CTX$ + 416ll) == (boolean)0ll ) goto label$3013;
			{
				struct $6IRVREG* vr$127 = IRHLALLOCVREG( 8ll, (struct $8FBSYMBOL*)0ull );
				TEMPO1$1 = vr$127;
				REG_FINDFREE( (int32)*(int64*)((uint8*)VR$1 + 24ll), -1ll );
				_EMITADDR( 22ll, V1$1, TEMPO1$1 );
				int32 vr$132 = REG_FINDREAL( (int32)*(int64*)((uint8*)TEMPO1$1 + 24ll) );
				fb_StrAssign( (void*)&REGVALIST$1, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$132 << (3ll & 63ll))), 0ll, 0 );
				char* vr$136 = SYMBUNIQUELABEL(  );
				fb_StrAssign( (void*)&LNAME1$1, -1ll, (void*)vr$136, 0ll, 0 );
				char* vr$138 = SYMBUNIQUELABEL(  );
				fb_StrAssign( (void*)&LNAME2$1, -1ll, (void*)vr$138, 0ll, 0 );
				if( ((int64)-(*(int64*)((uint8*)VR$1 + 8ll) == 16ll) | (int64)-(*(int64*)((uint8*)VR$1 + 8ll) == 15ll)) == 0ll ) goto label$3015;
				{
					FBSTRING TMP$3979$5;
					FBSTRING TMP$3980$5;
					FBSTRING TMP$3981$5;
					FBSTRING TMP$3982$5;
					FBSTRING TMP$3983$5;
					FBSTRING TMP$3985$5;
					FBSTRING TMP$3986$5;
					FBSTRING TMP$3987$5;
					FBSTRING TMP$3990$5;
					FBSTRING TMP$3991$5;
					FBSTRING TMP$3992$5;
					FBSTRING TMP$3994$5;
					FBSTRING TMP$3995$5;
					FBSTRING TMP$3996$5;
					FBSTRING TMP$3997$5;
					FBSTRING TMP$3998$5;
					FBSTRING TMP$3999$5;
					FBSTRING TMP$4000$5;
					FBSTRING TMP$4002$5;
					FBSTRING TMP$4003$5;
					FBSTRING TMP$4004$5;
					FBSTRING TMP$4006$5;
					FBSTRING TMP$4007$5;
					FBSTRING TMP$4008$5;
					FBSTRING TMP$4009$5;
					FBSTRING TMP$4010$5;
					FBSTRING TMP$4012$5;
					FBSTRING TMP$4013$5;
					FBSTRING TMP$4014$5;
					__builtin_memset( &TMP$3981$5, 0, 24ll );
					__builtin_memset( &TMP$3979$5, 0, 24ll );
					FBSTRING* vr$149 = fb_StrConcat( &TMP$3979$5, (void*)"cmp DWORD PTR 4[", 17ll, (void*)&REGVALIST$1, -1ll );
					__builtin_memset( &TMP$3980$5, 0, 24ll );
					FBSTRING* vr$152 = fb_StrConcat( &TMP$3980$5, (void*)vr$149, -1ll, (void*)"], 104", 7ll );
					fb_StrAssign( (void*)&TMP$3981$5, -1ll, (void*)vr$152, -1ll, 0 );
					HWRITEASM64( &TMP$3981$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3981$5 );
					__builtin_memset( &TMP$3983$5, 0, 24ll );
					__builtin_memset( &TMP$3982$5, 0, 24ll );
					FBSTRING* vr$160 = fb_StrConcat( &TMP$3982$5, (void*)"jg ", 4ll, (void*)&LNAME1$1, -1ll );
					fb_StrAssign( (void*)&TMP$3983$5, -1ll, (void*)vr$160, -1ll, 0 );
					HWRITEASM64( &TMP$3983$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3983$5 );
					__builtin_memset( &TMP$3987$5, 0, 24ll );
					__builtin_memset( &TMP$3985$5, 0, 24ll );
					FBSTRING* vr$168 = fb_StrConcat( &TMP$3985$5, (void*)"mov eax, DWORD PTR 4[", 22ll, (void*)&REGVALIST$1, -1ll );
					__builtin_memset( &TMP$3986$5, 0, 24ll );
					FBSTRING* vr$171 = fb_StrConcat( &TMP$3986$5, (void*)vr$168, -1ll, (void*)"]", 2ll );
					fb_StrAssign( (void*)&TMP$3987$5, -1ll, (void*)vr$171, -1ll, 0 );
					HWRITEASM64( &TMP$3987$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3987$5 );
					__builtin_memset( &TMP$3992$5, 0, 24ll );
					__builtin_memset( &TMP$3990$5, 0, 24ll );
					FBSTRING* vr$179 = fb_StrConcat( &TMP$3990$5, (void*)"add DWORD PTR 4[", 17ll, (void*)&REGVALIST$1, -1ll );
					__builtin_memset( &TMP$3991$5, 0, 24ll );
					FBSTRING* vr$182 = fb_StrConcat( &TMP$3991$5, (void*)vr$179, -1ll, (void*)"], 8", 5ll );
					fb_StrAssign( (void*)&TMP$3992$5, -1ll, (void*)vr$182, -1ll, 0 );
					HWRITEASM64( &TMP$3992$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3992$5 );
					__builtin_memset( &TMP$3996$5, 0, 24ll );
					__builtin_memset( &TMP$3994$5, 0, 24ll );
					FBSTRING* vr$190 = fb_StrConcat( &TMP$3994$5, (void*)"add rax, QWORD PTR 16[", 23ll, (void*)&REGVALIST$1, -1ll );
					__builtin_memset( &TMP$3995$5, 0, 24ll );
					FBSTRING* vr$193 = fb_StrConcat( &TMP$3995$5, (void*)vr$190, -1ll, (void*)"]", 2ll );
					fb_StrAssign( (void*)&TMP$3996$5, -1ll, (void*)vr$193, -1ll, 0 );
					HWRITEASM64( &TMP$3996$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3996$5 );
					__builtin_memset( &TMP$3998$5, 0, 24ll );
					__builtin_memset( &TMP$3997$5, 0, 24ll );
					FBSTRING* vr$201 = fb_StrConcat( &TMP$3997$5, (void*)"jmp ", 5ll, (void*)&LNAME2$1, -1ll );
					fb_StrAssign( (void*)&TMP$3998$5, -1ll, (void*)vr$201, -1ll, 0 );
					HWRITEASM64( &TMP$3998$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$3998$5 );
					__builtin_memset( &TMP$4000$5, 0, 24ll );
					__builtin_memset( &TMP$3999$5, 0, 24ll );
					FBSTRING* vr$209 = fb_StrConcat( &TMP$3999$5, (void*)&LNAME1$1, -1ll, (void*)":", 2ll );
					fb_StrAssign( (void*)&TMP$4000$5, -1ll, (void*)vr$209, -1ll, 0 );
					HWRITEASM64( &TMP$4000$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$4000$5 );
					__builtin_memset( &TMP$4004$5, 0, 24ll );
					__builtin_memset( &TMP$4002$5, 0, 24ll );
					FBSTRING* vr$217 = fb_StrConcat( &TMP$4002$5, (void*)"mov rax, QWORD PTR 8[", 22ll, (void*)&REGVALIST$1, -1ll );
					__builtin_memset( &TMP$4003$5, 0, 24ll );
					FBSTRING* vr$220 = fb_StrConcat( &TMP$4003$5, (void*)vr$217, -1ll, (void*)"]", 2ll );
					fb_StrAssign( (void*)&TMP$4004$5, -1ll, (void*)vr$220, -1ll, 0 );
					HWRITEASM64( &TMP$4004$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$4004$5 );
					__builtin_memset( &TMP$4008$5, 0, 24ll );
					__builtin_memset( &TMP$4006$5, 0, 24ll );
					FBSTRING* vr$228 = fb_StrConcat( &TMP$4006$5, (void*)"add QWORD PTR 8[", 17ll, (void*)&REGVALIST$1, -1ll );
					__builtin_memset( &TMP$4007$5, 0, 24ll );
					FBSTRING* vr$231 = fb_StrConcat( &TMP$4007$5, (void*)vr$228, -1ll, (void*)"], 8", 5ll );
					fb_StrAssign( (void*)&TMP$4008$5, -1ll, (void*)vr$231, -1ll, 0 );
					HWRITEASM64( &TMP$4008$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$4008$5 );
					__builtin_memset( &TMP$4010$5, 0, 24ll );
					__builtin_memset( &TMP$4009$5, 0, 24ll );
					FBSTRING* vr$239 = fb_StrConcat( &TMP$4009$5, (void*)&LNAME2$1, -1ll, (void*)":", 2ll );
					fb_StrAssign( (void*)&TMP$4010$5, -1ll, (void*)vr$239, -1ll, 0 );
					HWRITEASM64( &TMP$4010$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$4010$5 );
					__builtin_memset( &TMP$4014$5, 0, 24ll );
					int32 vr$246 = REG_FINDREAL( (int32)*(int64*)((uint8*)VR$1 + 24ll) );
					__builtin_memset( &TMP$4012$5, 0, 24ll );
					FBSTRING* vr$251 = fb_StrConcat( &TMP$4012$5, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$246 << (3ll & 63ll))), 0ll );
					__builtin_memset( &TMP$4013$5, 0, 24ll );
					FBSTRING* vr$254 = fb_StrConcat( &TMP$4013$5, (void*)vr$251, -1ll, (void*)", [rax]", 8ll );
					fb_StrAssign( (void*)&TMP$4014$5, -1ll, (void*)vr$254, -1ll, 0 );
					HWRITEASM64( &TMP$4014$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$4014$5 );
				}
				goto label$3014;
				label$3015:;
				{
					FBSTRING TMP$4017$5;
					FBSTRING TMP$4018$5;
					FBSTRING TMP$4019$5;
					FBSTRING TMP$4020$5;
					FBSTRING TMP$4021$5;
					FBSTRING TMP$4023$5;
					FBSTRING TMP$4024$5;
					FBSTRING TMP$4025$5;
					FBSTRING TMP$4027$5;
					FBSTRING TMP$4028$5;
					FBSTRING TMP$4029$5;
					FBSTRING TMP$4030$5;
					FBSTRING TMP$4031$5;
					FBSTRING TMP$4032$5;
					FBSTRING TMP$4033$5;
					FBSTRING TMP$4034$5;
					FBSTRING TMP$4035$5;
					FBSTRING TMP$4036$5;
					FBSTRING TMP$4037$5;
					FBSTRING TMP$4038$5;
					FBSTRING TMP$4039$5;
					FBSTRING TMP$4040$5;
					FBSTRING TMP$4041$5;
					FBSTRING TMP$4042$5;
					FBSTRING TMP$4043$5;
					FBSTRING TMP$4044$5;
					FBSTRING TMP$4045$5;
					FBSTRING TMP$4046$5;
					FBSTRING TMP$4047$5;
					__builtin_memset( &TMP$4019$5, 0, 24ll );
					__builtin_memset( &TMP$4017$5, 0, 24ll );
					FBSTRING* vr$262 = fb_StrConcat( &TMP$4017$5, (void*)"cmp DWORD PTR [", 16ll, (void*)&REGVALIST$1, -1ll );
					__builtin_memset( &TMP$4018$5, 0, 24ll );
					FBSTRING* vr$265 = fb_StrConcat( &TMP$4018$5, (void*)vr$262, -1ll, (void*)"], 40", 6ll );
					fb_StrAssign( (void*)&TMP$4019$5, -1ll, (void*)vr$265, -1ll, 0 );
					HWRITEASM64( &TMP$4019$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$4019$5 );
					__builtin_memset( &TMP$4021$5, 0, 24ll );
					__builtin_memset( &TMP$4020$5, 0, 24ll );
					FBSTRING* vr$273 = fb_StrConcat( &TMP$4020$5, (void*)"jg ", 4ll, (void*)&LNAME1$1, -1ll );
					fb_StrAssign( (void*)&TMP$4021$5, -1ll, (void*)vr$273, -1ll, 0 );
					HWRITEASM64( &TMP$4021$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$4021$5 );
					__builtin_memset( &TMP$4025$5, 0, 24ll );
					__builtin_memset( &TMP$4023$5, 0, 24ll );
					FBSTRING* vr$281 = fb_StrConcat( &TMP$4023$5, (void*)"mov eax, DWORD PTR [", 21ll, (void*)&REGVALIST$1, -1ll );
					__builtin_memset( &TMP$4024$5, 0, 24ll );
					FBSTRING* vr$284 = fb_StrConcat( &TMP$4024$5, (void*)vr$281, -1ll, (void*)"]", 2ll );
					fb_StrAssign( (void*)&TMP$4025$5, -1ll, (void*)vr$284, -1ll, 0 );
					HWRITEASM64( &TMP$4025$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$4025$5 );
					__builtin_memset( &TMP$4029$5, 0, 24ll );
					__builtin_memset( &TMP$4027$5, 0, 24ll );
					FBSTRING* vr$292 = fb_StrConcat( &TMP$4027$5, (void*)"add DWORD PTR [", 16ll, (void*)&REGVALIST$1, -1ll );
					__builtin_memset( &TMP$4028$5, 0, 24ll );
					FBSTRING* vr$295 = fb_StrConcat( &TMP$4028$5, (void*)vr$292, -1ll, (void*)"], 8", 5ll );
					fb_StrAssign( (void*)&TMP$4029$5, -1ll, (void*)vr$295, -1ll, 0 );
					HWRITEASM64( &TMP$4029$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$4029$5 );
					__builtin_memset( &TMP$4032$5, 0, 24ll );
					__builtin_memset( &TMP$4030$5, 0, 24ll );
					FBSTRING* vr$303 = fb_StrConcat( &TMP$4030$5, (void*)"add rax, QWORD PTR 16[", 23ll, (void*)&REGVALIST$1, -1ll );
					__builtin_memset( &TMP$4031$5, 0, 24ll );
					FBSTRING* vr$306 = fb_StrConcat( &TMP$4031$5, (void*)vr$303, -1ll, (void*)"]", 2ll );
					fb_StrAssign( (void*)&TMP$4032$5, -1ll, (void*)vr$306, -1ll, 0 );
					HWRITEASM64( &TMP$4032$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$4032$5 );
					__builtin_memset( &TMP$4034$5, 0, 24ll );
					__builtin_memset( &TMP$4033$5, 0, 24ll );
					FBSTRING* vr$314 = fb_StrConcat( &TMP$4033$5, (void*)"jmp ", 5ll, (void*)&LNAME2$1, -1ll );
					fb_StrAssign( (void*)&TMP$4034$5, -1ll, (void*)vr$314, -1ll, 0 );
					HWRITEASM64( &TMP$4034$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$4034$5 );
					__builtin_memset( &TMP$4036$5, 0, 24ll );
					__builtin_memset( &TMP$4035$5, 0, 24ll );
					FBSTRING* vr$322 = fb_StrConcat( &TMP$4035$5, (void*)&LNAME1$1, -1ll, (void*)":", 2ll );
					fb_StrAssign( (void*)&TMP$4036$5, -1ll, (void*)vr$322, -1ll, 0 );
					HWRITEASM64( &TMP$4036$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$4036$5 );
					__builtin_memset( &TMP$4039$5, 0, 24ll );
					__builtin_memset( &TMP$4037$5, 0, 24ll );
					FBSTRING* vr$330 = fb_StrConcat( &TMP$4037$5, (void*)"mov rax, QWORD PTR 8[", 22ll, (void*)&REGVALIST$1, -1ll );
					__builtin_memset( &TMP$4038$5, 0, 24ll );
					FBSTRING* vr$333 = fb_StrConcat( &TMP$4038$5, (void*)vr$330, -1ll, (void*)"]", 2ll );
					fb_StrAssign( (void*)&TMP$4039$5, -1ll, (void*)vr$333, -1ll, 0 );
					HWRITEASM64( &TMP$4039$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$4039$5 );
					__builtin_memset( &TMP$4042$5, 0, 24ll );
					__builtin_memset( &TMP$4040$5, 0, 24ll );
					FBSTRING* vr$341 = fb_StrConcat( &TMP$4040$5, (void*)"add QWORD PTR 8[", 17ll, (void*)&REGVALIST$1, -1ll );
					__builtin_memset( &TMP$4041$5, 0, 24ll );
					FBSTRING* vr$344 = fb_StrConcat( &TMP$4041$5, (void*)vr$341, -1ll, (void*)"], 8", 5ll );
					fb_StrAssign( (void*)&TMP$4042$5, -1ll, (void*)vr$344, -1ll, 0 );
					HWRITEASM64( &TMP$4042$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$4042$5 );
					__builtin_memset( &TMP$4044$5, 0, 24ll );
					__builtin_memset( &TMP$4043$5, 0, 24ll );
					FBSTRING* vr$352 = fb_StrConcat( &TMP$4043$5, (void*)&LNAME2$1, -1ll, (void*)":", 2ll );
					fb_StrAssign( (void*)&TMP$4044$5, -1ll, (void*)vr$352, -1ll, 0 );
					HWRITEASM64( &TMP$4044$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$4044$5 );
					__builtin_memset( &TMP$4047$5, 0, 24ll );
					int32 vr$359 = REG_FINDREAL( (int32)*(int64*)((uint8*)VR$1 + 24ll) );
					__builtin_memset( &TMP$4045$5, 0, 24ll );
					FBSTRING* vr$364 = fb_StrConcat( &TMP$4045$5, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$359 << (3ll & 63ll))), 0ll );
					__builtin_memset( &TMP$4046$5, 0, 24ll );
					FBSTRING* vr$367 = fb_StrConcat( &TMP$4046$5, (void*)vr$364, -1ll, (void*)", [rax]", 8ll );
					fb_StrAssign( (void*)&TMP$4047$5, -1ll, (void*)vr$367, -1ll, 0 );
					HWRITEASM64( &TMP$4047$5, 0ll );
					fb_StrDelete( (FBSTRING*)&TMP$4047$5 );
				}
				label$3014:;
			}
			goto label$3012;
			label$3013:;
			{
				FBSTRING TMP$4049$4;
				FBSTRING TMP$4050$4;
				FBSTRING TMP$4051$4;
				FBSTRING TMP$4052$4;
				FBSTRING TMP$4053$4;
				if( *(int64*)V1$1 != 3ll ) goto label$3017;
				{
					int32 vr$375 = REG_FINDREAL( (int32)*(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 24ll) );
					SAVEREG$1 = vr$375;
				}
				goto label$3016;
				label$3017:;
				if( *(int64*)V1$1 != 4ll ) goto label$3018;
				{
					int32 vr$379 = REG_FINDREAL( (int32)*(int64*)((uint8*)V1$1 + 24ll) );
					SAVEREG$1 = vr$379;
				}
				label$3018:;
				label$3016:;
				if( ((int64)-(*(int64*)V1$1 != 4ll) | (int64)-((int64)-((*(int64*)((uint8*)V1$1 + 8ll) & 480ll) != 0ll) == -1ll)) == 0ll ) goto label$3020;
				{
					_EMITADDR( 76ll, V1$1, VR$1 );
					if( *(int64*)V1$1 != 3ll ) goto label$3022;
					{
						*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)SAVEREG$1 << (2ll & 63ll))) = (int32)*(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 24ll);
					}
					goto label$3021;
					label$3022:;
					if( *(int64*)V1$1 != 4ll ) goto label$3023;
					{
						*(int32*)((int64)(int32*)REGHANDLE$ + ((int64)SAVEREG$1 << (2ll & 63ll))) = (int32)*(int64*)((uint8*)V1$1 + 24ll);
					}
					label$3023:;
					label$3021:;
					struct $6IRVREG* vr$398 = IRHLALLOCVRIMM( 8ll, (struct $8FBSYMBOL*)0ull, 8ll );
					TEMPO1$1 = vr$398;
					_EMITBOP( 28ll, V1$1, TEMPO1$1, (struct $6IRVREG*)0ull, (struct $8FBSYMBOL*)0ull );
				}
				goto label$3019;
				label$3020:;
				{
					*(int64*)((uint8*)VR$1 + 24ll) = *(int64*)((uint8*)V1$1 + 24ll);
				}
				label$3019:;
				__builtin_memset( &TMP$4053$4, 0, 24ll );
				int32 vr$404 = REG_FINDREAL( (int32)*(int64*)((uint8*)VR$1 + 24ll) );
				int32 vr$409 = REG_FINDREAL( (int32)*(int64*)((uint8*)VR$1 + 24ll) );
				__builtin_memset( &TMP$4049$4, 0, 24ll );
				FBSTRING* vr$414 = fb_StrConcat( &TMP$4049$4, (void*)"mov ", 5ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$409 << (3ll & 63ll))), 0ll );
				__builtin_memset( &TMP$4050$4, 0, 24ll );
				FBSTRING* vr$417 = fb_StrConcat( &TMP$4050$4, (void*)vr$414, -1ll, (void*)", [", 4ll );
				__builtin_memset( &TMP$4051$4, 0, 24ll );
				FBSTRING* vr$420 = fb_StrConcat( &TMP$4051$4, (void*)vr$417, -1ll, *(void**)((int64)(char**)REGSTRQ$ + ((int64)vr$404 << (3ll & 63ll))), 0ll );
				__builtin_memset( &TMP$4052$4, 0, 24ll );
				FBSTRING* vr$423 = fb_StrConcat( &TMP$4052$4, (void*)vr$420, -1ll, (void*)"]", 2ll );
				fb_StrAssign( (void*)&TMP$4053$4, -1ll, (void*)vr$423, -1ll, 0 );
				HWRITEASM64( &TMP$4053$4, 0ll );
				fb_StrDelete( (FBSTRING*)&TMP$4053$4 );
			}
			label$3012:;
		}
		goto label$2995;
		label$3010:;
		if( OP$1 != 110ll ) goto label$3024;
		label$3025:;
		{
			if( *(int64*)V1$1 != 3ll ) goto label$3027;
			{
				VREG$1 = (int32)*(int64*)((uint8*)*(struct $6IRVREG**)((uint8*)V1$1 + 80ll) + 24ll);
				{
					int64 IREG$5;
					IREG$5 = 1ll;
					label$3031:;
					{
						if( (int64)*(int32*)((int64)(int32*)REGHANDLE$ + (IREG$5 << (2ll & 63ll))) != (int64)VREG$1 ) goto label$3033;
						{
							*(int32*)((int64)(int32*)REGHANDLE$ + (IREG$5 << (2ll & 63ll))) = -2;
							goto label$3030;
						}
						label$3033:;
						label$3032:;
					}
					label$3029:;
					IREG$5 = IREG$5 + 1ll;
					label$3028:;
					if( IREG$5 <= 15ll ) goto label$3031;
					label$3030:;
				}
			}
			label$3027:;
			label$3026:;
		}
		goto label$2995;
		label$3024:;
		if( OP$1 != 111ll ) goto label$3034;
		label$3035:;
		{
			if( *(boolean*)((uint8*)&CTX$ + 416ll) == (boolean)0ll ) goto label$3037;
			{
				struct $6IRVREG* vr$436 = IRHLALLOCVREG( 8ll, (struct $8FBSYMBOL*)0ull );
				TEMPO1$1 = vr$436;
				_EMITADDR( 22ll, V1$1, TEMPO1$1 );
				struct $6IRVREG* vr$437 = IRHLALLOCVREG( 8ll, (struct $8FBSYMBOL*)0ull );
				TEMPO2$1 = vr$437;
				_EMITADDR( 22ll, V2$1, TEMPO2$1 );
				_EMITMEM( 105ll, TEMPO1$1, TEMPO2$1, *(int64*)((uint8*)*(struct $8FBSYMBOL**)((uint8*)V1$1 + 56ll) + 80ll) );
			}
			goto label$3036;
			label$3037:;
			{
				_EMITSTORE( V1$1, V2$1 );
			}
			label$3036:;
		}
		label$3034:;
		label$2995:;
	}
	fb_StrDelete( (FBSTRING*)&LNAME2$1 );
	fb_StrDelete( (FBSTRING*)&LNAME1$1 );
	fb_StrDelete( (FBSTRING*)&REGVALIST$1 );
	label$2992:;
}

static void _EMITDECL( struct $8FBSYMBOL* SYM$1 )
{
	label$3038:;
	label$3039:;
}

static void _EMITSCOPEBEGIN( struct $8FBSYMBOL* S$1 )
{
	label$3040:;
	label$3041:;
}

static void _EMITSCOPEEND( struct $8FBSYMBOL* S$1 )
{
	label$3042:;
	label$3043:;
}

static void _EMITVARINIEND( struct $8FBSYMBOL* SYM$1 )
{
	label$3044:;
	label$3045:;
}

static void _EMITVARINISCOPEBEGIN( struct $8FBSYMBOL* SYM$1, int64 IS_ARRAY$1 )
{
	label$3046:;
	label$3047:;
}

static void _SCOPEBEGIN( struct $8FBSYMBOL* S$1 )
{
	label$3048:;
	label$3049:;
}

static void _SCOPEEND( struct $8FBSYMBOL* S$1 )
{
	label$3050:;
	label$3051:;
}

static void _EMITVARINISCOPEEND( void )
{
	label$3052:;
	label$3053:;
}

static void _EMITFBCTINFBEGIN( void )
{
	label$3054:;
	label$3055:;
}

static void _EMITFBCTINFEND( void )
{
	label$3056:;
	label$3057:;
}

static void _EMITSPILLREGS( void )
{
	label$3058:;
	label$3059:;
}

static void _EMITLOAD( struct $6IRVREG* V1$1 )
{
	label$3060:;
	label$3061:;
}

static void CFI_WINDOWS_ASM_CODE( FBSTRING* STATEMENT$1 )
{
	label$3064:;
	if( *(int64*)((uint8*)&ENV$ + 360ll) != -1ll ) goto label$3067;
	{
		if( *(int64*)((uint8*)&CTX$ + 408ll) != 0ll ) goto label$3069;
		{
			HWRITEASM64( STATEMENT$1, 0ll );
		}
		label$3069:;
		label$3068:;
	}
	label$3067:;
	label$3066:;
	label$3065:;
}

__attribute__(( constructor )) static void _GLOBAL__I( void )
{
	label$3071:;
	_ZN6DBGCTXC1Ev( &CTXDBG$ );
	_ZN13ASM64_CONTEXTC1Ev( &CTX$ );
	label$3072:;
}

__attribute__(( destructor )) static void _GLOBAL__D( void )
{
	label$3074:;
	fb_ArrayEraseObj( (struct $7FBARRAYIvE*)&DBGSTAB$, (void*)&_ZN8TDBGSTABC1Ev, (void*)&_ZN8TDBGSTABD1Ev );
	fb_ArrayEraseObj( (struct $7FBARRAYIvE*)&DBGSTR$, (void*)&_ZN7TDBGSTRC1Ev, (void*)&_ZN7TDBGSTRD1Ev );
	_ZN13ASM64_CONTEXTD1Ev( &CTX$ );
	_ZN6DBGCTXD1Ev( &CTXDBG$ );
	label$3075:;
}
