/* Generated by Nim Compiler v0.13.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 <dirent.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <time.h>
#include <setjmp.h>
typedef struct Tctx262036 Tctx262036;
typedef struct Tnode213790 Tnode213790;
typedef struct Tsym213822 Tsym213822;
typedef struct Tlineinfo181337 Tlineinfo181337;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct Ttype213828 Ttype213828;
typedef struct Tident188012 Tident188012;
typedef struct Tnodeseq213784 Tnodeseq213784;
typedef struct Tidobj188006 Tidobj188006;
typedef struct TNimObject TNimObject;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct Ttypeseq213824 Ttypeseq213824;
typedef struct Tscope213816 Tscope213816;
typedef struct TY213925 TY213925;
typedef struct Tstrtable213794 Tstrtable213794;
typedef struct Tsymseq213792 Tsymseq213792;
typedef struct Tloc213804 Tloc213804;
typedef struct Ropeobj168006 Ropeobj168006;
typedef struct Tlib213808 Tlib213808;
typedef struct Cell47705 Cell47705;
typedef struct Cellset47717 Cellset47717;
typedef struct Gcheap50018 Gcheap50018;
typedef struct Gcstack50016 Gcstack50016;
typedef struct Cellseq47721 Cellseq47721;
typedef struct Pagedesc47713 Pagedesc47713;
typedef struct Memregion29887 Memregion29887;
typedef struct Smallchunk29839 Smallchunk29839;
typedef struct Llchunk29881 Llchunk29881;
typedef struct Bigchunk29841 Bigchunk29841;
typedef struct Intset29814 Intset29814;
typedef struct Trunk29810 Trunk29810;
typedef struct Avlnode29885 Avlnode29885;
typedef struct Gcstat50014 Gcstat50014;
typedef struct Vmargs262030 Vmargs262030;
typedef struct TY400855 TY400855;
typedef struct Tfullreg400204 Tfullreg400204;
typedef struct Tpasscontext260002 Tpasscontext260002;
typedef struct TY262242 TY262242;
typedef struct TY182093 TY182093;
typedef struct PprocHEX3Aobjecttype262221 PprocHEX3Aobjecttype262221;
typedef struct TY262261 TY262261;
typedef struct Tstackframe400208 Tstackframe400208;
typedef struct TY313503 TY313503;
typedef struct TY412030 TY412030;
typedef struct TY262262 TY262262;
typedef struct TY401397 TY401397;
typedef struct TY88887 TY88887;
typedef struct Exception Exception;
typedef struct TSafePoint TSafePoint;
typedef struct TY262222 TY262222;
typedef struct TY262227 TY262227;
typedef struct TY125402 TY125402;
typedef struct Tinstantiation213812 Tinstantiation213812;
typedef struct Tlistentry135010 Tlistentry135010;
typedef struct Basechunk29837 Basechunk29837;
typedef struct Freecell29829 Freecell29829;
typedef struct Tblock262018 Tblock262018;
typedef struct TY262202 TY262202;
typedef struct TY213913 TY213913;
struct  Tlineinfo181337  {
NI16 line;
NI16 col;
NI32 fileindex;
};
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct  Tnode213790  {
Ttype213828* typ;
Tlineinfo181337 info;
NU16 flags;
NU8 kind;
union{
struct {NI64 intval;
} S1;
struct {NF floatval;
} S2;
struct {NimStringDesc* strval;
} S3;
struct {Tsym213822* sym;
} S4;
struct {Tident188012* ident;
} S5;
struct {Tnodeseq213784* sons;
} S6;
} kindU;
NimStringDesc* comment;
};
typedef N_NIMCALL_PTR(void, TY3489) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, TY3494) (void* p);
struct  TNimType  {
NI size;
NU8 kind;
NU8 flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY3489 marker;
TY3494 deepcopy;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  Tidobj188006  {
  TNimObject Sup;
NI id;
};
struct  Tstrtable213794  {
NI counter;
Tsymseq213792* data;
};
struct  Tloc213804  {
NU8 k;
NU8 s;
NU16 flags;
Ttype213828* t;
Ropeobj168006* r;
Ropeobj168006* heaproot;
};
struct  Tsym213822  {
  Tidobj188006 Sup;
NU8 kind;
union{
struct {Ttypeseq213824* typeinstcache;
Tscope213816* typscope;
} S1;
struct {TY213925* procinstcache;
Tsym213822* gcunsafetyreason;
} S2;
struct {TY213925* usedgenerics;
Tstrtable213794 tab;
} S3;
struct {Tsym213822* guard;
NI bitsize;
} S4;
} kindU;
NU8 magic;
Ttype213828* typ;
Tident188012* name;
Tlineinfo181337 info;
Tsym213822* owner;
NU32 flags;
Tnode213790* ast;
NU32 options;
NI position;
NI offset;
Tloc213804 loc;
Tlib213808* annex;
Tnode213790* constraint;
};
typedef NimStringDesc* TY183156[3];
struct  Cell47705  {
NI refcount;
TNimType* typ;
};
struct  Cellseq47721  {
NI len;
NI cap;
Cell47705** d;
};
struct  Cellset47717  {
NI counter;
NI max;
Pagedesc47713* head;
Pagedesc47713** data;
};
typedef Smallchunk29839* TY29902[512];
typedef Trunk29810* Trunkbuckets29812[256];
struct  Intset29814  {
Trunkbuckets29812 data;
};
struct  Memregion29887  {
NI minlargeobj;
NI maxlargeobj;
TY29902 freesmallchunks;
Llchunk29881* llmem;
NI currmem;
NI maxmem;
NI freemem;
NI lastsize;
Bigchunk29841* freechunkslist;
Intset29814 chunkstarts;
Avlnode29885* root;
Avlnode29885* deleted;
Avlnode29885* last;
Avlnode29885* freeavlnodes;
};
struct  Gcstat50014  {
NI stackscans;
NI cyclecollections;
NI maxthreshold;
NI maxstacksize;
NI maxstackcells;
NI cycletablesize;
NI64 maxpause;
};
struct  Gcheap50018  {
Gcstack50016* stack;
void* stackbottom;
NI cyclethreshold;
Cellseq47721 zct;
Cellseq47721 decstack;
Cellset47717 cycleroots;
Cellseq47721 tempstack;
NI recgclock;
Memregion29887 region;
Gcstat50014 stat;
};
typedef struct {
N_NIMCALL_PTR(void, ClPrc) (Vmargs262030* args, void* ClEnv);
void* ClEnv;
} Vmcallback262032;
struct  Tfullreg400204  {
NU8 kind;
union{
NI64 intval;
NF floatval;
Tnode213790* node;
Tfullreg400204* regaddr;
Tnode213790** nodeaddr;
} kindU;
};
struct  Vmargs262030  {
NI ra;
NI rb;
NI rc;
void* slots;
Tnode213790* currentexception;
};
struct  TNimNode  {
NU8 kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef N_CLOSURE_PTR(void, TMP2848) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2850) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2852) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2854) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2856) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2858) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2860) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2862) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2864) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2866) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2868) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2870) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2872) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2874) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2876) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2878) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2880) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2882) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2884) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2886) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2888) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2890) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2893) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2895) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2897) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2899) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2902) (Vmargs262030* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2904) (Vmargs262030* args, void* ClEnv);
typedef NIM_CHAR TY110370[256];
typedef Tnode213790* TY381939[2];
typedef N_CLOSURE_PTR(void, TMP2909) (Vmargs262030* args, void* ClEnv);
struct  Tpasscontext260002  {
  TNimObject Sup;
NIM_BOOL fromcache;
};
struct  Tctx262036  {
  Tpasscontext260002 Sup;
TY262242* code;
TY182093* debug;
Tnode213790* globals;
Tnode213790* constants;
Ttypeseq213824* types;
Tnode213790* currentexceptiona;
Tnode213790* currentexceptionb;
NI exceptioninstr;
PprocHEX3Aobjecttype262221* prc;
Tsym213822* module;
Tnode213790* callsite;
NU8 mode;
NU8 features;
NIM_BOOL traceactive;
NI loopiterations;
Tlineinfo181337 comesfromheuristic;
TY262261* callbacks;
NimStringDesc* errorflag;
};
struct  Tstackframe400208  {
Tsym213822* prc;
TY400855* slots;
Tstackframe400208* next;
NI comesfrom;
TY313503* safepoints;
};
struct  Ttype213828  {
  Tidobj188006 Sup;
NU8 kind;
NU8 callconv;
NU32 flags;
Ttypeseq213824* sons;
Tnode213790* n;
Tsym213822* owner;
Tsym213822* sym;
Tsym213822* destructor;
Tsym213822* deepcopy;
Tsym213822* assignment;
NI64 size;
NI16 align;
NI16 locklevel;
Tloc213804 loc;
};
struct  TY412030  {
NI HEX3Astate;
NimStringDesc* error410611;
NimStringDesc* error410661;
};
struct  Tident188012  {
  Tidobj188006 Sup;
NimStringDesc* s;
Tident188012* next;
NI h;
};
typedef NimStringDesc* TY183169[2];
struct TY262262 {
NimStringDesc* Field0;
Vmcallback262032 Field1;
};
typedef N_CLOSURE_PTR(void, TMP2971) (Vmargs262030* args);
struct TY401397 {
NI Field0;
Tstackframe400208* Field1;
};
typedef struct {
N_NIMCALL_PTR(void, ClPrc) (Tlineinfo181337 info, NU16 msg, NimStringDesc* arg, void* ClEnv);
void* ClEnv;
} Terrorhandler204171;
struct TY88887 {
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;
} TY18011;
struct  TSafePoint  {
TSafePoint* prev;
NI status;
jmp_buf context;
NIM_BOOL hasRaiseAction;
TY18011 raiseAction;
};
struct TY262227 {
NIM_BOOL Field0;
NU8 Field1;
};
typedef TY262227 TY262230[256];
struct  PprocHEX3Aobjecttype262221  {
TY262222* blocks;
Tsym213822* sym;
TY262230 slots;
NI maxslots;
};
struct  Tscope213816  {
NI depthlevel;
Tstrtable213794 symbols;
Tnodeseq213784* usingsyms;
Tscope213816* parent;
};
struct  Ropeobj168006  {
  TNimObject Sup;
Ropeobj168006* left;
Ropeobj168006* right;
NI length;
NimStringDesc* data;
};
struct  Tlistentry135010  {
  TNimObject Sup;
Tlistentry135010* prev;
Tlistentry135010* next;
};
struct  Tlib213808  {
  Tlistentry135010 Sup;
NU8 kind;
NIM_BOOL generated;
NIM_BOOL isoverriden;
Ropeobj168006* name;
Tnode213790* path;
};
struct  Gcstack50016  {
Gcstack50016* prev;
Gcstack50016* next;
void* starts;
void* pos;
NI maxstacksize;
};
typedef NI TY29818[16];
struct  Pagedesc47713  {
Pagedesc47713* next;
NI key;
TY29818 bits;
};
struct  Basechunk29837  {
NI prevsize;
NI size;
NIM_BOOL used;
};
struct  Smallchunk29839  {
  Basechunk29837 Sup;
Smallchunk29839* next;
Smallchunk29839* prev;
Freecell29829* freelist;
NI free;
NI acc;
NF data;
};
struct  Llchunk29881  {
NI size;
NI acc;
Llchunk29881* next;
};
struct  Bigchunk29841  {
  Basechunk29837 Sup;
Bigchunk29841* next;
Bigchunk29841* prev;
NI align;
NF data;
};
struct  Trunk29810  {
Trunk29810* next;
NI key;
TY29818 bits;
};
typedef Avlnode29885* TY29892[2];
struct  Avlnode29885  {
TY29892 link;
NI key;
NI upperbound;
NI level;
};
struct  Tblock262018  {
Tsym213822* label;
TY262202* fixups;
};
struct  Tinstantiation213812  {
Tsym213822* sym;
Ttypeseq213824* concretetypes;
TY213913* usedby;
NI compilesid;
};
struct  Freecell29829  {
Freecell29829* next;
NI zerofield;
};
struct TY400855 {
  TGenericSeq Sup;
  Tfullreg400204 data[SEQ_DECL_SIZE];
};
struct Tnodeseq213784 {
  TGenericSeq Sup;
  Tnode213790* data[SEQ_DECL_SIZE];
};
struct TY313503 {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct TY125402 {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct Ttypeseq213824 {
  TGenericSeq Sup;
  Ttype213828* data[SEQ_DECL_SIZE];
};
struct TY213925 {
  TGenericSeq Sup;
  Tinstantiation213812* data[SEQ_DECL_SIZE];
};
struct Tsymseq213792 {
  TGenericSeq Sup;
  Tsym213822* data[SEQ_DECL_SIZE];
};
struct TY262242 {
  TGenericSeq Sup;
  NU32 data[SEQ_DECL_SIZE];
};
struct TY182093 {
  TGenericSeq Sup;
  Tlineinfo181337 data[SEQ_DECL_SIZE];
};
struct TY262261 {
  TGenericSeq Sup;
  TY262262 data[SEQ_DECL_SIZE];
};
struct TY262222 {
  TGenericSeq Sup;
  Tblock262018 data[SEQ_DECL_SIZE];
};
struct TY262202 {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct TY213913 {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
N_NIMCALL(void, globalerror_186071)(Tlineinfo181337 info, NU16 msg, NimStringDesc* arg);
static N_INLINE(NI, safelen_214081)(Tnode213790* n);
N_NIMCALL(NI, len_216339)(Ttype213828* n);
N_NIMCALL(void, globalerror_186076)(Tlineinfo181337 info, NimStringDesc* arg);
N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen0);
N_NIMCALL(NimStringDesc*, rendertree_232044)(Tnode213790* n, NU8 renderflags);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
N_NIMCALL(void, setupglobalctx_413019)(Tsym213822* module);
N_NIMCALL(Tctx262036*, newctx_262267)(Tsym213822* module);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incref_54019)(Cell47705* c);
static N_INLINE(NIM_BOOL, canbecycleroot_51658)(Cell47705* c);
static N_INLINE(void, rtladdcycleroot_52420)(Cell47705* c);
N_NOINLINE(void, incl_48447)(Cellset47717* s, Cell47705* cell);
static N_INLINE(Cell47705*, usrtocell_51640)(void* usr);
static N_INLINE(void, decref_53601)(Cell47705* c);
static N_INLINE(void, rtladdzct_53201)(Cell47705* c);
N_NOINLINE(void, addzct_51617)(Cellseq47721* s, Cell47705* c);
N_NIMCALL(void, registeradditionalops_412930)(Tctx262036* c);
N_NIMCALL(void, registercallback_262374)(Tctx262036* c, NimStringDesc* name, Vmcallback262032 callback);
N_NIMCALL(void, sqrtwrapper_412933)(Vmargs262030* a);
N_NIMCALL(void, setresult_400851)(Vmargs262030* a, NF v);
N_NIMCALL(void, myreset_400401)(Tfullreg400204* n);
N_NIMCALL(void, genericReset)(void* dest, TNimType* mt);
N_NIMCALL(NF, getfloat_401014)(Vmargs262030* a, NI i);
N_NOINLINE(void, raiseassert_88893)(NimStringDesc* msg);
N_NIMCALL(void, lnwrapper_412936)(Vmargs262030* a);
N_NIMCALL(void, log10wrapper_412939)(Vmargs262030* a);
N_NIMCALL(void, log2wrapper_412942)(Vmargs262030* a);
N_NIMCALL(NF, log2_155416)(NF x);
N_NIMCALL(void, expwrapper_412945)(Vmargs262030* a);
N_NIMCALL(void, roundwrapper_412948)(Vmargs262030* a);
N_NIMCALL(void, setresult_400831)(Vmargs262030* a, NI64 v);
N_NIMCALL(void, arccoswrapper_412951)(Vmargs262030* a);
N_NIMCALL(void, arcsinwrapper_412954)(Vmargs262030* a);
N_NIMCALL(void, arctanwrapper_412957)(Vmargs262030* a);
N_NIMCALL(void, arctan2wrapper_412960)(Vmargs262030* a);
N_NIMCALL(void, coswrapper_412963)(Vmargs262030* a);
N_NIMCALL(void, coshwrapper_412966)(Vmargs262030* a);
N_NIMCALL(void, hypotwrapper_412969)(Vmargs262030* a);
N_NIMCALL(void, sinhwrapper_412972)(Vmargs262030* a);
N_NIMCALL(void, sinwrapper_412975)(Vmargs262030* a);
N_NIMCALL(void, tanwrapper_412978)(Vmargs262030* a);
N_NIMCALL(void, tanhwrapper_412981)(Vmargs262030* a);
N_NIMCALL(void, powwrapper_412984)(Vmargs262030* a);
N_NIMCALL(void, truncwrapper_412987)(Vmargs262030* a);
N_NIMCALL(void, floorwrapper_412990)(Vmargs262030* a);
N_NIMCALL(void, ceilwrapper_412993)(Vmargs262030* a);
N_NIMCALL(void, fmodwrapper_412996)(Vmargs262030* a);
N_NIMCALL(void, getenvwrapper_412999)(Vmargs262030* a);
N_NIMCALL(void, setresult_400900)(Vmargs262030* a, NimStringDesc* v);
N_NIMCALL(Tnode213790*, newnode_214401)(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_126024)(NimStringDesc* key);
N_NIMCALL(NimStringDesc*, getstring_401037)(Vmargs262030* a, NI i);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_NIMCALL(void, existsenvwrapper_413002)(Vmargs262030* a);
N_NIMCALL(void, setresult_400871)(Vmargs262030* a, NIM_BOOL v_400874);
N_NIMCALL(NIM_BOOL, existsenv_126033)(NimStringDesc* key);
N_NIMCALL(void, direxistswrapper_413005)(Vmargs262030* a);
static N_INLINE(NIM_BOOL, direxists_122008)(NimStringDesc* dir);
N_NIMCALL(NIM_BOOL, nosexistsDir)(NimStringDesc* dir);
N_NIMCALL(void, fileexistswrapper_413008)(Vmargs262030* a);
static N_INLINE(NIM_BOOL, fileexists_122004)(NimStringDesc* filename);
N_NIMCALL(NIM_BOOL, nosexistsFile)(NimStringDesc* filename);
N_NIMCALL(void, writefilewrapper_413011)(Vmargs262030* a);
N_NIMCALL(void, writefile_15669)(NimStringDesc* filename, NimStringDesc* content);
N_NIMCALL(void, getcurrentexceptionmsgwrapper_412872)(Vmargs262030* a);
N_NIMCALL(Tnode213790*, skipcolon_397198)(Tnode213790* n);
N_NIMCALL(void, HEX3Aanonymous_413014)(Vmargs262030* a);
N_NIMCALL(void, setresult_400922)(Vmargs262030* a, Tnode213790* n);
N_NIMCALL(Tnode213790*, staticwalkdirimpl_412887)(NimStringDesc* path, NIM_BOOL relative);
N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
N_NIMCALL(NimStringDesc*, HEX2F_118665)(NimStringDesc* head, NimStringDesc* tail);
N_NIMCALL(void, add_214114)(Tnode213790* father, Tnode213790* son);
N_NIMCALL(Tnode213790*, newtree_214602)(NU8 kind, Tnode213790** children, NI childrenLen0);
N_NIMCALL(Tnode213790*, newintnode_214660)(NU8 kind, NI64 intval);
N_NIMCALL(Tnode213790*, newstrnode_214678)(NU8 kind, NimStringDesc* strval);
N_NIMCALL(NIM_BOOL, getbool_401009)(Vmargs262030* a, NI i);
N_NIMCALL(NI64, getint_400986)(Vmargs262030* a, NI i);
N_NIMCALL(void, refresh_262353)(Tctx262036* c, Tsym213822* module);
N_NIMCALL(NI, genproc_393867)(Tctx262036* c, Tsym213822* s);
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
N_NIMCALL(void, TMP2955)(void* p, NI op);
N_NIMCALL(void, TMP2956)(void* p, NI op);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
N_NIMCALL(void*, newSeqRC1)(TNimType* typ, NI len);
N_NIMCALL(Tnode213790*, newnodeit_215801)(NU8 kind, Tlineinfo181337 info, Ttype213828* typ);
N_NIMCALL(void, setupmacroparam_413635)(Tnode213790* x, Ttype213828* typ, Tfullreg400204* Result);
N_NIMCALL(void, putintoreg_401292)(Tfullreg400204* dest, Tnode213790* n);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_NIMCALL(Tnode213790*, canonvalue_389044)(Tnode213790* n);
static N_INLINE(Tnode213790*, HEX5BHEX5D_214238)(Tnode213790* n, NI i);
static N_INLINE(NI, len_214059)(Tnode213790* n);
N_NIMCALL(Tnode213790*, regtonode_401306)(Tfullreg400204 x);
N_NIMCALL(void, rawexecute_402204)(Tctx262036* c, NI start, Tstackframe400208* tos_402208, Tfullreg400204* Result);
N_NIMCALL(void, TMP2958)(void* p, NI op);
N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
N_NIMCALL(void, createstrkeepnode_400440)(Tfullreg400204* x, NIM_BOOL keepnode);
N_NIMCALL(void, asgncomplex_401244)(Tfullreg400204* x, Tfullreg400204 y);
N_NIMCALL(Tnode213790*, copyvalue_401125)(Tnode213790* src);
N_NIMCALL(NI, sonslen_216351)(Tnode213790* n);
N_NIMCALL(void, moveconst_401096)(Tfullreg400204* x, Tfullreg400204 y);
N_NIMCALL(void, putintonode_401268)(Tnode213790** n, Tfullreg400204 x);
N_NIMCALL(void, stacktrace_400311)(Tctx262036* c, Tstackframe400208* tos, NI pc, NU16 msg, NimStringDesc* arg);
N_NIMCALL(void, msgwriteln_182449)(NimStringDesc* s, NU8 flags);
N_NIMCALL(void, stacktraceaux_400230)(Tctx262036* c, Tstackframe400208* x_400233, NI pc, NI recursionlimit);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(NimStringDesc*, tofilename_182265)(NI32 fileidx);
static N_INLINE(NI, tolinenumber_182415)(Tlineinfo181337 info);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_NIMCALL(void, localerror_186080)(Tlineinfo181337 info, NU16 msg, NimStringDesc* arg);
N_NIMCALL(NIM_BOOL, inset_259010)(Tnode213790* s, Tnode213790* elem);
N_NIMCALL(void, addson_215807)(Tnode213790* father, Tnode213790* son);
N_NIMCALL(Tnode213790*, copytree_217822)(Tnode213790* src);
N_NIMCALL(Tnode213790*, diffsets_259030)(Tnode213790* a, Tnode213790* b);
N_NIMCALL(void, discardsons_214056)(Tnode213790* father);
N_NIMCALL(NI64, cardset_259050)(Tnode213790* s);
N_NIMCALL(NIM_BOOL, exprstructuralequivalent_238099)(Tnode213790* a, Tnode213790* b, NIM_BOOL strictsymequality);
N_NIMCALL(NIM_BOOL, sametypeornil_243638)(Ttype213828* a, Ttype213828* b, NU8 flags);
static N_INLINE(NI, cmpStrings)(NimStringDesc* a, NimStringDesc* b);
N_NIMCALL(NIM_BOOL, containssets_259042)(Tnode213790* a, Tnode213790* b);
N_NIMCALL(NIM_BOOL, equalsets_259046)(Tnode213790* a, Tnode213790* b);
N_NIMCALL(Tnode213790*, intersectsets_259034)(Tnode213790* a, Tnode213790* b);
N_NIMCALL(Tnode213790*, unionsets_259026)(Tnode213790* a, Tnode213790* b);
N_NIMCALL(Tnode213790*, symdiffsets_259038)(Tnode213790* a, Tnode213790* b);
N_NIMCALL(NimStringDesc*, nimCharToStr)(NIM_CHAR x);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s, NI start_80010, 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_274012)(Tnode213790* a, Tnode213790* b);
N_NIMCALL(NimStringDesc*, msgkindtostring_182743)(NU16 kind);
N_NIMCALL(NimStringDesc*, HEX24_232066)(Tnode213790* n);
N_NIMCALL(NI, compile_402036)(Tctx262036* c, Tsym213822* s);
static N_INLINE(NIM_BOOL, isemptytype_218513)(Ttype213828* t);
N_NIMCALL(Tnode213790*, getnullvalue_392401)(Ttype213828* typ, Tlineinfo181337 info);
N_NIMCALL(Tnode213790*, newnodei_215248)(NU8 kind, Tlineinfo181337 info);
N_NIMCALL(Tnode213790*, newsymnode_215234)(Tsym213822* sym);
N_NIMCALL(Tnode213790*, evaltemplate_399329)(Tnode213790* n, Tsym213822* tmpl, Tsym213822* gensymowner);
N_NIMCALL(NIM_BOOL, overlap_259006)(Tnode213790* a, Tnode213790* b);
N_NIMCALL(void, pushsafepoint_401323)(Tstackframe400208* f, NI pc);
N_NIMCALL(TGenericSeq*, incrSeqV2)(TGenericSeq* seq, NI elemsize);
N_NIMCALL(void, popsafepoint_401361)(Tstackframe400208* f);
static N_INLINE(NI, pop_401365)(TY313503** s);
N_NIMCALL(TGenericSeq*, setLengthSeq)(TGenericSeq* seq, NI elemsize, NI newlen);
N_NIMCALL(void, cleanuponexception_401393)(Tctx262036* c, Tstackframe400208* tos, TY401397* Result);
N_NIMCALL(Ttype213828*, skiptypes_217113)(Ttype213828* t, NU64 kinds);
N_NIMCALL(NI, inheritancediff_245442)(Ttype213828* a, Ttype213828* b);
N_NIMCALL(void, bailout_400327)(Tctx262036* c, Tstackframe400208* tos);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_NIMCALL(NIM_BOOL, fitsregister_390804)(Ttype213828* t);
N_NIMCALL(void, message_186095)(Tlineinfo181337 info, NU16 msg, NimStringDesc* arg);
N_NIMCALL(void, msgquit_182152)(NI8 x);
N_NIMCALL(NI64, getordvalue_239118)(Tnode213790* n);
N_NIMCALL(void, genericShallowAssign)(void* dest, void* src, TNimType* mt);
N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newlen);
N_NIMCALL(NIM_BOOL, sametype_243628)(Ttype213828* a, Ttype213828* b, NU8 flags);
N_NIMCALL(void, internalerror_186100)(Tlineinfo181337 info, NimStringDesc* errmsg);
N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
N_NIMCALL(NimStringDesc*, reprEnum)(NI e_85209, TNimType* typ);
N_NIMCALL(Tnode213790*, copynode_217542)(Tnode213790* src);
N_NIMCALL(Tnode213790*, opmaptypetoast_396275)(Ttype213828* t, Tlineinfo181337 info);
N_NIMCALL(NimStringDesc*, opslurp_396025)(NimStringDesc* file, Tlineinfo181337 info, Tsym213822* module);
N_NIMCALL(NimStringDesc*, opgorge_396009)(NimStringDesc* cmd, NimStringDesc* input, NimStringDesc* cache);
N_NIMCALL(Tnode213790*, parsestring_230536)(NimStringDesc* s, NimStringDesc* filename, NI line, Terrorhandler204171 errorhandler);
N_NIMCALL(NimStringDesc*, tofullpath_182269)(NI32 fileidx);
N_CLOSURE(void, HEX3Aanonymous_410614)(Tlineinfo181337 info, NU16 msg, NimStringDesc* arg, void* ClEnv);
N_NIMCALL(NimStringDesc*, formatmsg_184649)(Tlineinfo181337 info, NU16 msg, NimStringDesc* arg);
N_CLOSURE(void, HEX3Aanonymous_410664)(Tlineinfo181337 info, NU16 msg, NimStringDesc* arg, void* ClEnv);
static N_INLINE(NimStringDesc*, tofilelinecol_182427)(Tlineinfo181337 info);
N_NIMCALL(Tident188012*, getident_188441)(NimStringDesc* identifier);
N_NIMCALL(NIM_BOOL, opconv_401714)(Tfullreg400204* dest, Tfullreg400204 src, Ttype213828* desttyp, Ttype213828* srctyp);
N_NIMCALL(void, internalerror_186113)(NimStringDesc* errmsg);
N_NIMCALL(NimStringDesc*, nimInt64ToStr)(NI64 x);
N_NIMCALL(NimStringDesc*, HEX24_7801)(NU64 x);
N_NIMCALL(NimStringDesc*, nimFloatToStr)(NF f);
N_NIMCALL(NimStringDesc*, typetostring_239017)(Ttype213828* typ, NU8 prefer);
N_NIMCALL(NI64, firstord_239001)(Ttype213828* t);
N_NIMCALL(NI64, lastord_239004)(Ttype213828* t);
N_NIMCALL(NimStringDesc*, HEX24_186183)(TY88887 x);
N_NIMCALL(void, delson_217495)(Tnode213790* father, NI idx);
N_NIMCALL(Tsym213822*, newsym_214684)(NU8 symkind, Tident188012* name, Tsym213822* owner, Tlineinfo181337 info);
N_NIMCALL(Tnode213790*, loadany_398373)(NimStringDesc* s, Ttype213828* t);
N_NIMCALL(NimStringDesc*, rawNewString)(NI cap);
N_NIMCALL(void, storeany_397571)(NimStringDesc** s, Ttype213828* t, Tnode213790* a);
N_NIMCALL(NIM_BOOL, cyclictree_238094)(Tnode213790* n);
N_NIMCALL(Tnode213790*, evalconstexpraux_413209)(Tsym213822* module, Tsym213822* prc, Tnode213790* n_413213, NU8 mode);
N_NIMCALL(Tnode213790*, transformexpr_386801)(Tsym213822* module, Tnode213790* n);
static N_INLINE(void, pushSafePoint)(TSafePoint* s);
N_NIMCALL(NI, genexpr_394638)(Tctx262036* c, Tnode213790* n, NIM_BOOL requiresvalue);
static N_INLINE(void, popSafePoint)(void);
N_NIMCALL(void, reraiseException)(void);
N_NIMCALL(void, evalstmt_412611)(Tctx262036* c, Tnode213790* n_412614);
N_NIMCALL(NI, genstmt_394622)(Tctx262036* c, Tnode213790* n);
N_NIMCALL(Tnode213790*, execute_412498)(Tctx262036* c, NI start);
STRING_LITERAL(TMP2839, "", 0);
STRING_LITERAL(TMP2840, "in call \'$#\' got $#, but expected $# argument(s)", 48);
STRING_LITERAL(TMP2842, "stdlib.math.sqrt", 16);
TNimNode* NimDT_400204_kind[7];
STRING_LITERAL(TMP2846, "i < a.rc - 1 ", 13);
STRING_LITERAL(TMP2847, "s[i + a.rb + 1].kind == rkFloat ", 32);
STRING_LITERAL(TMP2849, "stdlib.math.ln", 14);
STRING_LITERAL(TMP2851, "stdlib.math.log10", 17);
STRING_LITERAL(TMP2853, "stdlib.math.log2", 16);
STRING_LITERAL(TMP2855, "stdlib.math.exp", 15);
STRING_LITERAL(TMP2857, "stdlib.math.round", 17);
STRING_LITERAL(TMP2859, "stdlib.math.arccos", 18);
STRING_LITERAL(TMP2861, "stdlib.math.arcsin", 18);
STRING_LITERAL(TMP2863, "stdlib.math.arctan", 18);
STRING_LITERAL(TMP2865, "stdlib.math.arctan2", 19);
STRING_LITERAL(TMP2867, "stdlib.math.cos", 15);
STRING_LITERAL(TMP2869, "stdlib.math.cosh", 16);
STRING_LITERAL(TMP2871, "stdlib.math.hypot", 17);
STRING_LITERAL(TMP2873, "stdlib.math.sinh", 16);
STRING_LITERAL(TMP2875, "stdlib.math.sin", 15);
STRING_LITERAL(TMP2877, "stdlib.math.tan", 15);
STRING_LITERAL(TMP2879, "stdlib.math.tanh", 16);
STRING_LITERAL(TMP2881, "stdlib.math.pow", 15);
STRING_LITERAL(TMP2883, "stdlib.math.trunc", 17);
STRING_LITERAL(TMP2885, "stdlib.math.floor", 17);
STRING_LITERAL(TMP2887, "stdlib.math.ceil", 16);
STRING_LITERAL(TMP2889, "stdlib.math.fmod", 16);
STRING_LITERAL(TMP2891, "stdlib.os.getEnv", 16);
STRING_LITERAL(TMP2892, "s[i + a.rb + 1].kind == rkNode ", 31);
STRING_LITERAL(TMP2894, "stdlib.os.existsEnv", 19);
STRING_LITERAL(TMP2896, "stdlib.os.dirExists", 19);
STRING_LITERAL(TMP2898, "stdlib.os.fileExists", 20);
STRING_LITERAL(TMP2900, "stdlib.system.writeFile", 23);
STRING_LITERAL(TMP2903, "stdlib.system.getCurrentExceptionMsg", 36);
STRING_LITERAL(TMP2905, "stdlib.*.staticWalkDir", 22);
STRING_LITERAL(TMP2906, ".", 1);
STRING_LITERAL(TMP2907, "..", 2);
STRING_LITERAL(TMP2908, "s[i + a.rb + 1].kind == rkInt ", 30);
STRING_LITERAL(TMP2959, "stack trace: (most recent call last)", 36);
STRING_LITERAL(TMP2960, " calls omitted\012", 15);
STRING_LITERAL(TMP2961, "limited VM support for \'addr\'", 29);
STRING_LITERAL(TMP2962, "limited VM support for \'ref\'", 28);
STRING_LITERAL(TMP2967, "symbol", 6);
STRING_LITERAL(TMP2969, "[", 1);
STRING_LITERAL(TMP2970, "]", 1);
STRING_LITERAL(TMP2972, "VM not allowed to do FFI", 24);
STRING_LITERAL(TMP2973, "VM not built with FFI support", 29);
NIM_CONST TY401397 TMP2977 = {((NI) -1),
NIM_NIL}
;
STRING_LITERAL(TMP2978, "too implement", 13);
STRING_LITERAL(TMP2979, "value out of range", 18);
STRING_LITERAL(TMP2980, "cannot add to node kind: ", 25);
STRING_LITERAL(TMP2981, "intVal", 6);
STRING_LITERAL(TMP2982, "floatVal", 8);
STRING_LITERAL(TMP2983, "ident", 5);
STRING_LITERAL(TMP3036, "node has no type", 16);
STRING_LITERAL(TMP3037, "strVal", 6);
STRING_LITERAL(TMP3059, "multiple statements", 19);
STRING_LITERAL(TMP3060, "callsite", 8);
STRING_LITERAL(TMP3061, "(", 1);
STRING_LITERAL(TMP3062, ",", 1);
STRING_LITERAL(TMP3063, ")", 1);
STRING_LITERAL(TMP3064, "cannot set type", 15);
STRING_LITERAL(TMP3065, "opConv for enum", 15);
STRING_LITERAL(TMP3066, " ", 1);
STRING_LITERAL(TMP3068, "false", 5);
STRING_LITERAL(TMP3069, "true", 4);
STRING_LITERAL(TMP3070, "cannot convert to string ", 25);
STRING_LITERAL(TMP3071, "cannot evaluate cast", 20);
STRING_LITERAL(TMP3073, "compiler/vm.nim", 15);
NIM_CONST TY88887 TMP3072 = {((NimStringDesc*) &TMP3073),
((NI) 1349)}
;
NIM_CONST TY88887 TMP3074 = {((NimStringDesc*) &TMP3073),
((NI) 1350)}
;
STRING_LITERAL(TMP3075, "request to create a NimNode of invalid kind", 43);
STRING_LITERAL(TMP3076, ":tmp", 4);
STRING_LITERAL(TMP3077, "request to create symbol of invalid kind", 40);
NIM_CONST TY88887 TMP3078 = {((NimStringDesc*) &TMP3073),
((NI) 1404)}
;
Tctx262036* globalctx_413017;
NI olderrorcount_413201;
NI evalmacrocounter_413667;
extern Gcheap50018 gch_50059;
TNimType NTI400204; /* TFullReg */
TNimType NTI400202; /* TRegisterKind */
extern TNimType NTI7088; /* BiggestInt */
extern TNimType NTI7090; /* BiggestFloat */
extern TNimType NTI213782; /* PNode */
TNimType NTI400219; /* ptr TFullReg */
extern TNimType NTI400221; /* ptr PNode */
TNimType NTI400208; /* TStackFrame */
extern TNimType NTI213788; /* PSym */
TNimType NTI400855; /* seq[TFullReg] */
extern TNimType NTI104; /* int */
extern TNimType NTI313503; /* seq[int] */
TNimType NTI400206; /* PStackFrame */
TNimType NTI412030; /* object */
extern TNimType NTI324021; /* range -1..0(int) */
extern TNimType NTI138; /* string */
TNimType NTI412029; /* ref object */
extern TNimType NTI213790; /* TNode */
extern TNimType NTI213784; /* TNodeSeq */
extern TNimType NTI213020; /* TNodeKind */
extern TSafePoint* exchandler_19637;
extern Tnode213790* emptynode_214801;
extern NI gerrorcounter_182081;

