/* Generated by Nim Compiler v0.10.2 */
/*   (c) 2014 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 <stdio.h>

#include <stdlib.h>
typedef struct tctx289048 tctx289048;
typedef struct tnode225816 tnode225816;
typedef struct tsym225846 tsym225846;
typedef struct tlineinfo195539 tlineinfo195539;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct ttype225852 ttype225852;
typedef struct tident200021 tident200021;
typedef struct tnodeseq225810 tnodeseq225810;
typedef struct tidobj200015 tidobj200015;
typedef struct TNimObject TNimObject;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct ttypeseq225848 ttypeseq225848;
typedef struct tscope225840 tscope225840;
typedef struct TY225947 TY225947;
typedef struct tinstantiation225836 tinstantiation225836;
typedef struct tstrtable225820 tstrtable225820;
typedef struct tsymseq225818 tsymseq225818;
typedef struct tloc225830 tloc225830;
typedef struct trope177009 trope177009;
typedef struct tlib225834 tlib225834;
typedef struct tcell44933 tcell44933;
typedef struct tcellset44945 tcellset44945;
typedef struct tgcheap47016 tgcheap47016;
typedef struct tcellseq44949 tcellseq44949;
typedef struct tpagedesc44941 tpagedesc44941;
typedef struct tmemregion27210 tmemregion27210;
typedef struct tsmallchunk26440 tsmallchunk26440;
typedef struct tllchunk27204 tllchunk27204;
typedef struct tbigchunk26442 tbigchunk26442;
typedef struct tintset26417 tintset26417;
typedef struct ttrunk26413 ttrunk26413;
typedef struct tavlnode27208 tavlnode27208;
typedef struct tgcstat47014 tgcstat47014;
typedef struct vmargs289042 vmargs289042;
typedef struct TY456895 TY456895;
typedef struct tfullreg456204 tfullreg456204;
typedef struct tpasscontext286005 tpasscontext286005;
typedef struct TY289250 TY289250;
typedef struct TY196414 TY196414;
typedef struct pprocHEX3Aobjecttype289230 pprocHEX3Aobjecttype289230;
typedef struct TY289269 TY289269;
typedef struct TY289270 TY289270;
typedef struct tstackframe456208 tstackframe456208;
typedef struct TY343680 TY343680;
typedef struct TY475665 TY475665;
typedef struct TY458516 TY458516;
typedef struct TY84945 TY84945;
typedef struct TY289231 TY289231;
typedef struct tblock289030 tblock289030;
typedef struct TY289211 TY289211;
typedef struct TY289237 TY289237;
typedef struct TY225936 TY225936;
typedef struct tlistentry127022 tlistentry127022;
typedef struct tbasechunk26438 tbasechunk26438;
typedef struct tfreecell26430 tfreecell26430;
struct  tlineinfo195539  {
NI16 Line;
NI16 Col;
NI32 Fileindex;
};
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct  tnode225816  {
ttype225852* Typ;
tlineinfo195539 Info;
NU16 Flags;
NU8 Kind;
union {
struct {NI64 Intval;
} S1;
struct {NF Floatval;
} S2;
struct {NimStringDesc* Strval;
} S3;
struct {tsym225846* Sym;
} S4;
struct {tident200021* Ident;
} S5;
struct {tnodeseq225810* Sons;
} S6;
} kindU;
NimStringDesc* Comment;
};
typedef N_NIMCALL_PTR(void, TY3089) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, TY3094) (void* p);
struct  TNimType  {
NI size;
NU8 kind;
NU8 flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY3089 marker;
TY3094 deepcopy;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  tidobj200015  {
  TNimObject Sup;
NI Id;
};
struct  tstrtable225820  {
NI Counter;
tsymseq225818* Data;
};
struct  tloc225830  {
NU8 K;
NU8 S;
NU8 Flags;
ttype225852* T;
trope177009* R;
trope177009* Heaproot;
};
struct  tsym225846  {
  tidobj200015 Sup;
NU8 Kind;
union {
struct {ttypeseq225848* Typeinstcache;
tscope225840* Typscope;
} S1;
struct {TY225947* Procinstcache;
tscope225840* Scope;
} S2;
struct {TY225947* Usedgenerics;
tstrtable225820 Tab;
} S3;
struct {tsym225846* Guard;
} S4;
} kindU;
NU16 Magic;
ttype225852* Typ;
tident200021* Name;
tlineinfo195539 Info;
tsym225846* Owner;
NU32 Flags;
tnode225816* Ast;
NU32 Options;
NI Position;
NI Offset;
tloc225830 Loc;
tlib225834* Annex;
tnode225816* Constraint;
};
typedef NimStringDesc* TY169969[2];
struct  tcell44933  {
NI Refcount;
TNimType* Typ;
};
struct  tcellseq44949  {
NI Len;
NI Cap;
tcell44933** D;
};
struct  tcellset44945  {
NI Counter;
NI Max;
tpagedesc44941* Head;
tpagedesc44941** Data;
};
typedef tsmallchunk26440* TY27222[512];
typedef ttrunk26413* ttrunkbuckets26415[256];
struct  tintset26417  {
ttrunkbuckets26415 Data;
};
struct  tmemregion27210  {
NI Minlargeobj;
NI Maxlargeobj;
TY27222 Freesmallchunks;
tllchunk27204* Llmem;
NI Currmem;
NI Maxmem;
NI Freemem;
NI Lastsize;
tbigchunk26442* Freechunkslist;
tintset26417 Chunkstarts;
tavlnode27208* Root;
tavlnode27208* Deleted;
tavlnode27208* Last;
tavlnode27208* Freeavlnodes;
};
struct  tgcstat47014  {
NI Stackscans;
NI Cyclecollections;
NI Maxthreshold;
NI Maxstacksize;
NI Maxstackcells;
NI Cycletablesize;
NI64 Maxpause;
};
struct  tgcheap47016  {
void* Stackbottom;
NI Cyclethreshold;
tcellseq44949 Zct;
tcellseq44949 Decstack;
tcellset44945 Cycleroots;
tcellseq44949 Tempstack;
NI Recgclock;
tmemregion27210 Region;
tgcstat47014 Stat;
};
struct  vmargs289042  {
NI Ra;
NI Rb;
NI Rc;
void* Slots;
tnode225816* Currentexception;
};
typedef struct {
N_NIMCALL_PTR(void, ClPrc) (vmargs289042* args, void* ClEnv);
void* ClEnv;
} vmcallback289044;
struct  tfullreg456204  {
NU8 Kind;
union {
NI64 Intval;
NF Floatval;
tnode225816* Node;
tfullreg456204* Regaddr;
tnode225816** Nodeaddr;
} kindU;
};
struct  TNimNode  {
NU8 kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef N_CLOSURE_PTR(void, TMP2732) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2734) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2736) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2738) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2740) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2742) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2744) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2746) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2748) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2750) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2752) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2754) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2756) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2758) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2760) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2762) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2764) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2766) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2768) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2770) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2772) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2774) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2777) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2779) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2781) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2783) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2786) (vmargs289042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2788) (vmargs289042* args, void* ClEnv);
struct  tpasscontext286005  {
  TNimObject Sup;
NIM_BOOL Fromcache;
};
struct TY289270 {
NimStringDesc* Field0;
vmcallback289044 Field1;
};
struct  tctx289048  {
  tpasscontext286005 Sup;
TY289250* Code;
TY196414* Debug;
tnode225816* Globals;
tnode225816* Constants;
ttypeseq225848* Types;
tnode225816* Currentexceptiona;
tnode225816* Currentexceptionb;
NI Exceptioninstr;
pprocHEX3Aobjecttype289230* Prc;
tsym225846* Module;
tnode225816* Callsite;
NU8 Mode;
NU8 Features;
NIM_BOOL Traceactive;
NI Loopiterations;
tlineinfo195539 Comesfromheuristic;
TY289269* Callbacks;
NimStringDesc* Errorflag;
};
struct  tstackframe456208  {
tsym225846* Prc;
TY456895* Slots;
tstackframe456208* Next;
NI Comesfrom;
TY343680* Safepoints;
};
struct  ttype225852  {
  tidobj200015 Sup;
NU8 Kind;
NU8 Callconv;
NU32 Flags;
ttypeseq225848* Sons;
tnode225816* N;
tsym225846* Owner;
tsym225846* Sym;
tsym225846* Destructor;
tsym225846* Deepcopy;
NI64 Size;
NI16 Align;
NI16 Locklevel;
tloc225830 Loc;
};
struct  TY475665  {
NI HEX3Astate;
NimStringDesc* Error472660;
NimStringDesc* Error472762;
};
struct  tident200021  {
  tidobj200015 Sup;
NimStringDesc* S;
tident200021* Next;
NI H;
};
typedef NimStringDesc* TY197301[1];
typedef N_CLOSURE_PTR(void, TMP2838) (vmargs289042* args);
struct TY458516 {
NI Field0;
tstackframe456208* Field1;
};
typedef struct {
N_NIMCALL_PTR(void, ClPrc) (tlineinfo195539 info, NU16 msg, NimStringDesc* arg, void* ClEnv);
void* ClEnv;
} terrorhandler215188;
struct TY84945 {
NimStringDesc* Field0;
NI Field1;
};
struct  tblock289030  {
tsym225846* Label;
TY289211* Fixups;
};
struct TY289237 {
NIM_BOOL Field0;
NU8 Field1;
};
typedef TY289237 TY289234[256];
struct  pprocHEX3Aobjecttype289230  {
TY289231* Blocks;
tsym225846* Sym;
TY289234 Slots;
NI Maxslots;
};
struct  tscope225840  {
NI Depthlevel;
tstrtable225820 Symbols;
tnodeseq225810* Usingsyms;
tscope225840* Parent;
};
struct  tinstantiation225836  {
tsym225846* Sym;
ttypeseq225848* Concretetypes;
TY225936* Usedby;
};
struct  trope177009  {
  TNimObject Sup;
trope177009* Left;
trope177009* Right;
NI Length;
NimStringDesc* Data;
};
struct  tlistentry127022  {
  TNimObject Sup;
tlistentry127022* Prev;
tlistentry127022* Next;
};
struct  tlib225834  {
  tlistentry127022 Sup;
NU8 Kind;
NIM_BOOL Generated;
NIM_BOOL Isoverriden;
trope177009* Name;
tnode225816* Path;
};
typedef NI TY26420[16];
struct  tpagedesc44941  {
tpagedesc44941* Next;
NI Key;
TY26420 Bits;
};
struct  tbasechunk26438  {
NI Prevsize;
NI Size;
NIM_BOOL Used;
};
struct  tsmallchunk26440  {
  tbasechunk26438 Sup;
tsmallchunk26440* Next;
tsmallchunk26440* Prev;
tfreecell26430* Freelist;
NI Free;
NI Acc;
NF Data;
};
struct  tllchunk27204  {
NI Size;
NI Acc;
tllchunk27204* Next;
};
struct  tbigchunk26442  {
  tbasechunk26438 Sup;
tbigchunk26442* Next;
tbigchunk26442* Prev;
NI Align;
NF Data;
};
struct  ttrunk26413  {
ttrunk26413* Next;
NI Key;
TY26420 Bits;
};
typedef tavlnode27208* TY27214[2];
struct  tavlnode27208  {
TY27214 Link;
NI Key;
NI Upperbound;
NI Level;
};
struct  tfreecell26430  {
tfreecell26430* Next;
NI Zerofield;
};
struct tnodeseq225810 {
  TGenericSeq Sup;
  tnode225816* data[SEQ_DECL_SIZE];
};
struct ttypeseq225848 {
  TGenericSeq Sup;
  ttype225852* data[SEQ_DECL_SIZE];
};
struct TY225947 {
  TGenericSeq Sup;
  tinstantiation225836* data[SEQ_DECL_SIZE];
};
struct tsymseq225818 {
  TGenericSeq Sup;
  tsym225846* data[SEQ_DECL_SIZE];
};
struct TY456895 {
  TGenericSeq Sup;
  tfullreg456204 data[SEQ_DECL_SIZE];
};
struct TY289250 {
  TGenericSeq Sup;
  NU32 data[SEQ_DECL_SIZE];
};
struct TY196414 {
  TGenericSeq Sup;
  tlineinfo195539 data[SEQ_DECL_SIZE];
};
struct TY289269 {
  TGenericSeq Sup;
  TY289270 data[SEQ_DECL_SIZE];
};
struct TY343680 {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct TY289211 {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct TY289231 {
  TGenericSeq Sup;
  tblock289030 data[SEQ_DECL_SIZE];
};
struct TY225936 {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
N_NIMCALL(void, globalerror_197934)(tlineinfo195539 info, NU16 msg, NimStringDesc* arg);
static N_INLINE(NI, safelen_226424)(tnode225816* n);
N_NIMCALL(NI, len_230005)(ttype225852* n);
N_NIMCALL(void, globalerror_197945)(tlineinfo195539 info, NimStringDesc* arg);
N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen0);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
N_NIMCALL(void, setupglobalctx_476263)(tsym225846* module);
N_NIMCALL(tctx289048*, newctx_289279)(tsym225846* module);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incref_51025)(tcell44933* c);
static N_INLINE(NIM_BOOL, canbecycleroot_48667)(tcell44933* c);
static N_INLINE(void, rtladdcycleroot_49429)(tcell44933* c);
N_NOINLINE(void, incl_45671)(tcellset44945* s, tcell44933* cell);
static N_INLINE(tcell44933*, usrtocell_48646)(void* usr);
static N_INLINE(void, decref_50604)(tcell44933* c);
static N_INLINE(void, rtladdzct_50204)(tcell44933* c);
N_NOINLINE(void, addzct_48617)(tcellseq44949* s, tcell44933* c);
N_NIMCALL(void, refresh_289391)(tctx289048* c, tsym225846* module);
N_NIMCALL(void, registeradditionalops_476087)(tctx289048* c);
N_NIMCALL(void, registercallback_289422)(tctx289048* c, NimStringDesc* name, vmcallback289044 callback);
N_NIMCALL(void, sqrtwrapper_476090)(vmargs289042* a);
N_NIMCALL(void, setresult_456891)(vmargs289042* a, NF v);
N_NIMCALL(void, myreset_456601)(tfullreg456204* n);
N_NIMCALL(void, genericReset)(void* dest, TNimType* mt);
N_NIMCALL(NF, getfloat_457095)(vmargs289042* a, NI i);
N_NOINLINE(void, raiseassert_84957)(NimStringDesc* msg);
N_NIMCALL(void, lnwrapper_476093)(vmargs289042* a);
N_NIMCALL(void, log10wrapper_476096)(vmargs289042* a);
N_NIMCALL(void, log2wrapper_476099)(vmargs289042* a);
N_NIMCALL(NF, log2_147255)(NF x);
N_NIMCALL(void, expwrapper_476102)(vmargs289042* a);
N_NIMCALL(void, roundwrapper_476105)(vmargs289042* a);
N_NIMCALL(void, setresult_456855)(vmargs289042* a, NI64 v);
N_NIMCALL(void, arccoswrapper_476108)(vmargs289042* a);
N_NIMCALL(void, arcsinwrapper_476111)(vmargs289042* a);
N_NIMCALL(void, arctanwrapper_476114)(vmargs289042* a);
N_NIMCALL(void, arctan2wrapper_476117)(vmargs289042* a);
N_NIMCALL(void, coswrapper_476120)(vmargs289042* a);
N_NIMCALL(void, coshwrapper_476123)(vmargs289042* a);
N_NIMCALL(void, hypotwrapper_476126)(vmargs289042* a);
N_NIMCALL(void, sinhwrapper_476129)(vmargs289042* a);
N_NIMCALL(void, sinwrapper_476132)(vmargs289042* a);
N_NIMCALL(void, tanwrapper_476135)(vmargs289042* a);
N_NIMCALL(void, tanhwrapper_476138)(vmargs289042* a);
N_NIMCALL(void, powwrapper_476141)(vmargs289042* a);
N_NIMCALL(void, truncwrapper_476144)(vmargs289042* a);
N_NIMCALL(void, floorwrapper_476147)(vmargs289042* a);
N_NIMCALL(void, ceilwrapper_476150)(vmargs289042* a);
N_NIMCALL(void, fmodwrapper_476153)(vmargs289042* a);
N_NIMCALL(void, getenvwrapper_476156)(vmargs289042* a);
N_NIMCALL(void, setresult_456972)(vmargs289042* a, NimStringDesc* v);
N_NIMCALL(tnode225816*, newnode_226090)(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_120442)(NimStringDesc* key);
N_NIMCALL(NimStringDesc*, getstring_457148)(vmargs289042* a, NI i);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_NIMCALL(void, existsenvwrapper_476159)(vmargs289042* a);
N_NIMCALL(void, setresult_456927)(vmargs289042* a, NIM_BOOL v_456930);
N_NIMCALL(NIM_BOOL, existsenv_120457)(NimStringDesc* key);
N_NIMCALL(void, direxistswrapper_476162)(vmargs289042* a);
static N_INLINE(NIM_BOOL, direxists_116020)(NimStringDesc* dir);
N_NIMCALL(NIM_BOOL, nosexistsDir)(NimStringDesc* dir);
N_NIMCALL(void, fileexistswrapper_476165)(vmargs289042* a);
static N_INLINE(NIM_BOOL, fileexists_116010)(NimStringDesc* filename);
N_NIMCALL(NIM_BOOL, nosexistsFile)(NimStringDesc* filename);
N_NIMCALL(void, writefilewrapper_476168)(vmargs289042* a);
N_NIMCALL(void, writefile_12845)(NimStringDesc* filename, NimStringDesc* content);
N_NIMCALL(void, getcurrentexceptionmsgwrapper_476042)(vmargs289042* a);
N_NIMCALL(NI, genproc_451721)(tctx289048* c, tsym225846* s);
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
N_NIMCALL(void, TMP2824)(void* p, NI op);
N_NIMCALL(void, TMP2825)(void* p, NI op);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
N_NIMCALL(void*, newSeqRC1)(TNimType* typ, NI len);
N_NIMCALL(tnode225816*, newnodeit_226145)(NU8 kind, tlineinfo195539 info, ttype225852* typ);
N_NIMCALL(tnode225816*, setupmacroparam_477270)(tnode225816* x);
N_NIMCALL(tnode225816*, canonvalue_444888)(tnode225816* n);
N_NIMCALL(tnode225816*, regtonode_458280)(tfullreg456204 x);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_NIMCALL(void, rawexecute_459846)(tctx289048* c, NI start, tstackframe456208* tos_459850, tfullreg456204* Result);
N_NIMCALL(void, TMP2827)(void* p, NI op);
N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
N_NIMCALL(void, createstrkeepnode_456670)(tfullreg456204* x);
N_NIMCALL(void, asgncomplex_457833)(tfullreg456204* x, tfullreg456204 y);
N_NIMCALL(tnode225816*, copyvalue_457404)(tnode225816* src);
static N_INLINE(NI, sonslen_226249)(tnode225816* n);
N_NIMCALL(void, moveconst_457236)(tfullreg456204* x, tfullreg456204 y);
N_NIMCALL(void, putintonode_457993)(tnode225816** n, tfullreg456204 x);
N_NIMCALL(void, stacktrace_456351)(tctx289048* c, tstackframe456208* tos, NI pc, NU16 msg, NimStringDesc* arg);
N_NIMCALL(void, msgwriteln_197236)(NimStringDesc* s);
N_NIMCALL(void, stacktraceaux_456233)(tctx289048* c, tstackframe456208* x_456236, NI pc, NI recursionlimit);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(NimStringDesc*, tofilename_197025)(NI32 fileidx);
static N_INLINE(NI, tolinenumber_197073)(tlineinfo195539 info);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_NIMCALL(void, localerror_197955)(tlineinfo195539 info, NU16 msg, NimStringDesc* arg);
static N_INLINE(NI, len_226364)(tnode225816* n);
N_NIMCALL(tnode225816*, skipcolon_459813)(tnode225816* n);
N_NIMCALL(NIM_BOOL, inset_284019)(tnode225816* s, tnode225816* elem);
N_NIMCALL(void, addson_226287)(tnode225816* father, tnode225816* son);
N_NIMCALL(tnode225816*, copytree_226329)(tnode225816* src);
N_NIMCALL(void, add_226498)(tnode225816* father, tnode225816* son);
N_NIMCALL(tnode225816*, diffsets_284054)(tnode225816* a, tnode225816* b);
N_NIMCALL(void, discardsons_226358)(tnode225816* father);
N_NIMCALL(NI64, cardset_284089)(tnode225816* s);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NI, cmpStrings)(NimStringDesc* a, NimStringDesc* b);
N_NIMCALL(NIM_BOOL, containssets_284075)(tnode225816* a, tnode225816* b);
N_NIMCALL(NIM_BOOL, equalsets_284082)(tnode225816* a, tnode225816* b);
N_NIMCALL(tnode225816*, intersectsets_284061)(tnode225816* a, tnode225816* b);
N_NIMCALL(tnode225816*, unionsets_284047)(tnode225816* a, tnode225816* b);
N_NIMCALL(tnode225816*, symdiffsets_284068)(tnode225816* a, tnode225816* b);
N_NIMCALL(NimStringDesc*, nimCharToStr)(NIM_CHAR x);
N_NIMCALL(void, write_12865)(FILE* f, NimStringDesc* s);
static N_INLINE(void, writeln_170205)(FILE* f_170209, NimStringDesc** x_170213, NI x_170213Len0);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s, NI start_75028, 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_304021)(tnode225816* a, tnode225816* b);
N_NIMCALL(NimStringDesc*, msgkindtostring_197378)(NU16 kind);
N_NIMCALL(NI, compile_459696)(tctx289048* c, tsym225846* s);
static N_INLINE(NIM_BOOL, isemptytype_232990)(ttype225852* t);
N_NIMCALL(void, putintoreg_458143)(tfullreg456204* dest, tnode225816* n);
N_NIMCALL(tnode225816*, getnullvalue_450007)(ttype225852* typ, tlineinfo195539 info);
N_NIMCALL(tnode225816*, newnodei_226138)(NU8 kind, tlineinfo195539 info);
N_NIMCALL(tnode225816*, newsymnode_226132)(tsym225846* sym);
N_NIMCALL(tnode225816*, evaltemplate_455334)(tnode225816* n, tsym225846* tmpl, tsym225846* gensymowner);
static N_INLINE(tnode225816*, HEX5BHEX5D_226698)(tnode225816* n, NI i);
N_NIMCALL(NIM_BOOL, overlap_284012)(tnode225816* a, tnode225816* b);
N_NIMCALL(void, pushsafepoint_458397)(tstackframe456208* f, NI pc);
N_NIMCALL(TGenericSeq*, incrSeq)(TGenericSeq* seq, NI elemsize);
N_NIMCALL(void, popsafepoint_458456)(tstackframe456208* f);
static N_INLINE(NI, pop_458462)(TY343680** s_458470);
N_NIMCALL(TGenericSeq*, setLengthSeq)(TGenericSeq* seq, NI elemsize, NI newlen);
N_NIMCALL(void, cleanuponexception_458512)(tctx289048* c, tstackframe456208* tos, TY458516* Result);
N_NIMCALL(ttype225852*, skiptypes_230245)(ttype225852* t, NU64 kinds);
N_NIMCALL(NI, inheritancediff_270588)(ttype225852* a, ttype225852* b);
N_NIMCALL(void, bailout_456373)(tctx289048* c, tstackframe456208* tos);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_NIMCALL(NIM_BOOL, fitsregister_448686)(ttype225852* t);
N_NIMCALL(NimStringDesc*, rendertree_250058)(tnode225816* n, NU8 renderflags);
N_NIMCALL(void, message_197976)(tlineinfo195539 info, NU16 msg, NimStringDesc* arg);
N_NIMCALL(NI64, getordvalue_263187)(tnode225816* n);
N_NIMCALL(void, genericShallowAssign)(void* dest, void* src, TNimType* mt);
N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newlen);
N_NIMCALL(NIM_BOOL, sametype_268351)(ttype225852* a, ttype225852* b, NU8 flags);
N_NIMCALL(void, internalerror_197987)(tlineinfo195539 info, NimStringDesc* errmsg);
N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
N_NIMCALL(tnode225816*, copynode_226323)(tnode225816* src);
N_NIMCALL(NimStringDesc*, reprEnum)(NI e_81107, TNimType* typ);
N_NIMCALL(NimStringDesc*, opslurp_454039)(NimStringDesc* file, tlineinfo195539 info, tsym225846* module);
N_NIMCALL(NimStringDesc*, opgorge_454027)(NimStringDesc* cmd, NimStringDesc* input);
N_NIMCALL(tnode225816*, parsestring_248539)(NimStringDesc* s, NimStringDesc* filename, NI line, terrorhandler215188 errorhandler);
N_NIMCALL(NimStringDesc*, tofullpath_197037)(NI32 fileidx);
N_CLOSURE(void, HEX3Aanonymous_472689)(tlineinfo195539 info, NU16 msg, NimStringDesc* arg, void* ClEnv);
N_NIMCALL(NimStringDesc*, formatmsg_197757)(tlineinfo195539 info, NU16 msg, NimStringDesc* arg);
N_CLOSURE(void, HEX3Aanonymous_472791)(tlineinfo195539 info, NU16 msg, NimStringDesc* arg, void* ClEnv);
static N_INLINE(NimStringDesc*, tofilelinecol_197103)(tlineinfo195539 info);
N_NIMCALL(tident200021*, getident_200472)(NimStringDesc* identifier);
N_NIMCALL(NIM_BOOL, opconv_458906)(tfullreg456204* dest, tfullreg456204 src, ttype225852* desttyp, ttype225852* srctyp);
N_NIMCALL(void, internalerror_198006)(NimStringDesc* errmsg);
N_NIMCALL(NimStringDesc*, nimInt64ToStr)(NI64 x);
N_NIMCALL(NimStringDesc*, HEX24_6201)(NU64 x);
N_NIMCALL(NimStringDesc*, nimFloatToStr)(NF f);
N_NIMCALL(NimStringDesc*, typetostring_263031)(ttype225852* typ, NU8 prefer);
N_NIMCALL(NI64, firstord_263004)(ttype225852* t);
N_NIMCALL(NI64, lastord_263010)(ttype225852* t);
N_NIMCALL(NimStringDesc*, HEX24_198126)(TY84945 x_198130);
N_NIMCALL(void, delson_226294)(tnode225816* father, NI idx);
N_NIMCALL(tsym225846*, newsym_226074)(NU8 symkind, tident200021* name, tsym225846* owner, tlineinfo195539 info);
N_NIMCALL(NIM_BOOL, cyclictree_261173)(tnode225816* n);
N_NIMCALL(tnode225816*, evalconstexpraux_476751)(tsym225846* module, tsym225846* prc, tnode225816* n_476755, NU8 mode);
N_NIMCALL(tnode225816*, transformexpr_441807)(tsym225846* module, tnode225816* n);
N_NIMCALL(NI, genexpr_452665)(tctx289048* c, tnode225816* n, NIM_BOOL requiresvalue);
N_NIMCALL(void, evalstmt_475801)(tctx289048* c, tnode225816* n_475804);
N_NIMCALL(NI, genstmt_452640)(tctx289048* c, tnode225816* n);
N_NIMCALL(tnode225816*, execute_475772)(tctx289048* c, NI start);
STRING_LITERAL(TMP2723, "", 0);
STRING_LITERAL(TMP2724, "got $#, but expected $# argument(s)", 35);
STRING_LITERAL(TMP2726, "stdlib.math.sqrt", 16);
TNimNode* NimDT_456204_kind[7];
STRING_LITERAL(TMP2730, "i < a.rc - 1 ", 13);
STRING_LITERAL(TMP2731, "s[i + a.rb + 1].kind == rkFloat ", 32);
STRING_LITERAL(TMP2733, "stdlib.math.ln", 14);
STRING_LITERAL(TMP2735, "stdlib.math.log10", 17);
STRING_LITERAL(TMP2737, "stdlib.math.log2", 16);
STRING_LITERAL(TMP2739, "stdlib.math.exp", 15);
STRING_LITERAL(TMP2741, "stdlib.math.round", 17);
STRING_LITERAL(TMP2743, "stdlib.math.arccos", 18);
STRING_LITERAL(TMP2745, "stdlib.math.arcsin", 18);
STRING_LITERAL(TMP2747, "stdlib.math.arctan", 18);
STRING_LITERAL(TMP2749, "stdlib.math.arctan2", 19);
STRING_LITERAL(TMP2751, "stdlib.math.cos", 15);
STRING_LITERAL(TMP2753, "stdlib.math.cosh", 16);
STRING_LITERAL(TMP2755, "stdlib.math.hypot", 17);
STRING_LITERAL(TMP2757, "stdlib.math.sinh", 16);
STRING_LITERAL(TMP2759, "stdlib.math.sin", 15);
STRING_LITERAL(TMP2761, "stdlib.math.tan", 15);
STRING_LITERAL(TMP2763, "stdlib.math.tanh", 16);
STRING_LITERAL(TMP2765, "stdlib.math.pow", 15);
STRING_LITERAL(TMP2767, "stdlib.math.trunc", 17);
STRING_LITERAL(TMP2769, "stdlib.math.floor", 17);
STRING_LITERAL(TMP2771, "stdlib.math.ceil", 16);
STRING_LITERAL(TMP2773, "stdlib.math.fmod", 16);
STRING_LITERAL(TMP2775, "stdlib.os.getEnv", 16);
STRING_LITERAL(TMP2776, "s[i + a.rb + 1].kind == rkNode ", 31);
STRING_LITERAL(TMP2778, "stdlib.os.existsEnv", 19);
STRING_LITERAL(TMP2780, "stdlib.os.dirExists", 19);
STRING_LITERAL(TMP2782, "stdlib.os.fileExists", 20);
STRING_LITERAL(TMP2784, "stdlib.system.writeFile", 23);
STRING_LITERAL(TMP2787, "stdlib.system.getCurrentExceptionMsg", 36);
STRING_LITERAL(TMP2828, "stack trace: (most recent call last)", 36);
STRING_LITERAL(TMP2829, " calls omitted\012", 15);
STRING_LITERAL(TMP2834, "\012", 1);
STRING_LITERAL(TMP2837, "unknown type", 12);
NIM_CONST TY169969 TMP2836 = {((NimStringDesc*) &TMP2837),
((NimStringDesc*) &TMP2837)}
;
STRING_LITERAL(TMP2839, "VM not allowed to do FFI", 24);
STRING_LITERAL(TMP2840, "VM not built with FFI support", 29);
NIM_CONST TY458516 TMP2844 = {-1,
NIM_NIL}
;
STRING_LITERAL(TMP2845, "cannot swap operands", 20);
STRING_LITERAL(TMP2846, "too implement", 13);
STRING_LITERAL(TMP2847, "value out of range", 18);
STRING_LITERAL(TMP2848, "intVal", 6);
STRING_LITERAL(TMP2849, "floatVal", 8);
STRING_LITERAL(TMP2850, "symbol", 6);
STRING_LITERAL(TMP2851, "ident", 5);
STRING_LITERAL(TMP2852, "unknown opcode ", 15);
STRING_LITERAL(TMP2856, "strVal", 6);
STRING_LITERAL(TMP2870, "multiple statements", 19);
STRING_LITERAL(TMP2871, "callsite", 8);
STRING_LITERAL(TMP2872, "(", 1);
STRING_LITERAL(TMP2873, ",", 1);
STRING_LITERAL(TMP2874, ")", 1);
STRING_LITERAL(TMP2875, "cannot set type", 15);
STRING_LITERAL(TMP2876, "opConv for enum", 15);
STRING_LITERAL(TMP2877, "false", 5);
STRING_LITERAL(TMP2878, "true", 4);
STRING_LITERAL(TMP2879, "cannot convert to string ", 25);
STRING_LITERAL(TMP2880, "cannot evaluate cast", 20);
STRING_LITERAL(TMP2882, "compiler/vm.nim", 15);
NIM_CONST TY84945 TMP2881 = {((NimStringDesc*) &TMP2882),
1277}
;
NIM_CONST TY84945 TMP2883 = {((NimStringDesc*) &TMP2882),
1278}
;
STRING_LITERAL(TMP2884, "request to create a NimNode of invalid kind", 43);
STRING_LITERAL(TMP2885, ":tmp", 4);
STRING_LITERAL(TMP2886, "request to create symbol of invalid kind", 40);
NIM_CONST TY84945 TMP2887 = {((NimStringDesc*) &TMP2882),
1332}
;
tctx289048* globalctx_476258;
NI olderrorcount_476407;
NI evalmacrocounter_477324;
extern tgcheap47016 gch_47044;
TNimType NTI456204; /* TFullReg */
TNimType NTI456202; /* TRegisterKind */
extern TNimType NTI5510; /* BiggestInt */
extern TNimType NTI5512; /* BiggestFloat */
extern TNimType NTI225808; /* PNode */
TNimType NTI456219; /* ptr TFullReg */
extern TNimType NTI456221; /* ptr PNode */
TNimType NTI456208; /* TStackFrame */
extern TNimType NTI225814; /* PSym */
TNimType NTI456895; /* seq[TFullReg] */
extern TNimType NTI108; /* int */
extern TNimType NTI343680; /* seq[int] */
TNimType NTI456206; /* PStackFrame */
TNimType NTI475665; /* object */
extern TNimType NTI357033; /* range -1..0(int) */
extern TNimType NTI149; /* string */
TNimType NTI475768; /* ref object */
extern TNimType NTI225816; /* TNode */
extern TNimType NTI225810; /* TNodeSeq */
extern TNimType NTI289028; /* TOpcode */
extern tnode225816* emptynode_226738;
extern NI gerrorcounter_196306;

