/* 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 tctx290048 tctx290048;
typedef struct tnode226816 tnode226816;
typedef struct tsym226846 tsym226846;
typedef struct tlineinfo196539 tlineinfo196539;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct ttype226852 ttype226852;
typedef struct tident201021 tident201021;
typedef struct tnodeseq226810 tnodeseq226810;
typedef struct tidobj201015 tidobj201015;
typedef struct TNimObject TNimObject;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct ttypeseq226848 ttypeseq226848;
typedef struct tscope226840 tscope226840;
typedef struct TY226947 TY226947;
typedef struct tinstantiation226836 tinstantiation226836;
typedef struct tstrtable226820 tstrtable226820;
typedef struct tsymseq226818 tsymseq226818;
typedef struct tloc226830 tloc226830;
typedef struct trope178009 trope178009;
typedef struct tlib226834 tlib226834;
typedef struct tcell44935 tcell44935;
typedef struct tcellset44947 tcellset44947;
typedef struct tgcheap47016 tgcheap47016;
typedef struct tcellseq44951 tcellseq44951;
typedef struct tpagedesc44943 tpagedesc44943;
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 vmargs290042 vmargs290042;
typedef struct TY457895 TY457895;
typedef struct tfullreg457204 tfullreg457204;
typedef struct tpasscontext287005 tpasscontext287005;
typedef struct TY290250 TY290250;
typedef struct TY197414 TY197414;
typedef struct pprocHEX3Aobjecttype290230 pprocHEX3Aobjecttype290230;
typedef struct TY290269 TY290269;
typedef struct TY290270 TY290270;
typedef struct tstackframe457208 tstackframe457208;
typedef struct TY344680 TY344680;
typedef struct TY476665 TY476665;
typedef struct TY459516 TY459516;
typedef struct TY84745 TY84745;
typedef struct TY290231 TY290231;
typedef struct tblock290030 tblock290030;
typedef struct TY290211 TY290211;
typedef struct TY290237 TY290237;
typedef struct TY226936 TY226936;
typedef struct tlistentry127022 tlistentry127022;
typedef struct tbasechunk26438 tbasechunk26438;
typedef struct tfreecell26430 tfreecell26430;
struct  tlineinfo196539  {
NI16 Line;
NI16 Col;
NI32 Fileindex;
};
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct  tnode226816  {
ttype226852* Typ;
tlineinfo196539 Info;
NU16 Flags;
NU8 Kind;
union {
struct {NI64 Intval;
} S1;
struct {NF Floatval;
} S2;
struct {NimStringDesc* Strval;
} S3;
struct {tsym226846* Sym;
} S4;
struct {tident201021* Ident;
} S5;
struct {tnodeseq226810* 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  tidobj201015  {
  TNimObject Sup;
NI Id;
};
struct  tstrtable226820  {
NI Counter;
tsymseq226818* Data;
};
struct  tloc226830  {
NU8 K;
NU8 S;
NU8 Flags;
ttype226852* T;
trope178009* R;
trope178009* Heaproot;
};
struct  tsym226846  {
  tidobj201015 Sup;
NU8 Kind;
union {
struct {ttypeseq226848* Typeinstcache;
tscope226840* Typscope;
} S1;
struct {TY226947* Procinstcache;
tscope226840* Scope;
} S2;
struct {TY226947* Usedgenerics;
tstrtable226820 Tab;
} S3;
struct {tsym226846* Guard;
} S4;
} kindU;
NU16 Magic;
ttype226852* Typ;
tident201021* Name;
tlineinfo196539 Info;
tsym226846* Owner;
NU32 Flags;
tnode226816* Ast;
NU32 Options;
NI Position;
NI Offset;
tloc226830 Loc;
tlib226834* Annex;
tnode226816* Constraint;
};
typedef NimStringDesc* TY170969[2];
struct  tcell44935  {
NI Refcount;
TNimType* Typ;
};
struct  tcellseq44951  {
NI Len;
NI Cap;
tcell44935** D;
};
struct  tcellset44947  {
NI Counter;
NI Max;
tpagedesc44943* Head;
tpagedesc44943** 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;
tcellseq44951 Zct;
tcellseq44951 Decstack;
tcellset44947 Cycleroots;
tcellseq44951 Tempstack;
NI Recgclock;
tmemregion27210 Region;
tgcstat47014 Stat;
};
struct  vmargs290042  {
NI Ra;
NI Rb;
NI Rc;
void* Slots;
tnode226816* Currentexception;
};
typedef struct {
N_NIMCALL_PTR(void, ClPrc) (vmargs290042* args, void* ClEnv);
void* ClEnv;
} vmcallback290044;
struct  tfullreg457204  {
NU8 Kind;
union {
NI64 Intval;
NF Floatval;
tnode226816* Node;
tfullreg457204* Regaddr;
tnode226816** Nodeaddr;
} kindU;
};
struct  TNimNode  {
NU8 kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef N_CLOSURE_PTR(void, TMP2733) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2735) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2737) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2739) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2741) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2743) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2745) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2747) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2749) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2751) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2753) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2755) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2757) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2759) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2761) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2763) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2765) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2767) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2769) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2771) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2773) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2775) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2778) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2780) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2782) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2784) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2787) (vmargs290042* args, void* ClEnv);
typedef N_CLOSURE_PTR(void, TMP2789) (vmargs290042* args, void* ClEnv);
struct  tpasscontext287005  {
  TNimObject Sup;
NIM_BOOL Fromcache;
};
struct TY290270 {
NimStringDesc* Field0;
vmcallback290044 Field1;
};
struct  tctx290048  {
  tpasscontext287005 Sup;
TY290250* Code;
TY197414* Debug;
tnode226816* Globals;
tnode226816* Constants;
ttypeseq226848* Types;
tnode226816* Currentexceptiona;
tnode226816* Currentexceptionb;
NI Exceptioninstr;
pprocHEX3Aobjecttype290230* Prc;
tsym226846* Module;
tnode226816* Callsite;
NU8 Mode;
NU8 Features;
NIM_BOOL Traceactive;
NI Loopiterations;
tlineinfo196539 Comesfromheuristic;
TY290269* Callbacks;
NimStringDesc* Errorflag;
};
struct  tstackframe457208  {
tsym226846* Prc;
TY457895* Slots;
tstackframe457208* Next;
NI Comesfrom;
TY344680* Safepoints;
};
struct  ttype226852  {
  tidobj201015 Sup;
NU8 Kind;
NU8 Callconv;
NU32 Flags;
ttypeseq226848* Sons;
tnode226816* N;
tsym226846* Owner;
tsym226846* Sym;
tsym226846* Destructor;
tsym226846* Deepcopy;
NI64 Size;
NI16 Align;
NI16 Locklevel;
tloc226830 Loc;
};
struct  TY476665  {
NI HEX3Astate;
NimStringDesc* Error473660;
NimStringDesc* Error473762;
};
struct  tident201021  {
  tidobj201015 Sup;
NimStringDesc* S;
tident201021* Next;
NI H;
};
typedef NimStringDesc* TY198301[1];
typedef N_CLOSURE_PTR(void, TMP2839) (vmargs290042* args);
struct TY459516 {
NI Field0;
tstackframe457208* Field1;
};
typedef struct {
N_NIMCALL_PTR(void, ClPrc) (tlineinfo196539 info, NU16 msg, NimStringDesc* arg, void* ClEnv);
void* ClEnv;
} terrorhandler216188;
struct TY84745 {
NimStringDesc* Field0;
NI Field1;
};
struct  tblock290030  {
tsym226846* Label;
TY290211* Fixups;
};
struct TY290237 {
NIM_BOOL Field0;
NU8 Field1;
};
typedef TY290237 TY290234[256];
struct  pprocHEX3Aobjecttype290230  {
TY290231* Blocks;
tsym226846* Sym;
TY290234 Slots;
NI Maxslots;
};
struct  tscope226840  {
NI Depthlevel;
tstrtable226820 Symbols;
tnodeseq226810* Usingsyms;
tscope226840* Parent;
};
struct  tinstantiation226836  {
tsym226846* Sym;
ttypeseq226848* Concretetypes;
TY226936* Usedby;
};
struct  trope178009  {
  TNimObject Sup;
trope178009* Left;
trope178009* Right;
NI Length;
NimStringDesc* Data;
};
struct  tlistentry127022  {
  TNimObject Sup;
tlistentry127022* Prev;
tlistentry127022* Next;
};
struct  tlib226834  {
  tlistentry127022 Sup;
NU8 Kind;
NIM_BOOL Generated;
NIM_BOOL Isoverriden;
trope178009* Name;
tnode226816* Path;
};
typedef NI TY26420[16];
struct  tpagedesc44943  {
tpagedesc44943* 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 tnodeseq226810 {
  TGenericSeq Sup;
  tnode226816* data[SEQ_DECL_SIZE];
};
struct ttypeseq226848 {
  TGenericSeq Sup;
  ttype226852* data[SEQ_DECL_SIZE];
};
struct TY226947 {
  TGenericSeq Sup;
  tinstantiation226836* data[SEQ_DECL_SIZE];
};
struct tsymseq226818 {
  TGenericSeq Sup;
  tsym226846* data[SEQ_DECL_SIZE];
};
struct TY457895 {
  TGenericSeq Sup;
  tfullreg457204 data[SEQ_DECL_SIZE];
};
struct TY290250 {
  TGenericSeq Sup;
  NU32 data[SEQ_DECL_SIZE];
};
struct TY197414 {
  TGenericSeq Sup;
  tlineinfo196539 data[SEQ_DECL_SIZE];
};
struct TY290269 {
  TGenericSeq Sup;
  TY290270 data[SEQ_DECL_SIZE];
};
struct TY344680 {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct TY290211 {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct TY290231 {
  TGenericSeq Sup;
  tblock290030 data[SEQ_DECL_SIZE];
};
struct TY226936 {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
N_NIMCALL(void, globalerror_198934)(tlineinfo196539 info, NU16 msg, NimStringDesc* arg);
static N_INLINE(NI, safelen_227424)(tnode226816* n);
N_NIMCALL(NI, len_231005)(ttype226852* n);
N_NIMCALL(void, globalerror_198945)(tlineinfo196539 info, NimStringDesc* arg);
N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen0);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
N_NIMCALL(void, setupglobalctx_477263)(tsym226846* module);
N_NIMCALL(tctx290048*, newctx_290279)(tsym226846* module);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incref_51025)(tcell44935* c);
static N_INLINE(NIM_BOOL, canbecycleroot_48667)(tcell44935* c);
static N_INLINE(void, rtladdcycleroot_49429)(tcell44935* c);
N_NOINLINE(void, incl_45671)(tcellset44947* s, tcell44935* cell);
static N_INLINE(tcell44935*, usrtocell_48646)(void* usr);
static N_INLINE(void, decref_50604)(tcell44935* c);
static N_INLINE(void, rtladdzct_50204)(tcell44935* c);
N_NOINLINE(void, addzct_48617)(tcellseq44951* s, tcell44935* c);
N_NIMCALL(void, refresh_290391)(tctx290048* c, tsym226846* module);
N_NIMCALL(void, registeradditionalops_477087)(tctx290048* c);
N_NIMCALL(void, registercallback_290422)(tctx290048* c, NimStringDesc* name, vmcallback290044 callback);
N_NIMCALL(void, sqrtwrapper_477090)(vmargs290042* a);
N_NIMCALL(void, setresult_457891)(vmargs290042* a, NF v);
N_NIMCALL(void, myreset_457601)(tfullreg457204* n);
N_NIMCALL(void, genericReset)(void* dest, TNimType* mt);
N_NIMCALL(NF, getfloat_458095)(vmargs290042* a, NI i);
N_NOINLINE(void, raiseassert_84757)(NimStringDesc* msg);
N_NIMCALL(void, lnwrapper_477093)(vmargs290042* a);
N_NIMCALL(void, log10wrapper_477096)(vmargs290042* a);
N_NIMCALL(void, log2wrapper_477099)(vmargs290042* a);
N_NIMCALL(NF, log2_148255)(NF x);
N_NIMCALL(void, expwrapper_477102)(vmargs290042* a);
N_NIMCALL(void, roundwrapper_477105)(vmargs290042* a);
N_NIMCALL(void, setresult_457855)(vmargs290042* a, NI64 v);
N_NIMCALL(void, arccoswrapper_477108)(vmargs290042* a);
N_NIMCALL(void, arcsinwrapper_477111)(vmargs290042* a);
N_NIMCALL(void, arctanwrapper_477114)(vmargs290042* a);
N_NIMCALL(void, arctan2wrapper_477117)(vmargs290042* a);
N_NIMCALL(void, coswrapper_477120)(vmargs290042* a);
N_NIMCALL(void, coshwrapper_477123)(vmargs290042* a);
N_NIMCALL(void, hypotwrapper_477126)(vmargs290042* a);
N_NIMCALL(void, sinhwrapper_477129)(vmargs290042* a);
N_NIMCALL(void, sinwrapper_477132)(vmargs290042* a);
N_NIMCALL(void, tanwrapper_477135)(vmargs290042* a);
N_NIMCALL(void, tanhwrapper_477138)(vmargs290042* a);
N_NIMCALL(void, powwrapper_477141)(vmargs290042* a);
N_NIMCALL(void, truncwrapper_477144)(vmargs290042* a);
N_NIMCALL(void, floorwrapper_477147)(vmargs290042* a);
N_NIMCALL(void, ceilwrapper_477150)(vmargs290042* a);
N_NIMCALL(void, fmodwrapper_477153)(vmargs290042* a);
N_NIMCALL(void, getenvwrapper_477156)(vmargs290042* a);
N_NIMCALL(void, setresult_457972)(vmargs290042* a, NimStringDesc* v);
N_NIMCALL(tnode226816*, newnode_227090)(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_458148)(vmargs290042* a, NI i);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_NIMCALL(void, existsenvwrapper_477159)(vmargs290042* a);
N_NIMCALL(void, setresult_457927)(vmargs290042* a, NIM_BOOL v_457930);
N_NIMCALL(NIM_BOOL, existsenv_120457)(NimStringDesc* key);
N_NIMCALL(void, direxistswrapper_477162)(vmargs290042* a);
static N_INLINE(NIM_BOOL, direxists_116020)(NimStringDesc* dir);
N_NIMCALL(NIM_BOOL, nosexistsDir)(NimStringDesc* dir);
N_NIMCALL(void, fileexistswrapper_477165)(vmargs290042* a);
static N_INLINE(NIM_BOOL, fileexists_116010)(NimStringDesc* filename);
N_NIMCALL(NIM_BOOL, nosexistsFile)(NimStringDesc* filename);
N_NIMCALL(void, writefilewrapper_477168)(vmargs290042* a);
N_NIMCALL(void, writefile_12845)(NimStringDesc* filename, NimStringDesc* content);
N_NIMCALL(void, getcurrentexceptionmsgwrapper_477042)(vmargs290042* a);
N_NIMCALL(NI, genproc_452721)(tctx290048* c, tsym226846* s);
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
N_NIMCALL(void, TMP2825)(void* p, NI op);
N_NIMCALL(void, TMP2826)(void* p, NI op);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
N_NIMCALL(void*, newSeqRC1)(TNimType* typ, NI len);
N_NIMCALL(tnode226816*, newnodeit_227145)(NU8 kind, tlineinfo196539 info, ttype226852* typ);
N_NIMCALL(tnode226816*, setupmacroparam_478270)(tnode226816* x);
N_NIMCALL(tnode226816*, canonvalue_445888)(tnode226816* n);
N_NIMCALL(tnode226816*, regtonode_459280)(tfullreg457204 x);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_NIMCALL(void, rawexecute_460846)(tctx290048* c, NI start, tstackframe457208* tos_460850, tfullreg457204* Result);
N_NIMCALL(void, TMP2828)(void* p, NI op);
N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
N_NIMCALL(void, createstrkeepnode_457670)(tfullreg457204* x);
N_NIMCALL(void, asgncomplex_458833)(tfullreg457204* x, tfullreg457204 y);
N_NIMCALL(tnode226816*, copyvalue_458404)(tnode226816* src);
static N_INLINE(NI, sonslen_227249)(tnode226816* n);
N_NIMCALL(void, moveconst_458236)(tfullreg457204* x, tfullreg457204 y);
N_NIMCALL(void, putintonode_458993)(tnode226816** n, tfullreg457204 x);
N_NIMCALL(void, stacktrace_457351)(tctx290048* c, tstackframe457208* tos, NI pc, NU16 msg, NimStringDesc* arg);
N_NIMCALL(void, msgwriteln_198236)(NimStringDesc* s);
N_NIMCALL(void, stacktraceaux_457233)(tctx290048* c, tstackframe457208* x_457236, NI pc, NI recursionlimit);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(NimStringDesc*, tofilename_198025)(NI32 fileidx);
static N_INLINE(NI, tolinenumber_198073)(tlineinfo196539 info);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_NIMCALL(void, localerror_198955)(tlineinfo196539 info, NU16 msg, NimStringDesc* arg);
static N_INLINE(NI, len_227364)(tnode226816* n);
N_NIMCALL(tnode226816*, skipcolon_460813)(tnode226816* n);
N_NIMCALL(NIM_BOOL, inset_285019)(tnode226816* s, tnode226816* elem);
N_NIMCALL(void, addson_227287)(tnode226816* father, tnode226816* son);
N_NIMCALL(tnode226816*, copytree_227329)(tnode226816* src);
N_NIMCALL(void, add_227498)(tnode226816* father, tnode226816* son);
N_NIMCALL(tnode226816*, diffsets_285054)(tnode226816* a, tnode226816* b);
N_NIMCALL(void, discardsons_227358)(tnode226816* father);
N_NIMCALL(NI64, cardset_285089)(tnode226816* 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_285075)(tnode226816* a, tnode226816* b);
N_NIMCALL(NIM_BOOL, equalsets_285082)(tnode226816* a, tnode226816* b);
N_NIMCALL(tnode226816*, intersectsets_285061)(tnode226816* a, tnode226816* b);
N_NIMCALL(tnode226816*, unionsets_285047)(tnode226816* a, tnode226816* b);
N_NIMCALL(tnode226816*, symdiffsets_285068)(tnode226816* a, tnode226816* b);
N_NIMCALL(NimStringDesc*, nimCharToStr)(NIM_CHAR x);
N_NIMCALL(void, write_12865)(FILE* f, NimStringDesc* s);
static N_INLINE(void, writeln_171205)(FILE* f_171209, NimStringDesc** x_171213, NI x_171213Len0);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s, NI start_74828, 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_305021)(tnode226816* a, tnode226816* b);
N_NIMCALL(NimStringDesc*, msgkindtostring_198378)(NU16 kind);
N_NIMCALL(NI, compile_460696)(tctx290048* c, tsym226846* s);
static N_INLINE(NIM_BOOL, isemptytype_233990)(ttype226852* t);
N_NIMCALL(void, putintoreg_459143)(tfullreg457204* dest, tnode226816* n);
N_NIMCALL(tnode226816*, getnullvalue_451007)(ttype226852* typ, tlineinfo196539 info);
N_NIMCALL(tnode226816*, newnodei_227138)(NU8 kind, tlineinfo196539 info);
N_NIMCALL(tnode226816*, newsymnode_227132)(tsym226846* sym);
N_NIMCALL(tnode226816*, evaltemplate_456334)(tnode226816* n, tsym226846* tmpl, tsym226846* gensymowner);
static N_INLINE(tnode226816*, HEX5BHEX5D_227698)(tnode226816* n, NI i);
N_NIMCALL(NIM_BOOL, overlap_285012)(tnode226816* a, tnode226816* b);
N_NIMCALL(void, pushsafepoint_459397)(tstackframe457208* f, NI pc);
N_NIMCALL(TGenericSeq*, incrSeq)(TGenericSeq* seq, NI elemsize);
N_NIMCALL(void, popsafepoint_459456)(tstackframe457208* f);
static N_INLINE(NI, pop_459462)(TY344680** s_459470);
N_NIMCALL(TGenericSeq*, setLengthSeq)(TGenericSeq* seq, NI elemsize, NI newlen);
N_NIMCALL(void, cleanuponexception_459512)(tctx290048* c, tstackframe457208* tos, TY459516* Result);
N_NIMCALL(ttype226852*, skiptypes_231245)(ttype226852* t, NU64 kinds);
N_NIMCALL(NI, inheritancediff_271588)(ttype226852* a, ttype226852* b);
N_NIMCALL(void, bailout_457373)(tctx290048* c, tstackframe457208* tos);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_NIMCALL(NIM_BOOL, fitsregister_449686)(ttype226852* t);
N_NIMCALL(NimStringDesc*, rendertree_251058)(tnode226816* n, NU8 renderflags);
N_NIMCALL(void, message_198976)(tlineinfo196539 info, NU16 msg, NimStringDesc* arg);
N_NIMCALL(NI64, getordvalue_264187)(tnode226816* n);
N_NIMCALL(void, genericShallowAssign)(void* dest, void* src, TNimType* mt);
N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newlen);
N_NIMCALL(NIM_BOOL, sametype_269351)(ttype226852* a, ttype226852* b, NU8 flags);
N_NIMCALL(void, internalerror_198987)(tlineinfo196539 info, NimStringDesc* errmsg);
N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
N_NIMCALL(tnode226816*, copynode_227323)(tnode226816* src);
N_NIMCALL(NimStringDesc*, reprEnum)(NI e_80907, TNimType* typ);
N_NIMCALL(NimStringDesc*, opslurp_455039)(NimStringDesc* file, tlineinfo196539 info, tsym226846* module);
N_NIMCALL(NimStringDesc*, opgorge_455027)(NimStringDesc* cmd, NimStringDesc* input);
N_NIMCALL(tnode226816*, parsestring_249539)(NimStringDesc* s, NimStringDesc* filename, NI line, terrorhandler216188 errorhandler);
N_NIMCALL(NimStringDesc*, tofullpath_198037)(NI32 fileidx);
N_CLOSURE(void, HEX3Aanonymous_473689)(tlineinfo196539 info, NU16 msg, NimStringDesc* arg, void* ClEnv);
N_NIMCALL(NimStringDesc*, formatmsg_198757)(tlineinfo196539 info, NU16 msg, NimStringDesc* arg);
N_CLOSURE(void, HEX3Aanonymous_473791)(tlineinfo196539 info, NU16 msg, NimStringDesc* arg, void* ClEnv);
static N_INLINE(NimStringDesc*, tofilelinecol_198103)(tlineinfo196539 info);
N_NIMCALL(tident201021*, getident_201472)(NimStringDesc* identifier);
N_NIMCALL(NIM_BOOL, opconv_459906)(tfullreg457204* dest, tfullreg457204 src, ttype226852* desttyp, ttype226852* srctyp);
N_NIMCALL(void, internalerror_199006)(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_264031)(ttype226852* typ, NU8 prefer);
N_NIMCALL(NI64, firstord_264004)(ttype226852* t);
N_NIMCALL(NI64, lastord_264010)(ttype226852* t);
N_NIMCALL(NimStringDesc*, HEX24_199126)(TY84745 x_199130);
N_NIMCALL(void, delson_227294)(tnode226816* father, NI idx);
N_NIMCALL(tsym226846*, newsym_227074)(NU8 symkind, tident201021* name, tsym226846* owner, tlineinfo196539 info);
N_NIMCALL(NIM_BOOL, cyclictree_262173)(tnode226816* n);
N_NIMCALL(tnode226816*, evalconstexpraux_477751)(tsym226846* module, tsym226846* prc, tnode226816* n_477755, NU8 mode);
N_NIMCALL(tnode226816*, transformexpr_442807)(tsym226846* module, tnode226816* n);
N_NIMCALL(NI, genexpr_453665)(tctx290048* c, tnode226816* n, NIM_BOOL requiresvalue);
N_NIMCALL(void, evalstmt_476801)(tctx290048* c, tnode226816* n_476804);
N_NIMCALL(NI, genstmt_453640)(tctx290048* c, tnode226816* n);
N_NIMCALL(tnode226816*, execute_476772)(tctx290048* c, NI start);
STRING_LITERAL(TMP2724, "", 0);
STRING_LITERAL(TMP2725, "got $#, but expected $# argument(s)", 35);
STRING_LITERAL(TMP2727, "stdlib.math.sqrt", 16);
TNimNode* NimDT_457204_kind[7];
STRING_LITERAL(TMP2731, "i < a.rc - 1 ", 13);
STRING_LITERAL(TMP2732, "s[i + a.rb + 1].kind == rkFloat ", 32);
STRING_LITERAL(TMP2734, "stdlib.math.ln", 14);
STRING_LITERAL(TMP2736, "stdlib.math.log10", 17);
STRING_LITERAL(TMP2738, "stdlib.math.log2", 16);
STRING_LITERAL(TMP2740, "stdlib.math.exp", 15);
STRING_LITERAL(TMP2742, "stdlib.math.round", 17);
STRING_LITERAL(TMP2744, "stdlib.math.arccos", 18);
STRING_LITERAL(TMP2746, "stdlib.math.arcsin", 18);
STRING_LITERAL(TMP2748, "stdlib.math.arctan", 18);
STRING_LITERAL(TMP2750, "stdlib.math.arctan2", 19);
STRING_LITERAL(TMP2752, "stdlib.math.cos", 15);
STRING_LITERAL(TMP2754, "stdlib.math.cosh", 16);
STRING_LITERAL(TMP2756, "stdlib.math.hypot", 17);
STRING_LITERAL(TMP2758, "stdlib.math.sinh", 16);
STRING_LITERAL(TMP2760, "stdlib.math.sin", 15);
STRING_LITERAL(TMP2762, "stdlib.math.tan", 15);
STRING_LITERAL(TMP2764, "stdlib.math.tanh", 16);
STRING_LITERAL(TMP2766, "stdlib.math.pow", 15);
STRING_LITERAL(TMP2768, "stdlib.math.trunc", 17);
STRING_LITERAL(TMP2770, "stdlib.math.floor", 17);
STRING_LITERAL(TMP2772, "stdlib.math.ceil", 16);
STRING_LITERAL(TMP2774, "stdlib.math.fmod", 16);
STRING_LITERAL(TMP2776, "stdlib.os.getEnv", 16);
STRING_LITERAL(TMP2777, "s[i + a.rb + 1].kind == rkNode ", 31);
STRING_LITERAL(TMP2779, "stdlib.os.existsEnv", 19);
STRING_LITERAL(TMP2781, "stdlib.os.dirExists", 19);
STRING_LITERAL(TMP2783, "stdlib.os.fileExists", 20);
STRING_LITERAL(TMP2785, "stdlib.system.writeFile", 23);
STRING_LITERAL(TMP2788, "stdlib.system.getCurrentExceptionMsg", 36);
STRING_LITERAL(TMP2829, "stack trace: (most recent call last)", 36);
STRING_LITERAL(TMP2830, " calls omitted\012", 15);
STRING_LITERAL(TMP2835, "\012", 1);
STRING_LITERAL(TMP2838, "unknown type", 12);
NIM_CONST TY170969 TMP2837 = {((NimStringDesc*) &TMP2838),
((NimStringDesc*) &TMP2838)}
;
STRING_LITERAL(TMP2840, "VM not allowed to do FFI", 24);
STRING_LITERAL(TMP2841, "VM not built with FFI support", 29);
NIM_CONST TY459516 TMP2845 = {-1,
NIM_NIL}
;
STRING_LITERAL(TMP2846, "cannot swap operands", 20);
STRING_LITERAL(TMP2847, "too implement", 13);
STRING_LITERAL(TMP2848, "value out of range", 18);
STRING_LITERAL(TMP2849, "intVal", 6);
STRING_LITERAL(TMP2850, "floatVal", 8);
STRING_LITERAL(TMP2851, "symbol", 6);
STRING_LITERAL(TMP2852, "ident", 5);
STRING_LITERAL(TMP2853, "unknown opcode ", 15);
STRING_LITERAL(TMP2857, "strVal", 6);
STRING_LITERAL(TMP2872, "multiple statements", 19);
STRING_LITERAL(TMP2873, "callsite", 8);
STRING_LITERAL(TMP2874, "(", 1);
STRING_LITERAL(TMP2875, ",", 1);
STRING_LITERAL(TMP2876, ")", 1);
STRING_LITERAL(TMP2877, "cannot set type", 15);
STRING_LITERAL(TMP2878, "opConv for enum", 15);
STRING_LITERAL(TMP2879, "false", 5);
STRING_LITERAL(TMP2880, "true", 4);
STRING_LITERAL(TMP2881, "cannot convert to string ", 25);
STRING_LITERAL(TMP2882, "cannot evaluate cast", 20);
STRING_LITERAL(TMP2884, "compiler/vm.nim", 15);
NIM_CONST TY84745 TMP2883 = {((NimStringDesc*) &TMP2884),
1277}
;
NIM_CONST TY84745 TMP2885 = {((NimStringDesc*) &TMP2884),
1278}
;
STRING_LITERAL(TMP2886, "request to create a NimNode of invalid kind", 43);
STRING_LITERAL(TMP2887, ":tmp", 4);
STRING_LITERAL(TMP2888, "request to create symbol of invalid kind", 40);
NIM_CONST TY84745 TMP2889 = {((NimStringDesc*) &TMP2884),
1332}
;
tctx290048* globalctx_477258;
NI olderrorcount_477407;
NI evalmacrocounter_478324;
extern tgcheap47016 gch_47044;
TNimType NTI457204; /* TFullReg */
TNimType NTI457202; /* TRegisterKind */
extern TNimType NTI5510; /* BiggestInt */
extern TNimType NTI5512; /* BiggestFloat */
extern TNimType NTI226808; /* PNode */
TNimType NTI457219; /* ptr TFullReg */
extern TNimType NTI457221; /* ptr PNode */
TNimType NTI457208; /* TStackFrame */
extern TNimType NTI226814; /* PSym */
TNimType NTI457895; /* seq[TFullReg] */
extern TNimType NTI108; /* int */
extern TNimType NTI344680; /* seq[int] */
TNimType NTI457206; /* PStackFrame */
TNimType NTI476665; /* object */
extern TNimType NTI358033; /* range -1..0(int) */
extern TNimType NTI149; /* string */
TNimType NTI476768; /* ref object */
extern TNimType NTI226816; /* TNode */
extern TNimType NTI226810; /* TNodeSeq */
extern TNimType NTI290028; /* TOpcode */
extern tnode226816* emptynode_227738;
extern NI gerrorcounter_197306;

