#include "machine.h"

int Student2___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)));
    R1 = *((WPtr)(((WPtr)(FP)+1)));
    *((WPtr)(((WPtr)(R1)+5))) = *((WPtr)(((WPtr)(FP)+5)));
_T10:
    popp(FP);
    SP += 5;
    return 0;
} 

int Student2_print_student() { 
    pushp(FP);
    FP = SP;
    R1 = *((WPtr)(((WPtr)(FP)+1)));
    pushw(*((WPtr)(((WPtr)(R1)+2))));
    Put_str();
    pushw((Word)(32));
    put_char();
    R1 = *((WPtr)(((WPtr)(FP)+1)));
    pushw(*((WPtr)(((WPtr)(R1)+3))));
    Put_int();
    pushw((Word)(32));
    put_char();
    R1 = *((WPtr)(((WPtr)(FP)+1)));
    pushw(*((WPtr)(((WPtr)(R1)+4))));
    Put_bool();
    pushw((Word)(32));
    put_char();
    R1 = *((WPtr)(((WPtr)(FP)+1)));
    pushw(*((WPtr)(((WPtr)(R1)+5))));
    put_int();
_T11:
    popp(FP);
    SP += 1;
    return 0;
} 

int Student2_set_grad_year() { 
    pushp(FP);
    FP = SP;
    R1 = *((WPtr)(((WPtr)(FP)+1)));
    *((WPtr)(((WPtr)(R1)+5))) = *((WPtr)(((WPtr)(FP)+2)));
_T12:
    popp(FP);
    SP += 2;
    return 0;
} 

int Student2_is_passing() { 
    pushp(FP);
    FP = SP;
    pushw(R1);
    R1 = *((WPtr)(((WPtr)(FP)+1)));
    R2 = *((WPtr)(((WPtr)(FP)+1)));
    (*((WPtr)(((WPtr)(R1)+4))))=(*((WPtr)(((WPtr)(R2)+3)))>=(Word)(70));
    R1 = *((WPtr)(((WPtr)(FP)+1)));
    R0 = *((WPtr)(((WPtr)(R1)+4)));
    goto _T13;
_T13:
    popw(R1);
    popp(FP);
    SP += 1;
    return 0;
} 

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