static N_INLINE(NI, safelen_226424)(tnode225816* 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 = 0;
	}
	goto LA1;
	LA5: ;
	{
		result = (*n).kindU.S6.Sons->Sup.len;
	}
	LA1: ;
	return result;
}

static N_INLINE(NIM_BOOL, canbecycleroot_48667)(tcell44933* c) {
	NIM_BOOL result;
	result = 0;
	result = !((((*(*c).Typ).flags &(1<<((((NU8) 1))&7)))!=0));
	return result;
}

static N_INLINE(void, rtladdcycleroot_49429)(tcell44933* c) {
	{
		if (!!((((NI) ((NI)((*c).Refcount & 3))) == 3))) goto LA3;
		(*c).Refcount = (NI)((NI)((*c).Refcount & -4) | 3);
		incl_45671((&gch_47044.Cycleroots), c);
	}
	LA3: ;
}

static N_INLINE(void, incref_51025)(tcell44933* c) {
	(*c).Refcount = (NI)((NU32)((*c).Refcount) + (NU32)(8));
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = canbecycleroot_48667(c);
		if (!LOC3) goto LA4;
		rtladdcycleroot_49429(c);
	}
	LA4: ;
}

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

static N_INLINE(void, rtladdzct_50204)(tcell44933* c) {
	addzct_48617((&gch_47044.Zct), c);
}

static N_INLINE(void, decref_50604)(tcell44933* c) {
	{
		(*c).Refcount -= 8;
		if (!((NU32)((*c).Refcount) < (NU32)(8))) goto LA3;
		rtladdzct_50204(c);
	}
	goto LA1;
	LA3: ;
	{
		NIM_BOOL LOC6;
		LOC6 = 0;
		LOC6 = canbecycleroot_48667(c);
		if (!LOC6) goto LA7;
		rtladdcycleroot_49429(c);
	}
	goto LA1;
	LA7: ;
	LA1: ;
}

static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tcell44933* LOC5;
		if (!!((src == NIM_NIL))) goto LA3;
		LOC5 = 0;
		LOC5 = usrtocell_48646(src);
		incref_51025(LOC5);
	}
	LA3: ;
	{
		tcell44933* LOC10;
		if (!!(((*dest) == NIM_NIL))) goto LA8;
		LOC10 = 0;
		LOC10 = usrtocell_48646((*dest));
		decref_50604(LOC10);
	}
	LA8: ;
	(*dest) = src;
}

N_NIMCALL(void, myreset_456601)(tfullreg456204* n) {
	genericReset((void*)(&(*n)), (&NTI456204));
}

N_NIMCALL(void, setresult_456891)(vmargs289042* a, NF v) {
	TY456895* s;
	s = 0;
	s = ((TY456895*) ((*a).Slots));
	{
		if (!!((s->data[(*a).Ra].Kind == ((NU8) 3)))) goto LA3;
		myreset_456601((&s->data[(*a).Ra]));
		s->data[(*a).Ra].Kind = ((NU8) 3);
	}
	LA3: ;
	s->data[(*a).Ra].kindU.Floatval = v;
}

N_NIMCALL(NF, getfloat_457095)(vmargs289042* a, NI i) {
	NF result;
	TY456895* s;
	result = 0;
	{
		if (!!((((NI) (i)) < ((NI) ((NI32)(((NI) ((*a).Rc)) - 1)))))) goto LA3;
		raiseassert_84957(((NimStringDesc*) &TMP2730));
	}
	LA3: ;
	s = ((TY456895*) ((*a).Slots));
	{
		if (!!((s->data[(NI32)(((NI) ((NI32)(((NI) (i)) + ((NI) ((*a).Rb))))) + 1)].Kind == ((NU8) 3)))) goto LA7;
		raiseassert_84957(((NimStringDesc*) &TMP2731));
	}
	LA7: ;
	result = s->data[(NI32)(((NI) ((NI32)(((NI) (i)) + ((NI) ((*a).Rb))))) + 1)].kindU.Floatval;
	return result;
}

N_NIMCALL(void, sqrtwrapper_476090)(vmargs289042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_457095(a, 0);
	LOC2 = 0;
	LOC2 = sqrt(LOC1);
	setresult_456891(a, LOC2);
}

N_NIMCALL(void, lnwrapper_476093)(vmargs289042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_457095(a, 0);
	LOC2 = 0;
	LOC2 = log(LOC1);
	setresult_456891(a, LOC2);
}

N_NIMCALL(void, log10wrapper_476096)(vmargs289042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_457095(a, 0);
	LOC2 = 0;
	LOC2 = log10(LOC1);
	setresult_456891(a, LOC2);
}

N_NIMCALL(void, log2wrapper_476099)(vmargs289042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_457095(a, 0);
	LOC2 = 0;
	LOC2 = log2_147255(LOC1);
	setresult_456891(a, LOC2);
}

N_NIMCALL(void, expwrapper_476102)(vmargs289042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_457095(a, 0);
	LOC2 = 0;
	LOC2 = exp(LOC1);
	setresult_456891(a, LOC2);
}

N_NIMCALL(void, setresult_456855)(vmargs289042* a, NI64 v) {
	TY456895* s;
	s = 0;
	s = ((TY456895*) ((*a).Slots));
	{
		if (!!((s->data[(*a).Ra].Kind == ((NU8) 2)))) goto LA3;
		myreset_456601((&s->data[(*a).Ra]));
		s->data[(*a).Ra].Kind = ((NU8) 2);
	}
	LA3: ;
	s->data[(*a).Ra].kindU.Intval = v;
}

N_NIMCALL(void, roundwrapper_476105)(vmargs289042* a) {
	NF LOC1;
	NI LOC2;
	LOC1 = 0;
	LOC1 = getfloat_457095(a, 0);
	LOC2 = 0;
	LOC2 = lrint(LOC1);
	setresult_456855(a, ((NI64) (LOC2)));
}

N_NIMCALL(void, arccoswrapper_476108)(vmargs289042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_457095(a, 0);
	LOC2 = 0;
	LOC2 = acos(LOC1);
	setresult_456891(a, LOC2);
}

N_NIMCALL(void, arcsinwrapper_476111)(vmargs289042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_457095(a, 0);
	LOC2 = 0;
	LOC2 = asin(LOC1);
	setresult_456891(a, LOC2);
}

N_NIMCALL(void, arctanwrapper_476114)(vmargs289042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_457095(a, 0);
	LOC2 = 0;
	LOC2 = atan(LOC1);
	setresult_456891(a, LOC2);
}

N_NIMCALL(void, arctan2wrapper_476117)(vmargs289042* a) {
	NF LOC1;
	NF LOC2;
	NF LOC3;
	LOC1 = 0;
	LOC1 = getfloat_457095(a, 0);
	LOC2 = 0;
	LOC2 = getfloat_457095(a, 1);
	LOC3 = 0;
	LOC3 = atan2(LOC1, LOC2);
	setresult_456891(a, LOC3);
}

N_NIMCALL(void, coswrapper_476120)(vmargs289042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_457095(a, 0);
	LOC2 = 0;
	LOC2 = cos(LOC1);
	setresult_456891(a, LOC2);
}

N_NIMCALL(void, coshwrapper_476123)(vmargs289042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_457095(a, 0);
	LOC2 = 0;
	LOC2 = cosh(LOC1);
	setresult_456891(a, LOC2);
}

N_NIMCALL(void, hypotwrapper_476126)(vmargs289042* a) {
	NF LOC1;
	NF LOC2;
	NF LOC3;
	LOC1 = 0;
	LOC1 = getfloat_457095(a, 0);
	LOC2 = 0;
	LOC2 = getfloat_457095(a, 1);
	LOC3 = 0;
	LOC3 = hypot(LOC1, LOC2);
	setresult_456891(a, LOC3);
}

N_NIMCALL(void, sinhwrapper_476129)(vmargs289042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_457095(a, 0);
	LOC2 = 0;
	LOC2 = sinh(LOC1);
	setresult_456891(a, LOC2);
}

N_NIMCALL(void, sinwrapper_476132)(vmargs289042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_457095(a, 0);
	LOC2 = 0;
	LOC2 = sin(LOC1);
	setresult_456891(a, LOC2);
}

N_NIMCALL(void, tanwrapper_476135)(vmargs289042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_457095(a, 0);
	LOC2 = 0;
	LOC2 = tan(LOC1);
	setresult_456891(a, LOC2);
}

N_NIMCALL(void, tanhwrapper_476138)(vmargs289042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_457095(a, 0);
	LOC2 = 0;
	LOC2 = tanh(LOC1);
	setresult_456891(a, LOC2);
}

N_NIMCALL(void, powwrapper_476141)(vmargs289042* a) {
	NF LOC1;
	NF LOC2;
	NF LOC3;
	LOC1 = 0;
	LOC1 = getfloat_457095(a, 0);
	LOC2 = 0;
	LOC2 = getfloat_457095(a, 1);
	LOC3 = 0;
	LOC3 = pow(LOC1, LOC2);
	setresult_456891(a, LOC3);
}

N_NIMCALL(void, truncwrapper_476144)(vmargs289042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_457095(a, 0);
	LOC2 = 0;
	LOC2 = trunc(LOC1);
	setresult_456891(a, LOC2);
}

N_NIMCALL(void, floorwrapper_476147)(vmargs289042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_457095(a, 0);
	LOC2 = 0;
	LOC2 = floor(LOC1);
	setresult_456891(a, LOC2);
}

N_NIMCALL(void, ceilwrapper_476150)(vmargs289042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_457095(a, 0);
	LOC2 = 0;
	LOC2 = ceil(LOC1);
	setresult_456891(a, LOC2);
}

N_NIMCALL(void, fmodwrapper_476153)(vmargs289042* a) {
	NF LOC1;
	NF LOC2;
	NF LOC3;
	LOC1 = 0;
	LOC1 = getfloat_457095(a, 0);
	LOC2 = 0;
	LOC2 = getfloat_457095(a, 1);
	LOC3 = 0;
	LOC3 = fmod(LOC1, LOC2);
	setresult_456891(a, LOC3);
}

static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src) {
	{
		tcell44933* c;
		if (!!((src == NIM_NIL))) goto LA3;
		c = usrtocell_48646(src);
		(*c).Refcount += 8;
	}
	LA3: ;
	{
		tcell44933* c;
		if (!!(((*dest) == NIM_NIL))) goto LA7;
		c = usrtocell_48646((*dest));
		{
			(*c).Refcount -= 8;
			if (!((NU32)((*c).Refcount) < (NU32)(8))) goto LA11;
			rtladdzct_50204(c);
		}
		LA11: ;
	}
	LA7: ;
	(*dest) = src;
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tcell44933* c;
	c = usrtocell_48646(p);
	{
		(*c).Refcount -= 8;
		if (!((NU32)((*c).Refcount) < (NU32)(8))) goto LA3;
		rtladdzct_50204(c);
	}
	LA3: ;
}