static N_INLINE(NI, safelen_214081)(Tnode213790* 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_51658)(Cell47705* c) {
	NIM_BOOL result;
	result = 0;
	result = !((((*(*c).typ).flags &(1U<<((NU)(((NU8) 1))&7U)))!=0));
	return result;
}

static N_INLINE(void, rtladdcycleroot_52420)(Cell47705* c) {
	{
		if (!!((((NI) ((NI)((*c).refcount & ((NI) 3)))) == ((NI) 3)))) goto LA3;
		(*c).refcount = (NI)((NI)((*c).refcount & ((NI) -4)) | ((NI) 3));
		incl_48447((&gch_50059.cycleroots), c);
	}
	LA3: ;
}

static N_INLINE(void, incref_54019)(Cell47705* c) {
	(*c).refcount = (NI)((NU32)((*c).refcount) + (NU32)(((NI) 8)));
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = canbecycleroot_51658(c);
		if (!LOC3) goto LA4;
		rtladdcycleroot_52420(c);
	}
	LA4: ;
}

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

static N_INLINE(void, rtladdzct_53201)(Cell47705* c) {
	addzct_51617((&gch_50059.zct), c);
}

static N_INLINE(void, decref_53601)(Cell47705* c) {
	{
		(*c).refcount -= ((NI) 8);
		if (!((NU32)((*c).refcount) < (NU32)(((NI) 8)))) goto LA3;
		rtladdzct_53201(c);
	}
	goto LA1;
	LA3: ;
	{
		NIM_BOOL LOC6;
		LOC6 = 0;
		LOC6 = canbecycleroot_51658(c);
		if (!LOC6) goto LA7;
		rtladdcycleroot_52420(c);
	}
	goto LA1;
	LA7: ;
	LA1: ;
}

static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		Cell47705* LOC5;
		if (!!((src == NIM_NIL))) goto LA3;
		LOC5 = 0;
		LOC5 = usrtocell_51640(src);
		incref_54019(LOC5);
	}
	LA3: ;
	{
		Cell47705* LOC10;
		if (!!(((*dest) == NIM_NIL))) goto LA8;
		LOC10 = 0;
		LOC10 = usrtocell_51640((*dest));
		decref_53601(LOC10);
	}
	LA8: ;
	(*dest) = src;
}

N_NIMCALL(void, myreset_400401)(Tfullreg400204* n) {
	genericReset((void*)(&(*n)), (&NTI400204));
}

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

N_NIMCALL(NF, getfloat_401014)(Vmargs262030* a, NI i) {
	NF result;
	TY400855* s;
	result = 0;
	{
		if (!!((((NI) (i)) < ((NI) ((NI)(((NI) ((*a).rc)) - ((NI) 1))))))) goto LA3;
		raiseassert_88893(((NimStringDesc*) &TMP2846));
	}
	LA3: ;
	s = ((TY400855*) ((*a).slots));
	{
		if (!!((s->data[(NI)(((NI) ((NI)(((NI) (i)) + ((NI) ((*a).rb))))) + ((NI) 1))].kind == ((NU8) 3)))) goto LA7;
		raiseassert_88893(((NimStringDesc*) &TMP2847));
	}
	LA7: ;
	result = s->data[(NI)(((NI) ((NI)(((NI) (i)) + ((NI) ((*a).rb))))) + ((NI) 1))].kindU.floatval;
	return result;
}

