
BOOLEAN better_break(buf_break_st_ty *b1,buf_break_st_ty *b2)

{
  bool bVar1;
  char *pcVar2;
  char *pcVar3;
  int iVar4;
  char cVar5;
  char *pcVar6;
  int iVar7;
  
  if (b2 == (buf_break_st_ty *)0x0) {
    iVar4 = b1->level;
    *(int *)(PTR_DAT_000354d8 + 23000) = iVar4;
    b1->first_level = iVar4;
    return '\x01';
  }
  if (b2->col < b2->target_col) {
LAB_0001ae58:
    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);
    goto LAB_0001ae60;
  }
  if (*(int *)(PTR_settings_00035514 + 0x4c) == 0) {
    iVar4 = b1->priority;
  }
  else {
    if (b2->priority_newline != 0) {
      return '\0';
    }
    if (b1->priority_newline != 0) goto LAB_0001ae58;
    iVar4 = b1->priority;
  }
  if (iVar4 <= b2->priority) {
    return '\0';
  }
  pcVar6 = *(char **)PTR_s_code_00035548;
  pcVar2 = pcVar6 + b2->offset;
  if (pcVar2 < pcVar6) {
    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);
    if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;
    iVar7 = b1->level;
    if (iVar7 <= iVar4 + 1) {
      b1->first_level = iVar4;
      return '\x01';
    }
LAB_0001af0c:
    if (b1->target_col <= iVar7 * 2 + 1 + b2->col) goto LAB_0001ae60;
  }
  else {
    do {
      cVar5 = *pcVar2;
      pcVar3 = pcVar2;
      if (cVar5 == '!') {
        cVar5 = pcVar2[-1];
        pcVar3 = pcVar2 + -1;
      }
      pcVar2 = pcVar3 + -1;
      if (cVar5 != '(') {
        bVar1 = pcVar3 < pcVar6;
        goto LAB_0001aee4;
      }
    } while (pcVar6 <= pcVar2);
    bVar1 = true;
LAB_0001aee4:
    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);
    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) || (iVar7 = b1->level, iVar7 <= iVar4 + 1))
    goto LAB_0001ae60;
    if (bVar1) goto LAB_0001af0c;
  }
  if (b2->level < iVar7) {
    return '\0';
  }
LAB_0001ae60:
  b1->first_level = iVar4;
  return '\x01';
}



undefined4 FUN_0001ae30(int param_1,int param_2)

{
  bool bVar1;
  char *pcVar2;
  char *pcVar3;
  int iVar4;
  char cVar6;
  undefined4 uVar5;
  char *pcVar7;
  int iVar8;
  
  if (param_2 == 0) {
    uVar5 = *(undefined4 *)(param_1 + 0x18);
    *(undefined4 *)(PTR_DAT_000354d8 + 23000) = uVar5;
    *(undefined4 *)(param_1 + 0x14) = uVar5;
    return 1;
  }
  if (*(int *)(param_2 + 0x1c) < *(int *)(param_2 + 0x10)) {
LAB_0001ae58:
    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);
    goto LAB_0001ae60;
  }
  if (*(int *)(PTR_settings_00035514 + 0x4c) == 0) {
    iVar4 = *(int *)(param_1 + 0x2c);
  }
  else {
    if (*(int *)(param_2 + 0x28) != 0) {
      return 0;
    }
    if (*(int *)(param_1 + 0x28) != 0) goto LAB_0001ae58;
    iVar4 = *(int *)(param_1 + 0x2c);
  }
  if (iVar4 <= *(int *)(param_2 + 0x2c)) {
    return 0;
  }
  pcVar7 = *(char **)PTR_s_code_00035548;
  pcVar2 = pcVar7 + *(int *)(param_2 + 8);
  if (pcVar2 < pcVar7) {
    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);
    if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;
    iVar8 = *(int *)(param_1 + 0x18);
    if (iVar8 <= iVar4 + 1) {
      *(int *)(param_1 + 0x14) = iVar4;
      return 1;
    }
LAB_0001af0c:
    if (*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)) goto LAB_0001ae60;
  }
  else {
    do {
      cVar6 = *pcVar2;
      pcVar3 = pcVar2;
      if (cVar6 == '!') {
        cVar6 = pcVar2[-1];
        pcVar3 = pcVar2 + -1;
      }
      pcVar2 = pcVar3 + -1;
      if (cVar6 != '(') {
        bVar1 = pcVar3 < pcVar7;
        goto LAB_0001aee4;
      }
    } while (pcVar7 <= pcVar2);
    bVar1 = true;
LAB_0001aee4:
    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);
    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||
       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)) goto LAB_0001ae60;
    if (bVar1) goto LAB_0001af0c;
  }
  if (*(int *)(param_2 + 0x18) < iVar8) {
    return 0;
  }
LAB_0001ae60:
  *(int *)(param_1 + 0x14) = iVar4;
  return 1;
}


