
debug_type_conflict
debug_make_array_type
          (void *handle,debug_type_conflict element_type,debug_type_conflict range_type,
          bfd_signed_vma lower,bfd_signed_vma upper,bfd_boolean stringp)

{
  debug_type_s *pdVar1;
  debug_array_type *pdVar2;
  debug_handle *info;
  bfd_boolean in_stack_00000020;
  
  if ((element_type != (debug_type_conflict)0x0) && (range_type != (debug_type_conflict)0x0)) {
    pdVar1 = debug_make_type((debug_handle *)0x10,DEBUG_KIND_ILLEGAL,(uint)range_type);
    if (pdVar1 != (debug_type_s *)0x0) {
      pdVar2 = (debug_array_type *)(*(code *)PTR_xmalloc_000823c4)(0x20);
      pdVar2->lower = lower;
      pdVar2->field_0x1c = 0;
      pdVar2->field_0x1d = 0;
      pdVar2->field_0x1e = 0;
      pdVar2->field_0x1f = 0;
      pdVar2->element_type = element_type;
      pdVar2->range_type = range_type;
      pdVar2->stringp = in_stack_00000020;
      pdVar2->upper = upper;
      (pdVar1->u).karray = pdVar2;
    }
    return pdVar1;
  }
  return (debug_type_conflict)0x0;
}



int debug_make_array_type
              (undefined4 param_1,int param_2,int param_3,undefined4 param_4,int param_5,int param_6
              ,int param_7,int param_8,int param_9)

{
  int iVar1;
  int *piVar2;
  
  if ((param_2 != 0) && (param_3 != 0)) {
    iVar1 = FUN_00049410(0x10,0);
    if (iVar1 != 0) {
      piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);
      piVar2[3] = param_6;
      piVar2[2] = param_5;
      *(undefined1 *)(piVar2 + 7) = 0;
      *(undefined1 *)((int)piVar2 + 0x1d) = 0;
      *(undefined1 *)((int)piVar2 + 0x1e) = 0;
      *(undefined1 *)((int)piVar2 + 0x1f) = 0;
      *piVar2 = param_2;
      piVar2[1] = param_3;
      piVar2[6] = param_9;
      piVar2[5] = param_8;
      piVar2[4] = param_7;
      *(int **)(iVar1 + 0xc) = piVar2;
    }
    return iVar1;
  }
  return 0;
}


