/* Generated by Nim Compiler v0.12.0 */
/*   (c) 2015 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_INTBITS 32

#include "nimbase.h"
#include <string.h>
#include <math.h>
#include <setjmp.h>
typedef struct Tctx279048 Tctx279048;
typedef struct Tnode225809 Tnode225809;
typedef struct Tsym225841 Tsym225841;
typedef struct Tlineinfo190352 Tlineinfo190352;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct Ttype225847 Ttype225847;
typedef struct Tident198021 Tident198021;
typedef struct Tnodeseq225803 Tnodeseq225803;
typedef struct Tidobj198015 Tidobj198015;
typedef struct TNimObject TNimObject;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct Ttypeseq225843 Ttypeseq225843;
typedef struct Tscope225835 Tscope225835;
typedef struct TY225944 TY225944;
typedef struct Tstrtable225813 Tstrtable225813;
typedef struct Tsymseq225811 Tsymseq225811;
typedef struct Tloc225823 Tloc225823;
typedef struct Ropeobj176009 Ropeobj176009;
typedef struct Tlib225827 Tlib225827;
typedef struct Cell49147 Cell49147;
typedef struct Cellset49159 Cellset49159;
typedef struct Gcheap51218 Gcheap51218;
typedef struct Gcstack51216 Gcstack51216;
typedef struct Cellseq49163 Cellseq49163;
typedef struct Pagedesc49155 Pagedesc49155;
typedef struct Memregion31090 Memregion31090;
typedef struct Smallchunk31042 Smallchunk31042;
typedef struct Llchunk31084 Llchunk31084;
typedef struct Bigchunk31044 Bigchunk31044;
typedef struct Intset31017 Intset31017;
typedef struct Trunk31013 Trunk31013;
typedef struct Avlnode31088 Avlnode31088;
typedef struct Gcstat51214 Gcstat51214;
typedef struct Vmargs279042 Vmargs279042;
typedef struct TY432864 TY432864;
typedef struct Tfullreg432204 Tfullreg432204;
typedef struct Tpasscontext277005 Tpasscontext277005;
typedef struct TY279254 TY279254;
typedef struct TY191420 TY191420;
typedef struct PprocHEX3Aobjecttype279233 PprocHEX3Aobjecttype279233;
typedef struct TY279273 TY279273;
typedef struct Tstackframe432208 Tstackframe432208;
typedef struct TY333608 TY333608;
typedef struct TY444496 TY444496;
typedef struct TY279274 TY279274;
typedef struct TY433455 TY433455;
typedef struct TY91159 TY91159;
typedef struct Exception Exception;
typedef struct TSafePoint TSafePoint;
typedef struct TY279234 TY279234;
typedef struct TY279239 TY279239;
typedef struct TY131608 TY131608;
typedef struct Tinstantiation225831 Tinstantiation225831;
typedef struct Tlistentry141022 Tlistentry141022;
typedef struct Basechunk31040 Basechunk31040;
typedef struct Freecell31032 Freecell31032;
typedef struct Tblock279030 Tblock279030;
typedef struct TY279214 TY279214;
typedef struct TY225932 TY225932;
struct  Tlineinfo190352  {
NI16 line;
NI16 col;
NI32 fileindex;
};
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct  Tnode225809  {
Ttype225847* typ;
Tlineinfo190352 info;
NU16 flags;
NU8 kind;
union{
struct {NI64 intval;
} S1;
struct {NF floatval;
} S2;
struct {NimStringDesc* strval;
} S3;
struct {Tsym225841* sym;
} S4;
struct {Tident198021* ident;
} S5;
struct {Tnodeseq225803* sons;
} S6;
} kindU;
NimStringDesc* comment;
};
typedef N_NIMCALL_PTR(void, TY3889) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, TY3894) (void* p);
struct  TNimType  {
NI size;
NU8 kind;
NU8 flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY3889 marker;
TY3894 deepcopy;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  Tidobj198015  {
  TNimObject Sup;
NI id;
};
struct  Tstrtable225813  {
NI counter;
Tsymseq225811* data;
};
struct  Tloc225823  {
NU8 k;
NU8 s;
NU16 flags;
Ttype225847* t;
Ropeobj176009* r;
Ropeobj176009* heaproot;
};
struct  Tsym225841  {
  Tidobj198015 Sup;
NU8 kind;
union{
struct {Ttypeseq225843* typeinstcache;
Tscope225835* typscope;
} S1;
struct {TY225944* procinstcache;
Tsym225841* gcunsafetyreason;
} S2;
struct {TY225944* usedgenerics;
Tstrtable225813 tab;
} S3;
struct {Tsym225841* guard;
NI bitsize;
} S4;
} kindU;
NU8 magic;
Ttype225847* typ;
Tident198021* name;
Tlineinfo190352 info;
Tsym225841* owner;
NU32 flags;
Tnode225809* ast;
NU32 options;
NI position;
NI offset;
Tloc225823 loc;
Tlib225827* annex;
Tnode225809* constraint;
};
typedef NimStringDesc* TY193293[3];
struct  Cell49147  {
NI refcount;
TNimType* typ;
};
struct  Cellseq49163  {
NI len;
NI cap;
Cell49147** d;
};
struct  Cellset49159  {
NI counter;
NI max;
Pagedesc49155* head;
Pagedesc49155** data;
};
typedef Smallchunk31042* TY31105[512];
typedef Trunk31013* Trunkbuckets31015[256];
struct  Intset31017  {
Trunkbuckets31015 data;
};
struct  Memregion31090  {
NI minlargeobj;
NI maxlargeobj;
TY31105 freesmallchunks;
Llchunk31084* llmem;
NI currmem;
NI maxmem;
NI freemem;
NI lastsize;
Bigchunk31044* freechunkslist;
Intset31017 chunkstarts;
Avlnode31088* root;
Avlnode31088* deleted;
Avlnode31088* last;
Avlnode31088* freeavlnodes;
};
struct  Gcstat51214  {
NI stackscans;
NI cyclecollections;
NI maxthreshold;
NI maxstacksize;
NI maxstackcells;
NI cycletablesize;
NI64 maxpause;
};
struct  Gcheap51218  {
Gcstack51216* stack;
void* stackbottom;
NI cyclethreshold;
Cellseq49163 zct;
Cellseq49163 decstack;
Cellset49159 cycleroots;
Cellseq49163 tempstack;
NI recgclock;
Memregion31090 region;
Gcstat51214 stat;
};
typedef struct {
N_NIMCALL_PTR(void, ClPrc) (Vmargs279042* args, void* ClEnv);
void* ClEnv;
} Vmcallback279044;
struct  Tfullreg432204  {
NU8 kind;
union{
NI64 intval;
NF floatval;
Tnode225809* node;
Tfullreg432204* regaddr;
Tnode225809** nodeaddr;
} kindU;
};
struct  Vmargs279042  {
NI ra;
NI rb;
NI rc;
void* slots;
Tnode225809* currentexception;
};
struct  TNimNode  {
NU8 kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef N_CLOSURE_PTR(void, TMP2811) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2813) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2815) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2817) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2819) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2821) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2823) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2825) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2827) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2829) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2831) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2833) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2835) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2837) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2839) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2841) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2843) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2845) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2847) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2849) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2851) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2853) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2856) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2858) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2860) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2862) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2865) (Vmargs279042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2867) (Vmargs279042* args, void* ClEnv);
struct  Tpasscontext277005  {
  TNimObject Sup;
NIM_BOOL fromcache;
};
struct  Tctx279048  {
  Tpasscontext277005 Sup;
TY279254* code;
TY191420* debug;
Tnode225809* globals;
Tnode225809* constants;
Ttypeseq225843* types;
Tnode225809* currentexceptiona;
Tnode225809* currentexceptionb;
NI exceptioninstr;
PprocHEX3Aobjecttype279233* prc;
Tsym225841* module;
Tnode225809* callsite;
NU8 mode;
NU8 features;
NIM_BOOL traceactive;
NI loopiterations;
Tlineinfo190352 comesfromheuristic;
TY279273* callbacks;
NimStringDesc* errorflag;
};
struct  Tstackframe432208  {
Tsym225841* prc;
TY432864* slots;
Tstackframe432208* next;
NI comesfrom;
TY333608* safepoints;
};
struct  Ttype225847  {
  Tidobj198015 Sup;
NU8 kind;
NU8 callconv;
NU32 flags;
Ttypeseq225843* sons;
Tnode225809* n;
Tsym225841* owner;
Tsym225841* sym;
Tsym225841* destructor;
Tsym225841* deepcopy;
Tsym225841* assignment;
NI64 size;
NI16 align;
NI16 locklevel;
Tloc225823 loc;
};
struct  TY444496  {
NI HEX3Astate;
NimStringDesc* error442602;
NimStringDesc* error442652;
};
struct  Tident198021  {
  Tidobj198015 Sup;
NimStringDesc* s;
Tident198021* next;
NI h;
};
typedef NimStringDesc* TY193306[2];
struct TY279274 {
NimStringDesc* Field0;
Vmcallback279044 Field1;
};
typedef N_CLOSURE_PTR(void, TMP2929) (Vmargs279042* args);
struct TY433455 {
NI Field0;
Tstackframe432208* Field1;
};
typedef struct {
N_NIMCALL_PTR(void, ClPrc) (Tlineinfo190352 info, NU16 msg, NimStringDesc* arg, void* ClEnv);
void* ClEnv;
} Terrorhandler216183;
struct TY91159 {
NimStringDesc* Field0;
NI Field1;
};
struct  Exception  {
  TNimObject Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
NimStringDesc* trace;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClPrc) (Exception* e, void* ClEnv);
void* ClEnv;
} TY19411;
struct  TSafePoint  {
TSafePoint* prev;
NI status;
jmp_buf context;
NIM_BOOL hasRaiseAction;
TY19411 raiseAction;
};
struct TY279239 {
NIM_BOOL Field0;
NU8 Field1;
};
typedef TY279239 TY279242[256];
struct  PprocHEX3Aobjecttype279233  {
TY279234* blocks;
Tsym225841* sym;
TY279242 slots;
NI maxslots;
};
struct  Tscope225835  {
NI depthlevel;
Tstrtable225813 symbols;
Tnodeseq225803* usingsyms;
Tscope225835* parent;
};
struct  Ropeobj176009  {
  TNimObject Sup;
Ropeobj176009* left;
Ropeobj176009* right;
NI length;
NimStringDesc* data;
};
struct  Tlistentry141022  {
  TNimObject Sup;
Tlistentry141022* prev;
Tlistentry141022* next;
};
struct  Tlib225827  {
  Tlistentry141022 Sup;
NU8 kind;
NIM_BOOL generated;
NIM_BOOL isoverriden;
Ropeobj176009* name;
Tnode225809* path;
};
struct  Gcstack51216  {
Gcstack51216* prev;
Gcstack51216* next;
void* starts;
void* pos;
NI maxstacksize;
};
typedef NI TY31021[16];
struct  Pagedesc49155  {
Pagedesc49155* next;
NI key;
TY31021 bits;
};
struct  Basechunk31040  {
NI prevsize;
NI size;
NIM_BOOL used;
};
struct  Smallchunk31042  {
  Basechunk31040 Sup;
Smallchunk31042* next;
Smallchunk31042* prev;
Freecell31032* freelist;
NI free;
NI acc;
NF data;
};
struct  Llchunk31084  {
NI size;
NI acc;
Llchunk31084* next;
};
struct  Bigchunk31044  {
  Basechunk31040 Sup;
Bigchunk31044* next;
Bigchunk31044* prev;
NI align;
NF data;
};
struct  Trunk31013  {
Trunk31013* next;
NI key;
TY31021 bits;
};
typedef Avlnode31088* TY31095[2];
struct  Avlnode31088  {
TY31095 link;
NI key;
NI upperbound;
NI level;
};
struct  Tblock279030  {
Tsym225841* label;
TY279214* fixups;
};
struct  Tinstantiation225831  {
Tsym225841* sym;
Ttypeseq225843* concretetypes;
TY225932* usedby;
NI compilesid;
};
struct  Freecell31032  {
Freecell31032* next;
NI zerofield;
};
struct TY432864 {
  TGenericSeq Sup;
  Tfullreg432204 data[SEQ_DECL_SIZE];
};
struct Tnodeseq225803 {
  TGenericSeq Sup;
  Tnode225809* data[SEQ_DECL_SIZE];
};
struct TY333608 {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct TY131608 {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct Ttypeseq225843 {
  TGenericSeq Sup;
  Ttype225847* data[SEQ_DECL_SIZE];
};
struct TY225944 {
  TGenericSeq Sup;
  Tinstantiation225831* data[SEQ_DECL_SIZE];
};
struct Tsymseq225811 {
  TGenericSeq Sup;
  Tsym225841* data[SEQ_DECL_SIZE];
};
struct TY279254 {
  TGenericSeq Sup;
  NU32 data[SEQ_DECL_SIZE];
};
struct TY191420 {
  TGenericSeq Sup;
  Tlineinfo190352 data[SEQ_DECL_SIZE];
};
struct TY279273 {
  TGenericSeq Sup;
  TY279274 data[SEQ_DECL_SIZE];
};
struct TY279234 {
  TGenericSeq Sup;
  Tblock279030 data[SEQ_DECL_SIZE];
};
struct TY279214 {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct TY225932 {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
N_NIMCALL(void, globalerror_196107)(Tlineinfo190352 info, NU16 msg, NimStringDesc* arg);
static N_INLINE(NI, safelen_226126)(Tnode225809* n);
N_NIMCALL(NI, len_228369)(Ttype225847* n);
N_NIMCALL(void, globalerror_196118)(Tlineinfo190352 info, NimStringDesc* arg);
N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen0);
N_NIMCALL(NimStringDesc*, rendertree_247059)(Tnode225809* n, NU8 renderflags);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
N_NIMCALL(void, setupglobalctx_445278)(Tsym225841* module);
N_NIMCALL(Tctx279048*, newctx_279282)(Tsym225841* module);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incref_55222)(Cell49147* c);
static N_INLINE(NIM_BOOL, canbecycleroot_52867)(Cell49147* c);
static N_INLINE(void, rtladdcycleroot_53623)(Cell49147* c);
N_NOINLINE(void, incl_49865)(Cellset49159* s, Cell49147* cell);
static N_INLINE(Cell49147*, usrtocell_52846)(void* usr);
static N_INLINE(void, decref_54804)(Cell49147* c);
static N_INLINE(void, rtladdzct_54404)(Cell49147* c);
N_NOINLINE(void, addzct_52817)(Cellseq49163* s, Cell49147* c);
N_NIMCALL(void, registeradditionalops_445102)(Tctx279048* c);
N_NIMCALL(void, registercallback_279401)(Tctx279048* c, NimStringDesc* name, Vmcallback279044 callback);
N_NIMCALL(void, sqrtwrapper_445105)(Vmargs279042* a);
N_NIMCALL(void, setresult_432860)(Vmargs279042* a, NF v);
N_NIMCALL(void, myreset_432401)(Tfullreg432204* n);
N_NIMCALL(void, genericReset)(void* dest, TNimType* mt);
N_NIMCALL(NF, getfloat_433046)(Vmargs279042* a, NI i);
N_NOINLINE(void, raiseassert_91171)(NimStringDesc* msg);
N_NIMCALL(void, lnwrapper_445108)(Vmargs279042* a);
N_NIMCALL(void, log10wrapper_445111)(Vmargs279042* a);
N_NIMCALL(void, log2wrapper_445114)(Vmargs279042* a);
N_NIMCALL(NF, log2_163425)(NF x);
N_NIMCALL(void, expwrapper_445117)(Vmargs279042* a);
N_NIMCALL(void, roundwrapper_445120)(Vmargs279042* a);
N_NIMCALL(void, setresult_432837)(Vmargs279042* a, NI64 v);
N_NIMCALL(void, arccoswrapper_445123)(Vmargs279042* a);
N_NIMCALL(void, arcsinwrapper_445126)(Vmargs279042* a);
N_NIMCALL(void, arctanwrapper_445129)(Vmargs279042* a);
N_NIMCALL(void, arctan2wrapper_445132)(Vmargs279042* a);
N_NIMCALL(void, coswrapper_445135)(Vmargs279042* a);
N_NIMCALL(void, coshwrapper_445138)(Vmargs279042* a);
N_NIMCALL(void, hypotwrapper_445141)(Vmargs279042* a);
N_NIMCALL(void, sinhwrapper_445144)(Vmargs279042* a);
N_NIMCALL(void, sinwrapper_445147)(Vmargs279042* a);
N_NIMCALL(void, tanwrapper_445150)(Vmargs279042* a);
N_NIMCALL(void, tanhwrapper_445153)(Vmargs279042* a);
N_NIMCALL(void, powwrapper_445156)(Vmargs279042* a);
N_NIMCALL(void, truncwrapper_445159)(Vmargs279042* a);
N_NIMCALL(void, floorwrapper_445162)(Vmargs279042* a);
N_NIMCALL(void, ceilwrapper_445165)(Vmargs279042* a);
N_NIMCALL(void, fmodwrapper_445168)(Vmargs279042* a);
N_NIMCALL(void, getenvwrapper_445171)(Vmargs279042* a);
N_NIMCALL(void, setresult_432915)(Vmargs279042* a, NimStringDesc* v);
N_NIMCALL(Tnode225809*, newnode_226401)(NU8 kind);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_NIMCALL(NimStringDesc*, getenv_132243)(NimStringDesc* key);
N_NIMCALL(NimStringDesc*, getstring_433072)(Vmargs279042* a, NI i);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_NIMCALL(void, existsenvwrapper_445174)(Vmargs279042* a);
N_NIMCALL(void, setresult_432883)(Vmargs279042* a, NIM_BOOL v_432886);
N_NIMCALL(NIM_BOOL, existsenv_132258)(NimStringDesc* key);
N_NIMCALL(void, direxistswrapper_445177)(Vmargs279042* a);
static N_INLINE(NIM_BOOL, direxists_128220)(NimStringDesc* dir);
N_NIMCALL(NIM_BOOL, nosexistsDir)(NimStringDesc* dir);
N_NIMCALL(void, fileexistswrapper_445180)(Vmargs279042* a);
static N_INLINE(NIM_BOOL, fileexists_128210)(NimStringDesc* filename);
N_NIMCALL(NIM_BOOL, nosexistsFile)(NimStringDesc* filename);
N_NIMCALL(void, writefilewrapper_445183)(Vmargs279042* a);
N_NIMCALL(void, writefile_17075)(NimStringDesc* filename, NimStringDesc* content);
N_NIMCALL(void, getcurrentexceptionmsgwrapper_445084)(Vmargs279042* a);
N_NIMCALL(Tnode225809*, skipcolon_429258)(Tnode225809* n);
N_NIMCALL(void, refresh_279374)(Tctx279048* c, Tsym225841* module);
N_NIMCALL(NI, genproc_425765)(Tctx279048* c, Tsym225841* s);
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
N_NIMCALL(void, TMP2912)(void* p, NI op);
N_NIMCALL(void, TMP2913)(void* p, NI op);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
N_NIMCALL(void*, newSeqRC1)(TNimType* typ, NI len);
N_NIMCALL(Tnode225809*, newnodeit_227807)(NU8 kind, Tlineinfo190352 info, Ttype225847* typ);
N_NIMCALL(void, setupmacroparam_446265)(Tnode225809* x, Ttype225847* typ, Tfullreg432204* Result);
N_NIMCALL(void, putintoreg_433320)(Tfullreg432204* dest, Tnode225809* n);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_NIMCALL(Tnode225809*, canonvalue_420570)(Tnode225809* n);
static N_INLINE(Tnode225809*, HEX5BHEX5D_226244)(Tnode225809* n, NI i);
static N_INLINE(NI, len_226098)(Tnode225809* n);
N_NIMCALL(Tnode225809*, regtonode_433340)(Tfullreg432204 x);
N_NIMCALL(void, rawexecute_434213)(Tctx279048* c, NI start, Tstackframe432208* tos_434217, Tfullreg432204* Result);
N_NIMCALL(void, TMP2915)(void* p, NI op);
N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
N_NIMCALL(void, createstrkeepnode_432467)(Tfullreg432204* x, NIM_BOOL keepnode);
N_NIMCALL(void, asgncomplex_433260)(Tfullreg432204* x, Tfullreg432204 y);
N_NIMCALL(Tnode225809*, copyvalue_433158)(Tnode225809* src);
N_NIMCALL(NI, sonslen_228387)(Tnode225809* n);
N_NIMCALL(void, moveconst_433120)(Tfullreg432204* x, Tfullreg432204 y);
N_NIMCALL(void, putintonode_433290)(Tnode225809** n, Tfullreg432204 x);
N_NIMCALL(void, stacktrace_432336)(Tctx279048* c, Tstackframe432208* tos, NI pc, NU16 msg, NimStringDesc* arg);
N_NIMCALL(void, msgwriteln_191915)(NimStringDesc* s, NU8 flags);
N_NIMCALL(void, stacktraceaux_432233)(Tctx279048* c, Tstackframe432208* x_432236, NI pc, NI recursionlimit);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(NimStringDesc*, tofilename_191655)(NI32 fileidx);
static N_INLINE(NI, tolinenumber_191839)(Tlineinfo190352 info);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_NIMCALL(void, localerror_196128)(Tlineinfo190352 info, NU16 msg, NimStringDesc* arg);
N_NIMCALL(NIM_BOOL, inset_276019)(Tnode225809* s, Tnode225809* elem);
N_NIMCALL(void, addson_227819)(Tnode225809* father, Tnode225809* son);
N_NIMCALL(Tnode225809*, copytree_230028)(Tnode225809* src);
N_NIMCALL(void, add_226165)(Tnode225809* father, Tnode225809* son);
N_NIMCALL(Tnode225809*, diffsets_276054)(Tnode225809* a, Tnode225809* b);
N_NIMCALL(void, discardsons_226092)(Tnode225809* father);
N_NIMCALL(NI64, cardset_276089)(Tnode225809* s);
N_NIMCALL(NIM_BOOL, exprstructuralequivalent_254149)(Tnode225809* a, Tnode225809* b, NIM_BOOL strictsymequality);
N_NIMCALL(NIM_BOOL, sametypeornil_260108)(Ttype225847* a, Ttype225847* b, NU8 flags);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NI, cmpStrings)(NimStringDesc* a, NimStringDesc* b);
N_NIMCALL(NIM_BOOL, containssets_276075)(Tnode225809* a, Tnode225809* b);
N_NIMCALL(NIM_BOOL, equalsets_276082)(Tnode225809* a, Tnode225809* b);
N_NIMCALL(Tnode225809*, intersectsets_276061)(Tnode225809* a, Tnode225809* b);
N_NIMCALL(Tnode225809*, unionsets_276047)(Tnode225809* a, Tnode225809* b);
N_NIMCALL(Tnode225809*, symdiffsets_276068)(Tnode225809* a, Tnode225809* b);
N_NIMCALL(NimStringDesc*, nimCharToStr)(NIM_CHAR x);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s, NI start_81216, NI last);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s, NI first, NI last);
N_NIMCALL(NI, nimParseBiggestFloat)(NimStringDesc* s, NF* number, NI start);
N_NIMCALL(NI, nimParseBiggestFloat)(NimStringDesc* s, NF* number, NI start);
N_NIMCALL(NIM_BOOL, levalueconv_293021)(Tnode225809* a, Tnode225809* b);
N_NIMCALL(NimStringDesc*, msgkindtostring_192406)(NU16 kind);
N_NIMCALL(NimStringDesc*, HEX24_247090)(Tnode225809* n);
N_NIMCALL(NI, compile_434060)(Tctx279048* c, Tsym225841* s);
static N_INLINE(NIM_BOOL, isemptytype_230932)(Ttype225847* t);
N_NIMCALL(Tnode225809*, getnullvalue_424007)(Ttype225847* typ, Tlineinfo190352 info);
N_NIMCALL(Tnode225809*, newnodei_227351)(NU8 kind, Tlineinfo190352 info);
N_NIMCALL(Tnode225809*, newsymnode_227325)(Tsym225841* sym);
N_NIMCALL(Tnode225809*, evaltemplate_431400)(Tnode225809* n, Tsym225841* tmpl, Tsym225841* gensymowner);
N_NIMCALL(NIM_BOOL, overlap_276012)(Tnode225809* a, Tnode225809* b);
N_NIMCALL(void, pushsafepoint_433366)(Tstackframe432208* f, NI pc);
N_NIMCALL(TGenericSeq*, incrSeqV2)(TGenericSeq* seq, NI elemsize);
N_NIMCALL(void, popsafepoint_433410)(Tstackframe432208* f);
static N_INLINE(NI, pop_433414)(TY333608** s);
N_NIMCALL(TGenericSeq*, setLengthSeq)(TGenericSeq* seq, NI elemsize, NI newlen);
N_NIMCALL(void, cleanuponexception_433451)(Tctx279048* c, Tstackframe432208* tos, TY433455* Result);
N_NIMCALL(Ttype225847*, skiptypes_229167)(Ttype225847* t, NU64 kinds);
N_NIMCALL(NI, inheritancediff_262091)(Ttype225847* a, Ttype225847* b);
N_NIMCALL(void, bailout_432358)(Tctx279048* c, Tstackframe432208* tos);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_NIMCALL(NIM_BOOL, fitsregister_422466)(Ttype225847* t);
N_NIMCALL(void, message_196161)(Tlineinfo190352 info, NU16 msg, NimStringDesc* arg);
N_NIMCALL(void, msgquit_191491)(NI8 x);
N_NIMCALL(NI64, getordvalue_255178)(Tnode225809* n);
N_NIMCALL(void, genericShallowAssign)(void* dest, void* src, TNimType* mt);
N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newlen);
N_NIMCALL(NIM_BOOL, sametype_260092)(Ttype225847* a, Ttype225847* b, NU8 flags);
N_NIMCALL(void, internalerror_196172)(Tlineinfo190352 info, NimStringDesc* errmsg);
N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
N_NIMCALL(NimStringDesc*, reprEnum)(NI e_87059, TNimType* typ);
N_NIMCALL(Tnode225809*, copynode_229660)(Tnode225809* src);
N_NIMCALL(Tnode225809*, opmaptypetoast_428274)(Ttype225847* t, Tlineinfo190352 info);
N_NIMCALL(NimStringDesc*, opslurp_428049)(NimStringDesc* file, Tlineinfo190352 info, Tsym225841* module);
N_NIMCALL(NimStringDesc*, opgorge_428027)(NimStringDesc* cmd, NimStringDesc* input, NimStringDesc* cache);
N_NIMCALL(Tnode225809*, parsestring_245506)(NimStringDesc* s, NimStringDesc* filename, NI line, Terrorhandler216183 errorhandler);
N_NIMCALL(NimStringDesc*, tofullpath_191665)(NI32 fileidx);
N_CLOSURE(void, HEX3Aanonymous_442605)(Tlineinfo190352 info, NU16 msg, NimStringDesc* arg, void* ClEnv);
N_NIMCALL(NimStringDesc*, formatmsg_194691)(Tlineinfo190352 info, NU16 msg, NimStringDesc* arg);
N_CLOSURE(void, HEX3Aanonymous_442655)(Tlineinfo190352 info, NU16 msg, NimStringDesc* arg, void* ClEnv);
static N_INLINE(NimStringDesc*, tofilelinecol_191869)(Tlineinfo190352 info);
N_NIMCALL(Tident198021*, getident_198463)(NimStringDesc* identifier);
N_NIMCALL(NIM_BOOL, opconv_433815)(Tfullreg432204* dest, Tfullreg432204 src, Ttype225847* desttyp, Ttype225847* srctyp);
N_NIMCALL(void, internalerror_196191)(NimStringDesc* errmsg);
N_NIMCALL(NimStringDesc*, nimInt64ToStr)(NI64 x);
N_NIMCALL(NimStringDesc*, HEX24_8801)(NU64 x);
N_NIMCALL(NimStringDesc*, nimFloatToStr)(NF f);
N_NIMCALL(NimStringDesc*, typetostring_255032)(Ttype225847* typ, NU8 prefer);
N_NIMCALL(NI64, firstord_255004)(Ttype225847* t);
N_NIMCALL(NI64, lastord_255010)(Ttype225847* t);
N_NIMCALL(NimStringDesc*, HEX24_196279)(TY91159 x);
N_NIMCALL(void, delson_229597)(Tnode225809* father, NI idx);
N_NIMCALL(Tsym225841*, newsym_226656)(NU8 symkind, Tident198021* name, Tsym225841* owner, Tlineinfo190352 info);
N_NIMCALL(Tnode225809*, loadany_430461)(NimStringDesc* s, Ttype225847* t);
N_NIMCALL(NimStringDesc*, rawNewString)(NI cap);
N_NIMCALL(void, storeany_429625)(NimStringDesc** s, Ttype225847* t, Tnode225809* a);
N_NIMCALL(NIM_BOOL, cyclictree_254138)(Tnode225809* n);
N_NIMCALL(Tnode225809*, evalconstexpraux_445766)(Tsym225841* module, Tsym225841* prc, Tnode225809* n_445770, NU8 mode);
N_NIMCALL(Tnode225809*, transformexpr_417607)(Tsym225841* module, Tnode225809* n);
static N_INLINE(void, pushSafePoint)(TSafePoint* s);
N_NIMCALL(NI, genexpr_426450)(Tctx279048* c, Tnode225809* n, NIM_BOOL requiresvalue);
static N_INLINE(void, popSafePoint)(void);
N_NIMCALL(void, reraiseException)(void);
N_NIMCALL(void, evalstmt_444747)(Tctx279048* c, Tnode225809* n_444750);
N_NIMCALL(NI, genstmt_426428)(Tctx279048* c, Tnode225809* n);
N_NIMCALL(Tnode225809*, execute_444612)(Tctx279048* c, NI start);
N_NIMCALL(Tnode225809*, newstrnode_226644)(NU8 kind, NimStringDesc* strval);
STRING_LITERAL(TMP2802, "", 0);
STRING_LITERAL(TMP2803, "in call \'$#\' got $#, but expected $# argument(s)", 48);
STRING_LITERAL(TMP2805, "stdlib.math.sqrt", 16);
TNimNode* NimDT_432204_kind[7];
STRING_LITERAL(TMP2809, "i < a.rc - 1 ", 13);
STRING_LITERAL(TMP2810, "s[i + a.rb + 1].kind == rkFloat ", 32);
STRING_LITERAL(TMP2812, "stdlib.math.ln", 14);
STRING_LITERAL(TMP2814, "stdlib.math.log10", 17);
STRING_LITERAL(TMP2816, "stdlib.math.log2", 16);
STRING_LITERAL(TMP2818, "stdlib.math.exp", 15);
STRING_LITERAL(TMP2820, "stdlib.math.round", 17);
STRING_LITERAL(TMP2822, "stdlib.math.arccos", 18);
STRING_LITERAL(TMP2824, "stdlib.math.arcsin", 18);
STRING_LITERAL(TMP2826, "stdlib.math.arctan", 18);
STRING_LITERAL(TMP2828, "stdlib.math.arctan2", 19);
STRING_LITERAL(TMP2830, "stdlib.math.cos", 15);
STRING_LITERAL(TMP2832, "stdlib.math.cosh", 16);
STRING_LITERAL(TMP2834, "stdlib.math.hypot", 17);
STRING_LITERAL(TMP2836, "stdlib.math.sinh", 16);
STRING_LITERAL(TMP2838, "stdlib.math.sin", 15);
STRING_LITERAL(TMP2840, "stdlib.math.tan", 15);
STRING_LITERAL(TMP2842, "stdlib.math.tanh", 16);
STRING_LITERAL(TMP2844, "stdlib.math.pow", 15);
STRING_LITERAL(TMP2846, "stdlib.math.trunc", 17);
STRING_LITERAL(TMP2848, "stdlib.math.floor", 17);
STRING_LITERAL(TMP2850, "stdlib.math.ceil", 16);
STRING_LITERAL(TMP2852, "stdlib.math.fmod", 16);
STRING_LITERAL(TMP2854, "stdlib.os.getEnv", 16);
STRING_LITERAL(TMP2855, "s[i + a.rb + 1].kind == rkNode ", 31);
STRING_LITERAL(TMP2857, "stdlib.os.existsEnv", 19);
STRING_LITERAL(TMP2859, "stdlib.os.dirExists", 19);
STRING_LITERAL(TMP2861, "stdlib.os.fileExists", 20);
STRING_LITERAL(TMP2863, "stdlib.system.writeFile", 23);
STRING_LITERAL(TMP2866, "stdlib.system.getCurrentExceptionMsg", 36);
STRING_LITERAL(TMP2916, "stack trace: (most recent call last)", 36);
STRING_LITERAL(TMP2917, " calls omitted\012", 15);
STRING_LITERAL(TMP2918, "limited VM support for \'addr\'", 29);
STRING_LITERAL(TMP2919, "limited VM support for \'ref\'", 28);
STRING_LITERAL(TMP2924, "symbol", 6);
STRING_LITERAL(TMP2926, "[", 1);
STRING_LITERAL(TMP2927, "..", 2);
STRING_LITERAL(TMP2928, "]", 1);
STRING_LITERAL(TMP2930, "VM not allowed to do FFI", 24);
STRING_LITERAL(TMP2931, "VM not built with FFI support", 29);
NIM_CONST TY433455 TMP2935 = {((NI) -1),
NIM_NIL}
;
STRING_LITERAL(TMP2936, "too implement", 13);
STRING_LITERAL(TMP2937, "value out of range", 18);
STRING_LITERAL(TMP2938, "cannot add to node kind: ", 25);
STRING_LITERAL(TMP2939, "intVal", 6);
STRING_LITERAL(TMP2940, "floatVal", 8);
STRING_LITERAL(TMP2941, "ident", 5);
STRING_LITERAL(TMP2994, "node has no type", 16);
STRING_LITERAL(TMP2995, "strVal", 6);
STRING_LITERAL(TMP3017, "multiple statements", 19);
STRING_LITERAL(TMP3018, "callsite", 8);
STRING_LITERAL(TMP3019, "(", 1);
STRING_LITERAL(TMP3020, ",", 1);
STRING_LITERAL(TMP3021, ")", 1);
STRING_LITERAL(TMP3022, "cannot set type", 15);
STRING_LITERAL(TMP3023, "opConv for enum", 15);
STRING_LITERAL(TMP3024, " ", 1);
STRING_LITERAL(TMP3026, "false", 5);
STRING_LITERAL(TMP3027, "true", 4);
STRING_LITERAL(TMP3028, "cannot convert to string ", 25);
STRING_LITERAL(TMP3029, "cannot evaluate cast", 20);
STRING_LITERAL(TMP3031, "compiler/vm.nim", 15);
NIM_CONST TY91159 TMP3030 = {((NimStringDesc*) &TMP3031),
((NI) 1338)}
;
NIM_CONST TY91159 TMP3032 = {((NimStringDesc*) &TMP3031),
((NI) 1339)}
;
STRING_LITERAL(TMP3033, "request to create a NimNode of invalid kind", 43);
STRING_LITERAL(TMP3034, ":tmp", 4);
STRING_LITERAL(TMP3035, "request to create symbol of invalid kind", 40);
NIM_CONST TY91159 TMP3036 = {((NimStringDesc*) &TMP3031),
((NI) 1393)}
;
STRING_LITERAL(TMP3688, "s[i + a.rb + 1].kind == rkInt ", 30);
Tctx279048* globalctx_445273;
NI olderrorcount_445407;
NI evalmacrocounter_446303;
extern Gcheap51218 gch_51259;
TNimType NTI432204; /* TFullReg */
TNimType NTI432202; /* TRegisterKind */
extern TNimType NTI8112; /* BiggestInt */
extern TNimType NTI8114; /* BiggestFloat */
extern TNimType NTI225801; /* PNode */
TNimType NTI432219; /* ptr TFullReg */
extern TNimType NTI432221; /* ptr PNode */
TNimType NTI432208; /* TStackFrame */
extern TNimType NTI225807; /* PSym */
TNimType NTI432864; /* seq[TFullReg] */
extern TNimType NTI108; /* int */
extern TNimType NTI333608; /* seq[int] */
TNimType NTI432206; /* PStackFrame */
TNimType NTI444496; /* object */
extern TNimType NTI346033; /* range -1..0(int) */
extern TNimType NTI149; /* string */
TNimType NTI444608; /* ref object */
extern TNimType NTI225809; /* TNode */
extern TNimType NTI225803; /* TNodeSeq */
extern TNimType NTI225029; /* TNodeKind */
extern TSafePoint* exchandler_21043;
extern Tnode225809* emptynode_226807;
extern NI gerrorcounter_191399;