static N_INLINE(NI, safelen_227424)(tnode226816* 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)(tcell44935* c) {
	NIM_BOOL result;
	result = 0;
	result = !((((*(*c).Typ).flags &(1<<((((NU8) 1))&7)))!=0));
	return result;
}

static N_INLINE(void, rtladdcycleroot_49429)(tcell44935* 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)(tcell44935* 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(tcell44935*, usrtocell_48646)(void* usr) {
	tcell44935* result;
	result = 0;
	result = ((tcell44935*) ((NI)((NU32)(((NI) (usr))) - (NU32)(((NI)sizeof(tcell44935))))));
	return result;
}

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

static N_INLINE(void, decref_50604)(tcell44935* 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) {
	{
		tcell44935* LOC5;
		if (!!((src == NIM_NIL))) goto LA3;
		LOC5 = 0;
		LOC5 = usrtocell_48646(src);
		incref_51025(LOC5);
	}
	LA3: ;
	{
		tcell44935* LOC10;
		if (!!(((*dest) == NIM_NIL))) goto LA8;
		LOC10 = 0;
		LOC10 = usrtocell_48646((*dest));
		decref_50604(LOC10);
	}
	LA8: ;
	(*dest) = src;
}

N_NIMCALL(void, myreset_457601)(tfullreg457204* n) {
	genericReset((void*)(&(*n)), (&NTI457204));
}

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

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

N_NIMCALL(void, sqrtwrapper_477090)(vmargs290042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_458095(a, 0);
	LOC2 = 0;
	LOC2 = sqrt(LOC1);
	setresult_457891(a, LOC2);
}

N_NIMCALL(void, lnwrapper_477093)(vmargs290042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_458095(a, 0);
	LOC2 = 0;
	LOC2 = log(LOC1);
	setresult_457891(a, LOC2);
}

N_NIMCALL(void, log10wrapper_477096)(vmargs290042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_458095(a, 0);
	LOC2 = 0;
	LOC2 = log10(LOC1);
	setresult_457891(a, LOC2);
}

N_NIMCALL(void, log2wrapper_477099)(vmargs290042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_458095(a, 0);
	LOC2 = 0;
	LOC2 = log2_148255(LOC1);
	setresult_457891(a, LOC2);
}

N_NIMCALL(void, expwrapper_477102)(vmargs290042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_458095(a, 0);
	LOC2 = 0;
	LOC2 = exp(LOC1);
	setresult_457891(a, LOC2);
}

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

N_NIMCALL(void, roundwrapper_477105)(vmargs290042* a) {
	NF LOC1;
	NI LOC2;
	LOC1 = 0;
	LOC1 = getfloat_458095(a, 0);
	LOC2 = 0;
	LOC2 = lrint(LOC1);
	setresult_457855(a, ((NI64) (LOC2)));
}

N_NIMCALL(void, arccoswrapper_477108)(vmargs290042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_458095(a, 0);
	LOC2 = 0;
	LOC2 = acos(LOC1);
	setresult_457891(a, LOC2);
}

N_NIMCALL(void, arcsinwrapper_477111)(vmargs290042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_458095(a, 0);
	LOC2 = 0;
	LOC2 = asin(LOC1);
	setresult_457891(a, LOC2);
}

N_NIMCALL(void, arctanwrapper_477114)(vmargs290042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_458095(a, 0);
	LOC2 = 0;
	LOC2 = atan(LOC1);
	setresult_457891(a, LOC2);
}

N_NIMCALL(void, arctan2wrapper_477117)(vmargs290042* a) {
	NF LOC1;
	NF LOC2;
	NF LOC3;
	LOC1 = 0;
	LOC1 = getfloat_458095(a, 0);
	LOC2 = 0;
	LOC2 = getfloat_458095(a, 1);
	LOC3 = 0;
	LOC3 = atan2(LOC1, LOC2);
	setresult_457891(a, LOC3);
}

N_NIMCALL(void, coswrapper_477120)(vmargs290042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_458095(a, 0);
	LOC2 = 0;
	LOC2 = cos(LOC1);
	setresult_457891(a, LOC2);
}

N_NIMCALL(void, coshwrapper_477123)(vmargs290042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_458095(a, 0);
	LOC2 = 0;
	LOC2 = cosh(LOC1);
	setresult_457891(a, LOC2);
}

N_NIMCALL(void, hypotwrapper_477126)(vmargs290042* a) {
	NF LOC1;
	NF LOC2;
	NF LOC3;
	LOC1 = 0;
	LOC1 = getfloat_458095(a, 0);
	LOC2 = 0;
	LOC2 = getfloat_458095(a, 1);
	LOC3 = 0;
	LOC3 = hypot(LOC1, LOC2);
	setresult_457891(a, LOC3);
}

N_NIMCALL(void, sinhwrapper_477129)(vmargs290042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_458095(a, 0);
	LOC2 = 0;
	LOC2 = sinh(LOC1);
	setresult_457891(a, LOC2);
}

N_NIMCALL(void, sinwrapper_477132)(vmargs290042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_458095(a, 0);
	LOC2 = 0;
	LOC2 = sin(LOC1);
	setresult_457891(a, LOC2);
}

N_NIMCALL(void, tanwrapper_477135)(vmargs290042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_458095(a, 0);
	LOC2 = 0;
	LOC2 = tan(LOC1);
	setresult_457891(a, LOC2);
}

N_NIMCALL(void, tanhwrapper_477138)(vmargs290042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_458095(a, 0);
	LOC2 = 0;
	LOC2 = tanh(LOC1);
	setresult_457891(a, LOC2);
}

N_NIMCALL(void, powwrapper_477141)(vmargs290042* a) {
	NF LOC1;
	NF LOC2;
	NF LOC3;
	LOC1 = 0;
	LOC1 = getfloat_458095(a, 0);
	LOC2 = 0;
	LOC2 = getfloat_458095(a, 1);
	LOC3 = 0;
	LOC3 = pow(LOC1, LOC2);
	setresult_457891(a, LOC3);
}

N_NIMCALL(void, truncwrapper_477144)(vmargs290042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_458095(a, 0);
	LOC2 = 0;
	LOC2 = trunc(LOC1);
	setresult_457891(a, LOC2);
}

N_NIMCALL(void, floorwrapper_477147)(vmargs290042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_458095(a, 0);
	LOC2 = 0;
	LOC2 = floor(LOC1);
	setresult_457891(a, LOC2);
}

N_NIMCALL(void, ceilwrapper_477150)(vmargs290042* a) {
	NF LOC1;
	NF LOC2;
	LOC1 = 0;
	LOC1 = getfloat_458095(a, 0);
	LOC2 = 0;
	LOC2 = ceil(LOC1);
	setresult_457891(a, LOC2);
}

N_NIMCALL(void, fmodwrapper_477153)(vmargs290042* a) {
	NF LOC1;
	NF LOC2;
	NF LOC3;
	LOC1 = 0;
	LOC1 = getfloat_458095(a, 0);
	LOC2 = 0;
	LOC2 = getfloat_458095(a, 1);
	LOC3 = 0;
	LOC3 = fmod(LOC1, LOC2);
	setresult_457891(a, LOC3);
}

static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src) {
	{
		tcell44935* c;
		if (!!((src == NIM_NIL))) goto LA3;
		c = usrtocell_48646(src);
		(*c).Refcount += 8;
	}
	LA3: ;
	{
		tcell44935* 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) {
	tcell44935* c;
	c = usrtocell_48646(p);
	{
		(*c).Refcount -= 8;
		if (!((NU32)((*c).Refcount) < (NU32)(8))) goto LA3;
		rtladdzct_50204(c);
	}
	LA3: ;
}

N_NIMCALL(void, setresult_457972)(vmargs290042* a, NimStringDesc* v) {
	TY457895* s;
	NimStringDesc* LOC5;
	s = 0;
	s = ((TY457895*) ((*a).Slots));
	{
		if (!!((s->data[(*a).Ra].Kind == ((NU8) 1)))) goto LA3;
		myreset_457601((&s->data[(*a).Ra]));
		s->data[(*a).Ra].Kind = ((NU8) 1);
	}
	LA3: ;
	asgnRefNoCycle((void**) (&s->data[(*a).Ra].kindU.Node), newnode_227090(((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_458148)(vmargs290042* a, NI i) {
	NimStringDesc* result;
	TY457895* s;
	result = 0;
	{
		if (!!((((NI) (i)) < ((NI) ((NI32)(((NI) ((*a).Rc)) - 1)))))) goto LA3;
		raiseassert_84757(((NimStringDesc*) &TMP2731));
	}
	LA3: ;
	s = ((TY457895*) ((*a).Slots));
	{
		if (!!((s->data[(NI32)(((NI) ((NI32)(((NI) (i)) + ((NI) ((*a).Rb))))) + 1)].Kind == ((NU8) 1)))) goto LA7;
		raiseassert_84757(((NimStringDesc*) &TMP2777));
	}
	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_477156)(vmargs290042* a) {
	NimStringDesc* LOC1;
	NimStringDesc* LOC2;
	LOC1 = 0;
	LOC1 = getstring_458148(a, 0);
	LOC2 = 0;
	LOC2 = getenv_120442(LOC1);
	setresult_457972(a, LOC2);
}

N_NIMCALL(void, setresult_457927)(vmargs290042* a, NIM_BOOL v_457930) {
	NI v;
	TY457895* s;
	v = v_457930;
	s = 0;
	s = ((TY457895*) ((*a).Slots));
	{
		if (!!((s->data[(*a).Ra].Kind == ((NU8) 2)))) goto LA3;
		myreset_457601((&s->data[(*a).Ra]));
		s->data[(*a).Ra].Kind = ((NU8) 2);
	}
	LA3: ;
	s->data[(*a).Ra].kindU.Intval = ((NI64) (v));
}

N_NIMCALL(void, existsenvwrapper_477159)(vmargs290042* a) {
	NimStringDesc* LOC1;
	NIM_BOOL LOC2;
	LOC1 = 0;
	LOC1 = getstring_458148(a, 0);
	LOC2 = 0;
	LOC2 = existsenv_120457(LOC1);
	setresult_457927(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_477162)(vmargs290042* a) {
	NimStringDesc* LOC1;
	NIM_BOOL LOC2;
	LOC1 = 0;
	LOC1 = getstring_458148(a, 0);
	LOC2 = 0;
	LOC2 = direxists_116020(LOC1);
	setresult_457927(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_477165)(vmargs290042* a) {
	NimStringDesc* LOC1;
	NIM_BOOL LOC2;
	LOC1 = 0;
	LOC1 = getstring_458148(a, 0);
	LOC2 = 0;
	LOC2 = fileexists_116010(LOC1);
	setresult_457927(a, LOC2);
}

N_NIMCALL(void, writefilewrapper_477168)(vmargs290042* a) {
	NimStringDesc* LOC1;
	NimStringDesc* LOC2;
	LOC1 = 0;
	LOC1 = getstring_458148(a, 0);
	LOC2 = 0;
	LOC2 = getstring_458148(a, 1);
	writefile_12845(LOC1, LOC2);
}

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

N_NIMCALL(void, registeradditionalops_477087)(tctx290048* c) {
	vmcallback290044 LOC1;
	vmcallback290044 LOC2;
	vmcallback290044 LOC3;
	vmcallback290044 LOC4;
	vmcallback290044 LOC5;
	vmcallback290044 LOC6;
	vmcallback290044 LOC7;
	vmcallback290044 LOC8;
	vmcallback290044 LOC9;
	vmcallback290044 LOC10;
	vmcallback290044 LOC11;
	vmcallback290044 LOC12;
	vmcallback290044 LOC13;
	vmcallback290044 LOC14;
	vmcallback290044 LOC15;
	vmcallback290044 LOC16;
	vmcallback290044 LOC17;
	vmcallback290044 LOC18;
	vmcallback290044 LOC19;
	vmcallback290044 LOC20;
	vmcallback290044 LOC21;
	vmcallback290044 LOC22;
	vmcallback290044 LOC23;
	vmcallback290044 LOC24;
	vmcallback290044 LOC25;
	vmcallback290044 LOC26;
	vmcallback290044 LOC27;
	vmcallback290044 LOC28;
	memset((void*)(&LOC1), 0, sizeof(LOC1));
	LOC1.ClPrc = ((TMP2733) (sqrtwrapper_477090)); LOC1.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2727), LOC1);
	memset((void*)(&LOC2), 0, sizeof(LOC2));
	LOC2.ClPrc = ((TMP2735) (lnwrapper_477093)); LOC2.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2734), LOC2);
	memset((void*)(&LOC3), 0, sizeof(LOC3));
	LOC3.ClPrc = ((TMP2737) (log10wrapper_477096)); LOC3.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2736), LOC3);
	memset((void*)(&LOC4), 0, sizeof(LOC4));
	LOC4.ClPrc = ((TMP2739) (log2wrapper_477099)); LOC4.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2738), LOC4);
	memset((void*)(&LOC5), 0, sizeof(LOC5));
	LOC5.ClPrc = ((TMP2741) (expwrapper_477102)); LOC5.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2740), LOC5);
	memset((void*)(&LOC6), 0, sizeof(LOC6));
	LOC6.ClPrc = ((TMP2743) (roundwrapper_477105)); LOC6.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2742), LOC6);
	memset((void*)(&LOC7), 0, sizeof(LOC7));
	LOC7.ClPrc = ((TMP2745) (arccoswrapper_477108)); LOC7.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2744), LOC7);
	memset((void*)(&LOC8), 0, sizeof(LOC8));
	LOC8.ClPrc = ((TMP2747) (arcsinwrapper_477111)); LOC8.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2746), LOC8);
	memset((void*)(&LOC9), 0, sizeof(LOC9));
	LOC9.ClPrc = ((TMP2749) (arctanwrapper_477114)); LOC9.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2748), LOC9);
	memset((void*)(&LOC10), 0, sizeof(LOC10));
	LOC10.ClPrc = ((TMP2751) (arctan2wrapper_477117)); LOC10.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2750), LOC10);
	memset((void*)(&LOC11), 0, sizeof(LOC11));
	LOC11.ClPrc = ((TMP2753) (coswrapper_477120)); LOC11.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2752), LOC11);
	memset((void*)(&LOC12), 0, sizeof(LOC12));
	LOC12.ClPrc = ((TMP2755) (coshwrapper_477123)); LOC12.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2754), LOC12);
	memset((void*)(&LOC13), 0, sizeof(LOC13));
	LOC13.ClPrc = ((TMP2757) (hypotwrapper_477126)); LOC13.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2756), LOC13);
	memset((void*)(&LOC14), 0, sizeof(LOC14));
	LOC14.ClPrc = ((TMP2759) (sinhwrapper_477129)); LOC14.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2758), LOC14);
	memset((void*)(&LOC15), 0, sizeof(LOC15));
	LOC15.ClPrc = ((TMP2761) (sinwrapper_477132)); LOC15.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2760), LOC15);
	memset((void*)(&LOC16), 0, sizeof(LOC16));
	LOC16.ClPrc = ((TMP2763) (tanwrapper_477135)); LOC16.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2762), LOC16);
	memset((void*)(&LOC17), 0, sizeof(LOC17));
	LOC17.ClPrc = ((TMP2765) (tanhwrapper_477138)); LOC17.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2764), LOC17);
	memset((void*)(&LOC18), 0, sizeof(LOC18));
	LOC18.ClPrc = ((TMP2767) (powwrapper_477141)); LOC18.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2766), LOC18);
	memset((void*)(&LOC19), 0, sizeof(LOC19));
	LOC19.ClPrc = ((TMP2769) (truncwrapper_477144)); LOC19.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2768), LOC19);
	memset((void*)(&LOC20), 0, sizeof(LOC20));
	LOC20.ClPrc = ((TMP2771) (floorwrapper_477147)); LOC20.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2770), LOC20);
	memset((void*)(&LOC21), 0, sizeof(LOC21));
	LOC21.ClPrc = ((TMP2773) (ceilwrapper_477150)); LOC21.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2772), LOC21);
	memset((void*)(&LOC22), 0, sizeof(LOC22));
	LOC22.ClPrc = ((TMP2775) (fmodwrapper_477153)); LOC22.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2774), LOC22);
	memset((void*)(&LOC23), 0, sizeof(LOC23));
	LOC23.ClPrc = ((TMP2778) (getenvwrapper_477156)); LOC23.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2776), LOC23);
	memset((void*)(&LOC24), 0, sizeof(LOC24));
	LOC24.ClPrc = ((TMP2780) (existsenvwrapper_477159)); LOC24.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2779), LOC24);
	memset((void*)(&LOC25), 0, sizeof(LOC25));
	LOC25.ClPrc = ((TMP2782) (direxistswrapper_477162)); LOC25.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2781), LOC25);
	memset((void*)(&LOC26), 0, sizeof(LOC26));
	LOC26.ClPrc = ((TMP2784) (fileexistswrapper_477165)); LOC26.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2783), LOC26);
	memset((void*)(&LOC27), 0, sizeof(LOC27));
	LOC27.ClPrc = ((TMP2787) (writefilewrapper_477168)); LOC27.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2785), LOC27);
	memset((void*)(&LOC28), 0, sizeof(LOC28));
	LOC28.ClPrc = ((TMP2789) (getcurrentexceptionmsgwrapper_477042)); LOC28.ClEnv = NIM_NIL;
	registercallback_290422(c, ((NimStringDesc*) &TMP2788), LOC28);
}