N_NIMCALL(void, sqrtwrapper_412933)(Vmargs262030* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_401014(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = sqrt(LOC1);
	setresult_400851(a, LOC2);
}

N_NIMCALL(void, lnwrapper_412936)(Vmargs262030* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_401014(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = log(LOC1);
	setresult_400851(a, LOC2);
}

N_NIMCALL(void, log10wrapper_412939)(Vmargs262030* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_401014(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = log10(LOC1);
	setresult_400851(a, LOC2);
}

N_NIMCALL(void, log2wrapper_412942)(Vmargs262030* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_401014(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = log2_155416(LOC1);
	setresult_400851(a, LOC2);
}

N_NIMCALL(void, expwrapper_412945)(Vmargs262030* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_401014(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = exp(LOC1);
	setresult_400851(a, LOC2);
}

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

N_NIMCALL(void, roundwrapper_412948)(Vmargs262030* a) {
	NF LOC1;
	NI LOC2;
	LOC1 = 0;
	LOC1 = getfloat_401014(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = lrint(LOC1);
	setresult_400831(a, ((NI64) (LOC2)));
}

N_NIMCALL(void, arccoswrapper_412951)(Vmargs262030* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_401014(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = acos(LOC1);
	setresult_400851(a, LOC2);
}

N_NIMCALL(void, arcsinwrapper_412954)(Vmargs262030* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_401014(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = asin(LOC1);
	setresult_400851(a, LOC2);
}

N_NIMCALL(void, arctanwrapper_412957)(Vmargs262030* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_401014(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = atan(LOC1);
	setresult_400851(a, LOC2);
}

N_NIMCALL(void, arctan2wrapper_412960)(Vmargs262030* a) {
	NF LOC1;
	NF LOC2;
	NF LOC3;
	LOC1 = 0;
	LOC1 = getfloat_401014(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = getfloat_401014(a, ((NI) 1));
	LOC3 = 0;
	LOC3 = atan2(LOC1, LOC2);
	setresult_400851(a, LOC3);
}

N_NIMCALL(void, coswrapper_412963)(Vmargs262030* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_401014(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = cos(LOC1);
	setresult_400851(a, LOC2);
}

N_NIMCALL(void, coshwrapper_412966)(Vmargs262030* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_401014(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = cosh(LOC1);
	setresult_400851(a, LOC2);
}

N_NIMCALL(void, hypotwrapper_412969)(Vmargs262030* a) {
	NF LOC1;
	NF LOC2;
	NF LOC3;
	LOC1 = 0;
	LOC1 = getfloat_401014(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = getfloat_401014(a, ((NI) 1));
	LOC3 = 0;
	LOC3 = hypot(LOC1, LOC2);
	setresult_400851(a, LOC3);
}

N_NIMCALL(void, sinhwrapper_412972)(Vmargs262030* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_401014(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = sinh(LOC1);
	setresult_400851(a, LOC2);
}

N_NIMCALL(void, sinwrapper_412975)(Vmargs262030* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_401014(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = sin(LOC1);
	setresult_400851(a, LOC2);
}

N_NIMCALL(void, tanwrapper_412978)(Vmargs262030* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_401014(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = tan(LOC1);
	setresult_400851(a, LOC2);
}

N_NIMCALL(void, tanhwrapper_412981)(Vmargs262030* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_401014(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = tanh(LOC1);
	setresult_400851(a, LOC2);
}

N_NIMCALL(void, powwrapper_412984)(Vmargs262030* a) {
	NF LOC1;
	NF LOC2;
	NF LOC3;
	LOC1 = 0;
	LOC1 = getfloat_401014(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = getfloat_401014(a, ((NI) 1));
	LOC3 = 0;
	LOC3 = pow(LOC1, LOC2);
	setresult_400851(a, LOC3);
}

N_NIMCALL(void, truncwrapper_412987)(Vmargs262030* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_401014(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = trunc(LOC1);
	setresult_400851(a, LOC2);
}

N_NIMCALL(void, floorwrapper_412990)(Vmargs262030* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_401014(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = floor(LOC1);
	setresult_400851(a, LOC2);
}

N_NIMCALL(void, ceilwrapper_412993)(Vmargs262030* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_401014(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = ceil(LOC1);
	setresult_400851(a, LOC2);
}

N_NIMCALL(void, fmodwrapper_412996)(Vmargs262030* a) {
	NF LOC1;
	NF LOC2;
	NF LOC3;
	LOC1 = 0;
	LOC1 = getfloat_401014(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = getfloat_401014(a, ((NI) 1));
	LOC3 = 0;
	LOC3 = fmod(LOC1, LOC2);
	setresult_400851(a, LOC3);
}

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

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

N_NIMCALL(void, setresult_400900)(Vmargs262030* a, NimStringDesc* v) {
	TY400855* s;
	NimStringDesc* LOC5;
	s = 0;
	s = ((TY400855*) ((*a).slots));
	{
		if (!!((s->data[(*a).ra].kind == ((NU8) 1)))) goto LA3;
		myreset_400401((&s->data[(*a).ra]));
		s->data[(*a).ra].kind = ((NU8) 1);
	}
	LA3: ;
	asgnRefNoCycle((void**) (&s->data[(*a).ra].kindU.node), newnode_214401(((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_401037)(Vmargs262030* a, NI i) {
	NimStringDesc* result;
	TY400855* s;
	result = 0;
	{
		if (!!((((NI) (i)) < ((NI) ((NI)(((NI) ((*a).rc)) - ((NI) 1))))))) goto LA3;
		raiseassert_88893(((NimStringDesc*) &TMP2846));
	}
	LA3: ;
	s = ((TY400855*) ((*a).slots));
	{
		if (!!((s->data[(NI)(((NI) ((NI)(((NI) (i)) + ((NI) ((*a).rb))))) + ((NI) 1))].kind == ((NU8) 1)))) goto LA7;
		raiseassert_88893(((NimStringDesc*) &TMP2892));
	}
	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_412999)(Vmargs262030* a) {
	NimStringDesc* LOC1;
	NimStringDesc* LOC2;
	LOC1 = 0;
	LOC1 = getstring_401037(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = getenv_126024(LOC1);
	setresult_400900(a, LOC2);
}

N_NIMCALL(void, setresult_400871)(Vmargs262030* a, NIM_BOOL v_400874) {
	NI v;
	TY400855* s;
	v = v_400874;
	s = 0;
	s = ((TY400855*) ((*a).slots));
	{
		if (!!((s->data[(*a).ra].kind == ((NU8) 2)))) goto LA3;
		myreset_400401((&s->data[(*a).ra]));
		s->data[(*a).ra].kind = ((NU8) 2);
	}
	LA3: ;
	s->data[(*a).ra].kindU.intval = ((NI64) (v));
}

N_NIMCALL(void, existsenvwrapper_413002)(Vmargs262030* a) {
	NimStringDesc* LOC1;
	NIM_BOOL LOC2;
	LOC1 = 0;
	LOC1 = getstring_401037(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = existsenv_126033(LOC1);
	setresult_400871(a, LOC2);
}

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

N_NIMCALL(void, direxistswrapper_413005)(Vmargs262030* a) {
	NimStringDesc* LOC1;
	NIM_BOOL LOC2;
	LOC1 = 0;
	LOC1 = getstring_401037(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = direxists_122008(LOC1);
	setresult_400871(a, LOC2);
}

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

N_NIMCALL(void, fileexistswrapper_413008)(Vmargs262030* a) {
	NimStringDesc* LOC1;
	NIM_BOOL LOC2;
	LOC1 = 0;
	LOC1 = getstring_401037(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = fileexists_122004(LOC1);
	setresult_400871(a, LOC2);
}

N_NIMCALL(void, writefilewrapper_413011)(Vmargs262030* a) {
	NimStringDesc* LOC1;
	NimStringDesc* LOC2;
	LOC1 = 0;
	LOC1 = getstring_401037(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = getstring_401037(a, ((NI) 1));
	writefile_15669(LOC1, LOC2);
}

N_NIMCALL(void, getcurrentexceptionmsgwrapper_412872)(Vmargs262030* a) {
	NimStringDesc* LOC1;
	LOC1 = 0;
	{
		if (!(*a).currentexception == 0) goto LA4;
		LOC1 = copyString(((NimStringDesc*) &TMP2839));
	}
	goto LA2;
	LA4: ;
	{
		Tnode213790* LOC7;
		LOC7 = 0;
		LOC7 = skipcolon_397198((*(*a).currentexception).kindU.S6.sons->data[((NI) 3)]);
		LOC1 = copyString((*LOC7).kindU.S3.strval);
	}
	LA2: ;
	setresult_400900(a, LOC1);
}

N_NIMCALL(void, setresult_400922)(Vmargs262030* a, Tnode213790* n) {
	TY400855* s;
	s = 0;
	s = ((TY400855*) ((*a).slots));
	{
		if (!!((s->data[(*a).ra].kind == ((NU8) 1)))) goto LA3;
		myreset_400401((&s->data[(*a).ra]));
		s->data[(*a).ra].kind = ((NU8) 1);
	}
	LA3: ;
	asgnRefNoCycle((void**) (&s->data[(*a).ra].kindU.node), n);
}

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;
}

N_NIMCALL(Tnode213790*, staticwalkdirimpl_412887)(NimStringDesc* path, NIM_BOOL relative) {
	Tnode213790* result;
	result = 0;
	result = newnode_214401(((NU8) 41));
	{
		NU8 k_412892;
		NimStringDesc* f_412893;
		DIR* d_412921;
		k_412892 = 0;
		f_412893 = 0;
		d_412921 = opendir(path->data);
		{
			int LOC60;
			if (!!((d_412921 == NIM_NIL))) goto LA4;
			{
				while (1) {
					{
						struct dirent* x_412923;
						NimStringDesc* y_412925;
						x_412923 = readdir(d_412921);
						{
							if (!(x_412923 == NIM_NIL)) goto LA11;
							goto LA6;
						}
						LA11: ;
						y_412925 = cstrToNimstr(((NCSTRING) ((*x_412923).d_name)));
						{
							NIM_BOOL LOC15;
							struct stat s_412927;
							NU8 k_412929;
							TY381939 LOC58;
							Tnode213790* LOC59;
							LOC15 = 0;
							LOC15 = !(eqStrings(y_412925, ((NimStringDesc*) &TMP2906)));
							if (!(LOC15)) goto LA16;
							LOC15 = !(eqStrings(y_412925, ((NimStringDesc*) &TMP2907)));
							LA16: ;
							if (!LOC15) goto LA17;
							memset((void*)(&s_412927), 0, sizeof(s_412927));
							{
								if (!!(relative)) goto LA21;
								y_412925 = HEX2F_118665(path, y_412925);
							}
							LA21: ;
							k_412929 = ((NU8) 0);
							{
								TY381939 LOC41;
								Tnode213790* LOC42;
								if (!!(((*x_412923).d_type == ((NI8) 0)))) goto LA25;
								{
									if (!((*x_412923).d_type == ((NI8) 4))) goto LA29;
									k_412929 = ((NU8) 2);
								}
								LA29: ;
								{
									if (!((*x_412923).d_type == ((NI8) 10))) goto LA33;
									{
										NIM_BOOL LOC37;
										LOC37 = 0;
										LOC37 = direxists_122008(y_412925);
										if (!LOC37) goto LA38;
										k_412929 = ((NU8) 3);
									}
									goto LA35;
									LA38: ;
									{
										k_412929 = (NU8)(k_412929 + ((NI) 1));
									}
									LA35: ;
								}
								LA33: ;
								k_412892 = k_412929;
								f_412893 = y_412925;
								memset((void*)LOC41, 0, sizeof(LOC41));
								LOC41[0] = newintnode_214660(((NU8) 6), ((NI64) (k_412892)));
								LOC41[1] = newstrnode_214678(((NU8) 20), f_412893);
								LOC42 = 0;
								LOC42 = newtree_214602(((NU8) 37), LOC41, 2);
								add_214114(result, LOC42);
								goto LA8;
							}
							LA25: ;
							{
								int LOC45;
								LOC45 = 0;
								LOC45 = lstat(y_412925->data, (&s_412927));
								if (!(LOC45 < ((NI32) 0))) goto LA46;
								goto LA6;
							}
							LA46: ;
							{
								NIM_BOOL LOC50;
								LOC50 = 0;
								LOC50 = S_ISDIR(s_412927.st_mode);
								if (!LOC50) goto LA51;
								k_412929 = ((NU8) 2);
							}
							LA51: ;
							{
								NIM_BOOL LOC55;
								LOC55 = 0;
								LOC55 = S_ISLNK(s_412927.st_mode);
								if (!LOC55) goto LA56;
								k_412929 = (NU8)(k_412929 + ((NI) 1));
							}
							LA56: ;
							k_412892 = k_412929;
							f_412893 = y_412925;
							memset((void*)LOC58, 0, sizeof(LOC58));
							LOC58[0] = newintnode_214660(((NU8) 6), ((NI64) (k_412892)));
							LOC58[1] = newstrnode_214678(((NU8) 20), f_412893);
							LOC59 = 0;
							LOC59 = newtree_214602(((NU8) 37), LOC58, 2);
							add_214114(result, LOC59);
						}
						LA17: ;
					} LA8: ;
				}
			} LA6: ;
			LOC60 = 0;
			LOC60 = closedir(d_412921);
		}
		LA4: ;
	}
	return result;
}

N_NIMCALL(NI64, getint_400986)(Vmargs262030* a, NI i) {
	NI64 result;
	TY400855* s;
	result = 0;
	{
		if (!!((((NI) (i)) < ((NI) ((NI)(((NI) ((*a).rc)) - ((NI) 1))))))) goto LA3;
		raiseassert_88893(((NimStringDesc*) &TMP2846));
	}
	LA3: ;
	s = ((TY400855*) ((*a).slots));
	{
		if (!!((s->data[(NI)(((NI) ((NI)(((NI) (i)) + ((NI) ((*a).rb))))) + ((NI) 1))].kind == ((NU8) 2)))) goto LA7;
		raiseassert_88893(((NimStringDesc*) &TMP2908));
	}
	LA7: ;
	result = s->data[(NI)(((NI) ((NI)(((NI) (i)) + ((NI) ((*a).rb))))) + ((NI) 1))].kindU.intval;
	return result;
}

N_NIMCALL(NIM_BOOL, getbool_401009)(Vmargs262030* a, NI i) {
	NIM_BOOL result;
	NI64 LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = getint_400986(a, i);
	result = !((LOC1 == IL64(0)));
	return result;
}

N_NIMCALL(void, HEX3Aanonymous_413014)(Vmargs262030* a) {
	NimStringDesc* LOC1;
	NIM_BOOL LOC2;
	Tnode213790* LOC3;
	LOC1 = 0;
	LOC1 = getstring_401037(a, ((NI) 0));
	LOC2 = 0;
	LOC2 = getbool_401009(a, ((NI) 1));
	LOC3 = 0;
	LOC3 = staticwalkdirimpl_412887(LOC1, LOC2);
	setresult_400922(a, LOC3);
}

N_NIMCALL(void, registeradditionalops_412930)(Tctx262036* c) {
	Vmcallback262032 LOC1;
	Vmcallback262032 LOC2;
	Vmcallback262032 LOC3;
	Vmcallback262032 LOC4;
	Vmcallback262032 LOC5;
	Vmcallback262032 LOC6;
	Vmcallback262032 LOC7;
	Vmcallback262032 LOC8;
	Vmcallback262032 LOC9;
	Vmcallback262032 LOC10;
	Vmcallback262032 LOC11;
	Vmcallback262032 LOC12;
	Vmcallback262032 LOC13;
	Vmcallback262032 LOC14;
	Vmcallback262032 LOC15;
	Vmcallback262032 LOC16;
	Vmcallback262032 LOC17;
	Vmcallback262032 LOC18;
	Vmcallback262032 LOC19;
	Vmcallback262032 LOC20;
	Vmcallback262032 LOC21;
	Vmcallback262032 LOC22;
	Vmcallback262032 LOC23;
	Vmcallback262032 LOC24;
	Vmcallback262032 LOC25;
	Vmcallback262032 LOC26;
	Vmcallback262032 LOC27;
	Vmcallback262032 LOC28;
	Vmcallback262032 LOC29;
	memset((void*)(&LOC1), 0, sizeof(LOC1));
	LOC1.ClPrc = ((TMP2848) (sqrtwrapper_412933)); LOC1.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2842), LOC1);
	memset((void*)(&LOC2), 0, sizeof(LOC2));
	LOC2.ClPrc = ((TMP2850) (lnwrapper_412936)); LOC2.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2849), LOC2);
	memset((void*)(&LOC3), 0, sizeof(LOC3));
	LOC3.ClPrc = ((TMP2852) (log10wrapper_412939)); LOC3.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2851), LOC3);
	memset((void*)(&LOC4), 0, sizeof(LOC4));
	LOC4.ClPrc = ((TMP2854) (log2wrapper_412942)); LOC4.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2853), LOC4);
	memset((void*)(&LOC5), 0, sizeof(LOC5));
	LOC5.ClPrc = ((TMP2856) (expwrapper_412945)); LOC5.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2855), LOC5);
	memset((void*)(&LOC6), 0, sizeof(LOC6));
	LOC6.ClPrc = ((TMP2858) (roundwrapper_412948)); LOC6.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2857), LOC6);
	memset((void*)(&LOC7), 0, sizeof(LOC7));
	LOC7.ClPrc = ((TMP2860) (arccoswrapper_412951)); LOC7.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2859), LOC7);
	memset((void*)(&LOC8), 0, sizeof(LOC8));
	LOC8.ClPrc = ((TMP2862) (arcsinwrapper_412954)); LOC8.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2861), LOC8);
	memset((void*)(&LOC9), 0, sizeof(LOC9));
	LOC9.ClPrc = ((TMP2864) (arctanwrapper_412957)); LOC9.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2863), LOC9);
	memset((void*)(&LOC10), 0, sizeof(LOC10));
	LOC10.ClPrc = ((TMP2866) (arctan2wrapper_412960)); LOC10.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2865), LOC10);
	memset((void*)(&LOC11), 0, sizeof(LOC11));
	LOC11.ClPrc = ((TMP2868) (coswrapper_412963)); LOC11.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2867), LOC11);
	memset((void*)(&LOC12), 0, sizeof(LOC12));
	LOC12.ClPrc = ((TMP2870) (coshwrapper_412966)); LOC12.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2869), LOC12);
	memset((void*)(&LOC13), 0, sizeof(LOC13));
	LOC13.ClPrc = ((TMP2872) (hypotwrapper_412969)); LOC13.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2871), LOC13);
	memset((void*)(&LOC14), 0, sizeof(LOC14));
	LOC14.ClPrc = ((TMP2874) (sinhwrapper_412972)); LOC14.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2873), LOC14);
	memset((void*)(&LOC15), 0, sizeof(LOC15));
	LOC15.ClPrc = ((TMP2876) (sinwrapper_412975)); LOC15.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2875), LOC15);
	memset((void*)(&LOC16), 0, sizeof(LOC16));
	LOC16.ClPrc = ((TMP2878) (tanwrapper_412978)); LOC16.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2877), LOC16);
	memset((void*)(&LOC17), 0, sizeof(LOC17));
	LOC17.ClPrc = ((TMP2880) (tanhwrapper_412981)); LOC17.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2879), LOC17);
	memset((void*)(&LOC18), 0, sizeof(LOC18));
	LOC18.ClPrc = ((TMP2882) (powwrapper_412984)); LOC18.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2881), LOC18);
	memset((void*)(&LOC19), 0, sizeof(LOC19));
	LOC19.ClPrc = ((TMP2884) (truncwrapper_412987)); LOC19.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2883), LOC19);
	memset((void*)(&LOC20), 0, sizeof(LOC20));
	LOC20.ClPrc = ((TMP2886) (floorwrapper_412990)); LOC20.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2885), LOC20);
	memset((void*)(&LOC21), 0, sizeof(LOC21));
	LOC21.ClPrc = ((TMP2888) (ceilwrapper_412993)); LOC21.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2887), LOC21);
	memset((void*)(&LOC22), 0, sizeof(LOC22));
	LOC22.ClPrc = ((TMP2890) (fmodwrapper_412996)); LOC22.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2889), LOC22);
	memset((void*)(&LOC23), 0, sizeof(LOC23));
	LOC23.ClPrc = ((TMP2893) (getenvwrapper_412999)); LOC23.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2891), LOC23);
	memset((void*)(&LOC24), 0, sizeof(LOC24));
	LOC24.ClPrc = ((TMP2895) (existsenvwrapper_413002)); LOC24.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2894), LOC24);
	memset((void*)(&LOC25), 0, sizeof(LOC25));
	LOC25.ClPrc = ((TMP2897) (direxistswrapper_413005)); LOC25.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2896), LOC25);
	memset((void*)(&LOC26), 0, sizeof(LOC26));
	LOC26.ClPrc = ((TMP2899) (fileexistswrapper_413008)); LOC26.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2898), LOC26);
	memset((void*)(&LOC27), 0, sizeof(LOC27));
	LOC27.ClPrc = ((TMP2902) (writefilewrapper_413011)); LOC27.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2900), LOC27);
	memset((void*)(&LOC28), 0, sizeof(LOC28));
	LOC28.ClPrc = ((TMP2904) (getcurrentexceptionmsgwrapper_412872)); LOC28.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2903), LOC28);
	memset((void*)(&LOC29), 0, sizeof(LOC29));
	LOC29.ClPrc = ((TMP2909) (HEX3Aanonymous_413014)); LOC29.ClEnv = NIM_NIL;
	registercallback_262374(c, ((NimStringDesc*) &TMP2905), LOC29);
}