static N_INLINE(NI, safelen_226126)(Tnode225809* n) {
	NI result;
	result = 0;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = ((*n).kind >= ((NU8) 0) && (*n).kind <= ((NU8) 23));
		if (LOC3) goto LA4;
		LOC3 = (*n).kindU.S6.sons == 0;
		LA4: ;
		if (!LOC3) goto LA5;
		result = ((NI) 0);
	}
	goto LA1;
	LA5: ;
	{
		result = ((*n).kindU.S6.sons ? (*n).kindU.S6.sons->Sup.len : 0);
	}
	LA1: ;
	return result;
}

static N_INLINE(NIM_BOOL, canbecycleroot_52867)(Cell49147* c) {
	NIM_BOOL result;
	result = 0;
	result = !((((*(*c).typ).flags &(1<<((((NU8) 1))&7)))!=0));
	return result;
}

static N_INLINE(void, rtladdcycleroot_53623)(Cell49147* c) {
	{
		if (!!((((NI) ((NI)((*c).refcount & ((NI) 3)))) == ((NI) 3)))) goto LA3;
		(*c).refcount = (NI)((NI)((*c).refcount & ((NI) -4)) | ((NI) 3));
		incl_49865((&gch_51259.cycleroots), c);
	}
	LA3: ;
}

static N_INLINE(void, incref_55222)(Cell49147* c) {
	(*c).refcount = (NI)((NU32)((*c).refcount) + (NU32)(((NI) 8)));
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = canbecycleroot_52867(c);
		if (!LOC3) goto LA4;
		rtladdcycleroot_53623(c);
	}
	LA4: ;
}

static N_INLINE(Cell49147*, usrtocell_52846)(void* usr) {
	Cell49147* result;
	result = 0;
	result = ((Cell49147*) ((NI)((NU32)(((NI) (usr))) - (NU32)(((NI)sizeof(Cell49147))))));
	return result;
}

static N_INLINE(void, rtladdzct_54404)(Cell49147* c) {
	addzct_52817((&gch_51259.zct), c);
}

static N_INLINE(void, decref_54804)(Cell49147* c) {
	{
		(*c).refcount -= ((NI) 8);
		if (!((NU32)((*c).refcount) < (NU32)(((NI) 8)))) goto LA3;
		rtladdzct_54404(c);
	}
	goto LA1;
	LA3: ;
	{
		NIM_BOOL LOC6;
		LOC6 = 0;
		LOC6 = canbecycleroot_52867(c);
		if (!LOC6) goto LA7;
		rtladdcycleroot_53623(c);
	}
	goto LA1;
	LA7: ;
	LA1: ;
}

static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		Cell49147* LOC5;
		if (!!((src == NIM_NIL))) goto LA3;
		LOC5 = 0;
		LOC5 = usrtocell_52846(src);
		incref_55222(LOC5);
	}
	LA3: ;
	{
		Cell49147* LOC10;
		if (!!(((*dest) == NIM_NIL))) goto LA8;
		LOC10 = 0;
		LOC10 = usrtocell_52846((*dest));
		decref_54804(LOC10);
	}
	LA8: ;
	(*dest) = src;
}

N_NIMCALL(void, myreset_432401)(Tfullreg432204* n) {
	genericReset((void*)(&(*n)), (&NTI432204));
}

N_NIMCALL(void, setresult_432860)(Vmargs279042* a, NF v) {
	TY432864* s;
	s = 0;
	s = ((TY432864*) ((*a).slots));
	{
		if (!!((s->data[(*a).ra].kind == ((NU8) 3)))) goto LA3;
		myreset_432401((&s->data[(*a).ra]));
		s->data[(*a).ra].kind = ((NU8) 3);
	}
	LA3: ;
	s->data[(*a).ra].kindU.floatval = v;
}

N_NIMCALL(NF, getfloat_433046)(Vmargs279042* a, NI i) {
	NF result;
	TY432864* s;
	result = 0;
	{
		if (!!((((NI) (i)) < ((NI) ((NI)(((NI) ((*a).rc)) - ((NI) 1))))))) goto LA3;
		raiseassert_91171(((NimStringDesc*) &TMP2809));
	}
	LA3: ;
	s = ((TY432864*) ((*a).slots));
	{
		if (!!((s->data[(NI)(((NI) ((NI)(((NI) (i)) + ((NI) ((*a).rb))))) + ((NI) 1))].kind == ((NU8) 3)))) goto LA7;
		raiseassert_91171(((NimStringDesc*) &TMP2810));
	}
	LA7: ;
	result = s->data[(NI)(((NI) ((NI)(((NI) (i)) + ((NI) ((*a).rb))))) + ((NI) 1))].kindU.floatval;
	return result;
}

N_NIMCALL(void, sqrtwrapper_445105)(Vmargs279042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_433046(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = sqrt(LOC1);
	setresult_432860(a, LOC2);
}

N_NIMCALL(void, lnwrapper_445108)(Vmargs279042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_433046(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = log(LOC1);
	setresult_432860(a, LOC2);
}

N_NIMCALL(void, log10wrapper_445111)(Vmargs279042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_433046(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = log10(LOC1);
	setresult_432860(a, LOC2);
}

N_NIMCALL(void, log2wrapper_445114)(Vmargs279042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_433046(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = log2_163425(LOC1);
	setresult_432860(a, LOC2);
}

N_NIMCALL(void, expwrapper_445117)(Vmargs279042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_433046(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = exp(LOC1);
	setresult_432860(a, LOC2);
}

N_NIMCALL(void, setresult_432837)(Vmargs279042* a, NI64 v) {
	TY432864* s;
	s = 0;
	s = ((TY432864*) ((*a).slots));
	{
		if (!!((s->data[(*a).ra].kind == ((NU8) 2)))) goto LA3;
		myreset_432401((&s->data[(*a).ra]));
		s->data[(*a).ra].kind = ((NU8) 2);
	}
	LA3: ;
	s->data[(*a).ra].kindU.intval = v;
}

N_NIMCALL(void, roundwrapper_445120)(Vmargs279042* a) {
	NF LOC1;
	NI LOC2;
	LOC1 = 0;
	LOC1 = getfloat_433046(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = lrint(LOC1);
	setresult_432837(a, ((NI64) (LOC2)));
}

N_NIMCALL(void, arccoswrapper_445123)(Vmargs279042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_433046(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = acos(LOC1);
	setresult_432860(a, LOC2);
}

N_NIMCALL(void, arcsinwrapper_445126)(Vmargs279042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_433046(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = asin(LOC1);
	setresult_432860(a, LOC2);
}

N_NIMCALL(void, arctanwrapper_445129)(Vmargs279042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_433046(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = atan(LOC1);
	setresult_432860(a, LOC2);
}

N_NIMCALL(void, arctan2wrapper_445132)(Vmargs279042* a) {
	NF LOC1;
	NF LOC2;
	NF LOC3;
	LOC1 = 0;
	LOC1 = getfloat_433046(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = getfloat_433046(a, ((NI) 1));
	LOC3 = 0;
	LOC3 = atan2(LOC1, LOC2);
	setresult_432860(a, LOC3);
}

N_NIMCALL(void, coswrapper_445135)(Vmargs279042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_433046(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = cos(LOC1);
	setresult_432860(a, LOC2);
}

N_NIMCALL(void, coshwrapper_445138)(Vmargs279042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_433046(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = cosh(LOC1);
	setresult_432860(a, LOC2);
}

N_NIMCALL(void, hypotwrapper_445141)(Vmargs279042* a) {
	NF LOC1;
	NF LOC2;
	NF LOC3;
	LOC1 = 0;
	LOC1 = getfloat_433046(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = getfloat_433046(a, ((NI) 1));
	LOC3 = 0;
	LOC3 = hypot(LOC1, LOC2);
	setresult_432860(a, LOC3);
}

N_NIMCALL(void, sinhwrapper_445144)(Vmargs279042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_433046(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = sinh(LOC1);
	setresult_432860(a, LOC2);
}

N_NIMCALL(void, sinwrapper_445147)(Vmargs279042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_433046(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = sin(LOC1);
	setresult_432860(a, LOC2);
}

N_NIMCALL(void, tanwrapper_445150)(Vmargs279042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_433046(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = tan(LOC1);
	setresult_432860(a, LOC2);
}

N_NIMCALL(void, tanhwrapper_445153)(Vmargs279042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_433046(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = tanh(LOC1);
	setresult_432860(a, LOC2);
}

N_NIMCALL(void, powwrapper_445156)(Vmargs279042* a) {
	NF LOC1;
	NF LOC2;
	NF LOC3;
	LOC1 = 0;
	LOC1 = getfloat_433046(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = getfloat_433046(a, ((NI) 1));
	LOC3 = 0;
	LOC3 = pow(LOC1, LOC2);
	setresult_432860(a, LOC3);
}

N_NIMCALL(void, truncwrapper_445159)(Vmargs279042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_433046(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = trunc(LOC1);
	setresult_432860(a, LOC2);
}

N_NIMCALL(void, floorwrapper_445162)(Vmargs279042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_433046(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = floor(LOC1);
	setresult_432860(a, LOC2);
}

N_NIMCALL(void, ceilwrapper_445165)(Vmargs279042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_433046(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = ceil(LOC1);
	setresult_432860(a, LOC2);
}

N_NIMCALL(void, fmodwrapper_445168)(Vmargs279042* a) {
	NF LOC1;
	NF LOC2;
	NF LOC3;
	LOC1 = 0;
	LOC1 = getfloat_433046(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = getfloat_433046(a, ((NI) 1));
	LOC3 = 0;
	LOC3 = fmod(LOC1, LOC2);
	setresult_432860(a, LOC3);
}

static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src) {
	{
		Cell49147* c;
		if (!!((src == NIM_NIL))) goto LA3;
		c = usrtocell_52846(src);
		(*c).refcount += ((NI) 8);
	}
	LA3: ;
	{
		Cell49147* c;
		if (!!(((*dest) == NIM_NIL))) goto LA7;
		c = usrtocell_52846((*dest));
		{
			(*c).refcount -= ((NI) 8);
			if (!((NU32)((*c).refcount) < (NU32)(((NI) 8)))) goto LA11;
			rtladdzct_54404(c);
		}
		LA11: ;
	}
	LA7: ;
	(*dest) = src;
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	Cell49147* c;
	c = usrtocell_52846(p);
	{
		(*c).refcount -= ((NI) 8);
		if (!((NU32)((*c).refcount) < (NU32)(((NI) 8)))) goto LA3;
		rtladdzct_54404(c);
	}
	LA3: ;
}

N_NIMCALL(void, setresult_432915)(Vmargs279042* a, NimStringDesc* v) {
	TY432864* s;
	NimStringDesc* LOC5;
	s = 0;
	s = ((TY432864*) ((*a).slots));
	{
		if (!!((s->data[(*a).ra].kind == ((NU8) 1)))) goto LA3;
		myreset_432401((&s->data[(*a).ra]));
		s->data[(*a).ra].kind = ((NU8) 1);
	}
	LA3: ;
	asgnRefNoCycle((void**) (&s->data[(*a).ra].kindU.node), newnode_226401(((NU8) 20)));
	LOC5 = 0;
	LOC5 = (*s->data[(*a).ra].kindU.node).kindU.S3.strval; (*s->data[(*a).ra].kindU.node).kindU.S3.strval = copyStringRC1(v);
	if (LOC5) nimGCunrefNoCycle(LOC5);
}

N_NIMCALL(NimStringDesc*, getstring_433072)(Vmargs279042* a, NI i) {
	NimStringDesc* result;
	TY432864* s;
	result = 0;
	{
		if (!!((((NI) (i)) < ((NI) ((NI)(((NI) ((*a).rc)) - ((NI) 1))))))) goto LA3;
		raiseassert_91171(((NimStringDesc*) &TMP2809));
	}
	LA3: ;
	s = ((TY432864*) ((*a).slots));
	{
		if (!!((s->data[(NI)(((NI) ((NI)(((NI) (i)) + ((NI) ((*a).rb))))) + ((NI) 1))].kind == ((NU8) 1)))) goto LA7;
		raiseassert_91171(((NimStringDesc*) &TMP2855));
	}
	LA7: ;
	result = copyString((*s->data[(NI)(((NI) ((NI)(((NI) (i)) + ((NI) ((*a).rb))))) + ((NI) 1))].kindU.node).kindU.S3.strval);
	return result;
}

N_NIMCALL(void, getenvwrapper_445171)(Vmargs279042* a) {
	NimStringDesc* LOC1;
	NimStringDesc* LOC2;
	LOC1 = 0;
	LOC1 = getstring_433072(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = getenv_132243(LOC1);
	setresult_432915(a, LOC2);
}

N_NIMCALL(void, setresult_432883)(Vmargs279042* a, NIM_BOOL v_432886) {
	NI v;
	TY432864* s;
	v = v_432886;
	s = 0;
	s = ((TY432864*) ((*a).slots));
	{
		if (!!((s->data[(*a).ra].kind == ((NU8) 2)))) goto LA3;
		myreset_432401((&s->data[(*a).ra]));
		s->data[(*a).ra].kind = ((NU8) 2);
	}
	LA3: ;
	s->data[(*a).ra].kindU.intval = ((NI64) (v));
}

N_NIMCALL(void, existsenvwrapper_445174)(Vmargs279042* a) {
	NimStringDesc* LOC1;
	NIM_BOOL LOC2;
	LOC1 = 0;
	LOC1 = getstring_433072(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = existsenv_132258(LOC1);
	setresult_432883(a, LOC2);
}

static N_INLINE(NIM_BOOL, direxists_128220)(NimStringDesc* dir) {
	NIM_BOOL result;
	result = 0;
	result = nosexistsDir(dir);
	return result;
}

N_NIMCALL(void, direxistswrapper_445177)(Vmargs279042* a) {
	NimStringDesc* LOC1;
	NIM_BOOL LOC2;
	LOC1 = 0;
	LOC1 = getstring_433072(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = direxists_128220(LOC1);
	setresult_432883(a, LOC2);
}

static N_INLINE(NIM_BOOL, fileexists_128210)(NimStringDesc* filename) {
	NIM_BOOL result;
	result = 0;
	result = nosexistsFile(filename);
	return result;
}

N_NIMCALL(void, fileexistswrapper_445180)(Vmargs279042* a) {
	NimStringDesc* LOC1;
	NIM_BOOL LOC2;
	LOC1 = 0;
	LOC1 = getstring_433072(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = fileexists_128210(LOC1);
	setresult_432883(a, LOC2);
}

N_NIMCALL(void, writefilewrapper_445183)(Vmargs279042* a) {
	NimStringDesc* LOC1;
	NimStringDesc* LOC2;
	LOC1 = 0;
	LOC1 = getstring_433072(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = getstring_433072(a, ((NI) 1));
	writefile_17075(LOC1, LOC2);
}

N_NIMCALL(void, getcurrentexceptionmsgwrapper_445084)(Vmargs279042* a) {
	NimStringDesc* LOC1;
	LOC1 = 0;
	{
		if (!(*a).currentexception == 0) goto LA4;
		LOC1 = copyString(((NimStringDesc*) &TMP2802));
	}
	goto LA2;
	LA4: ;
	{
		Tnode225809* LOC7;
		LOC7 = 0;
		LOC7 = skipcolon_429258((*(*a).currentexception).kindU.S6.sons->data[((NI) 3)]);
		LOC1 = copyString((*LOC7).kindU.S3.strval);
	}
	LA2: ;
	setresult_432915(a, LOC1);
}

N_NIMCALL(void, registeradditionalops_445102)(Tctx279048* c) {
	Vmcallback279044 LOC1;
	Vmcallback279044 LOC2;
	Vmcallback279044 LOC3;
	Vmcallback279044 LOC4;
	Vmcallback279044 LOC5;
	Vmcallback279044 LOC6;
	Vmcallback279044 LOC7;
	Vmcallback279044 LOC8;
	Vmcallback279044 LOC9;
	Vmcallback279044 LOC10;
	Vmcallback279044 LOC11;
	Vmcallback279044 LOC12;
	Vmcallback279044 LOC13;
	Vmcallback279044 LOC14;
	Vmcallback279044 LOC15;
	Vmcallback279044 LOC16;
	Vmcallback279044 LOC17;
	Vmcallback279044 LOC18;
	Vmcallback279044 LOC19;
	Vmcallback279044 LOC20;
	Vmcallback279044 LOC21;
	Vmcallback279044 LOC22;
	Vmcallback279044 LOC23;
	Vmcallback279044 LOC24;
	Vmcallback279044 LOC25;
	Vmcallback279044 LOC26;
	Vmcallback279044 LOC27;
	Vmcallback279044 LOC28;
	memset((void*)(&LOC1), 0, sizeof(LOC1));
	LOC1.ClPrc = ((TMP2811) (sqrtwrapper_445105)); LOC1.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2805), LOC1);
	memset((void*)(&LOC2), 0, sizeof(LOC2));
	LOC2.ClPrc = ((TMP2813) (lnwrapper_445108)); LOC2.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2812), LOC2);
	memset((void*)(&LOC3), 0, sizeof(LOC3));
	LOC3.ClPrc = ((TMP2815) (log10wrapper_445111)); LOC3.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2814), LOC3);
	memset((void*)(&LOC4), 0, sizeof(LOC4));
	LOC4.ClPrc = ((TMP2817) (log2wrapper_445114)); LOC4.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2816), LOC4);
	memset((void*)(&LOC5), 0, sizeof(LOC5));
	LOC5.ClPrc = ((TMP2819) (expwrapper_445117)); LOC5.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2818), LOC5);
	memset((void*)(&LOC6), 0, sizeof(LOC6));
	LOC6.ClPrc = ((TMP2821) (roundwrapper_445120)); LOC6.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2820), LOC6);
	memset((void*)(&LOC7), 0, sizeof(LOC7));
	LOC7.ClPrc = ((TMP2823) (arccoswrapper_445123)); LOC7.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2822), LOC7);
	memset((void*)(&LOC8), 0, sizeof(LOC8));
	LOC8.ClPrc = ((TMP2825) (arcsinwrapper_445126)); LOC8.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2824), LOC8);
	memset((void*)(&LOC9), 0, sizeof(LOC9));
	LOC9.ClPrc = ((TMP2827) (arctanwrapper_445129)); LOC9.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2826), LOC9);
	memset((void*)(&LOC10), 0, sizeof(LOC10));
	LOC10.ClPrc = ((TMP2829) (arctan2wrapper_445132)); LOC10.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2828), LOC10);
	memset((void*)(&LOC11), 0, sizeof(LOC11));
	LOC11.ClPrc = ((TMP2831) (coswrapper_445135)); LOC11.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2830), LOC11);
	memset((void*)(&LOC12), 0, sizeof(LOC12));
	LOC12.ClPrc = ((TMP2833) (coshwrapper_445138)); LOC12.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2832), LOC12);
	memset((void*)(&LOC13), 0, sizeof(LOC13));
	LOC13.ClPrc = ((TMP2835) (hypotwrapper_445141)); LOC13.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2834), LOC13);
	memset((void*)(&LOC14), 0, sizeof(LOC14));
	LOC14.ClPrc = ((TMP2837) (sinhwrapper_445144)); LOC14.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2836), LOC14);
	memset((void*)(&LOC15), 0, sizeof(LOC15));
	LOC15.ClPrc = ((TMP2839) (sinwrapper_445147)); LOC15.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2838), LOC15);
	memset((void*)(&LOC16), 0, sizeof(LOC16));
	LOC16.ClPrc = ((TMP2841) (tanwrapper_445150)); LOC16.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2840), LOC16);
	memset((void*)(&LOC17), 0, sizeof(LOC17));
	LOC17.ClPrc = ((TMP2843) (tanhwrapper_445153)); LOC17.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2842), LOC17);
	memset((void*)(&LOC18), 0, sizeof(LOC18));
	LOC18.ClPrc = ((TMP2845) (powwrapper_445156)); LOC18.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2844), LOC18);
	memset((void*)(&LOC19), 0, sizeof(LOC19));
	LOC19.ClPrc = ((TMP2847) (truncwrapper_445159)); LOC19.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2846), LOC19);
	memset((void*)(&LOC20), 0, sizeof(LOC20));
	LOC20.ClPrc = ((TMP2849) (floorwrapper_445162)); LOC20.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2848), LOC20);
	memset((void*)(&LOC21), 0, sizeof(LOC21));
	LOC21.ClPrc = ((TMP2851) (ceilwrapper_445165)); LOC21.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2850), LOC21);
	memset((void*)(&LOC22), 0, sizeof(LOC22));
	LOC22.ClPrc = ((TMP2853) (fmodwrapper_445168)); LOC22.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2852), LOC22);
	memset((void*)(&LOC23), 0, sizeof(LOC23));
	LOC23.ClPrc = ((TMP2856) (getenvwrapper_445171)); LOC23.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2854), LOC23);
	memset((void*)(&LOC24), 0, sizeof(LOC24));
	LOC24.ClPrc = ((TMP2858) (existsenvwrapper_445174)); LOC24.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2857), LOC24);
	memset((void*)(&LOC25), 0, sizeof(LOC25));
	LOC25.ClPrc = ((TMP2860) (direxistswrapper_445177)); LOC25.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2859), LOC25);
	memset((void*)(&LOC26), 0, sizeof(LOC26));
	LOC26.ClPrc = ((TMP2862) (fileexistswrapper_445180)); LOC26.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2861), LOC26);
	memset((void*)(&LOC27), 0, sizeof(LOC27));
	LOC27.ClPrc = ((TMP2865) (writefilewrapper_445183)); LOC27.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2863), LOC27);
	memset((void*)(&LOC28), 0, sizeof(LOC28));
	LOC28.ClPrc = ((TMP2867) (getcurrentexceptionmsgwrapper_445084)); LOC28.ClEnv = NIM_NIL;
	registercallback_279401(c, ((NimStringDesc*) &TMP2866), LOC28);
}