N_NIMCALL(void, setresult_456972)(vmargs289042* a, NimStringDesc* v) {
	TY456895* s;
	NimStringDesc* LOC5;
	s = 0;
	s = ((TY456895*) ((*a).Slots));
	{
		if (!!((s->data[(*a).Ra].Kind == ((NU8) 1)))) goto LA3;
		myreset_456601((&s->data[(*a).Ra]));
		s->data[(*a).Ra].Kind = ((NU8) 1);
	}
	LA3: ;
	asgnRefNoCycle((void**) (&s->data[(*a).Ra].kindU.Node), newnode_226090(((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_457148)(vmargs289042* a, NI i) {
	NimStringDesc* result;
	TY456895* s;
	result = 0;
	{
		if (!!((((NI) (i)) < ((NI) ((NI32)(((NI) ((*a).Rc)) - 1)))))) goto LA3;
		raiseassert_84957(((NimStringDesc*) &TMP2730));
	}
	LA3: ;
	s = ((TY456895*) ((*a).Slots));
	{
		if (!!((s->data[(NI32)(((NI) ((NI32)(((NI) (i)) + ((NI) ((*a).Rb))))) + 1)].Kind == ((NU8) 1)))) goto LA7;
		raiseassert_84957(((NimStringDesc*) &TMP2776));
	}
	LA7: ;
	result = copyString((*s->data[(NI32)(((NI) ((NI32)(((NI) (i)) + ((NI) ((*a).Rb))))) + 1)].kindU.Node).kindU.S3.Strval);
	return result;
}

N_NIMCALL(void, getenvwrapper_476156)(vmargs289042* a) {
	NimStringDesc* LOC1;
	NimStringDesc* LOC2;
	LOC1 = 0;
	LOC1 = getstring_457148(a, 0);
	LOC2 = 0;
	LOC2 = getenv_120442(LOC1);
	setresult_456972(a, LOC2);
}

N_NIMCALL(void, setresult_456927)(vmargs289042* a, NIM_BOOL v_456930) {
	NI v;
	TY456895* s;
	v = v_456930;
	s = 0;
	s = ((TY456895*) ((*a).Slots));
	{
		if (!!((s->data[(*a).Ra].Kind == ((NU8) 2)))) goto LA3;
		myreset_456601((&s->data[(*a).Ra]));
		s->data[(*a).Ra].Kind = ((NU8) 2);
	}
	LA3: ;
	s->data[(*a).Ra].kindU.Intval = ((NI64) (v));
}

N_NIMCALL(void, existsenvwrapper_476159)(vmargs289042* a) {
	NimStringDesc* LOC1;
	NIM_BOOL LOC2;
	LOC1 = 0;
	LOC1 = getstring_457148(a, 0);
	LOC2 = 0;
	LOC2 = existsenv_120457(LOC1);
	setresult_456927(a, LOC2);
}

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

N_NIMCALL(void, direxistswrapper_476162)(vmargs289042* a) {
	NimStringDesc* LOC1;
	NIM_BOOL LOC2;
	LOC1 = 0;
	LOC1 = getstring_457148(a, 0);
	LOC2 = 0;
	LOC2 = direxists_116020(LOC1);
	setresult_456927(a, LOC2);
}

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

N_NIMCALL(void, fileexistswrapper_476165)(vmargs289042* a) {
	NimStringDesc* LOC1;
	NIM_BOOL LOC2;
	LOC1 = 0;
	LOC1 = getstring_457148(a, 0);
	LOC2 = 0;
	LOC2 = fileexists_116010(LOC1);
	setresult_456927(a, LOC2);
}

N_NIMCALL(void, writefilewrapper_476168)(vmargs289042* a) {
	NimStringDesc* LOC1;
	NimStringDesc* LOC2;
	LOC1 = 0;
	LOC1 = getstring_457148(a, 0);
	LOC2 = 0;
	LOC2 = getstring_457148(a, 1);
	writefile_12845(LOC1, LOC2);
}

N_NIMCALL(void, getcurrentexceptionmsgwrapper_476042)(vmargs289042* a) {
	NimStringDesc* LOC1;
	LOC1 = 0;
	{
		if (!(*a).Currentexception == 0) goto LA4;
		LOC1 = copyString(((NimStringDesc*) &TMP2723));
	}
	goto LA2;
	LA4: ;
	{
		LOC1 = copyString((*(*(*a).Currentexception).kindU.S6.Sons->data[2]).kindU.S3.Strval);
	}
	LA2: ;
	setresult_456972(a, LOC1);
}

N_NIMCALL(void, registeradditionalops_476087)(tctx289048* c) {
	vmcallback289044 LOC1;
	vmcallback289044 LOC2;
	vmcallback289044 LOC3;
	vmcallback289044 LOC4;
	vmcallback289044 LOC5;
	vmcallback289044 LOC6;
	vmcallback289044 LOC7;
	vmcallback289044 LOC8;
	vmcallback289044 LOC9;
	vmcallback289044 LOC10;
	vmcallback289044 LOC11;
	vmcallback289044 LOC12;
	vmcallback289044 LOC13;
	vmcallback289044 LOC14;
	vmcallback289044 LOC15;
	vmcallback289044 LOC16;
	vmcallback289044 LOC17;
	vmcallback289044 LOC18;
	vmcallback289044 LOC19;
	vmcallback289044 LOC20;
	vmcallback289044 LOC21;
	vmcallback289044 LOC22;
	vmcallback289044 LOC23;
	vmcallback289044 LOC24;
	vmcallback289044 LOC25;
	vmcallback289044 LOC26;
	vmcallback289044 LOC27;
	vmcallback289044 LOC28;
	memset((void*)(&LOC1), 0, sizeof(LOC1));
	LOC1.ClPrc = ((TMP2732) (sqrtwrapper_476090)); LOC1.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2726), LOC1);
	memset((void*)(&LOC2), 0, sizeof(LOC2));
	LOC2.ClPrc = ((TMP2734) (lnwrapper_476093)); LOC2.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2733), LOC2);
	memset((void*)(&LOC3), 0, sizeof(LOC3));
	LOC3.ClPrc = ((TMP2736) (log10wrapper_476096)); LOC3.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2735), LOC3);
	memset((void*)(&LOC4), 0, sizeof(LOC4));
	LOC4.ClPrc = ((TMP2738) (log2wrapper_476099)); LOC4.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2737), LOC4);
	memset((void*)(&LOC5), 0, sizeof(LOC5));
	LOC5.ClPrc = ((TMP2740) (expwrapper_476102)); LOC5.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2739), LOC5);
	memset((void*)(&LOC6), 0, sizeof(LOC6));
	LOC6.ClPrc = ((TMP2742) (roundwrapper_476105)); LOC6.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2741), LOC6);
	memset((void*)(&LOC7), 0, sizeof(LOC7));
	LOC7.ClPrc = ((TMP2744) (arccoswrapper_476108)); LOC7.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2743), LOC7);
	memset((void*)(&LOC8), 0, sizeof(LOC8));
	LOC8.ClPrc = ((TMP2746) (arcsinwrapper_476111)); LOC8.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2745), LOC8);
	memset((void*)(&LOC9), 0, sizeof(LOC9));
	LOC9.ClPrc = ((TMP2748) (arctanwrapper_476114)); LOC9.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2747), LOC9);
	memset((void*)(&LOC10), 0, sizeof(LOC10));
	LOC10.ClPrc = ((TMP2750) (arctan2wrapper_476117)); LOC10.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2749), LOC10);
	memset((void*)(&LOC11), 0, sizeof(LOC11));
	LOC11.ClPrc = ((TMP2752) (coswrapper_476120)); LOC11.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2751), LOC11);
	memset((void*)(&LOC12), 0, sizeof(LOC12));
	LOC12.ClPrc = ((TMP2754) (coshwrapper_476123)); LOC12.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2753), LOC12);
	memset((void*)(&LOC13), 0, sizeof(LOC13));
	LOC13.ClPrc = ((TMP2756) (hypotwrapper_476126)); LOC13.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2755), LOC13);
	memset((void*)(&LOC14), 0, sizeof(LOC14));
	LOC14.ClPrc = ((TMP2758) (sinhwrapper_476129)); LOC14.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2757), LOC14);
	memset((void*)(&LOC15), 0, sizeof(LOC15));
	LOC15.ClPrc = ((TMP2760) (sinwrapper_476132)); LOC15.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2759), LOC15);
	memset((void*)(&LOC16), 0, sizeof(LOC16));
	LOC16.ClPrc = ((TMP2762) (tanwrapper_476135)); LOC16.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2761), LOC16);
	memset((void*)(&LOC17), 0, sizeof(LOC17));
	LOC17.ClPrc = ((TMP2764) (tanhwrapper_476138)); LOC17.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2763), LOC17);
	memset((void*)(&LOC18), 0, sizeof(LOC18));
	LOC18.ClPrc = ((TMP2766) (powwrapper_476141)); LOC18.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2765), LOC18);
	memset((void*)(&LOC19), 0, sizeof(LOC19));
	LOC19.ClPrc = ((TMP2768) (truncwrapper_476144)); LOC19.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2767), LOC19);
	memset((void*)(&LOC20), 0, sizeof(LOC20));
	LOC20.ClPrc = ((TMP2770) (floorwrapper_476147)); LOC20.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2769), LOC20);
	memset((void*)(&LOC21), 0, sizeof(LOC21));
	LOC21.ClPrc = ((TMP2772) (ceilwrapper_476150)); LOC21.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2771), LOC21);
	memset((void*)(&LOC22), 0, sizeof(LOC22));
	LOC22.ClPrc = ((TMP2774) (fmodwrapper_476153)); LOC22.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2773), LOC22);
	memset((void*)(&LOC23), 0, sizeof(LOC23));
	LOC23.ClPrc = ((TMP2777) (getenvwrapper_476156)); LOC23.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2775), LOC23);
	memset((void*)(&LOC24), 0, sizeof(LOC24));
	LOC24.ClPrc = ((TMP2779) (existsenvwrapper_476159)); LOC24.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2778), LOC24);
	memset((void*)(&LOC25), 0, sizeof(LOC25));
	LOC25.ClPrc = ((TMP2781) (direxistswrapper_476162)); LOC25.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2780), LOC25);
	memset((void*)(&LOC26), 0, sizeof(LOC26));
	LOC26.ClPrc = ((TMP2783) (fileexistswrapper_476165)); LOC26.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2782), LOC26);
	memset((void*)(&LOC27), 0, sizeof(LOC27));
	LOC27.ClPrc = ((TMP2786) (writefilewrapper_476168)); LOC27.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2784), LOC27);
	memset((void*)(&LOC28), 0, sizeof(LOC28));
	LOC28.ClPrc = ((TMP2788) (getcurrentexceptionmsgwrapper_476042)); LOC28.ClEnv = NIM_NIL;
	registercallback_289422(c, ((NimStringDesc*) &TMP2787), LOC28);
}

N_NIMCALL(void, setupglobalctx_476263)(tsym225846* module) {
	{
		if (!globalctx_476258 == 0) goto LA3;
		asgnRef((void**) (&globalctx_476258), newctx_289279(module));
	}
	goto LA1;
	LA3: ;
	{
		refresh_289391(globalctx_476258, module);
	}
	LA1: ;
	registeradditionalops_476087(globalctx_476258);
}
N_NIMCALL(void, TMP2824)(void* p, NI op) {
	TY456895* a;
	NI LOC1;
	a = (TY456895*)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, TMP2825)(void* p, NI op) {
	tstackframe456208* a;
	a = (tstackframe456208*)p;
	nimGCvisit((void*)(*a).Prc, op);
	nimGCvisit((void*)(*a).Slots, op);
	nimGCvisit((void*)(*a).Next, op);
	nimGCvisit((void*)(*a).Safepoints, op);
}

N_NIMCALL(tnode225816*, setupmacroparam_477270)(tnode225816* x) {
	tnode225816* result;
	result = 0;
	result = x;
	{
		if (!((*result).Kind == ((NU8) 59) || (*result).Kind == ((NU8) 58))) goto LA3;
		result = (*result).kindU.S6.Sons->data[1];
	}
	LA3: ;
	result = canonvalue_444888(result);
	(*result).Flags |= ((NI16)1)<<((((NU8) 12))%(sizeof(NI16)*8));
	asgnRefNoCycle((void**) (&(*result).Typ), (*x).Typ);
	return result;
}

N_NIMCALL(tnode225816*, regtonode_458280)(tfullreg456204 x) {
	tnode225816* result;
	result = 0;
	switch (x.Kind) {
	case ((NU8) 0):
	{
		result = newnode_226090(((NU8) 1));
	}
	break;
	case ((NU8) 2):
	{
		result = newnode_226090(((NU8) 6));
		(*result).kindU.S1.Intval = x.kindU.Intval;
	}
	break;
	case ((NU8) 3):
	{
		result = newnode_226090(((NU8) 16));
		(*result).kindU.S2.Floatval = x.kindU.Floatval;
	}
	break;
	case ((NU8) 1):
	{
		result = x.kindU.Node;
	}
	break;
	case ((NU8) 4):
	{
		result = regtonode_458280((*x.kindU.Regaddr));
	}
	break;
	case ((NU8) 5):
	{
		unsureAsgnRef((void**) (&result), (*x.kindU.Nodeaddr));
	}
	break;
	}
	return result;
}
N_NIMCALL(void, TMP2827)(void* p, NI op) {
	TY475665* a;
	a = (TY475665*)p;
	nimGCvisit((void*)(*a).Error472660, op);
	nimGCvisit((void*)(*a).Error472762, op);
}

N_NIMCALL(void, createstrkeepnode_456670)(tfullreg456204* x) {
	{
		if (!(*x).kindU.Node == 0) goto LA3;
		unsureAsgnRef((void**) (&(*x).kindU.Node), newnode_226090(((NU8) 20)));
	}
	goto LA1;
	LA3: ;
	{
		if (!((*(*x).kindU.Node).Kind == ((NU8) 23))) goto LA6;
		genericReset((void*)(&(*(*x).kindU.Node)), (&NTI225816));
		(*(*x).kindU.Node).Kind = ((NU8) 20);
	}
	goto LA1;
	LA6: ;
	{
		NIM_BOOL LOC9;
		LOC9 = 0;
		LOC9 = !(((*(*x).kindU.Node).Kind >= ((NU8) 20) && (*(*x).kindU.Node).Kind <= ((NU8) 22)));
		if (LOC9) goto LA10;
		LOC9 = (((*(*x).kindU.Node).Flags &(1<<((((NU8) 4))&15)))!=0);
		LA10: ;
		if (!LOC9) goto LA11;
		unsureAsgnRef((void**) (&(*x).kindU.Node), newnode_226090(((NU8) 20)));
	}
	goto LA1;
	LA11: ;
	LA1: ;
}

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

N_NIMCALL(tnode225816*, copyvalue_457404)(tnode225816* src) {
	tnode225816* result;
	result = 0;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = (src == NIM_NIL);
		if (LOC3) goto LA4;
		LOC3 = (((*src).Flags &(1<<((((NU8) 12))&15)))!=0);
		LA4: ;
		if (!LOC3) goto LA5;
		result = src;
		goto BeforeRet;
	}
	LA5: ;
	result = newnode_226090((*src).Kind);
	(*result).Info = (*src).Info;
	asgnRefNoCycle((void**) (&(*result).Typ), (*src).Typ);
	(*result).Flags = ((*src).Flags & 4878);
	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_226249(src);
		if ((*result).kindU.S6.Sons) nimGCunrefNoCycle((*result).kindU.S6.Sons);
		(*result).kindU.S6.Sons = (tnodeseq225810*) newSeqRC1((&NTI225810), LOC14);
		{
			NI i_457783;
			NI HEX3Atmp_457813;
			NI LOC16;
			NI res_457816;
			i_457783 = 0;
			HEX3Atmp_457813 = 0;
			LOC16 = 0;
			LOC16 = sonslen_226249(src);
			HEX3Atmp_457813 = (NI32)(LOC16 - 1);
			res_457816 = 0;
			{
				while (1) {
					if (!(res_457816 <= HEX3Atmp_457813)) goto LA18;
					i_457783 = res_457816;
					asgnRefNoCycle((void**) (&(*result).kindU.S6.Sons->data[i_457783]), copyvalue_457404((*src).kindU.S6.Sons->data[i_457783]));
					res_457816 += 1;
				} LA18: ;
			}
		}
	}
	break;
	}
	BeforeRet: ;
	return result;
}

N_NIMCALL(void, asgncomplex_457833)(tfullreg456204* x, tfullreg456204 y) {
	{
		if (!!(((*x).Kind == y.Kind))) goto LA3;
		myreset_456601(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_457404(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_457236)(tfullreg456204* x, tfullreg456204 y) {
	{
		if (!!(((*x).Kind == y.Kind))) goto LA3;
		myreset_456601(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_457993)(tnode225816** n, tfullreg456204 x) {
	switch (x.Kind) {
	case ((NU8) 0):
	{
	}
	break;
	case ((NU8) 2):
	{
		(*(*n)).kindU.S1.Intval = x.kindU.Intval;
	}
	break;
	case ((NU8) 3):
	{
		(*(*n)).kindU.S2.Floatval = x.kindU.Floatval;
	}
	break;
	case ((NU8) 1):
	{
		{
			if (!(((*x.kindU.Node).Flags &(1<<((((NU8) 12))&15)))!=0)) goto LA7;
			unsureAsgnRef((void**) (&(*n)), x.kindU.Node);
		}
		goto LA5;
		LA7: ;
		{
			genericAssign((void*)(&(*(*n))), (void*)(&(*x.kindU.Node)), (&NTI225816));
		}
		LA5: ;
	}
	break;
	case ((NU8) 4):
	{
		putintonode_457993(n, (*x.kindU.Regaddr));
	}
	break;
	case ((NU8) 5):
	{
		genericAssign((void*)(&(*(*n))), (void*)(&(*(*x.kindU.Nodeaddr))), (&NTI225816));
	}
	break;
	}
}

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

static N_INLINE(NI, tolinenumber_197073)(tlineinfo195539 info) {
	NI result;
	result = 0;
	result = ((NI) (info.Line));
	return result;
}

N_NIMCALL(void, stacktraceaux_456233)(tctx289048* c, tstackframe456208* x_456236, NI pc, NI recursionlimit) {
	{
		tlineinfo195539 info;
		NimStringDesc* s;
		NI line;
		if (!!((x_456236 == NIM_NIL))) goto LA3;
		{
			NI calls;
			tstackframe456208* x;
			NimStringDesc* LOC11;
			NimStringDesc* LOC12;
			if (!(recursionlimit == 0)) goto LA7;
			calls = 0;
			x = x_456236;
			{
				while (1) {
					if (!!((x == NIM_NIL))) goto LA10;
					calls += 1;
					x = (*x).Next;
				} LA10: ;
			}
			LOC11 = 0;
			LOC12 = 0;
			LOC12 = nimIntToStr(calls);
			LOC11 = rawNewString(LOC12->Sup.len + 15);
appendString(LOC11, LOC12);
appendString(LOC11, ((NimStringDesc*) &TMP2829));
			msgwriteln_197236(LOC11);
			goto BeforeRet;
		}
		LA7: ;
		stacktraceaux_456233(c, (*x_456236).Next, (*x_456236).Comesfrom, (NI32)(recursionlimit - 1));
		info = (*c).Debug->data[pc];
		s = tofilename_197025(info.Fileindex);
		line = tolinenumber_197073(info);
		{
			NimStringDesc* LOC17;
			if (!(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_456236).Prc == NIM_NIL))) goto LA20;
			{
				NI k_456322;
				NI HEX3Atmp_456325;
				NI res_456328;
				k_456322 = 0;
				HEX3Atmp_456325 = 0;
				HEX3Atmp_456325 = ((1 >= (NI32)(25 - s->Sup.len)) ? 1 : (NI32)(25 - s->Sup.len));
				res_456328 = 1;
				{
					while (1) {
						if (!(res_456328 <= HEX3Atmp_456325)) goto LA24;
						k_456322 = res_456328;
						s = addChar(s, 32);
						res_456328 += 1;
					} LA24: ;
				}
			}
			s = resizeString(s, (*(*(*x_456236).Prc).Name).S->Sup.len + 0);
appendString(s, (*(*(*x_456236).Prc).Name).S);
		}
		LA20: ;
		msgwriteln_197236(s);
	}
	LA3: ;
	BeforeRet: ;
}

N_NIMCALL(void, stacktrace_456351)(tctx289048* c, tstackframe456208* tos, NI pc, NU16 msg, NimStringDesc* arg) {
	msgwriteln_197236(((NimStringDesc*) &TMP2828));
	stacktraceaux_456233(c, tos, pc, 100);
	{
		if (!((*c).Mode == ((NU8) 0))) goto LA3;
		globalerror_197934((*c).Debug->data[pc], msg, arg);
	}
	goto LA1;
	LA3: ;
	{
		localerror_197955((*c).Debug->data[pc], msg, arg);
	}
	LA1: ;
}

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

N_NIMCALL(tnode225816*, skipcolon_459813)(tnode225816* n) {
	tnode225816* result;
	result = 0;
	result = n;
	{
		if (!((*n).Kind == ((NU8) 34))) goto LA3;
		result = (*n).kindU.S6.Sons->data[1];
	}
	LA3: ;
	return result;
}

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)), (NI32)((*a).Sup.len * 1));
	LOC11 = (LOC13 == ((NI32) 0));
	LA12: ;
	result = LOC11;
	goto BeforeRet;
	BeforeRet: ;
	return result;
}

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

static N_INLINE(void, writeln_170205)(FILE* f_170209, NimStringDesc** x_170213, NI x_170213Len0) {
	{
		NimStringDesc* i_170226;
		NI i_170234;
		i_170226 = 0;
		i_170234 = 0;
		{
			while (1) {
				if (!(i_170234 < x_170213Len0)) goto LA3;
				i_170226 = x_170213[i_170234];
				write_12865(f_170209, i_170226);
				i_170234 += 1;
			} LA3: ;
		}
	}
	write_12865(f_170209, ((NimStringDesc*) &TMP2834));
}

N_NIMCALL(NI, compile_459696)(tctx289048* c, tsym225846* s) {
	NI result;
	result = 0;
	result = genproc_451721(c, s);
	return result;
}