lui gp,0x2
addiu gp,gp,0x2680
addu gp,gp,t9
beq a1,zero,0x0001af40
_li v0,0x1
lw a2,0x1c(a1)
lw v0,0x10(a1)
slt v0,a2,v0
beq v0,zero,0x0001ae6c
_nop
lw v0,-0x7fd8(gp)
lw v1,0x59d8(v0)
sw v1,0x14(a0)
jr ra
_li v0,0x1
lw v0,-0x7f9c(gp)
lw v1,0x4c(v0)
bne v1,zero,0x0001af54
_nop
lw v1,0x2c(a0)
lw a3,0x2c(a1)
lw t2,0x48(v0)
slt v0,a3,v1
beq v0,zero,0x0001af74
_lw v1,-0x7f68(gp)
lw v0,0x8(a1)
lw a3,0x0(v1)
addu v0,a3,v0
sltu v1,v0,a3
bne v1,zero,0x0001af84
_li t1,0x21
b 0x0001aec0
_li t0,0x28
sltu v1,v0,a3
bne v1,zero,0x0001af7c
_nop
lb v1,0x0(v0)
bne v1,t1,0x0001aed4
_nop
lb v1,-0x1(v0)
addiu v0,v0,-0x1
beq v1,t0,0x0001aeb4
_addiu v0,v0,-0x1
addiu v0,v0,0x1
sltu v0,v0,a3
lw v1,-0x7fd8(gp)
beq t2,zero,0x0001ae60
_lw v1,0x59d8(v1)
lw t0,0x18(a0)
addiu a3,v1,0x1
slt a3,a3,t0
beq a3,zero,0x0001ae60
_nop
beq v0,zero,0x0001af28
_nop
sll v0,t0,0x1
lw a3,0x10(a0)
addiu v0,v0,0x1
addu a2,v0,a2
slt a2,a2,a3
beq a2,zero,0x0001ae60
_nop
lw v0,0x18(a1)
slt t0,v0,t0
beq t0,zero,0x0001ae60
_nop
jr ra
_or v0,zero,zero
lw a1,-0x7fd8(gp)
lw v1,0x18(a0)
sw v1,0x59d8(a1)
jr ra
_sw v1,0x14(a0)
lw v1,0x28(a1)
bne v1,zero,0x0001af74
_nop
lw v1,0x28(a0)
bne v1,zero,0x0001ae58
_nop
b 0x0001ae80
_lw v1,0x2c(a0)
jr ra
_or v0,zero,zero
b 0x0001aee4
_li v0,0x1
lw v0,-0x7fd8(gp)
beq t2,zero,0x0001ae60
_lw v1,0x59d8(v0)
lw t0,0x18(a0)
addiu v0,v1,0x1
slt v0,v0,t0
bne v0,zero,0x0001af0c
_nop
b 0x0001ae64
_sw v1,0x14(a0)
(translation_unit "undefined4 FUN_0001ae30(int param_1,int param_2)\n\n{\n  bool bVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  char cVar6;\n  undefined4 uVar5;\n  char *pcVar7;\n  int iVar8;\n  \n  if (param_2 == 0) {\n    uVar5 = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)(PTR_DAT_000354d8 + 23000) = uVar5;\n    *(undefined4 *)(param_1 + 0x14) = uVar5;\n    return 1;\n  }\n  if (*(int *)(param_2 + 0x1c) < *(int *)(param_2 + 0x10)) {\nLAB_0001ae58:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    goto LAB_0001ae60;\n  }\n  if (*(int *)(PTR_settings_00035514 + 0x4c) == 0) {\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }\n  else {\n    if (*(int *)(param_2 + 0x28) != 0) {\n      return 0;\n    }\n    if (*(int *)(param_1 + 0x28) != 0) goto LAB_0001ae58;\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }\n  if (iVar4 <= *(int *)(param_2 + 0x2c)) {\n    return 0;\n  }\n  pcVar7 = *(char **)PTR_s_code_00035548;\n  pcVar2 = pcVar7 + *(int *)(param_2 + 8);\n  if (pcVar2 < pcVar7) {\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;\n    iVar8 = *(int *)(param_1 + 0x18);\n    if (iVar8 <= iVar4 + 1) {\n      *(int *)(param_1 + 0x14) = iVar4;\n      return 1;\n    }\nLAB_0001af0c:\n    if (*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)) goto LAB_0001ae60;\n  }\n  else {\n    do {\n      cVar6 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar7 <= pcVar2);\n    bVar1 = true;\nLAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)) goto LAB_0001ae60;\n    if (bVar1) goto LAB_0001af0c;\n  }\n  if (*(int *)(param_2 + 0x18) < iVar8) {\n    return 0;\n  }\nLAB_0001ae60:\n  *(int *)(param_1 + 0x14) = iVar4;\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_0001ae30(int param_1,int param_2)\n\n{\n  bool bVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  char cVar6;\n  undefined4 uVar5;\n  char *pcVar7;\n  int iVar8;\n  \n  if (param_2 == 0) {\n    uVar5 = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)(PTR_DAT_000354d8 + 23000) = uVar5;\n    *(undefined4 *)(param_1 + 0x14) = uVar5;\n    return 1;\n  }\n  if (*(int *)(param_2 + 0x1c) < *(int *)(param_2 + 0x10)) {\nLAB_0001ae58:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    goto LAB_0001ae60;\n  }\n  if (*(int *)(PTR_settings_00035514 + 0x4c) == 0) {\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }\n  else {\n    if (*(int *)(param_2 + 0x28) != 0) {\n      return 0;\n    }\n    if (*(int *)(param_1 + 0x28) != 0) goto LAB_0001ae58;\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }\n  if (iVar4 <= *(int *)(param_2 + 0x2c)) {\n    return 0;\n  }\n  pcVar7 = *(char **)PTR_s_code_00035548;\n  pcVar2 = pcVar7 + *(int *)(param_2 + 8);\n  if (pcVar2 < pcVar7) {\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;\n    iVar8 = *(int *)(param_1 + 0x18);\n    if (iVar8 <= iVar4 + 1) {\n      *(int *)(param_1 + 0x14) = iVar4;\n      return 1;\n    }\nLAB_0001af0c:\n    if (*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)) goto LAB_0001ae60;\n  }\n  else {\n    do {\n      cVar6 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar7 <= pcVar2);\n    bVar1 = true;\nLAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)) goto LAB_0001ae60;\n    if (bVar1) goto LAB_0001af0c;\n  }\n  if (*(int *)(param_2 + 0x18) < iVar8) {\n    return 0;\n  }\nLAB_0001ae60:\n  *(int *)(param_1 + 0x14) = iVar4;\n  return 1;\n}" type_identifier (function_declarator "FUN_0001ae30(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  bool bVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  char cVar6;\n  undefined4 uVar5;\n  char *pcVar7;\n  int iVar8;\n  \n  if (param_2 == 0) {\n    uVar5 = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)(PTR_DAT_000354d8 + 23000) = uVar5;\n    *(undefined4 *)(param_1 + 0x14) = uVar5;\n    return 1;\n  }\n  if (*(int *)(param_2 + 0x1c) < *(int *)(param_2 + 0x10)) {\nLAB_0001ae58:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    goto LAB_0001ae60;\n  }\n  if (*(int *)(PTR_settings_00035514 + 0x4c) == 0) {\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }\n  else {\n    if (*(int *)(param_2 + 0x28) != 0) {\n      return 0;\n    }\n    if (*(int *)(param_1 + 0x28) != 0) goto LAB_0001ae58;\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }\n  if (iVar4 <= *(int *)(param_2 + 0x2c)) {\n    return 0;\n  }\n  pcVar7 = *(char **)PTR_s_code_00035548;\n  pcVar2 = pcVar7 + *(int *)(param_2 + 8);\n  if (pcVar2 < pcVar7) {\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;\n    iVar8 = *(int *)(param_1 + 0x18);\n    if (iVar8 <= iVar4 + 1) {\n      *(int *)(param_1 + 0x14) = iVar4;\n      return 1;\n    }\nLAB_0001af0c:\n    if (*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)) goto LAB_0001ae60;\n  }\n  else {\n    do {\n      cVar6 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar7 <= pcVar2);\n    bVar1 = true;\nLAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)) goto LAB_0001ae60;\n    if (bVar1) goto LAB_0001af0c;\n  }\n  if (*(int *)(param_2 + 0x18) < iVar8) {\n    return 0;\n  }\nLAB_0001ae60:\n  *(int *)(param_1 + 0x14) = iVar4;\n  return 1;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (if_statement "if (param_2 == 0) {\n    uVar5 = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)(PTR_DAT_000354d8 + 23000) = uVar5;\n    *(undefined4 *)(param_1 + 0x14) = uVar5;\n    return 1;\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar5 = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)(PTR_DAT_000354d8 + 23000) = uVar5;\n    *(undefined4 *)(param_1 + 0x14) = uVar5;\n    return 1;\n  }" { (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0x18);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(PTR_DAT_000354d8 + 23000) = uVar5;" (assignment_expression "*(undefined4 *)(PTR_DAT_000354d8 + 23000) = uVar5" (pointer_expression "*(undefined4 *)(PTR_DAT_000354d8 + 23000)" * (cast_expression "(undefined4 *)(PTR_DAT_000354d8 + 23000)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000354d8 + 23000)" ( (binary_expression "PTR_DAT_000354d8 + 23000" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x14) = uVar5;" (assignment_expression "*(undefined4 *)(param_1 + 0x14) = uVar5" (pointer_expression "*(undefined4 *)(param_1 + 0x14)" * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (if_statement "if (*(int *)(param_2 + 0x1c) < *(int *)(param_2 + 0x10)) {\nLAB_0001ae58:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    goto LAB_0001ae60;\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0x1c) < *(int *)(param_2 + 0x10))" ( (binary_expression "*(int *)(param_2 + 0x1c) < *(int *)(param_2 + 0x10)" (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) < (pointer_expression "*(int *)(param_2 + 0x10)" * (cast_expression "(int *)(param_2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\nLAB_0001ae58:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    goto LAB_0001ae60;\n  }" { (labeled_statement "LAB_0001ae58:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);" statement_identifier : (expression_statement "iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);" (assignment_expression "iVar4 = *(int *)(PTR_DAT_000354d8 + 23000)" identifier = (pointer_expression "*(int *)(PTR_DAT_000354d8 + 23000)" * (cast_expression "(int *)(PTR_DAT_000354d8 + 23000)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000354d8 + 23000)" ( (binary_expression "PTR_DAT_000354d8 + 23000" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_0001ae60;" goto statement_identifier ;) })) (if_statement "if (*(int *)(PTR_settings_00035514 + 0x4c) == 0) {\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }\n  else {\n    if (*(int *)(param_2 + 0x28) != 0) {\n      return 0;\n    }\n    if (*(int *)(param_1 + 0x28) != 0) goto LAB_0001ae58;\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }" if (parenthesized_expression "(*(int *)(PTR_settings_00035514 + 0x4c) == 0)" ( (binary_expression "*(int *)(PTR_settings_00035514 + 0x4c) == 0" (pointer_expression "*(int *)(PTR_settings_00035514 + 0x4c)" * (cast_expression "(int *)(PTR_settings_00035514 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_settings_00035514 + 0x4c)" ( (binary_expression "PTR_settings_00035514 + 0x4c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }" { (expression_statement "iVar4 = *(int *)(param_1 + 0x2c);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x2c)" identifier = (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    if (*(int *)(param_2 + 0x28) != 0) {\n      return 0;\n    }\n    if (*(int *)(param_1 + 0x28) != 0) goto LAB_0001ae58;\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }" else (compound_statement "{\n    if (*(int *)(param_2 + 0x28) != 0) {\n      return 0;\n    }\n    if (*(int *)(param_1 + 0x28) != 0) goto LAB_0001ae58;\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }" { (if_statement "if (*(int *)(param_2 + 0x28) != 0) {\n      return 0;\n    }" if (parenthesized_expression "(*(int *)(param_2 + 0x28) != 0)" ( (binary_expression "*(int *)(param_2 + 0x28) != 0" (pointer_expression "*(int *)(param_2 + 0x28)" * (cast_expression "(int *)(param_2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(int *)(param_1 + 0x28) != 0) goto LAB_0001ae58;" if (parenthesized_expression "(*(int *)(param_1 + 0x28) != 0)" ( (binary_expression "*(int *)(param_1 + 0x28) != 0" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0001ae58;" goto statement_identifier ;)) (expression_statement "iVar4 = *(int *)(param_1 + 0x2c);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x2c)" identifier = (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar4 <= *(int *)(param_2 + 0x2c)) {\n    return 0;\n  }" if (parenthesized_expression "(iVar4 <= *(int *)(param_2 + 0x2c))" ( (binary_expression "iVar4 <= *(int *)(param_2 + 0x2c)" identifier <= (pointer_expression "*(int *)(param_2 + 0x2c)" * (cast_expression "(int *)(param_2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar7 = *(char **)PTR_s_code_00035548;" (assignment_expression "pcVar7 = *(char **)PTR_s_code_00035548" identifier = (pointer_expression "*(char **)PTR_s_code_00035548" * (cast_expression "(char **)PTR_s_code_00035548" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar2 = pcVar7 + *(int *)(param_2 + 8);" (assignment_expression "pcVar2 = pcVar7 + *(int *)(param_2 + 8)" identifier = (binary_expression "pcVar7 + *(int *)(param_2 + 8)" identifier + (pointer_expression "*(int *)(param_2 + 8)" * (cast_expression "(int *)(param_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))))) ;) (if_statement "if (pcVar2 < pcVar7) {\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;\n    iVar8 = *(int *)(param_1 + 0x18);\n    if (iVar8 <= iVar4 + 1) {\n      *(int *)(param_1 + 0x14) = iVar4;\n      return 1;\n    }\nLAB_0001af0c:\n    if (*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)) goto LAB_0001ae60;\n  }\n  else {\n    do {\n      cVar6 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar7 <= pcVar2);\n    bVar1 = true;\nLAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)) goto LAB_0001ae60;\n    if (bVar1) goto LAB_0001af0c;\n  }" if (parenthesized_expression "(pcVar2 < pcVar7)" ( (binary_expression "pcVar2 < pcVar7" identifier < identifier) )) (compound_statement "{\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;\n    iVar8 = *(int *)(param_1 + 0x18);\n    if (iVar8 <= iVar4 + 1) {\n      *(int *)(param_1 + 0x14) = iVar4;\n      return 1;\n    }\nLAB_0001af0c:\n    if (*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)) goto LAB_0001ae60;\n  }" { (expression_statement "iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);" (assignment_expression "iVar4 = *(int *)(PTR_DAT_000354d8 + 23000)" identifier = (pointer_expression "*(int *)(PTR_DAT_000354d8 + 23000)" * (cast_expression "(int *)(PTR_DAT_000354d8 + 23000)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000354d8 + 23000)" ( (binary_expression "PTR_DAT_000354d8 + 23000" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;" if (parenthesized_expression "(*(int *)(PTR_settings_00035514 + 0x48) == 0)" ( (binary_expression "*(int *)(PTR_settings_00035514 + 0x48) == 0" (pointer_expression "*(int *)(PTR_settings_00035514 + 0x48)" * (cast_expression "(int *)(PTR_settings_00035514 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_settings_00035514 + 0x48)" ( (binary_expression "PTR_settings_00035514 + 0x48" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0001ae60;" goto statement_identifier ;)) (expression_statement "iVar8 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar8 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 <= iVar4 + 1) {\n      *(int *)(param_1 + 0x14) = iVar4;\n      return 1;\n    }" if (parenthesized_expression "(iVar8 <= iVar4 + 1)" ( (binary_expression "iVar8 <= iVar4 + 1" identifier <= (binary_expression "iVar4 + 1" identifier + number_literal)) )) (compound_statement "{\n      *(int *)(param_1 + 0x14) = iVar4;\n      return 1;\n    }" { (expression_statement "*(int *)(param_1 + 0x14) = iVar4;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar4" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_0001af0c:\n    if (*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)) goto LAB_0001ae60;" statement_identifier : (if_statement "if (*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)) goto LAB_0001ae60;" if (parenthesized_expression "(*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c))" ( (binary_expression "*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) <= (binary_expression "iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)" (binary_expression "iVar8 * 2 + 1" (binary_expression "iVar8 * 2" identifier * number_literal) + number_literal) + (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))))) )) (goto_statement "goto LAB_0001ae60;" goto statement_identifier ;))) }) (else_clause "else {\n    do {\n      cVar6 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar7 <= pcVar2);\n    bVar1 = true;\nLAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)) goto LAB_0001ae60;\n    if (bVar1) goto LAB_0001af0c;\n  }" else (compound_statement "{\n    do {\n      cVar6 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar7 <= pcVar2);\n    bVar1 = true;\nLAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)) goto LAB_0001ae60;\n    if (bVar1) goto LAB_0001af0c;\n  }" { (do_statement "do {\n      cVar6 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar7 <= pcVar2);" do (compound_statement "{\n      cVar6 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }\n    }" { (expression_statement "cVar6 = *pcVar2;" (assignment_expression "cVar6 = *pcVar2" identifier = (pointer_expression "*pcVar2" * identifier)) ;) (expression_statement "pcVar3 = pcVar2;" (assignment_expression "pcVar3 = pcVar2" identifier = identifier) ;) (if_statement "if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }" if (parenthesized_expression "(cVar6 == '!')" ( (binary_expression "cVar6 == '!'" identifier == (char_literal "'!'" ' character ')) )) (compound_statement "{\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }" { (expression_statement "cVar6 = pcVar2[-1];" (assignment_expression "cVar6 = pcVar2[-1]" identifier = (subscript_expression "pcVar2[-1]" identifier [ number_literal ])) ;) (expression_statement "pcVar3 = pcVar2 + -1;" (assignment_expression "pcVar3 = pcVar2 + -1" identifier = (binary_expression "pcVar2 + -1" identifier + number_literal)) ;) })) (expression_statement "pcVar2 = pcVar3 + -1;" (assignment_expression "pcVar2 = pcVar3 + -1" identifier = (binary_expression "pcVar3 + -1" identifier + number_literal)) ;) (if_statement "if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }" if (parenthesized_expression "(cVar6 != '(')" ( (binary_expression "cVar6 != '('" identifier != (char_literal "'('" ' character ')) )) (compound_statement "{\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }" { (expression_statement "bVar1 = pcVar3 < pcVar7;" (assignment_expression "bVar1 = pcVar3 < pcVar7" identifier = (binary_expression "pcVar3 < pcVar7" identifier < identifier)) ;) (goto_statement "goto LAB_0001aee4;" goto statement_identifier ;) })) }) while (parenthesized_expression "(pcVar7 <= pcVar2)" ( (binary_expression "pcVar7 <= pcVar2" identifier <= identifier) )) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (labeled_statement "LAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);" statement_identifier : (expression_statement "iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);" (assignment_expression "iVar4 = *(int *)(PTR_DAT_000354d8 + 23000)" identifier = (pointer_expression "*(int *)(PTR_DAT_000354d8 + 23000)" * (cast_expression "(int *)(PTR_DAT_000354d8 + 23000)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000354d8 + 23000)" ( (binary_expression "PTR_DAT_000354d8 + 23000" identifier + number_literal) ))))) ;)) (if_statement "if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)) goto LAB_0001ae60;" if (parenthesized_expression "((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1))" ( (binary_expression "(*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)" (parenthesized_expression "(*(int *)(PTR_settings_00035514 + 0x48) == 0)" ( (binary_expression "*(int *)(PTR_settings_00035514 + 0x48) == 0" (pointer_expression "*(int *)(PTR_settings_00035514 + 0x48)" * (cast_expression "(int *)(PTR_settings_00035514 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_settings_00035514 + 0x48)" ( (binary_expression "PTR_settings_00035514 + 0x48" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)" ( (comma_expression "iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1" (assignment_expression "iVar8 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) , (binary_expression "iVar8 <= iVar4 + 1" identifier <= (binary_expression "iVar4 + 1" identifier + number_literal))) ))) )) (goto_statement "goto LAB_0001ae60;" goto statement_identifier ;)) (if_statement "if (bVar1) goto LAB_0001af0c;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_0001af0c;" goto statement_identifier ;)) }))) (if_statement "if (*(int *)(param_2 + 0x18) < iVar8) {\n    return 0;\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0x18) < iVar8)" ( (binary_expression "*(int *)(param_2 + 0x18) < iVar8" (pointer_expression "*(int *)(param_2 + 0x18)" * (cast_expression "(int *)(param_2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_0001ae60:\n  *(int *)(param_1 + 0x14) = iVar4;" statement_identifier : (expression_statement "*(int *)(param_1 + 0x14) = iVar4;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar4" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = identifier) ;)) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "BOOLEAN better_break(buf_break_st_ty *b1,buf_break_st_ty *b2)\n\n{\n  bool bVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  char cVar5;\n  char *pcVar6;\n  int iVar7;\n  \n  if (b2 == (buf_break_st_ty *)0x0) {\n    iVar4 = b1->level;\n    *(int *)(PTR_DAT_000354d8 + 23000) = iVar4;\n    b1->first_level = iVar4;\n    return '\x01';\n  }\n  if (b2->col < b2->target_col) {\nLAB_0001ae58:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    goto LAB_0001ae60;\n  }\n  if (*(int *)(PTR_settings_00035514 + 0x4c) == 0) {\n    iVar4 = b1->priority;\n  }\n  else {\n    if (b2->priority_newline != 0) {\n      return '\0';\n    }\n    if (b1->priority_newline != 0) goto LAB_0001ae58;\n    iVar4 = b1->priority;\n  }\n  if (iVar4 <= b2->priority) {\n    return '\0';\n  }\n  pcVar6 = *(char **)PTR_s_code_00035548;\n  pcVar2 = pcVar6 + b2->offset;\n  if (pcVar2 < pcVar6) {\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;\n    iVar7 = b1->level;\n    if (iVar7 <= iVar4 + 1) {\n      b1->first_level = iVar4;\n      return '\x01';\n    }\nLAB_0001af0c:\n    if (b1->target_col <= iVar7 * 2 + 1 + b2->col) goto LAB_0001ae60;\n  }\n  else {\n    do {\n      cVar5 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar5 == '!') {\n        cVar5 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar5 != '(') {\n        bVar1 = pcVar3 < pcVar6;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar6 <= pcVar2);\n    bVar1 = true;\nLAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) || (iVar7 = b1->level, iVar7 <= iVar4 + 1))\n    goto LAB_0001ae60;\n    if (bVar1) goto LAB_0001af0c;\n  }\n  if (b2->level < iVar7) {\n    return '\0';\n  }\nLAB_0001ae60:\n  b1->first_level = iVar4;\n  return '\x01';\n}\n\n" (function_definition "BOOLEAN better_break(buf_break_st_ty *b1,buf_break_st_ty *b2)\n\n{\n  bool bVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  char cVar5;\n  char *pcVar6;\n  int iVar7;\n  \n  if (b2 == (buf_break_st_ty *)0x0) {\n    iVar4 = b1->level;\n    *(int *)(PTR_DAT_000354d8 + 23000) = iVar4;\n    b1->first_level = iVar4;\n    return '\x01';\n  }\n  if (b2->col < b2->target_col) {\nLAB_0001ae58:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    goto LAB_0001ae60;\n  }\n  if (*(int *)(PTR_settings_00035514 + 0x4c) == 0) {\n    iVar4 = b1->priority;\n  }\n  else {\n    if (b2->priority_newline != 0) {\n      return '\0';\n    }\n    if (b1->priority_newline != 0) goto LAB_0001ae58;\n    iVar4 = b1->priority;\n  }\n  if (iVar4 <= b2->priority) {\n    return '\0';\n  }\n  pcVar6 = *(char **)PTR_s_code_00035548;\n  pcVar2 = pcVar6 + b2->offset;\n  if (pcVar2 < pcVar6) {\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;\n    iVar7 = b1->level;\n    if (iVar7 <= iVar4 + 1) {\n      b1->first_level = iVar4;\n      return '\x01';\n    }\nLAB_0001af0c:\n    if (b1->target_col <= iVar7 * 2 + 1 + b2->col) goto LAB_0001ae60;\n  }\n  else {\n    do {\n      cVar5 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar5 == '!') {\n        cVar5 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar5 != '(') {\n        bVar1 = pcVar3 < pcVar6;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar6 <= pcVar2);\n    bVar1 = true;\nLAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) || (iVar7 = b1->level, iVar7 <= iVar4 + 1))\n    goto LAB_0001ae60;\n    if (bVar1) goto LAB_0001af0c;\n  }\n  if (b2->level < iVar7) {\n    return '\0';\n  }\nLAB_0001ae60:\n  b1->first_level = iVar4;\n  return '\x01';\n}" type_identifier (function_declarator "better_break(buf_break_st_ty *b1,buf_break_st_ty *b2)" identifier (parameter_list "(buf_break_st_ty *b1,buf_break_st_ty *b2)" ( (parameter_declaration "buf_break_st_ty *b1" type_identifier (pointer_declarator "*b1" * identifier)) , (parameter_declaration "buf_break_st_ty *b2" type_identifier (pointer_declarator "*b2" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  char cVar5;\n  char *pcVar6;\n  int iVar7;\n  \n  if (b2 == (buf_break_st_ty *)0x0) {\n    iVar4 = b1->level;\n    *(int *)(PTR_DAT_000354d8 + 23000) = iVar4;\n    b1->first_level = iVar4;\n    return '\x01';\n  }\n  if (b2->col < b2->target_col) {\nLAB_0001ae58:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    goto LAB_0001ae60;\n  }\n  if (*(int *)(PTR_settings_00035514 + 0x4c) == 0) {\n    iVar4 = b1->priority;\n  }\n  else {\n    if (b2->priority_newline != 0) {\n      return '\0';\n    }\n    if (b1->priority_newline != 0) goto LAB_0001ae58;\n    iVar4 = b1->priority;\n  }\n  if (iVar4 <= b2->priority) {\n    return '\0';\n  }\n  pcVar6 = *(char **)PTR_s_code_00035548;\n  pcVar2 = pcVar6 + b2->offset;\n  if (pcVar2 < pcVar6) {\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;\n    iVar7 = b1->level;\n    if (iVar7 <= iVar4 + 1) {\n      b1->first_level = iVar4;\n      return '\x01';\n    }\nLAB_0001af0c:\n    if (b1->target_col <= iVar7 * 2 + 1 + b2->col) goto LAB_0001ae60;\n  }\n  else {\n    do {\n      cVar5 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar5 == '!') {\n        cVar5 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar5 != '(') {\n        bVar1 = pcVar3 < pcVar6;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar6 <= pcVar2);\n    bVar1 = true;\nLAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) || (iVar7 = b1->level, iVar7 <= iVar4 + 1))\n    goto LAB_0001ae60;\n    if (bVar1) goto LAB_0001af0c;\n  }\n  if (b2->level < iVar7) {\n    return '\0';\n  }\nLAB_0001ae60:\n  b1->first_level = iVar4;\n  return '\x01';\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (if_statement "if (b2 == (buf_break_st_ty *)0x0) {\n    iVar4 = b1->level;\n    *(int *)(PTR_DAT_000354d8 + 23000) = iVar4;\n    b1->first_level = iVar4;\n    return '\x01';\n  }" if (parenthesized_expression "(b2 == (buf_break_st_ty *)0x0)" ( (binary_expression "b2 == (buf_break_st_ty *)0x0" identifier == (cast_expression "(buf_break_st_ty *)0x0" ( (type_descriptor "buf_break_st_ty *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar4 = b1->level;\n    *(int *)(PTR_DAT_000354d8 + 23000) = iVar4;\n    b1->first_level = iVar4;\n    return '\x01';\n  }" { (expression_statement "iVar4 = b1->level;" (assignment_expression "iVar4 = b1->level" identifier = (field_expression "b1->level" identifier -> field_identifier)) ;) (expression_statement "*(int *)(PTR_DAT_000354d8 + 23000) = iVar4;" (assignment_expression "*(int *)(PTR_DAT_000354d8 + 23000) = iVar4" (pointer_expression "*(int *)(PTR_DAT_000354d8 + 23000)" * (cast_expression "(int *)(PTR_DAT_000354d8 + 23000)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000354d8 + 23000)" ( (binary_expression "PTR_DAT_000354d8 + 23000" identifier + number_literal) )))) = identifier) ;) (expression_statement "b1->first_level = iVar4;" (assignment_expression "b1->first_level = iVar4" (field_expression "b1->first_level" identifier -> field_identifier) = identifier) ;) (return_statement "return '\x01';" return (char_literal "'\x01'" ' escape_sequence ') ;) })) (if_statement "if (b2->col < b2->target_col) {\nLAB_0001ae58:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    goto LAB_0001ae60;\n  }" if (parenthesized_expression "(b2->col < b2->target_col)" ( (binary_expression "b2->col < b2->target_col" (field_expression "b2->col" identifier -> field_identifier) < (field_expression "b2->target_col" identifier -> field_identifier)) )) (compound_statement "{\nLAB_0001ae58:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    goto LAB_0001ae60;\n  }" { (labeled_statement "LAB_0001ae58:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);" statement_identifier : (expression_statement "iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);" (assignment_expression "iVar4 = *(int *)(PTR_DAT_000354d8 + 23000)" identifier = (pointer_expression "*(int *)(PTR_DAT_000354d8 + 23000)" * (cast_expression "(int *)(PTR_DAT_000354d8 + 23000)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000354d8 + 23000)" ( (binary_expression "PTR_DAT_000354d8 + 23000" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_0001ae60;" goto statement_identifier ;) })) (if_statement "if (*(int *)(PTR_settings_00035514 + 0x4c) == 0) {\n    iVar4 = b1->priority;\n  }\n  else {\n    if (b2->priority_newline != 0) {\n      return '\0';\n    }\n    if (b1->priority_newline != 0) goto LAB_0001ae58;\n    iVar4 = b1->priority;\n  }" if (parenthesized_expression "(*(int *)(PTR_settings_00035514 + 0x4c) == 0)" ( (binary_expression "*(int *)(PTR_settings_00035514 + 0x4c) == 0" (pointer_expression "*(int *)(PTR_settings_00035514 + 0x4c)" * (cast_expression "(int *)(PTR_settings_00035514 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_settings_00035514 + 0x4c)" ( (binary_expression "PTR_settings_00035514 + 0x4c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    iVar4 = b1->priority;\n  }" { (expression_statement "iVar4 = b1->priority;" (assignment_expression "iVar4 = b1->priority" identifier = (field_expression "b1->priority" identifier -> field_identifier)) ;) }) (else_clause "else {\n    if (b2->priority_newline != 0) {\n      return '\0';\n    }\n    if (b1->priority_newline != 0) goto LAB_0001ae58;\n    iVar4 = b1->priority;\n  }" else (compound_statement "{\n    if (b2->priority_newline != 0) {\n      return '\0';\n    }\n    if (b1->priority_newline != 0) goto LAB_0001ae58;\n    iVar4 = b1->priority;\n  }" { (if_statement "if (b2->priority_newline != 0) {\n      return '\0';\n    }" if (parenthesized_expression "(b2->priority_newline != 0)" ( (binary_expression "b2->priority_newline != 0" (field_expression "b2->priority_newline" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n      return '\0';\n    }" { (return_statement "return '\0';" return (char_literal "'\0'" ' escape_sequence ') ;) })) (if_statement "if (b1->priority_newline != 0) goto LAB_0001ae58;" if (parenthesized_expression "(b1->priority_newline != 0)" ( (binary_expression "b1->priority_newline != 0" (field_expression "b1->priority_newline" identifier -> field_identifier) != number_literal) )) (goto_statement "goto LAB_0001ae58;" goto statement_identifier ;)) (expression_statement "iVar4 = b1->priority;" (assignment_expression "iVar4 = b1->priority" identifier = (field_expression "b1->priority" identifier -> field_identifier)) ;) }))) (if_statement "if (iVar4 <= b2->priority) {\n    return '\0';\n  }" if (parenthesized_expression "(iVar4 <= b2->priority)" ( (binary_expression "iVar4 <= b2->priority" identifier <= (field_expression "b2->priority" identifier -> field_identifier)) )) (compound_statement "{\n    return '\0';\n  }" { (return_statement "return '\0';" return (char_literal "'\0'" ' escape_sequence ') ;) })) (expression_statement "pcVar6 = *(char **)PTR_s_code_00035548;" (assignment_expression "pcVar6 = *(char **)PTR_s_code_00035548" identifier = (pointer_expression "*(char **)PTR_s_code_00035548" * (cast_expression "(char **)PTR_s_code_00035548" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar2 = pcVar6 + b2->offset;" (assignment_expression "pcVar2 = pcVar6 + b2->offset" identifier = (binary_expression "pcVar6 + b2->offset" identifier + (field_expression "b2->offset" identifier -> field_identifier))) ;) (if_statement "if (pcVar2 < pcVar6) {\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;\n    iVar7 = b1->level;\n    if (iVar7 <= iVar4 + 1) {\n      b1->first_level = iVar4;\n      return '\x01';\n    }\nLAB_0001af0c:\n    if (b1->target_col <= iVar7 * 2 + 1 + b2->col) goto LAB_0001ae60;\n  }\n  else {\n    do {\n      cVar5 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar5 == '!') {\n        cVar5 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar5 != '(') {\n        bVar1 = pcVar3 < pcVar6;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar6 <= pcVar2);\n    bVar1 = true;\nLAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) || (iVar7 = b1->level, iVar7 <= iVar4 + 1))\n    goto LAB_0001ae60;\n    if (bVar1) goto LAB_0001af0c;\n  }" if (parenthesized_expression "(pcVar2 < pcVar6)" ( (binary_expression "pcVar2 < pcVar6" identifier < identifier) )) (compound_statement "{\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;\n    iVar7 = b1->level;\n    if (iVar7 <= iVar4 + 1) {\n      b1->first_level = iVar4;\n      return '\x01';\n    }\nLAB_0001af0c:\n    if (b1->target_col <= iVar7 * 2 + 1 + b2->col) goto LAB_0001ae60;\n  }" { (expression_statement "iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);" (assignment_expression "iVar4 = *(int *)(PTR_DAT_000354d8 + 23000)" identifier = (pointer_expression "*(int *)(PTR_DAT_000354d8 + 23000)" * (cast_expression "(int *)(PTR_DAT_000354d8 + 23000)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000354d8 + 23000)" ( (binary_expression "PTR_DAT_000354d8 + 23000" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;" if (parenthesized_expression "(*(int *)(PTR_settings_00035514 + 0x48) == 0)" ( (binary_expression "*(int *)(PTR_settings_00035514 + 0x48) == 0" (pointer_expression "*(int *)(PTR_settings_00035514 + 0x48)" * (cast_expression "(int *)(PTR_settings_00035514 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_settings_00035514 + 0x48)" ( (binary_expression "PTR_settings_00035514 + 0x48" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0001ae60;" goto statement_identifier ;)) (expression_statement "iVar7 = b1->level;" (assignment_expression "iVar7 = b1->level" identifier = (field_expression "b1->level" identifier -> field_identifier)) ;) (if_statement "if (iVar7 <= iVar4 + 1) {\n      b1->first_level = iVar4;\n      return '\x01';\n    }" if (parenthesized_expression "(iVar7 <= iVar4 + 1)" ( (binary_expression "iVar7 <= iVar4 + 1" identifier <= (binary_expression "iVar4 + 1" identifier + number_literal)) )) (compound_statement "{\n      b1->first_level = iVar4;\n      return '\x01';\n    }" { (expression_statement "b1->first_level = iVar4;" (assignment_expression "b1->first_level = iVar4" (field_expression "b1->first_level" identifier -> field_identifier) = identifier) ;) (return_statement "return '\x01';" return (char_literal "'\x01'" ' escape_sequence ') ;) })) (labeled_statement "LAB_0001af0c:\n    if (b1->target_col <= iVar7 * 2 + 1 + b2->col) goto LAB_0001ae60;" statement_identifier : (if_statement "if (b1->target_col <= iVar7 * 2 + 1 + b2->col) goto LAB_0001ae60;" if (parenthesized_expression "(b1->target_col <= iVar7 * 2 + 1 + b2->col)" ( (binary_expression "b1->target_col <= iVar7 * 2 + 1 + b2->col" (field_expression "b1->target_col" identifier -> field_identifier) <= (binary_expression "iVar7 * 2 + 1 + b2->col" (binary_expression "iVar7 * 2 + 1" (binary_expression "iVar7 * 2" identifier * number_literal) + number_literal) + (field_expression "b2->col" identifier -> field_identifier))) )) (goto_statement "goto LAB_0001ae60;" goto statement_identifier ;))) }) (else_clause "else {\n    do {\n      cVar5 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar5 == '!') {\n        cVar5 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar5 != '(') {\n        bVar1 = pcVar3 < pcVar6;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar6 <= pcVar2);\n    bVar1 = true;\nLAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) || (iVar7 = b1->level, iVar7 <= iVar4 + 1))\n    goto LAB_0001ae60;\n    if (bVar1) goto LAB_0001af0c;\n  }" else (compound_statement "{\n    do {\n      cVar5 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar5 == '!') {\n        cVar5 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar5 != '(') {\n        bVar1 = pcVar3 < pcVar6;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar6 <= pcVar2);\n    bVar1 = true;\nLAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) || (iVar7 = b1->level, iVar7 <= iVar4 + 1))\n    goto LAB_0001ae60;\n    if (bVar1) goto LAB_0001af0c;\n  }" { (do_statement "do {\n      cVar5 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar5 == '!') {\n        cVar5 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar5 != '(') {\n        bVar1 = pcVar3 < pcVar6;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar6 <= pcVar2);" do (compound_statement "{\n      cVar5 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar5 == '!') {\n        cVar5 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar5 != '(') {\n        bVar1 = pcVar3 < pcVar6;\n        goto LAB_0001aee4;\n      }\n    }" { (expression_statement "cVar5 = *pcVar2;" (assignment_expression "cVar5 = *pcVar2" identifier = (pointer_expression "*pcVar2" * identifier)) ;) (expression_statement "pcVar3 = pcVar2;" (assignment_expression "pcVar3 = pcVar2" identifier = identifier) ;) (if_statement "if (cVar5 == '!') {\n        cVar5 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }" if (parenthesized_expression "(cVar5 == '!')" ( (binary_expression "cVar5 == '!'" identifier == (char_literal "'!'" ' character ')) )) (compound_statement "{\n        cVar5 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }" { (expression_statement "cVar5 = pcVar2[-1];" (assignment_expression "cVar5 = pcVar2[-1]" identifier = (subscript_expression "pcVar2[-1]" identifier [ number_literal ])) ;) (expression_statement "pcVar3 = pcVar2 + -1;" (assignment_expression "pcVar3 = pcVar2 + -1" identifier = (binary_expression "pcVar2 + -1" identifier + number_literal)) ;) })) (expression_statement "pcVar2 = pcVar3 + -1;" (assignment_expression "pcVar2 = pcVar3 + -1" identifier = (binary_expression "pcVar3 + -1" identifier + number_literal)) ;) (if_statement "if (cVar5 != '(') {\n        bVar1 = pcVar3 < pcVar6;\n        goto LAB_0001aee4;\n      }" if (parenthesized_expression "(cVar5 != '(')" ( (binary_expression "cVar5 != '('" identifier != (char_literal "'('" ' character ')) )) (compound_statement "{\n        bVar1 = pcVar3 < pcVar6;\n        goto LAB_0001aee4;\n      }" { (expression_statement "bVar1 = pcVar3 < pcVar6;" (assignment_expression "bVar1 = pcVar3 < pcVar6" identifier = (binary_expression "pcVar3 < pcVar6" identifier < identifier)) ;) (goto_statement "goto LAB_0001aee4;" goto statement_identifier ;) })) }) while (parenthesized_expression "(pcVar6 <= pcVar2)" ( (binary_expression "pcVar6 <= pcVar2" identifier <= identifier) )) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (labeled_statement "LAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);" statement_identifier : (expression_statement "iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);" (assignment_expression "iVar4 = *(int *)(PTR_DAT_000354d8 + 23000)" identifier = (pointer_expression "*(int *)(PTR_DAT_000354d8 + 23000)" * (cast_expression "(int *)(PTR_DAT_000354d8 + 23000)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000354d8 + 23000)" ( (binary_expression "PTR_DAT_000354d8 + 23000" identifier + number_literal) ))))) ;)) (if_statement "if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) || (iVar7 = b1->level, iVar7 <= iVar4 + 1))\n    goto LAB_0001ae60;" if (parenthesized_expression "((*(int *)(PTR_settings_00035514 + 0x48) == 0) || (iVar7 = b1->level, iVar7 <= iVar4 + 1))" ( (binary_expression "(*(int *)(PTR_settings_00035514 + 0x48) == 0) || (iVar7 = b1->level, iVar7 <= iVar4 + 1)" (parenthesized_expression "(*(int *)(PTR_settings_00035514 + 0x48) == 0)" ( (binary_expression "*(int *)(PTR_settings_00035514 + 0x48) == 0" (pointer_expression "*(int *)(PTR_settings_00035514 + 0x48)" * (cast_expression "(int *)(PTR_settings_00035514 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_settings_00035514 + 0x48)" ( (binary_expression "PTR_settings_00035514 + 0x48" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(iVar7 = b1->level, iVar7 <= iVar4 + 1)" ( (comma_expression "iVar7 = b1->level, iVar7 <= iVar4 + 1" (assignment_expression "iVar7 = b1->level" identifier = (field_expression "b1->level" identifier -> field_identifier)) , (binary_expression "iVar7 <= iVar4 + 1" identifier <= (binary_expression "iVar4 + 1" identifier + number_literal))) ))) )) (goto_statement "goto LAB_0001ae60;" goto statement_identifier ;)) (if_statement "if (bVar1) goto LAB_0001af0c;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_0001af0c;" goto statement_identifier ;)) }))) (if_statement "if (b2->level < iVar7) {\n    return '\0';\n  }" if (parenthesized_expression "(b2->level < iVar7)" ( (binary_expression "b2->level < iVar7" (field_expression "b2->level" identifier -> field_identifier) < identifier) )) (compound_statement "{\n    return '\0';\n  }" { (return_statement "return '\0';" return (char_literal "'\0'" ' escape_sequence ') ;) })) (labeled_statement "LAB_0001ae60:\n  b1->first_level = iVar4;" statement_identifier : (expression_statement "b1->first_level = iVar4;" (assignment_expression "b1->first_level = iVar4" (field_expression "b1->first_level" identifier -> field_identifier) = identifier) ;)) (return_statement "return '\x01';" return (char_literal "'\x01'" ' escape_sequence ') ;) })))
(translation_unit "undefined4 FUN_0001ae30(int param_1,int param_2)\n\n{\n  bool bVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  char cVar6;\n  undefined4 uVar5;\n  char *pcVar7;\n  int iVar8;\n  \n  if (param_2 == 0) {\n    uVar5 = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)(PTR_DAT_000354d8 + 23000) = uVar5;\n    *(undefined4 *)(param_1 + 0x14) = uVar5;\n    return 1;\n  }\n  if (*(int *)(param_2 + 0x1c) < *(int *)(param_2 + 0x10)) {\nLAB_0001ae58:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    goto LAB_0001ae60;\n  }\n  if (*(int *)(PTR_settings_00035514 + 0x4c) == 0) {\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }\n  else {\n    if (*(int *)(param_2 + 0x28) != 0) {\n      return 0;\n    }\n    if (*(int *)(param_1 + 0x28) != 0) goto LAB_0001ae58;\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }\n  if (iVar4 <= *(int *)(param_2 + 0x2c)) {\n    return 0;\n  }\n  pcVar7 = *(char **)PTR_s_code_00035548;\n  pcVar2 = pcVar7 + *(int *)(param_2 + 8);\n  if (pcVar2 < pcVar7) {\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;\n    iVar8 = *(int *)(param_1 + 0x18);\n    if (iVar8 <= iVar4 + 1) {\n      *(int *)(param_1 + 0x14) = iVar4;\n      return 1;\n    }\nLAB_0001af0c:\n    if (*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)) goto LAB_0001ae60;\n  }\n  else {\n    do {\n      cVar6 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar7 <= pcVar2);\n    bVar1 = true;\nLAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)) goto LAB_0001ae60;\n    if (bVar1) goto LAB_0001af0c;\n  }\n  if (*(int *)(param_2 + 0x18) < iVar8) {\n    return 0;\n  }\nLAB_0001ae60:\n  *(int *)(param_1 + 0x14) = iVar4;\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_0001ae30(int param_1,int param_2)\n\n{\n  bool bVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  char cVar6;\n  undefined4 uVar5;\n  char *pcVar7;\n  int iVar8;\n  \n  if (param_2 == 0) {\n    uVar5 = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)(PTR_DAT_000354d8 + 23000) = uVar5;\n    *(undefined4 *)(param_1 + 0x14) = uVar5;\n    return 1;\n  }\n  if (*(int *)(param_2 + 0x1c) < *(int *)(param_2 + 0x10)) {\nLAB_0001ae58:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    goto LAB_0001ae60;\n  }\n  if (*(int *)(PTR_settings_00035514 + 0x4c) == 0) {\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }\n  else {\n    if (*(int *)(param_2 + 0x28) != 0) {\n      return 0;\n    }\n    if (*(int *)(param_1 + 0x28) != 0) goto LAB_0001ae58;\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }\n  if (iVar4 <= *(int *)(param_2 + 0x2c)) {\n    return 0;\n  }\n  pcVar7 = *(char **)PTR_s_code_00035548;\n  pcVar2 = pcVar7 + *(int *)(param_2 + 8);\n  if (pcVar2 < pcVar7) {\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;\n    iVar8 = *(int *)(param_1 + 0x18);\n    if (iVar8 <= iVar4 + 1) {\n      *(int *)(param_1 + 0x14) = iVar4;\n      return 1;\n    }\nLAB_0001af0c:\n    if (*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)) goto LAB_0001ae60;\n  }\n  else {\n    do {\n      cVar6 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar7 <= pcVar2);\n    bVar1 = true;\nLAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)) goto LAB_0001ae60;\n    if (bVar1) goto LAB_0001af0c;\n  }\n  if (*(int *)(param_2 + 0x18) < iVar8) {\n    return 0;\n  }\nLAB_0001ae60:\n  *(int *)(param_1 + 0x14) = iVar4;\n  return 1;\n}" type_identifier (function_declarator "FUN_0001ae30(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  bool bVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  char cVar6;\n  undefined4 uVar5;\n  char *pcVar7;\n  int iVar8;\n  \n  if (param_2 == 0) {\n    uVar5 = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)(PTR_DAT_000354d8 + 23000) = uVar5;\n    *(undefined4 *)(param_1 + 0x14) = uVar5;\n    return 1;\n  }\n  if (*(int *)(param_2 + 0x1c) < *(int *)(param_2 + 0x10)) {\nLAB_0001ae58:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    goto LAB_0001ae60;\n  }\n  if (*(int *)(PTR_settings_00035514 + 0x4c) == 0) {\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }\n  else {\n    if (*(int *)(param_2 + 0x28) != 0) {\n      return 0;\n    }\n    if (*(int *)(param_1 + 0x28) != 0) goto LAB_0001ae58;\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }\n  if (iVar4 <= *(int *)(param_2 + 0x2c)) {\n    return 0;\n  }\n  pcVar7 = *(char **)PTR_s_code_00035548;\n  pcVar2 = pcVar7 + *(int *)(param_2 + 8);\n  if (pcVar2 < pcVar7) {\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;\n    iVar8 = *(int *)(param_1 + 0x18);\n    if (iVar8 <= iVar4 + 1) {\n      *(int *)(param_1 + 0x14) = iVar4;\n      return 1;\n    }\nLAB_0001af0c:\n    if (*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)) goto LAB_0001ae60;\n  }\n  else {\n    do {\n      cVar6 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar7 <= pcVar2);\n    bVar1 = true;\nLAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)) goto LAB_0001ae60;\n    if (bVar1) goto LAB_0001af0c;\n  }\n  if (*(int *)(param_2 + 0x18) < iVar8) {\n    return 0;\n  }\nLAB_0001ae60:\n  *(int *)(param_1 + 0x14) = iVar4;\n  return 1;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (if_statement "if (param_2 == 0) {\n    uVar5 = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)(PTR_DAT_000354d8 + 23000) = uVar5;\n    *(undefined4 *)(param_1 + 0x14) = uVar5;\n    return 1;\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar5 = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)(PTR_DAT_000354d8 + 23000) = uVar5;\n    *(undefined4 *)(param_1 + 0x14) = uVar5;\n    return 1;\n  }" { (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0x18);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(PTR_DAT_000354d8 + 23000) = uVar5;" (assignment_expression "*(undefined4 *)(PTR_DAT_000354d8 + 23000) = uVar5" (pointer_expression "*(undefined4 *)(PTR_DAT_000354d8 + 23000)" * (cast_expression "(undefined4 *)(PTR_DAT_000354d8 + 23000)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000354d8 + 23000)" ( (binary_expression "PTR_DAT_000354d8 + 23000" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x14) = uVar5;" (assignment_expression "*(undefined4 *)(param_1 + 0x14) = uVar5" (pointer_expression "*(undefined4 *)(param_1 + 0x14)" * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (if_statement "if (*(int *)(param_2 + 0x1c) < *(int *)(param_2 + 0x10)) {\nLAB_0001ae58:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    goto LAB_0001ae60;\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0x1c) < *(int *)(param_2 + 0x10))" ( (binary_expression "*(int *)(param_2 + 0x1c) < *(int *)(param_2 + 0x10)" (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) < (pointer_expression "*(int *)(param_2 + 0x10)" * (cast_expression "(int *)(param_2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\nLAB_0001ae58:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    goto LAB_0001ae60;\n  }" { (labeled_statement "LAB_0001ae58:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);" statement_identifier : (expression_statement "iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);" (assignment_expression "iVar4 = *(int *)(PTR_DAT_000354d8 + 23000)" identifier = (pointer_expression "*(int *)(PTR_DAT_000354d8 + 23000)" * (cast_expression "(int *)(PTR_DAT_000354d8 + 23000)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000354d8 + 23000)" ( (binary_expression "PTR_DAT_000354d8 + 23000" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_0001ae60;" goto statement_identifier ;) })) (if_statement "if (*(int *)(PTR_settings_00035514 + 0x4c) == 0) {\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }\n  else {\n    if (*(int *)(param_2 + 0x28) != 0) {\n      return 0;\n    }\n    if (*(int *)(param_1 + 0x28) != 0) goto LAB_0001ae58;\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }" if (parenthesized_expression "(*(int *)(PTR_settings_00035514 + 0x4c) == 0)" ( (binary_expression "*(int *)(PTR_settings_00035514 + 0x4c) == 0" (pointer_expression "*(int *)(PTR_settings_00035514 + 0x4c)" * (cast_expression "(int *)(PTR_settings_00035514 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_settings_00035514 + 0x4c)" ( (binary_expression "PTR_settings_00035514 + 0x4c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }" { (expression_statement "iVar4 = *(int *)(param_1 + 0x2c);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x2c)" identifier = (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    if (*(int *)(param_2 + 0x28) != 0) {\n      return 0;\n    }\n    if (*(int *)(param_1 + 0x28) != 0) goto LAB_0001ae58;\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }" else (compound_statement "{\n    if (*(int *)(param_2 + 0x28) != 0) {\n      return 0;\n    }\n    if (*(int *)(param_1 + 0x28) != 0) goto LAB_0001ae58;\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }" { (if_statement "if (*(int *)(param_2 + 0x28) != 0) {\n      return 0;\n    }" if (parenthesized_expression "(*(int *)(param_2 + 0x28) != 0)" ( (binary_expression "*(int *)(param_2 + 0x28) != 0" (pointer_expression "*(int *)(param_2 + 0x28)" * (cast_expression "(int *)(param_2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(int *)(param_1 + 0x28) != 0) goto LAB_0001ae58;" if (parenthesized_expression "(*(int *)(param_1 + 0x28) != 0)" ( (binary_expression "*(int *)(param_1 + 0x28) != 0" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0001ae58;" goto statement_identifier ;)) (expression_statement "iVar4 = *(int *)(param_1 + 0x2c);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x2c)" identifier = (pointer_expression "*(int *)(param_1 + 0x2c)" * (cast_expression "(int *)(param_1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar4 <= *(int *)(param_2 + 0x2c)) {\n    return 0;\n  }" if (parenthesized_expression "(iVar4 <= *(int *)(param_2 + 0x2c))" ( (binary_expression "iVar4 <= *(int *)(param_2 + 0x2c)" identifier <= (pointer_expression "*(int *)(param_2 + 0x2c)" * (cast_expression "(int *)(param_2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar7 = *(char **)PTR_s_code_00035548;" (assignment_expression "pcVar7 = *(char **)PTR_s_code_00035548" identifier = (pointer_expression "*(char **)PTR_s_code_00035548" * (cast_expression "(char **)PTR_s_code_00035548" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar2 = pcVar7 + *(int *)(param_2 + 8);" (assignment_expression "pcVar2 = pcVar7 + *(int *)(param_2 + 8)" identifier = (binary_expression "pcVar7 + *(int *)(param_2 + 8)" identifier + (pointer_expression "*(int *)(param_2 + 8)" * (cast_expression "(int *)(param_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))))) ;) (if_statement "if (pcVar2 < pcVar7) {\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;\n    iVar8 = *(int *)(param_1 + 0x18);\n    if (iVar8 <= iVar4 + 1) {\n      *(int *)(param_1 + 0x14) = iVar4;\n      return 1;\n    }\nLAB_0001af0c:\n    if (*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)) goto LAB_0001ae60;\n  }\n  else {\n    do {\n      cVar6 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar7 <= pcVar2);\n    bVar1 = true;\nLAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)) goto LAB_0001ae60;\n    if (bVar1) goto LAB_0001af0c;\n  }" if (parenthesized_expression "(pcVar2 < pcVar7)" ( (binary_expression "pcVar2 < pcVar7" identifier < identifier) )) (compound_statement "{\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;\n    iVar8 = *(int *)(param_1 + 0x18);\n    if (iVar8 <= iVar4 + 1) {\n      *(int *)(param_1 + 0x14) = iVar4;\n      return 1;\n    }\nLAB_0001af0c:\n    if (*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)) goto LAB_0001ae60;\n  }" { (expression_statement "iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);" (assignment_expression "iVar4 = *(int *)(PTR_DAT_000354d8 + 23000)" identifier = (pointer_expression "*(int *)(PTR_DAT_000354d8 + 23000)" * (cast_expression "(int *)(PTR_DAT_000354d8 + 23000)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000354d8 + 23000)" ( (binary_expression "PTR_DAT_000354d8 + 23000" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;" if (parenthesized_expression "(*(int *)(PTR_settings_00035514 + 0x48) == 0)" ( (binary_expression "*(int *)(PTR_settings_00035514 + 0x48) == 0" (pointer_expression "*(int *)(PTR_settings_00035514 + 0x48)" * (cast_expression "(int *)(PTR_settings_00035514 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_settings_00035514 + 0x48)" ( (binary_expression "PTR_settings_00035514 + 0x48" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0001ae60;" goto statement_identifier ;)) (expression_statement "iVar8 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar8 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 <= iVar4 + 1) {\n      *(int *)(param_1 + 0x14) = iVar4;\n      return 1;\n    }" if (parenthesized_expression "(iVar8 <= iVar4 + 1)" ( (binary_expression "iVar8 <= iVar4 + 1" identifier <= (binary_expression "iVar4 + 1" identifier + number_literal)) )) (compound_statement "{\n      *(int *)(param_1 + 0x14) = iVar4;\n      return 1;\n    }" { (expression_statement "*(int *)(param_1 + 0x14) = iVar4;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar4" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_0001af0c:\n    if (*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)) goto LAB_0001ae60;" statement_identifier : (if_statement "if (*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)) goto LAB_0001ae60;" if (parenthesized_expression "(*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c))" ( (binary_expression "*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) <= (binary_expression "iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)" (binary_expression "iVar8 * 2 + 1" (binary_expression "iVar8 * 2" identifier * number_literal) + number_literal) + (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))))) )) (goto_statement "goto LAB_0001ae60;" goto statement_identifier ;))) }) (else_clause "else {\n    do {\n      cVar6 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar7 <= pcVar2);\n    bVar1 = true;\nLAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)) goto LAB_0001ae60;\n    if (bVar1) goto LAB_0001af0c;\n  }" else (compound_statement "{\n    do {\n      cVar6 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar7 <= pcVar2);\n    bVar1 = true;\nLAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)) goto LAB_0001ae60;\n    if (bVar1) goto LAB_0001af0c;\n  }" { (do_statement "do {\n      cVar6 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar7 <= pcVar2);" do (compound_statement "{\n      cVar6 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }\n    }" { (expression_statement "cVar6 = *pcVar2;" (assignment_expression "cVar6 = *pcVar2" identifier = (pointer_expression "*pcVar2" * identifier)) ;) (expression_statement "pcVar3 = pcVar2;" (assignment_expression "pcVar3 = pcVar2" identifier = identifier) ;) (if_statement "if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }" if (parenthesized_expression "(cVar6 == '!')" ( (binary_expression "cVar6 == '!'" identifier == (char_literal "'!'" ' character ')) )) (compound_statement "{\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }" { (expression_statement "cVar6 = pcVar2[-1];" (assignment_expression "cVar6 = pcVar2[-1]" identifier = (subscript_expression "pcVar2[-1]" identifier [ number_literal ])) ;) (expression_statement "pcVar3 = pcVar2 + -1;" (assignment_expression "pcVar3 = pcVar2 + -1" identifier = (binary_expression "pcVar2 + -1" identifier + number_literal)) ;) })) (expression_statement "pcVar2 = pcVar3 + -1;" (assignment_expression "pcVar2 = pcVar3 + -1" identifier = (binary_expression "pcVar3 + -1" identifier + number_literal)) ;) (if_statement "if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }" if (parenthesized_expression "(cVar6 != '(')" ( (binary_expression "cVar6 != '('" identifier != (char_literal "'('" ' character ')) )) (compound_statement "{\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }" { (expression_statement "bVar1 = pcVar3 < pcVar7;" (assignment_expression "bVar1 = pcVar3 < pcVar7" identifier = (binary_expression "pcVar3 < pcVar7" identifier < identifier)) ;) (goto_statement "goto LAB_0001aee4;" goto statement_identifier ;) })) }) while (parenthesized_expression "(pcVar7 <= pcVar2)" ( (binary_expression "pcVar7 <= pcVar2" identifier <= identifier) )) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (labeled_statement "LAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);" statement_identifier : (expression_statement "iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);" (assignment_expression "iVar4 = *(int *)(PTR_DAT_000354d8 + 23000)" identifier = (pointer_expression "*(int *)(PTR_DAT_000354d8 + 23000)" * (cast_expression "(int *)(PTR_DAT_000354d8 + 23000)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000354d8 + 23000)" ( (binary_expression "PTR_DAT_000354d8 + 23000" identifier + number_literal) ))))) ;)) (if_statement "if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)) goto LAB_0001ae60;" if (parenthesized_expression "((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1))" ( (binary_expression "(*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)" (parenthesized_expression "(*(int *)(PTR_settings_00035514 + 0x48) == 0)" ( (binary_expression "*(int *)(PTR_settings_00035514 + 0x48) == 0" (pointer_expression "*(int *)(PTR_settings_00035514 + 0x48)" * (cast_expression "(int *)(PTR_settings_00035514 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_settings_00035514 + 0x48)" ( (binary_expression "PTR_settings_00035514 + 0x48" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)" ( (comma_expression "iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1" (assignment_expression "iVar8 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) , (binary_expression "iVar8 <= iVar4 + 1" identifier <= (binary_expression "iVar4 + 1" identifier + number_literal))) ))) )) (goto_statement "goto LAB_0001ae60;" goto statement_identifier ;)) (if_statement "if (bVar1) goto LAB_0001af0c;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_0001af0c;" goto statement_identifier ;)) }))) (if_statement "if (*(int *)(param_2 + 0x18) < iVar8) {\n    return 0;\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0x18) < iVar8)" ( (binary_expression "*(int *)(param_2 + 0x18) < iVar8" (pointer_expression "*(int *)(param_2 + 0x18)" * (cast_expression "(int *)(param_2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_0001ae60:\n  *(int *)(param_1 + 0x14) = iVar4;" statement_identifier : (expression_statement "*(int *)(param_1 + 0x14) = iVar4;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar4" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = identifier) ;)) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return LIT ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (binary_expression (binary_expression (binary_expression IDENT * LIT) + LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (goto_statement goto statement_identifier ;))) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (goto_statement goto statement_identifier ;) })) }) while (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT <= (binary_expression IDENT + LIT))) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_0001ae30(int param_1,int param_2)\n\n{\n  bool bVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  char cVar6;\n  undefined4 uVar5;\n  char *pcVar7;\n  int iVar8;\n  \n  if (param_2 == 0) {\n    uVar5 = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)(PTR_DAT_000354d8 + 23000) = uVar5;\n    *(undefined4 *)(param_1 + 0x14) = uVar5;\n    return 1;\n  }\n  if (*(int *)(param_2 + 0x1c) < *(int *)(param_2 + 0x10)) {\nLAB_0001ae58:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    goto LAB_0001ae60;\n  }\n  if (*(int *)(PTR_settings_00035514 + 0x4c) == 0) {\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }\n  else {\n    if (*(int *)(param_2 + 0x28) != 0) {\n      return 0;\n    }\n    if (*(int *)(param_1 + 0x28) != 0) goto LAB_0001ae58;\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }\n  if (iVar4 <= *(int *)(param_2 + 0x2c)) {\n    return 0;\n  }\n  pcVar7 = *(char **)PTR_s_code_00035548;\n  pcVar2 = pcVar7 + *(int *)(param_2 + 8);\n  if (pcVar2 < pcVar7) {\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;\n    iVar8 = *(int *)(param_1 + 0x18);\n    if (iVar8 <= iVar4 + 1) {\n      *(int *)(param_1 + 0x14) = iVar4;\n      return 1;\n    }\nLAB_0001af0c:\n    if (*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)) goto LAB_0001ae60;\n  }\n  else {\n    do {\n      cVar6 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar7 <= pcVar2);\n    bVar1 = true;\nLAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)) goto LAB_0001ae60;\n    if (bVar1) goto LAB_0001af0c;\n  }\n  if (*(int *)(param_2 + 0x18) < iVar8) {\n    return 0;\n  }\nLAB_0001ae60:\n  *(int *)(param_1 + 0x14) = iVar4;\n  return 1;\n}" (type_identifier "undefined4") (function_declarator "FUN_0001ae30(int param_1,int param_2)" (identifier "FUN_0001ae30") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  bool bVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  char cVar6;\n  undefined4 uVar5;\n  char *pcVar7;\n  int iVar8;\n  \n  if (param_2 == 0) {\n    uVar5 = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)(PTR_DAT_000354d8 + 23000) = uVar5;\n    *(undefined4 *)(param_1 + 0x14) = uVar5;\n    return 1;\n  }\n  if (*(int *)(param_2 + 0x1c) < *(int *)(param_2 + 0x10)) {\nLAB_0001ae58:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    goto LAB_0001ae60;\n  }\n  if (*(int *)(PTR_settings_00035514 + 0x4c) == 0) {\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }\n  else {\n    if (*(int *)(param_2 + 0x28) != 0) {\n      return 0;\n    }\n    if (*(int *)(param_1 + 0x28) != 0) goto LAB_0001ae58;\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }\n  if (iVar4 <= *(int *)(param_2 + 0x2c)) {\n    return 0;\n  }\n  pcVar7 = *(char **)PTR_s_code_00035548;\n  pcVar2 = pcVar7 + *(int *)(param_2 + 8);\n  if (pcVar2 < pcVar7) {\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;\n    iVar8 = *(int *)(param_1 + 0x18);\n    if (iVar8 <= iVar4 + 1) {\n      *(int *)(param_1 + 0x14) = iVar4;\n      return 1;\n    }\nLAB_0001af0c:\n    if (*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)) goto LAB_0001ae60;\n  }\n  else {\n    do {\n      cVar6 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar7 <= pcVar2);\n    bVar1 = true;\nLAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)) goto LAB_0001ae60;\n    if (bVar1) goto LAB_0001af0c;\n  }\n  if (*(int *)(param_2 + 0x18) < iVar8) {\n    return 0;\n  }\nLAB_0001ae60:\n  *(int *)(param_1 + 0x14) = iVar4;\n  return 1;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "char cVar6;" (primitive_type "char") (identifier "cVar6") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (if_statement "if (param_2 == 0) {\n    uVar5 = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)(PTR_DAT_000354d8 + 23000) = uVar5;\n    *(undefined4 *)(param_1 + 0x14) = uVar5;\n    return 1;\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar5 = *(undefined4 *)(param_1 + 0x18);\n    *(undefined4 *)(PTR_DAT_000354d8 + 23000) = uVar5;\n    *(undefined4 *)(param_1 + 0x14) = uVar5;\n    return 1;\n  }" ({ "{") (expression_statement "uVar5 = *(undefined4 *)(param_1 + 0x18);" (assignment_expression "uVar5 = *(undefined4 *)(param_1 + 0x18)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(PTR_DAT_000354d8 + 23000) = uVar5;" (assignment_expression "*(undefined4 *)(PTR_DAT_000354d8 + 23000) = uVar5" (pointer_expression "*(undefined4 *)(PTR_DAT_000354d8 + 23000)" (* "*") (cast_expression "(undefined4 *)(PTR_DAT_000354d8 + 23000)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000354d8 + 23000)" (( "(") (binary_expression "PTR_DAT_000354d8 + 23000" (identifier "PTR_DAT_000354d8") (+ "+") (number_literal "23000")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x14) = uVar5;" (assignment_expression "*(undefined4 *)(param_1 + 0x14) = uVar5" (pointer_expression "*(undefined4 *)(param_1 + 0x14)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_2 + 0x1c) < *(int *)(param_2 + 0x10)) {\nLAB_0001ae58:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    goto LAB_0001ae60;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x1c) < *(int *)(param_2 + 0x10))" (( "(") (binary_expression "*(int *)(param_2 + 0x1c) < *(int *)(param_2 + 0x10)" (pointer_expression "*(int *)(param_2 + 0x1c)" (* "*") (cast_expression "(int *)(param_2 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")")))) (< "<") (pointer_expression "*(int *)(param_2 + 0x10)" (* "*") (cast_expression "(int *)(param_2 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (compound_statement "{\nLAB_0001ae58:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    goto LAB_0001ae60;\n  }" ({ "{") (labeled_statement "LAB_0001ae58:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);" (statement_identifier "LAB_0001ae58") (: ":") (expression_statement "iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);" (assignment_expression "iVar4 = *(int *)(PTR_DAT_000354d8 + 23000)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(PTR_DAT_000354d8 + 23000)" (* "*") (cast_expression "(int *)(PTR_DAT_000354d8 + 23000)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000354d8 + 23000)" (( "(") (binary_expression "PTR_DAT_000354d8 + 23000" (identifier "PTR_DAT_000354d8") (+ "+") (number_literal "23000")) () ")"))))) (; ";"))) (goto_statement "goto LAB_0001ae60;" (goto "goto") (statement_identifier "LAB_0001ae60") (; ";")) (} "}"))) (if_statement "if (*(int *)(PTR_settings_00035514 + 0x4c) == 0) {\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }\n  else {\n    if (*(int *)(param_2 + 0x28) != 0) {\n      return 0;\n    }\n    if (*(int *)(param_1 + 0x28) != 0) goto LAB_0001ae58;\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }" (if "if") (parenthesized_expression "(*(int *)(PTR_settings_00035514 + 0x4c) == 0)" (( "(") (binary_expression "*(int *)(PTR_settings_00035514 + 0x4c) == 0" (pointer_expression "*(int *)(PTR_settings_00035514 + 0x4c)" (* "*") (cast_expression "(int *)(PTR_settings_00035514 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_settings_00035514 + 0x4c)" (( "(") (binary_expression "PTR_settings_00035514 + 0x4c" (identifier "PTR_settings_00035514") (+ "+") (number_literal "0x4c")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }" ({ "{") (expression_statement "iVar4 = *(int *)(param_1 + 0x2c);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x2c)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    if (*(int *)(param_2 + 0x28) != 0) {\n      return 0;\n    }\n    if (*(int *)(param_1 + 0x28) != 0) goto LAB_0001ae58;\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }" (else "else") (compound_statement "{\n    if (*(int *)(param_2 + 0x28) != 0) {\n      return 0;\n    }\n    if (*(int *)(param_1 + 0x28) != 0) goto LAB_0001ae58;\n    iVar4 = *(int *)(param_1 + 0x2c);\n  }" ({ "{") (if_statement "if (*(int *)(param_2 + 0x28) != 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x28) != 0)" (( "(") (binary_expression "*(int *)(param_2 + 0x28) != 0" (pointer_expression "*(int *)(param_2 + 0x28)" (* "*") (cast_expression "(int *)(param_2 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x28)" (( "(") (binary_expression "param_2 + 0x28" (identifier "param_2") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x28) != 0) goto LAB_0001ae58;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x28) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x28) != 0" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001ae58;" (goto "goto") (statement_identifier "LAB_0001ae58") (; ";"))) (expression_statement "iVar4 = *(int *)(param_1 + 0x2c);" (assignment_expression "iVar4 = *(int *)(param_1 + 0x2c)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(param_1 + 0x2c)" (* "*") (cast_expression "(int *)(param_1 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (iVar4 <= *(int *)(param_2 + 0x2c)) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(iVar4 <= *(int *)(param_2 + 0x2c))" (( "(") (binary_expression "iVar4 <= *(int *)(param_2 + 0x2c)" (identifier "iVar4") (<= "<=") (pointer_expression "*(int *)(param_2 + 0x2c)" (* "*") (cast_expression "(int *)(param_2 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2c)" (( "(") (binary_expression "param_2 + 0x2c" (identifier "param_2") (+ "+") (number_literal "0x2c")) () ")"))))) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "pcVar7 = *(char **)PTR_s_code_00035548;" (assignment_expression "pcVar7 = *(char **)PTR_s_code_00035548" (identifier "pcVar7") (= "=") (pointer_expression "*(char **)PTR_s_code_00035548" (* "*") (cast_expression "(char **)PTR_s_code_00035548" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_s_code_00035548")))) (; ";")) (expression_statement "pcVar2 = pcVar7 + *(int *)(param_2 + 8);" (assignment_expression "pcVar2 = pcVar7 + *(int *)(param_2 + 8)" (identifier "pcVar2") (= "=") (binary_expression "pcVar7 + *(int *)(param_2 + 8)" (identifier "pcVar7") (+ "+") (pointer_expression "*(int *)(param_2 + 8)" (* "*") (cast_expression "(int *)(param_2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (if_statement "if (pcVar2 < pcVar7) {\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;\n    iVar8 = *(int *)(param_1 + 0x18);\n    if (iVar8 <= iVar4 + 1) {\n      *(int *)(param_1 + 0x14) = iVar4;\n      return 1;\n    }\nLAB_0001af0c:\n    if (*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)) goto LAB_0001ae60;\n  }\n  else {\n    do {\n      cVar6 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar7 <= pcVar2);\n    bVar1 = true;\nLAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)) goto LAB_0001ae60;\n    if (bVar1) goto LAB_0001af0c;\n  }" (if "if") (parenthesized_expression "(pcVar2 < pcVar7)" (( "(") (binary_expression "pcVar2 < pcVar7" (identifier "pcVar2") (< "<") (identifier "pcVar7")) () ")")) (compound_statement "{\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;\n    iVar8 = *(int *)(param_1 + 0x18);\n    if (iVar8 <= iVar4 + 1) {\n      *(int *)(param_1 + 0x14) = iVar4;\n      return 1;\n    }\nLAB_0001af0c:\n    if (*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)) goto LAB_0001ae60;\n  }" ({ "{") (expression_statement "iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);" (assignment_expression "iVar4 = *(int *)(PTR_DAT_000354d8 + 23000)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(PTR_DAT_000354d8 + 23000)" (* "*") (cast_expression "(int *)(PTR_DAT_000354d8 + 23000)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000354d8 + 23000)" (( "(") (binary_expression "PTR_DAT_000354d8 + 23000" (identifier "PTR_DAT_000354d8") (+ "+") (number_literal "23000")) () ")"))))) (; ";")) (if_statement "if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;" (if "if") (parenthesized_expression "(*(int *)(PTR_settings_00035514 + 0x48) == 0)" (( "(") (binary_expression "*(int *)(PTR_settings_00035514 + 0x48) == 0" (pointer_expression "*(int *)(PTR_settings_00035514 + 0x48)" (* "*") (cast_expression "(int *)(PTR_settings_00035514 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_settings_00035514 + 0x48)" (( "(") (binary_expression "PTR_settings_00035514 + 0x48" (identifier "PTR_settings_00035514") (+ "+") (number_literal "0x48")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001ae60;" (goto "goto") (statement_identifier "LAB_0001ae60") (; ";"))) (expression_statement "iVar8 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar8 = *(int *)(param_1 + 0x18)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (iVar8 <= iVar4 + 1) {\n      *(int *)(param_1 + 0x14) = iVar4;\n      return 1;\n    }" (if "if") (parenthesized_expression "(iVar8 <= iVar4 + 1)" (( "(") (binary_expression "iVar8 <= iVar4 + 1" (identifier "iVar8") (<= "<=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\n      *(int *)(param_1 + 0x14) = iVar4;\n      return 1;\n    }" ({ "{") (expression_statement "*(int *)(param_1 + 0x14) = iVar4;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar4" (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "iVar4")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_0001af0c:\n    if (*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)) goto LAB_0001ae60;" (statement_identifier "LAB_0001af0c") (: ":") (if_statement "if (*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)) goto LAB_0001ae60;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c))" (( "(") (binary_expression "*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (<= "<=") (binary_expression "iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)" (binary_expression "iVar8 * 2 + 1" (binary_expression "iVar8 * 2" (identifier "iVar8") (* "*") (number_literal "2")) (+ "+") (number_literal "1")) (+ "+") (pointer_expression "*(int *)(param_2 + 0x1c)" (* "*") (cast_expression "(int *)(param_2 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")")))))) () ")")) (goto_statement "goto LAB_0001ae60;" (goto "goto") (statement_identifier "LAB_0001ae60") (; ";")))) (} "}")) (else_clause "else {\n    do {\n      cVar6 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar7 <= pcVar2);\n    bVar1 = true;\nLAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)) goto LAB_0001ae60;\n    if (bVar1) goto LAB_0001af0c;\n  }" (else "else") (compound_statement "{\n    do {\n      cVar6 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar7 <= pcVar2);\n    bVar1 = true;\nLAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);\n    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)) goto LAB_0001ae60;\n    if (bVar1) goto LAB_0001af0c;\n  }" ({ "{") (do_statement "do {\n      cVar6 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }\n    } while (pcVar7 <= pcVar2);" (do "do") (compound_statement "{\n      cVar6 = *pcVar2;\n      pcVar3 = pcVar2;\n      if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }\n      pcVar2 = pcVar3 + -1;\n      if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }\n    }" ({ "{") (expression_statement "cVar6 = *pcVar2;" (assignment_expression "cVar6 = *pcVar2" (identifier "cVar6") (= "=") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2"))) (; ";")) (expression_statement "pcVar3 = pcVar2;" (assignment_expression "pcVar3 = pcVar2" (identifier "pcVar3") (= "=") (identifier "pcVar2")) (; ";")) (if_statement "if (cVar6 == '!') {\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }" (if "if") (parenthesized_expression "(cVar6 == '!')" (( "(") (binary_expression "cVar6 == '!'" (identifier "cVar6") (== "==") (char_literal "'!'" (' "'") (character "!") (' "'"))) () ")")) (compound_statement "{\n        cVar6 = pcVar2[-1];\n        pcVar3 = pcVar2 + -1;\n      }" ({ "{") (expression_statement "cVar6 = pcVar2[-1];" (assignment_expression "cVar6 = pcVar2[-1]" (identifier "cVar6") (= "=") (subscript_expression "pcVar2[-1]" (identifier "pcVar2") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "pcVar3 = pcVar2 + -1;" (assignment_expression "pcVar3 = pcVar2 + -1" (identifier "pcVar3") (= "=") (binary_expression "pcVar2 + -1" (identifier "pcVar2") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "pcVar2 = pcVar3 + -1;" (assignment_expression "pcVar2 = pcVar3 + -1" (identifier "pcVar2") (= "=") (binary_expression "pcVar3 + -1" (identifier "pcVar3") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (cVar6 != '(') {\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }" (if "if") (parenthesized_expression "(cVar6 != '(')" (( "(") (binary_expression "cVar6 != '('" (identifier "cVar6") (!= "!=") (char_literal "'('" (' "'") (character "(") (' "'"))) () ")")) (compound_statement "{\n        bVar1 = pcVar3 < pcVar7;\n        goto LAB_0001aee4;\n      }" ({ "{") (expression_statement "bVar1 = pcVar3 < pcVar7;" (assignment_expression "bVar1 = pcVar3 < pcVar7" (identifier "bVar1") (= "=") (binary_expression "pcVar3 < pcVar7" (identifier "pcVar3") (< "<") (identifier "pcVar7"))) (; ";")) (goto_statement "goto LAB_0001aee4;" (goto "goto") (statement_identifier "LAB_0001aee4") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(pcVar7 <= pcVar2)" (( "(") (binary_expression "pcVar7 <= pcVar2" (identifier "pcVar7") (<= "<=") (identifier "pcVar2")) () ")")) (; ";")) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (labeled_statement "LAB_0001aee4:\n    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);" (statement_identifier "LAB_0001aee4") (: ":") (expression_statement "iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);" (assignment_expression "iVar4 = *(int *)(PTR_DAT_000354d8 + 23000)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(PTR_DAT_000354d8 + 23000)" (* "*") (cast_expression "(int *)(PTR_DAT_000354d8 + 23000)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000354d8 + 23000)" (( "(") (binary_expression "PTR_DAT_000354d8 + 23000" (identifier "PTR_DAT_000354d8") (+ "+") (number_literal "23000")) () ")"))))) (; ";"))) (if_statement "if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)) goto LAB_0001ae60;" (if "if") (parenthesized_expression "((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1))" (( "(") (binary_expression "(*(int *)(PTR_settings_00035514 + 0x48) == 0) ||\n       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)" (parenthesized_expression "(*(int *)(PTR_settings_00035514 + 0x48) == 0)" (( "(") (binary_expression "*(int *)(PTR_settings_00035514 + 0x48) == 0" (pointer_expression "*(int *)(PTR_settings_00035514 + 0x48)" (* "*") (cast_expression "(int *)(PTR_settings_00035514 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_settings_00035514 + 0x48)" (( "(") (binary_expression "PTR_settings_00035514 + 0x48" (identifier "PTR_settings_00035514") (+ "+") (number_literal "0x48")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)" (( "(") (comma_expression "iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1" (assignment_expression "iVar8 = *(int *)(param_1 + 0x18)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (, ",") (binary_expression "iVar8 <= iVar4 + 1" (identifier "iVar8") (<= "<=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1")))) () ")"))) () ")")) (goto_statement "goto LAB_0001ae60;" (goto "goto") (statement_identifier "LAB_0001ae60") (; ";"))) (if_statement "if (bVar1) goto LAB_0001af0c;" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (goto_statement "goto LAB_0001af0c;" (goto "goto") (statement_identifier "LAB_0001af0c") (; ";"))) (} "}")))) (if_statement "if (*(int *)(param_2 + 0x18) < iVar8) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x18) < iVar8)" (( "(") (binary_expression "*(int *)(param_2 + 0x18) < iVar8" (pointer_expression "*(int *)(param_2 + 0x18)" (* "*") (cast_expression "(int *)(param_2 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")")))) (< "<") (identifier "iVar8")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (labeled_statement "LAB_0001ae60:\n  *(int *)(param_1 + 0x14) = iVar4;" (statement_identifier "LAB_0001ae60") (: ":") (expression_statement "*(int *)(param_1 + 0x14) = iVar4;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar4" (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "iVar4")) (; ";"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

type_1 function_1(type_2 *b1,type_2 *var_1)

{
  bool bVar1;
  char *var_6;
  char *var_9;
  int var_4;
  char var_8;
  char *var_5;
  int var_7;
  
  if (var_1 == (type_2 *)0x0) {
    var_4 = b1->level;
    *(int *)(var_2 + 23000) = var_4;
    b1->first_level = var_4;
    return '\x01';
  }
  if (var_1->col < var_1->target_col) {
LAB_0001ae58:
    var_4 = *(int *)(var_2 + 23000);
    goto LAB_0001ae60;
  }
  if (*(int *)(var_3 + 0x4c) == 0) {
    var_4 = b1->priority;
  }
  else {
    if (var_1->priority_newline != 0) {
      return '\0';
    }
    if (b1->priority_newline != 0) goto LAB_0001ae58;
    var_4 = b1->priority;
  }
  if (var_4 <= var_1->priority) {
    return '\0';
  }
  var_5 = *(char **)PTR_s_code_00035548;
  var_6 = var_5 + var_1->offset;
  if (var_6 < var_5) {
    var_4 = *(int *)(var_2 + 23000);
    if (*(int *)(var_3 + 0x48) == 0) goto LAB_0001ae60;
    var_7 = b1->level;
    if (var_7 <= var_4 + 1) {
      b1->first_level = var_4;
      return '\x01';
    }
LAB_0001af0c:
    if (b1->target_col <= var_7 * 2 + 1 + var_1->col) goto LAB_0001ae60;
  }
  else {
    do {
      var_8 = *var_6;
      var_9 = var_6;
      if (var_8 == '!') {
        var_8 = var_6[-1];
        var_9 = var_6 + -1;
      }
      var_6 = var_9 + -1;
      if (var_8 != '(') {
        bVar1 = var_9 < var_5;
        goto LAB_0001aee4;
      }
    } while (var_5 <= var_6);
    bVar1 = true;
LAB_0001aee4:
    var_4 = *(int *)(var_2 + 23000);
    if ((*(int *)(var_3 + 0x48) == 0) || (var_7 = b1->level, var_7 <= var_4 + 1))
    goto LAB_0001ae60;
    if (bVar1) goto LAB_0001af0c;
  }
  if (var_1->level < var_7) {
    return '\0';
  }
LAB_0001ae60:
  b1->first_level = var_4;
  return '\x01';
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (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))))) 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))))))) consequence: (compound_statement (labeled_statement label: (statement_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)))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (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))))) right: (number_literal))) consequence: (compound_statement (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)))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (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))))) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (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))))) right: (number_literal))) consequence: (goto_statement label: (statement_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)))))))))) (if_statement condition: (parenthesized_expression (binary_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))))))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_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)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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))))) right: (number_literal))) consequence: (goto_statement label: (statement_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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (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))))) right: (identifier))) (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (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))))) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)) 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)))))))) consequence: (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (goto_statement label: (statement_identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (true))) (labeled_statement label: (statement_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)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (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))))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (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)))))) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (goto_statement label: (statement_identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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))))) right: (identifier))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (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))))) right: (identifier)))) (return_statement (number_literal)))))