N_NIMCALL(void, setupglobalctx_445278)(Tsym225841* module) {
	{
		if (!globalctx_445273 == 0) goto LA3;
		asgnRef((void**) (&globalctx_445273), newctx_279282(module));
		registeradditionalops_445102(globalctx_445273);
	}
	goto LA1;
	LA3: ;
	{
		refresh_279374(globalctx_445273, module);
	}
	LA1: ;
}
N_NIMCALL(void, TMP2912)(void* p, NI op) {
	TY432864* a;
	NI LOC1;
	a = (TY432864*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	switch (a->data[LOC1].kind) {
	case ((NU8) 0):
	break;
	case ((NU8) 2):
	break;
	case ((NU8) 3):
	break;
	case ((NU8) 1):
	nimGCvisit((void*)a->data[LOC1].kindU.node, op);
	break;
	case ((NU8) 4):
	break;
	case ((NU8) 5):
	break;
	} 
	}
}
N_NIMCALL(void, TMP2913)(void* p, NI op) {
	Tstackframe432208* a;
	a = (Tstackframe432208*)p;
	nimGCvisit((void*)(*a).prc, op);
	nimGCvisit((void*)(*a).slots, op);
	nimGCvisit((void*)(*a).next, op);
	nimGCvisit((void*)(*a).safepoints, op);
}

N_NIMCALL(void, putintoreg_433320)(Tfullreg432204* dest, Tnode225809* n) {
	switch ((*n).kind) {
	case ((NU8) 20) ... ((NU8) 22):
	{
		NimStringDesc* LOC2;
		(*dest).kind = ((NU8) 1);
		unsureAsgnRef((void**) (&(*dest).kindU.node), newnode_226401(((NU8) 20)));
		LOC2 = 0;
		LOC2 = (*(*dest).kindU.node).kindU.S3.strval; (*(*dest).kindU.node).kindU.S3.strval = copyStringRC1((*n).kindU.S3.strval);
		if (LOC2) nimGCunrefNoCycle(LOC2);
	}
	break;
	case ((NU8) 5) ... ((NU8) 15):
	{
		(*dest).kind = ((NU8) 2);
		(*dest).kindU.intval = (*n).kindU.S1.intval;
	}
	break;
	case ((NU8) 16) ... ((NU8) 19):
	{
		(*dest).kind = ((NU8) 3);
		(*dest).kindU.floatval = (*n).kindU.S2.floatval;
	}
	break;
	default:
	{
		(*dest).kind = ((NU8) 1);
		unsureAsgnRef((void**) (&(*dest).kindU.node), n);
	}
	break;
	}
}

N_NIMCALL(void, setupmacroparam_446265)(Tnode225809* x, Ttype225847* typ, Tfullreg432204* Result) {
	switch ((*typ).kind) {
	case ((NU8) 59):
	{
		putintoreg_433320(Result, x);
	}
	break;
	case ((NU8) 8):
	{
		putintoreg_433320(Result, x);
	}
	break;
	default:
	{
		Tnode225809* n;
		(*Result).kind = ((NU8) 1);
		n = x;
		{
			if (!((*n).kind == ((NU8) 59) || (*n).kind == ((NU8) 58))) goto LA6;
			n = (*n).kindU.S6.sons->data[((NI) 1)];
		}
		LA6: ;
		n = canonvalue_420570(n);
		(*n).flags |= ((NU16)1)<<((((NU8) 13))%(sizeof(NU16)*8));
		asgnRefNoCycle((void**) (&(*n).typ), (*x).typ);
		unsureAsgnRef((void**) (&(*Result).kindU.node), n);
	}
	break;
	}
}

static N_INLINE(Tnode225809*, HEX5BHEX5D_226244)(Tnode225809* n, NI i) {
	Tnode225809* result;
	result = 0;
	result = (*n).kindU.S6.sons->data[i];
	return result;
}

static N_INLINE(NI, len_226098)(Tnode225809* n) {
	NI result;
	result = 0;
	{
		if (!(*n).kindU.S6.sons == 0) goto LA3;
		result = ((NI) 0);
	}
	goto LA1;
	LA3: ;
	{
		result = ((*n).kindU.S6.sons ? (*n).kindU.S6.sons->Sup.len : 0);
	}
	LA1: ;
	return result;
}

N_NIMCALL(Tnode225809*, regtonode_433340)(Tfullreg432204 x) {
	Tnode225809* result;
	result = 0;
	switch (x.kind) {
	case ((NU8) 0):
	{
		result = newnode_226401(((NU8) 1));
	}
	break;
	case ((NU8) 2):
	{
		result = newnode_226401(((NU8) 6));
		(*result).kindU.S1.intval = x.kindU.intval;
	}
	break;
	case ((NU8) 3):
	{
		result = newnode_226401(((NU8) 16));
		(*result).kindU.S2.floatval = x.kindU.floatval;
	}
	break;
	case ((NU8) 1):
	{
		result = x.kindU.node;
	}
	break;
	case ((NU8) 4):
	{
		result = regtonode_433340((*x.kindU.regaddr));
	}
	break;
	case ((NU8) 5):
	{
		result = (*x.kindU.nodeaddr);
	}
	break;
	}
	return result;
}
N_NIMCALL(void, TMP2915)(void* p, NI op) {
	TY444496* a;
	a = (TY444496*)p;
	nimGCvisit((void*)(*a).error442602, op);
	nimGCvisit((void*)(*a).error442652, op);
}

N_NIMCALL(void, createstrkeepnode_432467)(Tfullreg432204* x, NIM_BOOL keepnode) {
	{
		if (!(*x).kindU.node == 0) goto LA3;
		unsureAsgnRef((void**) (&(*x).kindU.node), newnode_226401(((NU8) 20)));
	}
	goto LA1;
	LA3: ;
	{
		NIM_BOOL LOC6;
		LOC6 = 0;
		LOC6 = ((*(*x).kindU.node).kind == ((NU8) 23));
		if (!(LOC6)) goto LA7;
		LOC6 = keepnode;
		LA7: ;
		if (!LOC6) goto LA8;
		genericReset((void*)(&(*(*x).kindU.node)), (&NTI225809));
		(*(*x).kindU.node).kind = ((NU8) 20);
	}
	goto LA1;
	LA8: ;
	{
		NIM_BOOL LOC11;
		LOC11 = 0;
		LOC11 = !(((*(*x).kindU.node).kind >= ((NU8) 20) && (*(*x).kindU.node).kind <= ((NU8) 22)));
		if (LOC11) goto LA12;
		LOC11 = (((*(*x).kindU.node).flags &(1<<((((NU8) 4))&15)))!=0);
		LA12: ;
		if (!LOC11) goto LA13;
		unsureAsgnRef((void**) (&(*x).kindU.node), newnode_226401(((NU8) 20)));
	}
	goto LA1;
	LA13: ;
	LA1: ;
}

N_NIMCALL(Tnode225809*, copyvalue_433158)(Tnode225809* src) {
	Tnode225809* result;
{	result = 0;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = (src == NIM_NIL);
		if (LOC3) goto LA4;
		LOC3 = (((*src).flags &(1<<((((NU8) 13))&15)))!=0);
		LA4: ;
		if (!LOC3) goto LA5;
		result = src;
		goto BeforeRet;
	}
	LA5: ;
	result = newnode_226401((*src).kind);
	(*result).info = (*src).info;
	asgnRefNoCycle((void**) (&(*result).typ), (*src).typ);
	(*result).flags = ((*src).flags & 26126);
	switch ((*src).kind) {
	case ((NU8) 5) ... ((NU8) 15):
	{
		(*result).kindU.S1.intval = (*src).kindU.S1.intval;
	}
	break;
	case ((NU8) 16) ... ((NU8) 19):
	{
		(*result).kindU.S2.floatval = (*src).kindU.S2.floatval;
	}
	break;
	case ((NU8) 3):
	{
		asgnRefNoCycle((void**) (&(*result).kindU.S4.sym), (*src).kindU.S4.sym);
	}
	break;
	case ((NU8) 2):
	{
		asgnRefNoCycle((void**) (&(*result).kindU.S5.ident), (*src).kindU.S5.ident);
	}
	break;
	case ((NU8) 20) ... ((NU8) 22):
	{
		NimStringDesc* LOC12;
		LOC12 = 0;
		LOC12 = (*result).kindU.S3.strval; (*result).kindU.S3.strval = copyStringRC1((*src).kindU.S3.strval);
		if (LOC12) nimGCunrefNoCycle(LOC12);
	}
	break;
	default:
	{
		NI LOC14;
		LOC14 = 0;
		LOC14 = sonslen_228387(src);
		if ((*result).kindU.S6.sons) nimGCunrefNoCycle((*result).kindU.S6.sons);
		(*result).kindU.S6.sons = (Tnodeseq225803*) newSeqRC1((&NTI225803), ((NI) (LOC14)));
		{
			NI i_433234;
			NI HEX3Atmp_433238;
			NI LOC16;
			NI res_433241;
			i_433234 = 0;
			HEX3Atmp_433238 = 0;
			LOC16 = 0;
			LOC16 = sonslen_228387(src);
			HEX3Atmp_433238 = (NI)(LOC16 - ((NI) 1));
			res_433241 = ((NI) 0);
			{
				while (1) {
					if (!(res_433241 <= HEX3Atmp_433238)) goto LA18;
					i_433234 = res_433241;
					asgnRefNoCycle((void**) (&(*result).kindU.S6.sons->data[i_433234]), copyvalue_433158((*src).kindU.S6.sons->data[i_433234]));
					res_433241 += ((NI) 1);
				} LA18: ;
			}
		}
	}
	break;
	}
	}BeforeRet: ;
	return result;
}

N_NIMCALL(void, asgncomplex_433260)(Tfullreg432204* x, Tfullreg432204 y) {
	{
		if (!!(((*x).kind == y.kind))) goto LA3;
		myreset_432401(x);
		(*x).kind = y.kind;
	}
	LA3: ;
	switch ((*x).kind) {
	case ((NU8) 0):
	{
	}
	break;
	case ((NU8) 2):
	{
		(*x).kindU.intval = y.kindU.intval;
	}
	break;
	case ((NU8) 3):
	{
		(*x).kindU.floatval = y.kindU.floatval;
	}
	break;
	case ((NU8) 1):
	{
		unsureAsgnRef((void**) (&(*x).kindU.node), copyvalue_433158(y.kindU.node));
	}
	break;
	case ((NU8) 4):
	{
		(*x).kindU.regaddr = y.kindU.regaddr;
	}
	break;
	case ((NU8) 5):
	{
		(*x).kindU.nodeaddr = y.kindU.nodeaddr;
	}
	break;
	}
}

N_NIMCALL(void, moveconst_433120)(Tfullreg432204* x, Tfullreg432204 y) {
	{
		if (!!(((*x).kind == y.kind))) goto LA3;
		myreset_432401(x);
		(*x).kind = y.kind;
	}
	LA3: ;
	switch ((*x).kind) {
	case ((NU8) 0):
	{
	}
	break;
	case ((NU8) 2):
	{
		(*x).kindU.intval = y.kindU.intval;
	}
	break;
	case ((NU8) 3):
	{
		(*x).kindU.floatval = y.kindU.floatval;
	}
	break;
	case ((NU8) 1):
	{
		unsureAsgnRef((void**) (&(*x).kindU.node), y.kindU.node);
	}
	break;
	case ((NU8) 4):
	{
		(*x).kindU.regaddr = y.kindU.regaddr;
	}
	break;
	case ((NU8) 5):
	{
		(*x).kindU.nodeaddr = y.kindU.nodeaddr;
	}
	break;
	}
}

N_NIMCALL(void, putintonode_433290)(Tnode225809** n, Tfullreg432204 x) {
	switch (x.kind) {
	case ((NU8) 0):
	{
	}
	break;
	case ((NU8) 2):
	{
		(*(*n)).kindU.S1.intval = x.kindU.intval;
	}
	break;
	case ((NU8) 3):
	{
		(*(*n)).kindU.S2.floatval = x.kindU.floatval;
	}
	break;
	case ((NU8) 1):
	{
		{
			if (!(((*x.kindU.node).flags &(1<<((((NU8) 13))&15)))!=0)) goto LA7;
			unsureAsgnRef((void**) (&(*n)), x.kindU.node);
		}
		goto LA5;
		LA7: ;
		{
			genericAssign((void*)(&(*(*n))), (void*)(&(*x.kindU.node)), (&NTI225809));
		}
		LA5: ;
	}
	break;
	case ((NU8) 4):
	{
		putintonode_433290(n, (*x.kindU.regaddr));
	}
	break;
	case ((NU8) 5):
	{
		genericAssign((void*)(&(*(*n))), (void*)(&(*(*x.kindU.nodeaddr))), (&NTI225809));
	}
	break;
	}
}

static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	memcpy(((NCSTRING) ((&(*dest).data[((*dest).Sup.len)- 0]))), ((NCSTRING) ((*src).data)), (NI)((*src).Sup.len + ((NI) 1)));
	(*dest).Sup.len += (*src).Sup.len;
}

static N_INLINE(NI, tolinenumber_191839)(Tlineinfo190352 info) {
	NI result;
	result = 0;
	result = ((NI) (info.line));
	return result;
}

N_NIMCALL(void, stacktraceaux_432233)(Tctx279048* c, Tstackframe432208* x_432236, NI pc, NI recursionlimit) {
{	{
		Tlineinfo190352 info;
		NimStringDesc* s;
		NI line;
		if (!!((x_432236 == NIM_NIL))) goto LA3;
		{
			NI calls;
			Tstackframe432208* x;
			NimStringDesc* LOC11;
			NimStringDesc* LOC12;
			if (!(recursionlimit == ((NI) 0))) goto LA7;
			calls = ((NI) 0);
			x = x_432236;
			{
				while (1) {
					if (!!((x == NIM_NIL))) goto LA10;
					calls += ((NI) 1);
					x = (*x).next;
				} LA10: ;
			}
			LOC11 = 0;
			LOC12 = 0;
			LOC12 = nimIntToStr(calls);
			LOC11 = rawNewString(LOC12->Sup.len + 15);
appendString(LOC11, LOC12);
appendString(LOC11, ((NimStringDesc*) &TMP2917));
			msgwriteln_191915(LOC11, 0);
			goto BeforeRet;
		}
		LA7: ;
		stacktraceaux_432233(c, (*x_432236).next, (*x_432236).comesfrom, (NI)(recursionlimit - ((NI) 1)));
		info = (*c).debug->data[pc];
		s = tofilename_191655(info.fileindex);
		line = tolinenumber_191839(info);
		{
			NimStringDesc* LOC17;
			if (!(((NI) 0) < line)) goto LA15;
			s = addChar(s, 40);
			LOC17 = 0;
			LOC17 = nimIntToStr(line);
			s = resizeString(s, LOC17->Sup.len + 0);
appendString(s, LOC17);
			s = addChar(s, 41);
		}
		LA15: ;
		{
			if (!!(((*x_432236).prc == NIM_NIL))) goto LA20;
			{
				NI k_432304;
				NI HEX3Atmp_432308;
				NI res_432311;
				k_432304 = 0;
				HEX3Atmp_432308 = 0;
				HEX3Atmp_432308 = ((((NI) 1) >= (NI)(((NI) 25) - (s ? s->Sup.len : 0))) ? ((NI) 1) : (NI)(((NI) 25) - (s ? s->Sup.len : 0)));
				res_432311 = ((NI) 1);
				{
					while (1) {
						if (!(res_432311 <= HEX3Atmp_432308)) goto LA24;
						k_432304 = res_432311;
						s = addChar(s, 32);
						res_432311 += ((NI) 1);
					} LA24: ;
				}
			}
			s = resizeString(s, (*(*(*x_432236).prc).name).s->Sup.len + 0);
appendString(s, (*(*(*x_432236).prc).name).s);
		}
		LA20: ;
		msgwriteln_191915(s, 0);
	}
	LA3: ;
	}BeforeRet: ;
}

N_NIMCALL(void, stacktrace_432336)(Tctx279048* c, Tstackframe432208* tos, NI pc, NU16 msg, NimStringDesc* arg) {
	msgwriteln_191915(((NimStringDesc*) &TMP2916), 0);
	stacktraceaux_432233(c, tos, pc, ((NI) 100));
	{
		if (!((*c).mode == ((NU8) 0))) goto LA3;
		globalerror_196107((*c).debug->data[pc], msg, arg);
	}
	goto LA1;
	LA3: ;
	{
		localerror_196128((*c).debug->data[pc], msg, arg);
	}
	LA1: ;
}

static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NIM_BOOL LOC11;
	int LOC13;
{	result = 0;
	{
		if (!(a == b)) goto LA3;
		result = NIM_TRUE;
		goto BeforeRet;
	}
	LA3: ;
	{
		NIM_BOOL LOC7;
		LOC7 = 0;
		LOC7 = (a == NIM_NIL);
		if (LOC7) goto LA8;
		LOC7 = (b == NIM_NIL);
		LA8: ;
		if (!LOC7) goto LA9;
		result = NIM_FALSE;
		goto BeforeRet;
	}
	LA9: ;
	LOC11 = 0;
	LOC11 = ((*a).Sup.len == (*b).Sup.len);
	if (!(LOC11)) goto LA12;
	LOC13 = 0;
	LOC13 = memcmp(((NCSTRING) ((*a).data)), ((NCSTRING) ((*b).data)), (*a).Sup.len);
	LOC11 = (LOC13 == ((NI32) 0));
	LA12: ;
	result = LOC11;
	goto BeforeRet;
	}BeforeRet: ;
	return result;
}

static N_INLINE(NI, cmpStrings)(NimStringDesc* a, NimStringDesc* b) {
	NI result;
	int LOC13;
{	result = 0;
	{
		if (!(a == b)) goto LA3;
		result = ((NI) 0);
		goto BeforeRet;
	}
	LA3: ;
	{
		if (!(a == NIM_NIL)) goto LA7;
		result = ((NI) -1);
		goto BeforeRet;
	}
	LA7: ;
	{
		if (!(b == NIM_NIL)) goto LA11;
		result = ((NI) 1);
		goto BeforeRet;
	}
	LA11: ;
	LOC13 = 0;
	LOC13 = strcmp(((NCSTRING) ((*a).data)), ((NCSTRING) ((*b).data)));
	result = ((NI) (LOC13));
	goto BeforeRet;
	}BeforeRet: ;
	return result;
}

N_NIMCALL(NI, compile_434060)(Tctx279048* c, Tsym225841* s) {
	NI result;
	result = 0;
	result = genproc_425765(c, s);
	return result;
}

static N_INLINE(NIM_BOOL, isemptytype_230932)(Ttype225847* t) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = (t == NIM_NIL);
	if (LOC1) goto LA2;
	LOC1 = ((*t).kind == ((NU8) 3) || (*t).kind == ((NU8) 7));
	LA2: ;
	result = LOC1;
	return result;
}

N_NIMCALL(void, pushsafepoint_433366)(Tstackframe432208* f, NI pc) {
	{
		if (!(*f).safepoints == 0) goto LA3;
		if ((*f).safepoints) nimGCunrefNoCycle((*f).safepoints);
		(*f).safepoints = (TY333608*) newSeqRC1((&NTI333608), 0);
	}
	LA3: ;
	(*f).safepoints = (TY333608*) incrSeqV2(&((*f).safepoints)->Sup, sizeof(NI));
	(*f).safepoints->data[(*f).safepoints->Sup.len] = pc;
	++(*f).safepoints->Sup.len;
}

static N_INLINE(NI, pop_433414)(TY333608** s) {
	NI result;
	NI L;
	result = 0;
	L = (NI)(((*s) ? (*s)->Sup.len : 0) - ((NI) 1));
	result = (*s)->data[L];
	(*s) = (TY333608*) setLengthSeq(&((*s))->Sup, sizeof(NI), ((NI) (L)));
	return result;
}

N_NIMCALL(void, popsafepoint_433410)(Tstackframe432208* f) {
	NI LOC1;
	LOC1 = 0;
	LOC1 = pop_433414((&(*f).safepoints));
}

N_NIMCALL(void, cleanuponexception_433451)(Tctx279048* c, Tstackframe432208* tos, TY433455* Result) {
	Ttype225847* raisedtype;
	Tstackframe432208* f;
{	raisedtype = skiptypes_229167((*(*c).currentexceptiona).typ, IL64(211106247256320));
	f = tos;
	{
		while (1) {
			NI pc2;
			NI nextexceptorfinally;
			NI LOC42;
			{
				while (1) {
					NIM_BOOL LOC5;
					LOC5 = 0;
					LOC5 = (*f).safepoints == 0;
					if (LOC5) goto LA6;
					LOC5 = (((*f).safepoints ? (*f).safepoints->Sup.len : 0) == ((NI) 0));
					LA6: ;
					if (!LOC5) goto LA4;
					f = (*f).next;
					{
						if (!f == 0) goto LA9;
						(*Result).Field0 = TMP2935.Field0;
						unsureAsgnRef((void**) (&(*Result).Field1), TMP2935.Field1);
						goto BeforeRet;
					}
					LA9: ;
				} LA4: ;
			}
			pc2 = (*f).safepoints->data[((*f).safepoints ? ((*f).safepoints->Sup.len-1) : -1)];
			nextexceptorfinally = ((NI) -1);
			{
				if (!(((NU8) ((NU32)((*c).code->data[pc2] & ((NU32) 255)))) == ((NU8) 141))) goto LA13;
				nextexceptorfinally = (NI)((NI)(pc2 + ((NI) ((NU32)((NU32)((*c).code->data[pc2]) >> (NU32)(((NU32) 16)))))) - ((NI) 32768));
				pc2 += ((NI) 1);
			}
			LA13: ;
			{
				while (1) {
					Ttype225847* excepttype;
					if (!(((NU8) ((NU32)((*c).code->data[pc2] & ((NU32) 255)))) == ((NU8) 141))) goto LA16;
					excepttype = skiptypes_229167((*c).types->data[(NI)(((NI) ((NU32)((NU32)((*c).code->data[pc2]) >> (NU32)(((NU32) 16))))) - ((NI) 32768))], IL64(211106247256320));
					{
						NI LOC19;
						LOC19 = 0;
						LOC19 = inheritancediff_262091(excepttype, raisedtype);
						if (!(LOC19 <= ((NI) 0))) goto LA20;
						asgnRefNoCycle((void**) (&(*c).currentexceptionb), (*c).currentexceptiona);
						asgnRefNoCycle((void**) (&(*c).currentexceptiona), NIM_NIL);
						{
							while (1) {
								if (!(((NU8) ((NU32)((*c).code->data[pc2] & ((NU32) 255)))) == ((NU8) 141))) goto LA23;
								pc2 += ((NI) 1);
							} LA23: ;
						}
						(*Result).Field0 = pc2;
						unsureAsgnRef((void**) (&(*Result).Field1), f);
						goto BeforeRet;
					}
					LA20: ;
					pc2 += ((NI) 1);
					{
						NIM_BOOL LOC26;
						LOC26 = 0;
						LOC26 = !((((NU8) ((NU32)((*c).code->data[pc2] & ((NU32) 255)))) == ((NU8) 141)));
						if (!(LOC26)) goto LA27;
						LOC26 = (((NI) 0) <= nextexceptorfinally);
						LA27: ;
						if (!LOC26) goto LA28;
						pc2 = (NI)(nextexceptorfinally + ((NI) 1));
						{
							if (!(((NU8) ((NU32)((*c).code->data[pc2] & ((NU32) 255)))) == ((NU8) 141))) goto LA32;
							nextexceptorfinally = (NI)((NI)(pc2 + ((NI) ((NU32)((NU32)((*c).code->data[pc2]) >> (NU32)(((NU32) 16)))))) - ((NI) 32768));
						}
						LA32: ;
					}
					LA28: ;
				} LA16: ;
			}
			{
				if (!(((NI) 0) <= nextexceptorfinally)) goto LA36;
				pc2 = nextexceptorfinally;
			}
			LA36: ;
			{
				if (!(((NU8) ((NU32)((*c).code->data[pc2] & ((NU32) 255)))) == ((NU8) 142))) goto LA40;
				(*Result).Field0 = pc2;
				unsureAsgnRef((void**) (&(*Result).Field1), f);
				goto BeforeRet;
			}
			LA40: ;
			LOC42 = 0;
			LOC42 = pop_433414((&(*f).safepoints));
		}
	}
	}BeforeRet: ;
}

N_NIMCALL(void, bailout_432358)(Tctx279048* c, Tstackframe432208* tos) {
	Tnode225809* LOC1;
	LOC1 = 0;
	LOC1 = skipcolon_429258((*(*c).currentexceptiona).kindU.S6.sons->data[((NI) 3)]);
	stacktrace_432336(c, tos, (*c).exceptioninstr, ((NU16) 219), (*LOC1).kindU.S3.strval);
}