static N_INLINE(NIM_BOOL, isemptytype_232990)(ttype225852* 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, putintoreg_458143)(tfullreg456204* dest, tnode225816* n) {
	switch ((*n).Kind) {
	case ((NU8) 20) ... ((NU8) 22):
	{
		NimStringDesc* LOC2;
		(*dest).Kind = ((NU8) 1);
		unsureAsgnRef((void**) (&(*dest).kindU.Node), newnode_226090(((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;
	}
}

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

N_NIMCALL(void, pushsafepoint_458397)(tstackframe456208* f, NI pc) {
	{
		if (!(*f).Safepoints == 0) goto LA3;
		if ((*f).Safepoints) nimGCunrefNoCycle((*f).Safepoints);
		(*f).Safepoints = (TY343680*) newSeqRC1((&NTI343680), 0);
	}
	LA3: ;
	(*f).Safepoints = (TY343680*) incrSeq(&((*f).Safepoints)->Sup, sizeof(NI));
	(*f).Safepoints->data[(*f).Safepoints->Sup.len-1] = pc;
}

static N_INLINE(NI, pop_458462)(TY343680** s_458470) {
	NI result;
	NI l;
	result = 0;
	l = (NI32)((*s_458470)->Sup.len - 1);
	result = (*s_458470)->data[l];
	(*s_458470) = (TY343680*) setLengthSeq(&((*s_458470))->Sup, sizeof(NI), l);
	return result;
}

N_NIMCALL(void, popsafepoint_458456)(tstackframe456208* f) {
	NI LOC1;
	LOC1 = 0;
	LOC1 = pop_458462((&(*f).Safepoints));
}

N_NIMCALL(void, cleanuponexception_458512)(tctx289048* c, tstackframe456208* tos, TY458516* Result) {
	ttype225852* raisedtype;
	tstackframe456208* f;
	raisedtype = skiptypes_230245((*(*c).Currentexceptiona).Typ, IL64(211106247256320));
	f = tos;
	{
		while (1) {
			NI pc2;
			NI nextexceptorfinally;
			NI LOC42;
			{
				while (1) {
					NIM_BOOL LOC5;
					LOC5 = 0;
					LOC5 = (*f).Safepoints == 0;
					if (LOC5) goto LA6;
					LOC5 = ((*f).Safepoints->Sup.len == 0);
					LA6: ;
					if (!LOC5) goto LA4;
					f = (*f).Next;
					{
						if (!f == 0) goto LA9;
						(*Result).Field0 = TMP2844.Field0;
						unsureAsgnRef((void**) (&(*Result).Field1), TMP2844.Field1);
						goto BeforeRet;
					}
					LA9: ;
				} LA4: ;
			}
			pc2 = (*f).Safepoints->data[((*f).Safepoints->Sup.len-1)];
			nextexceptorfinally = -1;
			{
				if (!(((NU8) ((NU32)((*c).Code->data[pc2] & ((NU32) 255)))) == ((NU8) 140))) goto LA13;
				nextexceptorfinally = (NI32)((NI32)(pc2 + ((NI) ((NU32)((NU32)((*c).Code->data[pc2]) >> (NU32)(((NU32) 16)))))) - 32768);
				pc2 += 1;
			}
			LA13: ;
			{
				while (1) {
					ttype225852* excepttype;
					if (!(((NU8) ((NU32)((*c).Code->data[pc2] & ((NU32) 255)))) == ((NU8) 140))) goto LA16;
					excepttype = skiptypes_230245((*c).Types->data[(NI32)(((NI) ((NU32)((NU32)((*c).Code->data[pc2]) >> (NU32)(((NU32) 16))))) - 32768)], IL64(211106247256320));
					{
						NI LOC19;
						LOC19 = 0;
						LOC19 = inheritancediff_270588(excepttype, raisedtype);
						if (!(LOC19 <= 0)) goto LA20;
						asgnRefNoCycle((void**) (&(*c).Currentexceptionb), (*c).Currentexceptiona);
						asgnRefNoCycle((void**) (&(*c).Currentexceptiona), NIM_NIL);
						{
							while (1) {
								if (!(((NU8) ((NU32)((*c).Code->data[pc2] & ((NU32) 255)))) == ((NU8) 140))) goto LA23;
								pc2 += 1;
							} LA23: ;
						}
						(*Result).Field0 = pc2;
						unsureAsgnRef((void**) (&(*Result).Field1), f);
						goto BeforeRet;
					}
					LA20: ;
					pc2 += 1;
					{
						NIM_BOOL LOC26;
						LOC26 = 0;
						LOC26 = !((((NU8) ((NU32)((*c).Code->data[pc2] & ((NU32) 255)))) == ((NU8) 140)));
						if (!(LOC26)) goto LA27;
						LOC26 = (0 <= nextexceptorfinally);
						LA27: ;
						if (!LOC26) goto LA28;
						pc2 = (NI32)(nextexceptorfinally + 1);
						{
							if (!(((NU8) ((NU32)((*c).Code->data[pc2] & ((NU32) 255)))) == ((NU8) 140))) goto LA32;
							nextexceptorfinally = (NI32)((NI32)(pc2 + ((NI) ((NU32)((NU32)((*c).Code->data[pc2]) >> (NU32)(((NU32) 16)))))) - 32768);
						}
						LA32: ;
					}
					LA28: ;
				} LA16: ;
			}
			{
				if (!(0 <= nextexceptorfinally)) goto LA36;
				pc2 = nextexceptorfinally;
			}
			LA36: ;
			{
				if (!(((NU8) ((NU32)((*c).Code->data[pc2] & ((NU32) 255)))) == ((NU8) 141))) goto LA40;
				(*Result).Field0 = pc2;
				unsureAsgnRef((void**) (&(*Result).Field1), f);
				goto BeforeRet;
			}
			LA40: ;
			LOC42 = 0;
			LOC42 = pop_458462((&(*f).Safepoints));
		}
	}
	BeforeRet: ;
}

N_NIMCALL(void, bailout_456373)(tctx289048* c, tstackframe456208* tos) {
	stacktrace_456351(c, tos, (*c).Exceptioninstr, ((NU16) 214), (*(*(*c).Currentexceptiona).kindU.S6.Sons->data[2]).kindU.S3.Strval);
}

N_CLOSURE(void, HEX3Aanonymous_472689)(tlineinfo195539 info, NU16 msg, NimStringDesc* arg, void* ClEnv) {
	TY475665* HEX3Aenvp_475743;
	HEX3Aenvp_475743 = (TY475665*) ClEnv;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = (*HEX3Aenvp_475743).Error472660 == 0;
		if (!(LOC3)) goto LA4;
		LOC3 = (msg <= ((NU16) 229));
		LA4: ;
		if (!LOC3) goto LA5;
		asgnRefNoCycle((void**) (&(*HEX3Aenvp_475743).Error472660), formatmsg_197757(info, msg, arg));
	}
	LA5: ;
}

N_CLOSURE(void, HEX3Aanonymous_472791)(tlineinfo195539 info, NU16 msg, NimStringDesc* arg, void* ClEnv) {
	TY475665* HEX3Aenvp_475749;
	HEX3Aenvp_475749 = (TY475665*) ClEnv;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = (*HEX3Aenvp_475749).Error472762 == 0;
		if (!(LOC3)) goto LA4;
		LOC3 = (msg <= ((NU16) 229));
		LA4: ;
		if (!LOC3) goto LA5;
		asgnRefNoCycle((void**) (&(*HEX3Aenvp_475749).Error472762), formatmsg_197757(info, msg, arg));
	}
	LA5: ;
}

static N_INLINE(NimStringDesc*, tofilelinecol_197103)(tlineinfo195539 info) {
	NimStringDesc* result;
	NimStringDesc* LOC1;
	NimStringDesc* LOC2;
	NimStringDesc* LOC3;
	NimStringDesc* LOC4;
	result = 0;
	LOC1 = 0;
	LOC2 = 0;
	LOC2 = tofilename_197025(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*) &TMP2872));
appendString(LOC1, LOC3);
appendString(LOC1, ((NimStringDesc*) &TMP2873));
appendString(LOC1, LOC4);
appendString(LOC1, ((NimStringDesc*) &TMP2874));
	result = LOC1;
	return result;
}

N_NIMCALL(NIM_BOOL, opconv_458906)(tfullreg456204* dest, tfullreg456204 src, ttype225852* desttyp, ttype225852* srctyp) {
	NIM_BOOL result;
	result = 0;
	{
		ttype225852* styp;
		if (!((*desttyp).Kind == ((NU8) 28))) goto LA3;
		{
			if (!!(((*dest).Kind == ((NU8) 1)))) goto LA7;
			myreset_456601(dest);
			(*dest).Kind = ((NU8) 1);
		}
		LA7: ;
		unsureAsgnRef((void**) (&(*dest).kindU.Node), newnode_226090(((NU8) 20)));
		styp = skiptypes_230245(srctyp, IL64(211106233624832));
		switch ((*styp).Kind) {
		case ((NU8) 14):
		{
			tnode225816* n;
			NI x;
			n = (*styp).N;
			x = ((NI) (src.kindU.Intval));
			{
				NIM_BOOL LOC12;
				NI LOC13;
				tsym225846* f;
				LOC12 = 0;
				LOC13 = 0;
				LOC13 = len_226364(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: ;
			{
				{
					NI i_459075;
					NI HEX3Atmp_459673;
					NI LOC26;
					NI res_459676;
					i_459075 = 0;
					HEX3Atmp_459673 = 0;
					LOC26 = 0;
					LOC26 = len_226364(n);
					HEX3Atmp_459673 = (LOC26 - 1);
					res_459676 = 0;
					{
						while (1) {
							tsym225846* f;
							if (!(res_459676 <= HEX3Atmp_459673)) goto LA28;
							i_459075 = res_459676;
							{
								if (!!(((*(*n).kindU.S6.Sons->data[i_459075]).Kind == ((NU8) 3)))) goto LA31;
								internalerror_198006(((NimStringDesc*) &TMP2876));
							}
							LA31: ;
							f = (*(*n).kindU.S6.Sons->data[i_459075]).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_459676 += 1;
						} LA28: ;
					}
				}
				internalerror_198006(((NimStringDesc*) &TMP2876));
			}
			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_6201(((NU64) (src.kindU.Intval))));
		}
		break;
		case ((NU8) 1):
		{
			{
				NimStringDesc* LOC51;
				if (!(src.kindU.Intval == IL64(0))) goto LA49;
				LOC51 = 0;
				LOC51 = (*(*dest).kindU.Node).kindU.S3.Strval; (*(*dest).kindU.Node).kindU.S3.Strval = copyStringRC1(((NimStringDesc*) &TMP2877));
				if (LOC51) nimGCunrefNoCycle(LOC51);
			}
			goto LA47;
			LA49: ;
			{
				NimStringDesc* LOC53;
				LOC53 = 0;
				LOC53 = (*(*dest).kindU.Node).kindU.S3.Strval; (*(*dest).kindU.Node).kindU.S3.Strval = copyStringRC1(((NimStringDesc*) &TMP2878));
				if (LOC53) nimGCunrefNoCycle(LOC53);
			}
			LA47: ;
		}
		break;
		case ((NU8) 36) ... ((NU8) 39):
		{
			asgnRefNoCycle((void**) (&(*(*dest).kindU.Node).kindU.S3.Strval), nimFloatToStr(src.kindU.Floatval));
		}
		break;
		case ((NU8) 28):
		case ((NU8) 29):
		{
			NimStringDesc* LOC56;
			LOC56 = 0;
			LOC56 = (*(*dest).kindU.Node).kindU.S3.Strval; (*(*dest).kindU.Node).kindU.S3.Strval = copyStringRC1((*src.kindU.Node).kindU.S3.Strval);
			if (LOC56) nimGCunrefNoCycle(LOC56);
		}
		break;
		case ((NU8) 2):
		{
			asgnRefNoCycle((void**) (&(*(*dest).kindU.Node).kindU.S3.Strval), nimCharToStr(((NIM_CHAR) (((NI) (src.kindU.Intval))))));
		}
		break;
		default:
		{
			NimStringDesc* LOC59;
			NimStringDesc* LOC60;
			LOC59 = 0;
			LOC60 = 0;
			LOC60 = typetostring_263031(desttyp, ((NU8) 0));
			LOC59 = rawNewString(LOC60->Sup.len + 25);
appendString(LOC59, ((NimStringDesc*) &TMP2879));
appendString(LOC59, LOC60);
			internalerror_198006(LOC59);
		}
		break;
		}
	}
	goto LA1;
	LA3: ;
	{
		ttype225852* LOC62;
		LOC62 = 0;
		LOC62 = skiptypes_230245(desttyp, IL64(211106233624832));
		switch ((*LOC62).Kind) {
		case ((NU8) 31) ... ((NU8) 35):
		{
			ttype225852* LOC68;
			{
				if (!!(((*dest).Kind == ((NU8) 2)))) goto LA66;
				myreset_456601(dest);
				(*dest).Kind = ((NU8) 2);
			}
			LA66: ;
			LOC68 = 0;
			LOC68 = skiptypes_230245(srctyp, IL64(211106233624832));
			switch ((*LOC68).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 LOC73;
				NI64 LOC74;
				NI64 LOC76;
				LOC73 = 0;
				LOC74 = 0;
				LOC74 = firstord_263004(desttyp);
				LOC73 = ((*dest).kindU.Intval < LOC74);
				if (LOC73) goto LA75;
				LOC76 = 0;
				LOC76 = lastord_263010(desttyp);
				LOC73 = (LOC76 < (*dest).kindU.Intval);
				LA75: ;
				if (!LOC73) goto LA77;
				result = NIM_TRUE;
				goto BeforeRet;
			}
			LA77: ;
		}
		break;
		case ((NU8) 40) ... ((NU8) 44):
		{
			ttype225852* LOC84;
			{
				if (!!(((*dest).Kind == ((NU8) 2)))) goto LA82;
				myreset_456601(dest);
				(*dest).Kind = ((NU8) 2);
			}
			LA82: ;
			LOC84 = 0;
			LOC84 = skiptypes_230245(srctyp, IL64(211106233624832));
			switch ((*LOC84).Kind) {
			case ((NU8) 36) ... ((NU8) 38):
			{
				(*dest).kindU.Intval = ((NI64) (((NI) (src.kindU.Floatval))));
			}
			break;
			default:
			{
				(*dest).kindU.Intval = (NI64)(src.kindU.Intval & (NI64)((NI64)((NU64)(IL64(1)) << (NU64)((NI64)((*desttyp).Size * IL64(8)))) - IL64(1)));
			}
			break;
			}
		}
		break;
		case ((NU8) 36) ... ((NU8) 38):
		{
			ttype225852* LOC92;
			{
				if (!!(((*dest).Kind == ((NU8) 3)))) goto LA90;
				myreset_456601(dest);
				(*dest).Kind = ((NU8) 3);
			}
			LA90: ;
			LOC92 = 0;
			LOC92 = skiptypes_230245(srctyp, IL64(211106233624832));
			switch ((*LOC92).Kind) {
			case ((NU8) 31) ... ((NU8) 35):
			case ((NU8) 40) ... ((NU8) 44):
			case ((NU8) 14):
			case ((NU8) 1):
			case ((NU8) 2):
			{
				(*dest).kindU.Floatval = ((double) (((NI) (src.kindU.Intval))));
			}
			break;
			default:
			{
				(*dest).kindU.Floatval = src.kindU.Floatval;
			}
			break;
			}
		}
		break;
		default:
		{
			asgncomplex_457833(dest, src);
		}
		break;
		}
	}
	LA1: ;
	BeforeRet: ;
	return result;
}

N_NIMCALL(void, rawexecute_459846)(tctx289048* c, NI start, tstackframe456208* tos_459850, tfullreg456204* Result) {
	NI pc;
	tstackframe456208* tos;
	TY456895* regs;
	pc = start;
	tos = tos_459850;
	regs = 0;
	regs = (*tos).Slots;
	{
		while (1) {
			TY475665* HEX3Aenv_475767;
			NU32 instr;
			NI ra_459876;
			HEX3Aenv_475767 = 0;
			HEX3Aenv_475767 = (TY475665*) newObj((&NTI475768), sizeof(TY475665));
			instr = (*c).Code->data[pc];
			ra_459876 = ((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_459876]), (&NTI456204));
				goto BeforeRet;
			}
			break;
			case ((NU8) 1):
			{
				tfullreg456204 retval;
				pc = (*tos).Comesfrom;
				tos = (*tos).Next;
				memset((void*)(&retval), 0, sizeof(retval));
				memcpy((void*)(&retval), (NIM_CONST void*)(&regs->data[0]), sizeof(retval));
				{
					if (!tos == 0) goto LA7;
					genericAssign((void*)Result, (void*)(&retval), (&NTI456204));
					goto BeforeRet;
				}
				LA7: ;
				regs = (*tos).Slots;
				{
					if (!(((NU8) ((NU32)((*c).Code->data[pc] & ((NU32) 255)))) == ((NU8) 128))) goto LA11;
					genericAssign((void*)(&regs->data[((NI) ((NU32)((NU32)((NU32)((*c).Code->data[pc]) >> (NU32)(((NU32) 8))) & ((NU32) 255))))]), (void*)(&retval), (&NTI456204));
				}
				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_459876].Kind == ((NU8) 2)))) goto LA18;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA18: ;
				regs->data[ra_459876].kindU.Intval = regs->data[rb].kindU.Intval;
			}
			break;
			case ((NU8) 5):
			{
				NI rb;
				NimStringDesc* LOC25;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA23;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA23: ;
				createstrkeepnode_456670((&regs->data[ra_459876]));
				LOC25 = 0;
				LOC25 = (*regs->data[ra_459876].kindU.Node).kindU.S3.Strval; (*regs->data[ra_459876].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_459876].Kind == ((NU8) 3)))) goto LA29;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 3);
				}
				LA29: ;
				regs->data[ra_459876].kindU.Floatval = regs->data[rb].kindU.Floatval;
			}
			break;
			case ((NU8) 8):
			{
				asgncomplex_457833((&regs->data[ra_459876]), regs->data[((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))))]);
			}
			break;
			case ((NU8) 7):
			{
				moveconst_457236((&regs->data[ra_459876]), 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_459876].Kind == ((NU8) 1)))) goto LA36;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA36: ;
				putintonode_457993(&regs->data[ra_459876].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]), (&NTI456204));
				}
				goto LA39;
				LA41: ;
				{
					tnode225816* nb;
					nb = regs->data[rb].kindU.Node;
					switch ((*nb).Kind) {
					case ((NU8) 5) ... ((NU8) 10):
					{
						{
							if (!!((regs->data[ra].Kind == ((NU8) 2)))) goto LA47;
							myreset_456601((&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_456601((&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_456601((&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;
				tnode225816* src;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA62;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA62: ;
				{
					if (!(IL64(2147483647) < regs->data[rc].kindU.Intval)) goto LA66;
					stacktrace_456351(c, tos, pc, ((NU16) 82), ((NimStringDesc*) &TMP2723));
				}
				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_226364(src);
					LOC70 = ((NU32)(idx) < (NU32)(LOC72));
					LA71: ;
					if (!LOC70) goto LA73;
					asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), (*src).kindU.S6.Sons->data[idx]);
				}
				goto LA68;
				LA73: ;
				{
					stacktrace_456351(c, tos, pc, ((NU16) 82), ((NimStringDesc*) &TMP2723));
				}
				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_459876].Kind == ((NU8) 2)))) goto LA79;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].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_456351(c, tos, pc, ((NU16) 81), ((NimStringDesc*) &TMP2723));
				}
				goto LA81;
				LA83: ;
				{
					if (!((NU32)(idx) <= (NU32)(s->Sup.len))) goto LA86;
					regs->data[ra_459876].kindU.Intval = ((NI64) (((NU8)(s->data[idx]))));
				}
				goto LA81;
				LA86: ;
				{
					stacktrace_456351(c, tos, pc, ((NU16) 82), ((NimStringDesc*) &TMP2723));
				}
				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_459876].Kind == ((NU8) 1)))) goto LA92;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA92: ;
				idx = ((NI) (regs->data[rb].kindU.Intval));
				{
					NI LOC96;
					LOC96 = 0;
					LOC96 = len_226364(regs->data[ra_459876].kindU.Node);
					if (!((NU32)(idx) < (NU32)(LOC96))) goto LA97;
					putintonode_457993(&(*regs->data[ra_459876].kindU.Node).kindU.S6.Sons->data[idx], regs->data[rc]);
				}
				goto LA94;
				LA97: ;
				{
					stacktrace_456351(c, tos, pc, ((NU16) 82), ((NimStringDesc*) &TMP2723));
				}
				LA94: ;
			}
			break;
			case ((NU8) 13):
			{
				NI rb;
				NI rc;
				tnode225816* src;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA103;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA103: ;
				src = regs->data[rb].kindU.Node;
				{
					tnode225816* n;
					if (!!(((*src).Kind >= ((NU8) 1) && (*src).Kind <= ((NU8) 23)))) goto LA107;
					n = skipcolon_459813((*src).kindU.S6.Sons->data[rc]);
					asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), n);
				}
				goto LA105;
				LA107: ;
				{
					stacktrace_456351(c, tos, pc, ((NU16) 81), ((NimStringDesc*) &TMP2723));
				}
				LA105: ;
			}
			break;
			case ((NU8) 14):
			{
				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_459876].Kind == ((NU8) 1)))) goto LA113;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA113: ;
				putintonode_457993(&(*regs->data[ra_459876].kindU.Node).kindU.S6.Sons->data[rb], regs->data[rc]);
			}
			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_459876].Kind == ((NU8) 1)))) goto LA118;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA118: ;
				idx = ((NI) (regs->data[rb].kindU.Intval));
				{
					if (!((NU32)(idx) < (NU32)((*regs->data[ra_459876].kindU.Node).kindU.S3.Strval->Sup.len))) goto LA122;
					(*regs->data[ra_459876].kindU.Node).kindU.S3.Strval->data[idx] = ((NIM_CHAR) (((NI) (regs->data[rc].kindU.Intval))));
				}
				goto LA120;
				LA122: ;
				{
					stacktrace_456351(c, tos, pc, ((NU16) 82), ((NimStringDesc*) &TMP2723));
				}
				LA120: ;
			}
			break;
			case ((NU8) 15):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 4)))) goto LA128;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 4);
				}
				LA128: ;
				regs->data[ra_459876].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_459876].Kind == ((NU8) 5)))) goto LA133;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 5);
				}
				LA133: ;
				regs->data[ra_459876].kindU.Nodeaddr = &regs->data[rb].kindU.Node;
			}
			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 LA139;
						myreset_456601((&regs->data[ra]));
						regs->data[ra].Kind = ((NU8) 1);
					}
					LA139: ;
					unsureAsgnRef((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 LA144;
						myreset_456601((&regs->data[ra]));
						regs->data[ra].Kind = (*regs->data[rb].kindU.Regaddr).Kind;
					}
					LA144: ;
					genericAssign((void*)(&regs->data[ra]), (void*)(&(*regs->data[rb].kindU.Regaddr)), (&NTI456204));
				}
				break;
				case ((NU8) 1):
				{
					{
						if (!((*regs->data[rb].kindU.Node).Kind == ((NU8) 23))) goto LA149;
						stacktrace_456351(c, tos, pc, ((NU16) 81), ((NimStringDesc*) &TMP2723));
					}
					LA149: ;
					asgnRefNoCycle((void**) (&regs->data[ra].kindU.Node), (*regs->data[rb].kindU.Node).kindU.S6.Sons->data[0]);
				}
				break;
				default:
				{
					stacktrace_456351(c, tos, pc, ((NU16) 81), ((NimStringDesc*) &TMP2723));
				}
				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_457993(regs->data[ra].kindU.Nodeaddr, regs->data[rc]);
				}
				break;
				case ((NU8) 4):
				{
					genericAssign((void*)(&(*regs->data[ra].kindU.Regaddr)), (void*)(&regs->data[rc]), (&NTI456204));
				}
				break;
				case ((NU8) 1):
				{
					putintonode_457993(&regs->data[ra].kindU.Node, regs->data[rc]);
				}
				break;
				default:
				{
					stacktrace_456351(c, tos, pc, ((NU16) 81), ((NimStringDesc*) &TMP2723));
				}
				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_459876].Kind == ((NU8) 2)))) goto LA160;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA160: ;
				bval = regs->data[rb].kindU.Intval;
				cval = regs->data[rc].kindU.Intval;
				sum = (NI64)((NU64)(bval) + (NU64)(cval));
				{
					NIM_BOOL LOC164;
					LOC164 = 0;
					LOC164 = (IL64(0) <= (NI64)(sum ^ bval));
					if (LOC164) goto LA165;
					LOC164 = (IL64(0) <= (NI64)(sum ^ cval));
					LA165: ;
					if (!LOC164) goto LA166;
					regs->data[ra_459876].kindU.Intval = sum;
				}
				goto LA162;
				LA166: ;
				{
					stacktrace_456351(c, tos, pc, ((NU16) 76), ((NimStringDesc*) &TMP2723));
				}
				LA162: ;
			}
			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 = (NI32)(((NI) (((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24))))))) - 128);
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 2)))) goto LA172;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA172: ;
				bval = regs->data[rb].kindU.Intval;
				cval = imm;
				sum = (NI64)((NU64)(bval) + (NU64)(((NI64) (cval))));
				{
					NIM_BOOL LOC176;
					LOC176 = 0;
					LOC176 = (IL64(0) <= (NI64)(sum ^ bval));
					if (LOC176) goto LA177;
					LOC176 = (IL64(0) <= (NI64)(sum ^ ((NI64) (cval))));
					LA177: ;
					if (!LOC176) goto LA178;
					regs->data[ra_459876].kindU.Intval = sum;
				}
				goto LA174;
				LA178: ;
				{
					stacktrace_456351(c, tos, pc, ((NU16) 76), ((NimStringDesc*) &TMP2723));
				}
				LA174: ;
			}
			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_459876].Kind == ((NU8) 2)))) goto LA184;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA184: ;
				bval = regs->data[rb].kindU.Intval;
				cval = regs->data[rc].kindU.Intval;
				diff = (NI64)((NU64)(bval) - (NU64)(cval));
				{
					NIM_BOOL LOC188;
					LOC188 = 0;
					LOC188 = (IL64(0) <= (NI64)(diff ^ bval));
					if (LOC188) goto LA189;
					LOC188 = (IL64(0) <= (NI64)(diff ^ (NI64)((NU64) ~(cval))));
					LA189: ;
					if (!LOC188) goto LA190;
					regs->data[ra_459876].kindU.Intval = diff;
				}
				goto LA186;
				LA190: ;
				{
					stacktrace_456351(c, tos, pc, ((NU16) 76), ((NimStringDesc*) &TMP2723));
				}
				LA186: ;
			}
			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 = (NI32)(((NI) (((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24))))))) - 128);
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 2)))) goto LA196;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA196: ;
				bval = regs->data[rb].kindU.Intval;
				cval = imm;
				diff = (NI64)((NU64)(bval) - (NU64)(((NI64) (cval))));
				{
					NIM_BOOL LOC200;
					LOC200 = 0;
					LOC200 = (IL64(0) <= (NI64)(diff ^ bval));
					if (LOC200) goto LA201;
					LOC200 = (IL64(0) <= (NI64)(diff ^ ((NI64) ((NI)((NU32) ~(((NI) (cval))))))));
					LA201: ;
					if (!LOC200) goto LA202;
					regs->data[ra_459876].kindU.Intval = diff;
				}
				goto LA198;
				LA202: ;
				{
					stacktrace_456351(c, tos, pc, ((NU16) 76), ((NimStringDesc*) &TMP2723));
				}
				LA198: ;
			}
			break;
			case ((NU8) 25):
			{
				NI rb;
				NI imm;
				NI LOC210;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				imm = (NI32)(((NI) (((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24))))))) - 128);
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 2)))) goto LA208;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA208: ;
				LOC210 = 0;
				LOC210 = safelen_226424(regs->data[rb].kindU.Node);
				regs->data[ra_459876].kindU.Intval = ((NI64) ((NI32)(LOC210 - ((NI) (imm)))));
			}
			break;
			case ((NU8) 26):
			{
				NI rb;
				NI imm;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				imm = (NI32)(((NI) (((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24))))))) - 128);
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 2)))) goto LA214;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA214: ;
				regs->data[ra_459876].kindU.Intval = ((NI64) ((NI32)((*regs->data[rb].kindU.Node).kindU.S3.Strval->Sup.len - ((NI) (imm)))));
			}
			break;
			case ((NU8) 27):
			{
				NI rb;
				tnode225816* b;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA219;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA219: ;
				b = regtonode_458280(regs->data[rb]);
				{
					NIM_BOOL LOC223;
					tnode225816* LOC226;
					LOC223 = 0;
					LOC223 = inset_284019(regs->data[ra_459876].kindU.Node, b);
					if (!!(LOC223)) goto LA224;
					LOC226 = 0;
					LOC226 = copytree_226329(b);
					addson_226287(regs->data[ra_459876].kindU.Node, LOC226);
				}
				LA224: ;
			}
			break;
			case ((NU8) 28):
			{
				NI rb;
				NI rc;
				tnode225816* r;
				tnode225816* LOC232;
				tnode225816* LOC233;
				tnode225816* LOC234;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA230;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA230: ;
				r = newnode_226090(((NU8) 44));
				LOC232 = 0;
				LOC232 = regtonode_458280(regs->data[rb]);
				add_226498(r, LOC232);
				LOC233 = 0;
				LOC233 = regtonode_458280(regs->data[rc]);
				add_226498(r, LOC233);
				LOC234 = 0;
				LOC234 = copytree_226329(r);
				addson_226287(regs->data[ra_459876].kindU.Node, LOC234);
			}
			break;
			case ((NU8) 29):
			{
				NI rb;
				tnode225816* b;
				tnode225816* LOC240;
				tnode225816* r;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA238;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA238: ;
				b = newnodeit_226145(((NU8) 39), (*regs->data[rb].kindU.Node).Info, (*regs->data[rb].kindU.Node).Typ);
				LOC240 = 0;
				LOC240 = regtonode_458280(regs->data[rb]);
				addson_226287(b, LOC240);
				r = diffsets_284054(regs->data[ra_459876].kindU.Node, b);
				discardsons_226358(regs->data[ra_459876].kindU.Node);
				{
					NI i_462857;
					NI HEX3Atmp_475322;
					NI LOC242;
					NI res_475325;
					i_462857 = 0;
					HEX3Atmp_475322 = 0;
					LOC242 = 0;
					LOC242 = sonslen_226249(r);
					HEX3Atmp_475322 = (NI32)(LOC242 - 1);
					res_475325 = 0;
					{
						while (1) {
							if (!(res_475325 <= HEX3Atmp_475322)) goto LA244;
							i_462857 = res_475325;
							addson_226287(regs->data[ra_459876].kindU.Node, (*r).kindU.S6.Sons->data[i_462857]);
							res_475325 += 1;
						} LA244: ;
					}
				}
			}
			break;
			case ((NU8) 30):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 2)))) goto LA248;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA248: ;
				regs->data[ra_459876].kindU.Intval = cardset_284089(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_459876].Kind == ((NU8) 2)))) goto LA253;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA253: ;
				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 LA257;
					regs->data[ra_459876].kindU.Intval = product;
				}
				goto LA255;
				LA257: ;
				{
					if (!(((NF)(3.2000000000000000e+01) * (NF)((((NF)(resasfloat) - (NF)(floatprod)) > 0? (((NF)(resasfloat) - (NF)(floatprod))) : -(((NF)(resasfloat) - (NF)(floatprod)))))) <= (floatprod > 0? (floatprod) : -(floatprod)))) goto LA260;
					regs->data[ra_459876].kindU.Intval = product;
				}
				goto LA255;
				LA260: ;
				{
					stacktrace_456351(c, tos, pc, ((NU16) 76), ((NimStringDesc*) &TMP2723));
				}
				LA255: ;
			}
			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_459876].Kind == ((NU8) 2)))) goto LA266;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA266: ;
				{
					if (!(regs->data[rc].kindU.Intval == IL64(0))) goto LA270;
					stacktrace_456351(c, tos, pc, ((NU16) 73), ((NimStringDesc*) &TMP2723));
				}
				goto LA268;
				LA270: ;
				{
					regs->data[ra_459876].kindU.Intval = (NI64)(regs->data[rb].kindU.Intval / regs->data[rc].kindU.Intval);
				}
				LA268: ;
			}
			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_459876].Kind == ((NU8) 2)))) goto LA276;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA276: ;
				{
					if (!(regs->data[rc].kindU.Intval == IL64(0))) goto LA280;
					stacktrace_456351(c, tos, pc, ((NU16) 73), ((NimStringDesc*) &TMP2723));
				}
				goto LA278;
				LA280: ;
				{
					regs->data[ra_459876].kindU.Intval = (NI64)(regs->data[rb].kindU.Intval % regs->data[rc].kindU.Intval);
				}
				LA278: ;
			}
			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_459876].Kind == ((NU8) 3)))) goto LA286;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 3);
				}
				LA286: ;
				regs->data[ra_459876].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_459876].Kind == ((NU8) 3)))) goto LA291;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 3);
				}
				LA291: ;
				regs->data[ra_459876].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_459876].Kind == ((NU8) 3)))) goto LA296;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 3);
				}
				LA296: ;
				regs->data[ra_459876].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_459876].Kind == ((NU8) 3)))) goto LA301;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 3);
				}
				LA301: ;
				regs->data[ra_459876].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_459876].Kind == ((NU8) 2)))) goto LA306;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA306: ;
				regs->data[ra_459876].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_459876].Kind == ((NU8) 2)))) goto LA311;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA311: ;
				regs->data[ra_459876].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_459876].Kind == ((NU8) 2)))) goto LA316;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA316: ;
				regs->data[ra_459876].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_459876].Kind == ((NU8) 2)))) goto LA321;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA321: ;
				regs->data[ra_459876].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_459876].Kind == ((NU8) 2)))) goto LA326;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA326: ;
				regs->data[ra_459876].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_459876].Kind == ((NU8) 2)))) goto LA331;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA331: ;
				regs->data[ra_459876].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_459876].Kind == ((NU8) 2)))) goto LA336;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA336: ;
				regs->data[ra_459876].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_459876].Kind == ((NU8) 2)))) goto LA341;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA341: ;
				regs->data[ra_459876].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_459876].Kind == ((NU8) 2)))) goto LA346;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA346: ;
				regs->data[ra_459876].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_459876].Kind == ((NU8) 2)))) goto LA351;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA351: ;
				regs->data[ra_459876].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_459876].Kind == ((NU8) 2)))) goto LA356;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA356: ;
				regs->data[ra_459876].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_459876].Kind == ((NU8) 2)))) goto LA361;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA361: ;
				regs->data[ra_459876].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_459876].Kind == ((NU8) 2)))) goto LA366;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA366: ;
				regs->data[ra_459876].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_459876].Kind == ((NU8) 2)))) goto LA371;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA371: ;
				regs->data[ra_459876].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_459876].Kind == ((NU8) 2)))) goto LA376;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA376: ;
				regs->data[ra_459876].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_459876].Kind == ((NU8) 2)))) goto LA381;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA381: ;
				regs->data[ra_459876].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_459876].Kind == ((NU8) 2)))) goto LA386;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA386: ;
				regs->data[ra_459876].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_459876].Kind == ((NU8) 2)))) goto LA391;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA391: ;
				regs->data[ra_459876].kindU.Intval = ((NI64) (((NU64)(regs->data[rb].kindU.Intval) < (NU64)(regs->data[rc].kindU.Intval))));
			}
			break;
			case ((NU8) 56):
			case ((NU8) 57):
			{
				NI rb;
				NI rc;
				NIM_BOOL LOC398;
				NIM_BOOL LOC399;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 2)))) goto LA396;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA396: ;
				LOC398 = 0;
				LOC399 = 0;
				LOC399 = ((*regs->data[rb].kindU.Node).Kind == ((NU8) 23));
				if (!(LOC399)) goto LA400;
				LOC399 = ((*regs->data[rc].kindU.Node).Kind == ((NU8) 23));
				LA400: ;
				LOC398 = LOC399;
				if (LOC398) goto LA401;
				LOC398 = (regs->data[rb].kindU.Node == regs->data[rc].kindU.Node);
				LA401: ;
				regs->data[ra_459876].kindU.Intval = ((NI64) (LOC398));
			}
			break;
			case ((NU8) 58):
			{
				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_459876].Kind == ((NU8) 2)))) goto LA405;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA405: ;
				regs->data[ra_459876].kindU.Intval = ((NI64) (!((regs->data[rb].kindU.Intval == regs->data[rc].kindU.Intval))));
			}
			break;
			case ((NU8) 59):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 2)))) goto LA410;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA410: ;
				regs->data[ra_459876].kindU.Intval = (NI64)(IL64(1) - regs->data[rb].kindU.Intval);
			}
			break;
			case ((NU8) 60):
			{
				NI rb;
				NI64 val;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 2)))) goto LA415;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA415: ;
				val = regs->data[rb].kindU.Intval;
				{
					if (!!((val == (IL64(-9223372036854775807) - IL64(1))))) goto LA419;
					regs->data[ra_459876].kindU.Intval = -(val);
				}
				goto LA417;
				LA419: ;
				{
					stacktrace_456351(c, tos, pc, ((NU16) 76), ((NimStringDesc*) &TMP2723));
				}
				LA417: ;
			}
			break;
			case ((NU8) 61):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 3)))) goto LA425;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 3);
				}
				LA425: ;
				regs->data[ra_459876].kindU.Floatval = -(regs->data[rb].kindU.Floatval);
			}
			break;
			case ((NU8) 62):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 2)))) goto LA430;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA430: ;
				regs->data[ra_459876].kindU.Intval = (NI64)((NU64) ~(regs->data[rb].kindU.Intval));
			}
			break;
			case ((NU8) 63):
			{
				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_459876].Kind == ((NU8) 2)))) goto LA435;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA435: ;
				regs->data[ra_459876].kindU.Intval = ((NI64) (eqStrings((*regs->data[rb].kindU.Node).kindU.S3.Strval, (*regs->data[rc].kindU.Node).kindU.S3.Strval)));
			}
			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_459876].Kind == ((NU8) 2)))) goto LA440;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA440: ;
				regs->data[ra_459876].kindU.Intval = ((NI64) ((cmpStrings((*regs->data[rb].kindU.Node).kindU.S3.Strval, (*regs->data[rc].kindU.Node).kindU.S3.Strval) <= 0)));
			}
			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_459876].Kind == ((NU8) 2)))) goto LA445;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA445: ;
				regs->data[ra_459876].kindU.Intval = ((NI64) ((cmpStrings((*regs->data[rb].kindU.Node).kindU.S3.Strval, (*regs->data[rc].kindU.Node).kindU.S3.Strval) < 0)));
			}
			break;
			case ((NU8) 67):
			{
				NI rb;
				NI rc;
				NIM_BOOL LOC452;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 2)))) goto LA450;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA450: ;
				LOC452 = 0;
				LOC452 = containssets_284075(regs->data[rb].kindU.Node, regs->data[rc].kindU.Node);
				regs->data[ra_459876].kindU.Intval = ((NI64) (LOC452));
			}
			break;
			case ((NU8) 66):
			{
				NI rb;
				NI rc;
				NIM_BOOL LOC458;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 2)))) goto LA456;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA456: ;
				LOC458 = 0;
				LOC458 = equalsets_284082(regs->data[rb].kindU.Node, regs->data[rc].kindU.Node);
				regs->data[ra_459876].kindU.Intval = ((NI64) (LOC458));
			}
			break;
			case ((NU8) 68):
			{
				NI rb;
				NI rc;
				tnode225816* a;
				tnode225816* b;
				NIM_BOOL LOC464;
				NIM_BOOL LOC466;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 2)))) goto LA462;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA462: ;
				a = regs->data[rb].kindU.Node;
				b = regs->data[rc].kindU.Node;
				LOC464 = 0;
				LOC464 = containssets_284075(a, b);
				if (!(LOC464)) goto LA465;
				LOC466 = 0;
				LOC466 = equalsets_284082(a, b);
				LOC464 = !(LOC466);
				LA465: ;
				regs->data[ra_459876].kindU.Intval = ((NI64) (LOC464));
			}
			break;
			case ((NU8) 69):
			{
				NI rb;
				NI rc;
				tnode225816* LOC472;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA470;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA470: ;
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), newnode_226090(((NU8) 39)));
				LOC472 = 0;
				LOC472 = intersectsets_284061(regs->data[rb].kindU.Node, regs->data[rc].kindU.Node);
				asgnRefNoCycle((void**) (&(*regs->data[ra_459876].kindU.Node).kindU.S6.Sons), (*LOC472).kindU.S6.Sons);
			}
			break;
			case ((NU8) 70):
			{
				NI rb;
				NI rc;
				tnode225816* LOC478;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA476;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA476: ;
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), newnode_226090(((NU8) 39)));
				LOC478 = 0;
				LOC478 = unionsets_284047(regs->data[rb].kindU.Node, regs->data[rc].kindU.Node);
				asgnRefNoCycle((void**) (&(*regs->data[ra_459876].kindU.Node).kindU.S6.Sons), (*LOC478).kindU.S6.Sons);
			}
			break;
			case ((NU8) 71):
			{
				NI rb;
				NI rc;
				tnode225816* LOC484;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA482;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA482: ;
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), newnode_226090(((NU8) 39)));
				LOC484 = 0;
				LOC484 = diffsets_284054(regs->data[rb].kindU.Node, regs->data[rc].kindU.Node);
				asgnRefNoCycle((void**) (&(*regs->data[ra_459876].kindU.Node).kindU.S6.Sons), (*LOC484).kindU.S6.Sons);
			}
			break;
			case ((NU8) 72):
			{
				NI rb;
				NI rc;
				tnode225816* LOC490;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA488;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA488: ;
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), newnode_226090(((NU8) 39)));
				LOC490 = 0;
				LOC490 = symdiffsets_284068(regs->data[rb].kindU.Node, regs->data[rc].kindU.Node);
				asgnRefNoCycle((void**) (&(*regs->data[ra_459876].kindU.Node).kindU.S6.Sons), (*LOC490).kindU.S6.Sons);
			}
			break;
			case ((NU8) 73):
			{
				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_459876].Kind == ((NU8) 1)))) goto LA494;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA494: ;
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), newnode_226090(((NU8) 20)));
				{
					NimStringDesc* LOC500;
					if (!(regs->data[rb].Kind == ((NU8) 1))) goto LA498;
					LOC500 = 0;
					LOC500 = (*regs->data[ra_459876].kindU.Node).kindU.S3.Strval; (*regs->data[ra_459876].kindU.Node).kindU.S3.Strval = copyStringRC1((*regs->data[rb].kindU.Node).kindU.S3.Strval);
					if (LOC500) nimGCunrefNoCycle(LOC500);
				}
				goto LA496;
				LA498: ;
				{
					asgnRefNoCycle((void**) (&(*regs->data[ra_459876].kindU.Node).kindU.S3.Strval), nimCharToStr(((NIM_CHAR) (((NI) (((NI) (regs->data[rb].kindU.Intval))))))));
				}
				LA496: ;
				{
					NI i_467322;
					NI HEX3Atmp_475453;
					NI HEX3Atmp_475454;
					NI res_475457;
					i_467322 = 0;
					HEX3Atmp_475453 = 0;
					HEX3Atmp_475454 = 0;
					HEX3Atmp_475453 = (NI32)(((NI) (rb)) + 1);
					HEX3Atmp_475454 = (NI32)(((NI) ((NI32)(((NI) (rb)) + ((NI) (rc))))) - 1);
					res_475457 = ((NI) (HEX3Atmp_475453));
					{
						while (1) {
							NimStringDesc* LOC505;
							if (!(((NI) (res_475457)) <= ((NI) (HEX3Atmp_475454)))) goto LA504;
							i_467322 = res_475457;
							LOC505 = 0;
							{
								if (!(regs->data[i_467322].Kind == ((NU8) 1))) goto LA508;
								LOC505 = copyString((*regs->data[i_467322].kindU.Node).kindU.S3.Strval);
							}
							goto LA506;
							LA508: ;
							{
								LOC505 = nimCharToStr(((NIM_CHAR) (((NI) (((NI) (regs->data[i_467322].kindU.Intval)))))));
							}
							LA506: ;
							(*regs->data[ra_459876].kindU.Node).kindU.S3.Strval = resizeString((*regs->data[ra_459876].kindU.Node).kindU.S3.Strval, LOC505->Sup.len + 0);
appendString((*regs->data[ra_459876].kindU.Node).kindU.S3.Strval, LOC505);
							res_475457 += 1;
						} LA504: ;
					}
				}
			}
			break;
			case ((NU8) 90):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA514;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA514: ;
				(*regs->data[ra_459876].kindU.Node).kindU.S3.Strval = addChar((*regs->data[ra_459876].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_459876].Kind == ((NU8) 1)))) goto LA519;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA519: ;
				(*regs->data[ra_459876].kindU.Node).kindU.S3.Strval = resizeString((*regs->data[ra_459876].kindU.Node).kindU.S3.Strval, (*regs->data[rb].kindU.Node).kindU.S3.Strval->Sup.len + 0);