N_NIMCALL(void, setupglobalctx_413019)(Tsym213822* module) {
	{
		if (!globalctx_413017 == 0) goto LA3;
		asgnRef((void**) (&globalctx_413017), newctx_262267(module));
		registeradditionalops_412930(globalctx_413017);
	}
	goto LA1;
	LA3: ;
	{
		refresh_262353(globalctx_413017, module);
	}
	LA1: ;
}
N_NIMCALL(void, TMP2955)(void* p, NI op) {
	TY400855* a;
	NI LOC1;
	a = (TY400855*)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, TMP2956)(void* p, NI op) {
	Tstackframe400208* a;
	a = (Tstackframe400208*)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_401292)(Tfullreg400204* dest, Tnode213790* n) {
	switch ((*n).kind) {
	case ((NU8) 20) ... ((NU8) 22):
	{
		NimStringDesc* LOC2;
		(*dest).kind = ((NU8) 1);
		unsureAsgnRef((void**) (&(*dest).kindU.node), newnode_214401(((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_413635)(Tnode213790* x, Ttype213828* typ, Tfullreg400204* Result) {
	switch ((*typ).kind) {
	case ((NU8) 59):
	{
		putintoreg_401292(Result, x);
	}
	break;
	case ((NU8) 8):
	{
		putintoreg_401292(Result, x);
	}
	break;
	default:
	{
		Tnode213790* 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_389044(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(Tnode213790*, HEX5BHEX5D_214238)(Tnode213790* n, NI i) {
	Tnode213790* result;
	result = 0;
	result = (*n).kindU.S6.sons->data[i];
	return result;
}

static N_INLINE(NI, len_214059)(Tnode213790* 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(Tnode213790*, regtonode_401306)(Tfullreg400204 x) {
	Tnode213790* result;
	result = 0;
	switch (x.kind) {
	case ((NU8) 0):
	{
		result = newnode_214401(((NU8) 1));
	}
	break;
	case ((NU8) 2):
	{
		result = newnode_214401(((NU8) 6));
		(*result).kindU.S1.intval = x.kindU.intval;
	}
	break;
	case ((NU8) 3):
	{
		result = newnode_214401(((NU8) 16));
		(*result).kindU.S2.floatval = x.kindU.floatval;
	}
	break;
	case ((NU8) 1):
	{
		result = x.kindU.node;
	}
	break;
	case ((NU8) 4):
	{
		result = regtonode_401306((*x.kindU.regaddr));
	}
	break;
	case ((NU8) 5):
	{
		result = (*x.kindU.nodeaddr);
	}
	break;
	}
	return result;
}
N_NIMCALL(void, TMP2958)(void* p, NI op) {
	TY412030* a;
	a = (TY412030*)p;
	nimGCvisit((void*)(*a).error410611, op);
	nimGCvisit((void*)(*a).error410661, op);
}

N_NIMCALL(void, createstrkeepnode_400440)(Tfullreg400204* x, NIM_BOOL keepnode) {
	{
		if (!(*x).kindU.node == 0) goto LA3;
		unsureAsgnRef((void**) (&(*x).kindU.node), newnode_214401(((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)), (&NTI213790));
		(*(*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 &(1U<<((NU)(((NU8) 4))&15U)))!=0);
		LA12: ;
		if (!LOC11) goto LA13;
		unsureAsgnRef((void**) (&(*x).kindU.node), newnode_214401(((NU8) 20)));
	}
	goto LA1;
	LA13: ;
	LA1: ;
}

N_NIMCALL(Tnode213790*, copyvalue_401125)(Tnode213790* src) {
	Tnode213790* result;
{	result = 0;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = (src == NIM_NIL);
		if (LOC3) goto LA4;
		LOC3 = (((*src).flags &(1U<<((NU)(((NU8) 13))&15U)))!=0);
		LA4: ;
		if (!LOC3) goto LA5;
		result = src;
		goto BeforeRet;
	}
	LA5: ;
	result = newnode_214401((*src).kind);
	(*result).info = (*src).info;
	asgnRefNoCycle((void**) (&(*result).typ), (*src).typ);
	(*result).flags = ((*src).flags & 26382);
	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_216351(src);
		if ((*result).kindU.S6.sons) nimGCunrefNoCycle((*result).kindU.S6.sons);
		(*result).kindU.S6.sons = (Tnodeseq213784*) newSeqRC1((&NTI213784), ((NI) (LOC14)));
		{
			NI i_401233;
			NI HEX3Atmp_401237;
			NI LOC16;
			NI res_401240;
			i_401233 = 0;
			HEX3Atmp_401237 = 0;
			LOC16 = 0;
			LOC16 = sonslen_216351(src);
			HEX3Atmp_401237 = (NI)(LOC16 - ((NI) 1));
			res_401240 = ((NI) 0);
			{
				while (1) {
					if (!(res_401240 <= HEX3Atmp_401237)) goto LA18;
					i_401233 = res_401240;
					asgnRefNoCycle((void**) (&(*result).kindU.S6.sons->data[i_401233]), copyvalue_401125((*src).kindU.S6.sons->data[i_401233]));
					res_401240 += ((NI) 1);
				} LA18: ;
			}
		}
	}
	break;
	}
	}BeforeRet: ;
	return result;
}

N_NIMCALL(void, asgncomplex_401244)(Tfullreg400204* x, Tfullreg400204 y) {
	{
		if (!!(((*x).kind == y.kind))) goto LA3;
		myreset_400401(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_401125(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_401096)(Tfullreg400204* x, Tfullreg400204 y) {
	{
		if (!!(((*x).kind == y.kind))) goto LA3;
		myreset_400401(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_401268)(Tnode213790** n, Tfullreg400204 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 &(1U<<((NU)(((NU8) 13))&15U)))!=0)) goto LA7;
			unsureAsgnRef((void**) (&(*n)), x.kindU.node);
		}
		goto LA5;
		LA7: ;
		{
			genericAssign((void*)(&(*(*n))), (void*)(&(*x.kindU.node)), (&NTI213790));
		}
		LA5: ;
	}
	break;
	case ((NU8) 4):
	{
		putintonode_401268(n, (*x.kindU.regaddr));
	}
	break;
	case ((NU8) 5):
	{
		genericAssign((void*)(&(*(*n))), (void*)(&(*(*x.kindU.nodeaddr))), (&NTI213790));
	}
	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_182415)(Tlineinfo181337 info) {
	NI result;
	result = 0;
	result = ((NI) (info.line));
	return result;
}

N_NIMCALL(void, stacktraceaux_400230)(Tctx262036* c, Tstackframe400208* x_400233, NI pc, NI recursionlimit) {
{	{
		Tlineinfo181337 info;
		NimStringDesc* s;
		NI line;
		if (!!((x_400233 == NIM_NIL))) goto LA3;
		{
			NI calls;
			Tstackframe400208* x;
			NimStringDesc* LOC11;
			NimStringDesc* LOC12;
			if (!(recursionlimit == ((NI) 0))) goto LA7;
			calls = ((NI) 0);
			x = x_400233;
			{
				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*) &TMP2960));
			msgwriteln_182449(LOC11, 0);
			goto BeforeRet;
		}
		LA7: ;
		stacktraceaux_400230(c, (*x_400233).next, (*x_400233).comesfrom, (NI)(recursionlimit - ((NI) 1)));
		info = (*c).debug->data[pc];
		s = tofilename_182265(info.fileindex);
		line = tolinenumber_182415(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_400233).prc == NIM_NIL))) goto LA20;
			{
				NI k_400300;
				NI HEX3Atmp_400304;
				NI res_400307;
				k_400300 = 0;
				HEX3Atmp_400304 = 0;
				HEX3Atmp_400304 = ((((NI) 1) >= (NI)(((NI) 25) - (s ? s->Sup.len : 0))) ? ((NI) 1) : (NI)(((NI) 25) - (s ? s->Sup.len : 0)));
				res_400307 = ((NI) 1);
				{
					while (1) {
						if (!(res_400307 <= HEX3Atmp_400304)) goto LA24;
						k_400300 = res_400307;
						s = addChar(s, 32);
						res_400307 += ((NI) 1);
					} LA24: ;
				}
			}
			s = resizeString(s, (*(*(*x_400233).prc).name).s->Sup.len + 0);
appendString(s, (*(*(*x_400233).prc).name).s);
		}
		LA20: ;
		msgwriteln_182449(s, 0);
	}
	LA3: ;
	}BeforeRet: ;
}

N_NIMCALL(void, stacktrace_400311)(Tctx262036* c, Tstackframe400208* tos, NI pc, NU16 msg, NimStringDesc* arg) {
	msgwriteln_182449(((NimStringDesc*) &TMP2959), 0);
	stacktraceaux_400230(c, tos, pc, ((NI) 100));
	{
		if (!((*c).mode == ((NU8) 0))) goto LA3;
		globalerror_186071((*c).debug->data[pc], msg, arg);
	}
	goto LA1;
	LA3: ;
	{
		localerror_186080((*c).debug->data[pc], msg, arg);
	}
	LA1: ;
}

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_402036)(Tctx262036* c, Tsym213822* s) {
	NI result;
	result = 0;
	result = genproc_393867(c, s);
	return result;
}

static N_INLINE(NIM_BOOL, isemptytype_218513)(Ttype213828* 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_401323)(Tstackframe400208* f, NI pc) {
	{
		if (!(*f).safepoints == 0) goto LA3;
		if ((*f).safepoints) nimGCunrefNoCycle((*f).safepoints);
		(*f).safepoints = (TY313503*) newSeqRC1((&NTI313503), 0);
	}
	LA3: ;
	(*f).safepoints = (TY313503*) incrSeqV2(&((*f).safepoints)->Sup, sizeof(NI));
	(*f).safepoints->data[(*f).safepoints->Sup.len] = pc;
	++(*f).safepoints->Sup.len;
}

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

N_NIMCALL(void, popsafepoint_401361)(Tstackframe400208* f) {
	NI LOC1;
	LOC1 = 0;
	LOC1 = pop_401365((&(*f).safepoints));
}

N_NIMCALL(void, cleanuponexception_401393)(Tctx262036* c, Tstackframe400208* tos, TY401397* Result) {
	Ttype213828* raisedtype;
	Tstackframe400208* f;
{	raisedtype = skiptypes_217113((*(*c).currentexceptiona).typ, IL64(211106247256320));
	f = tos;
	{
		while (1) {
			NI pc2;
			NI nextexceptorfinally;
			NI LOC49;
			{
				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 = TMP2977.Field0;
						unsureAsgnRef((void**) (&(*Result).Field1), TMP2977.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) {
					NI excindex;
					Ttype213828* excepttype;
					if (!(((NU8) ((NU32)((*c).code->data[pc2] & ((NU32) 255)))) == ((NU8) 141))) goto LA16;
					excindex = (NI)(((NI) ((NU32)((NU32)((*c).code->data[pc2]) >> (NU32)(((NU32) 16))))) - ((NI) 32768));
					{
						if (!(((NI) 0) < excindex)) goto LA19;
						excepttype = skiptypes_217113((*c).types->data[excindex], IL64(211106247256320));
					}
					goto LA17;
					LA19: ;
					{
						excepttype = NIM_NIL;
					}
					LA17: ;
					{
						NIM_BOOL LOC24;
						NI LOC26;
						LOC24 = 0;
						LOC24 = excepttype == 0;
						if (LOC24) goto LA25;
						LOC26 = 0;
						LOC26 = inheritancediff_245442(excepttype, raisedtype);
						LOC24 = (LOC26 <= ((NI) 0));
						LA25: ;
						if (!LOC24) goto LA27;
						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 LA30;
								pc2 += ((NI) 1);
							} LA30: ;
						}
						(*Result).Field0 = pc2;
						unsureAsgnRef((void**) (&(*Result).Field1), f);
						goto BeforeRet;
					}
					LA27: ;
					pc2 += ((NI) 1);
					{
						NIM_BOOL LOC33;
						LOC33 = 0;
						LOC33 = !((((NU8) ((NU32)((*c).code->data[pc2] & ((NU32) 255)))) == ((NU8) 141)));
						if (!(LOC33)) goto LA34;
						LOC33 = (((NI) 0) <= nextexceptorfinally);
						LA34: ;
						if (!LOC33) goto LA35;
						pc2 = (NI)(nextexceptorfinally + ((NI) 1));
						{
							if (!(((NU8) ((NU32)((*c).code->data[pc2] & ((NU32) 255)))) == ((NU8) 141))) goto LA39;
							nextexceptorfinally = (NI)((NI)(pc2 + ((NI) ((NU32)((NU32)((*c).code->data[pc2]) >> (NU32)(((NU32) 16)))))) - ((NI) 32768));
						}
						LA39: ;
					}
					LA35: ;
				} LA16: ;
			}
			{
				if (!(((NI) 0) <= nextexceptorfinally)) goto LA43;
				pc2 = nextexceptorfinally;
			}
			LA43: ;
			{
				if (!(((NU8) ((NU32)((*c).code->data[pc2] & ((NU32) 255)))) == ((NU8) 142))) goto LA47;
				(*Result).Field0 = pc2;
				unsureAsgnRef((void**) (&(*Result).Field1), f);
				goto BeforeRet;
			}
			LA47: ;
			LOC49 = 0;
			LOC49 = pop_401365((&(*f).safepoints));
		}
	}
	}BeforeRet: ;
}

N_NIMCALL(void, bailout_400327)(Tctx262036* c, Tstackframe400208* tos) {
	Tnode213790* LOC1;
	LOC1 = 0;
	LOC1 = skipcolon_397198((*(*c).currentexceptiona).kindU.S6.sons->data[((NI) 3)]);
	stacktrace_400311(c, tos, (*c).exceptioninstr, ((NU16) 219), (*LOC1).kindU.S3.strval);
}

N_CLOSURE(void, HEX3Aanonymous_410614)(Tlineinfo181337 info, NU16 msg, NimStringDesc* arg, void* ClEnv) {
	TY412030* HEX3Aenvp_412033;
	HEX3Aenvp_412033 = (TY412030*) ClEnv;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = (*HEX3Aenvp_412033).error410611 == 0;
		if (!(LOC3)) goto LA4;
		LOC3 = (msg <= ((NU16) 236));
		LA4: ;
		if (!LOC3) goto LA5;
		asgnRefNoCycle((void**) (&(*HEX3Aenvp_412033).error410611), formatmsg_184649(info, msg, arg));
	}
	LA5: ;
}

N_CLOSURE(void, HEX3Aanonymous_410664)(Tlineinfo181337 info, NU16 msg, NimStringDesc* arg, void* ClEnv) {
	TY412030* HEX3Aenvp_412035;
	HEX3Aenvp_412035 = (TY412030*) ClEnv;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = (*HEX3Aenvp_412035).error410661 == 0;
		if (!(LOC3)) goto LA4;
		LOC3 = (msg <= ((NU16) 236));
		LA4: ;
		if (!LOC3) goto LA5;
		asgnRefNoCycle((void**) (&(*HEX3Aenvp_412035).error410661), formatmsg_184649(info, msg, arg));
	}
	LA5: ;
}

static N_INLINE(NimStringDesc*, tofilelinecol_182427)(Tlineinfo181337 info) {
	NimStringDesc* result;
	NimStringDesc* LOC1;
	NimStringDesc* LOC2;
	NimStringDesc* LOC3;
	NimStringDesc* LOC4;
	result = 0;
	LOC1 = 0;
	LOC2 = 0;
	LOC2 = tofilename_182265(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*) &TMP3061));
appendString(LOC1, LOC3);
appendString(LOC1, ((NimStringDesc*) &TMP3062));
appendString(LOC1, LOC4);
appendString(LOC1, ((NimStringDesc*) &TMP3063));
	result = LOC1;
	return result;
}