N_NIMCALL(void, setupglobalctx_477263)(tsym226846* module) {
	{
		if (!globalctx_477258 == 0) goto LA3;
		asgnRef((void**) (&globalctx_477258), newctx_290279(module));
	}
	goto LA1;
	LA3: ;
	{
		refresh_290391(globalctx_477258, module);
	}
	LA1: ;
	registeradditionalops_477087(globalctx_477258);
}
N_NIMCALL(void, TMP2825)(void* p, NI op) {
	TY457895* a;
	NI LOC1;
	a = (TY457895*)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, TMP2826)(void* p, NI op) {
	tstackframe457208* a;
	a = (tstackframe457208*)p;
	nimGCvisit((void*)(*a).Prc, op);
	nimGCvisit((void*)(*a).Slots, op);
	nimGCvisit((void*)(*a).Next, op);
	nimGCvisit((void*)(*a).Safepoints, op);
}

N_NIMCALL(tnode226816*, setupmacroparam_478270)(tnode226816* x) {
	tnode226816* 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_445888(result);
	(*result).Flags |= ((NI16)1)<<((((NU8) 12))%(sizeof(NI16)*8));
	asgnRefNoCycle((void**) (&(*result).Typ), (*x).Typ);
	return result;
}

N_NIMCALL(tnode226816*, regtonode_459280)(tfullreg457204 x) {
	tnode226816* result;
	result = 0;
	switch (x.Kind) {
	case ((NU8) 0):
	{
		result = newnode_227090(((NU8) 1));
	}
	break;
	case ((NU8) 2):
	{
		result = newnode_227090(((NU8) 6));
		(*result).kindU.S1.Intval = x.kindU.Intval;
	}
	break;
	case ((NU8) 3):
	{
		result = newnode_227090(((NU8) 16));
		(*result).kindU.S2.Floatval = x.kindU.Floatval;
	}
	break;
	case ((NU8) 1):
	{
		result = x.kindU.Node;
	}
	break;
	case ((NU8) 4):
	{
		result = regtonode_459280((*x.kindU.Regaddr));
	}
	break;
	case ((NU8) 5):
	{
		unsureAsgnRef((void**) (&result), (*x.kindU.Nodeaddr));
	}
	break;
	}
	return result;
}
N_NIMCALL(void, TMP2828)(void* p, NI op) {
	TY476665* a;
	a = (TY476665*)p;
	nimGCvisit((void*)(*a).Error473660, op);
	nimGCvisit((void*)(*a).Error473762, op);
}