N_CLOSURE(void, HEX3Aanonymous_442605)(Tlineinfo190352 info, NU16 msg, NimStringDesc* arg, void* ClEnv) {
	TY444496* HEX3Aenvp_444583;
	HEX3Aenvp_444583 = (TY444496*) ClEnv;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = (*HEX3Aenvp_444583).error442602 == 0;
		if (!(LOC3)) goto LA4;
		LOC3 = (msg <= ((NU16) 236));
		LA4: ;
		if (!LOC3) goto LA5;
		asgnRefNoCycle((void**) (&(*HEX3Aenvp_444583).error442602), formatmsg_194691(info, msg, arg));
	}
	LA5: ;
}

N_CLOSURE(void, HEX3Aanonymous_442655)(Tlineinfo190352 info, NU16 msg, NimStringDesc* arg, void* ClEnv) {
	TY444496* HEX3Aenvp_444589;
	HEX3Aenvp_444589 = (TY444496*) ClEnv;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = (*HEX3Aenvp_444589).error442652 == 0;
		if (!(LOC3)) goto LA4;
		LOC3 = (msg <= ((NU16) 236));
		LA4: ;
		if (!LOC3) goto LA5;
		asgnRefNoCycle((void**) (&(*HEX3Aenvp_444589).error442652), formatmsg_194691(info, msg, arg));
	}
	LA5: ;
}

static N_INLINE(NimStringDesc*, tofilelinecol_191869)(Tlineinfo190352 info) {
	NimStringDesc* result;
	NimStringDesc* LOC1;
	NimStringDesc* LOC2;
	NimStringDesc* LOC3;
	NimStringDesc* LOC4;
	result = 0;
	LOC1 = 0;
	LOC2 = 0;
	LOC2 = tofilename_191655(info.fileindex);
	LOC3 = 0;
	LOC3 = nimIntToStr(((NI) (info.line)));
	LOC4 = 0;
	LOC4 = nimIntToStr(((NI) (info.col)));
	LOC1 = rawNewString(LOC2->Sup.len + LOC3->Sup.len + LOC4->Sup.len + 3);
appendString(LOC1, LOC2);
appendString(LOC1, ((NimStringDesc*) &TMP3019));
appendString(LOC1, LOC3);
appendString(LOC1, ((NimStringDesc*) &TMP3020));
appendString(LOC1, LOC4);
appendString(LOC1, ((NimStringDesc*) &TMP3021));
	result = LOC1;
	return result;
}

N_NIMCALL(NIM_BOOL, opconv_433815)(Tfullreg432204* dest, Tfullreg432204 src, Ttype225847* desttyp, Ttype225847* srctyp) {
	NIM_BOOL result;
{	result = 0;
	{
		Ttype225847* styp;
		if (!((*desttyp).kind == ((NU8) 28))) goto LA3;
		{
			if (!!(((*dest).kind == ((NU8) 1)))) goto LA7;
			myreset_432401(dest);
			(*dest).kind = ((NU8) 1);
		}
		LA7: ;
		unsureAsgnRef((void**) (&(*dest).kindU.node), newnode_226401(((NU8) 20)));
		styp = skiptypes_229167(srctyp, IL64(211106233624832));
		switch ((*styp).kind) {
		case ((NU8) 14):
		{
			Tnode225809* n;
			NI x;
			n = (*styp).n;
			x = ((NI) (src.kindU.intval));
			{
				NIM_BOOL LOC12;
				NI LOC13;
				Tsym225841* f;
				LOC12 = 0;
				LOC13 = 0;
				LOC13 = len_226098(n);
				LOC12 = ((NU32)(x) < (NU32)(LOC13));
				if (!(LOC12)) goto LA14;
				f = (*(*n).kindU.S6.sons->data[x]).kindU.S4.sym;
				LOC12 = ((*f).position == x);
				LA14: ;
				if (!LOC12) goto LA15;
				{
					NimStringDesc* LOC21;
					if (!(*f).ast == 0) goto LA19;
					LOC21 = 0;
					LOC21 = (*(*dest).kindU.node).kindU.S3.strval; (*(*dest).kindU.node).kindU.S3.strval = copyStringRC1((*(*f).name).s);
					if (LOC21) nimGCunrefNoCycle(LOC21);
				}
				goto LA17;
				LA19: ;
				{
					NimStringDesc* LOC23;
					LOC23 = 0;
					LOC23 = (*(*dest).kindU.node).kindU.S3.strval; (*(*dest).kindU.node).kindU.S3.strval = copyStringRC1((*(*f).ast).kindU.S3.strval);
					if (LOC23) nimGCunrefNoCycle(LOC23);
				}
				LA17: ;
			}
			goto LA10;
			LA15: ;
			{
				NimStringDesc* LOC44;
				NimStringDesc* LOC45;
				{
					NI i_433894;
					NI HEX3Atmp_434019;
					NI LOC26;
					NI res_434022;
					i_433894 = 0;
					HEX3Atmp_434019 = 0;
					LOC26 = 0;
					LOC26 = len_226098(n);
					HEX3Atmp_434019 = (LOC26 - 1);
					res_434022 = ((NI) 0);
					{
						while (1) {
							Tsym225841* f;
							if (!(res_434022 <= HEX3Atmp_434019)) goto LA28;
							i_433894 = res_434022;
							{
								if (!!(((*(*n).kindU.S6.sons->data[i_433894]).kind == ((NU8) 3)))) goto LA31;
								internalerror_196191(((NimStringDesc*) &TMP3023));
							}
							LA31: ;
							f = (*(*n).kindU.S6.sons->data[i_433894]).kindU.S4.sym;
							{
								if (!((*f).position == x)) goto LA35;
								{
									NimStringDesc* LOC41;
									if (!(*f).ast == 0) goto LA39;
									LOC41 = 0;
									LOC41 = (*(*dest).kindU.node).kindU.S3.strval; (*(*dest).kindU.node).kindU.S3.strval = copyStringRC1((*(*f).name).s);
									if (LOC41) nimGCunrefNoCycle(LOC41);
								}
								goto LA37;
								LA39: ;
								{
									NimStringDesc* LOC43;
									LOC43 = 0;
									LOC43 = (*(*dest).kindU.node).kindU.S3.strval; (*(*dest).kindU.node).kindU.S3.strval = copyStringRC1((*(*f).ast).kindU.S3.strval);
									if (LOC43) nimGCunrefNoCycle(LOC43);
								}
								LA37: ;
								goto BeforeRet;
							}
							LA35: ;
							res_434022 += ((NI) 1);
						} LA28: ;
					}
				}
				LOC44 = 0;
				LOC45 = 0;
				LOC45 = nimIntToStr(x);
				LOC44 = rawNewString((*(*(*styp).sym).name).s->Sup.len + LOC45->Sup.len + 1);
appendString(LOC44, (*(*(*styp).sym).name).s);
appendString(LOC44, ((NimStringDesc*) &TMP3024));
appendString(LOC44, LOC45);
				asgnRefNoCycle((void**) (&(*(*dest).kindU.node).kindU.S3.strval), LOC44);
			}
			LA10: ;
		}
		break;
		case ((NU8) 31) ... ((NU8) 35):
		{
			asgnRefNoCycle((void**) (&(*(*dest).kindU.node).kindU.S3.strval), nimInt64ToStr(src.kindU.intval));
		}
		break;
		case ((NU8) 40) ... ((NU8) 44):
		{
			asgnRefNoCycle((void**) (&(*(*dest).kindU.node).kindU.S3.strval), HEX24_8801(((NU64) (src.kindU.intval))));
		}
		break;
		case ((NU8) 1):
		{
			{
				NimStringDesc* LOC53;
				if (!(src.kindU.intval == IL64(0))) goto LA51;
				LOC53 = 0;
				LOC53 = (*(*dest).kindU.node).kindU.S3.strval; (*(*dest).kindU.node).kindU.S3.strval = copyStringRC1(((NimStringDesc*) &TMP3026));
				if (LOC53) nimGCunrefNoCycle(LOC53);
			}
			goto LA49;
			LA51: ;
			{
				NimStringDesc* LOC55;
				LOC55 = 0;
				LOC55 = (*(*dest).kindU.node).kindU.S3.strval; (*(*dest).kindU.node).kindU.S3.strval = copyStringRC1(((NimStringDesc*) &TMP3027));
				if (LOC55) nimGCunrefNoCycle(LOC55);
			}
			LA49: ;
		}
		break;
		case ((NU8) 36) ... ((NU8) 39):
		{
			asgnRefNoCycle((void**) (&(*(*dest).kindU.node).kindU.S3.strval), nimFloatToStr(src.kindU.floatval));
		}
		break;
		case ((NU8) 28):
		{
			NimStringDesc* LOC58;
			LOC58 = 0;
			LOC58 = (*(*dest).kindU.node).kindU.S3.strval; (*(*dest).kindU.node).kindU.S3.strval = copyStringRC1((*src.kindU.node).kindU.S3.strval);
			if (LOC58) nimGCunrefNoCycle(LOC58);
		}
		break;
		case ((NU8) 29):
		{
			{
				NimStringDesc* strval;
				NimStringDesc* LOC71;
				if (!((*src.kindU.node).kind == ((NU8) 41))) goto LA62;
				strval = copyString(((NimStringDesc*) &TMP2802));
				{
					Tnode225809* son_433965;
					Tnodeseq225803* HEX3Atmp_434028;
					NI i_434031;
					NI L_434033;
					son_433965 = 0;
					HEX3Atmp_434028 = 0;
					HEX3Atmp_434028 = (*src.kindU.node).kindU.S6.sons;
					i_434031 = ((NI) 0);
					L_434033 = (HEX3Atmp_434028 ? HEX3Atmp_434028->Sup.len : 0);
					{
						while (1) {
							NIM_CHAR c;
							if (!(i_434031 < L_434033)) goto LA66;
							son_433965 = HEX3Atmp_434028->data[i_434031];
							c = ((NIM_CHAR) ((*son_433965).kindU.S1.intval));
							{
								if (!((NU8)(c) == (NU8)(0))) goto LA69;
								goto LA64;
							}
							LA69: ;
							strval = addChar(strval, c);
							i_434031 += ((NI) 1);
						} LA66: ;
					}
				} LA64: ;
				LOC71 = 0;
				LOC71 = (*(*dest).kindU.node).kindU.S3.strval; (*(*dest).kindU.node).kindU.S3.strval = copyStringRC1(strval);
				if (LOC71) nimGCunrefNoCycle(LOC71);
			}
			goto LA60;
			LA62: ;
			{
				NimStringDesc* LOC73;
				LOC73 = 0;
				LOC73 = (*(*dest).kindU.node).kindU.S3.strval; (*(*dest).kindU.node).kindU.S3.strval = copyStringRC1((*src.kindU.node).kindU.S3.strval);
				if (LOC73) nimGCunrefNoCycle(LOC73);
			}
			LA60: ;
		}
		break;
		case ((NU8) 2):
		{
			asgnRefNoCycle((void**) (&(*(*dest).kindU.node).kindU.S3.strval), nimCharToStr(((NIM_CHAR) (((NI) (src.kindU.intval))))));
		}
		break;
		default:
		{
			NimStringDesc* LOC76;
			NimStringDesc* LOC77;
			LOC76 = 0;
			LOC77 = 0;
			LOC77 = typetostring_255032(desttyp, ((NU8) 0));
			LOC76 = rawNewString(LOC77->Sup.len + 25);
appendString(LOC76, ((NimStringDesc*) &TMP3028));
appendString(LOC76, LOC77);
			internalerror_196191(LOC76);
		}
		break;
		}
	}
	goto LA1;
	LA3: ;
	{
		Ttype225847* LOC79;
		LOC79 = 0;
		LOC79 = skiptypes_229167(desttyp, IL64(211106233624832));
		switch ((*LOC79).kind) {
		case ((NU8) 31) ... ((NU8) 35):
		{
			Ttype225847* LOC85;
			{
				if (!!(((*dest).kind == ((NU8) 2)))) goto LA83;
				myreset_432401(dest);
				(*dest).kind = ((NU8) 2);
			}
			LA83: ;
			LOC85 = 0;
			LOC85 = skiptypes_229167(srctyp, IL64(211106233624832));
			switch ((*LOC85).kind) {
			case ((NU8) 36) ... ((NU8) 38):
			{
				(*dest).kindU.intval = ((NI64) (((NI) (src.kindU.floatval))));
			}
			break;
			default:
			{
				(*dest).kindU.intval = src.kindU.intval;
			}
			break;
			}
			{
				NIM_BOOL LOC90;
				NI64 LOC91;
				NI64 LOC93;
				LOC90 = 0;
				LOC91 = 0;
				LOC91 = firstord_255004(desttyp);
				LOC90 = ((*dest).kindU.intval < LOC91);
				if (LOC90) goto LA92;
				LOC93 = 0;
				LOC93 = lastord_255010(desttyp);
				LOC90 = (LOC93 < (*dest).kindU.intval);
				LA92: ;
				if (!LOC90) goto LA94;
				result = NIM_TRUE;
				goto BeforeRet;
			}
			LA94: ;
		}
		break;
		case ((NU8) 40) ... ((NU8) 44):
		{
			Ttype225847* LOC101;
			{
				if (!!(((*dest).kind == ((NU8) 2)))) goto LA99;
				myreset_432401(dest);
				(*dest).kind = ((NU8) 2);
			}
			LA99: ;
			LOC101 = 0;
			LOC101 = skiptypes_229167(srctyp, IL64(211106233624832));
			switch ((*LOC101).kind) {
			case ((NU8) 36) ... ((NU8) 38):
			{
				(*dest).kindU.intval = ((NI64) (((NI) (src.kindU.floatval))));
			}
			break;
			default:
			{
				(*dest).kindU.intval = (NI64)(src.kindU.intval & (NI64)((NI64)((NU64)(IL64(1)) << (NU64)((NI64)((*desttyp).size * IL64(8)))) - IL64(1)));
			}
			break;
			}
		}
		break;
		case ((NU8) 36) ... ((NU8) 38):
		{
			Ttype225847* LOC109;
			{
				if (!!(((*dest).kind == ((NU8) 3)))) goto LA107;
				myreset_432401(dest);
				(*dest).kind = ((NU8) 3);
			}
			LA107: ;
			LOC109 = 0;
			LOC109 = skiptypes_229167(srctyp, IL64(211106233624832));
			switch ((*LOC109).kind) {
			case ((NU8) 31) ... ((NU8) 35):
			case ((NU8) 40) ... ((NU8) 44):
			case ((NU8) 14):
			case ((NU8) 1):
			case ((NU8) 2):
			{
				(*dest).kindU.floatval = ((double) (src.kindU.intval));
			}
			break;
			default:
			{
				(*dest).kindU.floatval = src.kindU.floatval;
			}
			break;
			}
		}
		break;
		default:
		{
			asgncomplex_433260(dest, src);
		}
		break;
		}
	}
	LA1: ;
	}BeforeRet: ;
	return result;
}