undefined4 MASKED(int param_1,int param_2)

{
  bool bVar1;
  char *pcVar2;
  char *pcVar3;
  int iVar4;
  char cVar6;
  undefined4 uVar5;
  char *pcVar7;
  int iVar8;
  
  if (param_2 == 0) {
    uVar5 = *(undefined4 *)(param_1 + 0x18);
    *(undefined4 *)(PTR_DAT_000354d8 + 23000) = uVar5;
    *(undefined4 *)(param_1 + 0x14) = uVar5;
    return 1;
  }
  if (*(int *)(param_2 + 0x1c) < *(int *)(param_2 + 0x10)) {
LAB_0001ae58:
    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);
    goto LAB_0001ae60;
  }
  if (*(int *)(PTR_settings_00035514 + 0x4c) == 0) {
    iVar4 = *(int *)(param_1 + 0x2c);
  }
  else {
    if (*(int *)(param_2 + 0x28) != 0) {
      return 0;
    }
    if (*(int *)(param_1 + 0x28) != 0) goto LAB_0001ae58;
    iVar4 = *(int *)(param_1 + 0x2c);
  }
  if (iVar4 <= *(int *)(param_2 + 0x2c)) {
    return 0;
  }
  pcVar7 = *(char **)PTR_s_code_00035548;
  pcVar2 = pcVar7 + *(int *)(param_2 + 8);
  if (pcVar2 < pcVar7) {
    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);
    if (*(int *)(PTR_settings_00035514 + 0x48) == 0) goto LAB_0001ae60;
    iVar8 = *(int *)(param_1 + 0x18);
    if (iVar8 <= iVar4 + 1) {
      *(int *)(param_1 + 0x14) = iVar4;
      return 1;
    }
LAB_0001af0c:
    if (*(int *)(param_1 + 0x10) <= iVar8 * 2 + 1 + *(int *)(param_2 + 0x1c)) goto LAB_0001ae60;
  }
  else {
    do {
      cVar6 = *pcVar2;
      pcVar3 = pcVar2;
      if (cVar6 == '!') {
        cVar6 = pcVar2[-1];
        pcVar3 = pcVar2 + -1;
      }
      pcVar2 = pcVar3 + -1;
      if (cVar6 != '(') {
        bVar1 = pcVar3 < pcVar7;
        goto LAB_0001aee4;
      }
    } while (pcVar7 <= pcVar2);
    bVar1 = true;
LAB_0001aee4:
    iVar4 = *(int *)(PTR_DAT_000354d8 + 23000);
    if ((*(int *)(PTR_settings_00035514 + 0x48) == 0) ||
       (iVar8 = *(int *)(param_1 + 0x18), iVar8 <= iVar4 + 1)) goto LAB_0001ae60;
    if (bVar1) goto LAB_0001af0c;
  }
  if (*(int *)(param_2 + 0x18) < iVar8) {
    return 0;
  }
LAB_0001ae60:
  *(int *)(param_1 + 0x14) = iVar4;
  return 1;
}

