
int count_columns(int column,char *bp,int stop_char)

{
  char cVar1;
  int iVar2;
  int iVar3;
  
  iVar3 = *(int *)(PTR_settings_00035514 + 8);
LAB_0001b6ac:
  do {
    cVar1 = *bp;
    while( true ) {
      iVar2 = (int)cVar1;
      if ((iVar2 == stop_char) || (iVar2 == 0)) {
        return column;
      }
      bp = bp + 1;
      if (iVar2 == 9) {
        if (iVar3 == 0) {
          trap(7);
        }
        column = column + (iVar3 - (column + -1) % iVar3);
        goto LAB_0001b6ac;
      }
      if (9 < iVar2) break;
      if (iVar2 != 8) goto LAB_0001b700;
      cVar1 = *bp;
      column = column + -1;
    }
    if ((iVar2 == 10) || (iVar2 == 0xc)) {
      column = 1;
      goto LAB_0001b6ac;
    }
LAB_0001b700:
    column = column + 1;
  } while( true );
}



int count_columns(int param_1,char *param_2,int param_3)

{
  char cVar1;
  int iVar2;
  int iVar3;
  
  iVar3 = *(int *)(PTR_settings_00035514 + 8);
LAB_0001b6ac:
  do {
    cVar1 = *param_2;
    while( true ) {
      iVar2 = (int)cVar1;
      if ((iVar2 == param_3) || (iVar2 == 0)) {
        return param_1;
      }
      param_2 = param_2 + 1;
      if (iVar2 == 9) {
        if (iVar3 == 0) {
          trap(7);
        }
        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);
        goto LAB_0001b6ac;
      }
      if (9 < iVar2) break;
      if (iVar2 != 8) goto LAB_0001b700;
      cVar1 = *param_2;
      param_1 = param_1 + -1;
    }
    if ((iVar2 == 10) || (iVar2 == 0xc)) {
      param_1 = 1;
      goto LAB_0001b6ac;
    }
LAB_0001b700:
    param_1 = param_1 + 1;
  } while( true );
}