lui gp,0x4
addiu gp,gp,-0x2758
addu gp,gp,t9
addiu sp,sp,-0x28
sw gp,0x10(sp)
sw ra,0x24(sp)
sw s2,0x20(sp)
sw s1,0x1c(sp)
beq a1,zero,0x0004c788
_sw s0,0x18(sp)
beq a2,zero,0x0004c788
_lw t9,-0x7e7c(gp)
or s0,a1,zero
li a0,0x10
or a1,zero,zero
addiu t9,t9,-0x6bf0
bal 0x00049410
_or s1,a2,zero
lw gp,0x10(sp)
beq v0,zero,0x0004c76c
_or s2,v0,zero
lw t9,-0x7bac(gp)
jalr t9
_li a0,0x20
lw a1,0x3c(sp)
lw a0,0x38(sp)
lw v1,0x48(sp)
sw a1,0xc(v0)
sw a0,0x8(v0)
sb zero,0x1c(v0)
sb zero,0x1d(v0)
sb zero,0x1e(v0)
sb zero,0x1f(v0)
sw s0,0x0(v0)
sw s1,0x4(v0)
sw v1,0x18(v0)
lw a1,0x44(sp)
lw a0,0x40(sp)
sw a1,0x14(v0)
sw a0,0x10(v0)
sw v0,0xc(s2)
lw ra,0x24(sp)
or v0,s2,zero
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x28
lw ra,0x24(sp)
or s2,zero,zero
lw s1,0x1c(sp)
or v0,s2,zero
lw s0,0x18(sp)
lw s2,0x20(sp)
jr ra
_addiu sp,sp,0x28
(translation_unit "int debug_make_array_type\n              (undefined4 param_1,int param_2,int param_3,undefined4 param_4,int param_5,int param_6\n              ,int param_7,int param_8,int param_9)\n\n{\n  int iVar1;\n  int *piVar2;\n  \n  if ((param_2 != 0) && (param_3 != 0)) {\n    iVar1 = FUN_00049410(0x10,0);\n    if (iVar1 != 0) {\n      piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      piVar2[3] = param_6;\n      piVar2[2] = param_5;\n      *(undefined1 *)(piVar2 + 7) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1d) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1e) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1f) = 0;\n      *piVar2 = param_2;\n      piVar2[1] = param_3;\n      piVar2[6] = param_9;\n      piVar2[5] = param_8;\n      piVar2[4] = param_7;\n      *(int **)(iVar1 + 0xc) = piVar2;\n    }\n    return iVar1;\n  }\n  return 0;\n}\n\n" (function_definition "int debug_make_array_type\n              (undefined4 param_1,int param_2,int param_3,undefined4 param_4,int param_5,int param_6\n              ,int param_7,int param_8,int param_9)\n\n{\n  int iVar1;\n  int *piVar2;\n  \n  if ((param_2 != 0) && (param_3 != 0)) {\n    iVar1 = FUN_00049410(0x10,0);\n    if (iVar1 != 0) {\n      piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      piVar2[3] = param_6;\n      piVar2[2] = param_5;\n      *(undefined1 *)(piVar2 + 7) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1d) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1e) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1f) = 0;\n      *piVar2 = param_2;\n      piVar2[1] = param_3;\n      piVar2[6] = param_9;\n      piVar2[5] = param_8;\n      piVar2[4] = param_7;\n      *(int **)(iVar1 + 0xc) = piVar2;\n    }\n    return iVar1;\n  }\n  return 0;\n}" primitive_type (function_declarator "debug_make_array_type\n              (undefined4 param_1,int param_2,int param_3,undefined4 param_4,int param_5,int param_6\n              ,int param_7,int param_8,int param_9)" identifier (parameter_list "(undefined4 param_1,int param_2,int param_3,undefined4 param_4,int param_5,int param_6\n              ,int param_7,int param_8,int param_9)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "int param_8" primitive_type identifier) , (parameter_declaration "int param_9" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  \n  if ((param_2 != 0) && (param_3 != 0)) {\n    iVar1 = FUN_00049410(0x10,0);\n    if (iVar1 != 0) {\n      piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      piVar2[3] = param_6;\n      piVar2[2] = param_5;\n      *(undefined1 *)(piVar2 + 7) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1d) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1e) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1f) = 0;\n      *piVar2 = param_2;\n      piVar2[1] = param_3;\n      piVar2[6] = param_9;\n      piVar2[5] = param_8;\n      piVar2[4] = param_7;\n      *(int **)(iVar1 + 0xc) = piVar2;\n    }\n    return iVar1;\n  }\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (if_statement "if ((param_2 != 0) && (param_3 != 0)) {\n    iVar1 = FUN_00049410(0x10,0);\n    if (iVar1 != 0) {\n      piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      piVar2[3] = param_6;\n      piVar2[2] = param_5;\n      *(undefined1 *)(piVar2 + 7) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1d) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1e) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1f) = 0;\n      *piVar2 = param_2;\n      piVar2[1] = param_3;\n      piVar2[6] = param_9;\n      piVar2[5] = param_8;\n      piVar2[4] = param_7;\n      *(int **)(iVar1 + 0xc) = piVar2;\n    }\n    return iVar1;\n  }" if (parenthesized_expression "((param_2 != 0) && (param_3 != 0))" ( (binary_expression "(param_2 != 0) && (param_3 != 0)" (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) && (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    iVar1 = FUN_00049410(0x10,0);\n    if (iVar1 != 0) {\n      piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      piVar2[3] = param_6;\n      piVar2[2] = param_5;\n      *(undefined1 *)(piVar2 + 7) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1d) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1e) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1f) = 0;\n      *piVar2 = param_2;\n      piVar2[1] = param_3;\n      piVar2[6] = param_9;\n      piVar2[5] = param_8;\n      piVar2[4] = param_7;\n      *(int **)(iVar1 + 0xc) = piVar2;\n    }\n    return iVar1;\n  }" { (expression_statement "iVar1 = FUN_00049410(0x10,0);" (assignment_expression "iVar1 = FUN_00049410(0x10,0)" identifier = (call_expression "FUN_00049410(0x10,0)" identifier (argument_list "(0x10,0)" ( number_literal , number_literal )))) ;) (if_statement "if (iVar1 != 0) {\n      piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      piVar2[3] = param_6;\n      piVar2[2] = param_5;\n      *(undefined1 *)(piVar2 + 7) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1d) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1e) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1f) = 0;\n      *piVar2 = param_2;\n      piVar2[1] = param_3;\n      piVar2[6] = param_9;\n      piVar2[5] = param_8;\n      piVar2[4] = param_7;\n      *(int **)(iVar1 + 0xc) = piVar2;\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      piVar2[3] = param_6;\n      piVar2[2] = param_5;\n      *(undefined1 *)(piVar2 + 7) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1d) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1e) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1f) = 0;\n      *piVar2 = param_2;\n      piVar2[1] = param_3;\n      piVar2[6] = param_9;\n      piVar2[5] = param_8;\n      piVar2[4] = param_7;\n      *(int **)(iVar1 + 0xc) = piVar2;\n    }" { (expression_statement "piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);" (assignment_expression "piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20)" identifier = (cast_expression "(int *)(*(code *)PTR_xmalloc_000823c4)(0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_xmalloc_000823c4)(0x20)" (parenthesized_expression "(*(code *)PTR_xmalloc_000823c4)" ( (pointer_expression "*(code *)PTR_xmalloc_000823c4" * (cast_expression "(code *)PTR_xmalloc_000823c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "piVar2[3] = param_6;" (assignment_expression "piVar2[3] = param_6" (subscript_expression "piVar2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[2] = param_5;" (assignment_expression "piVar2[2] = param_5" (subscript_expression "piVar2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(piVar2 + 7) = 0;" (assignment_expression "*(undefined1 *)(piVar2 + 7) = 0" (pointer_expression "*(undefined1 *)(piVar2 + 7)" * (cast_expression "(undefined1 *)(piVar2 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar2 + 7)" ( (binary_expression "piVar2 + 7" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)piVar2 + 0x1d) = 0;" (assignment_expression "*(undefined1 *)((int)piVar2 + 0x1d) = 0" (pointer_expression "*(undefined1 *)((int)piVar2 + 0x1d)" * (cast_expression "(undefined1 *)((int)piVar2 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar2 + 0x1d)" ( (binary_expression "(int)piVar2 + 0x1d" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)piVar2 + 0x1e) = 0;" (assignment_expression "*(undefined1 *)((int)piVar2 + 0x1e) = 0" (pointer_expression "*(undefined1 *)((int)piVar2 + 0x1e)" * (cast_expression "(undefined1 *)((int)piVar2 + 0x1e)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar2 + 0x1e)" ( (binary_expression "(int)piVar2 + 0x1e" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)piVar2 + 0x1f) = 0;" (assignment_expression "*(undefined1 *)((int)piVar2 + 0x1f) = 0" (pointer_expression "*(undefined1 *)((int)piVar2 + 0x1f)" * (cast_expression "(undefined1 *)((int)piVar2 + 0x1f)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar2 + 0x1f)" ( (binary_expression "(int)piVar2 + 0x1f" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*piVar2 = param_2;" (assignment_expression "*piVar2 = param_2" (pointer_expression "*piVar2" * identifier) = identifier) ;) (expression_statement "piVar2[1] = param_3;" (assignment_expression "piVar2[1] = param_3" (subscript_expression "piVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[6] = param_9;" (assignment_expression "piVar2[6] = param_9" (subscript_expression "piVar2[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[5] = param_8;" (assignment_expression "piVar2[5] = param_8" (subscript_expression "piVar2[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[4] = param_7;" (assignment_expression "piVar2[4] = param_7" (subscript_expression "piVar2[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(int **)(iVar1 + 0xc) = piVar2;" (assignment_expression "*(int **)(iVar1 + 0xc) = piVar2" (pointer_expression "*(int **)(iVar1 + 0xc)" * (cast_expression "(int **)(iVar1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))) = identifier) ;) })) (return_statement "return iVar1;" return identifier ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "debug_type_conflict\ndebug_make_array_type\n          (void *handle,debug_type_conflict element_type,debug_type_conflict range_type,\n          bfd_signed_vma lower,bfd_signed_vma upper,bfd_boolean stringp)\n\n{\n  debug_type_s *pdVar1;\n  debug_array_type *pdVar2;\n  debug_handle *info;\n  bfd_boolean in_stack_00000020;\n  \n  if ((element_type != (debug_type_conflict)0x0) && (range_type != (debug_type_conflict)0x0)) {\n    pdVar1 = debug_make_type((debug_handle *)0x10,DEBUG_KIND_ILLEGAL,(uint)range_type);\n    if (pdVar1 != (debug_type_s *)0x0) {\n      pdVar2 = (debug_array_type *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      pdVar2->lower = lower;\n      pdVar2->field_0x1c = 0;\n      pdVar2->field_0x1d = 0;\n      pdVar2->field_0x1e = 0;\n      pdVar2->field_0x1f = 0;\n      pdVar2->element_type = element_type;\n      pdVar2->range_type = range_type;\n      pdVar2->stringp = in_stack_00000020;\n      pdVar2->upper = upper;\n      (pdVar1->u).karray = pdVar2;\n    }\n    return pdVar1;\n  }\n  return (debug_type_conflict)0x0;\n}\n\n" (function_definition "debug_type_conflict\ndebug_make_array_type\n          (void *handle,debug_type_conflict element_type,debug_type_conflict range_type,\n          bfd_signed_vma lower,bfd_signed_vma upper,bfd_boolean stringp)\n\n{\n  debug_type_s *pdVar1;\n  debug_array_type *pdVar2;\n  debug_handle *info;\n  bfd_boolean in_stack_00000020;\n  \n  if ((element_type != (debug_type_conflict)0x0) && (range_type != (debug_type_conflict)0x0)) {\n    pdVar1 = debug_make_type((debug_handle *)0x10,DEBUG_KIND_ILLEGAL,(uint)range_type);\n    if (pdVar1 != (debug_type_s *)0x0) {\n      pdVar2 = (debug_array_type *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      pdVar2->lower = lower;\n      pdVar2->field_0x1c = 0;\n      pdVar2->field_0x1d = 0;\n      pdVar2->field_0x1e = 0;\n      pdVar2->field_0x1f = 0;\n      pdVar2->element_type = element_type;\n      pdVar2->range_type = range_type;\n      pdVar2->stringp = in_stack_00000020;\n      pdVar2->upper = upper;\n      (pdVar1->u).karray = pdVar2;\n    }\n    return pdVar1;\n  }\n  return (debug_type_conflict)0x0;\n}" type_identifier (function_declarator "debug_make_array_type\n          (void *handle,debug_type_conflict element_type,debug_type_conflict range_type,\n          bfd_signed_vma lower,bfd_signed_vma upper,bfd_boolean stringp)" identifier (parameter_list "(void *handle,debug_type_conflict element_type,debug_type_conflict range_type,\n          bfd_signed_vma lower,bfd_signed_vma upper,bfd_boolean stringp)" ( (parameter_declaration "void *handle" primitive_type (pointer_declarator "*handle" * identifier)) , (parameter_declaration "debug_type_conflict element_type" type_identifier identifier) , (parameter_declaration "debug_type_conflict range_type" type_identifier identifier) , (parameter_declaration "bfd_signed_vma lower" type_identifier identifier) , (parameter_declaration "bfd_signed_vma upper" type_identifier identifier) , (parameter_declaration "bfd_boolean stringp" type_identifier identifier) ))) (compound_statement "{\n  debug_type_s *pdVar1;\n  debug_array_type *pdVar2;\n  debug_handle *info;\n  bfd_boolean in_stack_00000020;\n  \n  if ((element_type != (debug_type_conflict)0x0) && (range_type != (debug_type_conflict)0x0)) {\n    pdVar1 = debug_make_type((debug_handle *)0x10,DEBUG_KIND_ILLEGAL,(uint)range_type);\n    if (pdVar1 != (debug_type_s *)0x0) {\n      pdVar2 = (debug_array_type *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      pdVar2->lower = lower;\n      pdVar2->field_0x1c = 0;\n      pdVar2->field_0x1d = 0;\n      pdVar2->field_0x1e = 0;\n      pdVar2->field_0x1f = 0;\n      pdVar2->element_type = element_type;\n      pdVar2->range_type = range_type;\n      pdVar2->stringp = in_stack_00000020;\n      pdVar2->upper = upper;\n      (pdVar1->u).karray = pdVar2;\n    }\n    return pdVar1;\n  }\n  return (debug_type_conflict)0x0;\n}" { (declaration "debug_type_s *pdVar1;" type_identifier (pointer_declarator "*pdVar1" * identifier) ;) (declaration "debug_array_type *pdVar2;" type_identifier (pointer_declarator "*pdVar2" * identifier) ;) (declaration "debug_handle *info;" type_identifier (pointer_declarator "*info" * identifier) ;) (declaration "bfd_boolean in_stack_00000020;" type_identifier identifier ;) (if_statement "if ((element_type != (debug_type_conflict)0x0) && (range_type != (debug_type_conflict)0x0)) {\n    pdVar1 = debug_make_type((debug_handle *)0x10,DEBUG_KIND_ILLEGAL,(uint)range_type);\n    if (pdVar1 != (debug_type_s *)0x0) {\n      pdVar2 = (debug_array_type *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      pdVar2->lower = lower;\n      pdVar2->field_0x1c = 0;\n      pdVar2->field_0x1d = 0;\n      pdVar2->field_0x1e = 0;\n      pdVar2->field_0x1f = 0;\n      pdVar2->element_type = element_type;\n      pdVar2->range_type = range_type;\n      pdVar2->stringp = in_stack_00000020;\n      pdVar2->upper = upper;\n      (pdVar1->u).karray = pdVar2;\n    }\n    return pdVar1;\n  }" if (parenthesized_expression "((element_type != (debug_type_conflict)0x0) && (range_type != (debug_type_conflict)0x0))" ( (binary_expression "(element_type != (debug_type_conflict)0x0) && (range_type != (debug_type_conflict)0x0)" (parenthesized_expression "(element_type != (debug_type_conflict)0x0)" ( (binary_expression "element_type != (debug_type_conflict)0x0" identifier != (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) )) && (parenthesized_expression "(range_type != (debug_type_conflict)0x0)" ( (binary_expression "range_type != (debug_type_conflict)0x0" identifier != (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) ))) )) (compound_statement "{\n    pdVar1 = debug_make_type((debug_handle *)0x10,DEBUG_KIND_ILLEGAL,(uint)range_type);\n    if (pdVar1 != (debug_type_s *)0x0) {\n      pdVar2 = (debug_array_type *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      pdVar2->lower = lower;\n      pdVar2->field_0x1c = 0;\n      pdVar2->field_0x1d = 0;\n      pdVar2->field_0x1e = 0;\n      pdVar2->field_0x1f = 0;\n      pdVar2->element_type = element_type;\n      pdVar2->range_type = range_type;\n      pdVar2->stringp = in_stack_00000020;\n      pdVar2->upper = upper;\n      (pdVar1->u).karray = pdVar2;\n    }\n    return pdVar1;\n  }" { (expression_statement "pdVar1 = debug_make_type((debug_handle *)0x10,DEBUG_KIND_ILLEGAL,(uint)range_type);" (assignment_expression "pdVar1 = debug_make_type((debug_handle *)0x10,DEBUG_KIND_ILLEGAL,(uint)range_type)" identifier = (call_expression "debug_make_type((debug_handle *)0x10,DEBUG_KIND_ILLEGAL,(uint)range_type)" identifier (argument_list "((debug_handle *)0x10,DEBUG_KIND_ILLEGAL,(uint)range_type)" ( (cast_expression "(debug_handle *)0x10" ( (type_descriptor "debug_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(uint)range_type" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (if_statement "if (pdVar1 != (debug_type_s *)0x0) {\n      pdVar2 = (debug_array_type *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      pdVar2->lower = lower;\n      pdVar2->field_0x1c = 0;\n      pdVar2->field_0x1d = 0;\n      pdVar2->field_0x1e = 0;\n      pdVar2->field_0x1f = 0;\n      pdVar2->element_type = element_type;\n      pdVar2->range_type = range_type;\n      pdVar2->stringp = in_stack_00000020;\n      pdVar2->upper = upper;\n      (pdVar1->u).karray = pdVar2;\n    }" if (parenthesized_expression "(pdVar1 != (debug_type_s *)0x0)" ( (binary_expression "pdVar1 != (debug_type_s *)0x0" identifier != (cast_expression "(debug_type_s *)0x0" ( (type_descriptor "debug_type_s *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pdVar2 = (debug_array_type *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      pdVar2->lower = lower;\n      pdVar2->field_0x1c = 0;\n      pdVar2->field_0x1d = 0;\n      pdVar2->field_0x1e = 0;\n      pdVar2->field_0x1f = 0;\n      pdVar2->element_type = element_type;\n      pdVar2->range_type = range_type;\n      pdVar2->stringp = in_stack_00000020;\n      pdVar2->upper = upper;\n      (pdVar1->u).karray = pdVar2;\n    }" { (expression_statement "pdVar2 = (debug_array_type *)(*(code *)PTR_xmalloc_000823c4)(0x20);" (assignment_expression "pdVar2 = (debug_array_type *)(*(code *)PTR_xmalloc_000823c4)(0x20)" identifier = (cast_expression "(debug_array_type *)(*(code *)PTR_xmalloc_000823c4)(0x20)" ( (type_descriptor "debug_array_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_xmalloc_000823c4)(0x20)" (parenthesized_expression "(*(code *)PTR_xmalloc_000823c4)" ( (pointer_expression "*(code *)PTR_xmalloc_000823c4" * (cast_expression "(code *)PTR_xmalloc_000823c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "pdVar2->lower = lower;" (assignment_expression "pdVar2->lower = lower" (field_expression "pdVar2->lower" identifier -> field_identifier) = identifier) ;) (expression_statement "pdVar2->field_0x1c = 0;" (assignment_expression "pdVar2->field_0x1c = 0" (field_expression "pdVar2->field_0x1c" identifier -> field_identifier) = number_literal) ;) (expression_statement "pdVar2->field_0x1d = 0;" (assignment_expression "pdVar2->field_0x1d = 0" (field_expression "pdVar2->field_0x1d" identifier -> field_identifier) = number_literal) ;) (expression_statement "pdVar2->field_0x1e = 0;" (assignment_expression "pdVar2->field_0x1e = 0" (field_expression "pdVar2->field_0x1e" identifier -> field_identifier) = number_literal) ;) (expression_statement "pdVar2->field_0x1f = 0;" (assignment_expression "pdVar2->field_0x1f = 0" (field_expression "pdVar2->field_0x1f" identifier -> field_identifier) = number_literal) ;) (expression_statement "pdVar2->element_type = element_type;" (assignment_expression "pdVar2->element_type = element_type" (field_expression "pdVar2->element_type" identifier -> field_identifier) = identifier) ;) (expression_statement "pdVar2->range_type = range_type;" (assignment_expression "pdVar2->range_type = range_type" (field_expression "pdVar2->range_type" identifier -> field_identifier) = identifier) ;) (expression_statement "pdVar2->stringp = in_stack_00000020;" (assignment_expression "pdVar2->stringp = in_stack_00000020" (field_expression "pdVar2->stringp" identifier -> field_identifier) = identifier) ;) (expression_statement "pdVar2->upper = upper;" (assignment_expression "pdVar2->upper = upper" (field_expression "pdVar2->upper" identifier -> field_identifier) = identifier) ;) (expression_statement "(pdVar1->u).karray = pdVar2;" (assignment_expression "(pdVar1->u).karray = pdVar2" (field_expression "(pdVar1->u).karray" (parenthesized_expression "(pdVar1->u)" ( (field_expression "pdVar1->u" identifier -> field_identifier) )) . field_identifier) = identifier) ;) })) (return_statement "return pdVar1;" return identifier ;) })) (return_statement "return (debug_type_conflict)0x0;" return (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal) ;) })))
(translation_unit "int debug_make_array_type\n              (undefined4 param_1,int param_2,int param_3,undefined4 param_4,int param_5,int param_6\n              ,int param_7,int param_8,int param_9)\n\n{\n  int iVar1;\n  int *piVar2;\n  \n  if ((param_2 != 0) && (param_3 != 0)) {\n    iVar1 = FUN_00049410(0x10,0);\n    if (iVar1 != 0) {\n      piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      piVar2[3] = param_6;\n      piVar2[2] = param_5;\n      *(undefined1 *)(piVar2 + 7) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1d) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1e) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1f) = 0;\n      *piVar2 = param_2;\n      piVar2[1] = param_3;\n      piVar2[6] = param_9;\n      piVar2[5] = param_8;\n      piVar2[4] = param_7;\n      *(int **)(iVar1 + 0xc) = piVar2;\n    }\n    return iVar1;\n  }\n  return 0;\n}\n\n" (function_definition "int debug_make_array_type\n              (undefined4 param_1,int param_2,int param_3,undefined4 param_4,int param_5,int param_6\n              ,int param_7,int param_8,int param_9)\n\n{\n  int iVar1;\n  int *piVar2;\n  \n  if ((param_2 != 0) && (param_3 != 0)) {\n    iVar1 = FUN_00049410(0x10,0);\n    if (iVar1 != 0) {\n      piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      piVar2[3] = param_6;\n      piVar2[2] = param_5;\n      *(undefined1 *)(piVar2 + 7) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1d) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1e) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1f) = 0;\n      *piVar2 = param_2;\n      piVar2[1] = param_3;\n      piVar2[6] = param_9;\n      piVar2[5] = param_8;\n      piVar2[4] = param_7;\n      *(int **)(iVar1 + 0xc) = piVar2;\n    }\n    return iVar1;\n  }\n  return 0;\n}" primitive_type (function_declarator "debug_make_array_type\n              (undefined4 param_1,int param_2,int param_3,undefined4 param_4,int param_5,int param_6\n              ,int param_7,int param_8,int param_9)" identifier (parameter_list "(undefined4 param_1,int param_2,int param_3,undefined4 param_4,int param_5,int param_6\n              ,int param_7,int param_8,int param_9)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "int param_8" primitive_type identifier) , (parameter_declaration "int param_9" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  \n  if ((param_2 != 0) && (param_3 != 0)) {\n    iVar1 = FUN_00049410(0x10,0);\n    if (iVar1 != 0) {\n      piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      piVar2[3] = param_6;\n      piVar2[2] = param_5;\n      *(undefined1 *)(piVar2 + 7) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1d) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1e) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1f) = 0;\n      *piVar2 = param_2;\n      piVar2[1] = param_3;\n      piVar2[6] = param_9;\n      piVar2[5] = param_8;\n      piVar2[4] = param_7;\n      *(int **)(iVar1 + 0xc) = piVar2;\n    }\n    return iVar1;\n  }\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (if_statement "if ((param_2 != 0) && (param_3 != 0)) {\n    iVar1 = FUN_00049410(0x10,0);\n    if (iVar1 != 0) {\n      piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      piVar2[3] = param_6;\n      piVar2[2] = param_5;\n      *(undefined1 *)(piVar2 + 7) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1d) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1e) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1f) = 0;\n      *piVar2 = param_2;\n      piVar2[1] = param_3;\n      piVar2[6] = param_9;\n      piVar2[5] = param_8;\n      piVar2[4] = param_7;\n      *(int **)(iVar1 + 0xc) = piVar2;\n    }\n    return iVar1;\n  }" if (parenthesized_expression "((param_2 != 0) && (param_3 != 0))" ( (binary_expression "(param_2 != 0) && (param_3 != 0)" (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) && (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    iVar1 = FUN_00049410(0x10,0);\n    if (iVar1 != 0) {\n      piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      piVar2[3] = param_6;\n      piVar2[2] = param_5;\n      *(undefined1 *)(piVar2 + 7) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1d) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1e) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1f) = 0;\n      *piVar2 = param_2;\n      piVar2[1] = param_3;\n      piVar2[6] = param_9;\n      piVar2[5] = param_8;\n      piVar2[4] = param_7;\n      *(int **)(iVar1 + 0xc) = piVar2;\n    }\n    return iVar1;\n  }" { (expression_statement "iVar1 = FUN_00049410(0x10,0);" (assignment_expression "iVar1 = FUN_00049410(0x10,0)" identifier = (call_expression "FUN_00049410(0x10,0)" identifier (argument_list "(0x10,0)" ( number_literal , number_literal )))) ;) (if_statement "if (iVar1 != 0) {\n      piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      piVar2[3] = param_6;\n      piVar2[2] = param_5;\n      *(undefined1 *)(piVar2 + 7) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1d) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1e) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1f) = 0;\n      *piVar2 = param_2;\n      piVar2[1] = param_3;\n      piVar2[6] = param_9;\n      piVar2[5] = param_8;\n      piVar2[4] = param_7;\n      *(int **)(iVar1 + 0xc) = piVar2;\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      piVar2[3] = param_6;\n      piVar2[2] = param_5;\n      *(undefined1 *)(piVar2 + 7) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1d) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1e) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1f) = 0;\n      *piVar2 = param_2;\n      piVar2[1] = param_3;\n      piVar2[6] = param_9;\n      piVar2[5] = param_8;\n      piVar2[4] = param_7;\n      *(int **)(iVar1 + 0xc) = piVar2;\n    }" { (expression_statement "piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);" (assignment_expression "piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20)" identifier = (cast_expression "(int *)(*(code *)PTR_xmalloc_000823c4)(0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_xmalloc_000823c4)(0x20)" (parenthesized_expression "(*(code *)PTR_xmalloc_000823c4)" ( (pointer_expression "*(code *)PTR_xmalloc_000823c4" * (cast_expression "(code *)PTR_xmalloc_000823c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "piVar2[3] = param_6;" (assignment_expression "piVar2[3] = param_6" (subscript_expression "piVar2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[2] = param_5;" (assignment_expression "piVar2[2] = param_5" (subscript_expression "piVar2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(piVar2 + 7) = 0;" (assignment_expression "*(undefined1 *)(piVar2 + 7) = 0" (pointer_expression "*(undefined1 *)(piVar2 + 7)" * (cast_expression "(undefined1 *)(piVar2 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar2 + 7)" ( (binary_expression "piVar2 + 7" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)piVar2 + 0x1d) = 0;" (assignment_expression "*(undefined1 *)((int)piVar2 + 0x1d) = 0" (pointer_expression "*(undefined1 *)((int)piVar2 + 0x1d)" * (cast_expression "(undefined1 *)((int)piVar2 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar2 + 0x1d)" ( (binary_expression "(int)piVar2 + 0x1d" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)piVar2 + 0x1e) = 0;" (assignment_expression "*(undefined1 *)((int)piVar2 + 0x1e) = 0" (pointer_expression "*(undefined1 *)((int)piVar2 + 0x1e)" * (cast_expression "(undefined1 *)((int)piVar2 + 0x1e)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar2 + 0x1e)" ( (binary_expression "(int)piVar2 + 0x1e" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)piVar2 + 0x1f) = 0;" (assignment_expression "*(undefined1 *)((int)piVar2 + 0x1f) = 0" (pointer_expression "*(undefined1 *)((int)piVar2 + 0x1f)" * (cast_expression "(undefined1 *)((int)piVar2 + 0x1f)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar2 + 0x1f)" ( (binary_expression "(int)piVar2 + 0x1f" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*piVar2 = param_2;" (assignment_expression "*piVar2 = param_2" (pointer_expression "*piVar2" * identifier) = identifier) ;) (expression_statement "piVar2[1] = param_3;" (assignment_expression "piVar2[1] = param_3" (subscript_expression "piVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[6] = param_9;" (assignment_expression "piVar2[6] = param_9" (subscript_expression "piVar2[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[5] = param_8;" (assignment_expression "piVar2[5] = param_8" (subscript_expression "piVar2[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[4] = param_7;" (assignment_expression "piVar2[4] = param_7" (subscript_expression "piVar2[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(int **)(iVar1 + 0xc) = piVar2;" (assignment_expression "*(int **)(iVar1 + 0xc) = piVar2" (pointer_expression "*(int **)(iVar1 + 0xc)" * (cast_expression "(int **)(iVar1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))) = identifier) ;) })) (return_statement "return iVar1;" return identifier ;) })) (return_statement "return 0;" return 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 IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (return_statement return IDENT ;) })) (return_statement return LIT ;) })))
(function_definition "int debug_make_array_type\n              (undefined4 param_1,int param_2,int param_3,undefined4 param_4,int param_5,int param_6\n              ,int param_7,int param_8,int param_9)\n\n{\n  int iVar1;\n  int *piVar2;\n  \n  if ((param_2 != 0) && (param_3 != 0)) {\n    iVar1 = FUN_00049410(0x10,0);\n    if (iVar1 != 0) {\n      piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      piVar2[3] = param_6;\n      piVar2[2] = param_5;\n      *(undefined1 *)(piVar2 + 7) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1d) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1e) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1f) = 0;\n      *piVar2 = param_2;\n      piVar2[1] = param_3;\n      piVar2[6] = param_9;\n      piVar2[5] = param_8;\n      piVar2[4] = param_7;\n      *(int **)(iVar1 + 0xc) = piVar2;\n    }\n    return iVar1;\n  }\n  return 0;\n}" (primitive_type "int") (function_declarator "debug_make_array_type\n              (undefined4 param_1,int param_2,int param_3,undefined4 param_4,int param_5,int param_6\n              ,int param_7,int param_8,int param_9)" (identifier "debug_make_array_type") (parameter_list "(undefined4 param_1,int param_2,int param_3,undefined4 param_4,int param_5,int param_6\n              ,int param_7,int param_8,int param_9)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) (, ",") (parameter_declaration "int param_7" (primitive_type "int") (identifier "param_7")) (, ",") (parameter_declaration "int param_8" (primitive_type "int") (identifier "param_8")) (, ",") (parameter_declaration "int param_9" (primitive_type "int") (identifier "param_9")) () ")"))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  \n  if ((param_2 != 0) && (param_3 != 0)) {\n    iVar1 = FUN_00049410(0x10,0);\n    if (iVar1 != 0) {\n      piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      piVar2[3] = param_6;\n      piVar2[2] = param_5;\n      *(undefined1 *)(piVar2 + 7) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1d) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1e) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1f) = 0;\n      *piVar2 = param_2;\n      piVar2[1] = param_3;\n      piVar2[6] = param_9;\n      piVar2[5] = param_8;\n      piVar2[4] = param_7;\n      *(int **)(iVar1 + 0xc) = piVar2;\n    }\n    return iVar1;\n  }\n  return 0;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (if_statement "if ((param_2 != 0) && (param_3 != 0)) {\n    iVar1 = FUN_00049410(0x10,0);\n    if (iVar1 != 0) {\n      piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      piVar2[3] = param_6;\n      piVar2[2] = param_5;\n      *(undefined1 *)(piVar2 + 7) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1d) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1e) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1f) = 0;\n      *piVar2 = param_2;\n      piVar2[1] = param_3;\n      piVar2[6] = param_9;\n      piVar2[5] = param_8;\n      piVar2[4] = param_7;\n      *(int **)(iVar1 + 0xc) = piVar2;\n    }\n    return iVar1;\n  }" (if "if") (parenthesized_expression "((param_2 != 0) && (param_3 != 0))" (( "(") (binary_expression "(param_2 != 0) && (param_3 != 0)" (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    iVar1 = FUN_00049410(0x10,0);\n    if (iVar1 != 0) {\n      piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      piVar2[3] = param_6;\n      piVar2[2] = param_5;\n      *(undefined1 *)(piVar2 + 7) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1d) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1e) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1f) = 0;\n      *piVar2 = param_2;\n      piVar2[1] = param_3;\n      piVar2[6] = param_9;\n      piVar2[5] = param_8;\n      piVar2[4] = param_7;\n      *(int **)(iVar1 + 0xc) = piVar2;\n    }\n    return iVar1;\n  }" ({ "{") (expression_statement "iVar1 = FUN_00049410(0x10,0);" (assignment_expression "iVar1 = FUN_00049410(0x10,0)" (identifier "iVar1") (= "=") (call_expression "FUN_00049410(0x10,0)" (identifier "FUN_00049410") (argument_list "(0x10,0)" (( "(") (number_literal "0x10") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n      piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      piVar2[3] = param_6;\n      piVar2[2] = param_5;\n      *(undefined1 *)(piVar2 + 7) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1d) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1e) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1f) = 0;\n      *piVar2 = param_2;\n      piVar2[1] = param_3;\n      piVar2[6] = param_9;\n      piVar2[5] = param_8;\n      piVar2[4] = param_7;\n      *(int **)(iVar1 + 0xc) = piVar2;\n    }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);\n      piVar2[3] = param_6;\n      piVar2[2] = param_5;\n      *(undefined1 *)(piVar2 + 7) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1d) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1e) = 0;\n      *(undefined1 *)((int)piVar2 + 0x1f) = 0;\n      *piVar2 = param_2;\n      piVar2[1] = param_3;\n      piVar2[6] = param_9;\n      piVar2[5] = param_8;\n      piVar2[4] = param_7;\n      *(int **)(iVar1 + 0xc) = piVar2;\n    }" ({ "{") (expression_statement "piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);" (assignment_expression "piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20)" (identifier "piVar2") (= "=") (cast_expression "(int *)(*(code *)PTR_xmalloc_000823c4)(0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_xmalloc_000823c4)(0x20)" (parenthesized_expression "(*(code *)PTR_xmalloc_000823c4)" (( "(") (pointer_expression "*(code *)PTR_xmalloc_000823c4" (* "*") (cast_expression "(code *)PTR_xmalloc_000823c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_xmalloc_000823c4"))) () ")")) (argument_list "(0x20)" (( "(") (number_literal "0x20") () ")"))))) (; ";")) (expression_statement "piVar2[3] = param_6;" (assignment_expression "piVar2[3] = param_6" (subscript_expression "piVar2[3]" (identifier "piVar2") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "param_6")) (; ";")) (expression_statement "piVar2[2] = param_5;" (assignment_expression "piVar2[2] = param_5" (subscript_expression "piVar2[2]" (identifier "piVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "param_5")) (; ";")) (expression_statement "*(undefined1 *)(piVar2 + 7) = 0;" (assignment_expression "*(undefined1 *)(piVar2 + 7) = 0" (pointer_expression "*(undefined1 *)(piVar2 + 7)" (* "*") (cast_expression "(undefined1 *)(piVar2 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar2 + 7)" (( "(") (binary_expression "piVar2 + 7" (identifier "piVar2") (+ "+") (number_literal "7")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)piVar2 + 0x1d) = 0;" (assignment_expression "*(undefined1 *)((int)piVar2 + 0x1d) = 0" (pointer_expression "*(undefined1 *)((int)piVar2 + 0x1d)" (* "*") (cast_expression "(undefined1 *)((int)piVar2 + 0x1d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar2 + 0x1d)" (( "(") (binary_expression "(int)piVar2 + 0x1d" (cast_expression "(int)piVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar2")) (+ "+") (number_literal "0x1d")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)piVar2 + 0x1e) = 0;" (assignment_expression "*(undefined1 *)((int)piVar2 + 0x1e) = 0" (pointer_expression "*(undefined1 *)((int)piVar2 + 0x1e)" (* "*") (cast_expression "(undefined1 *)((int)piVar2 + 0x1e)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar2 + 0x1e)" (( "(") (binary_expression "(int)piVar2 + 0x1e" (cast_expression "(int)piVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar2")) (+ "+") (number_literal "0x1e")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)piVar2 + 0x1f) = 0;" (assignment_expression "*(undefined1 *)((int)piVar2 + 0x1f) = 0" (pointer_expression "*(undefined1 *)((int)piVar2 + 0x1f)" (* "*") (cast_expression "(undefined1 *)((int)piVar2 + 0x1f)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar2 + 0x1f)" (( "(") (binary_expression "(int)piVar2 + 0x1f" (cast_expression "(int)piVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar2")) (+ "+") (number_literal "0x1f")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*piVar2 = param_2;" (assignment_expression "*piVar2 = param_2" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "piVar2[1] = param_3;" (assignment_expression "piVar2[1] = param_3" (subscript_expression "piVar2[1]" (identifier "piVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "piVar2[6] = param_9;" (assignment_expression "piVar2[6] = param_9" (subscript_expression "piVar2[6]" (identifier "piVar2") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "param_9")) (; ";")) (expression_statement "piVar2[5] = param_8;" (assignment_expression "piVar2[5] = param_8" (subscript_expression "piVar2[5]" (identifier "piVar2") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "param_8")) (; ";")) (expression_statement "piVar2[4] = param_7;" (assignment_expression "piVar2[4] = param_7" (subscript_expression "piVar2[4]" (identifier "piVar2") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "param_7")) (; ";")) (expression_statement "*(int **)(iVar1 + 0xc) = piVar2;" (assignment_expression "*(int **)(iVar1 + 0xc) = piVar2" (pointer_expression "*(int **)(iVar1 + 0xc)" (* "*") (cast_expression "(int **)(iVar1 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0xc)" (( "(") (binary_expression "iVar1 + 0xc" (identifier "iVar1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "piVar2")) (; ";")) (} "}"))) (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

type_1
function_1
          (void *handle,type_1 var_1,type_1 var_2,
          type_2 lower,type_2 upper,type_3 stringp)

{
  type_4 *var_4;
  type_5 *pdVar2;
  type_6 *info;
  type_3 in_stack_00000020;
  
  if ((var_1 != (type_1)0x0) && (var_2 != (type_1)0x0)) {
    var_4 = var_3((type_6 *)0x10,DEBUG_KIND_ILLEGAL,(type_7)var_2);
    if (var_4 != (type_4 *)0x0) {
      pdVar2 = (type_5 *)(*(type_8 *)PTR_xmalloc_000823c4)(0x20);
      pdVar2->lower = lower;
      pdVar2->field_0x1c = 0;
      pdVar2->field_0x1d = 0;
      pdVar2->field_0x1e = 0;
      pdVar2->field_0x1f = 0;
      pdVar2->var_1 = var_1;
      pdVar2->var_2 = var_2;
      pdVar2->stringp = in_stack_00000020;
      pdVar2->upper = upper;
      (var_4->u).karray = pdVar2;
    }
    return var_4;
  }
  return (type_1)0x0;
}


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

int MASKED
              (undefined4 param_1,int param_2,int param_3,undefined4 param_4,int param_5,int param_6
              ,int param_7,int param_8,int param_9)

{
  int iVar1;
  int *piVar2;
  
  if ((param_2 != 0) && (param_3 != 0)) {
    iVar1 = FUN_00049410(0x10,0);
    if (iVar1 != 0) {
      piVar2 = (int *)(*(code *)PTR_xmalloc_000823c4)(0x20);
      piVar2[3] = param_6;
      piVar2[2] = param_5;
      *(undefined1 *)(piVar2 + 7) = 0;
      *(undefined1 *)((int)piVar2 + 0x1d) = 0;
      *(undefined1 *)((int)piVar2 + 0x1e) = 0;
      *(undefined1 *)((int)piVar2 + 0x1f) = 0;
      *piVar2 = param_2;
      piVar2[1] = param_3;
      piVar2[6] = param_9;
      piVar2[5] = param_8;
      piVar2[4] = param_7;
      *(int **)(iVar1 + 0xc) = piVar2;
    }
    return iVar1;
  }
  return 0;
}