N_NIMCALL(void, rawexecute_434213)(Tctx279048* c, NI start, Tstackframe432208* tos_434217, Tfullreg432204* Result) {
	NI pc;
	Tstackframe432208* tos;
	TY432864* regs;
{	pc = start;
	tos = tos_434217;
	regs = 0;
	regs = (*tos).slots;
	{
		while (1) {
			TY444496* HEX3Aenv_444607;
			NU32 instr;
			NI ra_434243;
			HEX3Aenv_444607 = 0;
			HEX3Aenv_444607 = (TY444496*) newObj((&NTI444608), sizeof(TY444496));
			instr = (*c).code->data[pc];
			ra_434243 = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 8))) & ((NU32) 255))));
			switch (((NU8) ((NU32)(instr & ((NU32) 255))))) {
			case ((NU8) 0):
			{
				genericAssign((void*)Result, (void*)(&regs->data[ra_434243]), (&NTI432204));
				goto BeforeRet;
			}
			break;
			case ((NU8) 1):
			{
				Tfullreg432204 retval;
				pc = (*tos).comesfrom;
				tos = (*tos).next;
				memset((void*)(&retval), 0, sizeof(retval));
				memcpy((void*)(&retval), (NIM_CONST void*)(&regs->data[((NI) 0)]), sizeof(retval));
				{
					if (!tos == 0) goto LA7;
					genericAssign((void*)Result, (void*)(&retval), (&NTI432204));
					goto BeforeRet;
				}
				LA7: ;
				regs = (*tos).slots;
				{
					if (!(((NU8) ((NU32)((*c).code->data[pc] & ((NU32) 255)))) == ((NU8) 129))) goto LA11;
					genericAssign((void*)(&regs->data[((NI) ((NU32)((NU32)((NU32)((*c).code->data[pc]) >> (NU32)(((NU32) 8))) & ((NU32) 255))))]), (void*)(&retval), (&NTI432204));
				}
				LA11: ;
			}
			break;
			case ((NU8) 2):
			{
			}
			break;
			case ((NU8) 3):
			{
			}
			break;
			case ((NU8) 4):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA18;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA18: ;
				regs->data[ra_434243].kindU.intval = regs->data[rb].kindU.intval;
			}
			break;
			case ((NU8) 5):
			{
				NI rb;
				NI rc;
				NimStringDesc* LOC25;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA23;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA23: ;
				createstrkeepnode_432467((&regs->data[ra_434243]), !((((NI) (rc)) == ((NI) 0))));
				LOC25 = 0;
				LOC25 = (*regs->data[ra_434243].kindU.node).kindU.S3.strval; (*regs->data[ra_434243].kindU.node).kindU.S3.strval = copyStringRC1((*regs->data[rb].kindU.node).kindU.S3.strval);
				if (LOC25) nimGCunrefNoCycle(LOC25);
			}
			break;
			case ((NU8) 6):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 3)))) goto LA29;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 3);
				}
				LA29: ;
				regs->data[ra_434243].kindU.floatval = regs->data[rb].kindU.floatval;
			}
			break;
			case ((NU8) 8):
			{
				asgncomplex_433260((&regs->data[ra_434243]), regs->data[((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))))]);
			}
			break;
			case ((NU8) 7):
			{
				moveconst_433120((&regs->data[ra_434243]), regs->data[((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))))]);
			}
			break;
			case ((NU8) 9):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA36;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA36: ;
				putintonode_433290(&regs->data[ra_434243].kindU.node, regs->data[rb]);
			}
			break;
			case ((NU8) 10):
			{
				NI ra;
				NI rb;
				ra = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 8))) & ((NU32) 255))));
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[rb].kind == ((NU8) 1)))) goto LA41;
					genericAssign((void*)(&regs->data[ra]), (void*)(&regs->data[rb]), (&NTI432204));
				}
				goto LA39;
				LA41: ;
				{
					Tnode225809* nb;
					nb = regs->data[rb].kindU.node;
					switch ((*nb).kind) {
					case ((NU8) 5) ... ((NU8) 15):
					{
						{
							if (!!((regs->data[ra].kind == ((NU8) 2)))) goto LA47;
							myreset_432401((&regs->data[ra]));
							regs->data[ra].kind = ((NU8) 2);
						}
						LA47: ;
						regs->data[ra].kindU.intval = (*nb).kindU.S1.intval;
					}
					break;
					case ((NU8) 16) ... ((NU8) 18):
					{
						{
							if (!!((regs->data[ra].kind == ((NU8) 3)))) goto LA52;
							myreset_432401((&regs->data[ra]));
							regs->data[ra].kind = ((NU8) 3);
						}
						LA52: ;
						regs->data[ra].kindU.floatval = (*nb).kindU.S2.floatval;
					}
					break;
					default:
					{
						{
							if (!!((regs->data[ra].kind == ((NU8) 1)))) goto LA57;
							myreset_432401((&regs->data[ra]));
							regs->data[ra].kind = ((NU8) 1);
						}
						LA57: ;
						asgnRefNoCycle((void**) (&regs->data[ra].kindU.node), nb);
					}
					break;
					}
				}
				LA39: ;
			}
			break;
			case ((NU8) 11):
			{
				NI rb;
				NI rc;
				NI idx;
				Tnode225809* src;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA62;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA62: ;
				{
					if (!(IL64(2147483647) < regs->data[rc].kindU.intval)) goto LA66;
					stacktrace_432336(c, tos, pc, ((NU16) 86), ((NimStringDesc*) &TMP2802));
				}
				LA66: ;
				idx = ((NI) (regs->data[rc].kindU.intval));
				src = regs->data[rb].kindU.node;
				{
					NIM_BOOL LOC70;
					NI LOC72;
					LOC70 = 0;
					LOC70 = !(((*src).kind >= ((NU8) 1) && (*src).kind <= ((NU8) 23)));
					if (!(LOC70)) goto LA71;
					LOC72 = 0;
					LOC72 = len_226098(src);
					LOC70 = ((NU32)(idx) < (NU32)(LOC72));
					LA71: ;
					if (!LOC70) goto LA73;
					asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), (*src).kindU.S6.sons->data[idx]);
				}
				goto LA68;
				LA73: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 86), ((NimStringDesc*) &TMP2802));
				}
				LA68: ;
			}
			break;
			case ((NU8) 20):
			{
				NI rb;
				NI rc;
				NI idx;
				NimStringDesc* s;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA79;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA79: ;
				idx = ((NI) (regs->data[rc].kindU.intval));
				s = (*regs->data[rb].kindU.node).kindU.S3.strval;
				{
					if (!s == 0) goto LA83;
					stacktrace_432336(c, tos, pc, ((NU16) 85), ((NimStringDesc*) &TMP2802));
				}
				goto LA81;
				LA83: ;
				{
					if (!((NU32)(idx) <= (NU32)((s ? s->Sup.len : 0)))) goto LA86;
					regs->data[ra_434243].kindU.intval = ((NI64) (((NU8)(s->data[idx]))));
				}
				goto LA81;
				LA86: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 86), ((NimStringDesc*) &TMP2802));
				}
				LA81: ;
			}
			break;
			case ((NU8) 12):
			{
				NI rb;
				NI rc;
				NI idx;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA92;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA92: ;
				idx = ((NI) (regs->data[rb].kindU.intval));
				{
					NI LOC96;
					LOC96 = 0;
					LOC96 = len_226098(regs->data[ra_434243].kindU.node);
					if (!((NU32)(idx) < (NU32)(LOC96))) goto LA97;
					putintonode_433290(&(*regs->data[ra_434243].kindU.node).kindU.S6.sons->data[idx], regs->data[rc]);
				}
				goto LA94;
				LA97: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 86), ((NimStringDesc*) &TMP2802));
				}
				LA94: ;
			}
			break;
			case ((NU8) 13):
			{
				NI rb;
				NI rc;
				Tnode225809* src;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA103;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA103: ;
				src = regs->data[rb].kindU.node;
				{
					Tnode225809* n;
					if (!!(((*src).kind >= ((NU8) 1) && (*src).kind <= ((NU8) 23)))) goto LA107;
					n = skipcolon_429258((*src).kindU.S6.sons->data[(NI)(((NI) (rc)) + ((NI) (((*src).kind == ((NU8) 38)))))]);
					asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), n);
				}
				goto LA105;
				LA107: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 85), ((NimStringDesc*) &TMP2802));
				}
				LA105: ;
			}
			break;
			case ((NU8) 14):
			{
				NI rb;
				NI rc;
				NI shiftedrb;
				Tnode225809* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA113;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA113: ;
				shiftedrb = (NI)(((NI) (rb)) + ((NI) (((*regs->data[ra_434243].kindU.node).kind == ((NU8) 38)))));
				dest = regs->data[ra_434243].kindU.node;
				{
					if (!((*(*dest).kindU.S6.sons->data[shiftedrb]).kind == ((NU8) 34))) goto LA117;
					putintonode_433290(&(*(*dest).kindU.S6.sons->data[shiftedrb]).kindU.S6.sons->data[((NI) 1)], regs->data[rc]);
				}
				goto LA115;
				LA117: ;
				{
					putintonode_433290(&(*dest).kindU.S6.sons->data[shiftedrb], regs->data[rc]);
				}
				LA115: ;
			}
			break;
			case ((NU8) 19):
			{
				NI rb;
				NI rc;
				NI idx;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA123;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA123: ;
				idx = ((NI) (regs->data[rb].kindU.intval));
				{
					if (!((NU32)(idx) < (NU32)(((*regs->data[ra_434243].kindU.node).kindU.S3.strval ? (*regs->data[ra_434243].kindU.node).kindU.S3.strval->Sup.len : 0)))) goto LA127;
					(*regs->data[ra_434243].kindU.node).kindU.S3.strval->data[idx] = ((NIM_CHAR) (((NI) (regs->data[rc].kindU.intval))));
				}
				goto LA125;
				LA127: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 86), ((NimStringDesc*) &TMP2802));
				}
				LA125: ;
			}
			break;
			case ((NU8) 15):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 4)))) goto LA133;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 4);
				}
				LA133: ;
				regs->data[ra_434243].kindU.regaddr = (&regs->data[rb]);
			}
			break;
			case ((NU8) 16):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 5)))) goto LA138;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 5);
				}
				LA138: ;
				{
					if (!(regs->data[rb].kind == ((NU8) 1))) goto LA142;
					regs->data[ra_434243].kindU.nodeaddr = &regs->data[rb].kindU.node;
				}
				goto LA140;
				LA142: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 4), ((NimStringDesc*) &TMP2918));
				}
				LA140: ;
			}
			break;
			case ((NU8) 17):
			{
				NI ra;
				NI rb;
				ra = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 8))) & ((NU32) 255))));
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				switch (regs->data[rb].kind) {
				case ((NU8) 5):
				{
					{
						if (!!((regs->data[ra].kind == ((NU8) 1)))) goto LA149;
						myreset_432401((&regs->data[ra]));
						regs->data[ra].kind = ((NU8) 1);
					}
					LA149: ;
					asgnRefNoCycle((void**) (&regs->data[ra].kindU.node), (*regs->data[rb].kindU.nodeaddr));
				}
				break;
				case ((NU8) 4):
				{
					{
						if (!!((regs->data[ra].kind == (*regs->data[rb].kindU.regaddr).kind))) goto LA154;
						myreset_432401((&regs->data[ra]));
						regs->data[ra].kind = (*regs->data[rb].kindU.regaddr).kind;
					}
					LA154: ;
					genericAssign((void*)(&regs->data[ra]), (void*)(&(*regs->data[rb].kindU.regaddr)), (&NTI432204));
				}
				break;
				case ((NU8) 1):
				{
					{
						if (!((*regs->data[rb].kindU.node).kind == ((NU8) 23))) goto LA159;
						stacktrace_432336(c, tos, pc, ((NU16) 85), ((NimStringDesc*) &TMP2802));
					}
					LA159: ;
					{
						if (!((*regs->data[rb].kindU.node).kind == ((NU8) 141))) goto LA163;
						asgnRefNoCycle((void**) (&regs->data[ra].kindU.node), (*regs->data[rb].kindU.node).kindU.S6.sons->data[((NI) 0)]);
					}
					goto LA161;
					LA163: ;
					{
						stacktrace_432336(c, tos, pc, ((NU16) 4), ((NimStringDesc*) &TMP2919));
					}
					LA161: ;
				}
				break;
				default:
				{
					stacktrace_432336(c, tos, pc, ((NU16) 85), ((NimStringDesc*) &TMP2802));
				}
				break;
				}
			}
			break;
			case ((NU8) 18):
			{
				NI ra;
				NI rc;
				ra = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 8))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				switch (regs->data[ra].kind) {
				case ((NU8) 5):
				{
					putintonode_433290(regs->data[ra].kindU.nodeaddr, regs->data[rc]);
				}
				break;
				case ((NU8) 4):
				{
					genericAssign((void*)(&(*regs->data[ra].kindU.regaddr)), (void*)(&regs->data[rc]), (&NTI432204));
				}
				break;
				case ((NU8) 1):
				{
					putintonode_433290(&regs->data[ra].kindU.node, regs->data[rc]);
				}
				break;
				default:
				{
					stacktrace_432336(c, tos, pc, ((NU16) 85), ((NimStringDesc*) &TMP2802));
				}
				break;
				}
			}
			break;
			case ((NU8) 21):
			{
				NI rb;
				NI rc;
				NI64 bval;
				NI64 cval;
				NI64 sum;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA175;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA175: ;
				bval = regs->data[rb].kindU.intval;
				cval = regs->data[rc].kindU.intval;
				sum = (NI64)((NU64)(bval) + (NU64)(cval));
				{
					NIM_BOOL LOC179;
					LOC179 = 0;
					LOC179 = (IL64(0) <= (NI64)(sum ^ bval));
					if (LOC179) goto LA180;
					LOC179 = (IL64(0) <= (NI64)(sum ^ cval));
					LA180: ;
					if (!LOC179) goto LA181;
					regs->data[ra_434243].kindU.intval = sum;
				}
				goto LA177;
				LA181: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 80), ((NimStringDesc*) &TMP2802));
				}
				LA177: ;
			}
			break;
			case ((NU8) 22):
			{
				NI rb;
				NI imm;
				NI64 bval;
				NI cval;
				NI64 sum;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				imm = (NI)(((NI) (((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24))))))) - ((NI) 128));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA187;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA187: ;
				bval = regs->data[rb].kindU.intval;
				cval = imm;
				sum = (NI64)((NU64)(bval) + (NU64)(((NI64) (cval))));
				{
					NIM_BOOL LOC191;
					LOC191 = 0;
					LOC191 = (IL64(0) <= (NI64)(sum ^ bval));
					if (LOC191) goto LA192;
					LOC191 = (IL64(0) <= (NI64)(sum ^ ((NI64) (cval))));
					LA192: ;
					if (!LOC191) goto LA193;
					regs->data[ra_434243].kindU.intval = sum;
				}
				goto LA189;
				LA193: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 80), ((NimStringDesc*) &TMP2802));
				}
				LA189: ;
			}
			break;
			case ((NU8) 23):
			{
				NI rb;
				NI rc;
				NI64 bval;
				NI64 cval;
				NI64 diff;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA199;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA199: ;
				bval = regs->data[rb].kindU.intval;
				cval = regs->data[rc].kindU.intval;
				diff = (NI64)((NU64)(bval) - (NU64)(cval));
				{
					NIM_BOOL LOC203;
					LOC203 = 0;
					LOC203 = (IL64(0) <= (NI64)(diff ^ bval));
					if (LOC203) goto LA204;
					LOC203 = (IL64(0) <= (NI64)(diff ^ (NI64)((NU64) ~(cval))));
					LA204: ;
					if (!LOC203) goto LA205;
					regs->data[ra_434243].kindU.intval = diff;
				}
				goto LA201;
				LA205: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 80), ((NimStringDesc*) &TMP2802));
				}
				LA201: ;
			}
			break;
			case ((NU8) 24):
			{
				NI rb;
				NI imm;
				NI64 bval;
				NI cval;
				NI64 diff;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				imm = (NI)(((NI) (((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24))))))) - ((NI) 128));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA211;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA211: ;
				bval = regs->data[rb].kindU.intval;
				cval = imm;
				diff = (NI64)((NU64)(bval) - (NU64)(((NI64) (cval))));
				{
					NIM_BOOL LOC215;
					LOC215 = 0;
					LOC215 = (IL64(0) <= (NI64)(diff ^ bval));
					if (LOC215) goto LA216;
					LOC215 = (IL64(0) <= (NI64)(diff ^ ((NI64) ((NI)((NU32) ~(((NI) (cval))))))));
					LA216: ;
					if (!LOC215) goto LA217;
					regs->data[ra_434243].kindU.intval = diff;
				}
				goto LA213;
				LA217: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 80), ((NimStringDesc*) &TMP2802));
				}
				LA213: ;
			}
			break;
			case ((NU8) 25):
			{
				NI rb;
				NI imm;
				NI LOC225;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				imm = (NI)(((NI) (((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24))))))) - ((NI) 128));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA223;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA223: ;
				LOC225 = 0;
				LOC225 = safelen_226126(regs->data[rb].kindU.node);
				regs->data[ra_434243].kindU.intval = ((NI64) ((NI)(LOC225 - ((NI) (imm)))));
			}
			break;
			case ((NU8) 26):
			{
				NI rb;
				NI imm;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				imm = (NI)(((NI) (((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24))))))) - ((NI) 128));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA229;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA229: ;
				regs->data[ra_434243].kindU.intval = ((NI64) ((NI)(((*regs->data[rb].kindU.node).kindU.S3.strval ? (*regs->data[rb].kindU.node).kindU.S3.strval->Sup.len : 0) - ((NI) (imm)))));
			}
			break;
			case ((NU8) 27):
			{
				NI rb;
				Tnode225809* b;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA234;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA234: ;
				b = regtonode_433340(regs->data[rb]);
				{
					NIM_BOOL LOC238;
					Tnode225809* LOC241;
					LOC238 = 0;
					LOC238 = inset_276019(regs->data[ra_434243].kindU.node, b);
					if (!!(LOC238)) goto LA239;
					LOC241 = 0;
					LOC241 = copytree_230028(b);
					addson_227819(regs->data[ra_434243].kindU.node, LOC241);
				}
				LA239: ;
			}
			break;
			case ((NU8) 28):
			{
				NI rb;
				NI rc;
				Tnode225809* r;
				Tnode225809* LOC247;
				Tnode225809* LOC248;
				Tnode225809* LOC249;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA245;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA245: ;
				r = newnode_226401(((NU8) 44));
				LOC247 = 0;
				LOC247 = regtonode_433340(regs->data[rb]);
				add_226165(r, LOC247);
				LOC248 = 0;
				LOC248 = regtonode_433340(regs->data[rc]);
				add_226165(r, LOC248);
				LOC249 = 0;
				LOC249 = copytree_230028(r);
				addson_227819(regs->data[ra_434243].kindU.node, LOC249);
			}
			break;
			case ((NU8) 29):
			{
				NI rb;
				Tnode225809* b;
				Tnode225809* LOC255;
				Tnode225809* r;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA253;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA253: ;
				b = newnodeit_227807(((NU8) 39), (*regs->data[rb].kindU.node).info, (*regs->data[rb].kindU.node).typ);
				LOC255 = 0;
				LOC255 = regtonode_433340(regs->data[rb]);
				addson_227819(b, LOC255);
				r = diffsets_276054(regs->data[ra_434243].kindU.node, b);
				discardsons_226092(regs->data[ra_434243].kindU.node);
				{
					NI i_436334;
					NI HEX3Atmp_444112;
					NI LOC257;
					NI res_444115;
					i_436334 = 0;
					HEX3Atmp_444112 = 0;
					LOC257 = 0;
					LOC257 = sonslen_228387(r);
					HEX3Atmp_444112 = (NI)(LOC257 - ((NI) 1));
					res_444115 = ((NI) 0);
					{
						while (1) {
							if (!(res_444115 <= HEX3Atmp_444112)) goto LA259;
							i_436334 = res_444115;
							addson_227819(regs->data[ra_434243].kindU.node, (*r).kindU.S6.sons->data[i_436334]);
							res_444115 += ((NI) 1);
						} LA259: ;
					}
				}
			}
			break;
			case ((NU8) 30):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA263;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA263: ;
				regs->data[ra_434243].kindU.intval = cardset_276089(regs->data[rb].kindU.node);
			}
			break;
			case ((NU8) 31):
			{
				NI rb;
				NI rc;
				NI64 bval;
				NI64 cval;
				NI64 product;
				NF floatprod;
				NF resasfloat;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA268;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA268: ;
				bval = regs->data[rb].kindU.intval;
				cval = regs->data[rc].kindU.intval;
				product = (NI64)((NU64)(bval) * (NU64)(cval));
				floatprod = ((NF)(((double) (bval))) * (NF)(((double) (cval))));
				resasfloat = ((double) (product));
				{
					if (!(resasfloat == floatprod)) goto LA272;
					regs->data[ra_434243].kindU.intval = product;
				}
				goto LA270;
				LA272: ;
				{
					if (!(((NF)(3.2000000000000000e+01) * (NF)((((NF)(resasfloat) - (NF)(floatprod)) > 0? (((NF)(resasfloat) - (NF)(floatprod))) : -(((NF)(resasfloat) - (NF)(floatprod)))))) <= (floatprod > 0? (floatprod) : -(floatprod)))) goto LA275;
					regs->data[ra_434243].kindU.intval = product;
				}
				goto LA270;
				LA275: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 80), ((NimStringDesc*) &TMP2802));
				}
				LA270: ;
			}
			break;
			case ((NU8) 32):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA281;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA281: ;
				{
					if (!(regs->data[rc].kindU.intval == IL64(0))) goto LA285;
					stacktrace_432336(c, tos, pc, ((NU16) 77), ((NimStringDesc*) &TMP2802));
				}
				goto LA283;
				LA285: ;
				{
					regs->data[ra_434243].kindU.intval = (NI64)(regs->data[rb].kindU.intval / regs->data[rc].kindU.intval);
				}
				LA283: ;
			}
			break;
			case ((NU8) 33):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA291;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA291: ;
				{
					if (!(regs->data[rc].kindU.intval == IL64(0))) goto LA295;
					stacktrace_432336(c, tos, pc, ((NU16) 77), ((NimStringDesc*) &TMP2802));
				}
				goto LA293;
				LA295: ;
				{
					regs->data[ra_434243].kindU.intval = (NI64)(regs->data[rb].kindU.intval % regs->data[rc].kindU.intval);
				}
				LA293: ;
			}
			break;
			case ((NU8) 34):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 3)))) goto LA301;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 3);
				}
				LA301: ;
				regs->data[ra_434243].kindU.floatval = ((NF)(regs->data[rb].kindU.floatval) + (NF)(regs->data[rc].kindU.floatval));
			}
			break;
			case ((NU8) 35):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 3)))) goto LA306;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 3);
				}
				LA306: ;
				regs->data[ra_434243].kindU.floatval = ((NF)(regs->data[rb].kindU.floatval) - (NF)(regs->data[rc].kindU.floatval));
			}
			break;
			case ((NU8) 36):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 3)))) goto LA311;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 3);
				}
				LA311: ;
				regs->data[ra_434243].kindU.floatval = ((NF)(regs->data[rb].kindU.floatval) * (NF)(regs->data[rc].kindU.floatval));
			}
			break;
			case ((NU8) 37):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 3)))) goto LA316;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 3);
				}
				LA316: ;
				regs->data[ra_434243].kindU.floatval = ((NF)(regs->data[rb].kindU.floatval) / (NF)(regs->data[rc].kindU.floatval));
			}
			break;
			case ((NU8) 38):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA321;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA321: ;
				regs->data[ra_434243].kindU.intval = (NI64)((NU64)(regs->data[rb].kindU.intval) >> (NU64)(regs->data[rc].kindU.intval));
			}
			break;
			case ((NU8) 39):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA326;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA326: ;
				regs->data[ra_434243].kindU.intval = (NI64)((NU64)(regs->data[rb].kindU.intval) << (NU64)(regs->data[rc].kindU.intval));
			}
			break;
			case ((NU8) 40):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA331;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA331: ;
				regs->data[ra_434243].kindU.intval = (NI64)(regs->data[rb].kindU.intval & regs->data[rc].kindU.intval);
			}
			break;
			case ((NU8) 41):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA336;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA336: ;
				regs->data[ra_434243].kindU.intval = (NI64)(regs->data[rb].kindU.intval | regs->data[rc].kindU.intval);
			}
			break;
			case ((NU8) 42):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA341;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA341: ;
				regs->data[ra_434243].kindU.intval = (NI64)(regs->data[rb].kindU.intval ^ regs->data[rc].kindU.intval);
			}
			break;
			case ((NU8) 43):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA346;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA346: ;
				regs->data[ra_434243].kindU.intval = (NI64)((NU64)(regs->data[rb].kindU.intval) + (NU64)(regs->data[rc].kindU.intval));
			}
			break;
			case ((NU8) 44):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA351;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA351: ;
				regs->data[ra_434243].kindU.intval = (NI64)((NU64)(regs->data[rb].kindU.intval) - (NU64)(regs->data[rc].kindU.intval));
			}
			break;
			case ((NU8) 45):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA356;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA356: ;
				regs->data[ra_434243].kindU.intval = (NI64)((NU64)(regs->data[rb].kindU.intval) * (NU64)(regs->data[rc].kindU.intval));
			}
			break;
			case ((NU8) 46):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA361;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA361: ;
				regs->data[ra_434243].kindU.intval = (NI64)((NU64)(regs->data[rb].kindU.intval) / (NU64)(regs->data[rc].kindU.intval));
			}
			break;
			case ((NU8) 47):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA366;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA366: ;
				regs->data[ra_434243].kindU.intval = (NI64)((NU64)(regs->data[rb].kindU.intval) % (NU64)(regs->data[rc].kindU.intval));
			}
			break;
			case ((NU8) 48):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA371;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA371: ;
				regs->data[ra_434243].kindU.intval = ((NI64) ((regs->data[rb].kindU.intval == regs->data[rc].kindU.intval)));
			}
			break;
			case ((NU8) 49):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA376;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA376: ;
				regs->data[ra_434243].kindU.intval = ((NI64) ((regs->data[rb].kindU.intval <= regs->data[rc].kindU.intval)));
			}
			break;
			case ((NU8) 50):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA381;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA381: ;
				regs->data[ra_434243].kindU.intval = ((NI64) ((regs->data[rb].kindU.intval < regs->data[rc].kindU.intval)));
			}
			break;
			case ((NU8) 51):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA386;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA386: ;
				regs->data[ra_434243].kindU.intval = ((NI64) ((regs->data[rb].kindU.floatval == regs->data[rc].kindU.floatval)));
			}
			break;
			case ((NU8) 52):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA391;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA391: ;
				regs->data[ra_434243].kindU.intval = ((NI64) ((regs->data[rb].kindU.floatval <= regs->data[rc].kindU.floatval)));
			}
			break;
			case ((NU8) 53):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA396;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA396: ;
				regs->data[ra_434243].kindU.intval = ((NI64) ((regs->data[rb].kindU.floatval < regs->data[rc].kindU.floatval)));
			}
			break;
			case ((NU8) 54):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA401;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA401: ;
				regs->data[ra_434243].kindU.intval = ((NI64) (((NU64)(regs->data[rb].kindU.intval) <= (NU64)(regs->data[rc].kindU.intval))));
			}
			break;
			case ((NU8) 55):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA406;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA406: ;
				regs->data[ra_434243].kindU.intval = ((NI64) (((NU64)(regs->data[rb].kindU.intval) < (NU64)(regs->data[rc].kindU.intval))));
			}
			break;
			case ((NU8) 56):
			{
				NI rb;
				NI rc;
				NIM_BOOL LOC413;
				NIM_BOOL LOC414;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA411;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA411: ;
				LOC413 = 0;
				LOC414 = 0;
				LOC414 = ((*regs->data[rb].kindU.node).kind == ((NU8) 23));
				if (!(LOC414)) goto LA415;
				LOC414 = ((*regs->data[rc].kindU.node).kind == ((NU8) 23));
				LA415: ;
				LOC413 = LOC414;
				if (LOC413) goto LA416;
				LOC413 = (regs->data[rb].kindU.node == regs->data[rc].kindU.node);
				LA416: ;
				regs->data[ra_434243].kindU.intval = ((NI64) (LOC413));
			}
			break;
			case ((NU8) 57):
			{
				NI rb;
				NI rc;
				NIM_BOOL LOC422;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA420;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA420: ;
				LOC422 = 0;
				LOC422 = exprstructuralequivalent_254149(regs->data[rb].kindU.node, regs->data[rc].kindU.node, NIM_TRUE);
				regs->data[ra_434243].kindU.intval = ((NI64) (LOC422));
			}
			break;
			case ((NU8) 58):
			{
				NI rb;
				NI rc;
				NIM_BOOL LOC428;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA426;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA426: ;
				LOC428 = 0;
				LOC428 = sametypeornil_260108((*regs->data[rb].kindU.node).typ, (*regs->data[rc].kindU.node).typ, 0);
				regs->data[ra_434243].kindU.intval = ((NI64) (LOC428));
			}
			break;
			case ((NU8) 59):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA432;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA432: ;
				regs->data[ra_434243].kindU.intval = ((NI64) (!((regs->data[rb].kindU.intval == regs->data[rc].kindU.intval))));
			}
			break;
			case ((NU8) 60):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA437;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA437: ;
				regs->data[ra_434243].kindU.intval = (NI64)(IL64(1) - regs->data[rb].kindU.intval);
			}
			break;
			case ((NU8) 61):
			{
				NI rb;
				NI64 val;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA442;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA442: ;
				val = regs->data[rb].kindU.intval;
				{
					if (!!((val == (IL64(-9223372036854775807) - IL64(1))))) goto LA446;
					regs->data[ra_434243].kindU.intval = -(val);
				}
				goto LA444;
				LA446: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 80), ((NimStringDesc*) &TMP2802));
				}
				LA444: ;
			}
			break;
			case ((NU8) 62):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 3)))) goto LA452;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 3);
				}
				LA452: ;
				regs->data[ra_434243].kindU.floatval = -(regs->data[rb].kindU.floatval);
			}
			break;
			case ((NU8) 63):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA457;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA457: ;
				regs->data[ra_434243].kindU.intval = (NI64)((NU64) ~(regs->data[rb].kindU.intval));
			}
			break;
			case ((NU8) 64):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA462;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA462: ;
				regs->data[ra_434243].kindU.intval = ((NI64) (eqStrings((*regs->data[rb].kindU.node).kindU.S3.strval, (*regs->data[rc].kindU.node).kindU.S3.strval)));
			}
			break;
			case ((NU8) 65):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA467;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA467: ;
				regs->data[ra_434243].kindU.intval = ((NI64) ((cmpStrings((*regs->data[rb].kindU.node).kindU.S3.strval, (*regs->data[rc].kindU.node).kindU.S3.strval) <= 0)));
			}
			break;
			case ((NU8) 66):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA472;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA472: ;
				regs->data[ra_434243].kindU.intval = ((NI64) ((cmpStrings((*regs->data[rb].kindU.node).kindU.S3.strval, (*regs->data[rc].kindU.node).kindU.S3.strval) < 0)));
			}
			break;
			case ((NU8) 68):
			{
				NI rb;
				NI rc;
				NIM_BOOL LOC479;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA477;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA477: ;
				LOC479 = 0;
				LOC479 = containssets_276075(regs->data[rb].kindU.node, regs->data[rc].kindU.node);
				regs->data[ra_434243].kindU.intval = ((NI64) (LOC479));
			}
			break;
			case ((NU8) 67):
			{
				NI rb;
				NI rc;
				NIM_BOOL LOC485;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA483;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA483: ;
				LOC485 = 0;
				LOC485 = equalsets_276082(regs->data[rb].kindU.node, regs->data[rc].kindU.node);
				regs->data[ra_434243].kindU.intval = ((NI64) (LOC485));
			}
			break;
			case ((NU8) 69):
			{
				NI rb;
				NI rc;
				Tnode225809* a;
				Tnode225809* b;
				NIM_BOOL LOC491;
				NIM_BOOL LOC493;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA489;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA489: ;
				a = regs->data[rb].kindU.node;
				b = regs->data[rc].kindU.node;
				LOC491 = 0;
				LOC491 = containssets_276075(a, b);
				if (!(LOC491)) goto LA492;
				LOC493 = 0;
				LOC493 = equalsets_276082(a, b);
				LOC491 = !(LOC493);
				LA492: ;
				regs->data[ra_434243].kindU.intval = ((NI64) (LOC491));
			}
			break;
			case ((NU8) 70):
			{
				NI rb;
				NI rc;
				Tnode225809* LOC499;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA497;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA497: ;
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), newnode_226401(((NU8) 39)));
				LOC499 = 0;
				LOC499 = intersectsets_276061(regs->data[rb].kindU.node, regs->data[rc].kindU.node);
				asgnRefNoCycle((void**) (&(*regs->data[ra_434243].kindU.node).kindU.S6.sons), (*LOC499).kindU.S6.sons);
			}
			break;
			case ((NU8) 71):
			{
				NI rb;
				NI rc;
				Tnode225809* LOC505;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA503;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA503: ;
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), newnode_226401(((NU8) 39)));
				LOC505 = 0;
				LOC505 = unionsets_276047(regs->data[rb].kindU.node, regs->data[rc].kindU.node);
				asgnRefNoCycle((void**) (&(*regs->data[ra_434243].kindU.node).kindU.S6.sons), (*LOC505).kindU.S6.sons);
			}
			break;
			case ((NU8) 72):
			{
				NI rb;
				NI rc;
				Tnode225809* LOC511;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA509;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA509: ;
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), newnode_226401(((NU8) 39)));
				LOC511 = 0;
				LOC511 = diffsets_276054(regs->data[rb].kindU.node, regs->data[rc].kindU.node);
				asgnRefNoCycle((void**) (&(*regs->data[ra_434243].kindU.node).kindU.S6.sons), (*LOC511).kindU.S6.sons);
			}
			break;
			case ((NU8) 73):
			{
				NI rb;
				NI rc;
				Tnode225809* LOC517;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA515;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA515: ;
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), newnode_226401(((NU8) 39)));
				LOC517 = 0;
				LOC517 = symdiffsets_276068(regs->data[rb].kindU.node, regs->data[rc].kindU.node);
				asgnRefNoCycle((void**) (&(*regs->data[ra_434243].kindU.node).kindU.S6.sons), (*LOC517).kindU.S6.sons);
			}
			break;
			case ((NU8) 74):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA521;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA521: ;
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), newnode_226401(((NU8) 20)));
				{
					NimStringDesc* LOC527;
					if (!(regs->data[rb].kind == ((NU8) 1))) goto LA525;
					LOC527 = 0;
					LOC527 = (*regs->data[ra_434243].kindU.node).kindU.S3.strval; (*regs->data[ra_434243].kindU.node).kindU.S3.strval = copyStringRC1((*regs->data[rb].kindU.node).kindU.S3.strval);
					if (LOC527) nimGCunrefNoCycle(LOC527);
				}
				goto LA523;
				LA525: ;
				{
					asgnRefNoCycle((void**) (&(*regs->data[ra_434243].kindU.node).kindU.S3.strval), nimCharToStr(((NIM_CHAR) (((NI) (((NI) (regs->data[rb].kindU.intval))))))));
				}
				LA523: ;
				{
					NI i_439023;
					NI HEX3Atmp_444251;
					NI HEX3Atmp_444252;
					NI res_444255;
					i_439023 = 0;
					HEX3Atmp_444251 = 0;
					HEX3Atmp_444252 = 0;
					HEX3Atmp_444251 = (NI)(((NI) (rb)) + ((NI) 1));
					HEX3Atmp_444252 = (NI)(((NI) ((NI)(((NI) (rb)) + ((NI) (rc))))) - ((NI) 1));
					res_444255 = ((NI) (HEX3Atmp_444251));
					{
						while (1) {
							NimStringDesc* LOC532;
							if (!(res_444255 <= ((NI) (HEX3Atmp_444252)))) goto LA531;
							i_439023 = ((NI) (res_444255));
							LOC532 = 0;
							{
								if (!(regs->data[i_439023].kind == ((NU8) 1))) goto LA535;
								LOC532 = copyString((*regs->data[i_439023].kindU.node).kindU.S3.strval);
							}
							goto LA533;
							LA535: ;
							{
								LOC532 = nimCharToStr(((NIM_CHAR) (((NI) (((NI) (regs->data[i_439023].kindU.intval)))))));
							}
							LA533: ;
							(*regs->data[ra_434243].kindU.node).kindU.S3.strval = resizeString((*regs->data[ra_434243].kindU.node).kindU.S3.strval, LOC532->Sup.len + 0);
appendString((*regs->data[ra_434243].kindU.node).kindU.S3.strval, LOC532);
							res_444255 += ((NI) 1);
						} LA531: ;
					}
				}
			}
			break;
			case ((NU8) 90):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA541;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA541: ;
				(*regs->data[ra_434243].kindU.node).kindU.S3.strval = addChar((*regs->data[ra_434243].kindU.node).kindU.S3.strval, ((NIM_CHAR) (((NI) (regs->data[rb].kindU.intval)))));
			}
			break;
			case ((NU8) 91):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA546;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA546: ;
				(*regs->data[ra_434243].kindU.node).kindU.S3.strval = resizeString((*regs->data[ra_434243].kindU.node).kindU.S3.strval, (*regs->data[rb].kindU.node).kindU.S3.strval->Sup.len + 0);