appendString((*regs->data[ra_459876].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_459876].Kind == ((NU8) 1)))) goto LA524;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA524: ;
				{
					tnode225816* LOC530;
					tnode225816* LOC531;
					if (!((*regs->data[ra_459876].kindU.Node).Kind == ((NU8) 41))) goto LA528;
					LOC530 = 0;
					LOC530 = regtonode_458280(regs->data[rb]);
					LOC531 = 0;
					LOC531 = copytree_226329(LOC530);
					add_226498(regs->data[ra_459876].kindU.Node, LOC531);
				}
				goto LA526;
				LA528: ;
				{
					stacktrace_456351(c, tos, pc, ((NU16) 81), ((NimStringDesc*) &TMP2723));
				}
				LA526: ;
			}
			break;
			case ((NU8) 126):
			{
				NI rb;
				TY197301 LOC537;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					NI i_467684;
					NI HEX3Atmp_475468;
					NI res_475471;
					i_467684 = 0;
					HEX3Atmp_475468 = 0;
					HEX3Atmp_475468 = (NI32)(((NI) ((NI32)(((NI) (ra_459876)) + ((NI) (rb))))) - 1);
					res_475471 = ((NI) (ra_459876));
					{
						while (1) {
							if (!(((NI) (res_475471)) <= ((NI) (HEX3Atmp_475468)))) goto LA536;
							i_467684 = res_475471;
							write_12865(stdout, (*regs->data[i_467684].kindU.Node).kindU.S3.Strval);
							res_475471 += 1;
						} LA536: ;
					}
				}
				memset((void*)LOC537, 0, sizeof(LOC537));
				LOC537[0] = copyString(((NimStringDesc*) &TMP2723));
				writeln_170205(stdout, LOC537, 1);
			}
			break;
			case ((NU8) 74):
			{
				NI rb;
				NI rc;
				tnode225816* LOC543;
				NIM_BOOL LOC544;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 2)))) goto LA541;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA541: ;
				LOC543 = 0;
				LOC543 = regtonode_458280(regs->data[rc]);
				LOC544 = 0;
				LOC544 = inset_284019(regs->data[rb].kindU.Node, LOC543);
				regs->data[ra_459876].kindU.Intval = ((NI64) (LOC544));
			}
			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_459876].Kind == ((NU8) 1)))) goto LA548;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA548: ;
				pc += 1;
				rd = ((NI) ((NU32)((NU32)((NU32)((*c).Code->data[pc]) >> (NU32)(((NU32) 8))) & ((NU32) 255))));
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), newnode_226090(((NU8) 20)));
				asgnRefNoCycle((void**) (&(*regs->data[ra_459876].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;
				tfullreg456204* rcaddr;
				NI LOC562;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 2)))) goto LA553;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA553: ;
				pc += 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 LA557;
					rcaddr = (*rcaddr).kindU.Regaddr;
				}
				goto LA555;
				LA557: ;
				{
					if (!!((regs->data[rc].Kind == ((NU8) 3)))) goto LA560;
					myreset_456601((&regs->data[rc]));
					regs->data[rc].Kind = ((NU8) 3);
				}
				goto LA555;
				LA560: ;
				LA555: ;
				LOC562 = 0;
				LOC562 = nimParseBiggestFloat((*regs->data[rb].kindU.Node).kindU.S3.Strval, (&(*rcaddr).kindU.Floatval), ((NI) (regs->data[rd].kindU.Intval)));
				regs->data[ra_459876].kindU.Intval = ((NI64) (LOC562));
			}
			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 LOC566;
					tnode225816* LOC567;
					tnode225816* LOC568;
					tnode225816* LOC570;
					tnode225816* LOC571;
					NimStringDesc* LOC574;
					NimStringDesc* LOC575;
					LOC566 = 0;
					LOC567 = 0;
					LOC567 = regtonode_458280(regs->data[rb]);
					LOC568 = 0;
					LOC568 = regtonode_458280(regs->data[ra_459876]);
					LOC566 = levalueconv_304021(LOC567, LOC568);
					if (!(LOC566)) goto LA569;
					LOC570 = 0;
					LOC570 = regtonode_458280(regs->data[ra_459876]);
					LOC571 = 0;
					LOC571 = regtonode_458280(regs->data[rc]);
					LOC566 = levalueconv_304021(LOC570, LOC571);
					LA569: ;
					if (!!(LOC566)) goto LA572;
					LOC574 = 0;
					LOC574 = msgkindtostring_197378(((NU16) 142));
					LOC575 = 0;
					LOC575 = nsuFormatOpenArray(LOC574, TMP2836, 2);
					stacktrace_456351(c, tos, pc, ((NU16) 4), LOC575);
				}
				LA572: ;
			}
			break;
			case ((NU8) 127):
			case ((NU8) 128):
			{
				NI rb;
				NI rc;
				tnode225816* bb;
				NIM_BOOL isclosure;
				tsym225846* 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 LA579;
					prc = (*bb).kindU.S4.Sym;
				}
				goto LA577;
				LA579: ;
				{
					prc = (*(*bb).kindU.S6.Sons->data[0]).kindU.S4.Sym;
				}
				LA577: ;
				{
					vmargs289042 LOC586;
					if (!((*prc).Offset < -1)) goto LA584;
					memset((void*)(&LOC586), 0, sizeof(LOC586));
					memset((void*)(&LOC586), 0, sizeof(LOC586));
					LOC586.Ra = ((NI) (ra_459876));
					LOC586.Rb = ((NI) (rb));
					LOC586.Rc = ((NI) (rc));
					LOC586.Slots = ((void*) (regs));
					LOC586.Currentexception = (*c).Currentexceptionb;
					(*c).Callbacks->data[(NI32)(((NI32)-((*prc).Offset)) - 2)].Field1.ClEnv? (*c).Callbacks->data[(NI32)(((NI32)-((*prc).Offset)) - 2)].Field1.ClPrc((&LOC586), (*c).Callbacks->data[(NI32)(((NI32)-((*prc).Offset)) - 2)].Field1.ClEnv):((TMP2838)((*c).Callbacks->data[(NI32)(((NI32)-((*prc).Offset)) - 2)].Field1.ClPrc))((&LOC586));
				}
				goto LA582;
				LA584: ;
				{
					if (!(((*prc).Flags &(1<<((((NU8) 5))&31)))!=0)) goto LA588;
					{
						if (!!((((*c).Features &(1<<((((NU8) 1))&7)))!=0))) goto LA592;
						globalerror_197934((*c).Debug->data[pc], ((NU16) 4), ((NimStringDesc*) &TMP2839));
					}
					LA592: ;
					globalerror_197934((*c).Debug->data[pc], ((NU16) 4), ((NimStringDesc*) &TMP2840));
				}
				goto LA582;
				LA588: ;
				{
					NI newpc;
					tstackframe456208* newframe;
					tstackframe456208* LOC610;
					if (!!(((*prc).Kind == ((NU8) 18)))) goto LA595;
					newpc = compile_459696(c, prc);
					{
						if (!(newpc < pc)) goto LA599;
						{
							if (!((*c).Loopiterations <= 0)) goto LA603;
							{
								if (!(((*c).Features &(1<<((((NU8) 2))&7)))!=0)) goto LA607;
								(*c).Loopiterations = 500000;
							}
							goto LA605;
							LA607: ;
							{
								msgwriteln_197236(((NimStringDesc*) &TMP2828));
								stacktraceaux_456233(c, tos, pc, 100);
								globalerror_197934((*c).Debug->data[pc], ((NU16) 207), ((NimStringDesc*) &TMP2723));
							}
							LA605: ;
						}
						LA603: ;
						(*c).Loopiterations -= 1;
					}
					LA599: ;
					LOC610 = 0;
					LOC610 = (tstackframe456208*) newObj((&NTI456206), sizeof(tstackframe456208));
					asgnRefNoCycle((void**) (&(*LOC610).Prc), prc);
					(*LOC610).Comesfrom = pc;
					asgnRef((void**) (&(*LOC610).Next), tos);
					newframe = LOC610;
					if ((*newframe).Slots) nimGCunrefNoCycle((*newframe).Slots);
					(*newframe).Slots = (TY456895*) newSeqRC1((&NTI456895), (*prc).Offset);
					{
						NIM_BOOL LOC613;
						NIM_BOOL LOC614;
						tnode225816* LOC618;
						LOC613 = 0;
						LOC614 = 0;
						LOC614 = isemptytype_232990((*(*prc).Typ).Sons->data[0]);
						LOC613 = !(LOC614);
						if (LOC613) goto LA615;
						LOC613 = ((*prc).Kind == ((NU8) 17));
						LA615: ;
						if (!LOC613) goto LA616;
						LOC618 = 0;
						LOC618 = getnullvalue_450007((*(*prc).Typ).Sons->data[0], (*prc).Info);
						putintoreg_458143((&(*newframe).Slots->data[0]), LOC618);
					}
					LA616: ;
					{
						NI i_468699;
						NI HEX3Atmp_475496;
						NI res_475499;
						i_468699 = 0;
						HEX3Atmp_475496 = 0;
						HEX3Atmp_475496 = (NI32)(((NI) (rc)) - 1);
						res_475499 = 1;
						{
							while (1) {
								if (!(((NI) (res_475499)) <= ((NI) (HEX3Atmp_475496)))) goto LA621;
								i_468699 = res_475499;
								genericAssign((void*)(&(*newframe).Slots->data[i_468699]), (void*)(&regs->data[(NI32)(((NI) (rb)) + ((NI) (i_468699)))]), (&NTI456204));
								res_475499 += 1;
							} LA621: ;
						}
					}
					{
						if (!isclosure) goto LA624;
						(*newframe).Slots->data[rc].Kind = ((NU8) 1);
						asgnRefNoCycle((void**) (&(*newframe).Slots->data[rc].kindU.Node), (*regs->data[rb].kindU.Node).kindU.S6.Sons->data[1]);
					}
					LA624: ;
					tos = newframe;
					regs = (*newframe).Slots;
					pc = (NI32)(newpc - 1);
				}
				goto LA582;
				LA595: ;
				{
					tsym225846* gensymowner;
					tnode225816* macrocall;
					tnode225816* LOC634;
					tnode225816* a;
					{
						NIM_BOOL LOC629;
						LOC629 = 0;
						LOC629 = !(((*tos).Next == NIM_NIL));
						if (!(LOC629)) goto LA630;
						LOC629 = !(((*(*tos).Next).Prc == NIM_NIL));
						LA630: ;
						if (!LOC629) goto LA631;
						gensymowner = (*(*tos).Next).Prc;
					}
					goto LA627;
					LA631: ;
					{
						gensymowner = (*c).Module;
					}
					LA627: ;
					macrocall = newnodei_226138(((NU8) 27), (*c).Debug->data[pc]);
					LOC634 = 0;
					LOC634 = newsymnode_226132(prc);
					add_226498(macrocall, LOC634);
					{
						NI i_468790;
						NI HEX3Atmp_475501;
						NI res_475504;
						i_468790 = 0;
						HEX3Atmp_475501 = 0;
						HEX3Atmp_475501 = (NI32)(((NI) (rc)) - 1);
						res_475504 = 1;
						{
							while (1) {
								tnode225816* LOC638;
								if (!(((NI) (res_475504)) <= ((NI) (HEX3Atmp_475501)))) goto LA637;
								i_468790 = res_475504;
								LOC638 = 0;
								LOC638 = regtonode_458280(regs->data[(NI32)(((NI) (rb)) + ((NI) (i_468790)))]);
								add_226498(macrocall, LOC638);
								res_475504 += 1;
							} LA637: ;
						}
					}
					a = evaltemplate_455334(macrocall, prc, gensymowner);
					{
						if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA641;
						myreset_456601((&regs->data[ra_459876]));
						regs->data[ra_459876].Kind = ((NU8) 1);
					}
					LA641: ;
					asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), a);
				}
				LA582: ;
			}
			break;
			case ((NU8) 134):
			{
				NI rbx;
				rbx = (NI32)((NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768) - 1);
				{
					if (!!((regs->data[ra_459876].kindU.Intval == IL64(0)))) goto LA646;
					pc += rbx;
				}
				LA646: ;
			}
			break;
			case ((NU8) 135):
			{
				NI rbx;
				rbx = (NI32)((NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768) - 1);
				{
					if (!(regs->data[ra_459876].kindU.Intval == IL64(0))) goto LA651;
					pc += rbx;
				}
				LA651: ;
			}
			break;
			case ((NU8) 136):
			{
				NI rbx;
				rbx = (NI32)((NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768) - 1);
				pc += rbx;
			}
			break;
			case ((NU8) 137):
			{
				NI rbx;
				rbx = (NI32)((NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768) - 1);
				pc += rbx;
				{
					if (!((*c).Loopiterations <= 0)) goto LA657;
					{
						if (!(((*c).Features &(1<<((((NU8) 2))&7)))!=0)) goto LA661;
						(*c).Loopiterations = 500000;
					}
					goto LA659;
					LA661: ;
					{
						msgwriteln_197236(((NimStringDesc*) &TMP2828));
						stacktraceaux_456233(c, tos, pc, 100);
						globalerror_197934((*c).Debug->data[pc], ((NU16) 207), ((NimStringDesc*) &TMP2723));
					}
					LA659: ;
				}
				LA657: ;
				(*c).Loopiterations -= 1;
			}
			break;
			case ((NU8) 138):
			{
				tnode225816* branch;
				NIM_BOOL cond;
				branch = HEX5BHEX5D_226698((*c).Constants, (NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768));
				cond = NIM_FALSE;
				{
					NI j_468981;
					NI HEX3Atmp_475511;
					NI LOC666;
					NI res_475514;
					j_468981 = 0;
					HEX3Atmp_475511 = 0;
					LOC666 = 0;
					LOC666 = sonslen_226249(branch);
					HEX3Atmp_475511 = (NI32)(LOC666 - 2);
					res_475514 = 0;
					{
						while (1) {
							if (!(res_475514 <= HEX3Atmp_475511)) goto LA668;
							j_468981 = res_475514;
							{
								tnode225816* LOC671;
								NIM_BOOL LOC672;
								LOC671 = 0;
								LOC671 = regtonode_458280(regs->data[ra_459876]);
								LOC672 = 0;
								LOC672 = overlap_284012(LOC671, (*branch).kindU.S6.Sons->data[j_468981]);
								if (!LOC672) goto LA673;
								cond = NIM_TRUE;
								goto LA665;
							}
							LA673: ;
							res_475514 += 1;
						} LA668: ;
					}
				} LA665: ;
				pc += 1;
				{
					NU32 instr2;
					NI rbx;
					if (!!(cond)) goto LA677;
					instr2 = (*c).Code->data[pc];
					rbx = (NI32)((NI32)(((NI) ((NU32)((NU32)(instr2) >> (NU32)(((NU32) 16))))) - 32768) - 1);
					pc += rbx;
				}
				LA677: ;
			}
			break;
			case ((NU8) 139):
			{
				NI rbx;
				rbx = (NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768);
				pushsafepoint_458397(tos, (NI32)(pc + rbx));
			}
			break;
			case ((NU8) 140):
			{
				NI rbx;
				rbx = (NI32)((NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768) - 1);
				pc += rbx;
			}
			break;
			case ((NU8) 141):
			{
				popsafepoint_458456(tos);
			}
			break;
			case ((NU8) 142):
			{
				{
					TY458516 LOC687;
					NI newpc;
					tstackframe456208* newtos;
					if (!!(((*c).Currentexceptiona == NIM_NIL))) goto LA685;
					memset((void*)(&LOC687), 0, sizeof(LOC687));
					cleanuponexception_458512(c, tos, (&LOC687));
					newpc = 0;
					newpc = LOC687.Field0;
					newtos = 0;
					newtos = LOC687.Field1;
					{
						if (!((NI32)(newpc - 1) < 0)) goto LA690;
						bailout_456373(c, tos);
						goto BeforeRet;
					}
					LA690: ;
					pc = (NI32)(newpc - 1);
					{
						if (!!((tos == newtos))) goto LA694;
						tos = newtos;
						regs = (*tos).Slots;
					}
					LA694: ;
				}
				LA685: ;
			}
			break;
			case ((NU8) 129):
			{
				tnode225816* raised;
				TY458516 LOC697;
				NI newpc;
				tstackframe456208* newtos;
				raised = regs->data[ra_459876].kindU.Node;
				asgnRefNoCycle((void**) (&(*c).Currentexceptiona), raised);
				(*c).Exceptioninstr = pc;
				memset((void*)(&LOC697), 0, sizeof(LOC697));
				cleanuponexception_458512(c, tos, (&LOC697));
				newpc = 0;
				newpc = LOC697.Field0;
				newtos = 0;
				newtos = LOC697.Field1;
				{
					if (!((NI32)(newpc - 1) < 0)) goto LA700;
					bailout_456373(c, tos);
					goto BeforeRet;
				}
				LA700: ;
				pc = (NI32)(newpc - 1);
				{
					if (!!((tos == newtos))) goto LA704;
					tos = newtos;
					regs = (*tos).Slots;
				}
				LA704: ;
			}
			break;
			case ((NU8) 143):
			{
				ttype225852* typ;
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA709;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA709: ;
				typ = (*c).Types->data[(NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768)];
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), getnullvalue_450007(typ, (*c).Debug->data[pc]));
				(*regs->data[ra_459876].kindU.Node).Flags |= ((NI16)1)<<((((NU8) 12))%(sizeof(NI16)*8));
			}
			break;
			case ((NU8) 144):
			{
				ttype225852* typ;
				NU32 instr2;
				NI count;
				typ = (*c).Types->data[(NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768)];
				pc += 1;
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA714;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA714: ;
				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_459876].kindU.Node), newnodei_226138(((NU8) 41), (*c).Debug->data[pc]));
				asgnRefNoCycle((void**) (&(*regs->data[ra_459876].kindU.Node).Typ), typ);
				if ((*regs->data[ra_459876].kindU.Node).kindU.S6.Sons) nimGCunrefNoCycle((*regs->data[ra_459876].kindU.Node).kindU.S6.Sons);
				(*regs->data[ra_459876].kindU.Node).kindU.S6.Sons = (tnodeseq225810*) newSeqRC1((&NTI225810), count);
				{
					NI i_469895;
					NI HEX3Atmp_475524;
					NI res_475527;
					i_469895 = 0;
					HEX3Atmp_475524 = 0;
					HEX3Atmp_475524 = (count - 1);
					res_475527 = 0;
					{
						while (1) {
							if (!(res_475527 <= HEX3Atmp_475524)) goto LA718;
							i_469895 = res_475527;
							asgnRefNoCycle((void**) (&(*regs->data[ra_459876].kindU.Node).kindU.S6.Sons->data[i_469895]), getnullvalue_450007((*typ).Sons->data[0], (*c).Debug->data[pc]));
							res_475527 += 1;
						} LA718: ;
					}
				}
			}
			break;
			case ((NU8) 133):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA722;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA722: ;
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), newnodei_226138(((NU8) 20), (*c).Debug->data[pc]));
				asgnRefNoCycle((void**) (&(*regs->data[ra_459876].kindU.Node).kindU.S3.Strval), mnewString(((NI) (regs->data[rb].kindU.Intval))));
			}
			break;
			case ((NU8) 151):
			{
				NI rbx;
				rbx = (NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768);
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 2)))) goto LA727;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA727: ;
				regs->data[ra_459876].kindU.Intval = ((NI64) (rbx));
			}
			break;
			case ((NU8) 145):
			{
				ttype225852* typ;
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA732;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA732: ;
				typ = (*c).Types->data[(NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768)];
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), getnullvalue_450007(typ, (*c).Debug->data[pc]));
			}
			break;
			case ((NU8) 146):
			{
				ttype225852* typ;
				typ = (*c).Types->data[(NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768)];
				{
					ttype225852* LOC737;
					LOC737 = 0;
					LOC737 = skiptypes_230245(typ, IL64(211106233624576));
					if (!((*LOC737).Kind >= ((NU8) 36) && (*LOC737).Kind <= ((NU8) 39))) goto LA738;
					{
						if (!!((regs->data[ra_459876].Kind == ((NU8) 3)))) goto LA742;
						myreset_456601((&regs->data[ra_459876]));
						regs->data[ra_459876].Kind = ((NU8) 3);
					}
					LA742: ;
					regs->data[ra_459876].kindU.Floatval = 0.0;
				}
				goto LA735;
				LA738: ;
				{
					{
						if (!!((regs->data[ra_459876].Kind == ((NU8) 2)))) goto LA747;
						myreset_456601((&regs->data[ra_459876]));
						regs->data[ra_459876].Kind = ((NU8) 2);
					}
					LA747: ;
					regs->data[ra_459876].kindU.Intval = IL64(0);
				}
				LA735: ;
			}
			break;
			case ((NU8) 147):
			{
				NI rb;
				tnode225816* cnst;
				rb = (NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768);
				cnst = (*(*c).Constants).kindU.S6.Sons->data[rb];
				{
					NIM_BOOL LOC752;
					LOC752 = 0;
					LOC752 = fitsregister_448686((*cnst).Typ);
					if (!LOC752) goto LA753;
					putintoreg_458143((&regs->data[ra_459876]), cnst);
				}
				goto LA750;
				LA753: ;
				{
					{
						if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA758;
						myreset_456601((&regs->data[ra_459876]));
						regs->data[ra_459876].Kind = ((NU8) 1);
					}
					LA758: ;
					asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), cnst);
				}
				LA750: ;
			}
			break;
			case ((NU8) 148):
			{
				NI rb;
				tnode225816* cnst;
				rb = (NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768);
				cnst = (*(*c).Constants).kindU.S6.Sons->data[rb];
				{
					NIM_BOOL LOC763;
					LOC763 = 0;
					LOC763 = fitsregister_448686((*cnst).Typ);
					if (!LOC763) goto LA764;
					putintoreg_458143((&regs->data[ra_459876]), cnst);
				}
				goto LA761;
				LA764: ;
				{
					{
						if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA769;
						myreset_456601((&regs->data[ra_459876]));
						regs->data[ra_459876].Kind = ((NU8) 1);
					}
					LA769: ;
					asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), copytree_226329(cnst));
				}
				LA761: ;
			}
			break;
			case ((NU8) 149):
			{
				NI rb;
				rb = (NI32)((NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768) - 1);
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA774;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA774: ;
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), (*(*c).Globals).kindU.S6.Sons->data[rb]);
			}
			break;
			case ((NU8) 150):
			{
				NI rb;
				rb = (NI32)((NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768) - 1);
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 5)))) goto LA779;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 5);
				}
				LA779: ;
				regs->data[ra_459876].kindU.Nodeaddr = &(*(*c).Globals).kindU.S6.Sons->data[rb];
			}
			break;
			case ((NU8) 75):
			{
				NI rb;
				tnode225816* LOC786;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA784;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA784: ;
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), newnode_226090(((NU8) 20)));
				LOC786 = 0;
				LOC786 = regtonode_458280(regs->data[rb]);
				asgnRefNoCycle((void**) (&(*regs->data[ra_459876].kindU.Node).kindU.S3.Strval), rendertree_250058(LOC786, 4));
			}
			break;
			case ((NU8) 86):
			{
				{
					tnode225816* LOC792;
					NI64 LOC793;
					if (!((25 &(1<<(((*c).Mode)&7)))!=0)) goto LA790;
					message_197976((*c).Debug->data[pc], ((NU16) 266), ((NimStringDesc*) &TMP2723));
					LOC792 = 0;
					LOC792 = regtonode_458280(regs->data[ra_459876]);
					LOC793 = 0;
					LOC793 = getordvalue_263187(LOC792);
					exit(((NI) (LOC793)));
				}
				goto LA788;
				LA790: ;
				{
					tfullreg456204 LOC795;
					memset((void*)(&LOC795), 0, sizeof(LOC795));
					memset((void*)(&LOC795), 0, sizeof(LOC795));
					LOC795.Kind = ((NU8) 0);
					genericShallowAssign((void*)Result, (void*)(&LOC795), (&NTI456204));
					goto BeforeRet;
				}
				LA788: ;
			}
			break;
			case ((NU8) 76):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA799;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA799: ;
				(*regs->data[ra_459876].kindU.Node).kindU.S3.Strval = setLengthStr((*regs->data[ra_459876].kindU.Node).kindU.S3.Strval, ((NI) (regs->data[rb].kindU.Intval)));
			}
			break;
			case ((NU8) 80):
			{
				NI rb;
				NI rc;
				ttype225852* typ;
				NI LOC806;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 2)))) goto LA804;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA804: ;
				typ = (*c).Types->data[regs->data[rc].kindU.Intval];
				LOC806 = 0;
				LOC806 = inheritancediff_270588((*regs->data[rb].kindU.Node).Typ, typ);
				regs->data[ra_459876].kindU.Intval = ((NI64) ((0 <= LOC806)));
			}
			break;
			case ((NU8) 81):
			{
				NI rb;
				NI rc;
				ttype225852* t1;
				ttype225852* 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_459876].Kind == ((NU8) 2)))) goto LA810;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA810: ;
				t1 = skiptypes_230245((*regs->data[rb].kindU.Node).Typ, 256);
				t2 = (*c).Types->data[regs->data[rc].kindU.Intval];
				{
					if (!((*t2).Kind == ((NU8) 52))) goto LA814;
					match = NIM_TRUE;
				}
				goto LA812;
				LA814: ;
				{
					match = sametype_268351(t1, t2, 0);
				}
				LA812: ;
				regs->data[ra_459876].kindU.Intval = ((NI64) (match));
			}
			break;
			case ((NU8) 77):
			{
				NI rb;
				NI newlen;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA820;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA820: ;
				newlen = ((NI) (regs->data[rb].kindU.Intval));
				{
					if (!regs->data[ra_459876].kindU.Node == 0) goto LA824;
					stacktrace_456351(c, tos, pc, ((NU16) 81), ((NimStringDesc*) &TMP2723));
				}
				goto LA822;
				LA824: ;
				{
					(*regs->data[ra_459876].kindU.Node).kindU.S6.Sons = (tnodeseq225810*) setLengthSeq(&((*regs->data[ra_459876].kindU.Node).kindU.S6.Sons)->Sup, sizeof(tnode225816*), newlen);
				}
				LA822: ;
			}
			break;
			case ((NU8) 78):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!(regs->data[ra_459876].Kind == regs->data[rb].Kind)) goto LA830;
					switch (regs->data[ra_459876].Kind) {
					case ((NU8) 0):
					{
					}
					break;
					case ((NU8) 2):
					{
						NI64 LOC834;
						LOC834 = 0;
						LOC834 = regs->data[ra_459876].kindU.Intval;
						regs->data[ra_459876].kindU.Intval = regs->data[rb].kindU.Intval;
						regs->data[rb].kindU.Intval = LOC834;
					}
					break;
					case ((NU8) 3):
					{
						NF LOC836;
						LOC836 = 0;
						LOC836 = regs->data[ra_459876].kindU.Floatval;
						regs->data[ra_459876].kindU.Floatval = regs->data[rb].kindU.Floatval;
						regs->data[rb].kindU.Floatval = LOC836;
					}
					break;
					case ((NU8) 1):
					{
						tnode225816* LOC838;
						LOC838 = 0;
						LOC838 = regs->data[ra_459876].kindU.Node;
						asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), regs->data[rb].kindU.Node);
						asgnRefNoCycle((void**) (&regs->data[rb].kindU.Node), LOC838);
					}
					break;
					case ((NU8) 4):
					{
						tfullreg456204* LOC840;
						LOC840 = 0;
						LOC840 = regs->data[ra_459876].kindU.Regaddr;
						regs->data[ra_459876].kindU.Regaddr = regs->data[rb].kindU.Regaddr;
						regs->data[rb].kindU.Regaddr = LOC840;
					}
					break;
					case ((NU8) 5):
					{
						tnode225816** LOC842;
						LOC842 = 0;
						LOC842 = regs->data[ra_459876].kindU.Nodeaddr;
						regs->data[ra_459876].kindU.Nodeaddr = regs->data[rb].kindU.Nodeaddr;
						regs->data[rb].kindU.Nodeaddr = LOC842;
					}
					break;
					}
				}
				goto LA828;
				LA830: ;
				{
					internalerror_197987((*c).Debug->data[pc], ((NimStringDesc*) &TMP2845));
				}
				LA828: ;
			}
			break;
			case ((NU8) 87):
			{
				internalerror_197987((*c).Debug->data[pc], ((NimStringDesc*) &TMP2846));
			}
			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_459876].Kind == ((NU8) 2)))) goto LA848;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA848: ;
				min = -((NI64)((NU64)(IL64(1)) << (NU64)(((NI64) ((NI32)(((NI) (rb)) - 1))))));
				max = (NI64)((NI64)((NU64)(IL64(1)) << (NU64)(((NI64) ((NI32)(((NI) (rb)) - 1))))) - IL64(1));
				{
					NIM_BOOL LOC852;
					NimStringDesc* LOC856;
					NimStringDesc* LOC857;
					LOC852 = 0;
					LOC852 = (regs->data[ra_459876].kindU.Intval < min);
					if (LOC852) goto LA853;
					LOC852 = (max < regs->data[ra_459876].kindU.Intval);
					LA853: ;
					if (!LOC852) goto LA854;
					LOC856 = 0;
					LOC856 = msgkindtostring_197378(((NU16) 214));
					LOC857 = 0;
					LOC857 = nsuFormatSingleElem(LOC856, ((NimStringDesc*) &TMP2847));
					stacktrace_456351(c, tos, pc, ((NU16) 4), LOC857);
				}
				LA854: ;
			}
			break;
			case ((NU8) 89):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 2)))) goto LA861;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA861: ;
				regs->data[ra_459876].kindU.Intval = (NI64)(regs->data[ra_459876].kindU.Intval & (NI64)((NI64)((NU64)(IL64(1)) << (NU64)(((NI64) (rb)))) - IL64(1)));
			}
			break;
			case ((NU8) 79):
			{
				NI rb;
				tnode225816* node;
				NIM_BOOL LOC868;
				NIM_BOOL LOC870;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 2)))) goto LA866;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA866: ;
				node = regs->data[rb].kindU.Node;
				LOC868 = 0;
				LOC868 = ((*node).Kind == ((NU8) 23));
				if (LOC868) goto LA869;
				LOC870 = 0;
				LOC870 = ((*node).Kind >= ((NU8) 20) && (*node).Kind <= ((NU8) 22));
				if (!(LOC870)) goto LA871;
				LOC870 = (*node).kindU.S3.Strval == 0;
				LA871: ;
				LOC868 = LOC870;
				LA869: ;
				regs->data[ra_459876].kindU.Intval = ((NI64) (LOC868));
			}
			break;
			case ((NU8) 152):
			{
				NI rbx;
				rbx = (NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768);
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA875;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA875: ;
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), copytree_226329((*(*c).Constants).kindU.S6.Sons->data[rbx]));
			}
			break;
			case ((NU8) 130):
			{
				NI rb;
				NI rc;
				NI idx;
				tnode225816* src;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA880;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA880: ;
				idx = ((NI) (regs->data[rc].kindU.Intval));
				src = regs->data[rb].kindU.Node;
				{
					NIM_BOOL LOC884;
					NI LOC886;
					LOC884 = 0;
					LOC884 = !(((*src).Kind >= ((NU8) 1) && (*src).Kind <= ((NU8) 23)));
					if (!(LOC884)) goto LA885;
					LOC886 = 0;
					LOC886 = len_226364(src);
					LOC884 = ((NU32)(idx) < (NU32)(LOC886));
					LA885: ;
					if (!LOC884) goto LA887;
					asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), (*src).kindU.S6.Sons->data[idx]);
				}
				goto LA882;
				LA887: ;
				{
					stacktrace_456351(c, tos, pc, ((NU16) 82), ((NimStringDesc*) &TMP2723));
				}
				LA882: ;
			}
			break;
			case ((NU8) 131):
			{
				NI rb;
				NI rc;
				NI idx;
				tnode225816* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA893;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA893: ;
				idx = ((NI) (regs->data[rb].kindU.Intval));
				dest = regs->data[ra_459876].kindU.Node;
				{
					NIM_BOOL LOC897;
					NI LOC899;
					LOC897 = 0;
					LOC897 = !(((*dest).Kind >= ((NU8) 1) && (*dest).Kind <= ((NU8) 23)));
					if (!(LOC897)) goto LA898;
					LOC899 = 0;
					LOC899 = len_226364(dest);
					LOC897 = ((NU32)(idx) < (NU32)(LOC899));
					LA898: ;
					if (!LOC897) goto LA900;
					asgnRefNoCycle((void**) (&(*dest).kindU.S6.Sons->data[idx]), regs->data[rc].kindU.Node);
				}
				goto LA895;
				LA900: ;
				{
					stacktrace_456351(c, tos, pc, ((NU16) 82), ((NimStringDesc*) &TMP2723));
				}
				LA895: ;
			}
			break;
			case ((NU8) 94):
			{
				NI rb;
				NI rc;
				tnode225816* u;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA906;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA906: ;
				u = regs->data[rb].kindU.Node;
				add_226498(u, regs->data[rc].kindU.Node);
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), u);
			}
			break;
			case ((NU8) 95):
			{
				NI rb;
				NI rc;
				tnode225816* x;
				tnode225816* u;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA911;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA911: ;
				x = regs->data[rc].kindU.Node;
				u = regs->data[rb].kindU.Node;
				{
					NI i_471785;
					NI HEX3Atmp_475575;
					NI LOC914;
					NI res_475578;
					i_471785 = 0;
					HEX3Atmp_475575 = 0;
					LOC914 = 0;
					LOC914 = len_226364(x);
					HEX3Atmp_475575 = (LOC914 - 1);
					res_475578 = 0;
					{
						while (1) {
							if (!(res_475578 <= HEX3Atmp_475575)) goto LA916;
							i_471785 = res_475578;
							add_226498(u, (*x).kindU.S6.Sons->data[i_471785]);
							res_475578 += 1;
						} LA916: ;
					}
				}
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), u);
			}
			break;
			case ((NU8) 96):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 2)))) goto LA920;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA920: ;
				regs->data[ra_459876].kindU.Intval = ((NI64) ((*regs->data[rb].kindU.Node).Kind));
				(*c).Comesfromheuristic = (*regs->data[rb].kindU.Node).Info;
			}
			break;
			case ((NU8) 97):
			{
				NI rb;
				tnode225816* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 2)))) goto LA925;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA925: ;
				a = regs->data[rb].kindU.Node;
				switch ((*a).Kind) {
				case ((NU8) 5) ... ((NU8) 10):
				{
					regs->data[ra_459876].kindU.Intval = (*a).kindU.S1.Intval;
				}
				break;
				default:
				{
					stacktrace_456351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2848));
				}
				break;
				}
			}
			break;
			case ((NU8) 98):
			{
				NI rb;
				tnode225816* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 3)))) goto LA932;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 3);
				}
				LA932: ;
				a = regs->data[rb].kindU.Node;
				switch ((*a).Kind) {
				case ((NU8) 16) ... ((NU8) 18):
				{
					regs->data[ra_459876].kindU.Floatval = (*a).kindU.S2.Floatval;
				}
				break;
				default:
				{
					stacktrace_456351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2849));
				}
				break;
				}
			}
			break;
			case ((NU8) 99):
			{
				NI rb;
				tnode225816* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA939;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA939: ;
				a = regs->data[rb].kindU.Node;
				{
					if (!((*a).Kind == ((NU8) 3))) goto LA943;
					asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), copynode_226323(a));
				}
				goto LA941;
				LA943: ;
				{
					stacktrace_456351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2850));
				}
				LA941: ;
			}
			break;
			case ((NU8) 100):
			{
				NI rb;
				tnode225816* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA949;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA949: ;
				a = regs->data[rb].kindU.Node;
				{
					if (!((*a).Kind == ((NU8) 2))) goto LA953;
					asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), copynode_226323(a));
				}
				goto LA951;
				LA953: ;
				{
					stacktrace_456351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2851));
				}
				LA951: ;
			}
			break;
			case ((NU8) 101):
			{
				NimStringDesc* LOC957;
				LOC957 = 0;
				LOC957 = rawNewString(reprEnum(((NU8) ((NU32)(instr & ((NU32) 255)))), (&NTI289028))->Sup.len + 15);
appendString(LOC957, ((NimStringDesc*) &TMP2852));
appendString(LOC957, reprEnum(((NU8) ((NU32)(instr & ((NU32) 255)))), (&NTI289028)));
				internalerror_197987((*c).Debug->data[pc], LOC957);
			}
			break;
			case ((NU8) 102):
			{
				NI rb;
				tnode225816* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA961;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA961: ;
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), newnode_226090(((NU8) 20)));
				a = regs->data[rb].kindU.Node;
				{
					NimStringDesc* LOC967;
					if (!((*a).Kind >= ((NU8) 20) && (*a).Kind <= ((NU8) 22))) goto LA965;
					LOC967 = 0;
					LOC967 = (*regs->data[ra_459876].kindU.Node).kindU.S3.Strval; (*regs->data[ra_459876].kindU.Node).kindU.S3.Strval = copyStringRC1((*a).kindU.S3.Strval);
					if (LOC967) nimGCunrefNoCycle(LOC967);
				}
				goto LA963;
				LA965: ;
				{
					stacktrace_456351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2856));
				}
				LA963: ;
			}
			break;
			case ((NU8) 114):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA972;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA972: ;
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), newnode_226090(((NU8) 20)));
				asgnRefNoCycle((void**) (&(*regs->data[ra_459876].kindU.Node).kindU.S3.Strval), opslurp_454039((*regs->data[rb].kindU.Node).kindU.S3.Strval, (*c).Debug->data[pc], (*c).Module));
			}
			break;
			case ((NU8) 115):
			{
				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_459876].Kind == ((NU8) 1)))) goto LA977;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA977: ;
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), newnode_226090(((NU8) 20)));
				asgnRefNoCycle((void**) (&(*regs->data[ra_459876].kindU.Node).kindU.S3.Strval), opgorge_454027((*regs->data[rb].kindU.Node).kindU.S3.Strval, (*regs->data[rc].kindU.Node).kindU.S3.Strval));
			}
			break;
			case ((NU8) 119):
			{
				stacktrace_456351(c, tos, pc, ((NU16) 229), (*regs->data[ra_459876].kindU.Node).kindU.S3.Strval);
			}
			break;
			case ((NU8) 120):
			{
				message_197976((*c).Debug->data[pc], ((NU16) 258), (*regs->data[ra_459876].kindU.Node).kindU.S3.Strval);
			}
			break;
			case ((NU8) 121):
			{
				message_197976((*c).Debug->data[pc], ((NU16) 275), (*regs->data[ra_459876].kindU.Node).kindU.S3.Strval);
			}
			break;
			case ((NU8) 116):
			{
				NI rb;
				tnode225816* ast;
				NimStringDesc* LOC987;
				terrorhandler215188 LOC988;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA985;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA985: ;
				LOC987 = 0;
				LOC987 = tofullpath_197037((*c).Debug->data[pc].Fileindex);
				memset((void*)(&LOC988), 0, sizeof(LOC988));
				LOC988.ClPrc = HEX3Aanonymous_472689; LOC988.ClEnv = HEX3Aenv_475767;
				ast = parsestring_248539((*regs->data[rb].kindU.Node).kindU.S3.Strval, LOC987, ((NI) ((*c).Debug->data[pc].Line)), LOC988);
				{
					NimStringDesc* LOC993;
					if (!!((*HEX3Aenv_475767).Error472660 == 0)) goto LA991;
					LOC993 = 0;
					LOC993 = (*c).Errorflag; (*c).Errorflag = copyStringRC1((*HEX3Aenv_475767).Error472660);
					if (LOC993) nimGCunrefNoCycle(LOC993);
				}
				goto LA989;
				LA991: ;
				{
					NI LOC995;
					LOC995 = 0;
					LOC995 = sonslen_226249(ast);
					if (!!((LOC995 == 1))) goto LA996;
					asgnRefNoCycle((void**) (&(*c).Errorflag), formatmsg_197757((*c).Debug->data[pc], ((NU16) 60), ((NimStringDesc*) &TMP2870)));
				}
				goto LA989;
				LA996: ;
				{
					asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), (*ast).kindU.S6.Sons->data[0]);
				}
				LA989: ;
			}
			break;
			case ((NU8) 117):
			{
				NI rb;
				tnode225816* ast;
				NimStringDesc* LOC1004;
				terrorhandler215188 LOC1005;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA1002;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA1002: ;
				LOC1004 = 0;
				LOC1004 = tofullpath_197037((*c).Debug->data[pc].Fileindex);
				memset((void*)(&LOC1005), 0, sizeof(LOC1005));
				LOC1005.ClPrc = HEX3Aanonymous_472791; LOC1005.ClEnv = HEX3Aenv_475767;
				ast = parsestring_248539((*regs->data[rb].kindU.Node).kindU.S3.Strval, LOC1004, ((NI) ((*c).Debug->data[pc].Line)), LOC1005);
				{
					NimStringDesc* LOC1010;
					if (!!((*HEX3Aenv_475767).Error472762 == 0)) goto LA1008;
					LOC1010 = 0;
					LOC1010 = (*c).Errorflag; (*c).Errorflag = copyStringRC1((*HEX3Aenv_475767).Error472762);
					if (LOC1010) nimGCunrefNoCycle(LOC1010);
				}
				goto LA1006;
				LA1008: ;
				{
					asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), ast);
				}
				LA1006: ;
			}
			break;
			case ((NU8) 118):
			{
				NimStringDesc* LOC1013;
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), newnode_226090(((NU8) 20)));
				LOC1013 = 0;
				LOC1013 = (*regs->data[ra_459876].kindU.Node).kindU.S3.Strval; (*regs->data[ra_459876].kindU.Node).kindU.S3.Strval = copyStringRC1((*c).Errorflag);
				if (LOC1013) nimGCunrefNoCycle(LOC1013);
				(*c).Errorflag = setLengthStr((*c).Errorflag, 0);
			}
			break;
			case ((NU8) 132):
			{
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA1017;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA1017: ;
				{
					if (!!(((*c).Callsite == NIM_NIL))) goto LA1021;
					asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), (*c).Callsite);
				}
				goto LA1019;
				LA1021: ;
				{
					stacktrace_456351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2871));
				}
				LA1019: ;
			}
			break;
			case ((NU8) 122):
			{
				NI rb;
				tnode225816* n;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA1027;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA1027: ;
				n = regs->data[rb].kindU.Node;
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), newnode_226090(((NU8) 20)));
				asgnRefNoCycle((void**) (&(*regs->data[ra_459876].kindU.Node).kindU.S3.Strval), tofilelinecol_197103((*n).Info));
				(*regs->data[ra_459876].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_459876].Kind == ((NU8) 2)))) goto LA1032;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 2);
				}
				LA1032: ;
				{
					NIM_BOOL LOC1036;
					LOC1036 = 0;
					LOC1036 = ((*regs->data[rb].kindU.Node).Kind == ((NU8) 2));
					if (!(LOC1036)) goto LA1037;
					LOC1036 = ((*regs->data[rc].kindU.Node).Kind == ((NU8) 2));
					LA1037: ;
					if (!LOC1036) goto LA1038;
					regs->data[ra_459876].kindU.Intval = ((NI64) (((*(*regs->data[rb].kindU.Node).kindU.S5.Ident).Sup.Id == (*(*regs->data[rc].kindU.Node).kindU.S5.Ident).Sup.Id)));
				}
				goto LA1034;
				LA1038: ;
				{
					regs->data[ra_459876].kindU.Intval = IL64(0);
				}
				LA1034: ;
			}
			break;
			case ((NU8) 124):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA1044;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA1044: ;
				{
					if (!!(((*regs->data[rb].kindU.Node).Kind >= ((NU8) 20) && (*regs->data[rb].kindU.Node).Kind <= ((NU8) 22)))) goto LA1048;
					stacktrace_456351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2856));
				}
				goto LA1046;
				LA1048: ;
				{
					asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), newnodei_226138(((NU8) 2), (*c).Debug->data[pc]));
					asgnRefNoCycle((void**) (&(*regs->data[ra_459876].kindU.Node).kindU.S5.Ident), getident_200472((*regs->data[rb].kindU.Node).kindU.S3.Strval));
				}
				LA1046: ;
			}
			break;
			case ((NU8) 125):
			{
				NI rb;
				tnode225816* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA1054;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA1054: ;
				a = regs->data[rb].kindU.Node;
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), newnode_226090(((NU8) 20)));
				(*regs->data[ra_459876].kindU.Node).Info = (*c).Debug->data[pc];
				{
					NimStringDesc* LOC1060;
					if (!((*a).Kind == ((NU8) 3))) goto LA1058;
					LOC1060 = 0;
					LOC1060 = (*regs->data[ra_459876].kindU.Node).kindU.S3.Strval; (*regs->data[ra_459876].kindU.Node).kindU.S3.Strval = copyStringRC1((*(*(*a).kindU.S4.Sym).Name).S);
					if (LOC1060) nimGCunrefNoCycle(LOC1060);
				}
				goto LA1056;
				LA1058: ;
				{
					NimStringDesc* LOC1064;
					if (!((*a).Kind == ((NU8) 2))) goto LA1062;
					LOC1064 = 0;
					LOC1064 = (*regs->data[ra_459876].kindU.Node).kindU.S3.Strval; (*regs->data[ra_459876].kindU.Node).kindU.S3.Strval = copyStringRC1((*(*a).kindU.S5.Ident).S);
					if (LOC1064) nimGCunrefNoCycle(LOC1064);
				}
				goto LA1056;
				LA1062: ;
				{
					stacktrace_456351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2851));
				}
				LA1056: ;
			}
			break;
			case ((NU8) 153):
			{
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA1069;
					internalerror_197987((*c).Debug->data[pc], ((NimStringDesc*) &TMP2875));
				}
				LA1069: ;
				asgnRefNoCycle((void**) (&(*regs->data[ra_459876].kindU.Node).Typ), (*c).Types->data[(NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768)]);
			}
			break;
			case ((NU8) 84):
			{
				NI rb;
				ttype225852* desttyp;
				ttype225852* srctyp;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				pc += 1;
				desttyp = (*c).Types->data[(NI32)(((NI) ((NU32)((NU32)((*c).Code->data[pc]) >> (NU32)(((NU32) 16))))) - 32768)];
				pc += 1;
				srctyp = (*c).Types->data[(NI32)(((NI) ((NU32)((NU32)((*c).Code->data[pc]) >> (NU32)(((NU32) 16))))) - 32768)];
				{
					NIM_BOOL LOC1074;
					NimStringDesc* LOC1077;
					TY169969 LOC1078;
					NimStringDesc* LOC1079;
					LOC1074 = 0;
					LOC1074 = opconv_458906((&regs->data[ra_459876]), regs->data[rb], desttyp, srctyp);
					if (!LOC1074) goto LA1075;
					LOC1077 = 0;
					LOC1077 = msgkindtostring_197378(((NU16) 142));
					memset((void*)LOC1078, 0, sizeof(LOC1078));
					LOC1078[0] = typetostring_263031(srctyp, ((NU8) 0));
					LOC1078[1] = typetostring_263031(desttyp, ((NU8) 0));
					LOC1079 = 0;
					LOC1079 = nsuFormatOpenArray(LOC1077, LOC1078, 2);
					stacktrace_456351(c, tos, pc, ((NU16) 4), LOC1079);
				}
				LA1075: ;
			}
			break;
			case ((NU8) 85):
			{
				NI rb;
				ttype225852* desttyp;
				ttype225852* srctyp;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				pc += 1;
				desttyp = (*c).Types->data[(NI32)(((NI) ((NU32)((NU32)((*c).Code->data[pc]) >> (NU32)(((NU32) 16))))) - 32768)];
				pc += 1;
				srctyp = (*c).Types->data[(NI32)(((NI) ((NU32)((NU32)((*c).Code->data[pc]) >> (NU32)(((NU32) 16))))) - 32768)];
				globalerror_197945((*c).Debug->data[pc], ((NimStringDesc*) &TMP2880));
			}
			break;
			case ((NU8) 103):
			{
				NI rb;
				tnode225816* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA1084;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA1084: ;
				dest = regs->data[ra_459876].kindU.Node;
				{
					NIM_BOOL LOC1088;
					LOC1088 = 0;
					LOC1088 = ((*dest).Kind >= ((NU8) 5) && (*dest).Kind <= ((NU8) 10));
					if (!(LOC1088)) goto LA1089;
					LOC1088 = ((4 &(1<<((regs->data[rb].Kind)&7)))!=0);
					LA1089: ;
					if (!LOC1088) goto LA1090;
					(*dest).kindU.S1.Intval = regs->data[rb].kindU.Intval;
				}
				goto LA1086;
				LA1090: ;
				{
					stacktrace_456351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2848));
				}
				LA1086: ;
			}
			break;
			case ((NU8) 104):
			{
				NI rb;
				tnode225816* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA1096;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA1096: ;
				dest = regs->data[ra_459876].kindU.Node;
				{
					NIM_BOOL LOC1100;
					LOC1100 = 0;
					LOC1100 = ((*dest).Kind >= ((NU8) 16) && (*dest).Kind <= ((NU8) 18));
					if (!(LOC1100)) goto LA1101;
					LOC1100 = ((8 &(1<<((regs->data[rb].Kind)&7)))!=0);
					LA1101: ;
					if (!LOC1100) goto LA1102;
					(*dest).kindU.S2.Floatval = regs->data[rb].kindU.Floatval;
				}
				goto LA1098;
				LA1102: ;
				{
					stacktrace_456351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2849));
				}
				LA1098: ;
			}
			break;
			case ((NU8) 105):
			{
				NI rb;
				tnode225816* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA1108;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA1108: ;
				dest = regs->data[ra_459876].kindU.Node;
				{
					NIM_BOOL LOC1112;
					LOC1112 = 0;
					LOC1112 = ((*dest).Kind == ((NU8) 3));
					if (!(LOC1112)) goto LA1113;
					LOC1112 = ((*regs->data[rb].kindU.Node).Kind == ((NU8) 3));
					LA1113: ;
					if (!LOC1112) goto LA1114;
					asgnRefNoCycle((void**) (&(*dest).kindU.S4.Sym), (*regs->data[rb].kindU.Node).kindU.S4.Sym);
				}
				goto LA1110;
				LA1114: ;
				{
					stacktrace_456351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2850));
				}
				LA1110: ;
			}
			break;
			case ((NU8) 106):
			{
				NI rb;
				tnode225816* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA1120;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA1120: ;
				dest = regs->data[ra_459876].kindU.Node;
				{
					NIM_BOOL LOC1124;
					LOC1124 = 0;
					LOC1124 = ((*dest).Kind == ((NU8) 2));
					if (!(LOC1124)) goto LA1125;
					LOC1124 = ((*regs->data[rb].kindU.Node).Kind == ((NU8) 2));
					LA1125: ;
					if (!LOC1124) goto LA1126;
					asgnRefNoCycle((void**) (&(*dest).kindU.S5.Ident), (*regs->data[rb].kindU.Node).kindU.S5.Ident);
				}
				goto LA1122;
				LA1126: ;
				{
					stacktrace_456351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2851));
				}
				LA1122: ;
			}
			break;
			case ((NU8) 107):
			{
				NI rb;
				tnode225816* b;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA1132;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA1132: ;
				b = regs->data[rb].kindU.Node;
				{
					NIM_BOOL LOC1136;
					NimStringDesc* LOC1140;
					LOC1136 = 0;
					LOC1136 = ((*b).Kind == ((NU8) 3));
					if (!(LOC1136)) goto LA1137;
					LOC1136 = ((*(*b).kindU.S4.Sym).Kind == ((NU8) 7));
					LA1137: ;
					if (!!(LOC1136)) goto LA1138;
					LOC1140 = 0;
					LOC1140 = HEX24_198126(TMP2881);
					internalerror_198006(LOC1140);
				}
				LA1138: ;
				{
					NimStringDesc* LOC1145;
					if (!!(!((regs->data[ra_459876].kindU.Node == NIM_NIL)))) goto LA1143;
					LOC1145 = 0;
					LOC1145 = HEX24_198126(TMP2883);
					internalerror_198006(LOC1145);
				}
				LA1143: ;
				asgnRefNoCycle((void**) (&(*regs->data[ra_459876].kindU.Node).Typ), (*(*b).kindU.S4.Sym).Typ);
			}
			break;
			case ((NU8) 108):
			{
				NI rb;
				tnode225816* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA1149;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA1149: ;
				dest = regs->data[ra_459876].kindU.Node;
				{
					NIM_BOOL LOC1153;
					NimStringDesc* LOC1157;
					LOC1153 = 0;
					LOC1153 = ((*dest).Kind >= ((NU8) 20) && (*dest).Kind <= ((NU8) 22));
					if (!(LOC1153)) goto LA1154;
					LOC1153 = ((2 &(1<<((regs->data[rb].Kind)&7)))!=0);
					LA1154: ;
					if (!LOC1153) goto LA1155;
					LOC1157 = 0;
					LOC1157 = (*dest).kindU.S3.Strval; (*dest).kindU.S3.Strval = copyStringRC1((*regs->data[rb].kindU.Node).kindU.S3.Strval);
					if (LOC1157) nimGCunrefNoCycle(LOC1157);
				}
				goto LA1151;
				LA1155: ;
				{
					stacktrace_456351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2856));
				}
				LA1151: ;
			}
			break;
			case ((NU8) 109):
			{
				NI rb;
				NI rc;
				NI64 k;
				tnode225816* cc;
				tlineinfo195539 LOC1170;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA1162;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA1162: ;
				k = regs->data[rb].kindU.Intval;
				{
					NIM_BOOL LOC1166;
					LOC1166 = 0;
					LOC1166 = (k < IL64(0));
					if (LOC1166) goto LA1167;
					LOC1166 = (IL64(157) < k);
					LA1167: ;
					if (!LOC1166) goto LA1168;
					internalerror_197987((*c).Debug->data[pc], ((NimStringDesc*) &TMP2884));
				}
				LA1168: ;
				cc = regs->data[rc].kindU.Node;
				{
					if (!!(((*cc).Kind == ((NU8) 23)))) goto LA1173;
					LOC1170 = (*cc).Info;
				}
				goto LA1171;
				LA1173: ;
				{
					if (!(((NI16) -1) < (*c).Comesfromheuristic.Line)) goto LA1176;
					LOC1170 = (*c).Comesfromheuristic;
				}
				goto LA1171;
				LA1176: ;
				{
					NIM_BOOL LOC1179;
					NI LOC1181;
					tnode225816* LOC1184;
					LOC1179 = 0;
					LOC1179 = !(((*c).Callsite == NIM_NIL));
					if (!(LOC1179)) goto LA1180;
					LOC1181 = 0;
					LOC1181 = safelen_226424((*c).Callsite);
					LOC1179 = (1 < LOC1181);
					LA1180: ;
					if (!LOC1179) goto LA1182;
					LOC1184 = 0;
					LOC1184 = HEX5BHEX5D_226698((*c).Callsite, 1);
					LOC1170 = (*LOC1184).Info;
				}
				goto LA1171;
				LA1182: ;
				{
					LOC1170 = (*c).Debug->data[pc];
				}
				LA1171: ;
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), newnodei_226138(((NU8) (((NI) (k)))), LOC1170));
				(*regs->data[ra_459876].kindU.Node).Flags |= ((NI16)1)<<((((NU8) 12))%(sizeof(NI16)*8));
			}
			break;
			case ((NU8) 110):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA1189;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA1189: ;
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), copynode_226323(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_459876].Kind == ((NU8) 1)))) goto LA1194;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA1194: ;
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), copytree_226329(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_459876].Kind == ((NU8) 1)))) goto LA1199;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA1199: ;
				bb = ((NI) (regs->data[rb].kindU.Intval));
				{
					NI i_474921;
					NI HEX3Atmp_475648;
					NI res_475651;
					i_474921 = 0;
					HEX3Atmp_475648 = 0;
					HEX3Atmp_475648 = (NI32)(((NI) (regs->data[rc].kindU.Intval)) - 1);
					res_475651 = 0;
					{
						while (1) {
							if (!(res_475651 <= HEX3Atmp_475648)) goto LA1203;
							i_474921 = res_475651;
							delson_226294(regs->data[ra_459876].kindU.Node, bb);
							res_475651 += 1;
						} LA1203: ;
					}
				}
			}
			break;
			case ((NU8) 113):
			{
				NI rb;
				NI rc;
				NI64 k;
				NimStringDesc* name;
				tsym225846* sym;
				tident200021* LOC1220;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA1207;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA1207: ;
				k = regs->data[rb].kindU.Intval;
				{
					if (!((*regs->data[rc].kindU.Node).kindU.S3.Strval->Sup.len == 0)) goto LA1211;
					name = copyString(((NimStringDesc*) &TMP2885));
				}
				goto LA1209;
				LA1211: ;
				{
					name = (*regs->data[rc].kindU.Node).kindU.S3.Strval;
				}
				LA1209: ;
				{
					NIM_BOOL LOC1216;
					LOC1216 = 0;
					LOC1216 = (k < IL64(0));
					if (LOC1216) goto LA1217;
					LOC1216 = (IL64(25) < k);
					LA1217: ;
					if (!LOC1216) goto LA1218;
					internalerror_197987((*c).Debug->data[pc], ((NimStringDesc*) &TMP2886));
				}
				LA1218: ;
				LOC1220 = 0;
				LOC1220 = getident_200472(name);
				sym = newsym_226074(((NU8) (k)), LOC1220, (*c).Module, (*c).Debug->data[pc]);
				(*sym).Flags |= ((NI32)1)<<((((NU8) 31))%(sizeof(NI32)*8));
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), newsymnode_226132(sym));
			}
			break;
			case ((NU8) 154):
			{
				NI rb;
				ttype225852* typ;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_459876].Kind == ((NU8) 1)))) goto LA1224;
					myreset_456601((&regs->data[ra_459876]));
					regs->data[ra_459876].Kind = ((NU8) 1);
				}
				LA1224: ;
				typ = (*regs->data[rb].kindU.Node).Typ;
				{
					NimStringDesc* LOC1230;
					if (!!(!((typ == NIM_NIL)))) goto LA1228;
					LOC1230 = 0;
					LOC1230 = HEX24_198126(TMP2887);
					internalerror_198006(LOC1230);
				}
				LA1228: ;
				{
					while (1) {
						NIM_BOOL LOC1233;
						NI LOC1235;
						LOC1233 = 0;
						LOC1233 = ((*typ).Kind == ((NU8) 8));
						if (!(LOC1233)) goto LA1234;
						LOC1235 = 0;
						LOC1235 = len_230005(typ);
						LOC1233 = (0 < LOC1235);
						LA1234: ;
						if (!LOC1233) goto LA1232;
						typ = (*typ).Sons->data[0];
					} LA1232: ;
				}
				asgnRefNoCycle((void**) (&regs->data[ra_459876].kindU.Node), newnode_226090(((NU8) 20)));
				asgnRefNoCycle((void**) (&(*regs->data[ra_459876].kindU.Node).kindU.S3.Strval), typetostring_263031(typ, ((NU8) 2)));
			}
			break;
			}
			pc += 1;
		}
	}
	BeforeRet: ;
}