lui gp,0x2
addiu gp,gp,0x1e2c
addu gp,gp,t9
lw v1,-0x7f9c(gp)
li t2,0x9
li t1,0xa
li t0,0xc
li a3,0x8
lw t3,0x8(v1)
or v0,a0,zero
lb v1,0x0(a1)
beq v1,a2,0x0001b6e8
_nop
beq v1,zero,0x0001b6e8
_nop
beq v1,t2,0x0001b710
_addiu a1,a1,0x1
slti a0,v1,0xa
beq a0,zero,0x0001b6f0
_nop
bne v1,a3,0x0001b700
_nop
lb v1,0x0(a1)
bne v1,a2,0x0001b6b8
_addiu v0,v0,-0x1
jr ra
_nop
beq v1,t1,0x0001b708
_nop
beq v1,t0,0x0001b708
_nop
b 0x0001b6ac
_addiu v0,v0,0x1
b 0x0001b6ac
_li v0,0x1
addiu v1,v0,-0x1
teq t3,zero
div v1,t3
mfhi v1
subu v1,t3,v1
b 0x0001b6ac
_addu v0,v0,v1
(translation_unit "int count_columns(int param_1,char *param_2,int param_3)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = *(int *)(PTR_settings_00035514 + 8);\nLAB_0001b6ac:\n  do {\n    cVar1 = *param_2;\n    while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }\n      param_2 = param_2 + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *param_2;\n      param_1 = param_1 + -1;\n    }\n    if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      param_1 = 1;\n      goto LAB_0001b6ac;\n    }\nLAB_0001b700:\n    param_1 = param_1 + 1;\n  } while( true );\n}\n\n" (function_definition "int count_columns(int param_1,char *param_2,int param_3)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = *(int *)(PTR_settings_00035514 + 8);\nLAB_0001b6ac:\n  do {\n    cVar1 = *param_2;\n    while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }\n      param_2 = param_2 + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *param_2;\n      param_1 = param_1 + -1;\n    }\n    if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      param_1 = 1;\n      goto LAB_0001b6ac;\n    }\nLAB_0001b700:\n    param_1 = param_1 + 1;\n  } while( true );\n}" primitive_type (function_declarator "count_columns(int param_1,char *param_2,int param_3)" identifier (parameter_list "(int param_1,char *param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = *(int *)(PTR_settings_00035514 + 8);\nLAB_0001b6ac:\n  do {\n    cVar1 = *param_2;\n    while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }\n      param_2 = param_2 + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *param_2;\n      param_1 = param_1 + -1;\n    }\n    if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      param_1 = 1;\n      goto LAB_0001b6ac;\n    }\nLAB_0001b700:\n    param_1 = param_1 + 1;\n  } while( true );\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "iVar3 = *(int *)(PTR_settings_00035514 + 8);" (assignment_expression "iVar3 = *(int *)(PTR_settings_00035514 + 8)" identifier = (pointer_expression "*(int *)(PTR_settings_00035514 + 8)" * (cast_expression "(int *)(PTR_settings_00035514 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_settings_00035514 + 8)" ( (binary_expression "PTR_settings_00035514 + 8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0001b6ac:\n  do {\n    cVar1 = *param_2;\n    while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }\n      param_2 = param_2 + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *param_2;\n      param_1 = param_1 + -1;\n    }\n    if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      param_1 = 1;\n      goto LAB_0001b6ac;\n    }\nLAB_0001b700:\n    param_1 = param_1 + 1;\n  } while( true );" statement_identifier : (do_statement "do {\n    cVar1 = *param_2;\n    while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }\n      param_2 = param_2 + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *param_2;\n      param_1 = param_1 + -1;\n    }\n    if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      param_1 = 1;\n      goto LAB_0001b6ac;\n    }\nLAB_0001b700:\n    param_1 = param_1 + 1;\n  } while( true );" do (compound_statement "{\n    cVar1 = *param_2;\n    while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }\n      param_2 = param_2 + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *param_2;\n      param_1 = param_1 + -1;\n    }\n    if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      param_1 = 1;\n      goto LAB_0001b6ac;\n    }\nLAB_0001b700:\n    param_1 = param_1 + 1;\n  }" { (expression_statement "cVar1 = *param_2;" (assignment_expression "cVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (while_statement "while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }\n      param_2 = param_2 + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *param_2;\n      param_1 = param_1 + -1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar2 = (int)cVar1;\n      if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }\n      param_2 = param_2 + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *param_2;\n      param_1 = param_1 + -1;\n    }" { (expression_statement "iVar2 = (int)cVar1;" (assignment_expression "iVar2 = (int)cVar1" identifier = (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }" if (parenthesized_expression "((iVar2 == param_3) || (iVar2 == 0))" ( (binary_expression "(iVar2 == param_3) || (iVar2 == 0)" (parenthesized_expression "(iVar2 == param_3)" ( (binary_expression "iVar2 == param_3" identifier == identifier) )) || (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) ))) )) (compound_statement "{\n        return param_1;\n      }" { (return_statement "return param_1;" return identifier ;) })) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (if_statement "if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }" if (parenthesized_expression "(iVar2 == 9)" ( (binary_expression "iVar2 == 9" identifier == number_literal) )) (compound_statement "{\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }" { (if_statement "if (iVar3 == 0) {\n          trap(7);\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          trap(7);\n        }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);" (assignment_expression "param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3)" identifier = (binary_expression "param_1 + (iVar3 - (param_1 + -1) % iVar3)" identifier + (parenthesized_expression "(iVar3 - (param_1 + -1) % iVar3)" ( (binary_expression "iVar3 - (param_1 + -1) % iVar3" identifier - (binary_expression "(param_1 + -1) % iVar3" (parenthesized_expression "(param_1 + -1)" ( (binary_expression "param_1 + -1" identifier + number_literal) )) % identifier)) )))) ;) (goto_statement "goto LAB_0001b6ac;" goto statement_identifier ;) })) (if_statement "if (9 < iVar2) break;" if (parenthesized_expression "(9 < iVar2)" ( (binary_expression "9 < iVar2" number_literal < identifier) )) (break_statement "break;" break ;)) (if_statement "if (iVar2 != 8) goto LAB_0001b700;" if (parenthesized_expression "(iVar2 != 8)" ( (binary_expression "iVar2 != 8" identifier != number_literal) )) (goto_statement "goto LAB_0001b700;" goto statement_identifier ;)) (expression_statement "cVar1 = *param_2;" (assignment_expression "cVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "param_1 = param_1 + -1;" (assignment_expression "param_1 = param_1 + -1" identifier = (binary_expression "param_1 + -1" identifier + number_literal)) ;) })) (if_statement "if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      param_1 = 1;\n      goto LAB_0001b6ac;\n    }" if (parenthesized_expression "((iVar2 == 10) || (iVar2 == 0xc))" ( (binary_expression "(iVar2 == 10) || (iVar2 == 0xc)" (parenthesized_expression "(iVar2 == 10)" ( (binary_expression "iVar2 == 10" identifier == number_literal) )) || (parenthesized_expression "(iVar2 == 0xc)" ( (binary_expression "iVar2 == 0xc" identifier == number_literal) ))) )) (compound_statement "{\n      param_1 = 1;\n      goto LAB_0001b6ac;\n    }" { (expression_statement "param_1 = 1;" (assignment_expression "param_1 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0001b6ac;" goto statement_identifier ;) })) (labeled_statement "LAB_0001b700:\n    param_1 = param_1 + 1;" statement_identifier : (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "int count_columns(int column,char *bp,int stop_char)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = *(int *)(PTR_settings_00035514 + 8);\nLAB_0001b6ac:\n  do {\n    cVar1 = *bp;\n    while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == stop_char) || (iVar2 == 0)) {\n        return column;\n      }\n      bp = bp + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        column = column + (iVar3 - (column + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *bp;\n      column = column + -1;\n    }\n    if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      column = 1;\n      goto LAB_0001b6ac;\n    }\nLAB_0001b700:\n    column = column + 1;\n  } while( true );\n}\n\n" (function_definition "int count_columns(int column,char *bp,int stop_char)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = *(int *)(PTR_settings_00035514 + 8);\nLAB_0001b6ac:\n  do {\n    cVar1 = *bp;\n    while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == stop_char) || (iVar2 == 0)) {\n        return column;\n      }\n      bp = bp + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        column = column + (iVar3 - (column + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *bp;\n      column = column + -1;\n    }\n    if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      column = 1;\n      goto LAB_0001b6ac;\n    }\nLAB_0001b700:\n    column = column + 1;\n  } while( true );\n}" primitive_type (function_declarator "count_columns(int column,char *bp,int stop_char)" identifier (parameter_list "(int column,char *bp,int stop_char)" ( (parameter_declaration "int column" primitive_type identifier) , (parameter_declaration "char *bp" primitive_type (pointer_declarator "*bp" * identifier)) , (parameter_declaration "int stop_char" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = *(int *)(PTR_settings_00035514 + 8);\nLAB_0001b6ac:\n  do {\n    cVar1 = *bp;\n    while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == stop_char) || (iVar2 == 0)) {\n        return column;\n      }\n      bp = bp + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        column = column + (iVar3 - (column + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *bp;\n      column = column + -1;\n    }\n    if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      column = 1;\n      goto LAB_0001b6ac;\n    }\nLAB_0001b700:\n    column = column + 1;\n  } while( true );\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "iVar3 = *(int *)(PTR_settings_00035514 + 8);" (assignment_expression "iVar3 = *(int *)(PTR_settings_00035514 + 8)" identifier = (pointer_expression "*(int *)(PTR_settings_00035514 + 8)" * (cast_expression "(int *)(PTR_settings_00035514 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_settings_00035514 + 8)" ( (binary_expression "PTR_settings_00035514 + 8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0001b6ac:\n  do {\n    cVar1 = *bp;\n    while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == stop_char) || (iVar2 == 0)) {\n        return column;\n      }\n      bp = bp + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        column = column + (iVar3 - (column + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *bp;\n      column = column + -1;\n    }\n    if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      column = 1;\n      goto LAB_0001b6ac;\n    }\nLAB_0001b700:\n    column = column + 1;\n  } while( true );" statement_identifier : (do_statement "do {\n    cVar1 = *bp;\n    while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == stop_char) || (iVar2 == 0)) {\n        return column;\n      }\n      bp = bp + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        column = column + (iVar3 - (column + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *bp;\n      column = column + -1;\n    }\n    if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      column = 1;\n      goto LAB_0001b6ac;\n    }\nLAB_0001b700:\n    column = column + 1;\n  } while( true );" do (compound_statement "{\n    cVar1 = *bp;\n    while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == stop_char) || (iVar2 == 0)) {\n        return column;\n      }\n      bp = bp + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        column = column + (iVar3 - (column + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *bp;\n      column = column + -1;\n    }\n    if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      column = 1;\n      goto LAB_0001b6ac;\n    }\nLAB_0001b700:\n    column = column + 1;\n  }" { (expression_statement "cVar1 = *bp;" (assignment_expression "cVar1 = *bp" identifier = (pointer_expression "*bp" * identifier)) ;) (while_statement "while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == stop_char) || (iVar2 == 0)) {\n        return column;\n      }\n      bp = bp + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        column = column + (iVar3 - (column + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *bp;\n      column = column + -1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar2 = (int)cVar1;\n      if ((iVar2 == stop_char) || (iVar2 == 0)) {\n        return column;\n      }\n      bp = bp + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        column = column + (iVar3 - (column + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *bp;\n      column = column + -1;\n    }" { (expression_statement "iVar2 = (int)cVar1;" (assignment_expression "iVar2 = (int)cVar1" identifier = (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((iVar2 == stop_char) || (iVar2 == 0)) {\n        return column;\n      }" if (parenthesized_expression "((iVar2 == stop_char) || (iVar2 == 0))" ( (binary_expression "(iVar2 == stop_char) || (iVar2 == 0)" (parenthesized_expression "(iVar2 == stop_char)" ( (binary_expression "iVar2 == stop_char" identifier == identifier) )) || (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) ))) )) (compound_statement "{\n        return column;\n      }" { (return_statement "return column;" return identifier ;) })) (expression_statement "bp = bp + 1;" (assignment_expression "bp = bp + 1" identifier = (binary_expression "bp + 1" identifier + number_literal)) ;) (if_statement "if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        column = column + (iVar3 - (column + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }" if (parenthesized_expression "(iVar2 == 9)" ( (binary_expression "iVar2 == 9" identifier == number_literal) )) (compound_statement "{\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        column = column + (iVar3 - (column + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }" { (if_statement "if (iVar3 == 0) {\n          trap(7);\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          trap(7);\n        }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "column = column + (iVar3 - (column + -1) % iVar3);" (assignment_expression "column = column + (iVar3 - (column + -1) % iVar3)" identifier = (binary_expression "column + (iVar3 - (column + -1) % iVar3)" identifier + (parenthesized_expression "(iVar3 - (column + -1) % iVar3)" ( (binary_expression "iVar3 - (column + -1) % iVar3" identifier - (binary_expression "(column + -1) % iVar3" (parenthesized_expression "(column + -1)" ( (binary_expression "column + -1" identifier + number_literal) )) % identifier)) )))) ;) (goto_statement "goto LAB_0001b6ac;" goto statement_identifier ;) })) (if_statement "if (9 < iVar2) break;" if (parenthesized_expression "(9 < iVar2)" ( (binary_expression "9 < iVar2" number_literal < identifier) )) (break_statement "break;" break ;)) (if_statement "if (iVar2 != 8) goto LAB_0001b700;" if (parenthesized_expression "(iVar2 != 8)" ( (binary_expression "iVar2 != 8" identifier != number_literal) )) (goto_statement "goto LAB_0001b700;" goto statement_identifier ;)) (expression_statement "cVar1 = *bp;" (assignment_expression "cVar1 = *bp" identifier = (pointer_expression "*bp" * identifier)) ;) (expression_statement "column = column + -1;" (assignment_expression "column = column + -1" identifier = (binary_expression "column + -1" identifier + number_literal)) ;) })) (if_statement "if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      column = 1;\n      goto LAB_0001b6ac;\n    }" if (parenthesized_expression "((iVar2 == 10) || (iVar2 == 0xc))" ( (binary_expression "(iVar2 == 10) || (iVar2 == 0xc)" (parenthesized_expression "(iVar2 == 10)" ( (binary_expression "iVar2 == 10" identifier == number_literal) )) || (parenthesized_expression "(iVar2 == 0xc)" ( (binary_expression "iVar2 == 0xc" identifier == number_literal) ))) )) (compound_statement "{\n      column = 1;\n      goto LAB_0001b6ac;\n    }" { (expression_statement "column = 1;" (assignment_expression "column = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0001b6ac;" goto statement_identifier ;) })) (labeled_statement "LAB_0001b700:\n    column = column + 1;" statement_identifier : (expression_statement "column = column + 1;" (assignment_expression "column = column + 1" identifier = (binary_expression "column + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "int count_columns(int param_1,char *param_2,int param_3)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = *(int *)(PTR_settings_00035514 + 8);\nLAB_0001b6ac:\n  do {\n    cVar1 = *param_2;\n    while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }\n      param_2 = param_2 + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *param_2;\n      param_1 = param_1 + -1;\n    }\n    if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      param_1 = 1;\n      goto LAB_0001b6ac;\n    }\nLAB_0001b700:\n    param_1 = param_1 + 1;\n  } while( true );\n}\n\n" (function_definition "int count_columns(int param_1,char *param_2,int param_3)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = *(int *)(PTR_settings_00035514 + 8);\nLAB_0001b6ac:\n  do {\n    cVar1 = *param_2;\n    while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }\n      param_2 = param_2 + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *param_2;\n      param_1 = param_1 + -1;\n    }\n    if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      param_1 = 1;\n      goto LAB_0001b6ac;\n    }\nLAB_0001b700:\n    param_1 = param_1 + 1;\n  } while( true );\n}" primitive_type (function_declarator "count_columns(int param_1,char *param_2,int param_3)" identifier (parameter_list "(int param_1,char *param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = *(int *)(PTR_settings_00035514 + 8);\nLAB_0001b6ac:\n  do {\n    cVar1 = *param_2;\n    while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }\n      param_2 = param_2 + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *param_2;\n      param_1 = param_1 + -1;\n    }\n    if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      param_1 = 1;\n      goto LAB_0001b6ac;\n    }\nLAB_0001b700:\n    param_1 = param_1 + 1;\n  } while( true );\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "iVar3 = *(int *)(PTR_settings_00035514 + 8);" (assignment_expression "iVar3 = *(int *)(PTR_settings_00035514 + 8)" identifier = (pointer_expression "*(int *)(PTR_settings_00035514 + 8)" * (cast_expression "(int *)(PTR_settings_00035514 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_settings_00035514 + 8)" ( (binary_expression "PTR_settings_00035514 + 8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0001b6ac:\n  do {\n    cVar1 = *param_2;\n    while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }\n      param_2 = param_2 + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *param_2;\n      param_1 = param_1 + -1;\n    }\n    if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      param_1 = 1;\n      goto LAB_0001b6ac;\n    }\nLAB_0001b700:\n    param_1 = param_1 + 1;\n  } while( true );" statement_identifier : (do_statement "do {\n    cVar1 = *param_2;\n    while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }\n      param_2 = param_2 + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *param_2;\n      param_1 = param_1 + -1;\n    }\n    if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      param_1 = 1;\n      goto LAB_0001b6ac;\n    }\nLAB_0001b700:\n    param_1 = param_1 + 1;\n  } while( true );" do (compound_statement "{\n    cVar1 = *param_2;\n    while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }\n      param_2 = param_2 + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *param_2;\n      param_1 = param_1 + -1;\n    }\n    if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      param_1 = 1;\n      goto LAB_0001b6ac;\n    }\nLAB_0001b700:\n    param_1 = param_1 + 1;\n  }" { (expression_statement "cVar1 = *param_2;" (assignment_expression "cVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (while_statement "while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }\n      param_2 = param_2 + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *param_2;\n      param_1 = param_1 + -1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar2 = (int)cVar1;\n      if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }\n      param_2 = param_2 + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *param_2;\n      param_1 = param_1 + -1;\n    }" { (expression_statement "iVar2 = (int)cVar1;" (assignment_expression "iVar2 = (int)cVar1" identifier = (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }" if (parenthesized_expression "((iVar2 == param_3) || (iVar2 == 0))" ( (binary_expression "(iVar2 == param_3) || (iVar2 == 0)" (parenthesized_expression "(iVar2 == param_3)" ( (binary_expression "iVar2 == param_3" identifier == identifier) )) || (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) ))) )) (compound_statement "{\n        return param_1;\n      }" { (return_statement "return param_1;" return identifier ;) })) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (if_statement "if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }" if (parenthesized_expression "(iVar2 == 9)" ( (binary_expression "iVar2 == 9" identifier == number_literal) )) (compound_statement "{\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }" { (if_statement "if (iVar3 == 0) {\n          trap(7);\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          trap(7);\n        }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);" (assignment_expression "param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3)" identifier = (binary_expression "param_1 + (iVar3 - (param_1 + -1) % iVar3)" identifier + (parenthesized_expression "(iVar3 - (param_1 + -1) % iVar3)" ( (binary_expression "iVar3 - (param_1 + -1) % iVar3" identifier - (binary_expression "(param_1 + -1) % iVar3" (parenthesized_expression "(param_1 + -1)" ( (binary_expression "param_1 + -1" identifier + number_literal) )) % identifier)) )))) ;) (goto_statement "goto LAB_0001b6ac;" goto statement_identifier ;) })) (if_statement "if (9 < iVar2) break;" if (parenthesized_expression "(9 < iVar2)" ( (binary_expression "9 < iVar2" number_literal < identifier) )) (break_statement "break;" break ;)) (if_statement "if (iVar2 != 8) goto LAB_0001b700;" if (parenthesized_expression "(iVar2 != 8)" ( (binary_expression "iVar2 != 8" identifier != number_literal) )) (goto_statement "goto LAB_0001b700;" goto statement_identifier ;)) (expression_statement "cVar1 = *param_2;" (assignment_expression "cVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "param_1 = param_1 + -1;" (assignment_expression "param_1 = param_1 + -1" identifier = (binary_expression "param_1 + -1" identifier + number_literal)) ;) })) (if_statement "if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      param_1 = 1;\n      goto LAB_0001b6ac;\n    }" if (parenthesized_expression "((iVar2 == 10) || (iVar2 == 0xc))" ( (binary_expression "(iVar2 == 10) || (iVar2 == 0xc)" (parenthesized_expression "(iVar2 == 10)" ( (binary_expression "iVar2 == 10" identifier == number_literal) )) || (parenthesized_expression "(iVar2 == 0xc)" ( (binary_expression "iVar2 == 0xc" identifier == number_literal) ))) )) (compound_statement "{\n      param_1 = 1;\n      goto LAB_0001b6ac;\n    }" { (expression_statement "param_1 = 1;" (assignment_expression "param_1 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0001b6ac;" goto statement_identifier ;) })) (labeled_statement "LAB_0001b700:\n    param_1 = param_1 + 1;" statement_identifier : (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) % IDENT)) )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }) while (parenthesized_expression ( BOOL )) ;)) })))
(function_definition "int count_columns(int param_1,char *param_2,int param_3)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = *(int *)(PTR_settings_00035514 + 8);\nLAB_0001b6ac:\n  do {\n    cVar1 = *param_2;\n    while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }\n      param_2 = param_2 + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *param_2;\n      param_1 = param_1 + -1;\n    }\n    if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      param_1 = 1;\n      goto LAB_0001b6ac;\n    }\nLAB_0001b700:\n    param_1 = param_1 + 1;\n  } while( true );\n}" (primitive_type "int") (function_declarator "count_columns(int param_1,char *param_2,int param_3)" (identifier "count_columns") (parameter_list "(int param_1,char *param_2,int param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = *(int *)(PTR_settings_00035514 + 8);\nLAB_0001b6ac:\n  do {\n    cVar1 = *param_2;\n    while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }\n      param_2 = param_2 + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *param_2;\n      param_1 = param_1 + -1;\n    }\n    if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      param_1 = 1;\n      goto LAB_0001b6ac;\n    }\nLAB_0001b700:\n    param_1 = param_1 + 1;\n  } while( true );\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (expression_statement "iVar3 = *(int *)(PTR_settings_00035514 + 8);" (assignment_expression "iVar3 = *(int *)(PTR_settings_00035514 + 8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(PTR_settings_00035514 + 8)" (* "*") (cast_expression "(int *)(PTR_settings_00035514 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_settings_00035514 + 8)" (( "(") (binary_expression "PTR_settings_00035514 + 8" (identifier "PTR_settings_00035514") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (labeled_statement "LAB_0001b6ac:\n  do {\n    cVar1 = *param_2;\n    while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }\n      param_2 = param_2 + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *param_2;\n      param_1 = param_1 + -1;\n    }\n    if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      param_1 = 1;\n      goto LAB_0001b6ac;\n    }\nLAB_0001b700:\n    param_1 = param_1 + 1;\n  } while( true );" (statement_identifier "LAB_0001b6ac") (: ":") (do_statement "do {\n    cVar1 = *param_2;\n    while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }\n      param_2 = param_2 + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *param_2;\n      param_1 = param_1 + -1;\n    }\n    if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      param_1 = 1;\n      goto LAB_0001b6ac;\n    }\nLAB_0001b700:\n    param_1 = param_1 + 1;\n  } while( true );" (do "do") (compound_statement "{\n    cVar1 = *param_2;\n    while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }\n      param_2 = param_2 + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *param_2;\n      param_1 = param_1 + -1;\n    }\n    if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      param_1 = 1;\n      goto LAB_0001b6ac;\n    }\nLAB_0001b700:\n    param_1 = param_1 + 1;\n  }" ({ "{") (expression_statement "cVar1 = *param_2;" (assignment_expression "cVar1 = *param_2" (identifier "cVar1") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (while_statement "while( true ) {\n      iVar2 = (int)cVar1;\n      if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }\n      param_2 = param_2 + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *param_2;\n      param_1 = param_1 + -1;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      iVar2 = (int)cVar1;\n      if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }\n      param_2 = param_2 + 1;\n      if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }\n      if (9 < iVar2) break;\n      if (iVar2 != 8) goto LAB_0001b700;\n      cVar1 = *param_2;\n      param_1 = param_1 + -1;\n    }" ({ "{") (expression_statement "iVar2 = (int)cVar1;" (assignment_expression "iVar2 = (int)cVar1" (identifier "iVar2") (= "=") (cast_expression "(int)cVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar1"))) (; ";")) (if_statement "if ((iVar2 == param_3) || (iVar2 == 0)) {\n        return param_1;\n      }" (if "if") (parenthesized_expression "((iVar2 == param_3) || (iVar2 == 0))" (( "(") (binary_expression "(iVar2 == param_3) || (iVar2 == 0)" (parenthesized_expression "(iVar2 == param_3)" (( "(") (binary_expression "iVar2 == param_3" (identifier "iVar2") (== "==") (identifier "param_3")) () ")")) (|| "||") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        return param_1;\n      }" ({ "{") (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar2 == 9) {\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }" (if "if") (parenthesized_expression "(iVar2 == 9)" (( "(") (binary_expression "iVar2 == 9" (identifier "iVar2") (== "==") (number_literal "9")) () ")")) (compound_statement "{\n        if (iVar3 == 0) {\n          trap(7);\n        }\n        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);\n        goto LAB_0001b6ac;\n      }" ({ "{") (if_statement "if (iVar3 == 0) {\n          trap(7);\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          trap(7);\n        }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);" (assignment_expression "param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3)" (identifier "param_1") (= "=") (binary_expression "param_1 + (iVar3 - (param_1 + -1) % iVar3)" (identifier "param_1") (+ "+") (parenthesized_expression "(iVar3 - (param_1 + -1) % iVar3)" (( "(") (binary_expression "iVar3 - (param_1 + -1) % iVar3" (identifier "iVar3") (- "-") (binary_expression "(param_1 + -1) % iVar3" (parenthesized_expression "(param_1 + -1)" (( "(") (binary_expression "param_1 + -1" (identifier "param_1") (+ "+") (number_literal "-1")) () ")")) (% "%") (identifier "iVar3"))) () ")")))) (; ";")) (goto_statement "goto LAB_0001b6ac;" (goto "goto") (statement_identifier "LAB_0001b6ac") (; ";")) (} "}"))) (if_statement "if (9 < iVar2) break;" (if "if") (parenthesized_expression "(9 < iVar2)" (( "(") (binary_expression "9 < iVar2" (number_literal "9") (< "<") (identifier "iVar2")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (iVar2 != 8) goto LAB_0001b700;" (if "if") (parenthesized_expression "(iVar2 != 8)" (( "(") (binary_expression "iVar2 != 8" (identifier "iVar2") (!= "!=") (number_literal "8")) () ")")) (goto_statement "goto LAB_0001b700;" (goto "goto") (statement_identifier "LAB_0001b700") (; ";"))) (expression_statement "cVar1 = *param_2;" (assignment_expression "cVar1 = *param_2" (identifier "cVar1") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "param_1 = param_1 + -1;" (assignment_expression "param_1 = param_1 + -1" (identifier "param_1") (= "=") (binary_expression "param_1 + -1" (identifier "param_1") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (if_statement "if ((iVar2 == 10) || (iVar2 == 0xc)) {\n      param_1 = 1;\n      goto LAB_0001b6ac;\n    }" (if "if") (parenthesized_expression "((iVar2 == 10) || (iVar2 == 0xc))" (( "(") (binary_expression "(iVar2 == 10) || (iVar2 == 0xc)" (parenthesized_expression "(iVar2 == 10)" (( "(") (binary_expression "iVar2 == 10" (identifier "iVar2") (== "==") (number_literal "10")) () ")")) (|| "||") (parenthesized_expression "(iVar2 == 0xc)" (( "(") (binary_expression "iVar2 == 0xc" (identifier "iVar2") (== "==") (number_literal "0xc")) () ")"))) () ")")) (compound_statement "{\n      param_1 = 1;\n      goto LAB_0001b6ac;\n    }" ({ "{") (expression_statement "param_1 = 1;" (assignment_expression "param_1 = 1" (identifier "param_1") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0001b6ac;" (goto "goto") (statement_identifier "LAB_0001b6ac") (; ";")) (} "}"))) (labeled_statement "LAB_0001b700:\n    param_1 = param_1 + 1;" (statement_identifier "LAB_0001b700") (: ":") (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (identifier))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) condition: (parenthesized_expression (true)))))))

int MASKED(int param_1,char *param_2,int param_3)

{
  char cVar1;
  int iVar2;
  int iVar3;
  
  iVar3 = *(int *)(PTR_settings_00035514 + 8);
LAB_0001b6ac:
  do {
    cVar1 = *param_2;
    while( true ) {
      iVar2 = (int)cVar1;
      if ((iVar2 == param_3) || (iVar2 == 0)) {
        return param_1;
      }
      param_2 = param_2 + 1;
      if (iVar2 == 9) {
        if (iVar3 == 0) {
          trap(7);
        }
        param_1 = param_1 + (iVar3 - (param_1 + -1) % iVar3);
        goto LAB_0001b6ac;
      }
      if (9 < iVar2) break;
      if (iVar2 != 8) goto LAB_0001b700;
      cVar1 = *param_2;
      param_1 = param_1 + -1;
    }
    if ((iVar2 == 10) || (iVar2 == 0xc)) {
      param_1 = 1;
      goto LAB_0001b6ac;
    }
LAB_0001b700:
    param_1 = param_1 + 1;
  } while( true );
}