N_NIMCALL(void, createstrkeepnode_457670)(tfullreg457204* x) {
	{
		if (!(*x).kindU.Node == 0) goto LA3;
		unsureAsgnRef((void**) (&(*x).kindU.Node), newnode_227090(((NU8) 20)));
	}
	goto LA1;
	LA3: ;
	{
		if (!((*(*x).kindU.Node).Kind == ((NU8) 23))) goto LA6;
		genericReset((void*)(&(*(*x).kindU.Node)), (&NTI226816));
		(*(*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_227090(((NU8) 20)));
	}
	goto LA1;
	LA11: ;
	LA1: ;
}

static N_INLINE(NI, sonslen_227249)(tnode226816* 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(tnode226816*, copyvalue_458404)(tnode226816* src) {
	tnode226816* 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_227090((*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_227249(src);
		if ((*result).kindU.S6.Sons) nimGCunrefNoCycle((*result).kindU.S6.Sons);
		(*result).kindU.S6.Sons = (tnodeseq226810*) newSeqRC1((&NTI226810), LOC14);
		{
			NI i_458783;
			NI HEX3Atmp_458813;
			NI LOC16;
			NI res_458816;
			i_458783 = 0;
			HEX3Atmp_458813 = 0;
			LOC16 = 0;
			LOC16 = sonslen_227249(src);
			HEX3Atmp_458813 = (NI32)(LOC16 - 1);
			res_458816 = 0;
			{
				while (1) {
					if (!(res_458816 <= HEX3Atmp_458813)) goto LA18;
					i_458783 = res_458816;
					asgnRefNoCycle((void**) (&(*result).kindU.S6.Sons->data[i_458783]), copyvalue_458404((*src).kindU.S6.Sons->data[i_458783]));
					res_458816 += 1;
				} LA18: ;
			}
		}
	}
	break;
	}
	BeforeRet: ;
	return result;
}

N_NIMCALL(void, asgncomplex_458833)(tfullreg457204* x, tfullreg457204 y) {
	{
		if (!!(((*x).Kind == y.Kind))) goto LA3;
		myreset_457601(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_458404(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_458236)(tfullreg457204* x, tfullreg457204 y) {
	{
		if (!!(((*x).Kind == y.Kind))) goto LA3;
		myreset_457601(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_458993)(tnode226816** n, tfullreg457204 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)), (&NTI226816));
		}
		LA5: ;
	}
	break;
	case ((NU8) 4):
	{
		putintonode_458993(n, (*x.kindU.Regaddr));
	}
	break;
	case ((NU8) 5):
	{
		genericAssign((void*)(&(*(*n))), (void*)(&(*(*x.kindU.Nodeaddr))), (&NTI226816));
	}
	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_198073)(tlineinfo196539 info) {
	NI result;
	result = 0;
	result = ((NI) (info.Line));
	return result;
}

N_NIMCALL(void, stacktraceaux_457233)(tctx290048* c, tstackframe457208* x_457236, NI pc, NI recursionlimit) {
	{
		tlineinfo196539 info;
		NimStringDesc* s;
		NI line;
		if (!!((x_457236 == NIM_NIL))) goto LA3;
		{
			NI calls;
			tstackframe457208* x;
			NimStringDesc* LOC11;
			NimStringDesc* LOC12;
			if (!(recursionlimit == 0)) goto LA7;
			calls = 0;
			x = x_457236;
			{
				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*) &TMP2830));
			msgwriteln_198236(LOC11);
			goto BeforeRet;
		}
		LA7: ;
		stacktraceaux_457233(c, (*x_457236).Next, (*x_457236).Comesfrom, (NI32)(recursionlimit - 1));
		info = (*c).Debug->data[pc];
		s = tofilename_198025(info.Fileindex);
		line = tolinenumber_198073(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_457236).Prc == NIM_NIL))) goto LA20;
			{
				NI k_457322;
				NI HEX3Atmp_457325;
				NI res_457328;
				k_457322 = 0;
				HEX3Atmp_457325 = 0;
				HEX3Atmp_457325 = ((1 >= (NI32)(25 - s->Sup.len)) ? 1 : (NI32)(25 - s->Sup.len));
				res_457328 = 1;
				{
					while (1) {
						if (!(res_457328 <= HEX3Atmp_457325)) goto LA24;
						k_457322 = res_457328;
						s = addChar(s, 32);
						res_457328 += 1;
					} LA24: ;
				}
			}
			s = resizeString(s, (*(*(*x_457236).Prc).Name).S->Sup.len + 0);
appendString(s, (*(*(*x_457236).Prc).Name).S);
		}
		LA20: ;
		msgwriteln_198236(s);
	}
	LA3: ;
	BeforeRet: ;
}

N_NIMCALL(void, stacktrace_457351)(tctx290048* c, tstackframe457208* tos, NI pc, NU16 msg, NimStringDesc* arg) {
	msgwriteln_198236(((NimStringDesc*) &TMP2829));
	stacktraceaux_457233(c, tos, pc, 100);
	{
		if (!((*c).Mode == ((NU8) 0))) goto LA3;
		globalerror_198934((*c).Debug->data[pc], msg, arg);
	}
	goto LA1;
	LA3: ;
	{
		localerror_198955((*c).Debug->data[pc], msg, arg);
	}
	LA1: ;
}

static N_INLINE(NI, len_227364)(tnode226816* 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(tnode226816*, skipcolon_460813)(tnode226816* n) {
	tnode226816* 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_171205)(FILE* f_171209, NimStringDesc** x_171213, NI x_171213Len0) {
	{
		NimStringDesc* i_171226;
		NI i_171234;
		i_171226 = 0;
		i_171234 = 0;
		{
			while (1) {
				if (!(i_171234 < x_171213Len0)) goto LA3;
				i_171226 = x_171213[i_171234];
				write_12865(f_171209, i_171226);
				i_171234 += 1;
			} LA3: ;
		}
	}
	write_12865(f_171209, ((NimStringDesc*) &TMP2835));
}

N_NIMCALL(NI, compile_460696)(tctx290048* c, tsym226846* s) {
	NI result;
	result = 0;
	result = genproc_452721(c, s);
	return result;
}

static N_INLINE(NIM_BOOL, isemptytype_233990)(ttype226852* 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_459143)(tfullreg457204* dest, tnode226816* n) {
	switch ((*n).Kind) {
	case ((NU8) 20) ... ((NU8) 22):
	{
		NimStringDesc* LOC2;
		(*dest).Kind = ((NU8) 1);
		unsureAsgnRef((void**) (&(*dest).kindU.Node), newnode_227090(((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(tnode226816*, HEX5BHEX5D_227698)(tnode226816* n, NI i) {
	tnode226816* result;
	result = 0;
	result = (*n).kindU.S6.Sons->data[i];
	return result;
}

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

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

N_NIMCALL(void, popsafepoint_459456)(tstackframe457208* f) {
	NI LOC1;
	LOC1 = 0;
	LOC1 = pop_459462((&(*f).Safepoints));
}

N_NIMCALL(void, cleanuponexception_459512)(tctx290048* c, tstackframe457208* tos, TY459516* Result) {
	ttype226852* raisedtype;
	tstackframe457208* f;
	raisedtype = skiptypes_231245((*(*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 = TMP2845.Field0;
						unsureAsgnRef((void**) (&(*Result).Field1), TMP2845.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) {
					ttype226852* excepttype;
					if (!(((NU8) ((NU32)((*c).Code->data[pc2] & ((NU32) 255)))) == ((NU8) 140))) goto LA16;
					excepttype = skiptypes_231245((*c).Types->data[(NI32)(((NI) ((NU32)((NU32)((*c).Code->data[pc2]) >> (NU32)(((NU32) 16))))) - 32768)], IL64(211106247256320));
					{
						NI LOC19;
						LOC19 = 0;
						LOC19 = inheritancediff_271588(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_459462((&(*f).Safepoints));
		}
	}
	BeforeRet: ;
}

N_NIMCALL(void, bailout_457373)(tctx290048* c, tstackframe457208* tos) {
	stacktrace_457351(c, tos, (*c).Exceptioninstr, ((NU16) 214), (*(*(*c).Currentexceptiona).kindU.S6.Sons->data[2]).kindU.S3.Strval);
}

N_CLOSURE(void, HEX3Aanonymous_473689)(tlineinfo196539 info, NU16 msg, NimStringDesc* arg, void* ClEnv) {
	TY476665* HEX3Aenvp_476743;
	HEX3Aenvp_476743 = (TY476665*) ClEnv;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = (*HEX3Aenvp_476743).Error473660 == 0;
		if (!(LOC3)) goto LA4;
		LOC3 = (msg <= ((NU16) 229));
		LA4: ;
		if (!LOC3) goto LA5;
		asgnRefNoCycle((void**) (&(*HEX3Aenvp_476743).Error473660), formatmsg_198757(info, msg, arg));
	}
	LA5: ;
}

N_CLOSURE(void, HEX3Aanonymous_473791)(tlineinfo196539 info, NU16 msg, NimStringDesc* arg, void* ClEnv) {
	TY476665* HEX3Aenvp_476749;
	HEX3Aenvp_476749 = (TY476665*) ClEnv;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = (*HEX3Aenvp_476749).Error473762 == 0;
		if (!(LOC3)) goto LA4;
		LOC3 = (msg <= ((NU16) 229));
		LA4: ;
		if (!LOC3) goto LA5;
		asgnRefNoCycle((void**) (&(*HEX3Aenvp_476749).Error473762), formatmsg_198757(info, msg, arg));
	}
	LA5: ;
}

static N_INLINE(NimStringDesc*, tofilelinecol_198103)(tlineinfo196539 info) {
	NimStringDesc* result;
	NimStringDesc* LOC1;
	NimStringDesc* LOC2;
	NimStringDesc* LOC3;
	NimStringDesc* LOC4;
	result = 0;
	LOC1 = 0;
	LOC2 = 0;
	LOC2 = tofilename_198025(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*) &TMP2874));
appendString(LOC1, LOC3);
appendString(LOC1, ((NimStringDesc*) &TMP2875));
appendString(LOC1, LOC4);
appendString(LOC1, ((NimStringDesc*) &TMP2876));
	result = LOC1;
	return result;
}

N_NIMCALL(NIM_BOOL, opconv_459906)(tfullreg457204* dest, tfullreg457204 src, ttype226852* desttyp, ttype226852* srctyp) {
	NIM_BOOL result;
	result = 0;
	{
		ttype226852* styp;
		if (!((*desttyp).Kind == ((NU8) 28))) goto LA3;
		{
			if (!!(((*dest).Kind == ((NU8) 1)))) goto LA7;
			myreset_457601(dest);
			(*dest).Kind = ((NU8) 1);
		}
		LA7: ;
		unsureAsgnRef((void**) (&(*dest).kindU.Node), newnode_227090(((NU8) 20)));
		styp = skiptypes_231245(srctyp, IL64(211106233624832));
		switch ((*styp).Kind) {
		case ((NU8) 14):
		{
			tnode226816* n;
			NI x;
			n = (*styp).N;
			x = ((NI) (src.kindU.Intval));
			{
				NIM_BOOL LOC12;
				NI LOC13;
				tsym226846* f;
				LOC12 = 0;
				LOC13 = 0;
				LOC13 = len_227364(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_460075;
					NI HEX3Atmp_460673;
					NI LOC26;
					NI res_460676;
					i_460075 = 0;
					HEX3Atmp_460673 = 0;
					LOC26 = 0;
					LOC26 = len_227364(n);
					HEX3Atmp_460673 = (LOC26 - 1);
					res_460676 = 0;
					{
						while (1) {
							tsym226846* f;
							if (!(res_460676 <= HEX3Atmp_460673)) goto LA28;
							i_460075 = res_460676;
							{
								if (!!(((*(*n).kindU.S6.Sons->data[i_460075]).Kind == ((NU8) 3)))) goto LA31;
								internalerror_199006(((NimStringDesc*) &TMP2878));
							}
							LA31: ;
							f = (*(*n).kindU.S6.Sons->data[i_460075]).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_460676 += 1;
						} LA28: ;
					}
				}
				internalerror_199006(((NimStringDesc*) &TMP2878));
			}
			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*) &TMP2879));
				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*) &TMP2880));
				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_264031(desttyp, ((NU8) 0));
			LOC59 = rawNewString(LOC60->Sup.len + 25);
appendString(LOC59, ((NimStringDesc*) &TMP2881));
appendString(LOC59, LOC60);
			internalerror_199006(LOC59);
		}
		break;
		}
	}
	goto LA1;
	LA3: ;
	{
		ttype226852* LOC62;
		LOC62 = 0;
		LOC62 = skiptypes_231245(desttyp, IL64(211106233624832));
		switch ((*LOC62).Kind) {
		case ((NU8) 31) ... ((NU8) 35):
		{
			ttype226852* LOC68;
			{
				if (!!(((*dest).Kind == ((NU8) 2)))) goto LA66;
				myreset_457601(dest);
				(*dest).Kind = ((NU8) 2);
			}
			LA66: ;
			LOC68 = 0;
			LOC68 = skiptypes_231245(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_264004(desttyp);
				LOC73 = ((*dest).kindU.Intval < LOC74);
				if (LOC73) goto LA75;
				LOC76 = 0;
				LOC76 = lastord_264010(desttyp);
				LOC73 = (LOC76 < (*dest).kindU.Intval);
				LA75: ;
				if (!LOC73) goto LA77;
				result = NIM_TRUE;
				goto BeforeRet;
			}
			LA77: ;
		}
		break;
		case ((NU8) 40) ... ((NU8) 44):
		{
			ttype226852* LOC84;
			{
				if (!!(((*dest).Kind == ((NU8) 2)))) goto LA82;
				myreset_457601(dest);
				(*dest).Kind = ((NU8) 2);
			}
			LA82: ;
			LOC84 = 0;
			LOC84 = skiptypes_231245(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):
		{
			ttype226852* LOC92;
			{
				if (!!(((*dest).Kind == ((NU8) 3)))) goto LA90;
				myreset_457601(dest);
				(*dest).Kind = ((NU8) 3);
			}
			LA90: ;
			LOC92 = 0;
			LOC92 = skiptypes_231245(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_458833(dest, src);
		}
		break;
		}
	}
	LA1: ;
	BeforeRet: ;
	return result;
}

N_NIMCALL(void, rawexecute_460846)(tctx290048* c, NI start, tstackframe457208* tos_460850, tfullreg457204* Result) {
	NI pc;
	tstackframe457208* tos;
	TY457895* regs;
	pc = start;
	tos = tos_460850;
	regs = 0;
	regs = (*tos).Slots;
	{
		while (1) {
			TY476665* HEX3Aenv_476767;
			NU32 instr;
			NI ra_460876;
			HEX3Aenv_476767 = 0;
			HEX3Aenv_476767 = (TY476665*) newObj((&NTI476768), sizeof(TY476665));
			instr = (*c).Code->data[pc];
			ra_460876 = ((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_460876]), (&NTI457204));
				goto BeforeRet;
			}
			break;
			case ((NU8) 1):
			{
				tfullreg457204 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), (&NTI457204));
					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), (&NTI457204));
				}
				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_460876].Kind == ((NU8) 2)))) goto LA18;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA18: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 1)))) goto LA23;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA23: ;
				createstrkeepnode_457670((&regs->data[ra_460876]));
				LOC25 = 0;
				LOC25 = (*regs->data[ra_460876].kindU.Node).kindU.S3.Strval; (*regs->data[ra_460876].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_460876].Kind == ((NU8) 3)))) goto LA29;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 3);
				}
				LA29: ;
				regs->data[ra_460876].kindU.Floatval = regs->data[rb].kindU.Floatval;
			}
			break;
			case ((NU8) 8):
			{
				asgncomplex_458833((&regs->data[ra_460876]), regs->data[((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))))]);
			}
			break;
			case ((NU8) 7):
			{
				moveconst_458236((&regs->data[ra_460876]), 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_460876].Kind == ((NU8) 1)))) goto LA36;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA36: ;
				putintonode_458993(&regs->data[ra_460876].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]), (&NTI457204));
				}
				goto LA39;
				LA41: ;
				{
					tnode226816* 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_457601((&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_457601((&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_457601((&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;
				tnode226816* src;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA62;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA62: ;
				{
					if (!(IL64(2147483647) < regs->data[rc].kindU.Intval)) goto LA66;
					stacktrace_457351(c, tos, pc, ((NU16) 82), ((NimStringDesc*) &TMP2724));
				}
				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_227364(src);
					LOC70 = ((NU32)(idx) < (NU32)(LOC72));
					LA71: ;
					if (!LOC70) goto LA73;
					asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), (*src).kindU.S6.Sons->data[idx]);
				}
				goto LA68;
				LA73: ;
				{
					stacktrace_457351(c, tos, pc, ((NU16) 82), ((NimStringDesc*) &TMP2724));
				}
				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_460876].Kind == ((NU8) 2)))) goto LA79;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].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_457351(c, tos, pc, ((NU16) 81), ((NimStringDesc*) &TMP2724));
				}
				goto LA81;
				LA83: ;
				{
					if (!((NU32)(idx) <= (NU32)(s->Sup.len))) goto LA86;
					regs->data[ra_460876].kindU.Intval = ((NI64) (((NU8)(s->data[idx]))));
				}
				goto LA81;
				LA86: ;
				{
					stacktrace_457351(c, tos, pc, ((NU16) 82), ((NimStringDesc*) &TMP2724));
				}
				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_460876].Kind == ((NU8) 1)))) goto LA92;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA92: ;
				idx = ((NI) (regs->data[rb].kindU.Intval));
				{
					NI LOC96;
					LOC96 = 0;
					LOC96 = len_227364(regs->data[ra_460876].kindU.Node);
					if (!((NU32)(idx) < (NU32)(LOC96))) goto LA97;
					putintonode_458993(&(*regs->data[ra_460876].kindU.Node).kindU.S6.Sons->data[idx], regs->data[rc]);
				}
				goto LA94;
				LA97: ;
				{
					stacktrace_457351(c, tos, pc, ((NU16) 82), ((NimStringDesc*) &TMP2724));
				}
				LA94: ;
			}
			break;
			case ((NU8) 13):
			{
				NI rb;
				NI rc;
				tnode226816* src;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA103;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA103: ;
				src = regs->data[rb].kindU.Node;
				{
					tnode226816* n;
					if (!!(((*src).Kind >= ((NU8) 1) && (*src).Kind <= ((NU8) 23)))) goto LA107;
					n = skipcolon_460813((*src).kindU.S6.Sons->data[rc]);
					asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), n);
				}
				goto LA105;
				LA107: ;
				{
					stacktrace_457351(c, tos, pc, ((NU16) 81), ((NimStringDesc*) &TMP2724));
				}
				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_460876].Kind == ((NU8) 1)))) goto LA113;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA113: ;
				putintonode_458993(&(*regs->data[ra_460876].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_460876].Kind == ((NU8) 1)))) goto LA118;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA118: ;
				idx = ((NI) (regs->data[rb].kindU.Intval));
				{
					if (!((NU32)(idx) < (NU32)((*regs->data[ra_460876].kindU.Node).kindU.S3.Strval->Sup.len))) goto LA122;
					(*regs->data[ra_460876].kindU.Node).kindU.S3.Strval->data[idx] = ((NIM_CHAR) (((NI) (regs->data[rc].kindU.Intval))));
				}
				goto LA120;
				LA122: ;
				{
					stacktrace_457351(c, tos, pc, ((NU16) 82), ((NimStringDesc*) &TMP2724));
				}
				LA120: ;
			}
			break;
			case ((NU8) 15):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 4)))) goto LA128;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 4);
				}
				LA128: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 5)))) goto LA133;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 5);
				}
				LA133: ;
				regs->data[ra_460876].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_457601((&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_457601((&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)), (&NTI457204));
				}
				break;
				case ((NU8) 1):
				{
					{
						if (!((*regs->data[rb].kindU.Node).Kind == ((NU8) 23))) goto LA149;
						stacktrace_457351(c, tos, pc, ((NU16) 81), ((NimStringDesc*) &TMP2724));
					}
					LA149: ;
					asgnRefNoCycle((void**) (&regs->data[ra].kindU.Node), (*regs->data[rb].kindU.Node).kindU.S6.Sons->data[0]);
				}
				break;
				default:
				{
					stacktrace_457351(c, tos, pc, ((NU16) 81), ((NimStringDesc*) &TMP2724));
				}
				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_458993(regs->data[ra].kindU.Nodeaddr, regs->data[rc]);
				}
				break;
				case ((NU8) 4):
				{
					genericAssign((void*)(&(*regs->data[ra].kindU.Regaddr)), (void*)(&regs->data[rc]), (&NTI457204));
				}
				break;
				case ((NU8) 1):
				{
					putintonode_458993(&regs->data[ra].kindU.Node, regs->data[rc]);
				}
				break;
				default:
				{
					stacktrace_457351(c, tos, pc, ((NU16) 81), ((NimStringDesc*) &TMP2724));
				}
				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_460876].Kind == ((NU8) 2)))) goto LA160;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].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_460876].kindU.Intval = sum;
				}
				goto LA162;
				LA166: ;
				{
					stacktrace_457351(c, tos, pc, ((NU16) 76), ((NimStringDesc*) &TMP2724));
				}
				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_460876].Kind == ((NU8) 2)))) goto LA172;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].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_460876].kindU.Intval = sum;
				}
				goto LA174;
				LA178: ;
				{
					stacktrace_457351(c, tos, pc, ((NU16) 76), ((NimStringDesc*) &TMP2724));
				}
				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_460876].Kind == ((NU8) 2)))) goto LA184;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].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_460876].kindU.Intval = diff;
				}
				goto LA186;
				LA190: ;
				{
					stacktrace_457351(c, tos, pc, ((NU16) 76), ((NimStringDesc*) &TMP2724));
				}
				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_460876].Kind == ((NU8) 2)))) goto LA196;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].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_460876].kindU.Intval = diff;
				}
				goto LA198;
				LA202: ;
				{
					stacktrace_457351(c, tos, pc, ((NU16) 76), ((NimStringDesc*) &TMP2724));
				}
				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_460876].Kind == ((NU8) 2)))) goto LA208;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA208: ;
				LOC210 = 0;
				LOC210 = safelen_227424(regs->data[rb].kindU.Node);
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA214;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA214: ;
				regs->data[ra_460876].kindU.Intval = ((NI64) ((NI32)((*regs->data[rb].kindU.Node).kindU.S3.Strval->Sup.len - ((NI) (imm)))));
			}
			break;
			case ((NU8) 27):
			{
				NI rb;
				tnode226816* b;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA219;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA219: ;
				b = regtonode_459280(regs->data[rb]);
				{
					NIM_BOOL LOC223;
					tnode226816* LOC226;
					LOC223 = 0;
					LOC223 = inset_285019(regs->data[ra_460876].kindU.Node, b);
					if (!!(LOC223)) goto LA224;
					LOC226 = 0;
					LOC226 = copytree_227329(b);
					addson_227287(regs->data[ra_460876].kindU.Node, LOC226);
				}
				LA224: ;
			}
			break;
			case ((NU8) 28):
			{
				NI rb;
				NI rc;
				tnode226816* r;
				tnode226816* LOC232;
				tnode226816* LOC233;
				tnode226816* LOC234;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA230;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA230: ;
				r = newnode_227090(((NU8) 44));
				LOC232 = 0;
				LOC232 = regtonode_459280(regs->data[rb]);
				add_227498(r, LOC232);
				LOC233 = 0;
				LOC233 = regtonode_459280(regs->data[rc]);
				add_227498(r, LOC233);
				LOC234 = 0;
				LOC234 = copytree_227329(r);
				addson_227287(regs->data[ra_460876].kindU.Node, LOC234);
			}
			break;
			case ((NU8) 29):
			{
				NI rb;
				tnode226816* b;
				tnode226816* LOC240;
				tnode226816* r;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA238;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA238: ;
				b = newnodeit_227145(((NU8) 39), (*regs->data[rb].kindU.Node).Info, (*regs->data[rb].kindU.Node).Typ);
				LOC240 = 0;
				LOC240 = regtonode_459280(regs->data[rb]);
				addson_227287(b, LOC240);
				r = diffsets_285054(regs->data[ra_460876].kindU.Node, b);
				discardsons_227358(regs->data[ra_460876].kindU.Node);
				{
					NI i_463857;
					NI HEX3Atmp_476322;
					NI LOC242;
					NI res_476325;
					i_463857 = 0;
					HEX3Atmp_476322 = 0;
					LOC242 = 0;
					LOC242 = sonslen_227249(r);
					HEX3Atmp_476322 = (NI32)(LOC242 - 1);
					res_476325 = 0;
					{
						while (1) {
							if (!(res_476325 <= HEX3Atmp_476322)) goto LA244;
							i_463857 = res_476325;
							addson_227287(regs->data[ra_460876].kindU.Node, (*r).kindU.S6.Sons->data[i_463857]);
							res_476325 += 1;
						} LA244: ;
					}
				}
			}
			break;
			case ((NU8) 30):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 2)))) goto LA248;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA248: ;
				regs->data[ra_460876].kindU.Intval = cardset_285089(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_460876].Kind == ((NU8) 2)))) goto LA253;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].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_460876].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_460876].kindU.Intval = product;
				}
				goto LA255;
				LA260: ;
				{
					stacktrace_457351(c, tos, pc, ((NU16) 76), ((NimStringDesc*) &TMP2724));
				}
				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_460876].Kind == ((NU8) 2)))) goto LA266;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA266: ;
				{
					if (!(regs->data[rc].kindU.Intval == IL64(0))) goto LA270;
					stacktrace_457351(c, tos, pc, ((NU16) 73), ((NimStringDesc*) &TMP2724));
				}
				goto LA268;
				LA270: ;
				{
					regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA276;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA276: ;
				{
					if (!(regs->data[rc].kindU.Intval == IL64(0))) goto LA280;
					stacktrace_457351(c, tos, pc, ((NU16) 73), ((NimStringDesc*) &TMP2724));
				}
				goto LA278;
				LA280: ;
				{
					regs->data[ra_460876].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_460876].Kind == ((NU8) 3)))) goto LA286;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 3);
				}
				LA286: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 3)))) goto LA291;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 3);
				}
				LA291: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 3)))) goto LA296;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 3);
				}
				LA296: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 3)))) goto LA301;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 3);
				}
				LA301: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA306;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA306: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA311;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA311: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA316;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA316: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA321;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA321: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA326;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA326: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA331;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA331: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA336;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA336: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA341;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA341: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA346;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA346: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA351;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA351: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA356;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA356: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA361;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA361: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA366;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA366: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA371;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA371: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA376;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA376: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA381;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA381: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA386;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA386: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA391;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA391: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA396;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].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_460876].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_460876].Kind == ((NU8) 2)))) goto LA405;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA405: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA410;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA410: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA415;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA415: ;
				val = regs->data[rb].kindU.Intval;
				{
					if (!!((val == (IL64(-9223372036854775807) - IL64(1))))) goto LA419;
					regs->data[ra_460876].kindU.Intval = -(val);
				}
				goto LA417;
				LA419: ;
				{
					stacktrace_457351(c, tos, pc, ((NU16) 76), ((NimStringDesc*) &TMP2724));
				}
				LA417: ;
			}
			break;
			case ((NU8) 61):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 3)))) goto LA425;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 3);
				}
				LA425: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA430;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA430: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA435;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA435: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA440;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA440: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA445;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA445: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA450;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA450: ;
				LOC452 = 0;
				LOC452 = containssets_285075(regs->data[rb].kindU.Node, regs->data[rc].kindU.Node);
				regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA456;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA456: ;
				LOC458 = 0;
				LOC458 = equalsets_285082(regs->data[rb].kindU.Node, regs->data[rc].kindU.Node);
				regs->data[ra_460876].kindU.Intval = ((NI64) (LOC458));
			}
			break;
			case ((NU8) 68):
			{
				NI rb;
				NI rc;
				tnode226816* a;
				tnode226816* 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_460876].Kind == ((NU8) 2)))) goto LA462;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA462: ;
				a = regs->data[rb].kindU.Node;
				b = regs->data[rc].kindU.Node;
				LOC464 = 0;
				LOC464 = containssets_285075(a, b);
				if (!(LOC464)) goto LA465;
				LOC466 = 0;
				LOC466 = equalsets_285082(a, b);
				LOC464 = !(LOC466);
				LA465: ;
				regs->data[ra_460876].kindU.Intval = ((NI64) (LOC464));
			}
			break;
			case ((NU8) 69):
			{
				NI rb;
				NI rc;
				tnode226816* LOC472;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA470;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA470: ;
				asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), newnode_227090(((NU8) 39)));
				LOC472 = 0;
				LOC472 = intersectsets_285061(regs->data[rb].kindU.Node, regs->data[rc].kindU.Node);
				asgnRefNoCycle((void**) (&(*regs->data[ra_460876].kindU.Node).kindU.S6.Sons), (*LOC472).kindU.S6.Sons);
			}
			break;
			case ((NU8) 70):
			{
				NI rb;
				NI rc;
				tnode226816* LOC478;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA476;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA476: ;
				asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), newnode_227090(((NU8) 39)));
				LOC478 = 0;
				LOC478 = unionsets_285047(regs->data[rb].kindU.Node, regs->data[rc].kindU.Node);
				asgnRefNoCycle((void**) (&(*regs->data[ra_460876].kindU.Node).kindU.S6.Sons), (*LOC478).kindU.S6.Sons);
			}
			break;
			case ((NU8) 71):
			{
				NI rb;
				NI rc;
				tnode226816* LOC484;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA482;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA482: ;
				asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), newnode_227090(((NU8) 39)));
				LOC484 = 0;
				LOC484 = diffsets_285054(regs->data[rb].kindU.Node, regs->data[rc].kindU.Node);
				asgnRefNoCycle((void**) (&(*regs->data[ra_460876].kindU.Node).kindU.S6.Sons), (*LOC484).kindU.S6.Sons);
			}
			break;
			case ((NU8) 72):
			{
				NI rb;
				NI rc;
				tnode226816* LOC490;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA488;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA488: ;
				asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), newnode_227090(((NU8) 39)));
				LOC490 = 0;
				LOC490 = symdiffsets_285068(regs->data[rb].kindU.Node, regs->data[rc].kindU.Node);
				asgnRefNoCycle((void**) (&(*regs->data[ra_460876].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_460876].Kind == ((NU8) 1)))) goto LA494;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA494: ;
				asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), newnode_227090(((NU8) 20)));
				{
					NimStringDesc* LOC500;
					if (!(regs->data[rb].Kind == ((NU8) 1))) goto LA498;
					LOC500 = 0;
					LOC500 = (*regs->data[ra_460876].kindU.Node).kindU.S3.Strval; (*regs->data[ra_460876].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_460876].kindU.Node).kindU.S3.Strval), nimCharToStr(((NIM_CHAR) (((NI) (((NI) (regs->data[rb].kindU.Intval))))))));
				}
				LA496: ;
				{
					NI i_468322;
					NI HEX3Atmp_476453;
					NI HEX3Atmp_476454;
					NI res_476457;
					i_468322 = 0;
					HEX3Atmp_476453 = 0;
					HEX3Atmp_476454 = 0;
					HEX3Atmp_476453 = (NI32)(((NI) (rb)) + 1);
					HEX3Atmp_476454 = (NI32)(((NI) ((NI32)(((NI) (rb)) + ((NI) (rc))))) - 1);
					res_476457 = ((NI) (HEX3Atmp_476453));
					{
						while (1) {
							NimStringDesc* LOC505;
							if (!(((NI) (res_476457)) <= ((NI) (HEX3Atmp_476454)))) goto LA504;
							i_468322 = res_476457;
							LOC505 = 0;
							{
								if (!(regs->data[i_468322].Kind == ((NU8) 1))) goto LA508;
								LOC505 = copyString((*regs->data[i_468322].kindU.Node).kindU.S3.Strval);
							}
							goto LA506;
							LA508: ;
							{
								LOC505 = nimCharToStr(((NIM_CHAR) (((NI) (((NI) (regs->data[i_468322].kindU.Intval)))))));
							}
							LA506: ;
							(*regs->data[ra_460876].kindU.Node).kindU.S3.Strval = resizeString((*regs->data[ra_460876].kindU.Node).kindU.S3.Strval, LOC505->Sup.len + 0);
appendString((*regs->data[ra_460876].kindU.Node).kindU.S3.Strval, LOC505);
							res_476457 += 1;
						} LA504: ;
					}
				}
			}
			break;
			case ((NU8) 90):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA514;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA514: ;
				(*regs->data[ra_460876].kindU.Node).kindU.S3.Strval = addChar((*regs->data[ra_460876].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_460876].Kind == ((NU8) 1)))) goto LA519;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA519: ;
				(*regs->data[ra_460876].kindU.Node).kindU.S3.Strval = resizeString((*regs->data[ra_460876].kindU.Node).kindU.S3.Strval, (*regs->data[rb].kindU.Node).kindU.S3.Strval->Sup.len + 0);
