
int is_hilited(POSITION pos,POSITION epos,int nohide,int *p_matches)

{
  int iVar1;
  hilite_node *phVar2;
  int iVar3;
  int in_a2;
  uint in_a3;
  undefined1 *puVar4;
  undefined4 in_stack_fffffff4;
  
  puVar4 = &_gp;
  if (pos._4_4_ != (undefined4 *)0x0) {
    *pos._4_4_ = 0;
  }
  if (*(int *)PTR_status_col_0004f080 == 0) {
    iVar3 = *(int *)PTR_start_attnpos_0004f108;
    if (iVar3 == -1) {
      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;
      iVar1 = *(int *)PTR_end_attnpos_0004f10c;
    }
    else {
      iVar1 = *(int *)PTR_end_attnpos_0004f10c;
    }
    if ((iVar1 <= nohide) &&
       ((iVar1 != nohide || (*(int **)(PTR_end_attnpos_0004f10c + 4) <= p_matches))))
    goto LAB_000325cc;
    if ((in_a2 == -1) && (in_a3 == 0xffffffff)) {
      return 1;
    }
    if (iVar3 < in_a2) {
      return 1;
    }
    if ((in_a2 == iVar3) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < in_a3)) {
      return 1;
    }
    phVar2 = hlist_find((hilite_tree *)(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8),
                        CONCAT44(&_gp,in_stack_fffffff4));
    if (phVar2 == (hilite_node *)0x0) {
      return 0;
    }
  }
  else {
LAB_000325cc:
    phVar2 = hlist_find((hilite_tree *)(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8),
                        CONCAT44(&_gp,in_stack_fffffff4));
    if (phVar2 == (hilite_node *)0x0) {
      return 0;
    }
    if ((in_a2 == -1) && (in_a3 == 0xffffffff)) goto LAB_00032688;
  }
  iVar3 = *(int *)&(phVar2->r).hl_startpos;
  if (in_a2 <= iVar3) {
    if (iVar3 != in_a2) {
      return 0;
    }
    if (in_a3 <= (uint)(phVar2->r).hl_startpos) {
      return 0;
    }
  }
LAB_00032688:
  if (pos._4_4_ != (undefined4 *)0x0) {
    *pos._4_4_ = 1;
  }
  if (**(int **)(puVar4 + -0x7e8c) == 0) {
    return 0;
  }
  if (pos._0_4_ != 0) {
    return 1;
  }
  return (uint)(*(int *)(*(int *)(puVar4 + -0x7fd8) + 0x32e0) == 0);
}



bool is_hilited(int param_1,uint param_2,int param_3,uint param_4,int param_5,undefined4 *param_6)

{
  int iVar1;
  int iVar2;
  
  if (param_6 != (undefined4 *)0x0) {
    *param_6 = 0;
  }
  if (*(int *)PTR_status_col_0004f080 == 0) {
    iVar2 = *(int *)PTR_start_attnpos_0004f108;
    if (iVar2 == -1) {
      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;
      iVar1 = *(int *)PTR_end_attnpos_0004f10c;
    }
    else {
      iVar1 = *(int *)PTR_end_attnpos_0004f10c;
    }
    if ((iVar1 <= param_1) &&
       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))))
    goto LAB_000325cc;
    if ((param_3 == -1) && (param_4 == 0xffffffff)) {
      return true;
    }
    if (iVar2 < param_3) {
      return true;
    }
    if ((param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)) {
      return true;
    }
    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);
    if (iVar2 == 0) {
      return false;
    }
  }
  else {
LAB_000325cc:
    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);
    if (iVar2 == 0) {
      return false;
    }
    if ((param_3 == -1) && (param_4 == 0xffffffff)) goto LAB_00032688;
  }
  if (param_3 <= *(int *)(iVar2 + 0x18)) {
    if (*(int *)(iVar2 + 0x18) != param_3) {
      return false;
    }
    if (param_4 <= *(uint *)(iVar2 + 0x1c)) {
      return false;
    }
  }
LAB_00032688:
  if (param_6 != (undefined4 *)0x0) {
    *param_6 = 1;
  }
  if (*(int *)PTR_hilite_search_0004ed44 == 0) {
    return false;
  }
  if (param_5 != 0) {
    return true;
  }
  return *(int *)(PTR_DAT_0004ebf8 + 0x32e0) == 0;
}