int main() { 
    pushp(FP);
    FP = SP;
    SP -= 11;
    pushw(R1);
    pushw((Word)(2021));
    pushw((Word)(1));
    pushw((Word)(99));
Word _T16[]={
    (Word)14,
    (Word)14,
    (Word)80,
    (Word)101,
    (Word)116,
    (Word)101,
    (Word)114,
    (Word)32,
    (Word)65,
    (Word)110,
    (Word)116,
    (Word)101,
    (Word)97,
    (Word)116,
    (Word)101,
    (Word)114,
    0};
    pushw((Word)(_T16));
    pushw((Word)(6));
    py_malloc();
    pushw(R0);
    Student2___init__();
    *((WPtr)(((WPtr)(FP)+-1))) = R0;
    pushw(*((WPtr)(((WPtr)(FP)+-1))));
    Student2_print_student();
Word _T17[]={
    (Word)18,
    (Word)18,
    (Word)115,
    (Word)116,
    (Word)117,
    (Word)100,
    (Word)101,
    (Word)110,
    (Word)116,
    (Word)32,
    (Word)112,
    (Word)97,
    (Word)105,
    (Word)114,
    (Word)115,
    (Word)32,
    (Word)97,
    (Word)114,
    (Word)101,
    (Word)58,
    0};
    *((WPtr)(((WPtr)(FP)+-2))) = (Word)(_T17);
    newline();
    pushw((Word)(6));
    make_list();
    pushw(R0);
    pushw((Word)(4));
    make_list();
    pushw(R0);
    pushw((Word)(2021));
    pushw((Word)(1));
    pushw((Word)(99));
Word _T18[]={
    (Word)14,
    (Word)14,
    (Word)80,
    (Word)101,
    (Word)116,
    (Word)101,
    (Word)114,
    (Word)32,
    (Word)65,
    (Word)110,
    (Word)116,
    (Word)101,
    (Word)97,
    (Word)116,
    (Word)101,
    (Word)114,
    0};
    pushw((Word)(_T18));
    pushw((Word)(6));
    py_malloc();
    pushw(R0);
    Student2___init__();
    pushw(R0);
    append_with_swapped_args();
    pushw(R0);
    pushw((Word)(2023));
    pushw((Word)(1));
    pushw((Word)(100));
Word _T19[]={
    (Word)10,
    (Word)10,
    (Word)83,
    (Word)97,
    (Word)109,
    (Word)109,
    (Word)121,
    (Word)32,
    (Word)83,
    (Word)108,
    (Word)117,
    (Word)103,
    0};
    pushw((Word)(_T19));
    pushw((Word)(6));
    py_malloc();
    pushw(R0);
    Student2___init__();
    pushw(R0);
    append_with_swapped_args();
    pushw(R0);
    append_with_swapped_args();
    pushw(R0);
    pushw((Word)(4));
    make_list();
    pushw(R0);
    pushw((Word)(2022));
    pushw((Word)(1));
    pushw((Word)(80));
Word _T20[]={
    (Word)15,
    (Word)15,
    (Word)71,
    (Word)117,
    (Word)110,
    (Word)114,
    (Word)111,
    (Word)99,
    (Word)107,
    (Word)32,
    (Word)77,
    (Word)117,
    (Word)115,
    (Word)116,
    (Word)97,
    (Word)110,
    (Word)103,
    0};
    pushw((Word)(_T20));
    pushw((Word)(6));
    py_malloc();
    pushw(R0);
    Student2___init__();
    pushw(R0);
    append_with_swapped_args();
    pushw(R0);
    pushw((Word)(2023));
    pushw((Word)(1));
    pushw((Word)(101));
Word _T21[]={
    (Word)11,
    (Word)11,
    (Word)75,
    (Word)105,
    (Word)110,
    (Word)103,
    (Word)32,
    (Word)84,
    (Word)114,
    (Word)105,
    (Word)116,
    (Word)111,
    (Word)110,
    0};
    pushw((Word)(_T21));
    pushw((Word)(6));
    py_malloc();
    pushw(R0);
    Student2___init__();
    pushw(R0);
    append_with_swapped_args();
    pushw(R0);
    append_with_swapped_args();
    pushw(R0);
    pushw((Word)(4));
    make_list();
    pushw(R0);
    pushw((Word)(2021));
    pushw((Word)(1));
    pushw((Word)(70));
Word _T22[]={
    (Word)9,
    (Word)9,
    (Word)79,
    (Word)115,
    (Word)107,
    (Word)105,
    (Word)32,
    (Word)66,
    (Word)101,
    (Word)97,
    (Word)114,
    0};
    pushw((Word)(_T22));
    pushw((Word)(6));
    py_malloc();
    pushw(R0);
    Student2___init__();
    pushw(R0);
    append_with_swapped_args();
    pushw(R0);
    pushw((Word)(2021));
    pushw((Word)(0));
    pushw((Word)(69));
Word _T23[]={
    (Word)12,
    (Word)12,
    (Word)82,
    (Word)117,
    (Word)102,
    (Word)117,
    (Word)115,
    (Word)32,
    (Word)66,
    (Word)111,
    (Word)98,
    (Word)99,
    (Word)97,
    (Word)116,
    0};
    pushw((Word)(_T23));
    pushw((Word)(6));
    py_malloc();
    pushw(R0);
    Student2___init__();
    pushw(R0);
    append_with_swapped_args();
    pushw(R0);
    append_with_swapped_args();
    *((WPtr)(((WPtr)(FP)+-3))) = R0;
    *((WPtr)(((WPtr)(FP)+-4))) = *((WPtr)(((WPtr)(FP)+-3)));
    *((WPtr)(((WPtr)(FP)+-6))) = ((WPtr)((WPtr)(*((WPtr)(((WPtr)(FP)+-4))))+2))[(Word)(-1)];
    *((WPtr)(((WPtr)(FP)+-7))) = (Word)(0);
_T26:
    if ( *((WPtr)(((WPtr)(FP)+-7))) >= *((WPtr)(((WPtr)(FP)+-6))) ) goto _T24;
    *((WPtr)(((WPtr)(FP)+-5))) = ((WPtr)((WPtr)(*((WPtr)(((WPtr)(FP)+-4))))+2))[*((WPtr)(((WPtr)(FP)+-7)))];
    pushw(*((WPtr)(((WPtr)(FP)+-2))));
    put_str();
    *((WPtr)(((WPtr)(FP)+-8))) = *((WPtr)(((WPtr)(FP)+-5)));
    *((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)+-9))));
    Student2_print_student();
_T28:
    (*((WPtr)(((WPtr)(FP)+-11)))) ++;
    goto _T29;
_T27:
    newline();
_T25:
    (*((WPtr)(((WPtr)(FP)+-7)))) ++;
    goto _T26;
_T24:
    R1 = ((WPtr)((WPtr)(((WPtr)((WPtr)(*((WPtr)(((WPtr)(FP)+-3))))+2))[(Word)(2)])+2))[(Word)(0)];
    *((WPtr)(((WPtr)(R1)+3))) -= (Word)(10);
    pushw(*((WPtr)(((WPtr)(R1)+3))));
    pushw(((WPtr)((WPtr)(((WPtr)((WPtr)(*((WPtr)(((WPtr)(FP)+-3))))+2))[(Word)(2)])+2))[(Word)(0)]);
    Student2_grade();
    pushw(((WPtr)((WPtr)(((WPtr)((WPtr)(*((WPtr)(((WPtr)(FP)+-3))))+2))[(Word)(2)])+2))[(Word)(0)]);
    Student2_print_student();
    pushw(((WPtr)((WPtr)(((WPtr)((WPtr)(*((WPtr)(((WPtr)(FP)+-3))))+2))[(Word)(2)])+2))[(Word)(1)]);
    Student2_print_student();
_T15:
    popw(R1);
    SP += 11;
    popp(FP);
    return 0;
} 

