#include "machine.h"

int add() { 
    pushp(FP);
    FP = SP;
    SP -= 4;
    *((WPtr)(((WPtr)(FP)+-1))) = *((WPtr)(((WPtr)(FP)+2)));
    *((WPtr)(((WPtr)(FP)+-3))) = ((WPtr)((WPtr)(*((WPtr)(((WPtr)(FP)+-1))))+2))[(Word)(-1)];
    *((WPtr)(((WPtr)(FP)+-4))) = (Word)(0);
_T13:
    if ( *((WPtr)(((WPtr)(FP)+-4))) >= *((WPtr)(((WPtr)(FP)+-3))) ) goto _T11;
    *((WPtr)(((WPtr)(FP)+-2))) = ((WPtr)((WPtr)(*((WPtr)(((WPtr)(FP)+-1))))+2))[*((WPtr)(((WPtr)(FP)+-4)))];
    pushw(*((WPtr)(((WPtr)(FP)+-2))));
    pushw(*((WPtr)(((WPtr)(FP)+1))));
    append();
_T12:
    (*((WPtr)(((WPtr)(FP)+-4)))) ++;
    goto _T13;
_T11:
_T10:
    SP += 4;
    popp(FP);
    SP += 2;
    return 0;
} 

int main() { 
    pushp(FP);
    FP = SP;
    SP -= 19;
    *((WPtr)(((WPtr)(FP)+-1))) = (Word)(1024);
Word _T15[]={
    (Word)5,
    (Word)5,
    (Word)(Word)(1),
    (Word)(Word)(0),
    (Word)(Word)(1),
    (Word)(Word)(0),
    (Word)(Word)(1),
    0};
    *((WPtr)(((WPtr)(FP)+-2))) = (Word)(_T15);
Word _T16[]={
    (Word)5,
    (Word)5,
    (Word)(Word)(1),
    (Word)(Word)(3),
    (Word)(Word)(5),
    (Word)(Word)(7),
    (Word)(Word)(9),
    0};
    *((WPtr)(((WPtr)(FP)+-3))) = (Word)(_T16);
Word _T18[]={
    (Word)3,
    (Word)3,
    (Word)84,
    (Word)104,
    (Word)101,
    0};
Word _T19[]={
    (Word)5,
    (Word)5,
    (Word)113,
    (Word)117,
    (Word)105,
    (Word)99,
    (Word)107,
    0};
Word _T20[]={
    (Word)5,
    (Word)5,
    (Word)98,
    (Word)114,
    (Word)111,
    (Word)119,
    (Word)110,
    0};
Word _T21[]={
    (Word)3,
    (Word)3,
    (Word)102,
    (Word)111,
    (Word)120,
    0};
Word _T22[]={
    (Word)5,
    (Word)5,
    (Word)106,
    (Word)117,
    (Word)109,
    (Word)112,
    (Word)115,
    0};
Word _T23[]={
    (Word)4,
    (Word)4,
    (Word)111,
    (Word)118,
    (Word)101,
    (Word)114,
    0};
Word _T24[]={
    (Word)3,
    (Word)3,
    (Word)116,
    (Word)104,
    (Word)101,
    0};
Word _T25[]={
    (Word)4,
    (Word)4,
    (Word)108,
    (Word)97,
    (Word)122,
    (Word)121,
    0};
Word _T26[]={
    (Word)3,
    (Word)3,
    (Word)100,
    (Word)111,
    (Word)103,
    0};
Word _T17[]={
    (Word)9,
    (Word)9,
    (Word)(Word)(_T18),
    (Word)(Word)(_T19),
    (Word)(Word)(_T20),
    (Word)(Word)(_T21),
    (Word)(Word)(_T22),
    (Word)(Word)(_T23),
    (Word)(Word)(_T24),
    (Word)(Word)(_T25),
    (Word)(Word)(_T26),
    0};
    *((WPtr)(((WPtr)(FP)+-4))) = (Word)(_T17);
    pushw(*((WPtr)(((WPtr)(FP)+-1))));
    make_list();
    *((WPtr)(((WPtr)(FP)+-5))) = R0;
    pushw(*((WPtr)(((WPtr)(FP)+-1))));
    make_list();
    *((WPtr)(((WPtr)(FP)+-6))) = R0;
    pushw(*((WPtr)(((WPtr)(FP)+-1))));
    make_list();
    *((WPtr)(((WPtr)(FP)+-7))) = R0;
    pushw(*((WPtr)(((WPtr)(FP)+-2))));
    put_bool_list();
    pushw(*((WPtr)(((WPtr)(FP)+-3))));
    put_int_list();
    pushw(*((WPtr)(((WPtr)(FP)+-4))));
    put_str_list();
    pushw((Word)(4));
    pushw((Word)(0));
    range();
    *((WPtr)(((WPtr)(FP)+-8))) = R0;
    *((WPtr)(((WPtr)(FP)+-10))) = ((WPtr)((WPtr)(*((WPtr)(((WPtr)(FP)+-8))))+2))[(Word)(-1)];
    *((WPtr)(((WPtr)(FP)+-11))) = (Word)(0);
_T29:
    if ( *((WPtr)(((WPtr)(FP)+-11))) >= *((WPtr)(((WPtr)(FP)+-10))) ) goto _T27;
    *((WPtr)(((WPtr)(FP)+-9))) = ((WPtr)((WPtr)(*((WPtr)(((WPtr)(FP)+-8))))+2))[*((WPtr)(((WPtr)(FP)+-11)))];
    pushw(*((WPtr)(((WPtr)(FP)+-2))));
    pushw(*((WPtr)(((WPtr)(FP)+-5))));
    add();
_T28:
    (*((WPtr)(((WPtr)(FP)+-11)))) ++;
    goto _T29;
_T27:
    pushw(*((WPtr)(((WPtr)(FP)+-5))));
    put_bool_list();
    pushw((Word)(4));
    pushw((Word)(0));
    range();
    *((WPtr)(((WPtr)(FP)+-12))) = R0;
    *((WPtr)(((WPtr)(FP)+-14))) = ((WPtr)((WPtr)(*((WPtr)(((WPtr)(FP)+-12))))+2))[(Word)(-1)];
    *((WPtr)(((WPtr)(FP)+-15))) = (Word)(0);
_T32:
    if ( *((WPtr)(((WPtr)(FP)+-15))) >= *((WPtr)(((WPtr)(FP)+-14))) ) goto _T30;
    *((WPtr)(((WPtr)(FP)+-13))) = ((WPtr)((WPtr)(*((WPtr)(((WPtr)(FP)+-12))))+2))[*((WPtr)(((WPtr)(FP)+-15)))];
    pushw(*((WPtr)(((WPtr)(FP)+-3))));
    pushw(*((WPtr)(((WPtr)(FP)+-6))));
    add();
_T31:
    (*((WPtr)(((WPtr)(FP)+-15)))) ++;
    goto _T32;
_T30:
    pushw(*((WPtr)(((WPtr)(FP)+-6))));
    put_int_list();
    pushw((Word)(4));
    pushw((Word)(0));
    range();
    *((WPtr)(((WPtr)(FP)+-16))) = R0;
    *((WPtr)(((WPtr)(FP)+-18))) = ((WPtr)((WPtr)(*((WPtr)(((WPtr)(FP)+-16))))+2))[(Word)(-1)];
    *((WPtr)(((WPtr)(FP)+-19))) = (Word)(0);
_T35:
    if ( *((WPtr)(((WPtr)(FP)+-19))) >= *((WPtr)(((WPtr)(FP)+-18))) ) goto _T33;
    *((WPtr)(((WPtr)(FP)+-17))) = ((WPtr)((WPtr)(*((WPtr)(((WPtr)(FP)+-16))))+2))[*((WPtr)(((WPtr)(FP)+-19)))];
    pushw(*((WPtr)(((WPtr)(FP)+-4))));
    pushw(*((WPtr)(((WPtr)(FP)+-7))));
    add();
_T34:
    (*((WPtr)(((WPtr)(FP)+-19)))) ++;
    goto _T35;
_T33:
    pushw(*((WPtr)(((WPtr)(FP)+-7))));
    put_str_list();
_T14:
    SP += 19;
    popp(FP);
    return 0;
} 