appendString((*regs->data[ra_460876].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_460876].Kind == ((NU8) 1)))) goto LA524;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA524: ;
				{
					tnode226816* LOC530;
					tnode226816* LOC531;
					if (!((*regs->data[ra_460876].kindU.Node).Kind == ((NU8) 41))) goto LA528;
					LOC530 = 0;
					LOC530 = regtonode_459280(regs->data[rb]);
					LOC531 = 0;
					LOC531 = copytree_227329(LOC530);
					add_227498(regs->data[ra_460876].kindU.Node, LOC531);
				}
				goto LA526;
				LA528: ;
				{
					stacktrace_457351(c, tos, pc, ((NU16) 81), ((NimStringDesc*) &TMP2724));
				}
				LA526: ;
			}
			break;
			case ((NU8) 126):
			{
				NI rb;
				TY198301 LOC537;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					NI i_468684;
					NI HEX3Atmp_476468;
					NI res_476471;
					i_468684 = 0;
					HEX3Atmp_476468 = 0;
					HEX3Atmp_476468 = (NI32)(((NI) ((NI32)(((NI) (ra_460876)) + ((NI) (rb))))) - 1);
					res_476471 = ((NI) (ra_460876));
					{
						while (1) {
							if (!(((NI) (res_476471)) <= ((NI) (HEX3Atmp_476468)))) goto LA536;
							i_468684 = res_476471;
							write_12865(stdout, (*regs->data[i_468684].kindU.Node).kindU.S3.Strval);
							res_476471 += 1;
						} LA536: ;
					}
				}
				memset((void*)LOC537, 0, sizeof(LOC537));
				LOC537[0] = copyString(((NimStringDesc*) &TMP2724));
				writeln_171205(stdout, LOC537, 1);
			}
			break;
			case ((NU8) 74):
			{
				NI rb;
				NI rc;
				tnode226816* 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_460876].Kind == ((NU8) 2)))) goto LA541;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA541: ;
				LOC543 = 0;
				LOC543 = regtonode_459280(regs->data[rc]);
				LOC544 = 0;
				LOC544 = inset_285019(regs->data[rb].kindU.Node, LOC543);
				regs->data[ra_460876].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_460876].Kind == ((NU8) 1)))) goto LA548;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].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_460876].kindU.Node), newnode_227090(((NU8) 20)));
				asgnRefNoCycle((void**) (&(*regs->data[ra_460876].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;
				tfullreg457204* 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_460876].Kind == ((NU8) 2)))) goto LA553;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].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_457601((&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_460876].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;
					tnode226816* LOC567;
					tnode226816* LOC568;
					tnode226816* LOC570;
					tnode226816* LOC571;
					NimStringDesc* LOC574;
					NimStringDesc* LOC575;
					LOC566 = 0;
					LOC567 = 0;
					LOC567 = regtonode_459280(regs->data[rb]);
					LOC568 = 0;
					LOC568 = regtonode_459280(regs->data[ra_460876]);
					LOC566 = levalueconv_305021(LOC567, LOC568);
					if (!(LOC566)) goto LA569;
					LOC570 = 0;
					LOC570 = regtonode_459280(regs->data[ra_460876]);
					LOC571 = 0;
					LOC571 = regtonode_459280(regs->data[rc]);
					LOC566 = levalueconv_305021(LOC570, LOC571);
					LA569: ;
					if (!!(LOC566)) goto LA572;
					LOC574 = 0;
					LOC574 = msgkindtostring_198378(((NU16) 142));
					LOC575 = 0;
					LOC575 = nsuFormatOpenArray(LOC574, TMP2837, 2);
					stacktrace_457351(c, tos, pc, ((NU16) 4), LOC575);
				}
				LA572: ;
			}
			break;
			case ((NU8) 127):
			case ((NU8) 128):
			{
				NI rb;
				NI rc;
				tnode226816* bb;
				NIM_BOOL isclosure;
				tsym226846* 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: ;
				{
					vmargs290042 LOC586;
					if (!((*prc).Offset < -1)) goto LA584;
					memset((void*)(&LOC586), 0, sizeof(LOC586));
					memset((void*)(&LOC586), 0, sizeof(LOC586));
					LOC586.Ra = ((NI) (ra_460876));
					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):((TMP2839)((*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_198934((*c).Debug->data[pc], ((NU16) 4), ((NimStringDesc*) &TMP2840));
					}
					LA592: ;
					globalerror_198934((*c).Debug->data[pc], ((NU16) 4), ((NimStringDesc*) &TMP2841));
				}
				goto LA582;
				LA588: ;
				{
					NI newpc;
					tstackframe457208* newframe;
					tstackframe457208* LOC610;
					if (!!(((*prc).Kind == ((NU8) 18)))) goto LA595;
					newpc = compile_460696(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_198236(((NimStringDesc*) &TMP2829));
								stacktraceaux_457233(c, tos, pc, 100);
								globalerror_198934((*c).Debug->data[pc], ((NU16) 207), ((NimStringDesc*) &TMP2724));
							}
							LA605: ;
						}
						LA603: ;
						(*c).Loopiterations -= 1;
					}
					LA599: ;
					LOC610 = 0;
					LOC610 = (tstackframe457208*) newObj((&NTI457206), sizeof(tstackframe457208));
					asgnRefNoCycle((void**) (&(*LOC610).Prc), prc);
					(*LOC610).Comesfrom = pc;
					asgnRef((void**) (&(*LOC610).Next), tos);
					newframe = LOC610;
					if ((*newframe).Slots) nimGCunrefNoCycle((*newframe).Slots);
					(*newframe).Slots = (TY457895*) newSeqRC1((&NTI457895), (*prc).Offset);
					{
						NIM_BOOL LOC613;
						NIM_BOOL LOC614;
						tnode226816* LOC618;
						LOC613 = 0;
						LOC614 = 0;
						LOC614 = isemptytype_233990((*(*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_451007((*(*prc).Typ).Sons->data[0], (*prc).Info);
						putintoreg_459143((&(*newframe).Slots->data[0]), LOC618);
					}
					LA616: ;
					{
						NI i_469699;
						NI HEX3Atmp_476496;
						NI res_476499;
						i_469699 = 0;
						HEX3Atmp_476496 = 0;
						HEX3Atmp_476496 = (NI32)(((NI) (rc)) - 1);
						res_476499 = 1;
						{
							while (1) {
								if (!(((NI) (res_476499)) <= ((NI) (HEX3Atmp_476496)))) goto LA621;
								i_469699 = res_476499;
								genericAssign((void*)(&(*newframe).Slots->data[i_469699]), (void*)(&regs->data[(NI32)(((NI) (rb)) + ((NI) (i_469699)))]), (&NTI457204));
								res_476499 += 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: ;
				{
					tsym226846* gensymowner;
					tnode226816* macrocall;
					tnode226816* LOC634;
					tnode226816* 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_227138(((NU8) 27), (*c).Debug->data[pc]);
					LOC634 = 0;
					LOC634 = newsymnode_227132(prc);
					add_227498(macrocall, LOC634);
					{
						NI i_469790;
						NI HEX3Atmp_476501;
						NI res_476504;
						i_469790 = 0;
						HEX3Atmp_476501 = 0;
						HEX3Atmp_476501 = (NI32)(((NI) (rc)) - 1);
						res_476504 = 1;
						{
							while (1) {
								tnode226816* LOC638;
								if (!(((NI) (res_476504)) <= ((NI) (HEX3Atmp_476501)))) goto LA637;
								i_469790 = res_476504;
								LOC638 = 0;
								LOC638 = regtonode_459280(regs->data[(NI32)(((NI) (rb)) + ((NI) (i_469790)))]);
								add_227498(macrocall, LOC638);
								res_476504 += 1;
							} LA637: ;
						}
					}
					a = evaltemplate_456334(macrocall, prc, gensymowner);
					{
						if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA641;
						myreset_457601((&regs->data[ra_460876]));
						regs->data[ra_460876].Kind = ((NU8) 1);
					}
					LA641: ;
					asgnRefNoCycle((void**) (&regs->data[ra_460876].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_460876].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_460876].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_198236(((NimStringDesc*) &TMP2829));
						stacktraceaux_457233(c, tos, pc, 100);
						globalerror_198934((*c).Debug->data[pc], ((NU16) 207), ((NimStringDesc*) &TMP2724));
					}
					LA659: ;
				}
				LA657: ;
				(*c).Loopiterations -= 1;
			}
			break;
			case ((NU8) 138):
			{
				tnode226816* branch;
				NIM_BOOL cond;
				branch = HEX5BHEX5D_227698((*c).Constants, (NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768));
				cond = NIM_FALSE;
				{
					NI j_469981;
					NI HEX3Atmp_476511;
					NI LOC666;
					NI res_476514;
					j_469981 = 0;
					HEX3Atmp_476511 = 0;
					LOC666 = 0;
					LOC666 = sonslen_227249(branch);
					HEX3Atmp_476511 = (NI32)(LOC666 - 2);
					res_476514 = 0;
					{
						while (1) {
							if (!(res_476514 <= HEX3Atmp_476511)) goto LA668;
							j_469981 = res_476514;
							{
								tnode226816* LOC671;
								NIM_BOOL LOC672;
								LOC671 = 0;
								LOC671 = regtonode_459280(regs->data[ra_460876]);
								LOC672 = 0;
								LOC672 = overlap_285012(LOC671, (*branch).kindU.S6.Sons->data[j_469981]);
								if (!LOC672) goto LA673;
								cond = NIM_TRUE;
								goto LA665;
							}
							LA673: ;
							res_476514 += 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_459397(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_459456(tos);
			}
			break;
			case ((NU8) 142):
			{
				{
					TY459516 LOC687;
					NI newpc;
					tstackframe457208* newtos;
					if (!!(((*c).Currentexceptiona == NIM_NIL))) goto LA685;
					memset((void*)(&LOC687), 0, sizeof(LOC687));
					cleanuponexception_459512(c, tos, (&LOC687));
					newpc = 0;
					newpc = LOC687.Field0;
					newtos = 0;
					newtos = LOC687.Field1;
					{
						if (!((NI32)(newpc - 1) < 0)) goto LA690;
						bailout_457373(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):
			{
				tnode226816* raised;
				TY459516 LOC697;
				NI newpc;
				tstackframe457208* newtos;
				raised = regs->data[ra_460876].kindU.Node;
				asgnRefNoCycle((void**) (&(*c).Currentexceptiona), raised);
				(*c).Exceptioninstr = pc;
				memset((void*)(&LOC697), 0, sizeof(LOC697));
				cleanuponexception_459512(c, tos, (&LOC697));
				newpc = 0;
				newpc = LOC697.Field0;
				newtos = 0;
				newtos = LOC697.Field1;
				{
					if (!((NI32)(newpc - 1) < 0)) goto LA700;
					bailout_457373(c, tos);
					goto BeforeRet;
				}
				LA700: ;
				pc = (NI32)(newpc - 1);
				{
					if (!!((tos == newtos))) goto LA704;
					tos = newtos;
					regs = (*tos).Slots;
				}
				LA704: ;
			}
			break;
			case ((NU8) 143):
			{
				ttype226852* typ;
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA709;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA709: ;
				typ = (*c).Types->data[(NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768)];
				asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), getnullvalue_451007(typ, (*c).Debug->data[pc]));
				(*regs->data[ra_460876].kindU.Node).Flags |= ((NI16)1)<<((((NU8) 12))%(sizeof(NI16)*8));
			}
			break;
			case ((NU8) 144):
			{
				ttype226852* typ;
				NU32 instr2;
				NI count;
				typ = (*c).Types->data[(NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768)];
				pc += 1;
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA714;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].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_460876].kindU.Node), newnodei_227138(((NU8) 41), (*c).Debug->data[pc]));
				asgnRefNoCycle((void**) (&(*regs->data[ra_460876].kindU.Node).Typ), typ);
				if ((*regs->data[ra_460876].kindU.Node).kindU.S6.Sons) nimGCunrefNoCycle((*regs->data[ra_460876].kindU.Node).kindU.S6.Sons);
				(*regs->data[ra_460876].kindU.Node).kindU.S6.Sons = (tnodeseq226810*) newSeqRC1((&NTI226810), count);
				{
					NI i_470895;
					NI HEX3Atmp_476524;
					NI res_476527;
					i_470895 = 0;
					HEX3Atmp_476524 = 0;
					HEX3Atmp_476524 = (count - 1);
					res_476527 = 0;
					{
						while (1) {
							if (!(res_476527 <= HEX3Atmp_476524)) goto LA718;
							i_470895 = res_476527;
							asgnRefNoCycle((void**) (&(*regs->data[ra_460876].kindU.Node).kindU.S6.Sons->data[i_470895]), getnullvalue_451007((*typ).Sons->data[0], (*c).Debug->data[pc]));
							res_476527 += 1;
						} LA718: ;
					}
				}
			}
			break;
			case ((NU8) 133):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA722;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA722: ;
				asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), newnodei_227138(((NU8) 20), (*c).Debug->data[pc]));
				asgnRefNoCycle((void**) (&(*regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA727;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA727: ;
				regs->data[ra_460876].kindU.Intval = ((NI64) (rbx));
			}
			break;
			case ((NU8) 145):
			{
				ttype226852* typ;
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA732;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA732: ;
				typ = (*c).Types->data[(NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768)];
				asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), getnullvalue_451007(typ, (*c).Debug->data[pc]));
			}
			break;
			case ((NU8) 146):
			{
				ttype226852* typ;
				typ = (*c).Types->data[(NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768)];
				{
					ttype226852* LOC737;
					LOC737 = 0;
					LOC737 = skiptypes_231245(typ, IL64(211106233624576));
					if (!((*LOC737).Kind >= ((NU8) 36) && (*LOC737).Kind <= ((NU8) 39))) goto LA738;
					{
						if (!!((regs->data[ra_460876].Kind == ((NU8) 3)))) goto LA742;
						myreset_457601((&regs->data[ra_460876]));
						regs->data[ra_460876].Kind = ((NU8) 3);
					}
					LA742: ;
					regs->data[ra_460876].kindU.Floatval = 0.0;
				}
				goto LA735;
				LA738: ;
				{
					{
						if (!!((regs->data[ra_460876].Kind == ((NU8) 2)))) goto LA747;
						myreset_457601((&regs->data[ra_460876]));
						regs->data[ra_460876].Kind = ((NU8) 2);
					}
					LA747: ;
					regs->data[ra_460876].kindU.Intval = IL64(0);
				}
				LA735: ;
			}
			break;
			case ((NU8) 147):
			{
				NI rb;
				tnode226816* 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_449686((*cnst).Typ);
					if (!LOC752) goto LA753;
					putintoreg_459143((&regs->data[ra_460876]), cnst);
				}
				goto LA750;
				LA753: ;
				{
					{
						if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA758;
						myreset_457601((&regs->data[ra_460876]));
						regs->data[ra_460876].Kind = ((NU8) 1);
					}
					LA758: ;
					asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), cnst);
				}
				LA750: ;
			}
			break;
			case ((NU8) 148):
			{
				NI rb;
				tnode226816* 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_449686((*cnst).Typ);
					if (!LOC763) goto LA764;
					putintoreg_459143((&regs->data[ra_460876]), cnst);
				}
				goto LA761;
				LA764: ;
				{
					{
						if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA769;
						myreset_457601((&regs->data[ra_460876]));
						regs->data[ra_460876].Kind = ((NU8) 1);
					}
					LA769: ;
					asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), copytree_227329(cnst));
				}
				LA761: ;
			}
			break;
			case ((NU8) 149):
			{
				NI rb;
				rb = (NI32)((NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768) - 1);
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA774;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA774: ;
				asgnRefNoCycle((void**) (&regs->data[ra_460876].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_460876].Kind == ((NU8) 5)))) goto LA779;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 5);
				}
				LA779: ;
				regs->data[ra_460876].kindU.Nodeaddr = &(*(*c).Globals).kindU.S6.Sons->data[rb];
			}
			break;
			case ((NU8) 75):
			{
				NI rb;
				tnode226816* LOC786;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA784;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA784: ;
				asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), newnode_227090(((NU8) 20)));
				LOC786 = 0;
				LOC786 = regtonode_459280(regs->data[rb]);
				asgnRefNoCycle((void**) (&(*regs->data[ra_460876].kindU.Node).kindU.S3.Strval), rendertree_251058(LOC786, 4));
			}
			break;
			case ((NU8) 86):
			{
				{
					tnode226816* LOC792;
					NI64 LOC793;
					if (!((25 &(1<<(((*c).Mode)&7)))!=0)) goto LA790;
					message_198976((*c).Debug->data[pc], ((NU16) 266), ((NimStringDesc*) &TMP2724));
					LOC792 = 0;
					LOC792 = regtonode_459280(regs->data[ra_460876]);
					LOC793 = 0;
					LOC793 = getordvalue_264187(LOC792);
					exit(((NI) (LOC793)));
				}
				goto LA788;
				LA790: ;
				{
					tfullreg457204 LOC795;
					memset((void*)(&LOC795), 0, sizeof(LOC795));
					memset((void*)(&LOC795), 0, sizeof(LOC795));
					LOC795.Kind = ((NU8) 0);
					genericShallowAssign((void*)Result, (void*)(&LOC795), (&NTI457204));
					goto BeforeRet;
				}
				LA788: ;
			}
			break;
			case ((NU8) 76):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA799;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA799: ;
				(*regs->data[ra_460876].kindU.Node).kindU.S3.Strval = setLengthStr((*regs->data[ra_460876].kindU.Node).kindU.S3.Strval, ((NI) (regs->data[rb].kindU.Intval)));
			}
			break;
			case ((NU8) 80):
			{
				NI rb;
				NI rc;
				ttype226852* 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_460876].Kind == ((NU8) 2)))) goto LA804;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA804: ;
				typ = (*c).Types->data[regs->data[rc].kindU.Intval];
				LOC806 = 0;
				LOC806 = inheritancediff_271588((*regs->data[rb].kindU.Node).Typ, typ);
				regs->data[ra_460876].kindU.Intval = ((NI64) ((0 <= LOC806)));
			}
			break;
			case ((NU8) 81):
			{
				NI rb;
				NI rc;
				ttype226852* t1;
				ttype226852* 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_460876].Kind == ((NU8) 2)))) goto LA810;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA810: ;
				t1 = skiptypes_231245((*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_269351(t1, t2, 0);
				}
				LA812: ;
				regs->data[ra_460876].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_460876].Kind == ((NU8) 1)))) goto LA820;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA820: ;
				newlen = ((NI) (regs->data[rb].kindU.Intval));
				{
					if (!regs->data[ra_460876].kindU.Node == 0) goto LA824;
					stacktrace_457351(c, tos, pc, ((NU16) 81), ((NimStringDesc*) &TMP2724));
				}
				goto LA822;
				LA824: ;
				{
					(*regs->data[ra_460876].kindU.Node).kindU.S6.Sons = (tnodeseq226810*) setLengthSeq(&((*regs->data[ra_460876].kindU.Node).kindU.S6.Sons)->Sup, sizeof(tnode226816*), newlen);
				}
				LA822: ;
			}
			break;
			case ((NU8) 78):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!(regs->data[ra_460876].Kind == regs->data[rb].Kind)) goto LA830;
					switch (regs->data[ra_460876].Kind) {
					case ((NU8) 0):
					{
					}
					break;
					case ((NU8) 2):
					{
						NI64 LOC834;
						LOC834 = 0;
						LOC834 = regs->data[ra_460876].kindU.Intval;
						regs->data[ra_460876].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_460876].kindU.Floatval;
						regs->data[ra_460876].kindU.Floatval = regs->data[rb].kindU.Floatval;
						regs->data[rb].kindU.Floatval = LOC836;
					}
					break;
					case ((NU8) 1):
					{
						tnode226816* LOC838;
						LOC838 = 0;
						LOC838 = regs->data[ra_460876].kindU.Node;
						asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), regs->data[rb].kindU.Node);
						asgnRefNoCycle((void**) (&regs->data[rb].kindU.Node), LOC838);
					}
					break;
					case ((NU8) 4):
					{
						tfullreg457204* LOC840;
						LOC840 = 0;
						LOC840 = regs->data[ra_460876].kindU.Regaddr;
						regs->data[ra_460876].kindU.Regaddr = regs->data[rb].kindU.Regaddr;
						regs->data[rb].kindU.Regaddr = LOC840;
					}
					break;
					case ((NU8) 5):
					{
						tnode226816** LOC842;
						LOC842 = 0;
						LOC842 = regs->data[ra_460876].kindU.Nodeaddr;
						regs->data[ra_460876].kindU.Nodeaddr = regs->data[rb].kindU.Nodeaddr;
						regs->data[rb].kindU.Nodeaddr = LOC842;
					}
					break;
					}
				}
				goto LA828;
				LA830: ;
				{
					internalerror_198987((*c).Debug->data[pc], ((NimStringDesc*) &TMP2846));
				}
				LA828: ;
			}
			break;
			case ((NU8) 87):
			{
				internalerror_198987((*c).Debug->data[pc], ((NimStringDesc*) &TMP2847));
			}
			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_460876].Kind == ((NU8) 2)))) goto LA848;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].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_460876].kindU.Intval < min);
					if (LOC852) goto LA853;
					LOC852 = (max < regs->data[ra_460876].kindU.Intval);
					LA853: ;
					if (!LOC852) goto LA854;
					LOC856 = 0;
					LOC856 = msgkindtostring_198378(((NU16) 214));
					LOC857 = 0;
					LOC857 = nsuFormatSingleElem(LOC856, ((NimStringDesc*) &TMP2848));
					stacktrace_457351(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_460876].Kind == ((NU8) 2)))) goto LA861;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA861: ;
				regs->data[ra_460876].kindU.Intval = (NI64)(regs->data[ra_460876].kindU.Intval & (NI64)((NI64)((NU64)(IL64(1)) << (NU64)(((NI64) (rb)))) - IL64(1)));
			}
			break;
			case ((NU8) 79):
			{
				NI rb;
				tnode226816* node;
				NIM_BOOL LOC868;
				NIM_BOOL LOC870;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 2)))) goto LA866;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].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_460876].kindU.Intval = ((NI64) (LOC868));
			}
			break;
			case ((NU8) 152):
			{
				NI rbx;
				rbx = (NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768);
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA875;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA875: ;
				asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), copytree_227329((*(*c).Constants).kindU.S6.Sons->data[rbx]));
			}
			break;
			case ((NU8) 130):
			{
				NI rb;
				NI rc;
				NI idx;
				tnode226816* src;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA880;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].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_227364(src);
					LOC884 = ((NU32)(idx) < (NU32)(LOC886));
					LA885: ;
					if (!LOC884) goto LA887;
					asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), (*src).kindU.S6.Sons->data[idx]);
				}
				goto LA882;
				LA887: ;
				{
					stacktrace_457351(c, tos, pc, ((NU16) 82), ((NimStringDesc*) &TMP2724));
				}
				LA882: ;
			}
			break;
			case ((NU8) 131):
			{
				NI rb;
				NI rc;
				NI idx;
				tnode226816* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA893;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA893: ;
				idx = ((NI) (regs->data[rb].kindU.Intval));
				dest = regs->data[ra_460876].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_227364(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_457351(c, tos, pc, ((NU16) 82), ((NimStringDesc*) &TMP2724));
				}
				LA895: ;
			}
			break;
			case ((NU8) 94):
			{
				NI rb;
				NI rc;
				tnode226816* u;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA906;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA906: ;
				u = regs->data[rb].kindU.Node;
				add_227498(u, regs->data[rc].kindU.Node);
				asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), u);
			}
			break;
			case ((NU8) 95):
			{
				NI rb;
				NI rc;
				tnode226816* x;
				tnode226816* u;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA911;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA911: ;
				x = regs->data[rc].kindU.Node;
				u = regs->data[rb].kindU.Node;
				{
					NI i_472785;
					NI HEX3Atmp_476575;
					NI LOC914;
					NI res_476578;
					i_472785 = 0;
					HEX3Atmp_476575 = 0;
					LOC914 = 0;
					LOC914 = len_227364(x);
					HEX3Atmp_476575 = (LOC914 - 1);
					res_476578 = 0;
					{
						while (1) {
							if (!(res_476578 <= HEX3Atmp_476575)) goto LA916;
							i_472785 = res_476578;
							add_227498(u, (*x).kindU.S6.Sons->data[i_472785]);
							res_476578 += 1;
						} LA916: ;
					}
				}
				asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), u);
			}
			break;
			case ((NU8) 96):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 2)))) goto LA920;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA920: ;
				regs->data[ra_460876].kindU.Intval = ((NI64) ((*regs->data[rb].kindU.Node).Kind));
				(*c).Comesfromheuristic = (*regs->data[rb].kindU.Node).Info;
			}
			break;
			case ((NU8) 97):
			{
				NI rb;
				tnode226816* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 2)))) goto LA925;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 2);
				}
				LA925: ;
				a = regs->data[rb].kindU.Node;
				switch ((*a).Kind) {
				case ((NU8) 5) ... ((NU8) 10):
				{
					regs->data[ra_460876].kindU.Intval = (*a).kindU.S1.Intval;
				}
				break;
				default:
				{
					stacktrace_457351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2849));
				}
				break;
				}
			}
			break;
			case ((NU8) 98):
			{
				NI rb;
				tnode226816* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 3)))) goto LA932;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 3);
				}
				LA932: ;
				a = regs->data[rb].kindU.Node;
				switch ((*a).Kind) {
				case ((NU8) 16) ... ((NU8) 18):
				{
					regs->data[ra_460876].kindU.Floatval = (*a).kindU.S2.Floatval;
				}
				break;
				default:
				{
					stacktrace_457351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2850));
				}
				break;
				}
			}
			break;
			case ((NU8) 99):
			{
				NI rb;
				tnode226816* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA939;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA939: ;
				a = regs->data[rb].kindU.Node;
				{
					if (!((*a).Kind == ((NU8) 3))) goto LA943;
					asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), copynode_227323(a));
				}
				goto LA941;
				LA943: ;
				{
					stacktrace_457351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2851));
				}
				LA941: ;
			}
			break;
			case ((NU8) 100):
			{
				NI rb;
				tnode226816* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA949;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA949: ;
				a = regs->data[rb].kindU.Node;
				{
					if (!((*a).Kind == ((NU8) 2))) goto LA953;
					asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), copynode_227323(a));
				}
				goto LA951;
				LA953: ;
				{
					stacktrace_457351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2852));
				}
				LA951: ;
			}
			break;
			case ((NU8) 101):
			{
				NimStringDesc* LOC957;
				LOC957 = 0;
				LOC957 = rawNewString(reprEnum(((NU8) ((NU32)(instr & ((NU32) 255)))), (&NTI290028))->Sup.len + 15);
appendString(LOC957, ((NimStringDesc*) &TMP2853));
appendString(LOC957, reprEnum(((NU8) ((NU32)(instr & ((NU32) 255)))), (&NTI290028)));
				internalerror_198987((*c).Debug->data[pc], LOC957);
			}
			break;
			case ((NU8) 102):
			{
				NI rb;
				tnode226816* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA961;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA961: ;
				asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), newnode_227090(((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_460876].kindU.Node).kindU.S3.Strval; (*regs->data[ra_460876].kindU.Node).kindU.S3.Strval = copyStringRC1((*a).kindU.S3.Strval);
					if (LOC967) nimGCunrefNoCycle(LOC967);
				}
				goto LA963;
				LA965: ;
				{
					stacktrace_457351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2857));
				}
				LA963: ;
			}
			break;
			case ((NU8) 114):
			{
				NI rb;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA972;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA972: ;
				asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), newnode_227090(((NU8) 20)));
				asgnRefNoCycle((void**) (&(*regs->data[ra_460876].kindU.Node).kindU.S3.Strval), opslurp_455039((*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_460876].Kind == ((NU8) 1)))) goto LA977;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA977: ;
				asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), newnode_227090(((NU8) 20)));
				asgnRefNoCycle((void**) (&(*regs->data[ra_460876].kindU.Node).kindU.S3.Strval), opgorge_455027((*regs->data[rb].kindU.Node).kindU.S3.Strval, (*regs->data[rc].kindU.Node).kindU.S3.Strval));
			}
			break;
			case ((NU8) 119):
			{
				stacktrace_457351(c, tos, pc, ((NU16) 229), (*regs->data[ra_460876].kindU.Node).kindU.S3.Strval);
			}
			break;
			case ((NU8) 120):
			{
				message_198976((*c).Debug->data[pc], ((NU16) 258), (*regs->data[ra_460876].kindU.Node).kindU.S3.Strval);
			}
			break;
			case ((NU8) 121):
			{
				message_198976((*c).Debug->data[pc], ((NU16) 275), (*regs->data[ra_460876].kindU.Node).kindU.S3.Strval);
			}
			break;
			case ((NU8) 116):
			{
				NI rb;
				tnode226816* ast;
				NimStringDesc* LOC987;
				terrorhandler216188 LOC988;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA985;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA985: ;
				LOC987 = 0;
				LOC987 = tofullpath_198037((*c).Debug->data[pc].Fileindex);
				memset((void*)(&LOC988), 0, sizeof(LOC988));
				LOC988.ClPrc = HEX3Aanonymous_473689; LOC988.ClEnv = HEX3Aenv_476767;
				ast = parsestring_249539((*regs->data[rb].kindU.Node).kindU.S3.Strval, LOC987, ((NI) ((*c).Debug->data[pc].Line)), LOC988);
				{
					NimStringDesc* LOC993;
					if (!!((*HEX3Aenv_476767).Error473660 == 0)) goto LA991;
					LOC993 = 0;
					LOC993 = (*c).Errorflag; (*c).Errorflag = copyStringRC1((*HEX3Aenv_476767).Error473660);
					if (LOC993) nimGCunrefNoCycle(LOC993);
				}
				goto LA989;
				LA991: ;
				{
					NI LOC995;
					LOC995 = 0;
					LOC995 = sonslen_227249(ast);
					if (!!((LOC995 == 1))) goto LA996;
					asgnRefNoCycle((void**) (&(*c).Errorflag), formatmsg_198757((*c).Debug->data[pc], ((NU16) 60), ((NimStringDesc*) &TMP2872)));
				}
				goto LA989;
				LA996: ;
				{
					asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), (*ast).kindU.S6.Sons->data[0]);
				}
				LA989: ;
			}
			break;
			case ((NU8) 117):
			{
				NI rb;
				tnode226816* ast;
				NimStringDesc* LOC1004;
				terrorhandler216188 LOC1005;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA1002;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA1002: ;
				LOC1004 = 0;
				LOC1004 = tofullpath_198037((*c).Debug->data[pc].Fileindex);
				memset((void*)(&LOC1005), 0, sizeof(LOC1005));
				LOC1005.ClPrc = HEX3Aanonymous_473791; LOC1005.ClEnv = HEX3Aenv_476767;
				ast = parsestring_249539((*regs->data[rb].kindU.Node).kindU.S3.Strval, LOC1004, ((NI) ((*c).Debug->data[pc].Line)), LOC1005);
				{
					NimStringDesc* LOC1010;
					if (!!((*HEX3Aenv_476767).Error473762 == 0)) goto LA1008;
					LOC1010 = 0;
					LOC1010 = (*c).Errorflag; (*c).Errorflag = copyStringRC1((*HEX3Aenv_476767).Error473762);
					if (LOC1010) nimGCunrefNoCycle(LOC1010);
				}
				goto LA1006;
				LA1008: ;
				{
					asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), ast);
				}
				LA1006: ;
			}
			break;
			case ((NU8) 118):
			{
				NimStringDesc* LOC1013;
				asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), newnode_227090(((NU8) 20)));
				LOC1013 = 0;
				LOC1013 = (*regs->data[ra_460876].kindU.Node).kindU.S3.Strval; (*regs->data[ra_460876].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_460876].Kind == ((NU8) 1)))) goto LA1017;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA1017: ;
				{
					if (!!(((*c).Callsite == NIM_NIL))) goto LA1021;
					asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), (*c).Callsite);
				}
				goto LA1019;
				LA1021: ;
				{
					stacktrace_457351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2873));
				}
				LA1019: ;
			}
			break;
			case ((NU8) 122):
			{
				NI rb;
				tnode226816* n;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA1027;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA1027: ;
				n = regs->data[rb].kindU.Node;
				asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), newnode_227090(((NU8) 20)));
				asgnRefNoCycle((void**) (&(*regs->data[ra_460876].kindU.Node).kindU.S3.Strval), tofilelinecol_198103((*n).Info));
				(*regs->data[ra_460876].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_460876].Kind == ((NU8) 2)))) goto LA1032;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].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_460876].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_460876].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_460876].Kind == ((NU8) 1)))) goto LA1044;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA1044: ;
				{
					if (!!(((*regs->data[rb].kindU.Node).Kind >= ((NU8) 20) && (*regs->data[rb].kindU.Node).Kind <= ((NU8) 22)))) goto LA1048;
					stacktrace_457351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2857));
				}
				goto LA1046;
				LA1048: ;
				{
					asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), newnodei_227138(((NU8) 2), (*c).Debug->data[pc]));
					asgnRefNoCycle((void**) (&(*regs->data[ra_460876].kindU.Node).kindU.S5.Ident), getident_201472((*regs->data[rb].kindU.Node).kindU.S3.Strval));
				}
				LA1046: ;
			}
			break;
			case ((NU8) 125):
			{
				NI rb;
				tnode226816* a;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA1054;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA1054: ;
				a = regs->data[rb].kindU.Node;
				asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), newnode_227090(((NU8) 20)));
				(*regs->data[ra_460876].kindU.Node).Info = (*c).Debug->data[pc];
				{
					NimStringDesc* LOC1060;
					if (!((*a).Kind == ((NU8) 3))) goto LA1058;
					LOC1060 = 0;
					LOC1060 = (*regs->data[ra_460876].kindU.Node).kindU.S3.Strval; (*regs->data[ra_460876].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_460876].kindU.Node).kindU.S3.Strval; (*regs->data[ra_460876].kindU.Node).kindU.S3.Strval = copyStringRC1((*(*a).kindU.S5.Ident).S);
					if (LOC1064) nimGCunrefNoCycle(LOC1064);
				}
				goto LA1056;
				LA1062: ;
				{
					stacktrace_457351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2852));
				}
				LA1056: ;
			}
			break;
			case ((NU8) 153):
			{
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA1069;
					internalerror_198987((*c).Debug->data[pc], ((NimStringDesc*) &TMP2877));
				}
				LA1069: ;
				asgnRefNoCycle((void**) (&(*regs->data[ra_460876].kindU.Node).Typ), (*c).Types->data[(NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768)]);
			}
			break;
			case ((NU8) 84):
			{
				NI rb;
				ttype226852* desttyp;
				ttype226852* 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;
					TY170969 LOC1078;
					NimStringDesc* LOC1079;
					LOC1074 = 0;
					LOC1074 = opconv_459906((&regs->data[ra_460876]), regs->data[rb], desttyp, srctyp);
					if (!LOC1074) goto LA1075;
					LOC1077 = 0;
					LOC1077 = msgkindtostring_198378(((NU16) 142));
					memset((void*)LOC1078, 0, sizeof(LOC1078));
					LOC1078[0] = typetostring_264031(srctyp, ((NU8) 0));
					LOC1078[1] = typetostring_264031(desttyp, ((NU8) 0));
					LOC1079 = 0;
					LOC1079 = nsuFormatOpenArray(LOC1077, LOC1078, 2);
					stacktrace_457351(c, tos, pc, ((NU16) 4), LOC1079);
				}
				LA1075: ;
			}
			break;
			case ((NU8) 85):
			{
				NI rb;
				ttype226852* desttyp;
				ttype226852* 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_198945((*c).Debug->data[pc], ((NimStringDesc*) &TMP2882));
			}
			break;
			case ((NU8) 103):
			{
				NI rb;
				tnode226816* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA1084;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA1084: ;
				dest = regs->data[ra_460876].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_457351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2849));
				}
				LA1086: ;
			}
			break;
			case ((NU8) 104):
			{
				NI rb;
				tnode226816* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA1096;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA1096: ;
				dest = regs->data[ra_460876].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_457351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2850));
				}
				LA1098: ;
			}
			break;
			case ((NU8) 105):
			{
				NI rb;
				tnode226816* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA1108;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA1108: ;
				dest = regs->data[ra_460876].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_457351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2851));
				}
				LA1110: ;
			}
			break;
			case ((NU8) 106):
			{
				NI rb;
				tnode226816* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA1120;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA1120: ;
				dest = regs->data[ra_460876].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_457351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2852));
				}
				LA1122: ;
			}
			break;
			case ((NU8) 107):
			{
				NI rb;
				tnode226816* b;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA1132;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].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_199126(TMP2883);
					internalerror_199006(LOC1140);
				}
				LA1138: ;
				{
					NimStringDesc* LOC1145;
					if (!!(!((regs->data[ra_460876].kindU.Node == NIM_NIL)))) goto LA1143;
					LOC1145 = 0;
					LOC1145 = HEX24_199126(TMP2885);
					internalerror_199006(LOC1145);
				}
				LA1143: ;
				asgnRefNoCycle((void**) (&(*regs->data[ra_460876].kindU.Node).Typ), (*(*b).kindU.S4.Sym).Typ);
			}
			break;
			case ((NU8) 108):
			{
				NI rb;
				tnode226816* dest;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA1149;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA1149: ;
				dest = regs->data[ra_460876].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_457351(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2857));
				}
				LA1151: ;
			}
			break;
			case ((NU8) 109):
			{
				NI rb;
				NI rc;
				NI64 k;
				tnode226816* cc;
				tlineinfo196539 LOC1170;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA1162;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].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_198987((*c).Debug->data[pc], ((NimStringDesc*) &TMP2886));
				}
				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;
					tnode226816* LOC1184;
					LOC1179 = 0;
					LOC1179 = !(((*c).Callsite == NIM_NIL));
					if (!(LOC1179)) goto LA1180;
					LOC1181 = 0;
					LOC1181 = safelen_227424((*c).Callsite);
					LOC1179 = (1 < LOC1181);
					LA1180: ;
					if (!LOC1179) goto LA1182;
					LOC1184 = 0;
					LOC1184 = HEX5BHEX5D_227698((*c).Callsite, 1);
					LOC1170 = (*LOC1184).Info;
				}
				goto LA1171;
				LA1182: ;
				{
					LOC1170 = (*c).Debug->data[pc];
				}
				LA1171: ;
				asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), newnodei_227138(((NU8) (((NI) (k)))), LOC1170));
				(*regs->data[ra_460876].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_460876].Kind == ((NU8) 1)))) goto LA1189;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA1189: ;
				asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), copynode_227323(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_460876].Kind == ((NU8) 1)))) goto LA1194;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA1194: ;
				asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), copytree_227329(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_460876].Kind == ((NU8) 1)))) goto LA1199;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA1199: ;
				bb = ((NI) (regs->data[rb].kindU.Intval));
				{
					NI i_475921;
					NI HEX3Atmp_476648;
					NI res_476651;
					i_475921 = 0;
					HEX3Atmp_476648 = 0;
					HEX3Atmp_476648 = (NI32)(((NI) (regs->data[rc].kindU.Intval)) - 1);
					res_476651 = 0;
					{
						while (1) {
							if (!(res_476651 <= HEX3Atmp_476648)) goto LA1203;
							i_475921 = res_476651;
							delson_227294(regs->data[ra_460876].kindU.Node, bb);
							res_476651 += 1;
						} LA1203: ;
					}
				}
			}
			break;
			case ((NU8) 113):
			{
				NI rb;
				NI rc;
				NI64 k;
				NimStringDesc* name;
				tsym226846* sym;
				tident201021* LOC1220;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA1207;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].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*) &TMP2887));
				}
				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_198987((*c).Debug->data[pc], ((NimStringDesc*) &TMP2888));
				}
				LA1218: ;
				LOC1220 = 0;
				LOC1220 = getident_201472(name);
				sym = newsym_227074(((NU8) (k)), LOC1220, (*c).Module, (*c).Debug->data[pc]);
				(*sym).Flags |= ((NI32)1)<<((((NU8) 31))%(sizeof(NI32)*8));
				asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), newsymnode_227132(sym));
			}
			break;
			case ((NU8) 154):
			{
				NI rb;
				ttype226852* typ;
				rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
				{
					if (!!((regs->data[ra_460876].Kind == ((NU8) 1)))) goto LA1224;
					myreset_457601((&regs->data[ra_460876]));
					regs->data[ra_460876].Kind = ((NU8) 1);
				}
				LA1224: ;
				typ = (*regs->data[rb].kindU.Node).Typ;
				{
					NimStringDesc* LOC1230;
					if (!!(!((typ == NIM_NIL)))) goto LA1228;
					LOC1230 = 0;
					LOC1230 = HEX24_199126(TMP2889);
					internalerror_199006(LOC1230);
				}
				LA1228: ;
				{
					while (1) {
						NIM_BOOL LOC1233;
						NI LOC1235;
						LOC1233 = 0;
						LOC1233 = ((*typ).Kind == ((NU8) 8));
						if (!(LOC1233)) goto LA1234;
						LOC1235 = 0;
						LOC1235 = len_231005(typ);
						LOC1233 = (0 < LOC1235);
						LA1234: ;
						if (!LOC1233) goto LA1232;
						typ = (*typ).Sons->data[0];
					} LA1232: ;
				}
				asgnRefNoCycle((void**) (&regs->data[ra_460876].kindU.Node), newnode_227090(((NU8) 20)));
				asgnRefNoCycle((void**) (&(*regs->data[ra_460876].kindU.Node).kindU.S3.Strval), typetostring_264031(typ, ((NU8) 2)));
			}
			break;
			}
			pc += 1;
		}
	}
	BeforeRet: ;
}