appendString((*regs->data[ra_434243].kindU.node).kindU.S3.strval, (*regs->data[rb].kindU.node).kindU.S3.strval);
			}
			break;
			case ((NU8) 92):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA551;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA551: ;
				{
					Tnode225809* LOC557;
					Tnode225809* LOC558;
					if (!((*regs->data[ra_434243].kindU.node).kind == ((NU8) 41))) goto LA555;
					LOC557 = 0;
					LOC557 = regtonode_433340(regs->data[rb]);
					LOC558 = 0;
					LOC558 = copytree_230028(LOC557);
					add_226165(regs->data[ra_434243].kindU.node, LOC558);
				}
				goto LA553;
				LA555: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 85), ((NimStringDesc*) &TMP2802));
				}
				LA553: ;
			}
			break;
			case ((NU8) 126):
			{
				NI rb;
				Tnode225809* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA563;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA563: ;
				a = regs->data[rb].kindU.node;
				{
					if (!((*a).kind == ((NU8) 3))) goto LA567;
					{
						if (!(*(*a).kindU.S4.sym).ast == 0) goto LA571;
						asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), newnode_226401(((NU8) 23)));
					}
					goto LA569;
					LA571: ;
					{
						asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), copytree_230028((*(*a).kindU.S4.sym).ast));
					}
					LA569: ;
				}
				goto LA565;
				LA567: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP2924));
				}
				LA565: ;
			}
			break;
			case ((NU8) 127):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!(((NI) (rb)) == ((NI) 1))) goto LA578;
					msgwriteln_191915((*regs->data[ra_434243].kindU.node).kindU.S3.strval, 1);
				}
				goto LA576;
				LA578: ;
				{
					NimStringDesc* outp;
					outp = copyString(((NimStringDesc*) &TMP2802));
					{
						NI i_439423;
						NI HEX3Atmp_444269;
						NI res_444272;
						i_439423 = 0;
						HEX3Atmp_444269 = 0;
						HEX3Atmp_444269 = (NI)(((NI) ((NI)(((NI) (ra_434243)) + ((NI) (rb))))) - ((NI) 1));
						res_444272 = ((NI) (ra_434243));
						{
							while (1) {
								if (!(res_444272 <= ((NI) (HEX3Atmp_444269)))) goto LA583;
								i_439423 = ((NI) (res_444272));
								outp = resizeString(outp, (*regs->data[i_439423].kindU.node).kindU.S3.strval->Sup.len + 0);
appendString(outp, (*regs->data[i_439423].kindU.node).kindU.S3.strval);
								res_444272 += ((NI) 1);
							} LA583: ;
						}
					}
					msgwriteln_191915(outp, 1);
				}
				LA576: ;
			}
			break;
			case ((NU8) 75):
			{
				NI rb;
				NI rc;
				Tnode225809* LOC589;
				NIM_BOOL LOC590;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA587;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA587: ;
				LOC589 = 0;
				LOC589 = regtonode_433340(regs->data[rc]);
				LOC590 = 0;
				LOC590 = inset_276019(regs->data[rb].kindU.node, LOC589);
				regs->data[ra_434243].kindU.intval = ((NI64) (LOC590));
			}
			break;
			case ((NU8) 82):
			{
				NI rb;
				NI rc;
				NI rd;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA594;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA594: ;
				pc += ((NI) 1);
				rd = ((NI) ((NU32)((NU32)((NU32)((*c).code->data[pc]) >> (NU32)(((NU32) 8))) & ((NU32) 255))));
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), newnode_226401(((NU8) 20)));
				asgnRefNoCycle((void**) (&(*regs->data[ra_434243].kindU.node).kindU.S3.strval), copyStrLast((*regs->data[rb].kindU.node).kindU.S3.strval, ((NI) (regs->data[rc].kindU.intval)), ((NI) (regs->data[rd].kindU.intval))));
			}
			break;
			case ((NU8) 83):
			{
				NI rb;
				NI rc;
				NI rd;
				Tfullreg432204* rcaddr;
				NI LOC608;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA599;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA599: ;
				pc += ((NI) 1);
				rd = ((NI) ((NU32)((NU32)((NU32)((*c).code->data[pc]) >> (NU32)(((NU32) 8))) & ((NU32) 255))));
				rcaddr = (&regs->data[rc]);
				{
					if (!((*rcaddr).kind == ((NU8) 4))) goto LA603;
					rcaddr = (*rcaddr).kindU.regaddr;
				}
				goto LA601;
				LA603: ;
				{
					if (!!((regs->data[rc].kind == ((NU8) 3)))) goto LA606;
					myreset_432401((&regs->data[rc]));
					regs->data[rc].kind = ((NU8) 3);
				}
				goto LA601;
				LA606: ;
				LA601: ;
				LOC608 = 0;
				LOC608 = nimParseBiggestFloat((*regs->data[rb].kindU.node).kindU.S3.strval, (&(*rcaddr).kindU.floatval), ((NI) (regs->data[rd].kindU.intval)));
				regs->data[ra_434243].kindU.intval = ((NI64) (LOC608));
			}
			break;
			case ((NU8) 93):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					NIM_BOOL LOC612;
					Tnode225809* LOC613;
					Tnode225809* LOC614;
					Tnode225809* LOC616;
					Tnode225809* LOC617;
					NimStringDesc* LOC620;
					TY193306 LOC621;
					Tnode225809* LOC622;
					NimStringDesc* LOC623;
					Tnode225809* LOC624;
					NimStringDesc* LOC625;
					Tnode225809* LOC626;
					NimStringDesc* LOC627;
					NimStringDesc* LOC628;
					LOC612 = 0;
					LOC613 = 0;
					LOC613 = regtonode_433340(regs->data[rb]);
					LOC614 = 0;
					LOC614 = regtonode_433340(regs->data[ra_434243]);
					LOC612 = levalueconv_293021(LOC613, LOC614);
					if (!(LOC612)) goto LA615;
					LOC616 = 0;
					LOC616 = regtonode_433340(regs->data[ra_434243]);
					LOC617 = 0;
					LOC617 = regtonode_433340(regs->data[rc]);
					LOC612 = levalueconv_293021(LOC616, LOC617);
					LA615: ;
					if (!!(LOC612)) goto LA618;
					LOC620 = 0;
					LOC620 = msgkindtostring_192406(((NU16) 146));
					memset((void*)LOC621, 0, sizeof(LOC621));
					LOC622 = 0;
					LOC622 = regtonode_433340(regs->data[ra_434243]);
					LOC621[0] = HEX24_247090(LOC622);
					LOC623 = 0;
					LOC624 = 0;
					LOC624 = regtonode_433340(regs->data[rb]);
					LOC625 = 0;
					LOC625 = HEX24_247090(LOC624);
					LOC626 = 0;
					LOC626 = regtonode_433340(regs->data[rc]);
					LOC627 = 0;
					LOC627 = HEX24_247090(LOC626);
					LOC623 = rawNewString(LOC625->Sup.len + LOC627->Sup.len + 4);
