#include "machine.h"

int node___init__() { 
    pushp(FP);
    FP = SP;
    R1 = *((WPtr)(((WPtr)(FP)+1)));
    *((WPtr)(((WPtr)(R1)+2))) = *((WPtr)(((WPtr)(FP)+2)));
    R1 = *((WPtr)(((WPtr)(FP)+1)));
    *((WPtr)(((WPtr)(R1)+3))) = *((WPtr)(((WPtr)(FP)+3)));
    R1 = *((WPtr)(((WPtr)(FP)+1)));
    *((WPtr)(((WPtr)(R1)+4))) = *((WPtr)(((WPtr)(FP)+4)));
_T10:
    popp(FP);
    SP += 4;
    return 0;
} 

int node_put() { 
    pushp(FP);
    FP = SP;
    pushw(R1);
    R1 = *((WPtr)(((WPtr)(FP)+1)));
    pushw(*((WPtr)(((WPtr)(R1)+2))));
    put_str();
    R1 = *((WPtr)(((WPtr)(FP)+1)));
    pushw(*((WPtr)(((WPtr)(R1)+3))));
    put_int();
    R1 = *((WPtr)(((WPtr)(FP)+1)));
    if ( *((WPtr)(((WPtr)(R1)+4))) == (Word)(0) ) goto _T13;
    R1 = *((WPtr)(((WPtr)(FP)+1)));
    pushw(*((WPtr)(((WPtr)(R1)+4))));
    node_put();
_T13:
_T12:
_T11:
    popw(R1);
    popp(FP);
    SP += 1;
    return 0;
} 

int SearchList___init__() { 
    pushp(FP);
    FP = SP;
    R1 = *((WPtr)(((WPtr)(FP)+1)));
    *((WPtr)(((WPtr)(R1)+2))) = (Word)(0);
_T14:
    popp(FP);
    SP += 1;
    return 0;
} 

int SearchList_insert() { 
    pushp(FP);
    FP = SP;
    R1 = *((WPtr)(((WPtr)(FP)+1)));
    pushw(*((WPtr)(((WPtr)(R1)+2))));
    pushw(*((WPtr)(((WPtr)(FP)+3))));
    pushw(*((WPtr)(((WPtr)(FP)+2))));
    pushw((Word)(5));
    py_malloc();
    pushw(R0);
    node___init__();
    R1 = *((WPtr)(((WPtr)(FP)+1)));
    *((WPtr)(((WPtr)(R1)+2))) = R0;
_T15:
    popp(FP);
    SP += 3;
    return 0;
} 

int SearchList_find() { 
    pushp(FP);
    FP = SP;
    SP -= 1;
    pushw(R1);
    R1 = *((WPtr)(((WPtr)(FP)+1)));
    *((WPtr)(((WPtr)(FP)+-1))) = *((WPtr)(((WPtr)(R1)+2)));
_T18:
    R1 = *((WPtr)(((WPtr)(FP)+-1)));
    if ( R1 == (Word)(0) ) goto _T17;
    R1 = *((WPtr)(((WPtr)(FP)+-1)));
    if ( *((WPtr)(((WPtr)(R1)+2))) != *((WPtr)(((WPtr)(FP)+2))) ) goto _T20;
    R1 = *((WPtr)(((WPtr)(FP)+-1)));
    R0 = *((WPtr)(((WPtr)(R1)+3)));
    goto _T16;
_T20:
_T19:
    goto _T18;
_T17:
    R0 = (Word)(0);
    goto _T16;
_T16:
    popw(R1);
    SP += 1;
    popp(FP);
    SP += 2;
    return 0;
} 

int SearchList_put() { 
    pushp(FP);
    FP = SP;
    pushw(R1);
    R1 = *((WPtr)(((WPtr)(FP)+1)));
    if ( *((WPtr)(((WPtr)(R1)+2))) == (Word)(0) ) goto _T23;
    R1 = *((WPtr)(((WPtr)(FP)+1)));
    pushw(*((WPtr)(((WPtr)(R1)+2))));
    node_put();
_T23:
_T22:
_T21:
    popw(R1);
    popp(FP);
    SP += 1;
    return 0;
} 