N_NIMCALL(NIM_BOOL, opconv_401714)(Tfullreg400204* dest, Tfullreg400204 src, Ttype213828* desttyp, Ttype213828* srctyp) {
	NIM_BOOL result;
{	result = 0;
	{
		Ttype213828* styp;
		if (!((*desttyp).kind == ((NU8) 28))) goto LA3;
		{
			if (!!(((*dest).kind == ((NU8) 1)))) goto LA7;
			myreset_400401(dest);
			(*dest).kind = ((NU8) 1);
		}
		LA7: ;
		unsureAsgnRef((void**) (&(*dest).kindU.node), newnode_214401(((NU8) 20)));
		styp = skiptypes_217113(srctyp, IL64(211106233624832));
		switch ((*styp).kind) {
		case ((NU8) 14):
		{
			Tnode213790* n;
			NI x;
			n = (*styp).n;
			x = ((NI) (src.kindU.intval));
			{
				NIM_BOOL LOC12;
				NI LOC13;
				Tsym213822* f;
				LOC12 = 0;
				LOC13 = 0;
				LOC13 = len_214059(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_401792;
					NI HEX3Atmp_402019;
					NI LOC26;
					NI res_402022;
					i_401792 = 0;
					HEX3Atmp_402019 = 0;
					LOC26 = 0;
					LOC26 = len_214059(n);
					HEX3Atmp_402019 = (LOC26 - 1);
					res_402022 = ((NI) 0);
					{
						while (1) {
							Tsym213822* f;
							if (!(res_402022 <= HEX3Atmp_402019)) goto LA28;
							i_401792 = res_402022;
							{
								if (!!(((*(*n).kindU.S6.sons->data[i_401792]).kind == ((NU8) 3)))) goto LA31;
								internalerror_186113(((NimStringDesc*) &TMP3065));
							}
							LA31: ;
							f = (*(*n).kindU.S6.sons->data[i_401792]).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_402022 += ((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*) &TMP3066));
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_7801(((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*) &TMP3068));
				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*) &TMP3069));
				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*) &TMP2839));
				{
					Tnode213790* son_401862;
					Tnodeseq213784* HEX3Atmp_402028;
					NI i_402031;
					NI L_402033;
					son_401862 = 0;
					HEX3Atmp_402028 = 0;
					HEX3Atmp_402028 = (*src.kindU.node).kindU.S6.sons;
					i_402031 = ((NI) 0);
					L_402033 = (HEX3Atmp_402028 ? HEX3Atmp_402028->Sup.len : 0);
					{
						while (1) {
							NIM_CHAR c;
							if (!(i_402031 < L_402033)) goto LA66;
							son_401862 = HEX3Atmp_402028->data[i_402031];
							c = ((NIM_CHAR) ((*son_401862).kindU.S1.intval));
							{
								if (!((NU8)(c) == (NU8)(0))) goto LA69;
								goto LA64;
							}
							LA69: ;
							strval = addChar(strval, c);
							i_402031 += ((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_239017(desttyp, ((NU8) 0));
			LOC76 = rawNewString(LOC77->Sup.len + 25);
appendString(LOC76, ((NimStringDesc*) &TMP3070));
appendString(LOC76, LOC77);
			internalerror_186113(LOC76);
		}
		break;
		}
	}
	goto LA1;
	LA3: ;
	{
		Ttype213828* LOC79;
		LOC79 = 0;
		LOC79 = skiptypes_217113(desttyp, IL64(211106233624832));
		switch ((*LOC79).kind) {
		case ((NU8) 31) ... ((NU8) 35):
		{
			Ttype213828* LOC85;
			{
				if (!!(((*dest).kind == ((NU8) 2)))) goto LA83;
				myreset_400401(dest);
				(*dest).kind = ((NU8) 2);
			}
			LA83: ;
			LOC85 = 0;
			LOC85 = skiptypes_217113(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_239001(desttyp);
				LOC90 = ((*dest).kindU.intval < LOC91);
				if (LOC90) goto LA92;
				LOC93 = 0;
				LOC93 = lastord_239004(desttyp);
				LOC90 = (LOC93 < (*dest).kindU.intval);
				LA92: ;
				if (!LOC90) goto LA94;
				result = NIM_TRUE;
				goto BeforeRet;
			}
			LA94: ;
		}
		break;
		case ((NU8) 40) ... ((NU8) 44):
		{
			Ttype213828* LOC101;
			{
				if (!!(((*dest).kind == ((NU8) 2)))) goto LA99;
				myreset_400401(dest);
				(*dest).kind = ((NU8) 2);
			}
			LA99: ;
			LOC101 = 0;
			LOC101 = skiptypes_217113(srctyp, IL64(211106233624832));
			switch ((*LOC101).kind) {
			case ((NU8) 36) ... ((NU8) 38):
			{
				(*dest).kindU.intval = ((NI64) (((NI) (src.kindU.floatval))));
			}
			break;
			default:
			{
				NI64 srcdist;
				NI64 destdist;
				srcdist = (NI64)((NI64)(IL64(8) - (*srctyp).size) * IL64(8));
				destdist = (NI64)((NI64)(IL64(8) - (*desttyp).size) * IL64(8));
				(*dest).kindU.intval = (NI64)((NU64)((NI64)((NU64)(src.kindU.intval) << (NU64)(srcdist))) >> (NU64)(srcdist));
				(*dest).kindU.intval = (NI64)((NU64)((NI64)((NU64)((*dest).kindU.intval) << (NU64)(destdist))) >> (NU64)(destdist));
			}
			break;
			}
		}
		break;
		case ((NU8) 36) ... ((NU8) 38):
		{
			Ttype213828* LOC109;
			{
				if (!!(((*dest).kind == ((NU8) 3)))) goto LA107;
				myreset_400401(dest);
				(*dest).kind = ((NU8) 3);
			}
			LA107: ;
			LOC109 = 0;
			LOC109 = skiptypes_217113(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_401244(dest, src);
		}
		break;
		}
	}
	LA1: ;
	}BeforeRet: ;
	return result;
}

N_NIMCALL(void, rawexecute_402204)(Tctx262036* c, NI start, Tstackframe400208* tos_402208, Tfullreg400204* Result) {
	TY412030* HEX3Aenv_412037;
	NI pc;
	Tstackframe400208* tos;
	TY400855* regs;
{	HEX3Aenv_412037 = 0;
	HEX3Aenv_412037 = (TY412030*) newObj((&NTI412029), sizeof(TY412030));
	pc = start;
	tos = tos_402208;
	regs = 0;
	regs = (*tos).slots;
	{
		while (1) {
			NU32 instr;
			NI ra_402234;
			instr = (*c).code->data[pc];
			ra_402234 = ((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_402234]), (&NTI400204));
				goto BeforeRet;
			}
			break;
			case ((NU8) 1):
			{
				Tfullreg400204 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), (&NTI400204));
					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), (&NTI400204));
				}
				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_402234].kind == ((NU8) 2)))) goto LA18;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA18: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 1)))) goto LA23;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA23: ;
				createstrkeepnode_400440((&regs->data[ra_402234]), !((((NI) (rc)) == ((NI) 0))));
				LOC25 = 0;
				LOC25 = (*regs->data[ra_402234].kindU.node).kindU.S3.strval; (*regs->data[ra_402234].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_402234].kind == ((NU8) 3)))) goto LA29;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 3);
				}
				LA29: ;
				regs->data[ra_402234].kindU.floatval = regs->data[rb].kindU.floatval;
			}
			break;
			case ((NU8) 8):
			{
				asgncomplex_401244((&regs->data[ra_402234]), regs->data[((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))))]);
			}
			break;
			case ((NU8) 7):
			{
				moveconst_401096((&regs->data[ra_402234]), 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_402234].kind == ((NU8) 1)))) goto LA36;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA36: ;
				putintonode_401268(&regs->data[ra_402234].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]), (&NTI400204));
				}
				goto LA39;
				LA41: ;
				{
					Tnode213790* 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_400401((&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_400401((&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_400401((&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;
				Tnode213790* src;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA62;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA62: ;
				{
					if (!(IL64(2147483647) < regs->data[rc].kindU.intval)) goto LA66;
					stacktrace_400311(c, tos, pc, ((NU16) 86), ((NimStringDesc*) &TMP2839));
				}
				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_214059(src);
					LOC70 = ((NU32)(idx) < (NU32)(LOC72));
					LA71: ;
					if (!LOC70) goto LA73;
					asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), (*src).kindU.S6.sons->data[idx]);
				}
				goto LA68;
				LA73: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 86), ((NimStringDesc*) &TMP2839));
				}
				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_402234].kind == ((NU8) 2)))) goto LA79;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].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_400311(c, tos, pc, ((NU16) 85), ((NimStringDesc*) &TMP2839));
				}
				goto LA81;
				LA83: ;
				{
					if (!((NU32)(idx) <= (NU32)((s ? s->Sup.len : 0)))) goto LA86;
					regs->data[ra_402234].kindU.intval = ((NI64) (((NU8)(s->data[idx]))));
				}
				goto LA81;
				LA86: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 86), ((NimStringDesc*) &TMP2839));
				}
				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_402234].kind == ((NU8) 1)))) goto LA92;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA92: ;
				idx = ((NI) (regs->data[rb].kindU.intval));
				{
					NI LOC96;
					LOC96 = 0;
					LOC96 = len_214059(regs->data[ra_402234].kindU.node);
					if (!((NU32)(idx) < (NU32)(LOC96))) goto LA97;
					putintonode_401268(&(*regs->data[ra_402234].kindU.node).kindU.S6.sons->data[idx], regs->data[rc]);
				}
				goto LA94;
				LA97: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 86), ((NimStringDesc*) &TMP2839));
				}
				LA94: ;
			}
			break;
			case ((NU8) 13):
			{
				NI rb;
				NI rc;
				Tnode213790* src;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA103;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA103: ;
				src = regs->data[rb].kindU.node;
				{
					Tnode213790* n;
					if (!!(((*src).kind >= ((NU8) 1) && (*src).kind <= ((NU8) 23)))) goto LA107;
					n = skipcolon_397198((*src).kindU.S6.sons->data[(NI)(((NI) (rc)) + ((NI) (((*src).kind == ((NU8) 38)))))]);
					asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), n);
				}
				goto LA105;
				LA107: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 85), ((NimStringDesc*) &TMP2839));
				}
				LA105: ;
			}
			break;
			case ((NU8) 14):
			{
				NI rb;
				NI rc;
				NI shiftedrb;
				Tnode213790* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA113;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA113: ;
				shiftedrb = (NI)(((NI) (rb)) + ((NI) (((*regs->data[ra_402234].kindU.node).kind == ((NU8) 38)))));
				dest = regs->data[ra_402234].kindU.node;
				{
					if (!((*(*dest).kindU.S6.sons->data[shiftedrb]).kind == ((NU8) 34))) goto LA117;
					putintonode_401268(&(*(*dest).kindU.S6.sons->data[shiftedrb]).kindU.S6.sons->data[((NI) 1)], regs->data[rc]);
				}
				goto LA115;
				LA117: ;
				{
					putintonode_401268(&(*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_402234].kind == ((NU8) 1)))) goto LA123;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA123: ;
				idx = ((NI) (regs->data[rb].kindU.intval));
				{
					if (!((NU32)(idx) < (NU32)(((*regs->data[ra_402234].kindU.node).kindU.S3.strval ? (*regs->data[ra_402234].kindU.node).kindU.S3.strval->Sup.len : 0)))) goto LA127;
					(*regs->data[ra_402234].kindU.node).kindU.S3.strval->data[idx] = ((NIM_CHAR) (((NI) (regs->data[rc].kindU.intval))));
				}
				goto LA125;
				LA127: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 86), ((NimStringDesc*) &TMP2839));
				}
				LA125: ;
			}
			break;
			case ((NU8) 15):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 4)))) goto LA133;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 4);
				}
				LA133: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 5)))) goto LA138;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 5);
				}
				LA138: ;
				{
					if (!(regs->data[rb].kind == ((NU8) 1))) goto LA142;
					regs->data[ra_402234].kindU.nodeaddr = &regs->data[rb].kindU.node;
				}
				goto LA140;
				LA142: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 4), ((NimStringDesc*) &TMP2961));
				}
				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_400401((&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_400401((&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)), (&NTI400204));
				}
				break;
				case ((NU8) 1):
				{
					{
						if (!((*regs->data[rb].kindU.node).kind == ((NU8) 23))) goto LA159;
						stacktrace_400311(c, tos, pc, ((NU16) 85), ((NimStringDesc*) &TMP2839));
					}
					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_400311(c, tos, pc, ((NU16) 4), ((NimStringDesc*) &TMP2962));
					}
					LA161: ;
				}
				break;
				default:
				{
					stacktrace_400311(c, tos, pc, ((NU16) 85), ((NimStringDesc*) &TMP2839));
				}
				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_401268(regs->data[ra].kindU.nodeaddr, regs->data[rc]);
				}
				break;
				case ((NU8) 4):
				{
					genericAssign((void*)(&(*regs->data[ra].kindU.regaddr)), (void*)(&regs->data[rc]), (&NTI400204));
				}
				break;
				case ((NU8) 1):
				{
					putintonode_401268(&regs->data[ra].kindU.node, regs->data[rc]);
				}
				break;
				default:
				{
					stacktrace_400311(c, tos, pc, ((NU16) 85), ((NimStringDesc*) &TMP2839));
				}
				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_402234].kind == ((NU8) 2)))) goto LA175;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].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_402234].kindU.intval = sum;
				}
				goto LA177;
				LA181: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 80), ((NimStringDesc*) &TMP2839));
				}
				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_402234].kind == ((NU8) 2)))) goto LA187;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].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_402234].kindU.intval = sum;
				}
				goto LA189;
				LA193: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 80), ((NimStringDesc*) &TMP2839));
				}
				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_402234].kind == ((NU8) 2)))) goto LA199;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].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_402234].kindU.intval = diff;
				}
				goto LA201;
				LA205: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 80), ((NimStringDesc*) &TMP2839));
				}
				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_402234].kind == ((NU8) 2)))) goto LA211;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].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_402234].kindU.intval = diff;
				}
				goto LA213;
				LA217: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 80), ((NimStringDesc*) &TMP2839));
				}
				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_402234].kind == ((NU8) 2)))) goto LA223;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA223: ;
				LOC225 = 0;
				LOC225 = safelen_214081(regs->data[rb].kindU.node);
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA229;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA229: ;
				regs->data[ra_402234].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;
				Tnode213790* b;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA234;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA234: ;
				b = regtonode_401306(regs->data[rb]);
				{
					NIM_BOOL LOC238;
					Tnode213790* LOC241;
					LOC238 = 0;
					LOC238 = inset_259010(regs->data[ra_402234].kindU.node, b);
					if (!!(LOC238)) goto LA239;
					LOC241 = 0;
					LOC241 = copytree_217822(b);
					addson_215807(regs->data[ra_402234].kindU.node, LOC241);
				}
				LA239: ;
			}
			break;
			case ((NU8) 28):
			{
				NI rb;
				NI rc;
				Tnode213790* r;
				Tnode213790* LOC247;
				Tnode213790* LOC248;
				Tnode213790* LOC249;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA245;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA245: ;
				r = newnode_214401(((NU8) 44));
				LOC247 = 0;
				LOC247 = regtonode_401306(regs->data[rb]);
				add_214114(r, LOC247);
				LOC248 = 0;
				LOC248 = regtonode_401306(regs->data[rc]);
				add_214114(r, LOC248);
				LOC249 = 0;
				LOC249 = copytree_217822(r);
				addson_215807(regs->data[ra_402234].kindU.node, LOC249);
			}
			break;
			case ((NU8) 29):
			{
				NI rb;
				Tnode213790* b;
				Tnode213790* LOC255;
				Tnode213790* r;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA253;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA253: ;
				b = newnodeit_215801(((NU8) 39), (*regs->data[ra_402234].kindU.node).info, (*regs->data[ra_402234].kindU.node).typ);
				LOC255 = 0;
				LOC255 = regtonode_401306(regs->data[rb]);
				addson_215807(b, LOC255);
				r = diffsets_259030(regs->data[ra_402234].kindU.node, b);
				discardsons_214056(regs->data[ra_402234].kindU.node);
				{
					NI i_404333;
					NI HEX3Atmp_412120;
					NI LOC257;
					NI res_412123;
					i_404333 = 0;
					HEX3Atmp_412120 = 0;
					LOC257 = 0;
					LOC257 = sonslen_216351(r);
					HEX3Atmp_412120 = (NI)(LOC257 - ((NI) 1));
					res_412123 = ((NI) 0);
					{
						while (1) {
							if (!(res_412123 <= HEX3Atmp_412120)) goto LA259;
							i_404333 = res_412123;
							addson_215807(regs->data[ra_402234].kindU.node, (*r).kindU.S6.sons->data[i_404333]);
							res_412123 += ((NI) 1);
						} LA259: ;
					}
				}
			}
			break;
			case ((NU8) 30):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 2)))) goto LA263;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA263: ;
				regs->data[ra_402234].kindU.intval = cardset_259050(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_402234].kind == ((NU8) 2)))) goto LA268;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].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_402234].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_402234].kindU.intval = product;
				}
				goto LA270;
				LA275: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 80), ((NimStringDesc*) &TMP2839));
				}
				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_402234].kind == ((NU8) 2)))) goto LA281;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA281: ;
				{
					if (!(regs->data[rc].kindU.intval == IL64(0))) goto LA285;
					stacktrace_400311(c, tos, pc, ((NU16) 77), ((NimStringDesc*) &TMP2839));
				}
				goto LA283;
				LA285: ;
				{
					regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA291;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA291: ;
				{
					if (!(regs->data[rc].kindU.intval == IL64(0))) goto LA295;
					stacktrace_400311(c, tos, pc, ((NU16) 77), ((NimStringDesc*) &TMP2839));
				}
				goto LA293;
				LA295: ;
				{
					regs->data[ra_402234].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_402234].kind == ((NU8) 3)))) goto LA301;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 3);
				}
				LA301: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 3)))) goto LA306;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 3);
				}
				LA306: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 3)))) goto LA311;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 3);
				}
				LA311: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 3)))) goto LA316;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 3);
				}
				LA316: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA321;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA321: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA326;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA326: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA331;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA331: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA336;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA336: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA341;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA341: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA346;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA346: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA351;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA351: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA356;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA356: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA361;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA361: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA366;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA366: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA371;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA371: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA376;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA376: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA381;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA381: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA386;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA386: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA391;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA391: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA396;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA396: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA401;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA401: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA406;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA406: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA411;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].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_402234].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_402234].kind == ((NU8) 2)))) goto LA420;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA420: ;
				LOC422 = 0;
				LOC422 = exprstructuralequivalent_238099(regs->data[rb].kindU.node, regs->data[rc].kindU.node, NIM_TRUE);
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA426;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA426: ;
				LOC428 = 0;
				LOC428 = sametypeornil_243638((*regs->data[rb].kindU.node).typ, (*regs->data[rc].kindU.node).typ, 0);
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA432;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA432: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA437;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA437: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA442;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA442: ;
				val = regs->data[rb].kindU.intval;
				{
					if (!!((val == (IL64(-9223372036854775807) - IL64(1))))) goto LA446;
					regs->data[ra_402234].kindU.intval = -(val);
				}
				goto LA444;
				LA446: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 80), ((NimStringDesc*) &TMP2839));
				}
				LA444: ;
			}
			break;
			case ((NU8) 62):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 3)))) goto LA452;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 3);
				}
				LA452: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA457;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA457: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA462;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA462: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA467;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA467: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA472;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA472: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA477;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA477: ;
				LOC479 = 0;
				LOC479 = containssets_259042(regs->data[rb].kindU.node, regs->data[rc].kindU.node);
				regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA483;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA483: ;
				LOC485 = 0;
				LOC485 = equalsets_259046(regs->data[rb].kindU.node, regs->data[rc].kindU.node);
				regs->data[ra_402234].kindU.intval = ((NI64) (LOC485));
			}
			break;
			case ((NU8) 69):
			{
				NI rb;
				NI rc;
				Tnode213790* a;
				Tnode213790* 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_402234].kind == ((NU8) 2)))) goto LA489;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA489: ;
				a = regs->data[rb].kindU.node;
				b = regs->data[rc].kindU.node;
				LOC491 = 0;
				LOC491 = containssets_259042(a, b);
				if (!(LOC491)) goto LA492;
				LOC493 = 0;
				LOC493 = equalsets_259046(a, b);
				LOC491 = !(LOC493);
				LA492: ;
				regs->data[ra_402234].kindU.intval = ((NI64) (LOC491));
			}
			break;
			case ((NU8) 70):
			{
				NI rb;
				NI rc;
				Tnode213790* LOC499;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA497;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA497: ;
				asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), newnode_214401(((NU8) 39)));
				LOC499 = 0;
				LOC499 = intersectsets_259034(regs->data[rb].kindU.node, regs->data[rc].kindU.node);
				asgnRefNoCycle((void**) (&(*regs->data[ra_402234].kindU.node).kindU.S6.sons), (*LOC499).kindU.S6.sons);
			}
			break;
			case ((NU8) 71):
			{
				NI rb;
				NI rc;
				Tnode213790* LOC505;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA503;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA503: ;
				asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), newnode_214401(((NU8) 39)));
				LOC505 = 0;
				LOC505 = unionsets_259026(regs->data[rb].kindU.node, regs->data[rc].kindU.node);
				asgnRefNoCycle((void**) (&(*regs->data[ra_402234].kindU.node).kindU.S6.sons), (*LOC505).kindU.S6.sons);
			}
			break;
			case ((NU8) 72):
			{
				NI rb;
				NI rc;
				Tnode213790* LOC511;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA509;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA509: ;
				asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), newnode_214401(((NU8) 39)));
				LOC511 = 0;
				LOC511 = diffsets_259030(regs->data[rb].kindU.node, regs->data[rc].kindU.node);
				asgnRefNoCycle((void**) (&(*regs->data[ra_402234].kindU.node).kindU.S6.sons), (*LOC511).kindU.S6.sons);
			}
			break;
			case ((NU8) 73):
			{
				NI rb;
				NI rc;
				Tnode213790* LOC517;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA515;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA515: ;
				asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), newnode_214401(((NU8) 39)));
				LOC517 = 0;
				LOC517 = symdiffsets_259038(regs->data[rb].kindU.node, regs->data[rc].kindU.node);
				asgnRefNoCycle((void**) (&(*regs->data[ra_402234].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_402234].kind == ((NU8) 1)))) goto LA521;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA521: ;
				asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), newnode_214401(((NU8) 20)));
				{
					NimStringDesc* LOC527;
					if (!(regs->data[rb].kind == ((NU8) 1))) goto LA525;
					LOC527 = 0;
					LOC527 = (*regs->data[ra_402234].kindU.node).kindU.S3.strval; (*regs->data[ra_402234].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_402234].kindU.node).kindU.S3.strval), nimCharToStr(((NIM_CHAR) (((NI) (((NI) (regs->data[rb].kindU.intval))))))));
				}
				LA523: ;
				{
					NI i_407014;
					NI HEX3Atmp_412259;
					NI HEX3Atmp_412260;
					NI res_412263;
					i_407014 = 0;
					HEX3Atmp_412259 = 0;
					HEX3Atmp_412260 = 0;
					HEX3Atmp_412259 = (NI)(((NI) (rb)) + ((NI) 1));
					HEX3Atmp_412260 = (NI)(((NI) ((NI)(((NI) (rb)) + ((NI) (rc))))) - ((NI) 1));
					res_412263 = ((NI) (HEX3Atmp_412259));
					{
						while (1) {
							NimStringDesc* LOC532;
							if (!(res_412263 <= ((NI) (HEX3Atmp_412260)))) goto LA531;
							i_407014 = ((NI) (res_412263));
							LOC532 = 0;
							{
								if (!(regs->data[i_407014].kind == ((NU8) 1))) goto LA535;
								LOC532 = copyString((*regs->data[i_407014].kindU.node).kindU.S3.strval);
							}
							goto LA533;
							LA535: ;
							{
								LOC532 = nimCharToStr(((NIM_CHAR) (((NI) (((NI) (regs->data[i_407014].kindU.intval)))))));
							}
							LA533: ;
							(*regs->data[ra_402234].kindU.node).kindU.S3.strval = resizeString((*regs->data[ra_402234].kindU.node).kindU.S3.strval, LOC532->Sup.len + 0);
appendString((*regs->data[ra_402234].kindU.node).kindU.S3.strval, LOC532);
							res_412263 += ((NI) 1);
						} LA531: ;
					}
				}
			}
			break;
			case ((NU8) 90):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA541;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA541: ;
				(*regs->data[ra_402234].kindU.node).kindU.S3.strval = addChar((*regs->data[ra_402234].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_402234].kind == ((NU8) 1)))) goto LA546;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA546: ;
				(*regs->data[ra_402234].kindU.node).kindU.S3.strval = resizeString((*regs->data[ra_402234].kindU.node).kindU.S3.strval, (*regs->data[rb].kindU.node).kindU.S3.strval->Sup.len + 0);