N_NIMCALL(tnode225816*, evalmacrocall_477329)(tsym225846* module, tnode225816* n, tnode225816* norig, tsym225846* sym) {
	tnode225816* result;
	tctx289048* c;
	NI start;
	tstackframe456208* tos;
	tstackframe456208* LOC18;
	NI maxslots;
	NI l;
	tfullreg456204 LOC26;
	result = 0;
	evalmacrocounter_477324 += 1;
	{
		if (!(100 < evalmacrocounter_477324)) goto LA3;
		globalerror_197934((*n).Info, ((NU16) 183), ((NimStringDesc*) &TMP2723));
	}
	LA3: ;
	{
		NIM_BOOL LOC7;
		NI LOC8;
		NI LOC9;
		NI LOC11;
		TY169969 LOC14;
		NI LOC15;
		NI LOC16;
		NimStringDesc* LOC17;
		LOC7 = 0;
		LOC8 = 0;
		LOC8 = safelen_226424(n);
		LOC9 = 0;
		LOC9 = len_230005((*sym).Typ);
		LOC7 = (LOC8 < LOC9);
		if (!(LOC7)) goto LA10;
		LOC11 = 0;
		LOC11 = len_230005((*sym).Typ);
		LOC7 = (1 < LOC11);
		LA10: ;
		if (!LOC7) goto LA12;
		memset((void*)LOC14, 0, sizeof(LOC14));
		LOC15 = 0;
		LOC15 = safelen_226424(n);
		LOC14[0] = nimIntToStr((LOC15 - 1));
		LOC16 = 0;
		LOC16 = len_230005((*sym).Typ);
		LOC14[1] = nimIntToStr((LOC16 - 1));
		LOC17 = 0;
		LOC17 = nsuFormatOpenArray(((NimStringDesc*) &TMP2724), LOC14, 2);
		globalerror_197945((*n).Info, LOC17);
	}
	LA12: ;
	setupglobalctx_476263(module);
	c = globalctx_476258;
	asgnRefNoCycle((void**) (&(*c).Callsite), norig);
	start = genproc_451721(c, sym);
	LOC18 = 0;
	LOC18 = (tstackframe456208*) newObj((&NTI456206), sizeof(tstackframe456208));
	asgnRefNoCycle((void**) (&(*LOC18).Prc), sym);
	(*LOC18).Comesfrom = 0;
	asgnRef((void**) (&(*LOC18).Next), NIM_NIL);
	tos = LOC18;
	maxslots = (*sym).Offset;
	if ((*tos).Slots) nimGCunrefNoCycle((*tos).Slots);
	(*tos).Slots = (TY456895*) newSeqRC1((&NTI456895), maxslots);
	l = safelen_226424(n);
	{
		if (!(l == 0)) goto LA21;
		l = 1;
	}
	LA21: ;
	(*tos).Slots->data[0].Kind = ((NU8) 1);
	asgnRefNoCycle((void**) (&(*tos).Slots->data[0].kindU.Node), newnodeit_226145(((NU8) 1), (*n).Info, (*(*sym).Typ).Sons->data[0]));
	{
		NI i_477448;
		NI HEX3Atmp_477491;
		NI res_477494;
		i_477448 = 0;
		HEX3Atmp_477491 = 0;
		HEX3Atmp_477491 = ((((*tos).Slots->Sup.len <= l) ? (*tos).Slots->Sup.len : l) - 1);
		res_477494 = 1;
		{
			while (1) {
				if (!(res_477494 <= HEX3Atmp_477491)) goto LA25;
				i_477448 = res_477494;
				(*tos).Slots->data[i_477448].Kind = ((NU8) 1);
				asgnRefNoCycle((void**) (&(*tos).Slots->data[i_477448].kindU.Node), setupmacroparam_477270((*n).kindU.S6.Sons->data[i_477448]));
				res_477494 += 1;
			} LA25: ;
		}
	}
	memset((void*)(&LOC26), 0, sizeof(LOC26));
	rawexecute_459846(c, start, tos, (&LOC26));
	result = regtonode_458280(LOC26);
	{
		NIM_BOOL LOC29;
		LOC29 = 0;
		LOC29 = cyclictree_261173(result);
		if (!LOC29) goto LA30;
		globalerror_197934((*n).Info, ((NU16) 215), ((NimStringDesc*) &TMP2723));
	}
	LA30: ;
	evalmacrocounter_477324 -= 1;
	asgnRefNoCycle((void**) (&(*c).Callsite), NIM_NIL);
	return result;
}