appendString(LOC623, ((NimStringDesc*) &TMP2926));
appendString(LOC623, LOC625);
appendString(LOC623, ((NimStringDesc*) &TMP2927));
appendString(LOC623, LOC627);
appendString(LOC623, ((NimStringDesc*) &TMP2928));
					LOC621[1] = LOC623;
					LOC628 = 0;
					LOC628 = nsuFormatOpenArray(LOC620, LOC621, 2);
					stacktrace_432336(c, tos, pc, ((NU16) 4), LOC628);
				}
				LA618: ;
			}
			break;
			case ((NU8) 128):
			case ((NU8) 129):
			{
				NI rb;
				NI rc;
				Tnode225809* bb;
				NIM_BOOL isclosure;
				Tsym225841* prc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				bb = regs->data[rb].kindU.node;
				isclosure = ((*bb).kind == ((NU8) 37));
				{
					if (!!(isclosure)) goto LA632;
					prc = (*bb).kindU.S4.sym;
				}
				goto LA630;
				LA632: ;
				{
					prc = (*(*bb).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
				}
				LA630: ;
				{
					Vmargs279042 LOC639;
					if (!((*prc).offset < ((NI) -1))) goto LA637;
					memset((void*)(&LOC639), 0, sizeof(LOC639));
					memset((void*)(&LOC639), 0, sizeof(LOC639));
					LOC639.ra = ((NI) (ra_434243));
					LOC639.rb = ((NI) (rb));
					LOC639.rc = ((NI) (rc));
					LOC639.slots = ((void*) (regs));
					LOC639.currentexception = (*c).currentexceptionb;
					(*c).callbacks->data[(NI)(((NI32)-((*prc).offset)) - ((NI) 2))].Field1.ClEnv? (*c).callbacks->data[(NI)(((NI32)-((*prc).offset)) - ((NI) 2))].Field1.ClPrc((&LOC639), (*c).callbacks->data[(NI)(((NI32)-((*prc).offset)) - ((NI) 2))].Field1.ClEnv):((TMP2929)((*c).callbacks->data[(NI)(((NI32)-((*prc).offset)) - ((NI) 2))].Field1.ClPrc))((&LOC639));
				}
				goto LA635;
				LA637: ;
				{
					if (!(((*prc).flags &(1<<((((NU8) 5))&31)))!=0)) goto LA641;
					{
						if (!!((((*c).features &(1<<((((NU8) 1))&7)))!=0))) goto LA645;
						globalerror_196107((*c).debug->data[pc], ((NU16) 4), ((NimStringDesc*) &TMP2930));
					}
					LA645: ;
					globalerror_196107((*c).debug->data[pc], ((NU16) 4), ((NimStringDesc*) &TMP2931));
				}
				goto LA635;
				LA641: ;
				{
					NI newpc;
					Tstackframe432208* newframe;
					Tstackframe432208* LOC663;
					if (!!(((*prc).kind == ((NU8) 18)))) goto LA648;
					newpc = compile_434060(c, prc);
					{
						if (!(newpc < pc)) goto LA652;
						{
							if (!((*c).loopiterations <= ((NI) 0))) goto LA656;
							{
								if (!(((*c).features &(1<<((((NU8) 2))&7)))!=0)) goto LA660;
								(*c).loopiterations = ((NI) 1500000);
							}
							goto LA658;
							LA660: ;
							{
								msgwriteln_191915(((NimStringDesc*) &TMP2916), 0);
								stacktraceaux_432233(c, tos, pc, ((NI) 100));
								globalerror_196107((*c).debug->data[pc], ((NU16) 212), ((NimStringDesc*) &TMP2802));
							}
							LA658: ;
						}
						LA656: ;
						(*c).loopiterations -= ((NI) 1);
					}
					LA652: ;
					LOC663 = 0;
					LOC663 = (Tstackframe432208*) newObj((&NTI432206), sizeof(Tstackframe432208));
					asgnRefNoCycle((void**) (&(*LOC663).prc), prc);
					(*LOC663).comesfrom = pc;
					asgnRef((void**) (&(*LOC663).next), tos);
					newframe = LOC663;
					if ((*newframe).slots) nimGCunrefNoCycle((*newframe).slots);
					(*newframe).slots = (TY432864*) newSeqRC1((&NTI432864), ((NI) ((*prc).offset)));
					{
						NIM_BOOL LOC666;
						NIM_BOOL LOC667;
						Tnode225809* LOC671;
						LOC666 = 0;
						LOC667 = 0;
						LOC667 = isemptytype_230932((*(*prc).typ).sons->data[((NI) 0)]);
						LOC666 = !(LOC667);
						if (LOC666) goto LA668;
						LOC666 = ((*prc).kind == ((NU8) 17));
						LA668: ;
						if (!LOC666) goto LA669;
						LOC671 = 0;
						LOC671 = getnullvalue_424007((*(*prc).typ).sons->data[((NI) 0)], (*prc).info);
						putintoreg_433320((&(*newframe).slots->data[((NI) 0)]), LOC671);
					}
					LA669: ;
					{
						NI i_440223;
						NI HEX3Atmp_444298;
						NI res_444301;
						i_440223 = 0;
						HEX3Atmp_444298 = 0;
						HEX3Atmp_444298 = (NI)(((NI) (rc)) - ((NI) 1));
						res_444301 = ((NI) 1);
						{
							while (1) {
								if (!(res_444301 <= ((NI) (HEX3Atmp_444298)))) goto LA674;
								i_440223 = ((NI) (res_444301));
								genericAssign((void*)(&(*newframe).slots->data[i_440223]), (void*)(&regs->data[(NI)(((NI) (rb)) + ((NI) (i_440223)))]), (&NTI432204));
								res_444301 += ((NI) 1);
							} LA674: ;
						}
					}
					{
						if (!isclosure) goto LA677;
						(*newframe).slots->data[rc].kind = ((NU8) 1);
						asgnRefNoCycle((void**) (&(*newframe).slots->data[rc].kindU.node), (*regs->data[rb].kindU.node).kindU.S6.sons->data[((NI) 1)]);
					}
					LA677: ;
					tos = newframe;
					regs = (*newframe).slots;
					pc = (NI)(newpc - ((NI) 1));
				}
				goto LA635;
				LA648: ;
				{
					Tsym225841* gensymowner;
					Tnode225809* macrocall;
					Tnode225809* LOC687;
					Tnode225809* a;
					{
						NIM_BOOL LOC682;
						LOC682 = 0;
						LOC682 = !(((*tos).next == NIM_NIL));
						if (!(LOC682)) goto LA683;
						LOC682 = !(((*(*tos).next).prc == NIM_NIL));
						LA683: ;
						if (!LOC682) goto LA684;
						gensymowner = (*(*tos).next).prc;
					}
					goto LA680;
					LA684: ;
					{
						gensymowner = (*c).module;
					}
					LA680: ;
					macrocall = newnodei_227351(((NU8) 27), (*c).debug->data[pc]);
					LOC687 = 0;
					LOC687 = newsymnode_227325(prc);
					add_226165(macrocall, LOC687);
					{
						NI i_440266;
						NI HEX3Atmp_444305;
						NI res_444308;
						i_440266 = 0;
						HEX3Atmp_444305 = 0;
						HEX3Atmp_444305 = (NI)(((NI) (rc)) - ((NI) 1));
						res_444308 = ((NI) 1);
						{
							while (1) {
								Tnode225809* LOC691;
								if (!(res_444308 <= ((NI) (HEX3Atmp_444305)))) goto LA690;
								i_440266 = ((NI) (res_444308));
								LOC691 = 0;
								LOC691 = regtonode_433340(regs->data[(NI)(((NI) (rb)) + ((NI) (i_440266)))]);
								add_226165(macrocall, LOC691);
								res_444308 += ((NI) 1);
							} LA690: ;
						}
					}
					a = evaltemplate_431400(macrocall, prc, gensymowner);
					{
						if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA694;
						myreset_432401((&regs->data[ra_434243]));
						regs->data[ra_434243].kind = ((NU8) 1);
					}
					LA694: ;
					asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), a);
				}
				LA635: ;
			}
			break;
			case ((NU8) 135):
			{
				NI rbx;
				rbx = (NI)((NI)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - ((NI) 32768)) - ((NI) 1));
				{
					if (!!((regs->data[ra_434243].kindU.intval == IL64(0)))) goto LA699;
					pc += rbx;
				}
				LA699: ;
			}
			break;
			case ((NU8) 136):
			{
				NI rbx;
				rbx = (NI)((NI)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - ((NI) 32768)) - ((NI) 1));
				{
					if (!(regs->data[ra_434243].kindU.intval == IL64(0))) goto LA704;
					pc += rbx;
				}
				LA704: ;
			}
			break;
			case ((NU8) 137):
			{
				NI rbx;
				rbx = (NI)((NI)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - ((NI) 32768)) - ((NI) 1));
				pc += rbx;
			}
			break;
			case ((NU8) 138):
			{
				NI rbx;
				rbx = (NI)((NI)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - ((NI) 32768)) - ((NI) 1));
				pc += rbx;
				{
					if (!((*c).loopiterations <= ((NI) 0))) goto LA710;
					{
						if (!(((*c).features &(1<<((((NU8) 2))&7)))!=0)) goto LA714;
						(*c).loopiterations = ((NI) 1500000);
					}
					goto LA712;
					LA714: ;
					{
						msgwriteln_191915(((NimStringDesc*) &TMP2916), 0);
						stacktraceaux_432233(c, tos, pc, ((NI) 100));
						globalerror_196107((*c).debug->data[pc], ((NU16) 212), ((NimStringDesc*) &TMP2802));
					}
					LA712: ;
				}
				LA710: ;
				(*c).loopiterations -= ((NI) 1);
			}
			break;
			case ((NU8) 139):
			{
				Tnode225809* branch;
				NIM_BOOL cond;
				branch = HEX5BHEX5D_226244((*c).constants, (NI)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - ((NI) 32768)));
				cond = NIM_FALSE;
				{
					NI j_440402;
					NI HEX3Atmp_444317;
					NI LOC719;
					NI res_444320;
					j_440402 = 0;
					HEX3Atmp_444317 = 0;
					LOC719 = 0;
					LOC719 = sonslen_228387(branch);
					HEX3Atmp_444317 = (NI)(LOC719 - ((NI) 2));
					res_444320 = ((NI) 0);
					{
						while (1) {
							if (!(res_444320 <= HEX3Atmp_444317)) goto LA721;
							j_440402 = res_444320;
							{
								Tnode225809* LOC724;
								NIM_BOOL LOC725;
								LOC724 = 0;
								LOC724 = regtonode_433340(regs->data[ra_434243]);
								LOC725 = 0;
								LOC725 = overlap_276012(LOC724, (*branch).kindU.S6.sons->data[j_440402]);
								if (!LOC725) goto LA726;
								cond = NIM_TRUE;
								goto LA718;
							}
							LA726: ;
							res_444320 += ((NI) 1);
						} LA721: ;
					}
				} LA718: ;
				pc += ((NI) 1);
				{
					NU32 instr2;
					NI rbx;
					if (!!(cond)) goto LA730;
					instr2 = (*c).code->data[pc];
					rbx = (NI)((NI)(((NI) ((NU32)((NU32)(instr2) >> (NU32)(((NU32) 16))))) - ((NI) 32768)) - ((NI) 1));
					pc += rbx;
				}
				LA730: ;
			}
			break;
			case ((NU8) 140):
			{
				NI rbx;
				rbx = (NI)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - ((NI) 32768));
				pushsafepoint_433366(tos, (NI)(pc + rbx));
			}
			break;
			case ((NU8) 141):
			{
				NI rbx;
				rbx = (NI)((NI)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - ((NI) 32768)) - ((NI) 1));
				pc += rbx;
			}
			break;
			case ((NU8) 142):
			{
				popsafepoint_433410(tos);
			}
			break;
			case ((NU8) 143):
			{
				{
					TY433455 LOC740;
					NI newpc;
					Tstackframe432208* newtos;
					if (!!(((*c).currentexceptiona == NIM_NIL))) goto LA738;
					memset((void*)(&LOC740), 0, sizeof(LOC740));
					cleanuponexception_433451(c, tos, (&LOC740));
					newpc = 0;
					newpc = LOC740.Field0;
					newtos = 0;
					newtos = LOC740.Field1;
					{
						if (!((NI)(newpc - ((NI) 1)) < ((NI) 0))) goto LA743;
						bailout_432358(c, tos);
						goto BeforeRet;
					}
					LA743: ;
					pc = (NI)(newpc - ((NI) 1));
					{
						if (!!((tos == newtos))) goto LA747;
						tos = newtos;
						regs = (*tos).slots;
					}
					LA747: ;
				}
				LA738: ;
			}
			break;
			case ((NU8) 130):
			{
				Tnode225809* raised;
				TY433455 LOC750;
				NI newpc;
				Tstackframe432208* newtos;
				raised = regs->data[ra_434243].kindU.node;
				asgnRefNoCycle((void**) (&(*c).currentexceptiona), raised);
				(*c).exceptioninstr = pc;
				memset((void*)(&LOC750), 0, sizeof(LOC750));
				cleanuponexception_433451(c, tos, (&LOC750));
				newpc = 0;
				newpc = LOC750.Field0;
				newtos = 0;
				newtos = LOC750.Field1;
				{
					if (!((NI)(newpc - ((NI) 1)) < ((NI) 0))) goto LA753;
					bailout_432358(c, tos);
					goto BeforeRet;
				}
				LA753: ;
				pc = (NI)(newpc - ((NI) 1));
				{
					if (!!((tos == newtos))) goto LA757;
					tos = newtos;
					regs = (*tos).slots;
				}
				LA757: ;
			}
			break;
			case ((NU8) 144):
			{
				Ttype225847* typ;
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA762;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA762: ;
				typ = (*c).types->data[(NI)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - ((NI) 32768))];
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), getnullvalue_424007(typ, (*c).debug->data[pc]));
				(*regs->data[ra_434243].kindU.node).flags |= ((NU16)1)<<((((NU8) 13))%(sizeof(NU16)*8));
			}
			break;
			case ((NU8) 145):
			{
				Ttype225847* typ;
				NU32 instr2;
				NI count;
				typ = (*c).types->data[(NI)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - ((NI) 32768))];
				pc += ((NI) 1);
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA767;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA767: ;
				instr2 = (*c).code->data[pc];
				count = ((NI) (regs->data[((NI) ((NU32)((NU32)((NU32)(instr2) >> (NU32)(((NU32) 8))) & ((NU32) 255))))].kindU.intval));
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), newnodei_227351(((NU8) 41), (*c).debug->data[pc]));
				asgnRefNoCycle((void**) (&(*regs->data[ra_434243].kindU.node).typ), typ);
				if ((*regs->data[ra_434243].kindU.node).kindU.S6.sons) nimGCunrefNoCycle((*regs->data[ra_434243].kindU.node).kindU.S6.sons);
				(*regs->data[ra_434243].kindU.node).kindU.S6.sons = (Tnodeseq225803*) newSeqRC1((&NTI225803), ((NI) (count)));
				{
					NI i_441156;
					NI HEX3Atmp_444332;
					NI res_444335;
					i_441156 = 0;
					HEX3Atmp_444332 = 0;
					HEX3Atmp_444332 = (count - 1);
					res_444335 = ((NI) 0);
					{
						while (1) {
							if (!(res_444335 <= HEX3Atmp_444332)) goto LA771;
							i_441156 = res_444335;
							asgnRefNoCycle((void**) (&(*regs->data[ra_434243].kindU.node).kindU.S6.sons->data[i_441156]), getnullvalue_424007((*typ).sons->data[((NI) 0)], (*c).debug->data[pc]));
							res_444335 += ((NI) 1);
						} LA771: ;
					}
				}
			}
			break;
			case ((NU8) 134):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA775;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA775: ;
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), newnodei_227351(((NU8) 20), (*c).debug->data[pc]));
				asgnRefNoCycle((void**) (&(*regs->data[ra_434243].kindU.node).kindU.S3.strval), mnewString(((NI) (((NI) (regs->data[rb].kindU.intval))))));
			}
			break;
			case ((NU8) 152):
			{
				NI rbx;
				rbx = (NI)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - ((NI) 32768));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA780;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA780: ;
				regs->data[ra_434243].kindU.intval = ((NI64) (rbx));
			}
			break;
			case ((NU8) 146):
			{
				Ttype225847* typ;
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA785;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA785: ;
				typ = (*c).types->data[(NI)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - ((NI) 32768))];
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), getnullvalue_424007(typ, (*c).debug->data[pc]));
			}
			break;
			case ((NU8) 147):
			{
				Ttype225847* typ;
				typ = (*c).types->data[(NI)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - ((NI) 32768))];
				{
					Ttype225847* LOC790;
					LOC790 = 0;
					LOC790 = skiptypes_229167(typ, IL64(211106233624576));
					if (!((*LOC790).kind >= ((NU8) 36) && (*LOC790).kind <= ((NU8) 39))) goto LA791;
					{
						if (!!((regs->data[ra_434243].kind == ((NU8) 3)))) goto LA795;
						myreset_432401((&regs->data[ra_434243]));
						regs->data[ra_434243].kind = ((NU8) 3);
					}
					LA795: ;
					regs->data[ra_434243].kindU.floatval = 0.0;
				}
				goto LA788;
				LA791: ;
				{
					{
						if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA800;
						myreset_432401((&regs->data[ra_434243]));
						regs->data[ra_434243].kind = ((NU8) 2);
					}
					LA800: ;
					regs->data[ra_434243].kindU.intval = IL64(0);
				}
				LA788: ;
			}
			break;
			case ((NU8) 148):
			{
				NI rb;
				Tnode225809* cnst;
				rb = (NI)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - ((NI) 32768));
				cnst = (*(*c).constants).kindU.S6.sons->data[rb];
				{
					NIM_BOOL LOC805;
					LOC805 = 0;
					LOC805 = fitsregister_422466((*cnst).typ);
					if (!LOC805) goto LA806;
					myreset_432401((&regs->data[ra_434243]));
					putintoreg_433320((&regs->data[ra_434243]), cnst);
				}
				goto LA803;
				LA806: ;
				{
					{
						if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA811;
						myreset_432401((&regs->data[ra_434243]));
						regs->data[ra_434243].kind = ((NU8) 1);
					}
					LA811: ;
					asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), cnst);
				}
				LA803: ;
			}
			break;
			case ((NU8) 149):
			{
				NI rb;
				Tnode225809* cnst;
				rb = (NI)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - ((NI) 32768));
				cnst = (*(*c).constants).kindU.S6.sons->data[rb];
				{
					NIM_BOOL LOC816;
					LOC816 = 0;
					LOC816 = fitsregister_422466((*cnst).typ);
					if (!LOC816) goto LA817;
					putintoreg_433320((&regs->data[ra_434243]), cnst);
				}
				goto LA814;
				LA817: ;
				{
					{
						if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA822;
						myreset_432401((&regs->data[ra_434243]));
						regs->data[ra_434243].kind = ((NU8) 1);
					}
					LA822: ;
					asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), copytree_230028(cnst));
				}
				LA814: ;
			}
			break;
			case ((NU8) 150):
			{
				NI rb;
				rb = (NI)((NI)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - ((NI) 32768)) - ((NI) 1));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA827;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA827: ;
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), (*(*c).globals).kindU.S6.sons->data[rb]);
			}
			break;
			case ((NU8) 151):
			{
				NI rb;
				rb = (NI)((NI)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - ((NI) 32768)) - ((NI) 1));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 5)))) goto LA832;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 5);
				}
				LA832: ;
				regs->data[ra_434243].kindU.nodeaddr = &(*(*c).globals).kindU.S6.sons->data[rb];
			}
			break;
			case ((NU8) 76):
			{
				NI rb;
				Tnode225809* LOC839;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA837;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA837: ;
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), newnode_226401(((NU8) 20)));
				LOC839 = 0;
				LOC839 = regtonode_433340(regs->data[rb]);
				asgnRefNoCycle((void**) (&(*regs->data[ra_434243].kindU.node).kindU.S3.strval), rendertree_247059(LOC839, 4));
			}
			break;
			case ((NU8) 86):
			{
				{
					Tnode225809* LOC845;
					NI64 LOC846;
					if (!((25 &(1<<(((*c).mode)&7)))!=0)) goto LA843;
					message_196161((*c).debug->data[pc], ((NU16) 275), ((NimStringDesc*) &TMP2802));
					LOC845 = 0;
					LOC845 = regtonode_433340(regs->data[ra_434243]);
					LOC846 = 0;
					LOC846 = getordvalue_255178(LOC845);
					msgquit_191491(((NI8) (LOC846)));
				}
				goto LA841;
				LA843: ;
				{
					Tfullreg432204 LOC848;
					memset((void*)(&LOC848), 0, sizeof(LOC848));
					memset((void*)(&LOC848), 0, sizeof(LOC848));
					LOC848.kind = ((NU8) 0);
					genericShallowAssign((void*)Result, (void*)(&LOC848), (&NTI432204));
					goto BeforeRet;
				}
				LA841: ;
			}
			break;
			case ((NU8) 77):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA852;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA852: ;
				(*regs->data[ra_434243].kindU.node).kindU.S3.strval = setLengthStr((*regs->data[ra_434243].kindU.node).kindU.S3.strval, ((NI) (((NI) (regs->data[rb].kindU.intval)))));
			}
			break;
			case ((NU8) 80):
			{
				NI rb;
				NI rc;
				Ttype225847* typ;
				NI LOC859;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA857;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA857: ;
				typ = (*c).types->data[regs->data[rc].kindU.intval];
				LOC859 = 0;
				LOC859 = inheritancediff_262091((*regs->data[rb].kindU.node).typ, typ);
				regs->data[ra_434243].kindU.intval = ((NI64) ((((NI) 0) <= LOC859)));
			}
			break;
			case ((NU8) 81):
			{
				NI rb;
				NI rc;
				Ttype225847* t1;
				Ttype225847* t2;
				NIM_BOOL match;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA863;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA863: ;
				t1 = skiptypes_229167((*regs->data[rb].kindU.node).typ, 256);
				t2 = (*c).types->data[regs->data[rc].kindU.intval];
				{
					if (!((*t2).kind == ((NU8) 52))) goto LA867;
					match = NIM_TRUE;
				}
				goto LA865;
				LA867: ;
				{
					match = sametype_260092(t1, t2, 0);
				}
				LA865: ;
				regs->data[ra_434243].kindU.intval = ((NI64) (match));
			}
			break;
			case ((NU8) 78):
			{
				NI rb;
				NI newlen;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA873;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA873: ;
				newlen = ((NI) (regs->data[rb].kindU.intval));
				{
					if (!regs->data[ra_434243].kindU.node == 0) goto LA877;
					stacktrace_432336(c, tos, pc, ((NU16) 85), ((NimStringDesc*) &TMP2802));
				}
				goto LA875;
				LA877: ;
				{
					NI oldlen;
					oldlen = len_226098(regs->data[ra_434243].kindU.node);
					(*regs->data[ra_434243].kindU.node).kindU.S6.sons = (Tnodeseq225803*) setLengthSeq(&((*regs->data[ra_434243].kindU.node).kindU.S6.sons)->Sup, sizeof(Tnode225809*), ((NI) (newlen)));
					{
						if (!(oldlen < newlen)) goto LA882;
						{
							NI i_441670;
							NI HEX3Atmp_444362;
							NI res_444365;
							i_441670 = 0;
							HEX3Atmp_444362 = 0;
							HEX3Atmp_444362 = (newlen - 1);
							res_444365 = oldlen;
							{
								while (1) {
									if (!(res_444365 <= HEX3Atmp_444362)) goto LA886;
									i_441670 = res_444365;
									asgnRefNoCycle((void**) (&(*regs->data[ra_434243].kindU.node).kindU.S6.sons->data[i_441670]), newnodei_227351(((NU8) 1), (*c).debug->data[pc]));
									res_444365 += ((NI) 1);
								} LA886: ;
							}
						}
					}
					LA882: ;
				}
				LA875: ;
			}
			break;
			case ((NU8) 87):
			{
				internalerror_196172((*c).debug->data[pc], ((NimStringDesc*) &TMP2936));
			}
			break;
			case ((NU8) 88):
			{
				NI rb;
				NI64 min;
				NI64 max;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA891;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA891: ;
				min = -((NI64)((NU64)(IL64(1)) << (NU64)(((NI64) ((NI)(((NI) (rb)) - ((NI) 1)))))));
				max = (NI64)((NI64)((NU64)(IL64(1)) << (NU64)(((NI64) ((NI)(((NI) (rb)) - ((NI) 1)))))) - IL64(1));
				{
					NIM_BOOL LOC895;
					NimStringDesc* LOC899;
					NimStringDesc* LOC900;
					LOC895 = 0;
					LOC895 = (regs->data[ra_434243].kindU.intval < min);
					if (LOC895) goto LA896;
					LOC895 = (max < regs->data[ra_434243].kindU.intval);
					LA896: ;
					if (!LOC895) goto LA897;
					LOC899 = 0;
					LOC899 = msgkindtostring_192406(((NU16) 219));
					LOC900 = 0;
					LOC900 = nsuFormatSingleElem(LOC899, ((NimStringDesc*) &TMP2937));
					stacktrace_432336(c, tos, pc, ((NU16) 4), LOC900);
				}
				LA897: ;
			}
			break;
			case ((NU8) 89):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA904;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA904: ;
				regs->data[ra_434243].kindU.intval = (NI64)(regs->data[ra_434243].kindU.intval & (NI64)((NI64)((NU64)(IL64(1)) << (NU64)(((NI64) (rb)))) - IL64(1)));
			}
			break;
			case ((NU8) 79):
			{
				NI rb;
				Tnode225809* node;
				NIM_BOOL LOC911;
				NIM_BOOL LOC913;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA909;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA909: ;
				node = regs->data[rb].kindU.node;
				LOC911 = 0;
				LOC911 = ((*node).kind == ((NU8) 23));
				if (LOC911) goto LA912;
				LOC913 = 0;
				LOC913 = ((*node).kind >= ((NU8) 20) && (*node).kind <= ((NU8) 22));
				if (!(LOC913)) goto LA914;
				LOC913 = (*node).kindU.S3.strval == 0;
				LA914: ;
				LOC911 = LOC913;
				LA912: ;
				regs->data[ra_434243].kindU.intval = ((NI64) (LOC911));
			}
			break;
			case ((NU8) 153):
			{
				NI rbx;
				rbx = (NI)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - ((NI) 32768));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA918;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA918: ;
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), copytree_230028((*(*c).constants).kindU.S6.sons->data[rbx]));
			}
			break;
			case ((NU8) 131):
			{
				NI rb;
				NI rc;
				NI idx;
				Tnode225809* src;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA923;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA923: ;
				idx = ((NI) (regs->data[rc].kindU.intval));
				src = regs->data[rb].kindU.node;
				{
					NIM_BOOL LOC927;
					NI LOC929;
					LOC927 = 0;
					LOC927 = !(((*src).kind >= ((NU8) 1) && (*src).kind <= ((NU8) 23)));
					if (!(LOC927)) goto LA928;
					LOC929 = 0;
					LOC929 = len_226098(src);
					LOC927 = ((NU32)(idx) < (NU32)(LOC929));
					LA928: ;
					if (!LOC927) goto LA930;
					asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), (*src).kindU.S6.sons->data[idx]);
				}
				goto LA925;
				LA930: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 86), ((NimStringDesc*) &TMP2802));
				}
				LA925: ;
			}
			break;
			case ((NU8) 132):
			{
				NI rb;
				NI rc;
				NI idx;
				Tnode225809* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA936;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA936: ;
				idx = ((NI) (regs->data[rb].kindU.intval));
				dest = regs->data[ra_434243].kindU.node;
				{
					NIM_BOOL LOC940;
					NI LOC942;
					LOC940 = 0;
					LOC940 = !(((*dest).kind >= ((NU8) 1) && (*dest).kind <= ((NU8) 23)));
					if (!(LOC940)) goto LA941;
					LOC942 = 0;
					LOC942 = len_226098(dest);
					LOC940 = ((NU32)(idx) < (NU32)(LOC942));
					LA941: ;
					if (!LOC940) goto LA943;
					asgnRefNoCycle((void**) (&(*dest).kindU.S6.sons->data[idx]), regs->data[rc].kindU.node);
				}
				goto LA938;
				LA943: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 86), ((NimStringDesc*) &TMP2802));
				}
				LA938: ;
			}
			break;
			case ((NU8) 94):
			{
				NI rb;
				NI rc;
				Tnode225809* u;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA949;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA949: ;
				u = regs->data[rb].kindU.node;
				{
					if (!!(((*u).kind >= ((NU8) 1) && (*u).kind <= ((NU8) 23)))) goto LA953;
					add_226165(u, regs->data[rc].kindU.node);
				}
				goto LA951;
				LA953: ;
				{
					NimStringDesc* LOC956;
					LOC956 = 0;
					LOC956 = rawNewString(reprEnum((*u).kind, (&NTI225029))->Sup.len + 25);
appendString(LOC956, ((NimStringDesc*) &TMP2938));
appendString(LOC956, reprEnum((*u).kind, (&NTI225029)));
					stacktrace_432336(c, tos, pc, ((NU16) 4), LOC956);
				}
				LA951: ;
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), u);
			}
			break;
			case ((NU8) 95):
			{
				NI rb;
				NI rc;
				Tnode225809* x;
				Tnode225809* u;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA960;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA960: ;
				x = regs->data[rc].kindU.node;
				u = regs->data[rb].kindU.node;
				{
					if (!!(((*u).kind >= ((NU8) 1) && (*u).kind <= ((NU8) 23)))) goto LA964;
					{
						NI i_442096;
						NI HEX3Atmp_444391;
						NI LOC967;
						NI res_444394;
						i_442096 = 0;
						HEX3Atmp_444391 = 0;
						LOC967 = 0;
						LOC967 = len_226098(x);
						HEX3Atmp_444391 = (LOC967 - 1);
						res_444394 = ((NI) 0);
						{
							while (1) {
								if (!(res_444394 <= HEX3Atmp_444391)) goto LA969;
								i_442096 = res_444394;
								add_226165(u, (*x).kindU.S6.sons->data[i_442096]);
								res_444394 += ((NI) 1);
							} LA969: ;
						}
					}
				}
				goto LA962;
				LA964: ;
				{
					NimStringDesc* LOC971;
					LOC971 = 0;
					LOC971 = rawNewString(reprEnum((*u).kind, (&NTI225029))->Sup.len + 25);
appendString(LOC971, ((NimStringDesc*) &TMP2938));
appendString(LOC971, reprEnum((*u).kind, (&NTI225029)));
					stacktrace_432336(c, tos, pc, ((NU16) 4), LOC971);
				}
				LA962: ;
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), u);
			}
			break;
			case ((NU8) 96):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA975;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA975: ;
				regs->data[ra_434243].kindU.intval = ((NI64) ((*regs->data[rb].kindU.node).kind));
				(*c).comesfromheuristic = (*regs->data[rb].kindU.node).info;
			}
			break;
			case ((NU8) 97):
			{
				NI rb;
				Tnode225809* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA980;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA980: ;
				a = regs->data[rb].kindU.node;
				switch ((*a).kind) {
				case ((NU8) 5) ... ((NU8) 15):
				{
					regs->data[ra_434243].kindU.intval = (*a).kindU.S1.intval;
				}
				break;
				default:
				{
					stacktrace_432336(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP2939));
				}
				break;
				}
			}
			break;
			case ((NU8) 98):
			{
				NI rb;
				Tnode225809* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 3)))) goto LA987;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 3);
				}
				LA987: ;
				a = regs->data[rb].kindU.node;
				switch ((*a).kind) {
				case ((NU8) 16) ... ((NU8) 18):
				{
					regs->data[ra_434243].kindU.floatval = (*a).kindU.S2.floatval;
				}
				break;
				default:
				{
					stacktrace_432336(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP2940));
				}
				break;
				}
			}
			break;
			case ((NU8) 99):
			{
				NI rb;
				Tnode225809* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA994;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA994: ;
				a = regs->data[rb].kindU.node;
				{
					if (!((*a).kind == ((NU8) 3))) goto LA998;
					asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), copynode_229660(a));
				}
				goto LA996;
				LA998: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP2924));
				}
				LA996: ;
			}
			break;
			case ((NU8) 100):
			{
				NI rb;
				Tnode225809* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1004;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA1004: ;
				a = regs->data[rb].kindU.node;
				{
					if (!((*a).kind == ((NU8) 2))) goto LA1008;
					asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), copynode_229660(a));
				}
				goto LA1006;
				LA1008: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP2941));
				}
				LA1006: ;
			}
			break;
			case ((NU8) 101):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!(((NI) (rc)) == ((NI) 0))) goto LA1014;
					{
						if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1018;
						myreset_432401((&regs->data[ra_434243]));
						regs->data[ra_434243].kind = ((NU8) 1);
					}
					LA1018: ;
					{
						NIM_BOOL LOC1022;
						LOC1022 = 0;
						LOC1022 = (regs->data[rb].kind == ((NU8) 1));
						if (!(LOC1022)) goto LA1023;
						LOC1022 = !(((*regs->data[rb].kindU.node).typ == NIM_NIL));
						LA1023: ;
						if (!LOC1022) goto LA1024;
						asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), opmaptypetoast_428274((*regs->data[rb].kindU.node).typ, (*c).debug->data[pc]));
					}
					goto LA1020;
					LA1024: ;
					{
						stacktrace_432336(c, tos, pc, ((NU16) 4), ((NimStringDesc*) &TMP2994));
					}
					LA1020: ;
				}
				goto LA1012;
				LA1014: ;
				{
					{
						if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA1030;
						myreset_432401((&regs->data[ra_434243]));
						regs->data[ra_434243].kind = ((NU8) 2);
					}
					LA1030: ;
					{
						NIM_BOOL LOC1034;
						LOC1034 = 0;
						LOC1034 = (regs->data[rb].kind == ((NU8) 1));
						if (!(LOC1034)) goto LA1035;
						LOC1034 = !(((*regs->data[rb].kindU.node).typ == NIM_NIL));
						LA1035: ;
						if (!LOC1034) goto LA1036;
						regs->data[ra_434243].kindU.intval = ((NI64) ((*(*regs->data[rb].kindU.node).typ).kind));
					}
					LA1036: ;
				}
				LA1012: ;
			}
			break;
			case ((NU8) 102):
			{
				NI rb;
				Tnode225809* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1041;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA1041: ;
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), newnode_226401(((NU8) 20)));
				a = regs->data[rb].kindU.node;
				{
					NimStringDesc* LOC1047;
					if (!((*a).kind >= ((NU8) 20) && (*a).kind <= ((NU8) 22))) goto LA1045;
					LOC1047 = 0;
					LOC1047 = (*regs->data[ra_434243].kindU.node).kindU.S3.strval; (*regs->data[ra_434243].kindU.node).kindU.S3.strval = copyStringRC1((*a).kindU.S3.strval);
					if (LOC1047) nimGCunrefNoCycle(LOC1047);
				}
				goto LA1043;
				LA1045: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP2995));
				}
				LA1043: ;
			}
			break;
			case ((NU8) 114):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1052;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA1052: ;
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), newnode_226401(((NU8) 20)));
				asgnRefNoCycle((void**) (&(*regs->data[ra_434243].kindU.node).kindU.S3.strval), opslurp_428049((*regs->data[rb].kindU.node).kindU.S3.strval, (*c).debug->data[pc], (*c).module));
			}
			break;
			case ((NU8) 115):
			{
				NI rb;
				NI rc;
				NI rd;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1057;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA1057: ;
				pc += ((NI) 1);
				rd = ((NI) ((NU32)((NU32)((NU32)((*c).code->data[pc]) >> (NU32)(((NU32) 8))) & ((NU32) 255))));
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), newnode_226401(((NU8) 20)));
				asgnRefNoCycle((void**) (&(*regs->data[ra_434243].kindU.node).kindU.S3.strval), opgorge_428027((*regs->data[rb].kindU.node).kindU.S3.strval, (*regs->data[rc].kindU.node).kindU.S3.strval, (*regs->data[rd].kindU.node).kindU.S3.strval));
			}
			break;
			case ((NU8) 119):
			{
				stacktrace_432336(c, tos, pc, ((NU16) 236), (*regs->data[ra_434243].kindU.node).kindU.S3.strval);
			}
			break;
			case ((NU8) 120):
			{
				message_196161((*c).debug->data[pc], ((NU16) 267), (*regs->data[ra_434243].kindU.node).kindU.S3.strval);
			}
			break;
			case ((NU8) 121):
			{
				message_196161((*c).debug->data[pc], ((NU16) 290), (*regs->data[ra_434243].kindU.node).kindU.S3.strval);
			}
			break;
			case ((NU8) 116):
			{
				NI rb;
				Tnode225809* ast;
				NimStringDesc* LOC1067;
				Terrorhandler216183 LOC1068;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1065;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA1065: ;
				LOC1067 = 0;
				LOC1067 = tofullpath_191665((*c).debug->data[pc].fileindex);
				memset((void*)(&LOC1068), 0, sizeof(LOC1068));
				LOC1068.ClPrc = HEX3Aanonymous_442605; LOC1068.ClEnv = HEX3Aenv_444607;
				ast = parsestring_245506((*regs->data[rb].kindU.node).kindU.S3.strval, LOC1067, ((NI) ((*c).debug->data[pc].line)), LOC1068);
				{
					NimStringDesc* LOC1073;
					if (!!((*HEX3Aenv_444607).error442602 == 0)) goto LA1071;
					LOC1073 = 0;
					LOC1073 = (*c).errorflag; (*c).errorflag = copyStringRC1((*HEX3Aenv_444607).error442602);
					if (LOC1073) nimGCunrefNoCycle(LOC1073);
				}
				goto LA1069;
				LA1071: ;
				{
					NI LOC1075;
					LOC1075 = 0;
					LOC1075 = sonslen_228387(ast);
					if (!!((LOC1075 == ((NI) 1)))) goto LA1076;
					asgnRefNoCycle((void**) (&(*c).errorflag), formatmsg_194691((*c).debug->data[pc], ((NU16) 62), ((NimStringDesc*) &TMP3017)));
				}
				goto LA1069;
				LA1076: ;
				{
					asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), (*ast).kindU.S6.sons->data[((NI) 0)]);
				}
				LA1069: ;
			}
			break;
			case ((NU8) 117):
			{
				NI rb;
				Tnode225809* ast;
				NimStringDesc* LOC1084;
				Terrorhandler216183 LOC1085;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1082;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA1082: ;
				LOC1084 = 0;
				LOC1084 = tofullpath_191665((*c).debug->data[pc].fileindex);
				memset((void*)(&LOC1085), 0, sizeof(LOC1085));
				LOC1085.ClPrc = HEX3Aanonymous_442655; LOC1085.ClEnv = HEX3Aenv_444607;
				ast = parsestring_245506((*regs->data[rb].kindU.node).kindU.S3.strval, LOC1084, ((NI) ((*c).debug->data[pc].line)), LOC1085);
				{
					NimStringDesc* LOC1090;
					if (!!((*HEX3Aenv_444607).error442652 == 0)) goto LA1088;
					LOC1090 = 0;
					LOC1090 = (*c).errorflag; (*c).errorflag = copyStringRC1((*HEX3Aenv_444607).error442652);
					if (LOC1090) nimGCunrefNoCycle(LOC1090);
				}
				goto LA1086;
				LA1088: ;
				{
					asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), ast);
				}
				LA1086: ;
			}
			break;
			case ((NU8) 118):
			{
				NimStringDesc* LOC1093;
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), newnode_226401(((NU8) 20)));
				LOC1093 = 0;
				LOC1093 = (*regs->data[ra_434243].kindU.node).kindU.S3.strval; (*regs->data[ra_434243].kindU.node).kindU.S3.strval = copyStringRC1((*c).errorflag);
				if (LOC1093) nimGCunrefNoCycle(LOC1093);
				(*c).errorflag = setLengthStr((*c).errorflag, ((NI) 0));
			}
			break;
			case ((NU8) 133):
			{
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1097;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA1097: ;
				{
					if (!!(((*c).callsite == NIM_NIL))) goto LA1101;
					asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), (*c).callsite);
				}
				goto LA1099;
				LA1101: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP3018));
				}
				LA1099: ;
			}
			break;
			case ((NU8) 122):
			{
				NI rb;
				Tnode225809* n;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1107;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA1107: ;
				n = regs->data[rb].kindU.node;
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), newnode_226401(((NU8) 20)));
				asgnRefNoCycle((void**) (&(*regs->data[ra_434243].kindU.node).kindU.S3.strval), tofilelinecol_191869((*n).info));
				(*regs->data[ra_434243].kindU.node).info = (*c).debug->data[pc];
			}
			break;
			case ((NU8) 123):
			{
				NI rb;
				NI rc;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 2)))) goto LA1112;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 2);
				}
				LA1112: ;
				{
					NIM_BOOL LOC1116;
					LOC1116 = 0;
					LOC1116 = ((*regs->data[rb].kindU.node).kind == ((NU8) 2));
					if (!(LOC1116)) goto LA1117;
					LOC1116 = ((*regs->data[rc].kindU.node).kind == ((NU8) 2));
					LA1117: ;
					if (!LOC1116) goto LA1118;
					regs->data[ra_434243].kindU.intval = ((NI64) (((*(*regs->data[rb].kindU.node).kindU.S5.ident).Sup.id == (*(*regs->data[rc].kindU.node).kindU.S5.ident).Sup.id)));
				}
				goto LA1114;
				LA1118: ;
				{
					regs->data[ra_434243].kindU.intval = IL64(0);
				}
				LA1114: ;
			}
			break;
			case ((NU8) 124):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1124;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA1124: ;
				{
					if (!!(((*regs->data[rb].kindU.node).kind >= ((NU8) 20) && (*regs->data[rb].kindU.node).kind <= ((NU8) 22)))) goto LA1128;
					stacktrace_432336(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP2995));
				}
				goto LA1126;
				LA1128: ;
				{
					asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), newnodei_227351(((NU8) 2), (*c).debug->data[pc]));
					asgnRefNoCycle((void**) (&(*regs->data[ra_434243].kindU.node).kindU.S5.ident), getident_198463((*regs->data[rb].kindU.node).kindU.S3.strval));
				}
				LA1126: ;
			}
			break;
			case ((NU8) 125):
			{
				NI rb;
				Tnode225809* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1134;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA1134: ;
				a = regs->data[rb].kindU.node;
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), newnode_226401(((NU8) 20)));
				(*regs->data[ra_434243].kindU.node).info = (*c).debug->data[pc];
				{
					NimStringDesc* LOC1140;
					if (!((*a).kind == ((NU8) 3))) goto LA1138;
					LOC1140 = 0;
					LOC1140 = (*regs->data[ra_434243].kindU.node).kindU.S3.strval; (*regs->data[ra_434243].kindU.node).kindU.S3.strval = copyStringRC1((*(*(*a).kindU.S4.sym).name).s);
					if (LOC1140) nimGCunrefNoCycle(LOC1140);
				}
				goto LA1136;
				LA1138: ;
				{
					NimStringDesc* LOC1144;
					if (!((*a).kind == ((NU8) 2))) goto LA1142;
					LOC1144 = 0;
					LOC1144 = (*regs->data[ra_434243].kindU.node).kindU.S3.strval; (*regs->data[ra_434243].kindU.node).kindU.S3.strval = copyStringRC1((*(*a).kindU.S5.ident).s);
					if (LOC1144) nimGCunrefNoCycle(LOC1144);
				}
				goto LA1136;
				LA1142: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP2941));
				}
				LA1136: ;
			}
			break;
			case ((NU8) 154):
			{
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1149;
					internalerror_196172((*c).debug->data[pc], ((NimStringDesc*) &TMP3022));
				}
				LA1149: ;
				asgnRefNoCycle((void**) (&(*regs->data[ra_434243].kindU.node).typ), (*c).types->data[(NI)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - ((NI) 32768))]);
			}
			break;
			case ((NU8) 84):
			{
				NI rb;
				Ttype225847* desttyp;
				Ttype225847* srctyp;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				pc += ((NI) 1);
				desttyp = (*c).types->data[(NI)(((NI) ((NU32)((NU32)((*c).code->data[pc]) >> (NU32)(((NU32) 16))))) - ((NI) 32768))];
				pc += ((NI) 1);
				srctyp = (*c).types->data[(NI)(((NI) ((NU32)((NU32)((*c).code->data[pc]) >> (NU32)(((NU32) 16))))) - ((NI) 32768))];
				{
					NIM_BOOL LOC1154;
					NimStringDesc* LOC1157;
					TY193306 LOC1158;
					NimStringDesc* LOC1159;
					LOC1154 = 0;
					LOC1154 = opconv_433815((&regs->data[ra_434243]), regs->data[rb], desttyp, srctyp);
					if (!LOC1154) goto LA1155;
					LOC1157 = 0;
					LOC1157 = msgkindtostring_192406(((NU16) 146));
					memset((void*)LOC1158, 0, sizeof(LOC1158));
					LOC1158[0] = typetostring_255032(srctyp, ((NU8) 0));
					LOC1158[1] = typetostring_255032(desttyp, ((NU8) 0));
					LOC1159 = 0;
					LOC1159 = nsuFormatOpenArray(LOC1157, LOC1158, 2);
					stacktrace_432336(c, tos, pc, ((NU16) 4), LOC1159);
				}
				LA1155: ;
			}
			break;
			case ((NU8) 85):
			{
				NI rb;
				Ttype225847* desttyp;
				Ttype225847* srctyp;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				pc += ((NI) 1);
				desttyp = (*c).types->data[(NI)(((NI) ((NU32)((NU32)((*c).code->data[pc]) >> (NU32)(((NU32) 16))))) - ((NI) 32768))];
				pc += ((NI) 1);
				srctyp = (*c).types->data[(NI)(((NI) ((NU32)((NU32)((*c).code->data[pc]) >> (NU32)(((NU32) 16))))) - ((NI) 32768))];
				globalerror_196118((*c).debug->data[pc], ((NimStringDesc*) &TMP3029));
			}
			break;
			case ((NU8) 103):
			{
				NI rb;
				Tnode225809* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1164;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA1164: ;
				dest = regs->data[ra_434243].kindU.node;
				{
					NIM_BOOL LOC1168;
					LOC1168 = 0;
					LOC1168 = ((*dest).kind >= ((NU8) 5) && (*dest).kind <= ((NU8) 15));
					if (!(LOC1168)) goto LA1169;
					LOC1168 = ((4 &(1<<((regs->data[rb].kind)&7)))!=0);
					LA1169: ;
					if (!LOC1168) goto LA1170;
					(*dest).kindU.S1.intval = regs->data[rb].kindU.intval;
				}
				goto LA1166;
				LA1170: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP2939));
				}
				LA1166: ;
			}
			break;
			case ((NU8) 104):
			{
				NI rb;
				Tnode225809* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1176;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA1176: ;
				dest = regs->data[ra_434243].kindU.node;
				{
					NIM_BOOL LOC1180;
					LOC1180 = 0;
					LOC1180 = ((*dest).kind >= ((NU8) 16) && (*dest).kind <= ((NU8) 18));
					if (!(LOC1180)) goto LA1181;
					LOC1180 = ((8 &(1<<((regs->data[rb].kind)&7)))!=0);
					LA1181: ;
					if (!LOC1180) goto LA1182;
					(*dest).kindU.S2.floatval = regs->data[rb].kindU.floatval;
				}
				goto LA1178;
				LA1182: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP2940));
				}
				LA1178: ;
			}
			break;
			case ((NU8) 105):
			{
				NI rb;
				Tnode225809* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1188;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA1188: ;
				dest = regs->data[ra_434243].kindU.node;
				{
					NIM_BOOL LOC1192;
					LOC1192 = 0;
					LOC1192 = ((*dest).kind == ((NU8) 3));
					if (!(LOC1192)) goto LA1193;
					LOC1192 = ((*regs->data[rb].kindU.node).kind == ((NU8) 3));
					LA1193: ;
					if (!LOC1192) goto LA1194;
					asgnRefNoCycle((void**) (&(*dest).kindU.S4.sym), (*regs->data[rb].kindU.node).kindU.S4.sym);
				}
				goto LA1190;
				LA1194: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP2924));
				}
				LA1190: ;
			}
			break;
			case ((NU8) 106):
			{
				NI rb;
				Tnode225809* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1200;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA1200: ;
				dest = regs->data[ra_434243].kindU.node;
				{
					NIM_BOOL LOC1204;
					LOC1204 = 0;
					LOC1204 = ((*dest).kind == ((NU8) 2));
					if (!(LOC1204)) goto LA1205;
					LOC1204 = ((*regs->data[rb].kindU.node).kind == ((NU8) 2));
					LA1205: ;
					if (!LOC1204) goto LA1206;
					asgnRefNoCycle((void**) (&(*dest).kindU.S5.ident), (*regs->data[rb].kindU.node).kindU.S5.ident);
				}
				goto LA1202;
				LA1206: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP2941));
				}
				LA1202: ;
			}
			break;
			case ((NU8) 107):
			{
				NI rb;
				Tnode225809* b;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1212;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA1212: ;
				b = regs->data[rb].kindU.node;
				{
					NIM_BOOL LOC1216;
					NimStringDesc* LOC1220;
					LOC1216 = 0;
					LOC1216 = ((*b).kind == ((NU8) 3));
					if (!(LOC1216)) goto LA1217;
					LOC1216 = ((*(*b).kindU.S4.sym).kind == ((NU8) 7));
					LA1217: ;
					if (!!(LOC1216)) goto LA1218;
					LOC1220 = 0;
					LOC1220 = HEX24_196279(TMP3030);
					internalerror_196191(LOC1220);
				}
				LA1218: ;
				{
					NimStringDesc* LOC1225;
					if (!!(!((regs->data[ra_434243].kindU.node == NIM_NIL)))) goto LA1223;
					LOC1225 = 0;
					LOC1225 = HEX24_196279(TMP3032);
					internalerror_196191(LOC1225);
				}
				LA1223: ;
				asgnRefNoCycle((void**) (&(*regs->data[ra_434243].kindU.node).typ), (*(*b).kindU.S4.sym).typ);
			}
			break;
			case ((NU8) 108):
			{
				NI rb;
				Tnode225809* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1229;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA1229: ;
				dest = regs->data[ra_434243].kindU.node;
				{
					NIM_BOOL LOC1233;
					NimStringDesc* LOC1237;
					LOC1233 = 0;
					LOC1233 = ((*dest).kind >= ((NU8) 20) && (*dest).kind <= ((NU8) 22));
					if (!(LOC1233)) goto LA1234;
					LOC1233 = ((2 &(1<<((regs->data[rb].kind)&7)))!=0);
					LA1234: ;
					if (!LOC1233) goto LA1235;
					LOC1237 = 0;
					LOC1237 = (*dest).kindU.S3.strval; (*dest).kindU.S3.strval = copyStringRC1((*regs->data[rb].kindU.node).kindU.S3.strval);
					if (LOC1237) nimGCunrefNoCycle(LOC1237);
				}
				goto LA1231;
				LA1235: ;
				{
					stacktrace_432336(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP2995));
				}
				LA1231: ;
			}
			break;
			case ((NU8) 109):
			{
				NI rb;
				NI rc;
				NI64 k;
				Tnode225809* cc;
				Tlineinfo190352 LOC1250;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1242;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA1242: ;
				k = regs->data[rb].kindU.intval;
				{
					NIM_BOOL LOC1246;
					LOC1246 = 0;
					LOC1246 = (k < IL64(0));
					if (LOC1246) goto LA1247;
					LOC1246 = (IL64(158) < k);
					LA1247: ;
					if (!LOC1246) goto LA1248;
					internalerror_196172((*c).debug->data[pc], ((NimStringDesc*) &TMP3033));
				}
				LA1248: ;
				cc = regs->data[rc].kindU.node;
				{
					if (!!(((*cc).kind == ((NU8) 23)))) goto LA1253;
					LOC1250 = (*cc).info;
				}
				goto LA1251;
				LA1253: ;
				{
					if (!(((NI16) -1) < (*c).comesfromheuristic.line)) goto LA1256;
					LOC1250 = (*c).comesfromheuristic;
				}
				goto LA1251;
				LA1256: ;
				{
					NIM_BOOL LOC1259;
					NI LOC1261;
					Tnode225809* LOC1264;
					LOC1259 = 0;
					LOC1259 = !(((*c).callsite == NIM_NIL));
					if (!(LOC1259)) goto LA1260;
					LOC1261 = 0;
					LOC1261 = safelen_226126((*c).callsite);
					LOC1259 = (((NI) 1) < LOC1261);
					LA1260: ;
					if (!LOC1259) goto LA1262;
					LOC1264 = 0;
					LOC1264 = HEX5BHEX5D_226244((*c).callsite, ((NI) 1));
					LOC1250 = (*LOC1264).info;
				}
				goto LA1251;
				LA1262: ;
				{
					LOC1250 = (*c).debug->data[pc];
				}
				LA1251: ;
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), newnodei_227351(((NU8) (((NI) (k)))), LOC1250));
				(*regs->data[ra_434243].kindU.node).flags |= ((NU16)1)<<((((NU8) 13))%(sizeof(NU16)*8));
			}
			break;
			case ((NU8) 110):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1269;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA1269: ;
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), copynode_229660(regs->data[rb].kindU.node));
			}
			break;
			case ((NU8) 111):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1274;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA1274: ;
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), copytree_230028(regs->data[rb].kindU.node));
			}
			break;
			case ((NU8) 112):
			{
				NI rb;
				NI rc;
				NI bb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1279;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA1279: ;
				bb = ((NI) (regs->data[rb].kindU.intval));
				{
					NI i_443766;
					NI HEX3Atmp_444469;
					NI res_444472;
					i_443766 = 0;
					HEX3Atmp_444469 = 0;
					HEX3Atmp_444469 = (NI)(((NI) (regs->data[rc].kindU.intval)) - ((NI) 1));
					res_444472 = ((NI) 0);
					{
						while (1) {
							if (!(res_444472 <= HEX3Atmp_444469)) goto LA1283;
							i_443766 = res_444472;
							delson_229597(regs->data[ra_434243].kindU.node, bb);
							res_444472 += ((NI) 1);
						} LA1283: ;
					}
				}
			}
			break;
			case ((NU8) 113):
			{
				NI rb;
				NI rc;
				NI64 k;
				NimStringDesc* name;
				Tsym225841* sym;
				Tident198021* LOC1300;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1287;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA1287: ;
				k = regs->data[rb].kindU.intval;
				{
					if (!(((*regs->data[rc].kindU.node).kindU.S3.strval ? (*regs->data[rc].kindU.node).kindU.S3.strval->Sup.len : 0) == ((NI) 0))) goto LA1291;
					name = copyString(((NimStringDesc*) &TMP3034));
				}
				goto LA1289;
				LA1291: ;
				{
					name = (*regs->data[rc].kindU.node).kindU.S3.strval;
				}
				LA1289: ;
				{
					NIM_BOOL LOC1296;
					LOC1296 = 0;
					LOC1296 = (k < IL64(0));
					if (LOC1296) goto LA1297;
					LOC1296 = (IL64(25) < k);
					LA1297: ;
					if (!LOC1296) goto LA1298;
					internalerror_196172((*c).debug->data[pc], ((NimStringDesc*) &TMP3035));
				}
				LA1298: ;
				LOC1300 = 0;
				LOC1300 = getident_198463(name);
				sym = newsym_226656(((NU8) (k)), LOC1300, (*c).module, (*c).debug->data[pc]);
				(*sym).flags |= ((NU32)1)<<((((NU8) 31))%(sizeof(NU32)*8));
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), newsymnode_227325(sym));
			}
			break;
			case ((NU8) 155):
			{
				NI rb;
				Ttype225847* typ;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1304;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA1304: ;
				typ = (*regs->data[rb].kindU.node).typ;
				{
					NimStringDesc* LOC1310;
					if (!!(!((typ == NIM_NIL)))) goto LA1308;
					LOC1310 = 0;
					LOC1310 = HEX24_196279(TMP3036);
					internalerror_196191(LOC1310);
				}
				LA1308: ;
				{
					while (1) {
						NIM_BOOL LOC1313;
						NI LOC1315;
						LOC1313 = 0;
						LOC1313 = ((*typ).kind == ((NU8) 8));
						if (!(LOC1313)) goto LA1314;
						LOC1315 = 0;
						LOC1315 = len_228369(typ);
						LOC1313 = (((NI) 0) < LOC1315);
						LA1314: ;
						if (!LOC1313) goto LA1312;
						typ = (*typ).sons->data[((NI) 0)];
					} LA1312: ;
				}
				asgnRefNoCycle((void**) (&regs->data[ra_434243].kindU.node), newnode_226401(((NU8) 20)));
				asgnRefNoCycle((void**) (&(*regs->data[ra_434243].kindU.node).kindU.S3.strval), typetostring_255032(typ, ((NU8) 2)));
			}
			break;
			case ((NU8) 156):
			{
				NI ra;
				NI rb;
				Ttype225847* typ;
				Tnode225809* LOC1317;
				ra = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 8))) & ((NU32) 255))));
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				pc += ((NI) 1);
				typ = (*c).types->data[(NI)(((NI) ((NU32)((NU32)((*c).code->data[pc]) >> (NU32)(((NU32) 16))))) - ((NI) 32768))];
				LOC1317 = 0;
				LOC1317 = loadany_430461((*regs->data[rb].kindU.node).kindU.S3.strval, typ);
				putintoreg_433320((&regs->data[ra]), LOC1317);
			}
			break;
			case ((NU8) 157):
			{
				NI rb;
				Ttype225847* typ;
				Tnode225809* LOC1327;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_434243].kind == ((NU8) 1)))) goto LA1321;
					myreset_432401((&regs->data[ra_434243]));
					regs->data[ra_434243].kind = ((NU8) 1);
				}
				LA1321: ;
				pc += ((NI) 1);
				typ = (*c).types->data[(NI)(((NI) ((NU32)((NU32)((*c).code->data[pc]) >> (NU32)(((NU32) 16))))) - ((NI) 32768))];
				createstrkeepnode_432467((&regs->data[ra_434243]), NIM_TRUE);
				{
					if (!(*regs->data[ra_434243].kindU.node).kindU.S3.strval == 0) goto LA1325;
					asgnRefNoCycle((void**) (&(*regs->data[ra_434243].kindU.node).kindU.S3.strval), rawNewString(((NI) 1000)));
				}
				LA1325: ;
				LOC1327 = 0;
				LOC1327 = regtonode_433340(regs->data[rb]);
				storeany_429625((&(*regs->data[ra_434243].kindU.node).kindU.S3.strval), typ, LOC1327);
			}
			break;
			}
			pc += ((NI) 1);
		}
	}
	}BeforeRet: ;
}