appendString((*regs->data[ra_402234].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_402234].kind == ((NU8) 1)))) goto LA551;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA551: ;
				{
					Tnode213790* LOC557;
					Tnode213790* LOC558;
					if (!((*regs->data[ra_402234].kindU.node).kind == ((NU8) 41))) goto LA555;
					LOC557 = 0;
					LOC557 = regtonode_401306(regs->data[rb]);
					LOC558 = 0;
					LOC558 = copytree_217822(LOC557);
					add_214114(regs->data[ra_402234].kindU.node, LOC558);
				}
				goto LA553;
				LA555: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 85), ((NimStringDesc*) &TMP2839));
				}
				LA553: ;
			}
			break;
			case ((NU8) 126):
			{
				NI rb;
				Tnode213790* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA563;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].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_402234].kindU.node), newnode_214401(((NU8) 23)));
					}
					goto LA569;
					LA571: ;
					{
						asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), copytree_217822((*(*a).kindU.S4.sym).ast));
					}
					LA569: ;
				}
				goto LA565;
				LA567: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP2967));
				}
				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_182449((*regs->data[ra_402234].kindU.node).kindU.S3.strval, 1);
				}
				goto LA576;
				LA578: ;
				{
					NimStringDesc* outp;
					outp = copyString(((NimStringDesc*) &TMP2839));
					{
						NI i_407414;
						NI HEX3Atmp_412277;
						NI res_412280;
						i_407414 = 0;
						HEX3Atmp_412277 = 0;
						HEX3Atmp_412277 = (NI)(((NI) ((NI)(((NI) (ra_402234)) + ((NI) (rb))))) - ((NI) 1));
						res_412280 = ((NI) (ra_402234));
						{
							while (1) {
								if (!(res_412280 <= ((NI) (HEX3Atmp_412277)))) goto LA583;
								i_407414 = ((NI) (res_412280));
								outp = resizeString(outp, (*regs->data[i_407414].kindU.node).kindU.S3.strval->Sup.len + 0);
appendString(outp, (*regs->data[i_407414].kindU.node).kindU.S3.strval);
								res_412280 += ((NI) 1);
							} LA583: ;
						}
					}
					msgwriteln_182449(outp, 1);
				}
				LA576: ;
			}
			break;
			case ((NU8) 75):
			{
				NI rb;
				NI rc;
				Tnode213790* 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_402234].kind == ((NU8) 2)))) goto LA587;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA587: ;
				LOC589 = 0;
				LOC589 = regtonode_401306(regs->data[rc]);
				LOC590 = 0;
				LOC590 = inset_259010(regs->data[rb].kindU.node, LOC589);
				regs->data[ra_402234].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_402234].kind == ((NU8) 1)))) goto LA594;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].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_402234].kindU.node), newnode_214401(((NU8) 20)));
				asgnRefNoCycle((void**) (&(*regs->data[ra_402234].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;
				Tfullreg400204* 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_402234].kind == ((NU8) 2)))) goto LA599;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].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_400401((&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_402234].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;
					Tnode213790* LOC613;
					Tnode213790* LOC614;
					Tnode213790* LOC616;
					Tnode213790* LOC617;
					NimStringDesc* LOC620;
					TY183169 LOC621;
					Tnode213790* LOC622;
					NimStringDesc* LOC623;
					Tnode213790* LOC624;
					NimStringDesc* LOC625;
					Tnode213790* LOC626;
					NimStringDesc* LOC627;
					NimStringDesc* LOC628;
					LOC612 = 0;
					LOC613 = 0;
					LOC613 = regtonode_401306(regs->data[rb]);
					LOC614 = 0;
					LOC614 = regtonode_401306(regs->data[ra_402234]);
					LOC612 = levalueconv_274012(LOC613, LOC614);
					if (!(LOC612)) goto LA615;
					LOC616 = 0;
					LOC616 = regtonode_401306(regs->data[ra_402234]);
					LOC617 = 0;
					LOC617 = regtonode_401306(regs->data[rc]);
					LOC612 = levalueconv_274012(LOC616, LOC617);
					LA615: ;
					if (!!(LOC612)) goto LA618;
					LOC620 = 0;
					LOC620 = msgkindtostring_182743(((NU16) 146));
					memset((void*)LOC621, 0, sizeof(LOC621));
					LOC622 = 0;
					LOC622 = regtonode_401306(regs->data[ra_402234]);
					LOC621[0] = HEX24_232066(LOC622);
					LOC623 = 0;
					LOC624 = 0;
					LOC624 = regtonode_401306(regs->data[rb]);
					LOC625 = 0;
					LOC625 = HEX24_232066(LOC624);
					LOC626 = 0;
					LOC626 = regtonode_401306(regs->data[rc]);
					LOC627 = 0;
					LOC627 = HEX24_232066(LOC626);
					LOC623 = rawNewString(LOC625->Sup.len + LOC627->Sup.len + 4);
appendString(LOC623, ((NimStringDesc*) &TMP2969));
appendString(LOC623, LOC625);
appendString(LOC623, ((NimStringDesc*) &TMP2907));
appendString(LOC623, LOC627);
appendString(LOC623, ((NimStringDesc*) &TMP2970));
					LOC621[1] = LOC623;
					LOC628 = 0;
					LOC628 = nsuFormatOpenArray(LOC620, LOC621, 2);
					stacktrace_400311(c, tos, pc, ((NU16) 4), LOC628);
				}
				LA618: ;
			}
			break;
			case ((NU8) 128):
			case ((NU8) 129):
			{
				NI rb;
				NI rc;
				Tnode213790* bb;
				NIM_BOOL isclosure;
				Tsym213822* 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: ;
				{
					Vmargs262030 LOC639;
					if (!((*prc).offset < ((NI) -1))) goto LA637;
					memset((void*)(&LOC639), 0, sizeof(LOC639));
					memset((void*)(&LOC639), 0, sizeof(LOC639));
					LOC639.ra = ((NI) (ra_402234));
					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):((TMP2971)((*c).callbacks->data[(NI)(((NI32)-((*prc).offset)) - ((NI) 2))].Field1.ClPrc))((&LOC639));
				}
				goto LA635;
				LA637: ;
				{
					if (!(((*prc).flags &(1U<<((NU)(((NU8) 5))&31U)))!=0)) goto LA641;
					{
						if (!!((((*c).features &(1U<<((NU)(((NU8) 1))&7U)))!=0))) goto LA645;
						globalerror_186071((*c).debug->data[pc], ((NU16) 4), ((NimStringDesc*) &TMP2972));
					}
					LA645: ;
					globalerror_186071((*c).debug->data[pc], ((NU16) 4), ((NimStringDesc*) &TMP2973));
				}
				goto LA635;
				LA641: ;
				{
					NI newpc;
					Tstackframe400208* newframe;
					Tstackframe400208* LOC663;
					if (!!(((*prc).kind == ((NU8) 17)))) goto LA648;
					newpc = compile_402036(c, prc);
					{
						if (!(newpc < pc)) goto LA652;
						{
							if (!((*c).loopiterations <= ((NI) 0))) goto LA656;
							{
								if (!(((*c).features &(1U<<((NU)(((NU8) 2))&7U)))!=0)) goto LA660;
								(*c).loopiterations = ((NI) 1500000);
							}
							goto LA658;
							LA660: ;
							{
								msgwriteln_182449(((NimStringDesc*) &TMP2959), 0);
								stacktraceaux_400230(c, tos, pc, ((NI) 100));
								globalerror_186071((*c).debug->data[pc], ((NU16) 212), ((NimStringDesc*) &TMP2839));
							}
							LA658: ;
						}
						LA656: ;
						(*c).loopiterations -= ((NI) 1);
					}
					LA652: ;
					LOC663 = 0;
					LOC663 = (Tstackframe400208*) newObj((&NTI400206), sizeof(Tstackframe400208));
					asgnRefNoCycle((void**) (&(*LOC663).prc), prc);
					(*LOC663).comesfrom = pc;
					asgnRef((void**) (&(*LOC663).next), tos);
					newframe = LOC663;
					if ((*newframe).slots) nimGCunrefNoCycle((*newframe).slots);
					(*newframe).slots = (TY400855*) newSeqRC1((&NTI400855), ((NI) ((*prc).offset)));
					{
						NIM_BOOL LOC666;
						NIM_BOOL LOC667;
						Tnode213790* LOC671;
						LOC666 = 0;
						LOC667 = 0;
						LOC667 = isemptytype_218513((*(*prc).typ).sons->data[((NI) 0)]);
						LOC666 = !(LOC667);
						if (LOC666) goto LA668;
						LOC666 = ((*prc).kind == ((NU8) 16));
						LA668: ;
						if (!LOC666) goto LA669;
						LOC671 = 0;
						LOC671 = getnullvalue_392401((*(*prc).typ).sons->data[((NI) 0)], (*prc).info);
						putintoreg_401292((&(*newframe).slots->data[((NI) 0)]), LOC671);
					}
					LA669: ;
					{
						NI i_408214;
						NI HEX3Atmp_412306;
						NI res_412309;
						i_408214 = 0;
						HEX3Atmp_412306 = 0;
						HEX3Atmp_412306 = (NI)(((NI) (rc)) - ((NI) 1));
						res_412309 = ((NI) 1);
						{
							while (1) {
								if (!(res_412309 <= ((NI) (HEX3Atmp_412306)))) goto LA674;
								i_408214 = ((NI) (res_412309));
								genericAssign((void*)(&(*newframe).slots->data[i_408214]), (void*)(&regs->data[(NI)(((NI) (rb)) + ((NI) (i_408214)))]), (&NTI400204));
								res_412309 += ((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: ;
				{
					Tsym213822* gensymowner;
					Tnode213790* macrocall;
					Tnode213790* LOC687;
					Tnode213790* 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_215248(((NU8) 27), (*c).debug->data[pc]);
					LOC687 = 0;
					LOC687 = newsymnode_215234(prc);
					add_214114(macrocall, LOC687);
					{
						NI i_408256;
						NI HEX3Atmp_412313;
						NI res_412316;
						i_408256 = 0;
						HEX3Atmp_412313 = 0;
						HEX3Atmp_412313 = (NI)(((NI) (rc)) - ((NI) 1));
						res_412316 = ((NI) 1);
						{
							while (1) {
								Tnode213790* LOC691;
								if (!(res_412316 <= ((NI) (HEX3Atmp_412313)))) goto LA690;
								i_408256 = ((NI) (res_412316));
								LOC691 = 0;
								LOC691 = regtonode_401306(regs->data[(NI)(((NI) (rb)) + ((NI) (i_408256)))]);
								add_214114(macrocall, LOC691);
								res_412316 += ((NI) 1);
							} LA690: ;
						}
					}
					a = evaltemplate_399329(macrocall, prc, gensymowner);
					{
						if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA694;
						myreset_400401((&regs->data[ra_402234]));
						regs->data[ra_402234].kind = ((NU8) 1);
					}
					LA694: ;
					asgnRefNoCycle((void**) (&regs->data[ra_402234].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_402234].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_402234].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 &(1U<<((NU)(((NU8) 2))&7U)))!=0)) goto LA714;
						(*c).loopiterations = ((NI) 1500000);
					}
					goto LA712;
					LA714: ;
					{
						msgwriteln_182449(((NimStringDesc*) &TMP2959), 0);
						stacktraceaux_400230(c, tos, pc, ((NI) 100));
						globalerror_186071((*c).debug->data[pc], ((NU16) 212), ((NimStringDesc*) &TMP2839));
					}
					LA712: ;
				}
				LA710: ;
				(*c).loopiterations -= ((NI) 1);
			}
			break;
			case ((NU8) 139):
			{
				Tnode213790* branch;
				NIM_BOOL cond;
				branch = HEX5BHEX5D_214238((*c).constants, (NI)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - ((NI) 32768)));
				cond = NIM_FALSE;
				{
					NI j_408391;
					NI HEX3Atmp_412325;
					NI LOC719;
					NI res_412328;
					j_408391 = 0;
					HEX3Atmp_412325 = 0;
					LOC719 = 0;
					LOC719 = sonslen_216351(branch);
					HEX3Atmp_412325 = (NI)(LOC719 - ((NI) 2));
					res_412328 = ((NI) 0);
					{
						while (1) {
							if (!(res_412328 <= HEX3Atmp_412325)) goto LA721;
							j_408391 = res_412328;
							{
								Tnode213790* LOC724;
								NIM_BOOL LOC725;
								LOC724 = 0;
								LOC724 = regtonode_401306(regs->data[ra_402234]);
								LOC725 = 0;
								LOC725 = overlap_259006(LOC724, (*branch).kindU.S6.sons->data[j_408391]);
								if (!LOC725) goto LA726;
								cond = NIM_TRUE;
								goto LA718;
							}
							LA726: ;
							res_412328 += ((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_401323(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_401361(tos);
			}
			break;
			case ((NU8) 143):
			{
				{
					TY401397 LOC740;
					NI newpc;
					Tstackframe400208* newtos;
					if (!!(((*c).currentexceptiona == NIM_NIL))) goto LA738;
					memset((void*)(&LOC740), 0, sizeof(LOC740));
					cleanuponexception_401393(c, tos, (&LOC740));
					newpc = 0;
					newpc = LOC740.Field0;
					newtos = 0;
					newtos = LOC740.Field1;
					{
						if (!((NI)(newpc - ((NI) 1)) < ((NI) 0))) goto LA743;
						bailout_400327(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):
			{
				Tnode213790* raised;
				TY401397 LOC750;
				NI newpc;
				Tstackframe400208* newtos;
				raised = regs->data[ra_402234].kindU.node;
				asgnRefNoCycle((void**) (&(*c).currentexceptiona), raised);
				(*c).exceptioninstr = pc;
				memset((void*)(&LOC750), 0, sizeof(LOC750));
				cleanuponexception_401393(c, tos, (&LOC750));
				newpc = 0;
				newpc = LOC750.Field0;
				newtos = 0;
				newtos = LOC750.Field1;
				{
					if (!((NI)(newpc - ((NI) 1)) < ((NI) 0))) goto LA753;
					bailout_400327(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):
			{
				Ttype213828* typ;
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA762;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA762: ;
				typ = (*c).types->data[(NI)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - ((NI) 32768))];
				asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), getnullvalue_392401(typ, (*c).debug->data[pc]));
				(*regs->data[ra_402234].kindU.node).flags |= ((NU16)1)<<((((NU8) 13))%(sizeof(NU16)*8));
			}
			break;
			case ((NU8) 145):
			{
				Ttype213828* 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_402234].kind == ((NU8) 1)))) goto LA767;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].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_402234].kindU.node), newnodei_215248(((NU8) 41), (*c).debug->data[pc]));
				asgnRefNoCycle((void**) (&(*regs->data[ra_402234].kindU.node).typ), typ);
				if ((*regs->data[ra_402234].kindU.node).kindU.S6.sons) nimGCunrefNoCycle((*regs->data[ra_402234].kindU.node).kindU.S6.sons);
				(*regs->data[ra_402234].kindU.node).kindU.S6.sons = (Tnodeseq213784*) newSeqRC1((&NTI213784), ((NI) (count)));
				{
					NI i_409155;
					NI HEX3Atmp_412340;
					NI res_412343;
					i_409155 = 0;
					HEX3Atmp_412340 = 0;
					HEX3Atmp_412340 = (count - 1);
					res_412343 = ((NI) 0);
					{
						while (1) {
							if (!(res_412343 <= HEX3Atmp_412340)) goto LA771;
							i_409155 = res_412343;
							asgnRefNoCycle((void**) (&(*regs->data[ra_402234].kindU.node).kindU.S6.sons->data[i_409155]), getnullvalue_392401((*typ).sons->data[((NI) 0)], (*c).debug->data[pc]));
							res_412343 += ((NI) 1);
						} LA771: ;
					}
				}
			}
			break;
			case ((NU8) 134):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA775;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA775: ;
				asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), newnodei_215248(((NU8) 20), (*c).debug->data[pc]));
				asgnRefNoCycle((void**) (&(*regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA780;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA780: ;
				regs->data[ra_402234].kindU.intval = ((NI64) (rbx));
			}
			break;
			case ((NU8) 146):
			{
				Ttype213828* typ;
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA785;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA785: ;
				typ = (*c).types->data[(NI)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - ((NI) 32768))];
				asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), getnullvalue_392401(typ, (*c).debug->data[pc]));
			}
			break;
			case ((NU8) 147):
			{
				Ttype213828* typ;
				typ = (*c).types->data[(NI)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - ((NI) 32768))];
				{
					Ttype213828* LOC790;
					LOC790 = 0;
					LOC790 = skiptypes_217113(typ, IL64(211106233624576));
					if (!((*LOC790).kind >= ((NU8) 36) && (*LOC790).kind <= ((NU8) 39))) goto LA791;
					{
						if (!!((regs->data[ra_402234].kind == ((NU8) 3)))) goto LA795;
						myreset_400401((&regs->data[ra_402234]));
						regs->data[ra_402234].kind = ((NU8) 3);
					}
					LA795: ;
					regs->data[ra_402234].kindU.floatval = 0.0;
				}
				goto LA788;
				LA791: ;
				{
					{
						if (!!((regs->data[ra_402234].kind == ((NU8) 2)))) goto LA800;
						myreset_400401((&regs->data[ra_402234]));
						regs->data[ra_402234].kind = ((NU8) 2);
					}
					LA800: ;
					regs->data[ra_402234].kindU.intval = IL64(0);
				}
				LA788: ;
			}
			break;
			case ((NU8) 148):
			{
				NI rb;
				Tnode213790* 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_390804((*cnst).typ);
					if (!LOC805) goto LA806;
					myreset_400401((&regs->data[ra_402234]));
					putintoreg_401292((&regs->data[ra_402234]), cnst);
				}
				goto LA803;
				LA806: ;
				{
					{
						if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA811;
						myreset_400401((&regs->data[ra_402234]));
						regs->data[ra_402234].kind = ((NU8) 1);
					}
					LA811: ;
					asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), cnst);
				}
				LA803: ;
			}
			break;
			case ((NU8) 149):
			{
				NI rb;
				Tnode213790* 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_390804((*cnst).typ);
					if (!LOC816) goto LA817;
					putintoreg_401292((&regs->data[ra_402234]), cnst);
				}
				goto LA814;
				LA817: ;
				{
					{
						if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA822;
						myreset_400401((&regs->data[ra_402234]));
						regs->data[ra_402234].kind = ((NU8) 1);
					}
					LA822: ;
					asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), copytree_217822(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_402234].kind == ((NU8) 1)))) goto LA827;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA827: ;
				asgnRefNoCycle((void**) (&regs->data[ra_402234].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_402234].kind == ((NU8) 5)))) goto LA832;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 5);
				}
				LA832: ;
				regs->data[ra_402234].kindU.nodeaddr = &(*(*c).globals).kindU.S6.sons->data[rb];
			}
			break;
			case ((NU8) 76):
			{
				NI rb;
				Tnode213790* LOC839;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA837;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA837: ;
				asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), newnode_214401(((NU8) 20)));
				LOC839 = 0;
				LOC839 = regtonode_401306(regs->data[rb]);
				asgnRefNoCycle((void**) (&(*regs->data[ra_402234].kindU.node).kindU.S3.strval), rendertree_232044(LOC839, 4));
			}
			break;
			case ((NU8) 86):
			{
				{
					Tnode213790* LOC845;
					NI64 LOC846;
					if (!((25 &(1U<<((NU)((*c).mode)&7U)))!=0)) goto LA843;
					message_186095((*c).debug->data[pc], ((NU16) 275), ((NimStringDesc*) &TMP2839));
					LOC845 = 0;
					LOC845 = regtonode_401306(regs->data[ra_402234]);
					LOC846 = 0;
					LOC846 = getordvalue_239118(LOC845);
					msgquit_182152(((NI8) (LOC846)));
				}
				goto LA841;
				LA843: ;
				{
					Tfullreg400204 LOC848;
					memset((void*)(&LOC848), 0, sizeof(LOC848));
					memset((void*)(&LOC848), 0, sizeof(LOC848));
					LOC848.kind = ((NU8) 0);
					genericShallowAssign((void*)Result, (void*)(&LOC848), (&NTI400204));
					goto BeforeRet;
				}
				LA841: ;
			}
			break;
			case ((NU8) 77):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA852;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA852: ;
				(*regs->data[ra_402234].kindU.node).kindU.S3.strval = setLengthStr((*regs->data[ra_402234].kindU.node).kindU.S3.strval, ((NI) (((NI) (regs->data[rb].kindU.intval)))));
			}
			break;
			case ((NU8) 80):
			{
				NI rb;
				NI rc;
				Ttype213828* 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_402234].kind == ((NU8) 2)))) goto LA857;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA857: ;
				typ = (*c).types->data[regs->data[rc].kindU.intval];
				LOC859 = 0;
				LOC859 = inheritancediff_245442((*regs->data[rb].kindU.node).typ, typ);
				regs->data[ra_402234].kindU.intval = ((NI64) ((((NI) 0) <= LOC859)));
			}
			break;
			case ((NU8) 81):
			{
				NI rb;
				NI rc;
				Ttype213828* t1;
				Ttype213828* 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_402234].kind == ((NU8) 2)))) goto LA863;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA863: ;
				t1 = skiptypes_217113((*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_243628(t1, t2, 0);
				}
				LA865: ;
				regs->data[ra_402234].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_402234].kind == ((NU8) 1)))) goto LA873;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA873: ;
				newlen = ((NI) (regs->data[rb].kindU.intval));
				{
					if (!regs->data[ra_402234].kindU.node == 0) goto LA877;
					stacktrace_400311(c, tos, pc, ((NU16) 85), ((NimStringDesc*) &TMP2839));
				}
				goto LA875;
				LA877: ;
				{
					NI oldlen;
					oldlen = len_214059(regs->data[ra_402234].kindU.node);
					(*regs->data[ra_402234].kindU.node).kindU.S6.sons = (Tnodeseq213784*) setLengthSeq(&((*regs->data[ra_402234].kindU.node).kindU.S6.sons)->Sup, sizeof(Tnode213790*), ((NI) (newlen)));
					{
						if (!(oldlen < newlen)) goto LA882;
						{
							NI i_409668;
							NI HEX3Atmp_412370;
							NI res_412373;
							i_409668 = 0;
							HEX3Atmp_412370 = 0;
							HEX3Atmp_412370 = (newlen - 1);
							res_412373 = oldlen;
							{
								while (1) {
									if (!(res_412373 <= HEX3Atmp_412370)) goto LA886;
									i_409668 = res_412373;
									asgnRefNoCycle((void**) (&(*regs->data[ra_402234].kindU.node).kindU.S6.sons->data[i_409668]), newnodei_215248(((NU8) 1), (*c).debug->data[pc]));
									res_412373 += ((NI) 1);
								} LA886: ;
							}
						}
					}
					LA882: ;
				}
				LA875: ;
			}
			break;
			case ((NU8) 87):
			{
				internalerror_186100((*c).debug->data[pc], ((NimStringDesc*) &TMP2978));
			}
			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_402234].kind == ((NU8) 2)))) goto LA891;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].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_402234].kindU.intval < min);
					if (LOC895) goto LA896;
					LOC895 = (max < regs->data[ra_402234].kindU.intval);
					LA896: ;
					if (!LOC895) goto LA897;
					LOC899 = 0;
					LOC899 = msgkindtostring_182743(((NU16) 219));
					LOC900 = 0;
					LOC900 = nsuFormatSingleElem(LOC899, ((NimStringDesc*) &TMP2979));
					stacktrace_400311(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_402234].kind == ((NU8) 2)))) goto LA904;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA904: ;
				regs->data[ra_402234].kindU.intval = (NI64)(regs->data[ra_402234].kindU.intval & (NI64)((NI64)((NU64)(IL64(1)) << (NU64)(((NI64) (rb)))) - IL64(1)));
			}
			break;
			case ((NU8) 79):
			{
				NI rb;
				Tnode213790* node;
				NIM_BOOL LOC911;
				NIM_BOOL LOC913;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 2)))) goto LA909;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].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_402234].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_402234].kind == ((NU8) 1)))) goto LA918;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA918: ;
				asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), copytree_217822((*(*c).constants).kindU.S6.sons->data[rbx]));
			}
			break;
			case ((NU8) 131):
			{
				NI rb;
				NI rc;
				NI idx;
				Tnode213790* src;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA923;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].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_214059(src);
					LOC927 = ((NU32)(idx) < (NU32)(LOC929));
					LA928: ;
					if (!LOC927) goto LA930;
					asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), (*src).kindU.S6.sons->data[idx]);
				}
				goto LA925;
				LA930: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 86), ((NimStringDesc*) &TMP2839));
				}
				LA925: ;
			}
			break;
			case ((NU8) 132):
			{
				NI rb;
				NI rc;
				NI idx;
				Tnode213790* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA936;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA936: ;
				idx = ((NI) (regs->data[rb].kindU.intval));
				dest = regs->data[ra_402234].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_214059(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_400311(c, tos, pc, ((NU16) 86), ((NimStringDesc*) &TMP2839));
				}
				LA938: ;
			}
			break;
			case ((NU8) 94):
			{
				NI rb;
				NI rc;
				Tnode213790* u;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA949;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA949: ;
				u = regs->data[rb].kindU.node;
				{
					if (!!(((*u).kind >= ((NU8) 1) && (*u).kind <= ((NU8) 23)))) goto LA953;
					add_214114(u, regs->data[rc].kindU.node);
				}
				goto LA951;
				LA953: ;
				{
					NimStringDesc* LOC956;
					LOC956 = 0;
					LOC956 = rawNewString(reprEnum((*u).kind, (&NTI213020))->Sup.len + 25);
appendString(LOC956, ((NimStringDesc*) &TMP2980));
appendString(LOC956, reprEnum((*u).kind, (&NTI213020)));
					stacktrace_400311(c, tos, pc, ((NU16) 4), LOC956);
				}
				LA951: ;
				asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), u);
			}
			break;
			case ((NU8) 95):
			{
				NI rb;
				NI rc;
				Tnode213790* x;
				Tnode213790* u;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA960;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].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_410093;
						NI HEX3Atmp_412399;
						NI LOC967;
						NI res_412402;
						i_410093 = 0;
						HEX3Atmp_412399 = 0;
						LOC967 = 0;
						LOC967 = len_214059(x);
						HEX3Atmp_412399 = (LOC967 - 1);
						res_412402 = ((NI) 0);
						{
							while (1) {
								if (!(res_412402 <= HEX3Atmp_412399)) goto LA969;
								i_410093 = res_412402;
								add_214114(u, (*x).kindU.S6.sons->data[i_410093]);
								res_412402 += ((NI) 1);
							} LA969: ;
						}
					}
				}
				goto LA962;
				LA964: ;
				{
					NimStringDesc* LOC971;
					LOC971 = 0;
					LOC971 = rawNewString(reprEnum((*u).kind, (&NTI213020))->Sup.len + 25);
appendString(LOC971, ((NimStringDesc*) &TMP2980));
appendString(LOC971, reprEnum((*u).kind, (&NTI213020)));
					stacktrace_400311(c, tos, pc, ((NU16) 4), LOC971);
				}
				LA962: ;
				asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), u);
			}
			break;
			case ((NU8) 96):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 2)))) goto LA975;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA975: ;
				regs->data[ra_402234].kindU.intval = ((NI64) ((*regs->data[rb].kindU.node).kind));
				(*c).comesfromheuristic = (*regs->data[rb].kindU.node).info;
			}
			break;
			case ((NU8) 97):
			{
				NI rb;
				Tnode213790* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 2)))) goto LA980;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA980: ;
				a = regs->data[rb].kindU.node;
				switch ((*a).kind) {
				case ((NU8) 5) ... ((NU8) 15):
				{
					regs->data[ra_402234].kindU.intval = (*a).kindU.S1.intval;
				}
				break;
				default:
				{
					stacktrace_400311(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP2981));
				}
				break;
				}
			}
			break;
			case ((NU8) 98):
			{
				NI rb;
				Tnode213790* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 3)))) goto LA987;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 3);
				}
				LA987: ;
				a = regs->data[rb].kindU.node;
				switch ((*a).kind) {
				case ((NU8) 16) ... ((NU8) 18):
				{
					regs->data[ra_402234].kindU.floatval = (*a).kindU.S2.floatval;
				}
				break;
				default:
				{
					stacktrace_400311(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP2982));
				}
				break;
				}
			}
			break;
			case ((NU8) 99):
			{
				NI rb;
				Tnode213790* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA994;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA994: ;
				a = regs->data[rb].kindU.node;
				{
					if (!((*a).kind == ((NU8) 3))) goto LA998;
					asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), copynode_217542(a));
				}
				goto LA996;
				LA998: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP2967));
				}
				LA996: ;
			}
			break;
			case ((NU8) 100):
			{
				NI rb;
				Tnode213790* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA1004;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA1004: ;
				a = regs->data[rb].kindU.node;
				{
					if (!((*a).kind == ((NU8) 2))) goto LA1008;
					asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), copynode_217542(a));
				}
				goto LA1006;
				LA1008: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP2983));
				}
				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_402234].kind == ((NU8) 1)))) goto LA1018;
						myreset_400401((&regs->data[ra_402234]));
						regs->data[ra_402234].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_402234].kindU.node), opmaptypetoast_396275((*regs->data[rb].kindU.node).typ, (*c).debug->data[pc]));
					}
					goto LA1020;
					LA1024: ;
					{
						stacktrace_400311(c, tos, pc, ((NU16) 4), ((NimStringDesc*) &TMP3036));
					}
					LA1020: ;
				}
				goto LA1012;
				LA1014: ;
				{
					{
						if (!!((regs->data[ra_402234].kind == ((NU8) 2)))) goto LA1030;
						myreset_400401((&regs->data[ra_402234]));
						regs->data[ra_402234].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_402234].kindU.intval = ((NI64) ((*(*regs->data[rb].kindU.node).typ).kind));
					}
					LA1036: ;
				}
				LA1012: ;
			}
			break;
			case ((NU8) 102):
			{
				NI rb;
				Tnode213790* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA1041;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA1041: ;
				asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), newnode_214401(((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_402234].kindU.node).kindU.S3.strval; (*regs->data[ra_402234].kindU.node).kindU.S3.strval = copyStringRC1((*a).kindU.S3.strval);
					if (LOC1047) nimGCunrefNoCycle(LOC1047);
				}
				goto LA1043;
				LA1045: ;
				{
					NimStringDesc* LOC1051;
					if (!((*a).kind == ((NU8) 125))) goto LA1049;
					LOC1051 = 0;
					LOC1051 = (*regs->data[ra_402234].kindU.node).kindU.S3.strval; (*regs->data[ra_402234].kindU.node).kindU.S3.strval = copyStringRC1((*a).comment);
					if (LOC1051) nimGCunrefNoCycle(LOC1051);
				}
				goto LA1043;
				LA1049: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP3037));
				}
				LA1043: ;
			}
			break;
			case ((NU8) 114):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA1056;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA1056: ;
				asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), newnode_214401(((NU8) 20)));
				asgnRefNoCycle((void**) (&(*regs->data[ra_402234].kindU.node).kindU.S3.strval), opslurp_396025((*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_402234].kind == ((NU8) 1)))) goto LA1061;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA1061: ;
				pc += ((NI) 1);
				rd = ((NI) ((NU32)((NU32)((NU32)((*c).code->data[pc]) >> (NU32)(((NU32) 8))) & ((NU32) 255))));
				asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), newnode_214401(((NU8) 20)));
				asgnRefNoCycle((void**) (&(*regs->data[ra_402234].kindU.node).kindU.S3.strval), opgorge_396009((*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_400311(c, tos, pc, ((NU16) 236), (*regs->data[ra_402234].kindU.node).kindU.S3.strval);
			}
			break;
			case ((NU8) 120):
			{
				message_186095((*c).debug->data[pc], ((NU16) 267), (*regs->data[ra_402234].kindU.node).kindU.S3.strval);
			}
			break;
			case ((NU8) 121):
			{
				message_186095((*c).debug->data[pc], ((NU16) 290), (*regs->data[ra_402234].kindU.node).kindU.S3.strval);
			}
			break;
			case ((NU8) 116):
			{
				NI rb;
				Tnode213790* ast;
				NimStringDesc* LOC1071;
				Terrorhandler204171 LOC1072;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA1069;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA1069: ;
				LOC1071 = 0;
				LOC1071 = tofullpath_182269((*c).debug->data[pc].fileindex);
				memset((void*)(&LOC1072), 0, sizeof(LOC1072));
				LOC1072.ClPrc = HEX3Aanonymous_410614; LOC1072.ClEnv = HEX3Aenv_412037;
				ast = parsestring_230536((*regs->data[rb].kindU.node).kindU.S3.strval, LOC1071, ((NI) ((*c).debug->data[pc].line)), LOC1072);
				{
					NimStringDesc* LOC1077;
					if (!!((*HEX3Aenv_412037).error410611 == 0)) goto LA1075;
					LOC1077 = 0;
					LOC1077 = (*c).errorflag; (*c).errorflag = copyStringRC1((*HEX3Aenv_412037).error410611);
					if (LOC1077) nimGCunrefNoCycle(LOC1077);
				}
				goto LA1073;
				LA1075: ;
				{
					NI LOC1079;
					LOC1079 = 0;
					LOC1079 = sonslen_216351(ast);
					if (!!((LOC1079 == ((NI) 1)))) goto LA1080;
					asgnRefNoCycle((void**) (&(*c).errorflag), formatmsg_184649((*c).debug->data[pc], ((NU16) 62), ((NimStringDesc*) &TMP3059)));
				}
				goto LA1073;
				LA1080: ;
				{
					asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), (*ast).kindU.S6.sons->data[((NI) 0)]);
				}
				LA1073: ;
			}
			break;
			case ((NU8) 117):
			{
				NI rb;
				Tnode213790* ast;
				NimStringDesc* LOC1088;
				Terrorhandler204171 LOC1089;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA1086;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA1086: ;
				LOC1088 = 0;
				LOC1088 = tofullpath_182269((*c).debug->data[pc].fileindex);
				memset((void*)(&LOC1089), 0, sizeof(LOC1089));
				LOC1089.ClPrc = HEX3Aanonymous_410664; LOC1089.ClEnv = HEX3Aenv_412037;
				ast = parsestring_230536((*regs->data[rb].kindU.node).kindU.S3.strval, LOC1088, ((NI) ((*c).debug->data[pc].line)), LOC1089);
				{
					NimStringDesc* LOC1094;
					if (!!((*HEX3Aenv_412037).error410661 == 0)) goto LA1092;
					LOC1094 = 0;
					LOC1094 = (*c).errorflag; (*c).errorflag = copyStringRC1((*HEX3Aenv_412037).error410661);
					if (LOC1094) nimGCunrefNoCycle(LOC1094);
				}
				goto LA1090;
				LA1092: ;
				{
					asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), ast);
				}
				LA1090: ;
			}
			break;
			case ((NU8) 118):
			{
				NimStringDesc* LOC1097;
				asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), newnode_214401(((NU8) 20)));
				LOC1097 = 0;
				LOC1097 = (*regs->data[ra_402234].kindU.node).kindU.S3.strval; (*regs->data[ra_402234].kindU.node).kindU.S3.strval = copyStringRC1((*c).errorflag);
				if (LOC1097) nimGCunrefNoCycle(LOC1097);
				(*c).errorflag = setLengthStr((*c).errorflag, ((NI) 0));
			}
			break;
			case ((NU8) 133):
			{
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA1101;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA1101: ;
				{
					if (!!(((*c).callsite == NIM_NIL))) goto LA1105;
					asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), (*c).callsite);
				}
				goto LA1103;
				LA1105: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP3060));
				}
				LA1103: ;
			}
			break;
			case ((NU8) 122):
			{
				NI rb;
				Tnode213790* n;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA1111;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA1111: ;
				n = regs->data[rb].kindU.node;
				asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), newnode_214401(((NU8) 20)));
				asgnRefNoCycle((void**) (&(*regs->data[ra_402234].kindU.node).kindU.S3.strval), tofilelinecol_182427((*n).info));
				(*regs->data[ra_402234].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_402234].kind == ((NU8) 2)))) goto LA1116;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 2);
				}
				LA1116: ;
				{
					NIM_BOOL LOC1120;
					LOC1120 = 0;
					LOC1120 = ((*regs->data[rb].kindU.node).kind == ((NU8) 2));
					if (!(LOC1120)) goto LA1121;
					LOC1120 = ((*regs->data[rc].kindU.node).kind == ((NU8) 2));
					LA1121: ;
					if (!LOC1120) goto LA1122;
					regs->data[ra_402234].kindU.intval = ((NI64) (((*(*regs->data[rb].kindU.node).kindU.S5.ident).Sup.id == (*(*regs->data[rc].kindU.node).kindU.S5.ident).Sup.id)));
				}
				goto LA1118;
				LA1122: ;
				{
					regs->data[ra_402234].kindU.intval = IL64(0);
				}
				LA1118: ;
			}
			break;
			case ((NU8) 124):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA1128;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA1128: ;
				{
					if (!!(((*regs->data[rb].kindU.node).kind >= ((NU8) 20) && (*regs->data[rb].kindU.node).kind <= ((NU8) 22)))) goto LA1132;
					stacktrace_400311(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP3037));
				}
				goto LA1130;
				LA1132: ;
				{
					asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), newnodei_215248(((NU8) 2), (*c).debug->data[pc]));
					asgnRefNoCycle((void**) (&(*regs->data[ra_402234].kindU.node).kindU.S5.ident), getident_188441((*regs->data[rb].kindU.node).kindU.S3.strval));
				}
				LA1130: ;
			}
			break;
			case ((NU8) 125):
			{
				NI rb;
				Tnode213790* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA1138;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA1138: ;
				a = regs->data[rb].kindU.node;
				asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), newnode_214401(((NU8) 20)));
				(*regs->data[ra_402234].kindU.node).info = (*c).debug->data[pc];
				{
					NimStringDesc* LOC1144;
					if (!((*a).kind == ((NU8) 3))) goto LA1142;
					LOC1144 = 0;
					LOC1144 = (*regs->data[ra_402234].kindU.node).kindU.S3.strval; (*regs->data[ra_402234].kindU.node).kindU.S3.strval = copyStringRC1((*(*(*a).kindU.S4.sym).name).s);
					if (LOC1144) nimGCunrefNoCycle(LOC1144);
				}
				goto LA1140;
				LA1142: ;
				{
					NimStringDesc* LOC1148;
					if (!((*a).kind == ((NU8) 2))) goto LA1146;
					LOC1148 = 0;
					LOC1148 = (*regs->data[ra_402234].kindU.node).kindU.S3.strval; (*regs->data[ra_402234].kindU.node).kindU.S3.strval = copyStringRC1((*(*a).kindU.S5.ident).s);
					if (LOC1148) nimGCunrefNoCycle(LOC1148);
				}
				goto LA1140;
				LA1146: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP2983));
				}
				LA1140: ;
			}
			break;
			case ((NU8) 154):
			{
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA1153;
					internalerror_186100((*c).debug->data[pc], ((NimStringDesc*) &TMP3064));
				}
				LA1153: ;
				asgnRefNoCycle((void**) (&(*regs->data[ra_402234].kindU.node).typ), (*c).types->data[(NI)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - ((NI) 32768))]);
			}
			break;
			case ((NU8) 84):
			{
				NI rb;
				Ttype213828* desttyp;
				Ttype213828* 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 LOC1158;
					NimStringDesc* LOC1161;
					TY183169 LOC1162;
					NimStringDesc* LOC1163;
					LOC1158 = 0;
					LOC1158 = opconv_401714((&regs->data[ra_402234]), regs->data[rb], desttyp, srctyp);
					if (!LOC1158) goto LA1159;
					LOC1161 = 0;
					LOC1161 = msgkindtostring_182743(((NU16) 146));
					memset((void*)LOC1162, 0, sizeof(LOC1162));
					LOC1162[0] = typetostring_239017(srctyp, ((NU8) 0));
					LOC1162[1] = typetostring_239017(desttyp, ((NU8) 0));
					LOC1163 = 0;
					LOC1163 = nsuFormatOpenArray(LOC1161, LOC1162, 2);
					stacktrace_400311(c, tos, pc, ((NU16) 4), LOC1163);
				}
				LA1159: ;
			}
			break;
			case ((NU8) 85):
			{
				NI rb;
				Ttype213828* desttyp;
				Ttype213828* 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_186076((*c).debug->data[pc], ((NimStringDesc*) &TMP3071));
			}
			break;
			case ((NU8) 103):
			{
				NI rb;
				Tnode213790* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA1168;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA1168: ;
				dest = regs->data[ra_402234].kindU.node;
				{
					NIM_BOOL LOC1172;
					LOC1172 = 0;
					LOC1172 = ((*dest).kind >= ((NU8) 5) && (*dest).kind <= ((NU8) 15));
					if (!(LOC1172)) goto LA1173;
					LOC1172 = ((4 &(1U<<((NU)(regs->data[rb].kind)&7U)))!=0);
					LA1173: ;
					if (!LOC1172) goto LA1174;
					(*dest).kindU.S1.intval = regs->data[rb].kindU.intval;
				}
				goto LA1170;
				LA1174: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP2981));
				}
				LA1170: ;
			}
			break;
			case ((NU8) 104):
			{
				NI rb;
				Tnode213790* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA1180;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA1180: ;
				dest = regs->data[ra_402234].kindU.node;
				{
					NIM_BOOL LOC1184;
					LOC1184 = 0;
					LOC1184 = ((*dest).kind >= ((NU8) 16) && (*dest).kind <= ((NU8) 18));
					if (!(LOC1184)) goto LA1185;
					LOC1184 = ((8 &(1U<<((NU)(regs->data[rb].kind)&7U)))!=0);
					LA1185: ;
					if (!LOC1184) goto LA1186;
					(*dest).kindU.S2.floatval = regs->data[rb].kindU.floatval;
				}
				goto LA1182;
				LA1186: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP2982));
				}
				LA1182: ;
			}
			break;
			case ((NU8) 105):
			{
				NI rb;
				Tnode213790* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA1192;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA1192: ;
				dest = regs->data[ra_402234].kindU.node;
				{
					NIM_BOOL LOC1196;
					LOC1196 = 0;
					LOC1196 = ((*dest).kind == ((NU8) 3));
					if (!(LOC1196)) goto LA1197;
					LOC1196 = ((*regs->data[rb].kindU.node).kind == ((NU8) 3));
					LA1197: ;
					if (!LOC1196) goto LA1198;
					asgnRefNoCycle((void**) (&(*dest).kindU.S4.sym), (*regs->data[rb].kindU.node).kindU.S4.sym);
				}
				goto LA1194;
				LA1198: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP2967));
				}
				LA1194: ;
			}
			break;
			case ((NU8) 106):
			{
				NI rb;
				Tnode213790* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA1204;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA1204: ;
				dest = regs->data[ra_402234].kindU.node;
				{
					NIM_BOOL LOC1208;
					LOC1208 = 0;
					LOC1208 = ((*dest).kind == ((NU8) 2));
					if (!(LOC1208)) goto LA1209;
					LOC1208 = ((*regs->data[rb].kindU.node).kind == ((NU8) 2));
					LA1209: ;
					if (!LOC1208) goto LA1210;
					asgnRefNoCycle((void**) (&(*dest).kindU.S5.ident), (*regs->data[rb].kindU.node).kindU.S5.ident);
				}
				goto LA1206;
				LA1210: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP2983));
				}
				LA1206: ;
			}
			break;
			case ((NU8) 107):
			{
				NI rb;
				Tnode213790* b;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA1216;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA1216: ;
				b = regs->data[rb].kindU.node;
				{
					NIM_BOOL LOC1220;
					NimStringDesc* LOC1224;
					LOC1220 = 0;
					LOC1220 = ((*b).kind == ((NU8) 3));
					if (!(LOC1220)) goto LA1221;
					LOC1220 = ((*(*b).kindU.S4.sym).kind == ((NU8) 7));
					LA1221: ;
					if (!!(LOC1220)) goto LA1222;
					LOC1224 = 0;
					LOC1224 = HEX24_186183(TMP3072);
					internalerror_186113(LOC1224);
				}
				LA1222: ;
				{
					NimStringDesc* LOC1229;
					if (!!(!((regs->data[ra_402234].kindU.node == NIM_NIL)))) goto LA1227;
					LOC1229 = 0;
					LOC1229 = HEX24_186183(TMP3074);
					internalerror_186113(LOC1229);
				}
				LA1227: ;
				asgnRefNoCycle((void**) (&(*regs->data[ra_402234].kindU.node).typ), (*(*b).kindU.S4.sym).typ);
			}
			break;
			case ((NU8) 108):
			{
				NI rb;
				Tnode213790* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA1233;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA1233: ;
				dest = regs->data[ra_402234].kindU.node;
				{
					NIM_BOOL LOC1237;
					NimStringDesc* LOC1241;
					LOC1237 = 0;
					LOC1237 = ((*dest).kind >= ((NU8) 20) && (*dest).kind <= ((NU8) 22));
					if (!(LOC1237)) goto LA1238;
					LOC1237 = ((2 &(1U<<((NU)(regs->data[rb].kind)&7U)))!=0);
					LA1238: ;
					if (!LOC1237) goto LA1239;
					LOC1241 = 0;
					LOC1241 = (*dest).kindU.S3.strval; (*dest).kindU.S3.strval = copyStringRC1((*regs->data[rb].kindU.node).kindU.S3.strval);
					if (LOC1241) nimGCunrefNoCycle(LOC1241);
				}
				goto LA1235;
				LA1239: ;
				{
					stacktrace_400311(c, tos, pc, ((NU16) 214), ((NimStringDesc*) &TMP3037));
				}
				LA1235: ;
			}
			break;
			case ((NU8) 109):
			{
				NI rb;
				NI rc;
				NI64 k;
				Tnode213790* cc;
				Tlineinfo181337 LOC1254;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA1246;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA1246: ;
				k = regs->data[rb].kindU.intval;
				{
					NIM_BOOL LOC1250;
					LOC1250 = 0;
					LOC1250 = (k < IL64(0));
					if (LOC1250) goto LA1251;
					LOC1250 = (IL64(158) < k);
					LA1251: ;
					if (!LOC1250) goto LA1252;
					internalerror_186100((*c).debug->data[pc], ((NimStringDesc*) &TMP3075));
				}
				LA1252: ;
				cc = regs->data[rc].kindU.node;
				{
					if (!!(((*cc).kind == ((NU8) 23)))) goto LA1257;
					LOC1254 = (*cc).info;
				}
				goto LA1255;
				LA1257: ;
				{
					if (!(((NI16) -1) < (*c).comesfromheuristic.line)) goto LA1260;
					LOC1254 = (*c).comesfromheuristic;
				}
				goto LA1255;
				LA1260: ;
				{
					NIM_BOOL LOC1263;
					NI LOC1265;
					Tnode213790* LOC1268;
					LOC1263 = 0;
					LOC1263 = !(((*c).callsite == NIM_NIL));
					if (!(LOC1263)) goto LA1264;
					LOC1265 = 0;
					LOC1265 = safelen_214081((*c).callsite);
					LOC1263 = (((NI) 1) < LOC1265);
					LA1264: ;
					if (!LOC1263) goto LA1266;
					LOC1268 = 0;
					LOC1268 = HEX5BHEX5D_214238((*c).callsite, ((NI) 1));
					LOC1254 = (*LOC1268).info;
				}
				goto LA1255;
				LA1266: ;
				{
					LOC1254 = (*c).debug->data[pc];
				}
				LA1255: ;
				asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), newnodei_215248(((NU8) (((NI) (k)))), LOC1254));
				(*regs->data[ra_402234].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_402234].kind == ((NU8) 1)))) goto LA1273;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA1273: ;
				asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), copynode_217542(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_402234].kind == ((NU8) 1)))) goto LA1278;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA1278: ;
				asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), copytree_217822(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_402234].kind == ((NU8) 1)))) goto LA1283;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA1283: ;
				bb = ((NI) (regs->data[rb].kindU.intval));
				{
					NI i_411765;
					NI HEX3Atmp_412477;
					NI res_412480;
					i_411765 = 0;
					HEX3Atmp_412477 = 0;
					HEX3Atmp_412477 = (NI)(((NI) (regs->data[rc].kindU.intval)) - ((NI) 1));
					res_412480 = ((NI) 0);
					{
						while (1) {
							if (!(res_412480 <= HEX3Atmp_412477)) goto LA1287;
							i_411765 = res_412480;
							delson_217495(regs->data[ra_402234].kindU.node, bb);
							res_412480 += ((NI) 1);
						} LA1287: ;
					}
				}
			}
			break;
			case ((NU8) 113):
			{
				NI rb;
				NI rc;
				NI64 k;
				NimStringDesc* name;
				Tsym213822* sym;
				Tident188012* LOC1304;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA1291;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA1291: ;
				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 LA1295;
					name = copyString(((NimStringDesc*) &TMP3076));
				}
				goto LA1293;
				LA1295: ;
				{
					name = (*regs->data[rc].kindU.node).kindU.S3.strval;
				}
				LA1293: ;
				{
					NIM_BOOL LOC1300;
					LOC1300 = 0;
					LOC1300 = (k < IL64(0));
					if (LOC1300) goto LA1301;
					LOC1300 = (IL64(24) < k);
					LA1301: ;
					if (!LOC1300) goto LA1302;
					internalerror_186100((*c).debug->data[pc], ((NimStringDesc*) &TMP3077));
				}
				LA1302: ;
				LOC1304 = 0;
				LOC1304 = getident_188441(name);
				sym = newsym_214684(((NU8) (k)), LOC1304, (*c).module, (*c).debug->data[pc]);
				(*sym).flags |= ((NU32)1)<<((((NU8) 31))%(sizeof(NU32)*8));
				asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), newsymnode_215234(sym));
			}
			break;
			case ((NU8) 155):
			{
				NI rb;
				Ttype213828* typ;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA1308;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA1308: ;
				typ = (*regs->data[rb].kindU.node).typ;
				{
					NimStringDesc* LOC1314;
					if (!!(!((typ == NIM_NIL)))) goto LA1312;
					LOC1314 = 0;
					LOC1314 = HEX24_186183(TMP3078);
					internalerror_186113(LOC1314);
				}
				LA1312: ;
				{
					while (1) {
						NIM_BOOL LOC1317;
						NI LOC1319;
						LOC1317 = 0;
						LOC1317 = ((*typ).kind == ((NU8) 8));
						if (!(LOC1317)) goto LA1318;
						LOC1319 = 0;
						LOC1319 = len_216339(typ);
						LOC1317 = (((NI) 0) < LOC1319);
						LA1318: ;
						if (!LOC1317) goto LA1316;
						typ = (*typ).sons->data[((NI) 0)];
					} LA1316: ;
				}
				asgnRefNoCycle((void**) (&regs->data[ra_402234].kindU.node), newnode_214401(((NU8) 20)));
				asgnRefNoCycle((void**) (&(*regs->data[ra_402234].kindU.node).kindU.S3.strval), typetostring_239017(typ, ((NU8) 2)));
			}
			break;
			case ((NU8) 156):
			{
				NI ra;
				NI rb;
				Ttype213828* typ;
				Tnode213790* LOC1321;
				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))];
				LOC1321 = 0;
				LOC1321 = loadany_398373((*regs->data[rb].kindU.node).kindU.S3.strval, typ);
				putintoreg_401292((&regs->data[ra]), LOC1321);
			}
			break;
			case ((NU8) 157):
			{
				NI rb;
				Ttype213828* typ;
				Tnode213790* LOC1331;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_402234].kind == ((NU8) 1)))) goto LA1325;
					myreset_400401((&regs->data[ra_402234]));
					regs->data[ra_402234].kind = ((NU8) 1);
				}
				LA1325: ;
				pc += ((NI) 1);
				typ = (*c).types->data[(NI)(((NI) ((NU32)((NU32)((*c).code->data[pc]) >> (NU32)(((NU32) 16))))) - ((NI) 32768))];
				createstrkeepnode_400440((&regs->data[ra_402234]), NIM_TRUE);
				{
					if (!(*regs->data[ra_402234].kindU.node).kindU.S3.strval == 0) goto LA1329;
					asgnRefNoCycle((void**) (&(*regs->data[ra_402234].kindU.node).kindU.S3.strval), rawNewString(((NI) 1000)));
				}
				LA1329: ;
				LOC1331 = 0;
				LOC1331 = regtonode_401306(regs->data[rb]);
				storeany_397571((&(*regs->data[ra_402234].kindU.node).kindU.S3.strval), typ, LOC1331);
			}
			break;
			}
			pc += ((NI) 1);
		}
	}
	}BeforeRet: ;
}