N_NIMCALL(tnode226816*, evalmacrocall_478329)(tsym226846* module, tnode226816* n, tnode226816* norig, tsym226846* sym) {
	tnode226816* result;
	tctx290048* c;
	NI start;
	tstackframe457208* tos;
	tstackframe457208* LOC18;
	NI maxslots;
	NI l;
	tfullreg457204 LOC26;
	result = 0;
	evalmacrocounter_478324 += 1;
	{
		if (!(100 < evalmacrocounter_478324)) goto LA3;
		globalerror_198934((*n).Info, ((NU16) 183), ((NimStringDesc*) &TMP2724));
	}
	LA3: ;
	{
		NIM_BOOL LOC7;
		NI LOC8;
		NI LOC9;
		NI LOC11;
		TY170969 LOC14;
		NI LOC15;
		NI LOC16;
		NimStringDesc* LOC17;
		LOC7 = 0;
		LOC8 = 0;
		LOC8 = safelen_227424(n);
		LOC9 = 0;
		LOC9 = len_231005((*sym).Typ);
		LOC7 = (LOC8 < LOC9);
		if (!(LOC7)) goto LA10;
		LOC11 = 0;
		LOC11 = len_231005((*sym).Typ);
		LOC7 = (1 < LOC11);
		LA10: ;
		if (!LOC7) goto LA12;
		memset((void*)LOC14, 0, sizeof(LOC14));
		LOC15 = 0;
		LOC15 = safelen_227424(n);
		LOC14[0] = nimIntToStr((LOC15 - 1));
		LOC16 = 0;
		LOC16 = len_231005((*sym).Typ);
		LOC14[1] = nimIntToStr((LOC16 - 1));
		LOC17 = 0;
		LOC17 = nsuFormatOpenArray(((NimStringDesc*) &TMP2725), LOC14, 2);
		globalerror_198945((*n).Info, LOC17);
	}
	LA12: ;
	setupglobalctx_477263(module);
	c = globalctx_477258;
	asgnRefNoCycle((void**) (&(*c).Callsite), norig);
	start = genproc_452721(c, sym);
	LOC18 = 0;
	LOC18 = (tstackframe457208*) newObj((&NTI457206), sizeof(tstackframe457208));
	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 = (TY457895*) newSeqRC1((&NTI457895), maxslots);
	l = safelen_227424(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_227145(((NU8) 1), (*n).Info, (*(*sym).Typ).Sons->data[0]));
	{
		NI i_478448;
		NI HEX3Atmp_478491;
		NI res_478494;
		i_478448 = 0;
		HEX3Atmp_478491 = 0;
		HEX3Atmp_478491 = ((((*tos).Slots->Sup.len <= l) ? (*tos).Slots->Sup.len : l) - 1);
		res_478494 = 1;
		{
			while (1) {
				if (!(res_478494 <= HEX3Atmp_478491)) goto LA25;
				i_478448 = res_478494;
				(*tos).Slots->data[i_478448].Kind = ((NU8) 1);
				asgnRefNoCycle((void**) (&(*tos).Slots->data[i_478448].kindU.Node), setupmacroparam_478270((*n).kindU.S6.Sons->data[i_478448]));
				res_478494 += 1;
			} LA25: ;
		}
	}
	memset((void*)(&LOC26), 0, sizeof(LOC26));
	rawexecute_460846(c, start, tos, (&LOC26));
	result = regtonode_459280(LOC26);
	{
		NIM_BOOL LOC29;
		LOC29 = 0;
		LOC29 = cyclictree_262173(result);
		if (!LOC29) goto LA30;
		globalerror_198934((*n).Info, ((NU16) 215), ((NimStringDesc*) &TMP2724));
	}
	LA30: ;
	evalmacrocounter_478324 -= 1;
	asgnRefNoCycle((void**) (&(*c).Callsite), NIM_NIL);
	return result;
}