N_NIMCALL(Tnode225809*, evalmacrocall_446308)(Tsym225841* module, Tnode225809* n, Tnode225809* norig, Tsym225841* sym) {
	Tnode225809* result;
	Tctx279048* c;
	NI start;
	Tstackframe432208* tos;
	Tstackframe432208* LOC18;
	NI maxslots;
	NI L;
	Tfullreg432204 LOC37;
	result = 0;
	evalmacrocounter_446303 += ((NI) 1);
	{
		if (!(((NI) 100) < evalmacrocounter_446303)) goto LA3;
		globalerror_196107((*n).info, ((NU16) 188), ((NimStringDesc*) &TMP2802));
	}
	LA3: ;
	{
		NIM_BOOL LOC7;
		NI LOC8;
		NI LOC9;
		NI LOC11;
		TY193293 LOC14;
		NI LOC15;
		NI LOC16;
		NimStringDesc* LOC17;
		LOC7 = 0;
		LOC8 = 0;
		LOC8 = safelen_226126(n);
		LOC9 = 0;
		LOC9 = len_228369((*sym).typ);
		LOC7 = (LOC8 < LOC9);
		if (!(LOC7)) goto LA10;
		LOC11 = 0;
		LOC11 = len_228369((*sym).typ);
		LOC7 = (((NI) 1) < LOC11);
		LA10: ;
		if (!LOC7) goto LA12;
		memset((void*)LOC14, 0, sizeof(LOC14));
		LOC14[0] = rendertree_247059(n, 0);
		LOC15 = 0;
		LOC15 = safelen_226126(n);
		LOC14[1] = nimIntToStr((LOC15 - 1));
		LOC16 = 0;
		LOC16 = len_228369((*sym).typ);
		LOC14[2] = nimIntToStr((LOC16 - 1));
		LOC17 = 0;
		LOC17 = nsuFormatOpenArray(((NimStringDesc*) &TMP2803), LOC14, 3);
		globalerror_196118((*n).info, LOC17);
	}
	LA12: ;
	setupglobalctx_445278(module);
	c = globalctx_445273;
	asgnRefNoCycle((void**) (&(*c).callsite), norig);
	start = genproc_425765(c, sym);
	LOC18 = 0;
	LOC18 = (Tstackframe432208*) newObj((&NTI432206), sizeof(Tstackframe432208));
	asgnRefNoCycle((void**) (&(*LOC18).prc), sym);
	(*LOC18).comesfrom = ((NI) 0);
	asgnRef((void**) (&(*LOC18).next), NIM_NIL);
	tos = LOC18;
	maxslots = (*sym).offset;
	if ((*tos).slots) nimGCunrefNoCycle((*tos).slots);
	(*tos).slots = (TY432864*) newSeqRC1((&NTI432864), ((NI) (maxslots)));
	L = safelen_226126(n);
	{
		if (!(L == ((NI) 0))) goto LA21;
		L = ((NI) 1);
	}
	LA21: ;
	(*tos).slots->data[((NI) 0)].kind = ((NU8) 1);
	asgnRefNoCycle((void**) (&(*tos).slots->data[((NI) 0)].kindU.node), newnodeit_227807(((NU8) 1), (*n).info, (*(*sym).typ).sons->data[((NI) 0)]));
	{
		NI i_446387;
		NI HEX3Atmp_446440;
		NI LOC24;
		NI res_446443;
		i_446387 = 0;
		HEX3Atmp_446440 = 0;
		LOC24 = 0;
		LOC24 = len_228369((*sym).typ);
		HEX3Atmp_446440 = (LOC24 - 1);
		res_446443 = ((NI) 1);
		{
			while (1) {
				if (!(res_446443 <= HEX3Atmp_446440)) goto LA26;
				i_446387 = res_446443;
				setupmacroparam_446265((*n).kindU.S6.sons->data[i_446387], (*(*sym).typ).sons->data[i_446387], (&(*tos).slots->data[i_446387]));
				res_446443 += ((NI) 1);
			} LA26: ;
		}
	}
	{
		Tnode225809* gp;
		if (!!((((*sym).flags &(1<<((((NU8) 25))&31)))!=0))) goto LA29;
		gp = HEX5BHEX5D_226244((*sym).ast, ((NI) 2));
		{
			NI i_446422;
			NI HEX3Atmp_446448;
			NI LOC32;
			NI res_446451;
			i_446422 = 0;
			HEX3Atmp_446448 = 0;
			LOC32 = 0;
			LOC32 = len_226098(gp);
			HEX3Atmp_446448 = (LOC32 - 1);
			res_446451 = ((NI) 0);
			{
				while (1) {
					NI idx;
					NI LOC35;
					Tnode225809* LOC36;
					if (!(res_446451 <= HEX3Atmp_446448)) goto LA34;
					i_446422 = res_446451;
					LOC35 = 0;
					LOC35 = len_228369((*sym).typ);
					idx = (NI)(LOC35 + i_446422);
					LOC36 = 0;
					LOC36 = HEX5BHEX5D_226244(gp, i_446422);
					setupmacroparam_446265((*n).kindU.S6.sons->data[idx], (*(*LOC36).kindU.S4.sym).typ, (&(*tos).slots->data[idx]));
					res_446451 += ((NI) 1);
				} LA34: ;
			}
		}
	}
	LA29: ;
	memset((void*)(&LOC37), 0, sizeof(LOC37));
	rawexecute_434213(c, start, tos, (&LOC37));
	result = regtonode_433340(LOC37);
	{
		if (!((*result).info.line < ((NI16) 0))) goto LA40;
		(*result).info = (*n).info;
	}
	LA40: ;
	{
		NIM_BOOL LOC44;
		LOC44 = 0;
		LOC44 = cyclictree_254138(result);
		if (!LOC44) goto LA45;
		globalerror_196107((*n).info, ((NU16) 220), ((NimStringDesc*) &TMP2802));
	}
	LA45: ;
	evalmacrocounter_446303 -= ((NI) 1);
	asgnRefNoCycle((void**) (&(*c).callsite), NIM_NIL);
	return result;
}

static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
	(*s).hasRaiseAction = NIM_FALSE;
	(*s).prev = exchandler_21043;
	exchandler_21043 = s;
}

static N_INLINE(void, popSafePoint)(void) {
	exchandler_21043 = (*exchandler_21043).prev;
}

N_NIMCALL(Tnode225809*, evalconstexpraux_445766)(Tsym225841* module, Tsym225841* prc, Tnode225809* n_445770, NU8 mode) {
	Tnode225809* volatile result;
	Tnode225809* n;
	Tctx279048* c;
	NU8 oldmode;
	TSafePoint TMP3426;
{	result = 0;
	n = transformexpr_417607(module, n_445770);
	setupglobalctx_445278(module);
	c = globalctx_445273;
	oldmode = (*c).mode;
	pushSafePoint(&TMP3426);
	TMP3426.status = _setjmp(TMP3426.context);
	if (TMP3426.status == 0) {
		NI start;
		Tstackframe432208* tos;
		Tstackframe432208* LOC6;
		Tfullreg432204 LOC7;
		(*c).mode = mode;
		start = genexpr_426450(c, n, !((mode == ((NU8) 4))));
		{
			if (!(((NU8) ((NU32)((*c).code->data[start] & ((NU32) 255)))) == ((NU8) 0))) goto LA4;
			result = emptynode_226807;
			popSafePoint();
			(*c).mode = oldmode;
			goto BeforeRet;
		}
		LA4: ;
		LOC6 = 0;
		LOC6 = (Tstackframe432208*) newObj((&NTI432206), sizeof(Tstackframe432208));
		asgnRefNoCycle((void**) (&(*LOC6).prc), prc);
		(*LOC6).comesfrom = ((NI) 0);
		asgnRef((void**) (&(*LOC6).next), NIM_NIL);
		tos = LOC6;
		if ((*tos).slots) nimGCunrefNoCycle((*tos).slots);
		(*tos).slots = (TY432864*) newSeqRC1((&NTI432864), ((NI) ((*(*c).prc).maxslots)));
		memset((void*)(&LOC7), 0, sizeof(LOC7));
		rawexecute_434213(c, start, tos, (&LOC7));
		result = regtonode_433340(LOC7);
		{
			if (!((*result).info.line < ((NI16) 0))) goto LA10;
			(*result).info = (*n).info;
		}
		LA10: ;
		popSafePoint();
	}
	else {
		popSafePoint();
	}
	{
		(*c).mode = oldmode;
	}
	if (TMP3426.status != 0) reraiseException();
	}BeforeRet: ;
	return result;
}

N_NIMCALL(Tnode225809*, evalstaticexpr_446232)(Tsym225841* module, Tnode225809* e, Tsym225841* prc) {
	Tnode225809* result;
	result = 0;
	result = evalconstexpraux_445766(module, prc, e, ((NU8) 3));
	return result;
}

N_NIMCALL(Tnode225809*, evalconstexpr_446221)(Tsym225841* module, Tnode225809* e) {
	Tnode225809* result;
	result = 0;
	result = evalconstexpraux_445766(module, NIM_NIL, e, ((NU8) 1));
	return result;
}

N_NIMCALL(void, setupcompiletimevar_446255)(Tsym225841* module, Tnode225809* n) {
	Tnode225809* LOC1;
	LOC1 = 0;
	LOC1 = evalconstexpraux_445766(module, NIM_NIL, n, ((NU8) 4));
}

N_NIMCALL(void, evalstaticstmt_446244)(Tsym225841* module, Tnode225809* e, Tsym225841* prc) {
	Tnode225809* LOC1;
	LOC1 = 0;
	LOC1 = evalconstexpraux_445766(module, prc, e, ((NU8) 4));
}

N_NIMCALL(Tpasscontext277005*, myopen_445295)(Tsym225841* module) {
	Tpasscontext277005* result;
	result = 0;
	setupglobalctx_445278(module);
	result = &globalctx_445273->Sup;
	return result;
}

N_NIMCALL(Tnode225809*, execute_444612)(Tctx279048* c, NI start) {
	Tnode225809* result;
	Tstackframe432208* tos;
	Tstackframe432208* LOC1;
	Tfullreg432204 LOC2;
	result = 0;
	LOC1 = 0;
	LOC1 = (Tstackframe432208*) newObj((&NTI432206), sizeof(Tstackframe432208));
	asgnRefNoCycle((void**) (&(*LOC1).prc), NIM_NIL);
	(*LOC1).comesfrom = ((NI) 0);
	asgnRef((void**) (&(*LOC1).next), NIM_NIL);
	tos = LOC1;
	if ((*tos).slots) nimGCunrefNoCycle((*tos).slots);
	(*tos).slots = (TY432864*) newSeqRC1((&NTI432864), ((NI) ((*(*c).prc).maxslots)));
	memset((void*)(&LOC2), 0, sizeof(LOC2));
	rawexecute_434213(c, start, tos, (&LOC2));
	result = regtonode_433340(LOC2);
	return result;
}

N_NIMCALL(void, evalstmt_444747)(Tctx279048* c, Tnode225809* n_444750) {
	Tnode225809* n;
	NI start;
	n = transformexpr_417607((*c).module, n_444750);
	start = genstmt_426428(c, n);
	{
		Tnode225809* LOC5;
		if (!!((((NU8) ((NU32)((*c).code->data[start] & ((NU32) 255)))) == ((NU8) 0)))) goto LA3;
		LOC5 = 0;
		LOC5 = execute_444612(c, start);
	}
	LA3: ;
}

N_NIMCALL(Tnode225809*, myprocess_445412)(Tpasscontext277005* c, Tnode225809* n) {
	Tnode225809* result;
	result = 0;
	{
		if (!(olderrorcount_445407 == gerrorcounter_191399)) goto LA3;
		evalstmt_444747(((Tctx279048*) (c)), n);
		result = emptynode_226807;
	}
	goto LA1;
	LA3: ;
	{
		result = n;
	}
	LA1: ;
	olderrorcount_445407 = gerrorcounter_191399;
	return result;
}

N_NIMCALL(void, setresult_432963)(Vmargs279042* a, TY131608* v) {
	TY432864* s;
	Tnode225809* n;
	s = 0;
	s = ((TY432864*) ((*a).slots));
	{
		if (!!((s->data[(*a).ra].kind == ((NU8) 1)))) goto LA3;
		myreset_432401((&s->data[(*a).ra]));
		s->data[(*a).ra].kind = ((NU8) 1);
	}
	LA3: ;
	n = newnode_226401(((NU8) 41));
	{
		NimStringDesc* x_432991;
		NI i_432999;
		NI L_433001;
		x_432991 = 0;
		i_432999 = ((NI) 0);
		L_433001 = (v ? v->Sup.len : 0);
		{
			while (1) {
				Tnode225809* LOC8;
				if (!(i_432999 < L_433001)) goto LA7;
				x_432991 = v->data[i_432999];
				LOC8 = 0;
				LOC8 = newstrnode_226644(((NU8) 20), x_432991);
				add_226165(n, LOC8);
				i_432999 += ((NI) 1);
			} LA7: ;
		}
	}
	asgnRefNoCycle((void**) (&s->data[(*a).ra].kindU.node), n);
}

N_NIMCALL(NI64, getint_433020)(Vmargs279042* a, NI i) {
	NI64 result;
	TY432864* s;
	result = 0;
	{
		if (!!((((NI) (i)) < ((NI) ((NI)(((NI) ((*a).rc)) - ((NI) 1))))))) goto LA3;
		raiseassert_91171(((NimStringDesc*) &TMP2809));
	}
	LA3: ;
	s = ((TY432864*) ((*a).slots));
	{
		if (!!((s->data[(NI)(((NI) ((NI)(((NI) (i)) + ((NI) ((*a).rb))))) + ((NI) 1))].kind == ((NU8) 2)))) goto LA7;
		raiseassert_91171(((NimStringDesc*) &TMP3688));
	}
	LA7: ;
	result = s->data[(NI)(((NI) ((NI)(((NI) (i)) + ((NI) ((*a).rb))))) + ((NI) 1))].kindU.intval;
	return result;
}
NIM_EXTERNC N_NOINLINE(void, compiler_vmInit000)(void) {
}

NIM_EXTERNC N_NOINLINE(void, compiler_vmDatInit000)(void) {
static TNimNode* TMP2806[6];
NI TMP2808;
static char* NIM_CONST TMP2807[6] = {
"rkNone", 
"rkNode", 
"rkInt", 
"rkFloat", 
"rkRegisterAddr", 
"rkNodeAddr"};
static TNimNode* TMP2911[5];
static TNimNode* TMP2914[3];
static TNimNode TMP1013[24];
NTI432204.size = sizeof(Tfullreg432204);
NTI432204.kind = 18;
NTI432204.base = 0;
NTI432204.flags = 2;
NTI432202.size = sizeof(NU8);
NTI432202.kind = 14;
NTI432202.base = 0;
NTI432202.flags = 3;
for (TMP2808 = 0; TMP2808 < 6; TMP2808++) {
TMP1013[TMP2808+1].kind = 1;
TMP1013[TMP2808+1].offset = TMP2808;
TMP1013[TMP2808+1].name = TMP2807[TMP2808];
TMP2806[TMP2808] = &TMP1013[TMP2808+1];
}
TMP1013[7].len = 6; TMP1013[7].kind = 2; TMP1013[7].sons = &TMP2806[0];
NTI432202.node = &TMP1013[7];
TMP1013[0].kind = 3;
TMP1013[0].offset = offsetof(Tfullreg432204, kind);
TMP1013[0].typ = (&NTI432202);
TMP1013[0].name = "kind";
TMP1013[0].sons = &NimDT_432204_kind[0];
TMP1013[0].len = 6;
TMP1013[8].len = 0; TMP1013[8].kind = 2;
NimDT_432204_kind[0] = &TMP1013[8];
TMP1013[9].kind = 1;
TMP1013[9].offset = offsetof(Tfullreg432204, kindU.intval);
TMP1013[9].typ = (&NTI8112);
TMP1013[9].name = "intVal";
NimDT_432204_kind[2] = &TMP1013[9];
TMP1013[10].kind = 1;
TMP1013[10].offset = offsetof(Tfullreg432204, kindU.floatval);
TMP1013[10].typ = (&NTI8114);
TMP1013[10].name = "floatVal";
NimDT_432204_kind[3] = &TMP1013[10];
TMP1013[11].kind = 1;
TMP1013[11].offset = offsetof(Tfullreg432204, kindU.node);
TMP1013[11].typ = (&NTI225801);
TMP1013[11].name = "node";
NimDT_432204_kind[1] = &TMP1013[11];
NTI432219.size = sizeof(Tfullreg432204*);
NTI432219.kind = 21;
NTI432219.base = (&NTI432204);
NTI432219.flags = 3;
TMP1013[12].kind = 1;
TMP1013[12].offset = offsetof(Tfullreg432204, kindU.regaddr);
TMP1013[12].typ = (&NTI432219);
TMP1013[12].name = "regAddr";
NimDT_432204_kind[4] = &TMP1013[12];
TMP1013[13].kind = 1;
TMP1013[13].offset = offsetof(Tfullreg432204, kindU.nodeaddr);
TMP1013[13].typ = (&NTI432221);
TMP1013[13].name = "nodeAddr";
NimDT_432204_kind[5] = &TMP1013[13];
NTI432204.node = &TMP1013[0];
NTI432208.size = sizeof(Tstackframe432208);
NTI432208.kind = 18;
NTI432208.base = 0;
TMP2911[0] = &TMP1013[15];
TMP1013[15].kind = 1;
TMP1013[15].offset = offsetof(Tstackframe432208, prc);
TMP1013[15].typ = (&NTI225807);
TMP1013[15].name = "prc";
TMP2911[1] = &TMP1013[16];
NTI432864.size = sizeof(TY432864*);
NTI432864.kind = 24;
NTI432864.base = (&NTI432204);
NTI432864.flags = 2;
NTI432864.marker = TMP2912;
TMP1013[16].kind = 1;
TMP1013[16].offset = offsetof(Tstackframe432208, slots);
TMP1013[16].typ = (&NTI432864);
TMP1013[16].name = "slots";
TMP2911[2] = &TMP1013[17];
TMP1013[17].kind = 1;
TMP1013[17].offset = offsetof(Tstackframe432208, next);
TMP1013[17].typ = (&NTI432206);
TMP1013[17].name = "next";
TMP2911[3] = &TMP1013[18];
TMP1013[18].kind = 1;
TMP1013[18].offset = offsetof(Tstackframe432208, comesfrom);
TMP1013[18].typ = (&NTI108);
TMP1013[18].name = "comesFrom";
TMP2911[4] = &TMP1013[19];
TMP1013[19].kind = 1;
TMP1013[19].offset = offsetof(Tstackframe432208, safepoints);
TMP1013[19].typ = (&NTI333608);
TMP1013[19].name = "safePoints";
TMP1013[14].len = 5; TMP1013[14].kind = 2; TMP1013[14].sons = &TMP2911[0];
NTI432208.node = &TMP1013[14];
NTI432206.size = sizeof(Tstackframe432208*);
NTI432206.kind = 22;
NTI432206.base = (&NTI432208);
NTI432206.marker = TMP2913;
NTI444496.size = sizeof(TY444496);
NTI444496.kind = 18;
NTI444496.base = 0;
NTI444496.flags = 2;
TMP2914[0] = &TMP1013[21];
TMP1013[21].kind = 1;
TMP1013[21].offset = offsetof(TY444496, HEX3Astate);
TMP1013[21].typ = (&NTI346033);
TMP1013[21].name = ":state";
TMP2914[1] = &TMP1013[22];
TMP1013[22].kind = 1;
TMP1013[22].offset = offsetof(TY444496, error442602);
TMP1013[22].typ = (&NTI149);
TMP1013[22].name = "error442602";
TMP2914[2] = &TMP1013[23];
TMP1013[23].kind = 1;
TMP1013[23].offset = offsetof(TY444496, error442652);
TMP1013[23].typ = (&NTI149);
TMP1013[23].name = "error442652";
TMP1013[20].len = 3; TMP1013[20].kind = 2; TMP1013[20].sons = &TMP2914[0];
NTI444496.node = &TMP1013[20];
NTI444608.size = sizeof(TY444496*);
NTI444608.kind = 22;
NTI444608.base = (&NTI444496);
NTI444608.flags = 2;
NTI444608.marker = TMP2915;
}