N_NIMCALL(Tnode213790*, evalmacrocall_413669)(Tsym213822* module, Tnode213790* n, Tnode213790* norig, Tsym213822* sym) {
	Tnode213790* result;
	Tctx262036* c;
	NI start;
	Tstackframe400208* tos;
	Tstackframe400208* LOC18;
	NI maxslots;
	NI L;
	Tfullreg400204 LOC37;
	result = 0;
	evalmacrocounter_413667 += ((NI) 1);
	{
		if (!(((NI) 100) < evalmacrocounter_413667)) goto LA3;
		globalerror_186071((*n).info, ((NU16) 188), ((NimStringDesc*) &TMP2839));
	}
	LA3: ;
	{
		NIM_BOOL LOC7;
		NI LOC8;
		NI LOC9;
		NI LOC11;
		TY183156 LOC14;
		NI LOC15;
		NI LOC16;
		NimStringDesc* LOC17;
		LOC7 = 0;
		LOC8 = 0;
		LOC8 = safelen_214081(n);
		LOC9 = 0;
		LOC9 = len_216339((*sym).typ);
		LOC7 = (LOC8 < LOC9);
		if (!(LOC7)) goto LA10;
		LOC11 = 0;
		LOC11 = len_216339((*sym).typ);
		LOC7 = (((NI) 1) < LOC11);
		LA10: ;
		if (!LOC7) goto LA12;
		memset((void*)LOC14, 0, sizeof(LOC14));
		LOC14[0] = rendertree_232044(n, 0);
		LOC15 = 0;
		LOC15 = safelen_214081(n);
		LOC14[1] = nimIntToStr((LOC15 - 1));
		LOC16 = 0;
		LOC16 = len_216339((*sym).typ);
		LOC14[2] = nimIntToStr((LOC16 - 1));
		LOC17 = 0;
		LOC17 = nsuFormatOpenArray(((NimStringDesc*) &TMP2840), LOC14, 3);
		globalerror_186076((*n).info, LOC17);
	}
	LA12: ;
	setupglobalctx_413019(module);
	c = globalctx_413017;
	asgnRefNoCycle((void**) (&(*c).callsite), norig);
	start = genproc_393867(c, sym);
	LOC18 = 0;
	LOC18 = (Tstackframe400208*) newObj((&NTI400206), sizeof(Tstackframe400208));
	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 = (TY400855*) newSeqRC1((&NTI400855), ((NI) (maxslots)));
	L = safelen_214081(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_215801(((NU8) 1), (*n).info, (*(*sym).typ).sons->data[((NI) 0)]));
	{
		NI i_413747;
		NI HEX3Atmp_413799;
		NI LOC24;
		NI res_413802;
		i_413747 = 0;
		HEX3Atmp_413799 = 0;
		LOC24 = 0;
		LOC24 = len_216339((*sym).typ);
		HEX3Atmp_413799 = (LOC24 - 1);
		res_413802 = ((NI) 1);
		{
			while (1) {
				if (!(res_413802 <= HEX3Atmp_413799)) goto LA26;
				i_413747 = res_413802;
				setupmacroparam_413635((*n).kindU.S6.sons->data[i_413747], (*(*sym).typ).sons->data[i_413747], (&(*tos).slots->data[i_413747]));
				res_413802 += ((NI) 1);
			} LA26: ;
		}
	}
	{
		Tnode213790* gp;
		if (!!((((*sym).flags &(1U<<((NU)(((NU8) 25))&31U)))!=0))) goto LA29;
		gp = HEX5BHEX5D_214238((*sym).ast, ((NI) 2));
		{
			NI i_413781;
			NI HEX3Atmp_413807;
			NI LOC32;
			NI res_413810;
			i_413781 = 0;
			HEX3Atmp_413807 = 0;
			LOC32 = 0;
			LOC32 = len_214059(gp);
			HEX3Atmp_413807 = (LOC32 - 1);
			res_413810 = ((NI) 0);
			{
				while (1) {
					NI idx;
					NI LOC35;
					Tnode213790* LOC36;
					if (!(res_413810 <= HEX3Atmp_413807)) goto LA34;
					i_413781 = res_413810;
					LOC35 = 0;
					LOC35 = len_216339((*sym).typ);
					idx = (NI)(LOC35 + i_413781);
					LOC36 = 0;
					LOC36 = HEX5BHEX5D_214238(gp, i_413781);
					setupmacroparam_413635((*n).kindU.S6.sons->data[idx], (*(*LOC36).kindU.S4.sym).typ, (&(*tos).slots->data[idx]));
					res_413810 += ((NI) 1);
				} LA34: ;
			}
		}
	}
	LA29: ;
	memset((void*)(&LOC37), 0, sizeof(LOC37));
	rawexecute_402204(c, start, tos, (&LOC37));
	result = regtonode_401306(LOC37);
	{
		if (!((*result).info.line < ((NI16) 0))) goto LA40;
		(*result).info = (*n).info;
	}
	LA40: ;
	{
		NIM_BOOL LOC44;
		LOC44 = 0;
		LOC44 = cyclictree_238094(result);
		if (!LOC44) goto LA45;
		globalerror_186071((*n).info, ((NU16) 220), ((NimStringDesc*) &TMP2839));
	}
	LA45: ;
	evalmacrocounter_413667 -= ((NI) 1);
	asgnRefNoCycle((void**) (&(*c).callsite), NIM_NIL);
	return result;
}

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

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