lui gp,0x2
addiu gp,gp,0x466c
addu gp,gp,t9
addiu sp,sp,-0x20
or t6,a2,zero
lw t5,0x34(sp)
sw gp,0x10(sp)
sw ra,0x1c(sp)
beq t5,zero,0x00032590
_or t7,a3,zero
sw zero,0x0(t5)
lw v0,-0x7b50(gp)
lw v0,0x0(v0)
bne v0,zero,0x000325cc
_lw v0,-0x7ac8(gp)
li a2,-0x1
lw v1,0x0(v0)
beq v1,a2,0x00032620
_lw a3,0x4(v0)
lw a2,-0x7ac4(gp)
lw v0,0x0(a2)
slt t0,a0,v0
bne t0,zero,0x00032638
_nop
beq v0,a0,0x000326d8
_nop
or a2,a0,zero
lw a0,-0x7fd8(gp)
lw t9,-0x79a8(gp)
or a3,a1,zero
bal 0x00031a5c
_addiu a0,a0,0x32b8
beq v0,zero,0x00032610
_lw gp,0x10(sp)
li v1,-0x1
beq t6,v1,0x00032680
_nop
lw v1,0x18(v0)
slt a0,v1,t6
bne a0,zero,0x00032688
_nop
beq v1,t6,0x000326f0
_nop
lw ra,0x1c(sp)
or v0,zero,zero
jr ra
_addiu sp,sp,0x20
beq a3,v1,0x000325cc
_lw a2,-0x7ac4(gp)
lw v0,0x0(a2)
slt t0,a0,v0
beq t0,zero,0x000325c4
_nop
li v0,-0x1
beq t6,v0,0x00032708
_nop
slt v0,v1,t6
bne v0,zero,0x000326cc
_li v0,0x1
beq t6,v1,0x000326c0
_sltu a3,a3,t7
or a2,a0,zero
lw a0,-0x7fd8(gp)
lw t9,-0x79a8(gp)
or a3,a1,zero
bal 0x00031a5c
_addiu a0,a0,0x32b8
bne v0,zero,0x000325f8
_lw gp,0x10(sp)
b 0x00032614
_lw ra,0x1c(sp)
bne t7,t6,0x000325f8
_nop
beq t5,zero,0x00032694
_li v0,0x1
sw v0,0x0(t5)
lw v0,-0x7e8c(gp)
lw v0,0x0(v0)
beq v0,zero,0x00032610
_lw v0,0x30(sp)
bne v0,zero,0x000326c8
_lw v0,-0x7fd8(gp)
lw ra,0x1c(sp)
addiu sp,sp,0x20
lw v0,0x32e0(v0)
jr ra
_sltiu v0,v0,0x1
beq a3,zero,0x0003265c
_or a2,a0,zero
li v0,0x1
lw ra,0x1c(sp)
jr ra
_addiu sp,sp,0x20
lw v0,0x4(a2)
sltu v0,a1,v0
beq v0,zero,0x000325cc
_li v0,-0x1
b 0x0003263c
_nop
lw v0,0x1c(v0)
sltu t7,v0,t7
bne t7,zero,0x00032688
_lw ra,0x1c(sp)
b 0x00032618
_or v0,zero,zero
bne t7,t6,0x00032644
_li v0,0x1
b 0x000326d0
_lw ra,0x1c(sp)
(translation_unit "bool is_hilited(int param_1,uint param_2,int param_3,uint param_4,int param_5,undefined4 *param_6)\n\n{\n  int iVar1;\n  int iVar2;\n  \n  if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 0;\n  }\n  if (*(int *)PTR_status_col_0004f080 == 0) {\n    iVar2 = *(int *)PTR_start_attnpos_0004f108;\n    if (iVar2 == -1) {\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    if ((iVar1 <= param_1) &&\n       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))))\n    goto LAB_000325cc;\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) {\n      return true;\n    }\n    if (iVar2 < param_3) {\n      return true;\n    }\n    if ((param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)) {\n      return true;\n    }\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n  }\n  else {\nLAB_000325cc:\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) goto LAB_00032688;\n  }\n  if (param_3 <= *(int *)(iVar2 + 0x18)) {\n    if (*(int *)(iVar2 + 0x18) != param_3) {\n      return false;\n    }\n    if (param_4 <= *(uint *)(iVar2 + 0x1c)) {\n      return false;\n    }\n  }\nLAB_00032688:\n  if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 1;\n  }\n  if (*(int *)PTR_hilite_search_0004ed44 == 0) {\n    return false;\n  }\n  if (param_5 != 0) {\n    return true;\n  }\n  return *(int *)(PTR_DAT_0004ebf8 + 0x32e0) == 0;\n}\n\n" (function_definition "bool is_hilited(int param_1,uint param_2,int param_3,uint param_4,int param_5,undefined4 *param_6)\n\n{\n  int iVar1;\n  int iVar2;\n  \n  if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 0;\n  }\n  if (*(int *)PTR_status_col_0004f080 == 0) {\n    iVar2 = *(int *)PTR_start_attnpos_0004f108;\n    if (iVar2 == -1) {\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    if ((iVar1 <= param_1) &&\n       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))))\n    goto LAB_000325cc;\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) {\n      return true;\n    }\n    if (iVar2 < param_3) {\n      return true;\n    }\n    if ((param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)) {\n      return true;\n    }\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n  }\n  else {\nLAB_000325cc:\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) goto LAB_00032688;\n  }\n  if (param_3 <= *(int *)(iVar2 + 0x18)) {\n    if (*(int *)(iVar2 + 0x18) != param_3) {\n      return false;\n    }\n    if (param_4 <= *(uint *)(iVar2 + 0x1c)) {\n      return false;\n    }\n  }\nLAB_00032688:\n  if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 1;\n  }\n  if (*(int *)PTR_hilite_search_0004ed44 == 0) {\n    return false;\n  }\n  if (param_5 != 0) {\n    return true;\n  }\n  return *(int *)(PTR_DAT_0004ebf8 + 0x32e0) == 0;\n}" primitive_type (function_declarator "is_hilited(int param_1,uint param_2,int param_3,uint param_4,int param_5,undefined4 *param_6)" identifier (parameter_list "(int param_1,uint param_2,int param_3,uint param_4,int param_5,undefined4 *param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "undefined4 *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  \n  if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 0;\n  }\n  if (*(int *)PTR_status_col_0004f080 == 0) {\n    iVar2 = *(int *)PTR_start_attnpos_0004f108;\n    if (iVar2 == -1) {\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    if ((iVar1 <= param_1) &&\n       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))))\n    goto LAB_000325cc;\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) {\n      return true;\n    }\n    if (iVar2 < param_3) {\n      return true;\n    }\n    if ((param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)) {\n      return true;\n    }\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n  }\n  else {\nLAB_000325cc:\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) goto LAB_00032688;\n  }\n  if (param_3 <= *(int *)(iVar2 + 0x18)) {\n    if (*(int *)(iVar2 + 0x18) != param_3) {\n      return false;\n    }\n    if (param_4 <= *(uint *)(iVar2 + 0x1c)) {\n      return false;\n    }\n  }\nLAB_00032688:\n  if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 1;\n  }\n  if (*(int *)PTR_hilite_search_0004ed44 == 0) {\n    return false;\n  }\n  if (param_5 != 0) {\n    return true;\n  }\n  return *(int *)(PTR_DAT_0004ebf8 + 0x32e0) == 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (if_statement "if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 0;\n  }" if (parenthesized_expression "(param_6 != (undefined4 *)0x0)" ( (binary_expression "param_6 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_6 = 0;\n  }" { (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" * identifier) = number_literal) ;) })) (if_statement "if (*(int *)PTR_status_col_0004f080 == 0) {\n    iVar2 = *(int *)PTR_start_attnpos_0004f108;\n    if (iVar2 == -1) {\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    if ((iVar1 <= param_1) &&\n       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))))\n    goto LAB_000325cc;\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) {\n      return true;\n    }\n    if (iVar2 < param_3) {\n      return true;\n    }\n    if ((param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)) {\n      return true;\n    }\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n  }\n  else {\nLAB_000325cc:\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) goto LAB_00032688;\n  }" if (parenthesized_expression "(*(int *)PTR_status_col_0004f080 == 0)" ( (binary_expression "*(int *)PTR_status_col_0004f080 == 0" (pointer_expression "*(int *)PTR_status_col_0004f080" * (cast_expression "(int *)PTR_status_col_0004f080" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n    iVar2 = *(int *)PTR_start_attnpos_0004f108;\n    if (iVar2 == -1) {\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    if ((iVar1 <= param_1) &&\n       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))))\n    goto LAB_000325cc;\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) {\n      return true;\n    }\n    if (iVar2 < param_3) {\n      return true;\n    }\n    if ((param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)) {\n      return true;\n    }\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n  }" { (expression_statement "iVar2 = *(int *)PTR_start_attnpos_0004f108;" (assignment_expression "iVar2 = *(int *)PTR_start_attnpos_0004f108" identifier = (pointer_expression "*(int *)PTR_start_attnpos_0004f108" * (cast_expression "(int *)PTR_start_attnpos_0004f108" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar2 == -1) {\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }" if (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) (compound_statement "{\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }" { (if_statement "if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;" if (parenthesized_expression "(*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff)" ( (binary_expression "*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff" (pointer_expression "*(uint *)(PTR_start_attnpos_0004f108 + 4)" * (cast_expression "(uint *)(PTR_start_attnpos_0004f108 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_start_attnpos_0004f108 + 4)" ( (binary_expression "PTR_start_attnpos_0004f108 + 4" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000325cc;" goto statement_identifier ;)) (expression_statement "iVar1 = *(int *)PTR_end_attnpos_0004f10c;" (assignment_expression "iVar1 = *(int *)PTR_end_attnpos_0004f10c" identifier = (pointer_expression "*(int *)PTR_end_attnpos_0004f10c" * (cast_expression "(int *)PTR_end_attnpos_0004f10c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }) (else_clause "else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }" else (compound_statement "{\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }" { (expression_statement "iVar1 = *(int *)PTR_end_attnpos_0004f10c;" (assignment_expression "iVar1 = *(int *)PTR_end_attnpos_0004f10c" identifier = (pointer_expression "*(int *)PTR_end_attnpos_0004f10c" * (cast_expression "(int *)PTR_end_attnpos_0004f10c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }))) (if_statement "if ((iVar1 <= param_1) &&\n       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))))\n    goto LAB_000325cc;" if (parenthesized_expression "((iVar1 <= param_1) &&\n       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))))" ( (binary_expression "(iVar1 <= param_1) &&\n       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2)))" (parenthesized_expression "(iVar1 <= param_1)" ( (binary_expression "iVar1 <= param_1" identifier <= identifier) )) && (parenthesized_expression "((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2)))" ( (parenthesized_expression "(iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))" ( (binary_expression "iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2)" (binary_expression "iVar1 != param_1" identifier != identifier) || (parenthesized_expression "(*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2)" ( (binary_expression "*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2" (pointer_expression "*(uint *)(PTR_end_attnpos_0004f10c + 4)" * (cast_expression "(uint *)(PTR_end_attnpos_0004f10c + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_end_attnpos_0004f10c + 4)" ( (binary_expression "PTR_end_attnpos_0004f10c + 4" identifier + number_literal) )))) <= identifier) ))) )) ))) )) (goto_statement "goto LAB_000325cc;" goto statement_identifier ;)) (if_statement "if ((param_3 == -1) && (param_4 == 0xffffffff)) {\n      return true;\n    }" if (parenthesized_expression "((param_3 == -1) && (param_4 == 0xffffffff))" ( (binary_expression "(param_3 == -1) && (param_4 == 0xffffffff)" (parenthesized_expression "(param_3 == -1)" ( (binary_expression "param_3 == -1" identifier == number_literal) )) && (parenthesized_expression "(param_4 == 0xffffffff)" ( (binary_expression "param_4 == 0xffffffff" identifier == number_literal) ))) )) (compound_statement "{\n      return true;\n    }" { (return_statement "return true;" return true ;) })) (if_statement "if (iVar2 < param_3) {\n      return true;\n    }" if (parenthesized_expression "(iVar2 < param_3)" ( (binary_expression "iVar2 < param_3" identifier < identifier) )) (compound_statement "{\n      return true;\n    }" { (return_statement "return true;" return true ;) })) (if_statement "if ((param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)) {\n      return true;\n    }" if (parenthesized_expression "((param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4))" ( (binary_expression "(param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)" (parenthesized_expression "(param_3 == iVar2)" ( (binary_expression "param_3 == iVar2" identifier == identifier) )) && (parenthesized_expression "(*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)" ( (binary_expression "*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4" (pointer_expression "*(uint *)(PTR_start_attnpos_0004f108 + 4)" * (cast_expression "(uint *)(PTR_start_attnpos_0004f108 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_start_attnpos_0004f108 + 4)" ( (binary_expression "PTR_start_attnpos_0004f108 + 4" identifier + number_literal) )))) < identifier) ))) )) (compound_statement "{\n      return true;\n    }" { (return_statement "return true;" return true ;) })) (expression_statement "iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);" (assignment_expression "iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2)" identifier = (call_expression "hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2)" identifier (argument_list "(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2)" ( (binary_expression "PTR_DAT_0004ebf8 + 0x32b8" identifier + number_literal) , identifier , identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n      return false;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) }) (else_clause "else {\nLAB_000325cc:\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) goto LAB_00032688;\n  }" else (compound_statement "{\nLAB_000325cc:\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) goto LAB_00032688;\n  }" { (labeled_statement "LAB_000325cc:\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);" statement_identifier : (expression_statement "iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);" (assignment_expression "iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2)" identifier = (call_expression "hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2)" identifier (argument_list "(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2)" ( (binary_expression "PTR_DAT_0004ebf8 + 0x32b8" identifier + number_literal) , identifier , identifier , identifier )))) ;)) (if_statement "if (iVar2 == 0) {\n      return false;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (if_statement "if ((param_3 == -1) && (param_4 == 0xffffffff)) goto LAB_00032688;" if (parenthesized_expression "((param_3 == -1) && (param_4 == 0xffffffff))" ( (binary_expression "(param_3 == -1) && (param_4 == 0xffffffff)" (parenthesized_expression "(param_3 == -1)" ( (binary_expression "param_3 == -1" identifier == number_literal) )) && (parenthesized_expression "(param_4 == 0xffffffff)" ( (binary_expression "param_4 == 0xffffffff" identifier == number_literal) ))) )) (goto_statement "goto LAB_00032688;" goto statement_identifier ;)) }))) (if_statement "if (param_3 <= *(int *)(iVar2 + 0x18)) {\n    if (*(int *)(iVar2 + 0x18) != param_3) {\n      return false;\n    }\n    if (param_4 <= *(uint *)(iVar2 + 0x1c)) {\n      return false;\n    }\n  }" if (parenthesized_expression "(param_3 <= *(int *)(iVar2 + 0x18))" ( (binary_expression "param_3 <= *(int *)(iVar2 + 0x18)" identifier <= (pointer_expression "*(int *)(iVar2 + 0x18)" * (cast_expression "(int *)(iVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n    if (*(int *)(iVar2 + 0x18) != param_3) {\n      return false;\n    }\n    if (param_4 <= *(uint *)(iVar2 + 0x1c)) {\n      return false;\n    }\n  }" { (if_statement "if (*(int *)(iVar2 + 0x18) != param_3) {\n      return false;\n    }" if (parenthesized_expression "(*(int *)(iVar2 + 0x18) != param_3)" ( (binary_expression "*(int *)(iVar2 + 0x18) != param_3" (pointer_expression "*(int *)(iVar2 + 0x18)" * (cast_expression "(int *)(iVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (if_statement "if (param_4 <= *(uint *)(iVar2 + 0x1c)) {\n      return false;\n    }" if (parenthesized_expression "(param_4 <= *(uint *)(iVar2 + 0x1c))" ( (binary_expression "param_4 <= *(uint *)(iVar2 + 0x1c)" identifier <= (pointer_expression "*(uint *)(iVar2 + 0x1c)" * (cast_expression "(uint *)(iVar2 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) ))))) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) })) (labeled_statement "LAB_00032688:\n  if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 1;\n  }" statement_identifier : (if_statement "if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 1;\n  }" if (parenthesized_expression "(param_6 != (undefined4 *)0x0)" ( (binary_expression "param_6 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_6 = 1;\n  }" { (expression_statement "*param_6 = 1;" (assignment_expression "*param_6 = 1" (pointer_expression "*param_6" * identifier) = number_literal) ;) }))) (if_statement "if (*(int *)PTR_hilite_search_0004ed44 == 0) {\n    return false;\n  }" if (parenthesized_expression "(*(int *)PTR_hilite_search_0004ed44 == 0)" ( (binary_expression "*(int *)PTR_hilite_search_0004ed44 == 0" (pointer_expression "*(int *)PTR_hilite_search_0004ed44" * (cast_expression "(int *)PTR_hilite_search_0004ed44" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (if_statement "if (param_5 != 0) {\n    return true;\n  }" if (parenthesized_expression "(param_5 != 0)" ( (binary_expression "param_5 != 0" identifier != number_literal) )) (compound_statement "{\n    return true;\n  }" { (return_statement "return true;" return true ;) })) (return_statement "return *(int *)(PTR_DAT_0004ebf8 + 0x32e0) == 0;" return (binary_expression "*(int *)(PTR_DAT_0004ebf8 + 0x32e0) == 0" (pointer_expression "*(int *)(PTR_DAT_0004ebf8 + 0x32e0)" * (cast_expression "(int *)(PTR_DAT_0004ebf8 + 0x32e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0004ebf8 + 0x32e0)" ( (binary_expression "PTR_DAT_0004ebf8 + 0x32e0" identifier + number_literal) )))) == number_literal) ;) })))
(translation_unit "int is_hilited(POSITION pos,POSITION epos,int nohide,int *p_matches)\n\n{\n  int iVar1;\n  hilite_node *phVar2;\n  int iVar3;\n  int in_a2;\n  uint in_a3;\n  undefined1 *puVar4;\n  undefined4 in_stack_fffffff4;\n  \n  puVar4 = &_gp;\n  if (pos._4_4_ != (undefined4 *)0x0) {\n    *pos._4_4_ = 0;\n  }\n  if (*(int *)PTR_status_col_0004f080 == 0) {\n    iVar3 = *(int *)PTR_start_attnpos_0004f108;\n    if (iVar3 == -1) {\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    if ((iVar1 <= nohide) &&\n       ((iVar1 != nohide || (*(int **)(PTR_end_attnpos_0004f10c + 4) <= p_matches))))\n    goto LAB_000325cc;\n    if ((in_a2 == -1) && (in_a3 == 0xffffffff)) {\n      return 1;\n    }\n    if (iVar3 < in_a2) {\n      return 1;\n    }\n    if ((in_a2 == iVar3) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < in_a3)) {\n      return 1;\n    }\n    phVar2 = hlist_find((hilite_tree *)(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8),\n                        CONCAT44(&_gp,in_stack_fffffff4));\n    if (phVar2 == (hilite_node *)0x0) {\n      return 0;\n    }\n  }\n  else {\nLAB_000325cc:\n    phVar2 = hlist_find((hilite_tree *)(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8),\n                        CONCAT44(&_gp,in_stack_fffffff4));\n    if (phVar2 == (hilite_node *)0x0) {\n      return 0;\n    }\n    if ((in_a2 == -1) && (in_a3 == 0xffffffff)) goto LAB_00032688;\n  }\n  iVar3 = *(int *)&(phVar2->r).hl_startpos;\n  if (in_a2 <= iVar3) {\n    if (iVar3 != in_a2) {\n      return 0;\n    }\n    if (in_a3 <= (uint)(phVar2->r).hl_startpos) {\n      return 0;\n    }\n  }\nLAB_00032688:\n  if (pos._4_4_ != (undefined4 *)0x0) {\n    *pos._4_4_ = 1;\n  }\n  if (**(int **)(puVar4 + -0x7e8c) == 0) {\n    return 0;\n  }\n  if (pos._0_4_ != 0) {\n    return 1;\n  }\n  return (uint)(*(int *)(*(int *)(puVar4 + -0x7fd8) + 0x32e0) == 0);\n}\n\n" (function_definition "int is_hilited(POSITION pos,POSITION epos,int nohide,int *p_matches)\n\n{\n  int iVar1;\n  hilite_node *phVar2;\n  int iVar3;\n  int in_a2;\n  uint in_a3;\n  undefined1 *puVar4;\n  undefined4 in_stack_fffffff4;\n  \n  puVar4 = &_gp;\n  if (pos._4_4_ != (undefined4 *)0x0) {\n    *pos._4_4_ = 0;\n  }\n  if (*(int *)PTR_status_col_0004f080 == 0) {\n    iVar3 = *(int *)PTR_start_attnpos_0004f108;\n    if (iVar3 == -1) {\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    if ((iVar1 <= nohide) &&\n       ((iVar1 != nohide || (*(int **)(PTR_end_attnpos_0004f10c + 4) <= p_matches))))\n    goto LAB_000325cc;\n    if ((in_a2 == -1) && (in_a3 == 0xffffffff)) {\n      return 1;\n    }\n    if (iVar3 < in_a2) {\n      return 1;\n    }\n    if ((in_a2 == iVar3) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < in_a3)) {\n      return 1;\n    }\n    phVar2 = hlist_find((hilite_tree *)(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8),\n                        CONCAT44(&_gp,in_stack_fffffff4));\n    if (phVar2 == (hilite_node *)0x0) {\n      return 0;\n    }\n  }\n  else {\nLAB_000325cc:\n    phVar2 = hlist_find((hilite_tree *)(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8),\n                        CONCAT44(&_gp,in_stack_fffffff4));\n    if (phVar2 == (hilite_node *)0x0) {\n      return 0;\n    }\n    if ((in_a2 == -1) && (in_a3 == 0xffffffff)) goto LAB_00032688;\n  }\n  iVar3 = *(int *)&(phVar2->r).hl_startpos;\n  if (in_a2 <= iVar3) {\n    if (iVar3 != in_a2) {\n      return 0;\n    }\n    if (in_a3 <= (uint)(phVar2->r).hl_startpos) {\n      return 0;\n    }\n  }\nLAB_00032688:\n  if (pos._4_4_ != (undefined4 *)0x0) {\n    *pos._4_4_ = 1;\n  }\n  if (**(int **)(puVar4 + -0x7e8c) == 0) {\n    return 0;\n  }\n  if (pos._0_4_ != 0) {\n    return 1;\n  }\n  return (uint)(*(int *)(*(int *)(puVar4 + -0x7fd8) + 0x32e0) == 0);\n}" primitive_type (function_declarator "is_hilited(POSITION pos,POSITION epos,int nohide,int *p_matches)" identifier (parameter_list "(POSITION pos,POSITION epos,int nohide,int *p_matches)" ( (parameter_declaration "POSITION pos" type_identifier identifier) , (parameter_declaration "POSITION epos" type_identifier identifier) , (parameter_declaration "int nohide" primitive_type identifier) , (parameter_declaration "int *p_matches" primitive_type (pointer_declarator "*p_matches" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  hilite_node *phVar2;\n  int iVar3;\n  int in_a2;\n  uint in_a3;\n  undefined1 *puVar4;\n  undefined4 in_stack_fffffff4;\n  \n  puVar4 = &_gp;\n  if (pos._4_4_ != (undefined4 *)0x0) {\n    *pos._4_4_ = 0;\n  }\n  if (*(int *)PTR_status_col_0004f080 == 0) {\n    iVar3 = *(int *)PTR_start_attnpos_0004f108;\n    if (iVar3 == -1) {\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    if ((iVar1 <= nohide) &&\n       ((iVar1 != nohide || (*(int **)(PTR_end_attnpos_0004f10c + 4) <= p_matches))))\n    goto LAB_000325cc;\n    if ((in_a2 == -1) && (in_a3 == 0xffffffff)) {\n      return 1;\n    }\n    if (iVar3 < in_a2) {\n      return 1;\n    }\n    if ((in_a2 == iVar3) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < in_a3)) {\n      return 1;\n    }\n    phVar2 = hlist_find((hilite_tree *)(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8),\n                        CONCAT44(&_gp,in_stack_fffffff4));\n    if (phVar2 == (hilite_node *)0x0) {\n      return 0;\n    }\n  }\n  else {\nLAB_000325cc:\n    phVar2 = hlist_find((hilite_tree *)(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8),\n                        CONCAT44(&_gp,in_stack_fffffff4));\n    if (phVar2 == (hilite_node *)0x0) {\n      return 0;\n    }\n    if ((in_a2 == -1) && (in_a3 == 0xffffffff)) goto LAB_00032688;\n  }\n  iVar3 = *(int *)&(phVar2->r).hl_startpos;\n  if (in_a2 <= iVar3) {\n    if (iVar3 != in_a2) {\n      return 0;\n    }\n    if (in_a3 <= (uint)(phVar2->r).hl_startpos) {\n      return 0;\n    }\n  }\nLAB_00032688:\n  if (pos._4_4_ != (undefined4 *)0x0) {\n    *pos._4_4_ = 1;\n  }\n  if (**(int **)(puVar4 + -0x7e8c) == 0) {\n    return 0;\n  }\n  if (pos._0_4_ != 0) {\n    return 1;\n  }\n  return (uint)(*(int *)(*(int *)(puVar4 + -0x7fd8) + 0x32e0) == 0);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "hilite_node *phVar2;" type_identifier (pointer_declarator "*phVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int in_a2;" primitive_type identifier ;) (declaration "uint in_a3;" type_identifier identifier ;) (declaration "undefined1 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 in_stack_fffffff4;" type_identifier identifier ;) (expression_statement "puVar4 = &_gp;" (assignment_expression "puVar4 = &_gp" identifier = (pointer_expression "&_gp" & identifier)) ;) (if_statement "if (pos._4_4_ != (undefined4 *)0x0) {\n    *pos._4_4_ = 0;\n  }" if (parenthesized_expression "(pos._4_4_ != (undefined4 *)0x0)" ( (binary_expression "pos._4_4_ != (undefined4 *)0x0" (field_expression "pos._4_4_" identifier . field_identifier) != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *pos._4_4_ = 0;\n  }" { (expression_statement "*pos._4_4_ = 0;" (assignment_expression "*pos._4_4_ = 0" (pointer_expression "*pos._4_4_" * (field_expression "pos._4_4_" identifier . field_identifier)) = number_literal) ;) })) (if_statement "if (*(int *)PTR_status_col_0004f080 == 0) {\n    iVar3 = *(int *)PTR_start_attnpos_0004f108;\n    if (iVar3 == -1) {\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    if ((iVar1 <= nohide) &&\n       ((iVar1 != nohide || (*(int **)(PTR_end_attnpos_0004f10c + 4) <= p_matches))))\n    goto LAB_000325cc;\n    if ((in_a2 == -1) && (in_a3 == 0xffffffff)) {\n      return 1;\n    }\n    if (iVar3 < in_a2) {\n      return 1;\n    }\n    if ((in_a2 == iVar3) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < in_a3)) {\n      return 1;\n    }\n    phVar2 = hlist_find((hilite_tree *)(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8),\n                        CONCAT44(&_gp,in_stack_fffffff4));\n    if (phVar2 == (hilite_node *)0x0) {\n      return 0;\n    }\n  }\n  else {\nLAB_000325cc:\n    phVar2 = hlist_find((hilite_tree *)(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8),\n                        CONCAT44(&_gp,in_stack_fffffff4));\n    if (phVar2 == (hilite_node *)0x0) {\n      return 0;\n    }\n    if ((in_a2 == -1) && (in_a3 == 0xffffffff)) goto LAB_00032688;\n  }" if (parenthesized_expression "(*(int *)PTR_status_col_0004f080 == 0)" ( (binary_expression "*(int *)PTR_status_col_0004f080 == 0" (pointer_expression "*(int *)PTR_status_col_0004f080" * (cast_expression "(int *)PTR_status_col_0004f080" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n    iVar3 = *(int *)PTR_start_attnpos_0004f108;\n    if (iVar3 == -1) {\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    if ((iVar1 <= nohide) &&\n       ((iVar1 != nohide || (*(int **)(PTR_end_attnpos_0004f10c + 4) <= p_matches))))\n    goto LAB_000325cc;\n    if ((in_a2 == -1) && (in_a3 == 0xffffffff)) {\n      return 1;\n    }\n    if (iVar3 < in_a2) {\n      return 1;\n    }\n    if ((in_a2 == iVar3) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < in_a3)) {\n      return 1;\n    }\n    phVar2 = hlist_find((hilite_tree *)(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8),\n                        CONCAT44(&_gp,in_stack_fffffff4));\n    if (phVar2 == (hilite_node *)0x0) {\n      return 0;\n    }\n  }" { (expression_statement "iVar3 = *(int *)PTR_start_attnpos_0004f108;" (assignment_expression "iVar3 = *(int *)PTR_start_attnpos_0004f108" identifier = (pointer_expression "*(int *)PTR_start_attnpos_0004f108" * (cast_expression "(int *)PTR_start_attnpos_0004f108" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar3 == -1) {\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }" { (if_statement "if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;" if (parenthesized_expression "(*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff)" ( (binary_expression "*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff" (pointer_expression "*(uint *)(PTR_start_attnpos_0004f108 + 4)" * (cast_expression "(uint *)(PTR_start_attnpos_0004f108 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_start_attnpos_0004f108 + 4)" ( (binary_expression "PTR_start_attnpos_0004f108 + 4" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000325cc;" goto statement_identifier ;)) (expression_statement "iVar1 = *(int *)PTR_end_attnpos_0004f10c;" (assignment_expression "iVar1 = *(int *)PTR_end_attnpos_0004f10c" identifier = (pointer_expression "*(int *)PTR_end_attnpos_0004f10c" * (cast_expression "(int *)PTR_end_attnpos_0004f10c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }) (else_clause "else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }" else (compound_statement "{\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }" { (expression_statement "iVar1 = *(int *)PTR_end_attnpos_0004f10c;" (assignment_expression "iVar1 = *(int *)PTR_end_attnpos_0004f10c" identifier = (pointer_expression "*(int *)PTR_end_attnpos_0004f10c" * (cast_expression "(int *)PTR_end_attnpos_0004f10c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }))) (if_statement "if ((iVar1 <= nohide) &&\n       ((iVar1 != nohide || (*(int **)(PTR_end_attnpos_0004f10c + 4) <= p_matches))))\n    goto LAB_000325cc;" if (parenthesized_expression "((iVar1 <= nohide) &&\n       ((iVar1 != nohide || (*(int **)(PTR_end_attnpos_0004f10c + 4) <= p_matches))))" ( (binary_expression "(iVar1 <= nohide) &&\n       ((iVar1 != nohide || (*(int **)(PTR_end_attnpos_0004f10c + 4) <= p_matches)))" (parenthesized_expression "(iVar1 <= nohide)" ( (binary_expression "iVar1 <= nohide" identifier <= identifier) )) && (parenthesized_expression "((iVar1 != nohide || (*(int **)(PTR_end_attnpos_0004f10c + 4) <= p_matches)))" ( (parenthesized_expression "(iVar1 != nohide || (*(int **)(PTR_end_attnpos_0004f10c + 4) <= p_matches))" ( (binary_expression "iVar1 != nohide || (*(int **)(PTR_end_attnpos_0004f10c + 4) <= p_matches)" (binary_expression "iVar1 != nohide" identifier != identifier) || (parenthesized_expression "(*(int **)(PTR_end_attnpos_0004f10c + 4) <= p_matches)" ( (binary_expression "*(int **)(PTR_end_attnpos_0004f10c + 4) <= p_matches" (pointer_expression "*(int **)(PTR_end_attnpos_0004f10c + 4)" * (cast_expression "(int **)(PTR_end_attnpos_0004f10c + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_end_attnpos_0004f10c + 4)" ( (binary_expression "PTR_end_attnpos_0004f10c + 4" identifier + number_literal) )))) <= identifier) ))) )) ))) )) (goto_statement "goto LAB_000325cc;" goto statement_identifier ;)) (if_statement "if ((in_a2 == -1) && (in_a3 == 0xffffffff)) {\n      return 1;\n    }" if (parenthesized_expression "((in_a2 == -1) && (in_a3 == 0xffffffff))" ( (binary_expression "(in_a2 == -1) && (in_a3 == 0xffffffff)" (parenthesized_expression "(in_a2 == -1)" ( (binary_expression "in_a2 == -1" identifier == number_literal) )) && (parenthesized_expression "(in_a3 == 0xffffffff)" ( (binary_expression "in_a3 == 0xffffffff" identifier == number_literal) ))) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (iVar3 < in_a2) {\n      return 1;\n    }" if (parenthesized_expression "(iVar3 < in_a2)" ( (binary_expression "iVar3 < in_a2" identifier < identifier) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if ((in_a2 == iVar3) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < in_a3)) {\n      return 1;\n    }" if (parenthesized_expression "((in_a2 == iVar3) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < in_a3))" ( (binary_expression "(in_a2 == iVar3) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < in_a3)" (parenthesized_expression "(in_a2 == iVar3)" ( (binary_expression "in_a2 == iVar3" identifier == identifier) )) && (parenthesized_expression "(*(uint *)(PTR_start_attnpos_0004f108 + 4) < in_a3)" ( (binary_expression "*(uint *)(PTR_start_attnpos_0004f108 + 4) < in_a3" (pointer_expression "*(uint *)(PTR_start_attnpos_0004f108 + 4)" * (cast_expression "(uint *)(PTR_start_attnpos_0004f108 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_start_attnpos_0004f108 + 4)" ( (binary_expression "PTR_start_attnpos_0004f108 + 4" identifier + number_literal) )))) < identifier) ))) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "phVar2 = hlist_find((hilite_tree *)(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8),\n                        CONCAT44(&_gp,in_stack_fffffff4));" (assignment_expression "phVar2 = hlist_find((hilite_tree *)(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8),\n                        CONCAT44(&_gp,in_stack_fffffff4))" identifier = (call_expression "hlist_find((hilite_tree *)(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8),\n                        CONCAT44(&_gp,in_stack_fffffff4))" identifier (argument_list "((hilite_tree *)(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8),\n                        CONCAT44(&_gp,in_stack_fffffff4))" ( (cast_expression "(hilite_tree *)(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8)" ( (type_descriptor "hilite_tree *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8)" ( (binary_expression "PTR_CHAR_ARRAY_0004ebf8 + 0x32b8" identifier + number_literal) ))) , (call_expression "CONCAT44(&_gp,in_stack_fffffff4)" identifier (argument_list "(&_gp,in_stack_fffffff4)" ( (pointer_expression "&_gp" & identifier) , identifier ))) )))) ;) (if_statement "if (phVar2 == (hilite_node *)0x0) {\n      return 0;\n    }" if (parenthesized_expression "(phVar2 == (hilite_node *)0x0)" ( (binary_expression "phVar2 == (hilite_node *)0x0" identifier == (cast_expression "(hilite_node *)0x0" ( (type_descriptor "hilite_node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\nLAB_000325cc:\n    phVar2 = hlist_find((hilite_tree *)(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8),\n                        CONCAT44(&_gp,in_stack_fffffff4));\n    if (phVar2 == (hilite_node *)0x0) {\n      return 0;\n    }\n    if ((in_a2 == -1) && (in_a3 == 0xffffffff)) goto LAB_00032688;\n  }" else (compound_statement "{\nLAB_000325cc:\n    phVar2 = hlist_find((hilite_tree *)(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8),\n                        CONCAT44(&_gp,in_stack_fffffff4));\n    if (phVar2 == (hilite_node *)0x0) {\n      return 0;\n    }\n    if ((in_a2 == -1) && (in_a3 == 0xffffffff)) goto LAB_00032688;\n  }" { (labeled_statement "LAB_000325cc:\n    phVar2 = hlist_find((hilite_tree *)(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8),\n                        CONCAT44(&_gp,in_stack_fffffff4));" statement_identifier : (expression_statement "phVar2 = hlist_find((hilite_tree *)(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8),\n                        CONCAT44(&_gp,in_stack_fffffff4));" (assignment_expression "phVar2 = hlist_find((hilite_tree *)(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8),\n                        CONCAT44(&_gp,in_stack_fffffff4))" identifier = (call_expression "hlist_find((hilite_tree *)(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8),\n                        CONCAT44(&_gp,in_stack_fffffff4))" identifier (argument_list "((hilite_tree *)(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8),\n                        CONCAT44(&_gp,in_stack_fffffff4))" ( (cast_expression "(hilite_tree *)(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8)" ( (type_descriptor "hilite_tree *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_CHAR_ARRAY_0004ebf8 + 0x32b8)" ( (binary_expression "PTR_CHAR_ARRAY_0004ebf8 + 0x32b8" identifier + number_literal) ))) , (call_expression "CONCAT44(&_gp,in_stack_fffffff4)" identifier (argument_list "(&_gp,in_stack_fffffff4)" ( (pointer_expression "&_gp" & identifier) , identifier ))) )))) ;)) (if_statement "if (phVar2 == (hilite_node *)0x0) {\n      return 0;\n    }" if (parenthesized_expression "(phVar2 == (hilite_node *)0x0)" ( (binary_expression "phVar2 == (hilite_node *)0x0" identifier == (cast_expression "(hilite_node *)0x0" ( (type_descriptor "hilite_node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((in_a2 == -1) && (in_a3 == 0xffffffff)) goto LAB_00032688;" if (parenthesized_expression "((in_a2 == -1) && (in_a3 == 0xffffffff))" ( (binary_expression "(in_a2 == -1) && (in_a3 == 0xffffffff)" (parenthesized_expression "(in_a2 == -1)" ( (binary_expression "in_a2 == -1" identifier == number_literal) )) && (parenthesized_expression "(in_a3 == 0xffffffff)" ( (binary_expression "in_a3 == 0xffffffff" identifier == number_literal) ))) )) (goto_statement "goto LAB_00032688;" goto statement_identifier ;)) }))) (expression_statement "iVar3 = *(int *)&(phVar2->r).hl_startpos;" (assignment_expression "iVar3 = *(int *)&(phVar2->r).hl_startpos" identifier = (pointer_expression "*(int *)&(phVar2->r).hl_startpos" * (cast_expression "(int *)&(phVar2->r).hl_startpos" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(phVar2->r).hl_startpos" & (field_expression "(phVar2->r).hl_startpos" (parenthesized_expression "(phVar2->r)" ( (field_expression "phVar2->r" identifier -> field_identifier) )) . field_identifier))))) ;) (if_statement "if (in_a2 <= iVar3) {\n    if (iVar3 != in_a2) {\n      return 0;\n    }\n    if (in_a3 <= (uint)(phVar2->r).hl_startpos) {\n      return 0;\n    }\n  }" if (parenthesized_expression "(in_a2 <= iVar3)" ( (binary_expression "in_a2 <= iVar3" identifier <= identifier) )) (compound_statement "{\n    if (iVar3 != in_a2) {\n      return 0;\n    }\n    if (in_a3 <= (uint)(phVar2->r).hl_startpos) {\n      return 0;\n    }\n  }" { (if_statement "if (iVar3 != in_a2) {\n      return 0;\n    }" if (parenthesized_expression "(iVar3 != in_a2)" ( (binary_expression "iVar3 != in_a2" identifier != identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (in_a3 <= (uint)(phVar2->r).hl_startpos) {\n      return 0;\n    }" if (parenthesized_expression "(in_a3 <= (uint)(phVar2->r).hl_startpos)" ( (binary_expression "in_a3 <= (uint)(phVar2->r).hl_startpos" identifier <= (field_expression "(uint)(phVar2->r).hl_startpos" (call_expression "(uint)(phVar2->r)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(phVar2->r)" ( (field_expression "phVar2->r" identifier -> field_identifier) ))) . field_identifier)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) })) (labeled_statement "LAB_00032688:\n  if (pos._4_4_ != (undefined4 *)0x0) {\n    *pos._4_4_ = 1;\n  }" statement_identifier : (if_statement "if (pos._4_4_ != (undefined4 *)0x0) {\n    *pos._4_4_ = 1;\n  }" if (parenthesized_expression "(pos._4_4_ != (undefined4 *)0x0)" ( (binary_expression "pos._4_4_ != (undefined4 *)0x0" (field_expression "pos._4_4_" identifier . field_identifier) != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *pos._4_4_ = 1;\n  }" { (expression_statement "*pos._4_4_ = 1;" (assignment_expression "*pos._4_4_ = 1" (pointer_expression "*pos._4_4_" * (field_expression "pos._4_4_" identifier . field_identifier)) = number_literal) ;) }))) (if_statement "if (**(int **)(puVar4 + -0x7e8c) == 0) {\n    return 0;\n  }" if (parenthesized_expression "(**(int **)(puVar4 + -0x7e8c) == 0)" ( (binary_expression "**(int **)(puVar4 + -0x7e8c) == 0" (pointer_expression "**(int **)(puVar4 + -0x7e8c)" * (pointer_expression "*(int **)(puVar4 + -0x7e8c)" * (cast_expression "(int **)(puVar4 + -0x7e8c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + -0x7e8c)" ( (binary_expression "puVar4 + -0x7e8c" identifier + number_literal) ))))) == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (pos._0_4_ != 0) {\n    return 1;\n  }" if (parenthesized_expression "(pos._0_4_ != 0)" ( (binary_expression "pos._0_4_ != 0" (field_expression "pos._0_4_" identifier . field_identifier) != number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (return_statement "return (uint)(*(int *)(*(int *)(puVar4 + -0x7fd8) + 0x32e0) == 0);" return (call_expression "(uint)(*(int *)(*(int *)(puVar4 + -0x7fd8) + 0x32e0) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(*(int *)(puVar4 + -0x7fd8) + 0x32e0) == 0)" ( (binary_expression "*(int *)(*(int *)(puVar4 + -0x7fd8) + 0x32e0) == 0" (pointer_expression "*(int *)(*(int *)(puVar4 + -0x7fd8) + 0x32e0)" * (cast_expression "(int *)(*(int *)(puVar4 + -0x7fd8) + 0x32e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar4 + -0x7fd8) + 0x32e0)" ( (binary_expression "*(int *)(puVar4 + -0x7fd8) + 0x32e0" (pointer_expression "*(int *)(puVar4 + -0x7fd8)" * (cast_expression "(int *)(puVar4 + -0x7fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x7fd8)" ( (binary_expression "puVar4 + -0x7fd8" identifier + number_literal) )))) + number_literal) )))) == number_literal) ))) ;) })))
(translation_unit "bool is_hilited(int param_1,uint param_2,int param_3,uint param_4,int param_5,undefined4 *param_6)\n\n{\n  int iVar1;\n  int iVar2;\n  \n  if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 0;\n  }\n  if (*(int *)PTR_status_col_0004f080 == 0) {\n    iVar2 = *(int *)PTR_start_attnpos_0004f108;\n    if (iVar2 == -1) {\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    if ((iVar1 <= param_1) &&\n       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))))\n    goto LAB_000325cc;\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) {\n      return true;\n    }\n    if (iVar2 < param_3) {\n      return true;\n    }\n    if ((param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)) {\n      return true;\n    }\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n  }\n  else {\nLAB_000325cc:\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) goto LAB_00032688;\n  }\n  if (param_3 <= *(int *)(iVar2 + 0x18)) {\n    if (*(int *)(iVar2 + 0x18) != param_3) {\n      return false;\n    }\n    if (param_4 <= *(uint *)(iVar2 + 0x1c)) {\n      return false;\n    }\n  }\nLAB_00032688:\n  if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 1;\n  }\n  if (*(int *)PTR_hilite_search_0004ed44 == 0) {\n    return false;\n  }\n  if (param_5 != 0) {\n    return true;\n  }\n  return *(int *)(PTR_DAT_0004ebf8 + 0x32e0) == 0;\n}\n\n" (function_definition "bool is_hilited(int param_1,uint param_2,int param_3,uint param_4,int param_5,undefined4 *param_6)\n\n{\n  int iVar1;\n  int iVar2;\n  \n  if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 0;\n  }\n  if (*(int *)PTR_status_col_0004f080 == 0) {\n    iVar2 = *(int *)PTR_start_attnpos_0004f108;\n    if (iVar2 == -1) {\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    if ((iVar1 <= param_1) &&\n       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))))\n    goto LAB_000325cc;\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) {\n      return true;\n    }\n    if (iVar2 < param_3) {\n      return true;\n    }\n    if ((param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)) {\n      return true;\n    }\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n  }\n  else {\nLAB_000325cc:\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) goto LAB_00032688;\n  }\n  if (param_3 <= *(int *)(iVar2 + 0x18)) {\n    if (*(int *)(iVar2 + 0x18) != param_3) {\n      return false;\n    }\n    if (param_4 <= *(uint *)(iVar2 + 0x1c)) {\n      return false;\n    }\n  }\nLAB_00032688:\n  if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 1;\n  }\n  if (*(int *)PTR_hilite_search_0004ed44 == 0) {\n    return false;\n  }\n  if (param_5 != 0) {\n    return true;\n  }\n  return *(int *)(PTR_DAT_0004ebf8 + 0x32e0) == 0;\n}" primitive_type (function_declarator "is_hilited(int param_1,uint param_2,int param_3,uint param_4,int param_5,undefined4 *param_6)" identifier (parameter_list "(int param_1,uint param_2,int param_3,uint param_4,int param_5,undefined4 *param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "undefined4 *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  \n  if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 0;\n  }\n  if (*(int *)PTR_status_col_0004f080 == 0) {\n    iVar2 = *(int *)PTR_start_attnpos_0004f108;\n    if (iVar2 == -1) {\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    if ((iVar1 <= param_1) &&\n       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))))\n    goto LAB_000325cc;\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) {\n      return true;\n    }\n    if (iVar2 < param_3) {\n      return true;\n    }\n    if ((param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)) {\n      return true;\n    }\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n  }\n  else {\nLAB_000325cc:\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) goto LAB_00032688;\n  }\n  if (param_3 <= *(int *)(iVar2 + 0x18)) {\n    if (*(int *)(iVar2 + 0x18) != param_3) {\n      return false;\n    }\n    if (param_4 <= *(uint *)(iVar2 + 0x1c)) {\n      return false;\n    }\n  }\nLAB_00032688:\n  if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 1;\n  }\n  if (*(int *)PTR_hilite_search_0004ed44 == 0) {\n    return false;\n  }\n  if (param_5 != 0) {\n    return true;\n  }\n  return *(int *)(PTR_DAT_0004ebf8 + 0x32e0) == 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (if_statement "if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 0;\n  }" if (parenthesized_expression "(param_6 != (undefined4 *)0x0)" ( (binary_expression "param_6 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_6 = 0;\n  }" { (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" * identifier) = number_literal) ;) })) (if_statement "if (*(int *)PTR_status_col_0004f080 == 0) {\n    iVar2 = *(int *)PTR_start_attnpos_0004f108;\n    if (iVar2 == -1) {\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    if ((iVar1 <= param_1) &&\n       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))))\n    goto LAB_000325cc;\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) {\n      return true;\n    }\n    if (iVar2 < param_3) {\n      return true;\n    }\n    if ((param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)) {\n      return true;\n    }\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n  }\n  else {\nLAB_000325cc:\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) goto LAB_00032688;\n  }" if (parenthesized_expression "(*(int *)PTR_status_col_0004f080 == 0)" ( (binary_expression "*(int *)PTR_status_col_0004f080 == 0" (pointer_expression "*(int *)PTR_status_col_0004f080" * (cast_expression "(int *)PTR_status_col_0004f080" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n    iVar2 = *(int *)PTR_start_attnpos_0004f108;\n    if (iVar2 == -1) {\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    if ((iVar1 <= param_1) &&\n       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))))\n    goto LAB_000325cc;\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) {\n      return true;\n    }\n    if (iVar2 < param_3) {\n      return true;\n    }\n    if ((param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)) {\n      return true;\n    }\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n  }" { (expression_statement "iVar2 = *(int *)PTR_start_attnpos_0004f108;" (assignment_expression "iVar2 = *(int *)PTR_start_attnpos_0004f108" identifier = (pointer_expression "*(int *)PTR_start_attnpos_0004f108" * (cast_expression "(int *)PTR_start_attnpos_0004f108" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar2 == -1) {\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }" if (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) (compound_statement "{\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }" { (if_statement "if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;" if (parenthesized_expression "(*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff)" ( (binary_expression "*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff" (pointer_expression "*(uint *)(PTR_start_attnpos_0004f108 + 4)" * (cast_expression "(uint *)(PTR_start_attnpos_0004f108 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_start_attnpos_0004f108 + 4)" ( (binary_expression "PTR_start_attnpos_0004f108 + 4" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000325cc;" goto statement_identifier ;)) (expression_statement "iVar1 = *(int *)PTR_end_attnpos_0004f10c;" (assignment_expression "iVar1 = *(int *)PTR_end_attnpos_0004f10c" identifier = (pointer_expression "*(int *)PTR_end_attnpos_0004f10c" * (cast_expression "(int *)PTR_end_attnpos_0004f10c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }) (else_clause "else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }" else (compound_statement "{\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }" { (expression_statement "iVar1 = *(int *)PTR_end_attnpos_0004f10c;" (assignment_expression "iVar1 = *(int *)PTR_end_attnpos_0004f10c" identifier = (pointer_expression "*(int *)PTR_end_attnpos_0004f10c" * (cast_expression "(int *)PTR_end_attnpos_0004f10c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }))) (if_statement "if ((iVar1 <= param_1) &&\n       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))))\n    goto LAB_000325cc;" if (parenthesized_expression "((iVar1 <= param_1) &&\n       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))))" ( (binary_expression "(iVar1 <= param_1) &&\n       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2)))" (parenthesized_expression "(iVar1 <= param_1)" ( (binary_expression "iVar1 <= param_1" identifier <= identifier) )) && (parenthesized_expression "((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2)))" ( (parenthesized_expression "(iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))" ( (binary_expression "iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2)" (binary_expression "iVar1 != param_1" identifier != identifier) || (parenthesized_expression "(*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2)" ( (binary_expression "*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2" (pointer_expression "*(uint *)(PTR_end_attnpos_0004f10c + 4)" * (cast_expression "(uint *)(PTR_end_attnpos_0004f10c + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_end_attnpos_0004f10c + 4)" ( (binary_expression "PTR_end_attnpos_0004f10c + 4" identifier + number_literal) )))) <= identifier) ))) )) ))) )) (goto_statement "goto LAB_000325cc;" goto statement_identifier ;)) (if_statement "if ((param_3 == -1) && (param_4 == 0xffffffff)) {\n      return true;\n    }" if (parenthesized_expression "((param_3 == -1) && (param_4 == 0xffffffff))" ( (binary_expression "(param_3 == -1) && (param_4 == 0xffffffff)" (parenthesized_expression "(param_3 == -1)" ( (binary_expression "param_3 == -1" identifier == number_literal) )) && (parenthesized_expression "(param_4 == 0xffffffff)" ( (binary_expression "param_4 == 0xffffffff" identifier == number_literal) ))) )) (compound_statement "{\n      return true;\n    }" { (return_statement "return true;" return true ;) })) (if_statement "if (iVar2 < param_3) {\n      return true;\n    }" if (parenthesized_expression "(iVar2 < param_3)" ( (binary_expression "iVar2 < param_3" identifier < identifier) )) (compound_statement "{\n      return true;\n    }" { (return_statement "return true;" return true ;) })) (if_statement "if ((param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)) {\n      return true;\n    }" if (parenthesized_expression "((param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4))" ( (binary_expression "(param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)" (parenthesized_expression "(param_3 == iVar2)" ( (binary_expression "param_3 == iVar2" identifier == identifier) )) && (parenthesized_expression "(*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)" ( (binary_expression "*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4" (pointer_expression "*(uint *)(PTR_start_attnpos_0004f108 + 4)" * (cast_expression "(uint *)(PTR_start_attnpos_0004f108 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_start_attnpos_0004f108 + 4)" ( (binary_expression "PTR_start_attnpos_0004f108 + 4" identifier + number_literal) )))) < identifier) ))) )) (compound_statement "{\n      return true;\n    }" { (return_statement "return true;" return true ;) })) (expression_statement "iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);" (assignment_expression "iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2)" identifier = (call_expression "hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2)" identifier (argument_list "(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2)" ( (binary_expression "PTR_DAT_0004ebf8 + 0x32b8" identifier + number_literal) , identifier , identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n      return false;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) }) (else_clause "else {\nLAB_000325cc:\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) goto LAB_00032688;\n  }" else (compound_statement "{\nLAB_000325cc:\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) goto LAB_00032688;\n  }" { (labeled_statement "LAB_000325cc:\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);" statement_identifier : (expression_statement "iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);" (assignment_expression "iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2)" identifier = (call_expression "hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2)" identifier (argument_list "(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2)" ( (binary_expression "PTR_DAT_0004ebf8 + 0x32b8" identifier + number_literal) , identifier , identifier , identifier )))) ;)) (if_statement "if (iVar2 == 0) {\n      return false;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (if_statement "if ((param_3 == -1) && (param_4 == 0xffffffff)) goto LAB_00032688;" if (parenthesized_expression "((param_3 == -1) && (param_4 == 0xffffffff))" ( (binary_expression "(param_3 == -1) && (param_4 == 0xffffffff)" (parenthesized_expression "(param_3 == -1)" ( (binary_expression "param_3 == -1" identifier == number_literal) )) && (parenthesized_expression "(param_4 == 0xffffffff)" ( (binary_expression "param_4 == 0xffffffff" identifier == number_literal) ))) )) (goto_statement "goto LAB_00032688;" goto statement_identifier ;)) }))) (if_statement "if (param_3 <= *(int *)(iVar2 + 0x18)) {\n    if (*(int *)(iVar2 + 0x18) != param_3) {\n      return false;\n    }\n    if (param_4 <= *(uint *)(iVar2 + 0x1c)) {\n      return false;\n    }\n  }" if (parenthesized_expression "(param_3 <= *(int *)(iVar2 + 0x18))" ( (binary_expression "param_3 <= *(int *)(iVar2 + 0x18)" identifier <= (pointer_expression "*(int *)(iVar2 + 0x18)" * (cast_expression "(int *)(iVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n    if (*(int *)(iVar2 + 0x18) != param_3) {\n      return false;\n    }\n    if (param_4 <= *(uint *)(iVar2 + 0x1c)) {\n      return false;\n    }\n  }" { (if_statement "if (*(int *)(iVar2 + 0x18) != param_3) {\n      return false;\n    }" if (parenthesized_expression "(*(int *)(iVar2 + 0x18) != param_3)" ( (binary_expression "*(int *)(iVar2 + 0x18) != param_3" (pointer_expression "*(int *)(iVar2 + 0x18)" * (cast_expression "(int *)(iVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (if_statement "if (param_4 <= *(uint *)(iVar2 + 0x1c)) {\n      return false;\n    }" if (parenthesized_expression "(param_4 <= *(uint *)(iVar2 + 0x1c))" ( (binary_expression "param_4 <= *(uint *)(iVar2 + 0x1c)" identifier <= (pointer_expression "*(uint *)(iVar2 + 0x1c)" * (cast_expression "(uint *)(iVar2 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) ))))) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) })) (labeled_statement "LAB_00032688:\n  if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 1;\n  }" statement_identifier : (if_statement "if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 1;\n  }" if (parenthesized_expression "(param_6 != (undefined4 *)0x0)" ( (binary_expression "param_6 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_6 = 1;\n  }" { (expression_statement "*param_6 = 1;" (assignment_expression "*param_6 = 1" (pointer_expression "*param_6" * identifier) = number_literal) ;) }))) (if_statement "if (*(int *)PTR_hilite_search_0004ed44 == 0) {\n    return false;\n  }" if (parenthesized_expression "(*(int *)PTR_hilite_search_0004ed44 == 0)" ( (binary_expression "*(int *)PTR_hilite_search_0004ed44 == 0" (pointer_expression "*(int *)PTR_hilite_search_0004ed44" * (cast_expression "(int *)PTR_hilite_search_0004ed44" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (if_statement "if (param_5 != 0) {\n    return true;\n  }" if (parenthesized_expression "(param_5 != 0)" ( (binary_expression "param_5 != 0" identifier != number_literal) )) (compound_statement "{\n    return true;\n  }" { (return_statement "return true;" return true ;) })) (return_statement "return *(int *)(PTR_DAT_0004ebf8 + 0x32e0) == 0;" return (binary_expression "*(int *)(PTR_DAT_0004ebf8 + 0x32e0) == 0" (pointer_expression "*(int *)(PTR_DAT_0004ebf8 + 0x32e0)" * (cast_expression "(int *)(PTR_DAT_0004ebf8 + 0x32e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0004ebf8 + 0x32e0)" ( (binary_expression "PTR_DAT_0004ebf8 + 0x32e0" identifier + number_literal) )))) == number_literal) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (return_statement return BOOL ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (return_statement return BOOL ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (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 BOOL ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return BOOL ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return BOOL ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) }))) (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 { (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 BOOL ;) })) (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 BOOL ;) })) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) (compound_statement { (return_statement return BOOL ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return BOOL ;) })) (return_statement return (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ;) })))
(function_definition "bool is_hilited(int param_1,uint param_2,int param_3,uint param_4,int param_5,undefined4 *param_6)\n\n{\n  int iVar1;\n  int iVar2;\n  \n  if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 0;\n  }\n  if (*(int *)PTR_status_col_0004f080 == 0) {\n    iVar2 = *(int *)PTR_start_attnpos_0004f108;\n    if (iVar2 == -1) {\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    if ((iVar1 <= param_1) &&\n       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))))\n    goto LAB_000325cc;\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) {\n      return true;\n    }\n    if (iVar2 < param_3) {\n      return true;\n    }\n    if ((param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)) {\n      return true;\n    }\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n  }\n  else {\nLAB_000325cc:\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) goto LAB_00032688;\n  }\n  if (param_3 <= *(int *)(iVar2 + 0x18)) {\n    if (*(int *)(iVar2 + 0x18) != param_3) {\n      return false;\n    }\n    if (param_4 <= *(uint *)(iVar2 + 0x1c)) {\n      return false;\n    }\n  }\nLAB_00032688:\n  if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 1;\n  }\n  if (*(int *)PTR_hilite_search_0004ed44 == 0) {\n    return false;\n  }\n  if (param_5 != 0) {\n    return true;\n  }\n  return *(int *)(PTR_DAT_0004ebf8 + 0x32e0) == 0;\n}" (primitive_type "bool") (function_declarator "is_hilited(int param_1,uint param_2,int param_3,uint param_4,int param_5,undefined4 *param_6)" (identifier "is_hilited") (parameter_list "(int param_1,uint param_2,int param_3,uint param_4,int param_5,undefined4 *param_6)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "undefined4 *param_6" (type_identifier "undefined4") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  \n  if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 0;\n  }\n  if (*(int *)PTR_status_col_0004f080 == 0) {\n    iVar2 = *(int *)PTR_start_attnpos_0004f108;\n    if (iVar2 == -1) {\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    if ((iVar1 <= param_1) &&\n       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))))\n    goto LAB_000325cc;\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) {\n      return true;\n    }\n    if (iVar2 < param_3) {\n      return true;\n    }\n    if ((param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)) {\n      return true;\n    }\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n  }\n  else {\nLAB_000325cc:\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) goto LAB_00032688;\n  }\n  if (param_3 <= *(int *)(iVar2 + 0x18)) {\n    if (*(int *)(iVar2 + 0x18) != param_3) {\n      return false;\n    }\n    if (param_4 <= *(uint *)(iVar2 + 0x1c)) {\n      return false;\n    }\n  }\nLAB_00032688:\n  if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 1;\n  }\n  if (*(int *)PTR_hilite_search_0004ed44 == 0) {\n    return false;\n  }\n  if (param_5 != 0) {\n    return true;\n  }\n  return *(int *)(PTR_DAT_0004ebf8 + 0x32e0) == 0;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (if_statement "if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 0;\n  }" (if "if") (parenthesized_expression "(param_6 != (undefined4 *)0x0)" (( "(") (binary_expression "param_6 != (undefined4 *)0x0" (identifier "param_6") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *param_6 = 0;\n  }" ({ "{") (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (*(int *)PTR_status_col_0004f080 == 0) {\n    iVar2 = *(int *)PTR_start_attnpos_0004f108;\n    if (iVar2 == -1) {\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    if ((iVar1 <= param_1) &&\n       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))))\n    goto LAB_000325cc;\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) {\n      return true;\n    }\n    if (iVar2 < param_3) {\n      return true;\n    }\n    if ((param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)) {\n      return true;\n    }\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n  }\n  else {\nLAB_000325cc:\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) goto LAB_00032688;\n  }" (if "if") (parenthesized_expression "(*(int *)PTR_status_col_0004f080 == 0)" (( "(") (binary_expression "*(int *)PTR_status_col_0004f080 == 0" (pointer_expression "*(int *)PTR_status_col_0004f080" (* "*") (cast_expression "(int *)PTR_status_col_0004f080" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_status_col_0004f080"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar2 = *(int *)PTR_start_attnpos_0004f108;\n    if (iVar2 == -1) {\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    if ((iVar1 <= param_1) &&\n       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))))\n    goto LAB_000325cc;\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) {\n      return true;\n    }\n    if (iVar2 < param_3) {\n      return true;\n    }\n    if ((param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)) {\n      return true;\n    }\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n  }" ({ "{") (expression_statement "iVar2 = *(int *)PTR_start_attnpos_0004f108;" (assignment_expression "iVar2 = *(int *)PTR_start_attnpos_0004f108" (identifier "iVar2") (= "=") (pointer_expression "*(int *)PTR_start_attnpos_0004f108" (* "*") (cast_expression "(int *)PTR_start_attnpos_0004f108" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_start_attnpos_0004f108")))) (; ";")) (if_statement "if (iVar2 == -1) {\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }\n    else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }" (if "if") (parenthesized_expression "(iVar2 == -1)" (( "(") (binary_expression "iVar2 == -1" (identifier "iVar2") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }" ({ "{") (if_statement "if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;" (if "if") (parenthesized_expression "(*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff)" (( "(") (binary_expression "*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff" (pointer_expression "*(uint *)(PTR_start_attnpos_0004f108 + 4)" (* "*") (cast_expression "(uint *)(PTR_start_attnpos_0004f108 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_start_attnpos_0004f108 + 4)" (( "(") (binary_expression "PTR_start_attnpos_0004f108 + 4" (identifier "PTR_start_attnpos_0004f108") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0xffffffff")) () ")")) (goto_statement "goto LAB_000325cc;" (goto "goto") (statement_identifier "LAB_000325cc") (; ";"))) (expression_statement "iVar1 = *(int *)PTR_end_attnpos_0004f10c;" (assignment_expression "iVar1 = *(int *)PTR_end_attnpos_0004f10c" (identifier "iVar1") (= "=") (pointer_expression "*(int *)PTR_end_attnpos_0004f10c" (* "*") (cast_expression "(int *)PTR_end_attnpos_0004f10c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_end_attnpos_0004f10c")))) (; ";")) (} "}")) (else_clause "else {\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }" (else "else") (compound_statement "{\n      iVar1 = *(int *)PTR_end_attnpos_0004f10c;\n    }" ({ "{") (expression_statement "iVar1 = *(int *)PTR_end_attnpos_0004f10c;" (assignment_expression "iVar1 = *(int *)PTR_end_attnpos_0004f10c" (identifier "iVar1") (= "=") (pointer_expression "*(int *)PTR_end_attnpos_0004f10c" (* "*") (cast_expression "(int *)PTR_end_attnpos_0004f10c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_end_attnpos_0004f10c")))) (; ";")) (} "}")))) (if_statement "if ((iVar1 <= param_1) &&\n       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))))\n    goto LAB_000325cc;" (if "if") (parenthesized_expression "((iVar1 <= param_1) &&\n       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))))" (( "(") (binary_expression "(iVar1 <= param_1) &&\n       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2)))" (parenthesized_expression "(iVar1 <= param_1)" (( "(") (binary_expression "iVar1 <= param_1" (identifier "iVar1") (<= "<=") (identifier "param_1")) () ")")) (&& "&&") (parenthesized_expression "((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2)))" (( "(") (parenthesized_expression "(iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))" (( "(") (binary_expression "iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2)" (binary_expression "iVar1 != param_1" (identifier "iVar1") (!= "!=") (identifier "param_1")) (|| "||") (parenthesized_expression "(*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2)" (( "(") (binary_expression "*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2" (pointer_expression "*(uint *)(PTR_end_attnpos_0004f10c + 4)" (* "*") (cast_expression "(uint *)(PTR_end_attnpos_0004f10c + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_end_attnpos_0004f10c + 4)" (( "(") (binary_expression "PTR_end_attnpos_0004f10c + 4" (identifier "PTR_end_attnpos_0004f10c") (+ "+") (number_literal "4")) () ")")))) (<= "<=") (identifier "param_2")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_000325cc;" (goto "goto") (statement_identifier "LAB_000325cc") (; ";"))) (if_statement "if ((param_3 == -1) && (param_4 == 0xffffffff)) {\n      return true;\n    }" (if "if") (parenthesized_expression "((param_3 == -1) && (param_4 == 0xffffffff))" (( "(") (binary_expression "(param_3 == -1) && (param_4 == 0xffffffff)" (parenthesized_expression "(param_3 == -1)" (( "(") (binary_expression "param_3 == -1" (identifier "param_3") (== "==") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "(param_4 == 0xffffffff)" (( "(") (binary_expression "param_4 == 0xffffffff" (identifier "param_4") (== "==") (number_literal "0xffffffff")) () ")"))) () ")")) (compound_statement "{\n      return true;\n    }" ({ "{") (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}"))) (if_statement "if (iVar2 < param_3) {\n      return true;\n    }" (if "if") (parenthesized_expression "(iVar2 < param_3)" (( "(") (binary_expression "iVar2 < param_3" (identifier "iVar2") (< "<") (identifier "param_3")) () ")")) (compound_statement "{\n      return true;\n    }" ({ "{") (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}"))) (if_statement "if ((param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)) {\n      return true;\n    }" (if "if") (parenthesized_expression "((param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4))" (( "(") (binary_expression "(param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)" (parenthesized_expression "(param_3 == iVar2)" (( "(") (binary_expression "param_3 == iVar2" (identifier "param_3") (== "==") (identifier "iVar2")) () ")")) (&& "&&") (parenthesized_expression "(*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)" (( "(") (binary_expression "*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4" (pointer_expression "*(uint *)(PTR_start_attnpos_0004f108 + 4)" (* "*") (cast_expression "(uint *)(PTR_start_attnpos_0004f108 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_start_attnpos_0004f108 + 4)" (( "(") (binary_expression "PTR_start_attnpos_0004f108 + 4" (identifier "PTR_start_attnpos_0004f108") (+ "+") (number_literal "4")) () ")")))) (< "<") (identifier "param_4")) () ")"))) () ")")) (compound_statement "{\n      return true;\n    }" ({ "{") (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}"))) (expression_statement "iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);" (assignment_expression "iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2)" (identifier "iVar2") (= "=") (call_expression "hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2)" (identifier "hlist_find") (argument_list "(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2)" (( "(") (binary_expression "PTR_DAT_0004ebf8 + 0x32b8" (identifier "PTR_DAT_0004ebf8") (+ "+") (number_literal "0x32b8")) (, ",") (identifier "param_2") (, ",") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n      return false;\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return false;\n    }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_000325cc:\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) goto LAB_00032688;\n  }" (else "else") (compound_statement "{\nLAB_000325cc:\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);\n    if (iVar2 == 0) {\n      return false;\n    }\n    if ((param_3 == -1) && (param_4 == 0xffffffff)) goto LAB_00032688;\n  }" ({ "{") (labeled_statement "LAB_000325cc:\n    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);" (statement_identifier "LAB_000325cc") (: ":") (expression_statement "iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);" (assignment_expression "iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2)" (identifier "iVar2") (= "=") (call_expression "hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2)" (identifier "hlist_find") (argument_list "(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2)" (( "(") (binary_expression "PTR_DAT_0004ebf8 + 0x32b8" (identifier "PTR_DAT_0004ebf8") (+ "+") (number_literal "0x32b8")) (, ",") (identifier "param_2") (, ",") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (; ";"))) (if_statement "if (iVar2 == 0) {\n      return false;\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return false;\n    }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (if_statement "if ((param_3 == -1) && (param_4 == 0xffffffff)) goto LAB_00032688;" (if "if") (parenthesized_expression "((param_3 == -1) && (param_4 == 0xffffffff))" (( "(") (binary_expression "(param_3 == -1) && (param_4 == 0xffffffff)" (parenthesized_expression "(param_3 == -1)" (( "(") (binary_expression "param_3 == -1" (identifier "param_3") (== "==") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "(param_4 == 0xffffffff)" (( "(") (binary_expression "param_4 == 0xffffffff" (identifier "param_4") (== "==") (number_literal "0xffffffff")) () ")"))) () ")")) (goto_statement "goto LAB_00032688;" (goto "goto") (statement_identifier "LAB_00032688") (; ";"))) (} "}")))) (if_statement "if (param_3 <= *(int *)(iVar2 + 0x18)) {\n    if (*(int *)(iVar2 + 0x18) != param_3) {\n      return false;\n    }\n    if (param_4 <= *(uint *)(iVar2 + 0x1c)) {\n      return false;\n    }\n  }" (if "if") (parenthesized_expression "(param_3 <= *(int *)(iVar2 + 0x18))" (( "(") (binary_expression "param_3 <= *(int *)(iVar2 + 0x18)" (identifier "param_3") (<= "<=") (pointer_expression "*(int *)(iVar2 + 0x18)" (* "*") (cast_expression "(int *)(iVar2 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x18)" (( "(") (binary_expression "iVar2 + 0x18" (identifier "iVar2") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n    if (*(int *)(iVar2 + 0x18) != param_3) {\n      return false;\n    }\n    if (param_4 <= *(uint *)(iVar2 + 0x1c)) {\n      return false;\n    }\n  }" ({ "{") (if_statement "if (*(int *)(iVar2 + 0x18) != param_3) {\n      return false;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x18) != param_3)" (( "(") (binary_expression "*(int *)(iVar2 + 0x18) != param_3" (pointer_expression "*(int *)(iVar2 + 0x18)" (* "*") (cast_expression "(int *)(iVar2 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x18)" (( "(") (binary_expression "iVar2 + 0x18" (identifier "iVar2") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (identifier "param_3")) () ")")) (compound_statement "{\n      return false;\n    }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (if_statement "if (param_4 <= *(uint *)(iVar2 + 0x1c)) {\n      return false;\n    }" (if "if") (parenthesized_expression "(param_4 <= *(uint *)(iVar2 + 0x1c))" (( "(") (binary_expression "param_4 <= *(uint *)(iVar2 + 0x1c)" (identifier "param_4") (<= "<=") (pointer_expression "*(uint *)(iVar2 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar2 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1c)" (( "(") (binary_expression "iVar2 + 0x1c" (identifier "iVar2") (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (compound_statement "{\n      return false;\n    }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00032688:\n  if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 1;\n  }" (statement_identifier "LAB_00032688") (: ":") (if_statement "if (param_6 != (undefined4 *)0x0) {\n    *param_6 = 1;\n  }" (if "if") (parenthesized_expression "(param_6 != (undefined4 *)0x0)" (( "(") (binary_expression "param_6 != (undefined4 *)0x0" (identifier "param_6") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *param_6 = 1;\n  }" ({ "{") (expression_statement "*param_6 = 1;" (assignment_expression "*param_6 = 1" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "1")) (; ";")) (} "}")))) (if_statement "if (*(int *)PTR_hilite_search_0004ed44 == 0) {\n    return false;\n  }" (if "if") (parenthesized_expression "(*(int *)PTR_hilite_search_0004ed44 == 0)" (( "(") (binary_expression "*(int *)PTR_hilite_search_0004ed44 == 0" (pointer_expression "*(int *)PTR_hilite_search_0004ed44" (* "*") (cast_expression "(int *)PTR_hilite_search_0004ed44" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_hilite_search_0004ed44"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return false;\n  }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (if_statement "if (param_5 != 0) {\n    return true;\n  }" (if "if") (parenthesized_expression "(param_5 != 0)" (( "(") (binary_expression "param_5 != 0" (identifier "param_5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return true;\n  }" ({ "{") (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}"))) (return_statement "return *(int *)(PTR_DAT_0004ebf8 + 0x32e0) == 0;" (return "return") (binary_expression "*(int *)(PTR_DAT_0004ebf8 + 0x32e0) == 0" (pointer_expression "*(int *)(PTR_DAT_0004ebf8 + 0x32e0)" (* "*") (cast_expression "(int *)(PTR_DAT_0004ebf8 + 0x32e0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0004ebf8 + 0x32e0)" (( "(") (binary_expression "PTR_DAT_0004ebf8 + 0x32e0" (identifier "PTR_DAT_0004ebf8") (+ "+") (number_literal "0x32e0")) () ")")))) (== "==") (number_literal "0")) (; ";")) (} "}")))

int function_1(type_1 pos,type_1 epos,int var_4,int *var_6)

{
  int var_3;
  type_2 *var_12;
  int var_1;
  int var_7;
  type_3 var_8;
  type_4 *var_13;
  type_5 in_stack_fffffff4;
  
  var_13 = &_gp;
  if (pos._4_4_ != (type_5 *)0x0) {
    *pos._4_4_ = 0;
  }
  if (*(int *)PTR_status_col_0004f080 == 0) {
    var_1 = *(int *)var_2;
    if (var_1 == -1) {
      if (*(type_3 *)(var_2 + 4) == 0xffffffff) goto LAB_000325cc;
      var_3 = *(int *)var_5;
    }
    else {
      var_3 = *(int *)var_5;
    }
    if ((var_3 <= var_4) &&
       ((var_3 != var_4 || (*(int **)(var_5 + 4) <= var_6))))
    goto LAB_000325cc;
    if ((var_7 == -1) && (var_8 == 0xffffffff)) {
      return 1;
    }
    if (var_1 < var_7) {
      return 1;
    }
    if ((var_7 == var_1) && (*(type_3 *)(var_2 + 4) < var_8)) {
      return 1;
    }
    var_12 = var_9((type_6 *)(var_10 + 0x32b8),
                        var_11(&_gp,in_stack_fffffff4));
    if (var_12 == (type_2 *)0x0) {
      return 0;
    }
  }
  else {
LAB_000325cc:
    var_12 = var_9((type_6 *)(var_10 + 0x32b8),
                        var_11(&_gp,in_stack_fffffff4));
    if (var_12 == (type_2 *)0x0) {
      return 0;
    }
    if ((var_7 == -1) && (var_8 == 0xffffffff)) goto LAB_00032688;
  }
  var_1 = *(int *)&(var_12->r).hl_startpos;
  if (var_7 <= var_1) {
    if (var_1 != var_7) {
      return 0;
    }
    if (var_8 <= (type_3)(var_12->r).hl_startpos) {
      return 0;
    }
  }
LAB_00032688:
  if (pos._4_4_ != (type_5 *)0x0) {
    *pos._4_4_ = 1;
  }
  if (**(int **)(var_13 + -0x7e8c) == 0) {
    return 0;
  }
  if (pos._0_4_ != 0) {
    return 1;
  }
  return (type_3)(*(int *)(*(int *)(var_13 + -0x7fd8) + 0x32e0) == 0);
}


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

bool MASKED(int param_1,uint param_2,int param_3,uint param_4,int param_5,undefined4 *param_6)

{
  int iVar1;
  int iVar2;
  
  if (param_6 != (undefined4 *)0x0) {
    *param_6 = 0;
  }
  if (*(int *)PTR_status_col_0004f080 == 0) {
    iVar2 = *(int *)PTR_start_attnpos_0004f108;
    if (iVar2 == -1) {
      if (*(uint *)(PTR_start_attnpos_0004f108 + 4) == 0xffffffff) goto LAB_000325cc;
      iVar1 = *(int *)PTR_end_attnpos_0004f10c;
    }
    else {
      iVar1 = *(int *)PTR_end_attnpos_0004f10c;
    }
    if ((iVar1 <= param_1) &&
       ((iVar1 != param_1 || (*(uint *)(PTR_end_attnpos_0004f10c + 4) <= param_2))))
    goto LAB_000325cc;
    if ((param_3 == -1) && (param_4 == 0xffffffff)) {
      return true;
    }
    if (iVar2 < param_3) {
      return true;
    }
    if ((param_3 == iVar2) && (*(uint *)(PTR_start_attnpos_0004f108 + 4) < param_4)) {
      return true;
    }
    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);
    if (iVar2 == 0) {
      return false;
    }
  }
  else {
LAB_000325cc:
    iVar2 = hlist_find(PTR_DAT_0004ebf8 + 0x32b8,param_2,param_1,param_2);
    if (iVar2 == 0) {
      return false;
    }
    if ((param_3 == -1) && (param_4 == 0xffffffff)) goto LAB_00032688;
  }
  if (param_3 <= *(int *)(iVar2 + 0x18)) {
    if (*(int *)(iVar2 + 0x18) != param_3) {
      return false;
    }
    if (param_4 <= *(uint *)(iVar2 + 0x1c)) {
      return false;
    }
  }
LAB_00032688:
  if (param_6 != (undefined4 *)0x0) {
    *param_6 = 1;
  }
  if (*(int *)PTR_hilite_search_0004ed44 == 0) {
    return false;
  }
  if (param_5 != 0) {
    return true;
  }
  return *(int *)(PTR_DAT_0004ebf8 + 0x32e0) == 0;
}