N_NIMCALL(tnode226816*, evalconstexpraux_477751)(tsym226846* module, tsym226846* prc, tnode226816* n_477755, NU8 mode) {
	tnode226816* result;
	tnode226816* n;
	tctx290048* c;
	NI start;
	tstackframe457208* tos;
	tstackframe457208* LOC5;
	tfullreg457204 LOC6;
	result = 0;
	n = transformexpr_442807(module, n_477755);
	setupglobalctx_477263(module);
	c = globalctx_477258;
	(*c).Mode = mode;
	start = genexpr_453665(c, n, !((mode == ((NU8) 4))));
	{
		if (!(((NU8) ((NU32)((*c).Code->data[start] & ((NU32) 255)))) == ((NU8) 0))) goto LA3;
		result = emptynode_227738;
		goto BeforeRet;
	}
	LA3: ;
	LOC5 = 0;
	LOC5 = (tstackframe457208*) newObj((&NTI457206), sizeof(tstackframe457208));
	asgnRefNoCycle((void**) (&(*LOC5).Prc), prc);
	(*LOC5).Comesfrom = 0;
	asgnRef((void**) (&(*LOC5).Next), NIM_NIL);
	tos = LOC5;
	if ((*tos).Slots) nimGCunrefNoCycle((*tos).Slots);
	(*tos).Slots = (TY457895*) newSeqRC1((&NTI457895), (*(*c).Prc).Maxslots);
	memset((void*)(&LOC6), 0, sizeof(LOC6));
	rawexecute_460846(c, start, tos, (&LOC6));
	result = regtonode_459280(LOC6);
	BeforeRet: ;
	return result;
}

