public boolean stem() {int v_1 = cursor;r_mark_regions();cursor = v_1;limit_backward = cursor;cursor = limit;int v_2 = limit - cursor;r_main_suffix();cursor = limit - v_2;int v_3 = limit - cursor;r_consonant_pair();cursor = limit - v_3;int v_4 = limit - cursor;r_other_suffix();cursor = limit - v_4;int v_5 = limit - cursor;r_undouble();cursor = limit - v_5;cursor = limit_backward;return true;}

public override bool Stem(){int v_1;int v_2;int v_3;int v_4;int v_5;v_1 = m_cursor;do{if (!r_mark_regions()){goto lab0;}} while (false);lab0:m_cursor = v_1;m_limit_backward = m_cursor; m_cursor = m_limit;v_2 = m_limit - m_cursor;do{if (!r_main_suffix()){goto lab1;}} while (false);lab1:m_cursor = m_limit - v_2;v_3 = m_limit - m_cursor;do{if (!r_consonant_pair()){goto lab2;}} while (false);lab2:m_cursor = m_limit - v_3;v_4 = m_limit - m_cursor;do{if (!r_other_suffix()){goto lab3;}} while (false);lab3:m_cursor = m_limit - v_4;v_5 = m_limit - m_cursor;do{if (!r_undouble()){goto lab4;}} while (false);lab4:m_cursor = m_limit - v_5;m_cursor = m_limit_backward; return true;}