N_NIMCALL(Tnode213790*, evalconstexpraux_413209)(Tsym213822* module, Tsym213822* prc, Tnode213790* n_413213, NU8 mode) {
	Tnode213790* volatile result;
	Tnode213790* n;
	Tctx262036* c;
	NU8 oldmode;
	TSafePoint TMP3459;
{	result = 0;
	n = transformexpr_386801(module, n_413213);
	setupglobalctx_413019(module);
	c = globalctx_413017;
	oldmode = (*c).mode;
	pushSafePoint(&TMP3459);
	TMP3459.status = _setjmp(TMP3459.context);
	if (TMP3459.status == 0) {
		NI start;
		Tstackframe400208* tos;
		Tstackframe400208* LOC6;
		Tfullreg400204 LOC7;
		(*c).mode = mode;
		start = genexpr_394638(c, n, !((mode == ((NU8) 4))));
		{
			if (!(((NU8) ((NU32)((*c).code->data[start] & ((NU32) 255)))) == ((NU8) 0))) goto LA4;
			result = emptynode_214801;
			popSafePoint();
			(*c).mode = oldmode;
			goto BeforeRet;
		}
		LA4: ;
		LOC6 = 0;
		LOC6 = (Tstackframe400208*) newObj((&NTI400206), sizeof(Tstackframe400208));
		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 = (TY400855*) newSeqRC1((&NTI400855), ((NI) ((*(*c).prc).maxslots)));
		memset((void*)(&LOC7), 0, sizeof(LOC7));
		rawexecute_402204(c, start, tos, (&LOC7));
		result = regtonode_401306(LOC7);
		{
			if (!((*result).info.line < ((NI16) 0))) goto LA10;
			(*result).info = (*n).info;
		}
		LA10: ;
		popSafePoint();
	}
	else {
		popSafePoint();
	}
	{
		(*c).mode = oldmode;
	}
	if (TMP3459.status != 0) reraiseException();
	}BeforeRet: ;
	return result;
}

N_NIMCALL(Tnode213790*, evalstaticexpr_413620)(Tsym213822* module, Tnode213790* e, Tsym213822* prc) {
	Tnode213790* result;
	result = 0;
	result = evalconstexpraux_413209(module, prc, e, ((NU8) 3));
	return result;
}

N_NIMCALL(Tnode213790*, evalconstexpr_413615)(Tsym213822* module, Tnode213790* e) {
	Tnode213790* result;
	result = 0;
	result = evalconstexpraux_413209(module, NIM_NIL, e, ((NU8) 1));
	return result;
}

N_NIMCALL(void, setupcompiletimevar_413631)(Tsym213822* module, Tnode213790* n) {
	Tnode213790* LOC1;
	LOC1 = 0;
	LOC1 = evalconstexpraux_413209(module, NIM_NIL, n, ((NU8) 4));
}

N_NIMCALL(void, evalstaticstmt_413626)(Tsym213822* module, Tnode213790* e, Tsym213822* prc) {
	Tnode213790* LOC1;
	LOC1 = 0;
	LOC1 = evalconstexpraux_413209(module, prc, e, ((NU8) 4));
}

N_NIMCALL(Tpasscontext260002*, myopen_413030)(Tsym213822* module) {
	Tpasscontext260002* result;
	result = 0;
	setupglobalctx_413019(module);
	result = &globalctx_413017->Sup;
	return result;
}

N_NIMCALL(Tnode213790*, execute_412498)(Tctx262036* c, NI start) {
	Tnode213790* result;
	Tstackframe400208* tos;
	Tstackframe400208* LOC1;
	Tfullreg400204 LOC2;
	result = 0;
	LOC1 = 0;
	LOC1 = (Tstackframe400208*) newObj((&NTI400206), sizeof(Tstackframe400208));
	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 = (TY400855*) newSeqRC1((&NTI400855), ((NI) ((*(*c).prc).maxslots)));
	memset((void*)(&LOC2), 0, sizeof(LOC2));
	rawexecute_402204(c, start, tos, (&LOC2));
	result = regtonode_401306(LOC2);
	return result;
}

N_NIMCALL(void, evalstmt_412611)(Tctx262036* c, Tnode213790* n_412614) {
	Tnode213790* n;
	NI start;
	n = transformexpr_386801((*c).module, n_412614);
	start = genstmt_394622(c, n);
	{
		Tnode213790* LOC5;
		if (!!((((NU8) ((NU32)((*c).code->data[start] & ((NU32) 255)))) == ((NU8) 0)))) goto LA3;
		LOC5 = 0;
		LOC5 = execute_412498(c, start);
	}
	LA3: ;
}

N_NIMCALL(Tnode213790*, myprocess_413203)(Tpasscontext260002* c, Tnode213790* n) {
	Tnode213790* result;
	result = 0;
	{
		if (!(olderrorcount_413201 == gerrorcounter_182081)) goto LA3;
		evalstmt_412611(((Tctx262036*) (c)), n);
		result = emptynode_214801;
	}
	goto LA1;
	LA3: ;
	{
		result = n;
	}
	LA1: ;
	olderrorcount_413201 = gerrorcounter_182081;
	return result;
}

N_NIMCALL(void, setresult_400942)(Vmargs262030* a, TY125402* v) {
	TY400855* s;
	Tnode213790* n;
	s = 0;
	s = ((TY400855*) ((*a).slots));
	{
		if (!!((s->data[(*a).ra].kind == ((NU8) 1)))) goto LA3;
		myreset_400401((&s->data[(*a).ra]));
		s->data[(*a).ra].kind = ((NU8) 1);
	}
	LA3: ;
	n = newnode_214401(((NU8) 41));
	{
		NimStringDesc* x_400969;
		NI i_400977;
		NI L_400979;
		x_400969 = 0;
		i_400977 = ((NI) 0);
		L_400979 = (v ? v->Sup.len : 0);
		{
			while (1) {
				Tnode213790* LOC8;
				if (!(i_400977 < L_400979)) goto LA7;
				x_400969 = v->data[i_400977];
				LOC8 = 0;
				LOC8 = newstrnode_214678(((NU8) 20), x_400969);
				add_214114(n, LOC8);
				i_400977 += ((NI) 1);
			} LA7: ;
		}
	}
	asgnRefNoCycle((void**) (&s->data[(*a).ra].kindU.node), n);
}
NIM_EXTERNC N_NOINLINE(void, compiler_vmInit000)(void) {
}

NIM_EXTERNC N_NOINLINE(void, compiler_vmDatInit000)(void) {
static TNimNode* TMP2843[6];
NI TMP2845;
static char* NIM_CONST TMP2844[6] = {
"rkNone", 
"rkNode", 
"rkInt", 
"rkFloat", 
"rkRegisterAddr", 
"rkNodeAddr"};
static TNimNode* TMP2954[5];
static TNimNode* TMP2957[3];
static TNimNode TMP1017[24];
NTI400204.size = sizeof(Tfullreg400204);
NTI400204.kind = 18;
NTI400204.base = 0;
NTI400204.flags = 2;
NTI400202.size = sizeof(NU8);
NTI400202.kind = 14;
NTI400202.base = 0;
NTI400202.flags = 3;
for (TMP2845 = 0; TMP2845 < 6; TMP2845++) {
TMP1017[TMP2845+1].kind = 1;
TMP1017[TMP2845+1].offset = TMP2845;
TMP1017[TMP2845+1].name = TMP2844[TMP2845];
TMP2843[TMP2845] = &TMP1017[TMP2845+1];
}
TMP1017[7].len = 6; TMP1017[7].kind = 2; TMP1017[7].sons = &TMP2843[0];
NTI400202.node = &TMP1017[7];
TMP1017[0].kind = 3;
TMP1017[0].offset = offsetof(Tfullreg400204, kind);
TMP1017[0].typ = (&NTI400202);
TMP1017[0].name = "kind";
TMP1017[0].sons = &NimDT_400204_kind[0];
TMP1017[0].len = 6;
TMP1017[8].len = 0; TMP1017[8].kind = 2;
NimDT_400204_kind[0] = &TMP1017[8];
TMP1017[9].kind = 1;
TMP1017[9].offset = offsetof(Tfullreg400204, kindU.intval);
TMP1017[9].typ = (&NTI7088);
TMP1017[9].name = "intVal";
NimDT_400204_kind[2] = &TMP1017[9];
TMP1017[10].kind = 1;
TMP1017[10].offset = offsetof(Tfullreg400204, kindU.floatval);
TMP1017[10].typ = (&NTI7090);
TMP1017[10].name = "floatVal";
NimDT_400204_kind[3] = &TMP1017[10];
TMP1017[11].kind = 1;
TMP1017[11].offset = offsetof(Tfullreg400204, kindU.node);
TMP1017[11].typ = (&NTI213782);
TMP1017[11].name = "node";
NimDT_400204_kind[1] = &TMP1017[11];
NTI400219.size = sizeof(Tfullreg400204*);
NTI400219.kind = 21;
NTI400219.base = (&NTI400204);
NTI400219.flags = 3;
TMP1017[12].kind = 1;
TMP1017[12].offset = offsetof(Tfullreg400204, kindU.regaddr);
TMP1017[12].typ = (&NTI400219);
TMP1017[12].name = "regAddr";
NimDT_400204_kind[4] = &TMP1017[12];
TMP1017[13].kind = 1;
TMP1017[13].offset = offsetof(Tfullreg400204, kindU.nodeaddr);
TMP1017[13].typ = (&NTI400221);
TMP1017[13].name = "nodeAddr";
NimDT_400204_kind[5] = &TMP1017[13];
NTI400204.node = &TMP1017[0];
NTI400208.size = sizeof(Tstackframe400208);
NTI400208.kind = 18;
NTI400208.base = 0;
TMP2954[0] = &TMP1017[15];
TMP1017[15].kind = 1;
TMP1017[15].offset = offsetof(Tstackframe400208, prc);
TMP1017[15].typ = (&NTI213788);
TMP1017[15].name = "prc";
TMP2954[1] = &TMP1017[16];
NTI400855.size = sizeof(TY400855*);
NTI400855.kind = 24;
NTI400855.base = (&NTI400204);
NTI400855.flags = 2;
NTI400855.marker = TMP2955;
TMP1017[16].kind = 1;
TMP1017[16].offset = offsetof(Tstackframe400208, slots);
TMP1017[16].typ = (&NTI400855);
TMP1017[16].name = "slots";
TMP2954[2] = &TMP1017[17];
TMP1017[17].kind = 1;
TMP1017[17].offset = offsetof(Tstackframe400208, next);
TMP1017[17].typ = (&NTI400206);
TMP1017[17].name = "next";
TMP2954[3] = &TMP1017[18];
TMP1017[18].kind = 1;
TMP1017[18].offset = offsetof(Tstackframe400208, comesfrom);
TMP1017[18].typ = (&NTI104);
TMP1017[18].name = "comesFrom";
TMP2954[4] = &TMP1017[19];
TMP1017[19].kind = 1;
TMP1017[19].offset = offsetof(Tstackframe400208, safepoints);
TMP1017[19].typ = (&NTI313503);
TMP1017[19].name = "safePoints";
TMP1017[14].len = 5; TMP1017[14].kind = 2; TMP1017[14].sons = &TMP2954[0];
NTI400208.node = &TMP1017[14];
NTI400206.size = sizeof(Tstackframe400208*);
NTI400206.kind = 22;
NTI400206.base = (&NTI400208);
NTI400206.marker = TMP2956;
NTI412030.size = sizeof(TY412030);
NTI412030.kind = 18;
NTI412030.base = 0;
NTI412030.flags = 2;
TMP2957[0] = &TMP1017[21];
TMP1017[21].kind = 1;
TMP1017[21].offset = offsetof(TY412030, HEX3Astate);
TMP1017[21].typ = (&NTI324021);
TMP1017[21].name = ":state";
TMP2957[1] = &TMP1017[22];
TMP1017[22].kind = 1;
TMP1017[22].offset = offsetof(TY412030, error410611);
TMP1017[22].typ = (&NTI138);
TMP1017[22].name = "error410611";
TMP2957[2] = &TMP1017[23];
TMP1017[23].kind = 1;
TMP1017[23].offset = offsetof(TY412030, error410661);
TMP1017[23].typ = (&NTI138);
TMP1017[23].name = "error410661";
TMP1017[20].len = 3; TMP1017[20].kind = 2; TMP1017[20].sons = &TMP2957[0];
NTI412030.node = &TMP1017[20];
NTI412029.size = sizeof(TY412030*);
NTI412029.kind = 22;
NTI412029.base = (&NTI412030);
NTI412029.flags = 2;
NTI412029.marker = TMP2958;
}