int main() { 
    pushp(FP);
    FP = SP;
    SP -= 2;
    pushw((Word)(3));
    py_malloc();
    pushw(R0);
    SearchList___init__();
    *((WPtr)(((WPtr)(FP)+-1))) = R0;
    *((WPtr)(((WPtr)(FP)+-2))) = (Word)(1);
    pushw((Word)(1));
Word _T25[]={
    (Word)7,
    (Word)7,
    (Word)74,
    (Word)97,
    (Word)110,
    (Word)117,
    (Word)97,
    (Word)114,
    (Word)121,
    0};
    pushw((Word)(_T25));
    pushw(*((WPtr)(((WPtr)(FP)+-1))));
    SearchList_insert();
    pushw((Word)(2));
Word _T26[]={
    (Word)8,
    (Word)8,
    (Word)70,
    (Word)101,
    (Word)98,
    (Word)114,
    (Word)117,
    (Word)97,
    (Word)114,
    (Word)121,
    0};
    pushw((Word)(_T26));
    pushw(*((WPtr)(((WPtr)(FP)+-1))));
    SearchList_insert();
    pushw((Word)(3));
Word _T27[]={
    (Word)5,
    (Word)5,
    (Word)77,
    (Word)97,
    (Word)114,
    (Word)99,
    (Word)104,
    0};
    pushw((Word)(_T27));
    pushw(*((WPtr)(((WPtr)(FP)+-1))));
    SearchList_insert();
    pushw((Word)(4));
Word _T28[]={
    (Word)5,
    (Word)5,
    (Word)65,
    (Word)112,
    (Word)114,
    (Word)105,
    (Word)108,
    0};
    pushw((Word)(_T28));
    pushw(*((WPtr)(((WPtr)(FP)+-1))));
    SearchList_insert();
    pushw((Word)(5));
Word _T29[]={
    (Word)3,
    (Word)3,
    (Word)77,
    (Word)97,
    (Word)121,
    0};
    pushw((Word)(_T29));
    pushw(*((WPtr)(((WPtr)(FP)+-1))));
    SearchList_insert();
    pushw((Word)(6));
Word _T30[]={
    (Word)4,
    (Word)4,
    (Word)74,
    (Word)117,
    (Word)110,
    (Word)101,
    0};
    pushw((Word)(_T30));
    pushw(*((WPtr)(((WPtr)(FP)+-1))));
    SearchList_insert();
    pushw((Word)(7));
Word _T31[]={
    (Word)4,
    (Word)4,
    (Word)74,
    (Word)117,
    (Word)108,
    (Word)121,
    0};
    pushw((Word)(_T31));
    pushw(*((WPtr)(((WPtr)(FP)+-1))));
    SearchList_insert();
    pushw((Word)(8));
Word _T32[]={
    (Word)6,
    (Word)6,
    (Word)65,
    (Word)117,
    (Word)103,
    (Word)117,
    (Word)115,
    (Word)116,
    0};
    pushw((Word)(_T32));
    pushw(*((WPtr)(((WPtr)(FP)+-1))));
    SearchList_insert();
    pushw((Word)(9));
Word _T33[]={
    (Word)9,
    (Word)9,
    (Word)83,
    (Word)101,
    (Word)112,
    (Word)116,
    (Word)101,
    (Word)109,
    (Word)98,
    (Word)101,
    (Word)114,
    0};
    pushw((Word)(_T33));
    pushw(*((WPtr)(((WPtr)(FP)+-1))));
    SearchList_insert();
    pushw((Word)(10));
Word _T34[]={
    (Word)7,
    (Word)7,
    (Word)79,
    (Word)99,
    (Word)116,
    (Word)111,
    (Word)98,
    (Word)101,
    (Word)114,
    0};
    pushw((Word)(_T34));
    pushw(*((WPtr)(((WPtr)(FP)+-1))));
    SearchList_insert();
    pushw((Word)(11));
Word _T35[]={
    (Word)8,
    (Word)8,
    (Word)78,
    (Word)111,
    (Word)118,
    (Word)101,
    (Word)109,
    (Word)98,
    (Word)101,
    (Word)114,
    0};
    pushw((Word)(_T35));
    pushw(*((WPtr)(((WPtr)(FP)+-1))));
    SearchList_insert();
    pushw((Word)(12));
Word _T36[]={
    (Word)8,
    (Word)8,
    (Word)68,
    (Word)101,
    (Word)99,
    (Word)101,
    (Word)109,
    (Word)98,
    (Word)101,
    (Word)114,
    0};
    pushw((Word)(_T36));
    pushw(*((WPtr)(((WPtr)(FP)+-1))));
    SearchList_insert();
    pushw(*((WPtr)(((WPtr)(FP)+-1))));
    SearchList_put();
_T24:
    SP += 2;
    popp(FP);
    return 0;
} 