N_NIMCALL(tnode225816*, evalconstexpraux_476751)(tsym225846* module, tsym225846* prc, tnode225816* n_476755, NU8 mode) {
	tnode225816* result;
	tnode225816* n;
	tctx289048* c;
	NI start;
	tstackframe456208* tos;
	tstackframe456208* LOC5;
	tfullreg456204 LOC6;
	result = 0;
	n = transformexpr_441807(module, n_476755);
	setupglobalctx_476263(module);
	c = globalctx_476258;
	(*c).Mode = mode;
	start = genexpr_452665(c, n, !((mode == ((NU8) 4))));
	{
		if (!(((NU8) ((NU32)((*c).Code->data[start] & ((NU32) 255)))) == ((NU8) 0))) goto LA3;
		result = emptynode_226738;
		goto BeforeRet;
	}
	LA3: ;
	LOC5 = 0;
	LOC5 = (tstackframe456208*) newObj((&NTI456206), sizeof(tstackframe456208));
	asgnRefNoCycle((void**) (&(*LOC5).Prc), prc);
	(*LOC5).Comesfrom = 0;
	asgnRef((void**) (&(*LOC5).Next), NIM_NIL);
	tos = LOC5;
	if ((*tos).Slots) nimGCunrefNoCycle((*tos).Slots);
	(*tos).Slots = (TY456895*) newSeqRC1((&NTI456895), (*(*c).Prc).Maxslots);
	memset((void*)(&LOC6), 0, sizeof(LOC6));
	rawexecute_459846(c, start, tos, (&LOC6));
	result = regtonode_458280(LOC6);
	BeforeRet: ;
	return result;
}