N_NIMCALL(tnode226816*, evalstaticexpr_478237)(tsym226846* module, tnode226816* e, tsym226846* prc) {
	tnode226816* result;
	result = 0;
	result = evalconstexpraux_477751(module, prc, e, ((NU8) 3));
	return result;
}

N_NIMCALL(tnode226816*, evalconstexpr_478226)(tsym226846* module, tnode226816* e) {
	tnode226816* result;
	result = 0;
	result = evalconstexpraux_477751(module, NIM_NIL, e, ((NU8) 1));
	return result;
}

N_NIMCALL(void, setupcompiletimevar_478260)(tsym226846* module, tnode226816* n) {
	tnode226816* LOC1;
	LOC1 = 0;
	LOC1 = evalconstexpraux_477751(module, NIM_NIL, n, ((NU8) 4));
}

N_NIMCALL(void, evalstaticstmt_478249)(tsym226846* module, tnode226816* e, tsym226846* prc) {
	tnode226816* LOC1;
	LOC1 = 0;
	LOC1 = evalconstexpraux_477751(module, prc, e, ((NU8) 4));
}

N_NIMCALL(tpasscontext287005*, myopen_477283)(tsym226846* module) {
	tpasscontext287005* result;
	result = 0;
	setupglobalctx_477263(module);
	result = &globalctx_477258->Sup;
	return result;
}

N_NIMCALL(tnode226816*, execute_476772)(tctx290048* c, NI start) {
	tnode226816* result;
	tstackframe457208* tos;
	tstackframe457208* LOC1;
	tfullreg457204 LOC2;
	result = 0;
	LOC1 = 0;
	LOC1 = (tstackframe457208*) newObj((&NTI457206), sizeof(tstackframe457208));
	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 = (TY457895*) newSeqRC1((&NTI457895), (*(*c).Prc).Maxslots);
	memset((void*)(&LOC2), 0, sizeof(LOC2));
	rawexecute_460846(c, start, tos, (&LOC2));
	result = regtonode_459280(LOC2);
	return result;
}

N_NIMCALL(void, evalstmt_476801)(tctx290048* c, tnode226816* n_476804) {
	tnode226816* n;
	NI start;
	n = transformexpr_442807((*c).Module, n_476804);
	start = genstmt_453640(c, n);
	{
		tnode226816* LOC5;
		if (!!((((NU8) ((NU32)((*c).Code->data[start] & ((NU32) 255)))) == ((NU8) 0)))) goto LA3;
		LOC5 = 0;
		LOC5 = execute_476772(c, start);
	}
	LA3: ;
}

N_NIMCALL(tnode226816*, myprocess_477412)(tpasscontext287005* c, tnode226816* n) {
	tnode226816* result;
	result = 0;
	{
		if (!(olderrorcount_477407 == gerrorcounter_197306)) goto LA3;
		evalstmt_476801(((tctx290048*) (c)), n);
		result = emptynode_227738;
	}
	goto LA1;
	LA3: ;
	{
		result = n;
	}
	LA1: ;
	olderrorcount_477407 = gerrorcounter_197306;
	return result;
}
NIM_EXTERNC N_NOINLINE(void, HEX00_vmInit)(void) {
}

NIM_EXTERNC N_NOINLINE(void, HEX00_vmDatInit)(void) {
static TNimNode* TMP2728[6];
NI TMP2730;
static char* NIM_CONST TMP2729[6] = {
"rkNone", 
"rkNode", 
"rkInt", 
"rkFloat", 
"rkRegisterAddr", 
"rkNodeAddr"};
static TNimNode* TMP2824[5];
static TNimNode* TMP2827[3];
static TNimNode TMP938[24];
NTI457204.size = sizeof(tfullreg457204);
NTI457204.kind = 18;
NTI457204.base = 0;
NTI457204.flags = 2;
NTI457202.size = sizeof(NU8);
NTI457202.kind = 14;
NTI457202.base = 0;
NTI457202.flags = 3;
for (TMP2730 = 0; TMP2730 < 6; TMP2730++) {
TMP938[TMP2730+1].kind = 1;
TMP938[TMP2730+1].offset = TMP2730;
TMP938[TMP2730+1].name = TMP2729[TMP2730];
TMP2728[TMP2730] = &TMP938[TMP2730+1];
}
TMP938[7].len = 6; TMP938[7].kind = 2; TMP938[7].sons = &TMP2728[0];
NTI457202.node = &TMP938[7];
TMP938[0].kind = 3;
TMP938[0].offset = offsetof(tfullreg457204, Kind);
TMP938[0].typ = (&NTI457202);
TMP938[0].name = "kind";
TMP938[0].sons = &NimDT_457204_kind[0];
TMP938[0].len = 6;
TMP938[8].len = 0; TMP938[8].kind = 2;
NimDT_457204_kind[0] = &TMP938[8];
TMP938[9].kind = 1;
TMP938[9].offset = offsetof(tfullreg457204, kindU.Intval);
TMP938[9].typ = (&NTI5510);
TMP938[9].name = "intVal";
NimDT_457204_kind[2] = &TMP938[9];
TMP938[10].kind = 1;
TMP938[10].offset = offsetof(tfullreg457204, kindU.Floatval);
TMP938[10].typ = (&NTI5512);
TMP938[10].name = "floatVal";
NimDT_457204_kind[3] = &TMP938[10];
TMP938[11].kind = 1;
TMP938[11].offset = offsetof(tfullreg457204, kindU.Node);
TMP938[11].typ = (&NTI226808);
TMP938[11].name = "node";
NimDT_457204_kind[1] = &TMP938[11];
NTI457219.size = sizeof(tfullreg457204*);
NTI457219.kind = 21;
NTI457219.base = (&NTI457204);
NTI457219.flags = 3;
TMP938[12].kind = 1;
TMP938[12].offset = offsetof(tfullreg457204, kindU.Regaddr);
TMP938[12].typ = (&NTI457219);
TMP938[12].name = "regAddr";
NimDT_457204_kind[4] = &TMP938[12];
TMP938[13].kind = 1;
TMP938[13].offset = offsetof(tfullreg457204, kindU.Nodeaddr);
TMP938[13].typ = (&NTI457221);
TMP938[13].name = "nodeAddr";
NimDT_457204_kind[5] = &TMP938[13];
NTI457204.node = &TMP938[0];
NTI457208.size = sizeof(tstackframe457208);
NTI457208.kind = 18;
NTI457208.base = 0;
TMP2824[0] = &TMP938[15];
TMP938[15].kind = 1;
TMP938[15].offset = offsetof(tstackframe457208, Prc);
TMP938[15].typ = (&NTI226814);
TMP938[15].name = "prc";
TMP2824[1] = &TMP938[16];
NTI457895.size = sizeof(TY457895*);
NTI457895.kind = 24;
NTI457895.base = (&NTI457204);
NTI457895.flags = 2;
NTI457895.marker = TMP2825;
TMP938[16].kind = 1;
TMP938[16].offset = offsetof(tstackframe457208, Slots);
TMP938[16].typ = (&NTI457895);
TMP938[16].name = "slots";
TMP2824[2] = &TMP938[17];
TMP938[17].kind = 1;
TMP938[17].offset = offsetof(tstackframe457208, Next);
TMP938[17].typ = (&NTI457206);
TMP938[17].name = "next";
TMP2824[3] = &TMP938[18];
TMP938[18].kind = 1;
TMP938[18].offset = offsetof(tstackframe457208, Comesfrom);
TMP938[18].typ = (&NTI108);
TMP938[18].name = "comesFrom";
TMP2824[4] = &TMP938[19];
TMP938[19].kind = 1;
TMP938[19].offset = offsetof(tstackframe457208, Safepoints);
TMP938[19].typ = (&NTI344680);
TMP938[19].name = "safePoints";
TMP938[14].len = 5; TMP938[14].kind = 2; TMP938[14].sons = &TMP2824[0];
NTI457208.node = &TMP938[14];
NTI457206.size = sizeof(tstackframe457208*);
NTI457206.kind = 22;
NTI457206.base = (&NTI457208);
NTI457206.marker = TMP2826;
NTI476665.size = sizeof(TY476665);
NTI476665.kind = 18;
NTI476665.base = 0;
NTI476665.flags = 2;
TMP2827[0] = &TMP938[21];
TMP938[21].kind = 1;
TMP938[21].offset = offsetof(TY476665, HEX3Astate);
TMP938[21].typ = (&NTI358033);
TMP938[21].name = ":state";
TMP2827[1] = &TMP938[22];
TMP938[22].kind = 1;
TMP938[22].offset = offsetof(TY476665, Error473660);
TMP938[22].typ = (&NTI149);
TMP938[22].name = "error473660";
TMP2827[2] = &TMP938[23];
TMP938[23].kind = 1;
TMP938[23].offset = offsetof(TY476665, Error473762);
TMP938[23].typ = (&NTI149);
TMP938[23].name = "error473762";
TMP938[20].len = 3; TMP938[20].kind = 2; TMP938[20].sons = &TMP2827[0];
NTI476665.node = &TMP938[20];
NTI476768.size = sizeof(TY476665*);
NTI476768.kind = 22;
NTI476768.base = (&NTI476665);
NTI476768.flags = 2;
NTI476768.marker = TMP2828;
}