N_NIMCALL(tnode225816*, evalstaticexpr_477237)(tsym225846* module, tnode225816* e, tsym225846* prc) {
	tnode225816* result;
	result = 0;
	result = evalconstexpraux_476751(module, prc, e, ((NU8) 3));
	return result;
}

N_NIMCALL(tnode225816*, evalconstexpr_477226)(tsym225846* module, tnode225816* e) {
	tnode225816* result;
	result = 0;
	result = evalconstexpraux_476751(module, NIM_NIL, e, ((NU8) 1));
	return result;
}

N_NIMCALL(void, setupcompiletimevar_477260)(tsym225846* module, tnode225816* n) {
	tnode225816* LOC1;
	LOC1 = 0;
	LOC1 = evalconstexpraux_476751(module, NIM_NIL, n, ((NU8) 4));
}

N_NIMCALL(void, evalstaticstmt_477249)(tsym225846* module, tnode225816* e, tsym225846* prc) {
	tnode225816* LOC1;
	LOC1 = 0;
	LOC1 = evalconstexpraux_476751(module, prc, e, ((NU8) 4));
}

N_NIMCALL(tpasscontext286005*, myopen_476283)(tsym225846* module) {
	tpasscontext286005* result;
	result = 0;
	setupglobalctx_476263(module);
	result = &globalctx_476258->Sup;
	return result;
}

N_NIMCALL(tnode225816*, execute_475772)(tctx289048* c, NI start) {
	tnode225816* result;
	tstackframe456208* tos;
	tstackframe456208* LOC1;
	tfullreg456204 LOC2;
	result = 0;
	LOC1 = 0;
	LOC1 = (tstackframe456208*) newObj((&NTI456206), sizeof(tstackframe456208));
	asgnRefNoCycle((void**) (&(*LOC1).Prc), NIM_NIL);
	(*LOC1).Comesfrom = 0;
	asgnRef((void**) (&(*LOC1).Next), NIM_NIL);
	tos = LOC1;
	if ((*tos).Slots) nimGCunrefNoCycle((*tos).Slots);
	(*tos).Slots = (TY456895*) newSeqRC1((&NTI456895), (*(*c).Prc).Maxslots);
	memset((void*)(&LOC2), 0, sizeof(LOC2));
	rawexecute_459846(c, start, tos, (&LOC2));
	result = regtonode_458280(LOC2);
	return result;
}

N_NIMCALL(void, evalstmt_475801)(tctx289048* c, tnode225816* n_475804) {
	tnode225816* n;
	NI start;
	n = transformexpr_441807((*c).Module, n_475804);
	start = genstmt_452640(c, n);
	{
		tnode225816* LOC5;
		if (!!((((NU8) ((NU32)((*c).Code->data[start] & ((NU32) 255)))) == ((NU8) 0)))) goto LA3;
		LOC5 = 0;
		LOC5 = execute_475772(c, start);
	}
	LA3: ;
}

N_NIMCALL(tnode225816*, myprocess_476412)(tpasscontext286005* c, tnode225816* n) {
	tnode225816* result;
	result = 0;
	{
		if (!(olderrorcount_476407 == gerrorcounter_196306)) goto LA3;
		evalstmt_475801(((tctx289048*) (c)), n);
		result = emptynode_226738;
	}
	goto LA1;
	LA3: ;
	{
		result = n;
	}
	LA1: ;
	olderrorcount_476407 = gerrorcounter_196306;
	return result;
}
NIM_EXTERNC N_NOINLINE(void, HEX00_vmInit)(void) {
}

NIM_EXTERNC N_NOINLINE(void, HEX00_vmDatInit)(void) {
static TNimNode* TMP2727[6];
NI TMP2729;
static char* NIM_CONST TMP2728[6] = {
"rkNone", 
"rkNode", 
"rkInt", 
"rkFloat", 
"rkRegisterAddr", 
"rkNodeAddr"};
static TNimNode* TMP2823[5];
static TNimNode* TMP2826[3];
static TNimNode TMP936[24];
NTI456204.size = sizeof(tfullreg456204);
NTI456204.kind = 18;
NTI456204.base = 0;
NTI456204.flags = 2;
NTI456202.size = sizeof(NU8);
NTI456202.kind = 14;
NTI456202.base = 0;
NTI456202.flags = 3;
for (TMP2729 = 0; TMP2729 < 6; TMP2729++) {
TMP936[TMP2729+1].kind = 1;
TMP936[TMP2729+1].offset = TMP2729;
TMP936[TMP2729+1].name = TMP2728[TMP2729];
TMP2727[TMP2729] = &TMP936[TMP2729+1];
}
TMP936[7].len = 6; TMP936[7].kind = 2; TMP936[7].sons = &TMP2727[0];
NTI456202.node = &TMP936[7];
TMP936[0].kind = 3;
TMP936[0].offset = offsetof(tfullreg456204, Kind);
TMP936[0].typ = (&NTI456202);
TMP936[0].name = "kind";
TMP936[0].sons = &NimDT_456204_kind[0];
TMP936[0].len = 6;
TMP936[8].len = 0; TMP936[8].kind = 2;
NimDT_456204_kind[0] = &TMP936[8];
TMP936[9].kind = 1;
TMP936[9].offset = offsetof(tfullreg456204, kindU.Intval);
TMP936[9].typ = (&NTI5510);
TMP936[9].name = "intVal";
NimDT_456204_kind[2] = &TMP936[9];
TMP936[10].kind = 1;
TMP936[10].offset = offsetof(tfullreg456204, kindU.Floatval);
TMP936[10].typ = (&NTI5512);
TMP936[10].name = "floatVal";
NimDT_456204_kind[3] = &TMP936[10];
TMP936[11].kind = 1;
TMP936[11].offset = offsetof(tfullreg456204, kindU.Node);
TMP936[11].typ = (&NTI225808);
TMP936[11].name = "node";
NimDT_456204_kind[1] = &TMP936[11];
NTI456219.size = sizeof(tfullreg456204*);
NTI456219.kind = 21;
NTI456219.base = (&NTI456204);
NTI456219.flags = 3;
TMP936[12].kind = 1;
TMP936[12].offset = offsetof(tfullreg456204, kindU.Regaddr);
TMP936[12].typ = (&NTI456219);
TMP936[12].name = "regAddr";
NimDT_456204_kind[4] = &TMP936[12];
TMP936[13].kind = 1;
TMP936[13].offset = offsetof(tfullreg456204, kindU.Nodeaddr);
TMP936[13].typ = (&NTI456221);
TMP936[13].name = "nodeAddr";
NimDT_456204_kind[5] = &TMP936[13];
NTI456204.node = &TMP936[0];
NTI456208.size = sizeof(tstackframe456208);
NTI456208.kind = 18;
NTI456208.base = 0;
TMP2823[0] = &TMP936[15];
TMP936[15].kind = 1;
TMP936[15].offset = offsetof(tstackframe456208, Prc);
TMP936[15].typ = (&NTI225814);
TMP936[15].name = "prc";
TMP2823[1] = &TMP936[16];
NTI456895.size = sizeof(TY456895*);
NTI456895.kind = 24;
NTI456895.base = (&NTI456204);
NTI456895.flags = 2;
NTI456895.marker = TMP2824;
TMP936[16].kind = 1;
TMP936[16].offset = offsetof(tstackframe456208, Slots);
TMP936[16].typ = (&NTI456895);
TMP936[16].name = "slots";
TMP2823[2] = &TMP936[17];
TMP936[17].kind = 1;
TMP936[17].offset = offsetof(tstackframe456208, Next);
TMP936[17].typ = (&NTI456206);
TMP936[17].name = "next";
TMP2823[3] = &TMP936[18];
TMP936[18].kind = 1;
TMP936[18].offset = offsetof(tstackframe456208, Comesfrom);
TMP936[18].typ = (&NTI108);
TMP936[18].name = "comesFrom";
TMP2823[4] = &TMP936[19];
TMP936[19].kind = 1;
TMP936[19].offset = offsetof(tstackframe456208, Safepoints);
TMP936[19].typ = (&NTI343680);
TMP936[19].name = "safePoints";
TMP936[14].len = 5; TMP936[14].kind = 2; TMP936[14].sons = &TMP2823[0];
NTI456208.node = &TMP936[14];
NTI456206.size = sizeof(tstackframe456208*);
NTI456206.kind = 22;
NTI456206.base = (&NTI456208);
NTI456206.marker = TMP2825;
NTI475665.size = sizeof(TY475665);
NTI475665.kind = 18;
NTI475665.base = 0;
NTI475665.flags = 2;
TMP2826[0] = &TMP936[21];
TMP936[21].kind = 1;
TMP936[21].offset = offsetof(TY475665, HEX3Astate);
TMP936[21].typ = (&NTI357033);
TMP936[21].name = ":state";
TMP2826[1] = &TMP936[22];
TMP936[22].kind = 1;
TMP936[22].offset = offsetof(TY475665, Error472660);
TMP936[22].typ = (&NTI149);
TMP936[22].name = "error472660";
TMP2826[2] = &TMP936[23];
TMP936[23].kind = 1;
TMP936[23].offset = offsetof(TY475665, Error472762);
TMP936[23].typ = (&NTI149);
TMP936[23].name = "error472762";
TMP936[20].len = 3; TMP936[20].kind = 2; TMP936[20].sons = &TMP2826[0];
NTI475665.node = &TMP936[20];
NTI475768.size = sizeof(TY475665*);
NTI475768.kind = 22;
NTI475768.base = (&NTI475665);
NTI475768.flags = 2;
NTI475768.marker = TMP2827;
}

