
bfd_boolean stab_array_type(void *p,bfd_signed_vma low,bfd_signed_vma high,bfd_boolean stringp)

{
  stab_write_handle *info_00;
  int iVar1;
  bfd_boolean bVar2;
  char *__s;
  char *__s_00;
  size_t sVar3;
  size_t sVar4;
  char *__s_01;
  stab_write_handle *info;
  uint size;
  long tindex;
  uint local_40;
  
  info_00 = (stab_write_handle *)((long)p + 0x60);
  iVar1 = *(int *)(*(long *)((long)p + 0x60) + 0x1c);
  __s = stab_pop_type(info_00);
  if (iVar1 == 0) {
    local_40 = (uint)(*(int *)(*(long *)((long)p + 0x60) + 0x1c) != 0);
  }
  else {
    local_40 = 1;
  }
  iVar1 = *(int *)(*(long *)((long)p + 0x60) + 0x18);
  __s_00 = stab_pop_type(info_00);
  sVar3 = strlen(__s);
  sVar4 = strlen(__s_00);
  __s_01 = (char *)xmalloc(sVar3 + 100 + sVar4);
  if (stringp == 0) {
    *__s_01 = '\0';
    tindex = 0;
  }
  else {
    tindex = *(long *)((long)p + 0x68);
    *(long *)((long)p + 0x68) = tindex + 1;
    sprintf(__s_01,"%ld=@S;",tindex);
    local_40 = 1;
  }
  sVar3 = strlen(__s_01);
  sprintf(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,low,high,__s_00);
  free(__s);
  free(__s_00);
  size = 0;
  if (low <= high) {
    size = (((int)high - (int)low) + 1) * iVar1;
  }
  bVar2 = stab_push_string(info_00,__s_01,tindex,local_40,size);
  if (bVar2 != 0) {
    free(__s_01);
    bVar2 = 1;
  }
  return bVar2;
}



undefined8 FUN_0011a260(long param_1,long param_2,long param_3,int param_4)

{
  long lVar1;
  int iVar2;
  char *__s;
  char *__s_00;
  size_t sVar3;
  size_t sVar4;
  char *__s_01;
  undefined8 uVar5;
  int iVar6;
  long lVar7;
  bool bVar8;
  
  lVar1 = param_1 + 0x60;
  iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c);
  __s = (char *)FUN_00118930(lVar1);
  if (iVar2 == 0) {
    bVar8 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0;
  }
  else {
    bVar8 = true;
  }
  iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x18);
  __s_00 = (char *)FUN_00118930(lVar1);
  sVar3 = strlen(__s);
  sVar4 = strlen(__s_00);
  __s_01 = (char *)xmalloc(sVar3 + 100 + sVar4);
  if (param_4 == 0) {
    *__s_01 = '\0';
    lVar7 = 0;
  }
  else {
    lVar7 = *(long *)(param_1 + 0x68);
    *(long *)(param_1 + 0x68) = lVar7 + 1;
    sprintf(__s_01,"%ld=@S;",lVar7);
    bVar8 = true;
  }
  sVar3 = strlen(__s_01);
  sprintf(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,param_2,param_3,__s_00);
  free(__s);
  free(__s_00);
  iVar6 = 0;
  if (param_2 <= param_3) {
    iVar6 = (((int)param_3 - (int)param_2) + 1) * iVar2;
  }
  uVar5 = FUN_00119800(lVar1,__s_01,lVar7,bVar8,iVar6);
  if ((int)uVar5 != 0) {
    free(__s_01);
    uVar5 = 1;
  }
  return uVar5;
}


PUSH R15
MOV R15D,ECX
PUSH R14
PUSH R13
PUSH R12
LEA R12,[RDI + 0x60]
PUSH RBP
MOV RBP,RDI
PUSH RBX
SUB RSP,0x28
MOV RAX,qword ptr [RDI + 0x60]
MOV RDI,R12
MOV qword ptr [RSP + 0x8],RSI
MOV EBX,dword ptr [RAX + 0x1c]
MOV qword ptr [RSP + 0x10],RDX
CALL 0x00118930
MOV R14,RAX
MOV RAX,qword ptr [RBP + 0x60]
TEST EBX,EBX
JZ 0x0011a380
MOV dword ptr [RSP + 0x18],0x1
MOV EAX,dword ptr [RAX + 0x18]
MOV RDI,R12
MOV dword ptr [RSP + 0x1c],EAX
CALL 0x00118930
MOV RDI,R14
MOV R13,RAX
CALL 0x00104260
MOV RDI,R13
MOV RBX,RAX
CALL 0x00104260
LEA RDI,[RBX + RAX*0x1 + 0x64]
CALL 0x00104370
MOV RBX,RAX
TEST R15D,R15D
JNZ 0x0011a398
MOV byte ptr [RAX],0x0
XOR R15D,R15D
MOV RDI,RBX
CALL 0x00104260
MOV RBP,qword ptr [RSP + 0x10]
MOV R9,R13
MOV RDX,R14
MOV RCX,qword ptr [RSP + 0x8]
LEA RDI,[RBX + RAX*0x1]
LEA RSI,[0x12408e]
XOR EAX,EAX
MOV R8,RBP
CALL 0x00104820
MOV RDI,R14
CALL 0x00104920
MOV RDI,R13
CALL 0x00104920
MOV RAX,qword ptr [RSP + 0x8]
XOR R8D,R8D
CMP RAX,RBP
JLE 0x0011a368
MOV ECX,dword ptr [RSP + 0x18]
MOV RDX,R15
MOV RSI,RBX
MOV RDI,R12
CALL 0x00119800
TEST EAX,EAX
JZ 0x0011a356
MOV RDI,RBX
CALL 0x00104920
MOV EAX,0x1
ADD RSP,0x28
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
SUB RBP,RAX
LEA R8,[RBP + 0x1]
IMUL R8D,dword ptr [RSP + 0x1c]
JMP 0x0011a333
MOV EDX,dword ptr [RAX + 0x1c]
XOR ECX,ECX
TEST EDX,EDX
SETNZ CL
MOV dword ptr [RSP + 0x18],ECX
JMP 0x0011a2a8
MOV R15,qword ptr [RBP + 0x68]
LEA RSI,[0x124082]
MOV RDI,RBX
LEA RAX,[R15 + 0x1]
MOV RDX,R15
MOV qword ptr [RBP + 0x68],RAX
XOR EAX,EAX
CALL 0x00104820
MOV dword ptr [RSP + 0x18],0x1
JMP 0x0011a2e9
(translation_unit "undefined8 FUN_0011a260(long param_1,long param_2,long param_3,int param_4)\n\n{\n  long lVar1;\n  int iVar2;\n  char *__s;\n  char *__s_00;\n  size_t sVar3;\n  size_t sVar4;\n  char *__s_01;\n  undefined8 uVar5;\n  int iVar6;\n  long lVar7;\n  bool bVar8;\n  \n  lVar1 = param_1 + 0x60;\n  iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c);\n  __s = (char *)FUN_00118930(lVar1);\n  if (iVar2 == 0) {\n    bVar8 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0;\n  }\n  else {\n    bVar8 = true;\n  }\n  iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x18);\n  __s_00 = (char *)FUN_00118930(lVar1);\n  sVar3 = strlen(__s);\n  sVar4 = strlen(__s_00);\n  __s_01 = (char *)xmalloc(sVar3 + 100 + sVar4);\n  if (param_4 == 0) {\n    *__s_01 = '\0';\n    lVar7 = 0;\n  }\n  else {\n    lVar7 = *(long *)(param_1 + 0x68);\n    *(long *)(param_1 + 0x68) = lVar7 + 1;\n    sprintf(__s_01,"%ld=@S;",lVar7);\n    bVar8 = true;\n  }\n  sVar3 = strlen(__s_01);\n  sprintf(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,param_2,param_3,__s_00);\n  free(__s);\n  free(__s_00);\n  iVar6 = 0;\n  if (param_2 <= param_3) {\n    iVar6 = (((int)param_3 - (int)param_2) + 1) * iVar2;\n  }\n  uVar5 = FUN_00119800(lVar1,__s_01,lVar7,bVar8,iVar6);\n  if ((int)uVar5 != 0) {\n    free(__s_01);\n    uVar5 = 1;\n  }\n  return uVar5;\n}\n\n" (function_definition "undefined8 FUN_0011a260(long param_1,long param_2,long param_3,int param_4)\n\n{\n  long lVar1;\n  int iVar2;\n  char *__s;\n  char *__s_00;\n  size_t sVar3;\n  size_t sVar4;\n  char *__s_01;\n  undefined8 uVar5;\n  int iVar6;\n  long lVar7;\n  bool bVar8;\n  \n  lVar1 = param_1 + 0x60;\n  iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c);\n  __s = (char *)FUN_00118930(lVar1);\n  if (iVar2 == 0) {\n    bVar8 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0;\n  }\n  else {\n    bVar8 = true;\n  }\n  iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x18);\n  __s_00 = (char *)FUN_00118930(lVar1);\n  sVar3 = strlen(__s);\n  sVar4 = strlen(__s_00);\n  __s_01 = (char *)xmalloc(sVar3 + 100 + sVar4);\n  if (param_4 == 0) {\n    *__s_01 = '\0';\n    lVar7 = 0;\n  }\n  else {\n    lVar7 = *(long *)(param_1 + 0x68);\n    *(long *)(param_1 + 0x68) = lVar7 + 1;\n    sprintf(__s_01,"%ld=@S;",lVar7);\n    bVar8 = true;\n  }\n  sVar3 = strlen(__s_01);\n  sprintf(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,param_2,param_3,__s_00);\n  free(__s);\n  free(__s_00);\n  iVar6 = 0;\n  if (param_2 <= param_3) {\n    iVar6 = (((int)param_3 - (int)param_2) + 1) * iVar2;\n  }\n  uVar5 = FUN_00119800(lVar1,__s_01,lVar7,bVar8,iVar6);\n  if ((int)uVar5 != 0) {\n    free(__s_01);\n    uVar5 = 1;\n  }\n  return uVar5;\n}" type_identifier (function_declarator "FUN_0011a260(long param_1,long param_2,long param_3,int param_4)" identifier (parameter_list "(long param_1,long param_2,long param_3,int param_4)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  long lVar1;\n  int iVar2;\n  char *__s;\n  char *__s_00;\n  size_t sVar3;\n  size_t sVar4;\n  char *__s_01;\n  undefined8 uVar5;\n  int iVar6;\n  long lVar7;\n  bool bVar8;\n  \n  lVar1 = param_1 + 0x60;\n  iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c);\n  __s = (char *)FUN_00118930(lVar1);\n  if (iVar2 == 0) {\n    bVar8 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0;\n  }\n  else {\n    bVar8 = true;\n  }\n  iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x18);\n  __s_00 = (char *)FUN_00118930(lVar1);\n  sVar3 = strlen(__s);\n  sVar4 = strlen(__s_00);\n  __s_01 = (char *)xmalloc(sVar3 + 100 + sVar4);\n  if (param_4 == 0) {\n    *__s_01 = '\0';\n    lVar7 = 0;\n  }\n  else {\n    lVar7 = *(long *)(param_1 + 0x68);\n    *(long *)(param_1 + 0x68) = lVar7 + 1;\n    sprintf(__s_01,"%ld=@S;",lVar7);\n    bVar8 = true;\n  }\n  sVar3 = strlen(__s_01);\n  sprintf(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,param_2,param_3,__s_00);\n  free(__s);\n  free(__s_00);\n  iVar6 = 0;\n  if (param_2 <= param_3) {\n    iVar6 = (((int)param_3 - (int)param_2) + 1) * iVar2;\n  }\n  uVar5 = FUN_00119800(lVar1,__s_01,lVar7,bVar8,iVar6);\n  if ((int)uVar5 != 0) {\n    free(__s_01);\n    uVar5 = 1;\n  }\n  return uVar5;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "char *__s_00;" primitive_type (pointer_declarator "*__s_00" * identifier) ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "char *__s_01;" primitive_type (pointer_declarator "*__s_01" * identifier) ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar8;" primitive_type identifier ;) (expression_statement "lVar1 = param_1 + 0x60;" (assignment_expression "lVar1 = param_1 + 0x60" identifier = (binary_expression "param_1 + 0x60" identifier + number_literal)) ;) (expression_statement "iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c);" (assignment_expression "iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c)" identifier = (pointer_expression "*(int *)(*(long *)(param_1 + 0x60) + 0x1c)" * (cast_expression "(int *)(*(long *)(param_1 + 0x60) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x60) + 0x1c)" ( (binary_expression "*(long *)(param_1 + 0x60) + 0x1c" (pointer_expression "*(long *)(param_1 + 0x60)" * (cast_expression "(long *)(param_1 + 0x60)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "__s = (char *)FUN_00118930(lVar1);" (assignment_expression "__s = (char *)FUN_00118930(lVar1)" identifier = (cast_expression "(char *)FUN_00118930(lVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00118930(lVar1)" identifier (argument_list "(lVar1)" ( identifier ))))) ;) (if_statement "if (iVar2 == 0) {\n    bVar8 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0;\n  }\n  else {\n    bVar8 = true;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    bVar8 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0;\n  }" { (expression_statement "bVar8 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0;" (assignment_expression "bVar8 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0" identifier = (binary_expression "*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0" (pointer_expression "*(int *)(*(long *)(param_1 + 0x60) + 0x1c)" * (cast_expression "(int *)(*(long *)(param_1 + 0x60) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x60) + 0x1c)" ( (binary_expression "*(long *)(param_1 + 0x60) + 0x1c" (pointer_expression "*(long *)(param_1 + 0x60)" * (cast_expression "(long *)(param_1 + 0x60)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) + number_literal) )))) != number_literal)) ;) }) (else_clause "else {\n    bVar8 = true;\n  }" else (compound_statement "{\n    bVar8 = true;\n  }" { (expression_statement "bVar8 = true;" (assignment_expression "bVar8 = true" identifier = true) ;) }))) (expression_statement "iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x18);" (assignment_expression "iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x18)" identifier = (pointer_expression "*(int *)(*(long *)(param_1 + 0x60) + 0x18)" * (cast_expression "(int *)(*(long *)(param_1 + 0x60) + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x60) + 0x18)" ( (binary_expression "*(long *)(param_1 + 0x60) + 0x18" (pointer_expression "*(long *)(param_1 + 0x60)" * (cast_expression "(long *)(param_1 + 0x60)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "__s_00 = (char *)FUN_00118930(lVar1);" (assignment_expression "__s_00 = (char *)FUN_00118930(lVar1)" identifier = (cast_expression "(char *)FUN_00118930(lVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00118930(lVar1)" identifier (argument_list "(lVar1)" ( identifier ))))) ;) (expression_statement "sVar3 = strlen(__s);" (assignment_expression "sVar3 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "sVar4 = strlen(__s_00);" (assignment_expression "sVar4 = strlen(__s_00)" identifier = (call_expression "strlen(__s_00)" identifier (argument_list "(__s_00)" ( identifier )))) ;) (expression_statement "__s_01 = (char *)xmalloc(sVar3 + 100 + sVar4);" (assignment_expression "__s_01 = (char *)xmalloc(sVar3 + 100 + sVar4)" identifier = (cast_expression "(char *)xmalloc(sVar3 + 100 + sVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar3 + 100 + sVar4)" identifier (argument_list "(sVar3 + 100 + sVar4)" ( (binary_expression "sVar3 + 100 + sVar4" (binary_expression "sVar3 + 100" identifier + number_literal) + identifier) ))))) ;) (if_statement "if (param_4 == 0) {\n    *__s_01 = '\0';\n    lVar7 = 0;\n  }\n  else {\n    lVar7 = *(long *)(param_1 + 0x68);\n    *(long *)(param_1 + 0x68) = lVar7 + 1;\n    sprintf(__s_01,"%ld=@S;",lVar7);\n    bVar8 = true;\n  }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n    *__s_01 = '\0';\n    lVar7 = 0;\n  }" { (expression_statement "*__s_01 = '\0';" (assignment_expression "*__s_01 = '\0'" (pointer_expression "*__s_01" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lVar7 = 0;" (assignment_expression "lVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    lVar7 = *(long *)(param_1 + 0x68);\n    *(long *)(param_1 + 0x68) = lVar7 + 1;\n    sprintf(__s_01,"%ld=@S;",lVar7);\n    bVar8 = true;\n  }" else (compound_statement "{\n    lVar7 = *(long *)(param_1 + 0x68);\n    *(long *)(param_1 + 0x68) = lVar7 + 1;\n    sprintf(__s_01,"%ld=@S;",lVar7);\n    bVar8 = true;\n  }" { (expression_statement "lVar7 = *(long *)(param_1 + 0x68);" (assignment_expression "lVar7 = *(long *)(param_1 + 0x68)" identifier = (pointer_expression "*(long *)(param_1 + 0x68)" * (cast_expression "(long *)(param_1 + 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "*(long *)(param_1 + 0x68) = lVar7 + 1;" (assignment_expression "*(long *)(param_1 + 0x68) = lVar7 + 1" (pointer_expression "*(long *)(param_1 + 0x68)" * (cast_expression "(long *)(param_1 + 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) = (binary_expression "lVar7 + 1" identifier + number_literal)) ;) (expression_statement "sprintf(__s_01,"%ld=@S;",lVar7);" (call_expression "sprintf(__s_01,"%ld=@S;",lVar7)" identifier (argument_list "(__s_01,"%ld=@S;",lVar7)" ( identifier , (string_literal ""%ld=@S;"" " string_content ") , identifier ))) ;) (expression_statement "bVar8 = true;" (assignment_expression "bVar8 = true" identifier = true) ;) }))) (expression_statement "sVar3 = strlen(__s_01);" (assignment_expression "sVar3 = strlen(__s_01)" identifier = (call_expression "strlen(__s_01)" identifier (argument_list "(__s_01)" ( identifier )))) ;) (expression_statement "sprintf(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,param_2,param_3,__s_00);" (call_expression "sprintf(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,param_2,param_3,__s_00)" identifier (argument_list "(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,param_2,param_3,__s_00)" ( (binary_expression "__s_01 + sVar3" identifier + identifier) , (string_literal ""ar%s;%ld;%ld;%s"" " string_content ") , identifier , identifier , identifier , identifier ))) ;) (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (expression_statement "free(__s_00);" (call_expression "free(__s_00)" identifier (argument_list "(__s_00)" ( identifier ))) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (if_statement "if (param_2 <= param_3) {\n    iVar6 = (((int)param_3 - (int)param_2) + 1) * iVar2;\n  }" if (parenthesized_expression "(param_2 <= param_3)" ( (binary_expression "param_2 <= param_3" identifier <= identifier) )) (compound_statement "{\n    iVar6 = (((int)param_3 - (int)param_2) + 1) * iVar2;\n  }" { (expression_statement "iVar6 = (((int)param_3 - (int)param_2) + 1) * iVar2;" (assignment_expression "iVar6 = (((int)param_3 - (int)param_2) + 1) * iVar2" identifier = (binary_expression "(((int)param_3 - (int)param_2) + 1) * iVar2" (parenthesized_expression "(((int)param_3 - (int)param_2) + 1)" ( (binary_expression "((int)param_3 - (int)param_2) + 1" (parenthesized_expression "((int)param_3 - (int)param_2)" ( (binary_expression "(int)param_3 - (int)param_2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal) )) * identifier)) ;) })) (expression_statement "uVar5 = FUN_00119800(lVar1,__s_01,lVar7,bVar8,iVar6);" (assignment_expression "uVar5 = FUN_00119800(lVar1,__s_01,lVar7,bVar8,iVar6)" identifier = (call_expression "FUN_00119800(lVar1,__s_01,lVar7,bVar8,iVar6)" identifier (argument_list "(lVar1,__s_01,lVar7,bVar8,iVar6)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if ((int)uVar5 != 0) {\n    free(__s_01);\n    uVar5 = 1;\n  }" if (parenthesized_expression "((int)uVar5 != 0)" ( (binary_expression "(int)uVar5 != 0" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (compound_statement "{\n    free(__s_01);\n    uVar5 = 1;\n  }" { (expression_statement "free(__s_01);" (call_expression "free(__s_01)" identifier (argument_list "(__s_01)" ( identifier ))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) })) (return_statement "return uVar5;" return identifier ;) })))
(translation_unit "bfd_boolean stab_array_type(void *p,bfd_signed_vma low,bfd_signed_vma high,bfd_boolean stringp)\n\n{\n  stab_write_handle *info_00;\n  int iVar1;\n  bfd_boolean bVar2;\n  char *__s;\n  char *__s_00;\n  size_t sVar3;\n  size_t sVar4;\n  char *__s_01;\n  stab_write_handle *info;\n  uint size;\n  long tindex;\n  uint local_40;\n  \n  info_00 = (stab_write_handle *)((long)p + 0x60);\n  iVar1 = *(int *)(*(long *)((long)p + 0x60) + 0x1c);\n  __s = stab_pop_type(info_00);\n  if (iVar1 == 0) {\n    local_40 = (uint)(*(int *)(*(long *)((long)p + 0x60) + 0x1c) != 0);\n  }\n  else {\n    local_40 = 1;\n  }\n  iVar1 = *(int *)(*(long *)((long)p + 0x60) + 0x18);\n  __s_00 = stab_pop_type(info_00);\n  sVar3 = strlen(__s);\n  sVar4 = strlen(__s_00);\n  __s_01 = (char *)xmalloc(sVar3 + 100 + sVar4);\n  if (stringp == 0) {\n    *__s_01 = '\0';\n    tindex = 0;\n  }\n  else {\n    tindex = *(long *)((long)p + 0x68);\n    *(long *)((long)p + 0x68) = tindex + 1;\n    sprintf(__s_01,"%ld=@S;",tindex);\n    local_40 = 1;\n  }\n  sVar3 = strlen(__s_01);\n  sprintf(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,low,high,__s_00);\n  free(__s);\n  free(__s_00);\n  size = 0;\n  if (low <= high) {\n    size = (((int)high - (int)low) + 1) * iVar1;\n  }\n  bVar2 = stab_push_string(info_00,__s_01,tindex,local_40,size);\n  if (bVar2 != 0) {\n    free(__s_01);\n    bVar2 = 1;\n  }\n  return bVar2;\n}\n\n" (function_definition "bfd_boolean stab_array_type(void *p,bfd_signed_vma low,bfd_signed_vma high,bfd_boolean stringp)\n\n{\n  stab_write_handle *info_00;\n  int iVar1;\n  bfd_boolean bVar2;\n  char *__s;\n  char *__s_00;\n  size_t sVar3;\n  size_t sVar4;\n  char *__s_01;\n  stab_write_handle *info;\n  uint size;\n  long tindex;\n  uint local_40;\n  \n  info_00 = (stab_write_handle *)((long)p + 0x60);\n  iVar1 = *(int *)(*(long *)((long)p + 0x60) + 0x1c);\n  __s = stab_pop_type(info_00);\n  if (iVar1 == 0) {\n    local_40 = (uint)(*(int *)(*(long *)((long)p + 0x60) + 0x1c) != 0);\n  }\n  else {\n    local_40 = 1;\n  }\n  iVar1 = *(int *)(*(long *)((long)p + 0x60) + 0x18);\n  __s_00 = stab_pop_type(info_00);\n  sVar3 = strlen(__s);\n  sVar4 = strlen(__s_00);\n  __s_01 = (char *)xmalloc(sVar3 + 100 + sVar4);\n  if (stringp == 0) {\n    *__s_01 = '\0';\n    tindex = 0;\n  }\n  else {\n    tindex = *(long *)((long)p + 0x68);\n    *(long *)((long)p + 0x68) = tindex + 1;\n    sprintf(__s_01,"%ld=@S;",tindex);\n    local_40 = 1;\n  }\n  sVar3 = strlen(__s_01);\n  sprintf(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,low,high,__s_00);\n  free(__s);\n  free(__s_00);\n  size = 0;\n  if (low <= high) {\n    size = (((int)high - (int)low) + 1) * iVar1;\n  }\n  bVar2 = stab_push_string(info_00,__s_01,tindex,local_40,size);\n  if (bVar2 != 0) {\n    free(__s_01);\n    bVar2 = 1;\n  }\n  return bVar2;\n}" type_identifier (function_declarator "stab_array_type(void *p,bfd_signed_vma low,bfd_signed_vma high,bfd_boolean stringp)" identifier (parameter_list "(void *p,bfd_signed_vma low,bfd_signed_vma high,bfd_boolean stringp)" ( (parameter_declaration "void *p" primitive_type (pointer_declarator "*p" * identifier)) , (parameter_declaration "bfd_signed_vma low" type_identifier identifier) , (parameter_declaration "bfd_signed_vma high" type_identifier identifier) , (parameter_declaration "bfd_boolean stringp" type_identifier identifier) ))) (compound_statement "{\n  stab_write_handle *info_00;\n  int iVar1;\n  bfd_boolean bVar2;\n  char *__s;\n  char *__s_00;\n  size_t sVar3;\n  size_t sVar4;\n  char *__s_01;\n  stab_write_handle *info;\n  uint size;\n  long tindex;\n  uint local_40;\n  \n  info_00 = (stab_write_handle *)((long)p + 0x60);\n  iVar1 = *(int *)(*(long *)((long)p + 0x60) + 0x1c);\n  __s = stab_pop_type(info_00);\n  if (iVar1 == 0) {\n    local_40 = (uint)(*(int *)(*(long *)((long)p + 0x60) + 0x1c) != 0);\n  }\n  else {\n    local_40 = 1;\n  }\n  iVar1 = *(int *)(*(long *)((long)p + 0x60) + 0x18);\n  __s_00 = stab_pop_type(info_00);\n  sVar3 = strlen(__s);\n  sVar4 = strlen(__s_00);\n  __s_01 = (char *)xmalloc(sVar3 + 100 + sVar4);\n  if (stringp == 0) {\n    *__s_01 = '\0';\n    tindex = 0;\n  }\n  else {\n    tindex = *(long *)((long)p + 0x68);\n    *(long *)((long)p + 0x68) = tindex + 1;\n    sprintf(__s_01,"%ld=@S;",tindex);\n    local_40 = 1;\n  }\n  sVar3 = strlen(__s_01);\n  sprintf(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,low,high,__s_00);\n  free(__s);\n  free(__s_00);\n  size = 0;\n  if (low <= high) {\n    size = (((int)high - (int)low) + 1) * iVar1;\n  }\n  bVar2 = stab_push_string(info_00,__s_01,tindex,local_40,size);\n  if (bVar2 != 0) {\n    free(__s_01);\n    bVar2 = 1;\n  }\n  return bVar2;\n}" { (declaration "stab_write_handle *info_00;" type_identifier (pointer_declarator "*info_00" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "bfd_boolean bVar2;" type_identifier identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "char *__s_00;" primitive_type (pointer_declarator "*__s_00" * identifier) ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "char *__s_01;" primitive_type (pointer_declarator "*__s_01" * identifier) ;) (declaration "stab_write_handle *info;" type_identifier (pointer_declarator "*info" * identifier) ;) (declaration "uint size;" type_identifier identifier ;) (declaration "long tindex;" (sized_type_specifier "long" long) identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (expression_statement "info_00 = (stab_write_handle *)((long)p + 0x60);" (assignment_expression "info_00 = (stab_write_handle *)((long)p + 0x60)" identifier = (cast_expression "(stab_write_handle *)((long)p + 0x60)" ( (type_descriptor "stab_write_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x60)" ( (binary_expression "(long)p + 0x60" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "iVar1 = *(int *)(*(long *)((long)p + 0x60) + 0x1c);" (assignment_expression "iVar1 = *(int *)(*(long *)((long)p + 0x60) + 0x1c)" identifier = (pointer_expression "*(int *)(*(long *)((long)p + 0x60) + 0x1c)" * (cast_expression "(int *)(*(long *)((long)p + 0x60) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)p + 0x60) + 0x1c)" ( (binary_expression "*(long *)((long)p + 0x60) + 0x1c" (pointer_expression "*(long *)((long)p + 0x60)" * (cast_expression "(long *)((long)p + 0x60)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x60)" ( (binary_expression "(long)p + 0x60" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "__s = stab_pop_type(info_00);" (assignment_expression "__s = stab_pop_type(info_00)" identifier = (call_expression "stab_pop_type(info_00)" identifier (argument_list "(info_00)" ( identifier )))) ;) (if_statement "if (iVar1 == 0) {\n    local_40 = (uint)(*(int *)(*(long *)((long)p + 0x60) + 0x1c) != 0);\n  }\n  else {\n    local_40 = 1;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    local_40 = (uint)(*(int *)(*(long *)((long)p + 0x60) + 0x1c) != 0);\n  }" { (expression_statement "local_40 = (uint)(*(int *)(*(long *)((long)p + 0x60) + 0x1c) != 0);" (assignment_expression "local_40 = (uint)(*(int *)(*(long *)((long)p + 0x60) + 0x1c) != 0)" identifier = (call_expression "(uint)(*(int *)(*(long *)((long)p + 0x60) + 0x1c) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(*(long *)((long)p + 0x60) + 0x1c) != 0)" ( (binary_expression "*(int *)(*(long *)((long)p + 0x60) + 0x1c) != 0" (pointer_expression "*(int *)(*(long *)((long)p + 0x60) + 0x1c)" * (cast_expression "(int *)(*(long *)((long)p + 0x60) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)p + 0x60) + 0x1c)" ( (binary_expression "*(long *)((long)p + 0x60) + 0x1c" (pointer_expression "*(long *)((long)p + 0x60)" * (cast_expression "(long *)((long)p + 0x60)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x60)" ( (binary_expression "(long)p + 0x60" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) )))) != number_literal) )))) ;) }) (else_clause "else {\n    local_40 = 1;\n  }" else (compound_statement "{\n    local_40 = 1;\n  }" { (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) }))) (expression_statement "iVar1 = *(int *)(*(long *)((long)p + 0x60) + 0x18);" (assignment_expression "iVar1 = *(int *)(*(long *)((long)p + 0x60) + 0x18)" identifier = (pointer_expression "*(int *)(*(long *)((long)p + 0x60) + 0x18)" * (cast_expression "(int *)(*(long *)((long)p + 0x60) + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)p + 0x60) + 0x18)" ( (binary_expression "*(long *)((long)p + 0x60) + 0x18" (pointer_expression "*(long *)((long)p + 0x60)" * (cast_expression "(long *)((long)p + 0x60)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x60)" ( (binary_expression "(long)p + 0x60" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "__s_00 = stab_pop_type(info_00);" (assignment_expression "__s_00 = stab_pop_type(info_00)" identifier = (call_expression "stab_pop_type(info_00)" identifier (argument_list "(info_00)" ( identifier )))) ;) (expression_statement "sVar3 = strlen(__s);" (assignment_expression "sVar3 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "sVar4 = strlen(__s_00);" (assignment_expression "sVar4 = strlen(__s_00)" identifier = (call_expression "strlen(__s_00)" identifier (argument_list "(__s_00)" ( identifier )))) ;) (expression_statement "__s_01 = (char *)xmalloc(sVar3 + 100 + sVar4);" (assignment_expression "__s_01 = (char *)xmalloc(sVar3 + 100 + sVar4)" identifier = (cast_expression "(char *)xmalloc(sVar3 + 100 + sVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar3 + 100 + sVar4)" identifier (argument_list "(sVar3 + 100 + sVar4)" ( (binary_expression "sVar3 + 100 + sVar4" (binary_expression "sVar3 + 100" identifier + number_literal) + identifier) ))))) ;) (if_statement "if (stringp == 0) {\n    *__s_01 = '\0';\n    tindex = 0;\n  }\n  else {\n    tindex = *(long *)((long)p + 0x68);\n    *(long *)((long)p + 0x68) = tindex + 1;\n    sprintf(__s_01,"%ld=@S;",tindex);\n    local_40 = 1;\n  }" if (parenthesized_expression "(stringp == 0)" ( (binary_expression "stringp == 0" identifier == number_literal) )) (compound_statement "{\n    *__s_01 = '\0';\n    tindex = 0;\n  }" { (expression_statement "*__s_01 = '\0';" (assignment_expression "*__s_01 = '\0'" (pointer_expression "*__s_01" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "tindex = 0;" (assignment_expression "tindex = 0" identifier = number_literal) ;) }) (else_clause "else {\n    tindex = *(long *)((long)p + 0x68);\n    *(long *)((long)p + 0x68) = tindex + 1;\n    sprintf(__s_01,"%ld=@S;",tindex);\n    local_40 = 1;\n  }" else (compound_statement "{\n    tindex = *(long *)((long)p + 0x68);\n    *(long *)((long)p + 0x68) = tindex + 1;\n    sprintf(__s_01,"%ld=@S;",tindex);\n    local_40 = 1;\n  }" { (expression_statement "tindex = *(long *)((long)p + 0x68);" (assignment_expression "tindex = *(long *)((long)p + 0x68)" identifier = (pointer_expression "*(long *)((long)p + 0x68)" * (cast_expression "(long *)((long)p + 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x68)" ( (binary_expression "(long)p + 0x68" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "*(long *)((long)p + 0x68) = tindex + 1;" (assignment_expression "*(long *)((long)p + 0x68) = tindex + 1" (pointer_expression "*(long *)((long)p + 0x68)" * (cast_expression "(long *)((long)p + 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x68)" ( (binary_expression "(long)p + 0x68" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "tindex + 1" identifier + number_literal)) ;) (expression_statement "sprintf(__s_01,"%ld=@S;",tindex);" (call_expression "sprintf(__s_01,"%ld=@S;",tindex)" identifier (argument_list "(__s_01,"%ld=@S;",tindex)" ( identifier , (string_literal ""%ld=@S;"" " string_content ") , identifier ))) ;) (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) }))) (expression_statement "sVar3 = strlen(__s_01);" (assignment_expression "sVar3 = strlen(__s_01)" identifier = (call_expression "strlen(__s_01)" identifier (argument_list "(__s_01)" ( identifier )))) ;) (expression_statement "sprintf(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,low,high,__s_00);" (call_expression "sprintf(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,low,high,__s_00)" identifier (argument_list "(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,low,high,__s_00)" ( (binary_expression "__s_01 + sVar3" identifier + identifier) , (string_literal ""ar%s;%ld;%ld;%s"" " string_content ") , identifier , identifier , identifier , identifier ))) ;) (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (expression_statement "free(__s_00);" (call_expression "free(__s_00)" identifier (argument_list "(__s_00)" ( identifier ))) ;) (expression_statement "size = 0;" (assignment_expression "size = 0" identifier = number_literal) ;) (if_statement "if (low <= high) {\n    size = (((int)high - (int)low) + 1) * iVar1;\n  }" if (parenthesized_expression "(low <= high)" ( (binary_expression "low <= high" identifier <= identifier) )) (compound_statement "{\n    size = (((int)high - (int)low) + 1) * iVar1;\n  }" { (expression_statement "size = (((int)high - (int)low) + 1) * iVar1;" (assignment_expression "size = (((int)high - (int)low) + 1) * iVar1" identifier = (binary_expression "(((int)high - (int)low) + 1) * iVar1" (parenthesized_expression "(((int)high - (int)low) + 1)" ( (binary_expression "((int)high - (int)low) + 1" (parenthesized_expression "((int)high - (int)low)" ( (binary_expression "(int)high - (int)low" (cast_expression "(int)high" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)low" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal) )) * identifier)) ;) })) (expression_statement "bVar2 = stab_push_string(info_00,__s_01,tindex,local_40,size);" (assignment_expression "bVar2 = stab_push_string(info_00,__s_01,tindex,local_40,size)" identifier = (call_expression "stab_push_string(info_00,__s_01,tindex,local_40,size)" identifier (argument_list "(info_00,__s_01,tindex,local_40,size)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (bVar2 != 0) {\n    free(__s_01);\n    bVar2 = 1;\n  }" if (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    free(__s_01);\n    bVar2 = 1;\n  }" { (expression_statement "free(__s_01);" (call_expression "free(__s_01)" identifier (argument_list "(__s_01)" ( identifier ))) ;) (expression_statement "bVar2 = 1;" (assignment_expression "bVar2 = 1" identifier = number_literal) ;) })) (return_statement "return bVar2;" return identifier ;) })))
(translation_unit "undefined8 FUN_0011a260(long param_1,long param_2,long param_3,int param_4)\n\n{\n  long lVar1;\n  int iVar2;\n  char *__s;\n  char *__s_00;\n  size_t sVar3;\n  size_t sVar4;\n  char *__s_01;\n  undefined8 uVar5;\n  int iVar6;\n  long lVar7;\n  bool bVar8;\n  \n  lVar1 = param_1 + 0x60;\n  iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c);\n  __s = (char *)FUN_00118930(lVar1);\n  if (iVar2 == 0) {\n    bVar8 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0;\n  }\n  else {\n    bVar8 = true;\n  }\n  iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x18);\n  __s_00 = (char *)FUN_00118930(lVar1);\n  sVar3 = strlen(__s);\n  sVar4 = strlen(__s_00);\n  __s_01 = (char *)xmalloc(sVar3 + 100 + sVar4);\n  if (param_4 == 0) {\n    *__s_01 = '\0';\n    lVar7 = 0;\n  }\n  else {\n    lVar7 = *(long *)(param_1 + 0x68);\n    *(long *)(param_1 + 0x68) = lVar7 + 1;\n    sprintf(__s_01,"%ld=@S;",lVar7);\n    bVar8 = true;\n  }\n  sVar3 = strlen(__s_01);\n  sprintf(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,param_2,param_3,__s_00);\n  free(__s);\n  free(__s_00);\n  iVar6 = 0;\n  if (param_2 <= param_3) {\n    iVar6 = (((int)param_3 - (int)param_2) + 1) * iVar2;\n  }\n  uVar5 = FUN_00119800(lVar1,__s_01,lVar7,bVar8,iVar6);\n  if ((int)uVar5 != 0) {\n    free(__s_01);\n    uVar5 = 1;\n  }\n  return uVar5;\n}\n\n" (function_definition "undefined8 FUN_0011a260(long param_1,long param_2,long param_3,int param_4)\n\n{\n  long lVar1;\n  int iVar2;\n  char *__s;\n  char *__s_00;\n  size_t sVar3;\n  size_t sVar4;\n  char *__s_01;\n  undefined8 uVar5;\n  int iVar6;\n  long lVar7;\n  bool bVar8;\n  \n  lVar1 = param_1 + 0x60;\n  iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c);\n  __s = (char *)FUN_00118930(lVar1);\n  if (iVar2 == 0) {\n    bVar8 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0;\n  }\n  else {\n    bVar8 = true;\n  }\n  iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x18);\n  __s_00 = (char *)FUN_00118930(lVar1);\n  sVar3 = strlen(__s);\n  sVar4 = strlen(__s_00);\n  __s_01 = (char *)xmalloc(sVar3 + 100 + sVar4);\n  if (param_4 == 0) {\n    *__s_01 = '\0';\n    lVar7 = 0;\n  }\n  else {\n    lVar7 = *(long *)(param_1 + 0x68);\n    *(long *)(param_1 + 0x68) = lVar7 + 1;\n    sprintf(__s_01,"%ld=@S;",lVar7);\n    bVar8 = true;\n  }\n  sVar3 = strlen(__s_01);\n  sprintf(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,param_2,param_3,__s_00);\n  free(__s);\n  free(__s_00);\n  iVar6 = 0;\n  if (param_2 <= param_3) {\n    iVar6 = (((int)param_3 - (int)param_2) + 1) * iVar2;\n  }\n  uVar5 = FUN_00119800(lVar1,__s_01,lVar7,bVar8,iVar6);\n  if ((int)uVar5 != 0) {\n    free(__s_01);\n    uVar5 = 1;\n  }\n  return uVar5;\n}" type_identifier (function_declarator "FUN_0011a260(long param_1,long param_2,long param_3,int param_4)" identifier (parameter_list "(long param_1,long param_2,long param_3,int param_4)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  long lVar1;\n  int iVar2;\n  char *__s;\n  char *__s_00;\n  size_t sVar3;\n  size_t sVar4;\n  char *__s_01;\n  undefined8 uVar5;\n  int iVar6;\n  long lVar7;\n  bool bVar8;\n  \n  lVar1 = param_1 + 0x60;\n  iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c);\n  __s = (char *)FUN_00118930(lVar1);\n  if (iVar2 == 0) {\n    bVar8 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0;\n  }\n  else {\n    bVar8 = true;\n  }\n  iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x18);\n  __s_00 = (char *)FUN_00118930(lVar1);\n  sVar3 = strlen(__s);\n  sVar4 = strlen(__s_00);\n  __s_01 = (char *)xmalloc(sVar3 + 100 + sVar4);\n  if (param_4 == 0) {\n    *__s_01 = '\0';\n    lVar7 = 0;\n  }\n  else {\n    lVar7 = *(long *)(param_1 + 0x68);\n    *(long *)(param_1 + 0x68) = lVar7 + 1;\n    sprintf(__s_01,"%ld=@S;",lVar7);\n    bVar8 = true;\n  }\n  sVar3 = strlen(__s_01);\n  sprintf(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,param_2,param_3,__s_00);\n  free(__s);\n  free(__s_00);\n  iVar6 = 0;\n  if (param_2 <= param_3) {\n    iVar6 = (((int)param_3 - (int)param_2) + 1) * iVar2;\n  }\n  uVar5 = FUN_00119800(lVar1,__s_01,lVar7,bVar8,iVar6);\n  if ((int)uVar5 != 0) {\n    free(__s_01);\n    uVar5 = 1;\n  }\n  return uVar5;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "char *__s_00;" primitive_type (pointer_declarator "*__s_00" * identifier) ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "char *__s_01;" primitive_type (pointer_declarator "*__s_01" * identifier) ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar8;" primitive_type identifier ;) (expression_statement "lVar1 = param_1 + 0x60;" (assignment_expression "lVar1 = param_1 + 0x60" identifier = (binary_expression "param_1 + 0x60" identifier + number_literal)) ;) (expression_statement "iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c);" (assignment_expression "iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c)" identifier = (pointer_expression "*(int *)(*(long *)(param_1 + 0x60) + 0x1c)" * (cast_expression "(int *)(*(long *)(param_1 + 0x60) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x60) + 0x1c)" ( (binary_expression "*(long *)(param_1 + 0x60) + 0x1c" (pointer_expression "*(long *)(param_1 + 0x60)" * (cast_expression "(long *)(param_1 + 0x60)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "__s = (char *)FUN_00118930(lVar1);" (assignment_expression "__s = (char *)FUN_00118930(lVar1)" identifier = (cast_expression "(char *)FUN_00118930(lVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00118930(lVar1)" identifier (argument_list "(lVar1)" ( identifier ))))) ;) (if_statement "if (iVar2 == 0) {\n    bVar8 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0;\n  }\n  else {\n    bVar8 = true;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    bVar8 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0;\n  }" { (expression_statement "bVar8 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0;" (assignment_expression "bVar8 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0" identifier = (binary_expression "*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0" (pointer_expression "*(int *)(*(long *)(param_1 + 0x60) + 0x1c)" * (cast_expression "(int *)(*(long *)(param_1 + 0x60) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x60) + 0x1c)" ( (binary_expression "*(long *)(param_1 + 0x60) + 0x1c" (pointer_expression "*(long *)(param_1 + 0x60)" * (cast_expression "(long *)(param_1 + 0x60)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) + number_literal) )))) != number_literal)) ;) }) (else_clause "else {\n    bVar8 = true;\n  }" else (compound_statement "{\n    bVar8 = true;\n  }" { (expression_statement "bVar8 = true;" (assignment_expression "bVar8 = true" identifier = true) ;) }))) (expression_statement "iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x18);" (assignment_expression "iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x18)" identifier = (pointer_expression "*(int *)(*(long *)(param_1 + 0x60) + 0x18)" * (cast_expression "(int *)(*(long *)(param_1 + 0x60) + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x60) + 0x18)" ( (binary_expression "*(long *)(param_1 + 0x60) + 0x18" (pointer_expression "*(long *)(param_1 + 0x60)" * (cast_expression "(long *)(param_1 + 0x60)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "__s_00 = (char *)FUN_00118930(lVar1);" (assignment_expression "__s_00 = (char *)FUN_00118930(lVar1)" identifier = (cast_expression "(char *)FUN_00118930(lVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00118930(lVar1)" identifier (argument_list "(lVar1)" ( identifier ))))) ;) (expression_statement "sVar3 = strlen(__s);" (assignment_expression "sVar3 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "sVar4 = strlen(__s_00);" (assignment_expression "sVar4 = strlen(__s_00)" identifier = (call_expression "strlen(__s_00)" identifier (argument_list "(__s_00)" ( identifier )))) ;) (expression_statement "__s_01 = (char *)xmalloc(sVar3 + 100 + sVar4);" (assignment_expression "__s_01 = (char *)xmalloc(sVar3 + 100 + sVar4)" identifier = (cast_expression "(char *)xmalloc(sVar3 + 100 + sVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar3 + 100 + sVar4)" identifier (argument_list "(sVar3 + 100 + sVar4)" ( (binary_expression "sVar3 + 100 + sVar4" (binary_expression "sVar3 + 100" identifier + number_literal) + identifier) ))))) ;) (if_statement "if (param_4 == 0) {\n    *__s_01 = '\0';\n    lVar7 = 0;\n  }\n  else {\n    lVar7 = *(long *)(param_1 + 0x68);\n    *(long *)(param_1 + 0x68) = lVar7 + 1;\n    sprintf(__s_01,"%ld=@S;",lVar7);\n    bVar8 = true;\n  }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n    *__s_01 = '\0';\n    lVar7 = 0;\n  }" { (expression_statement "*__s_01 = '\0';" (assignment_expression "*__s_01 = '\0'" (pointer_expression "*__s_01" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lVar7 = 0;" (assignment_expression "lVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    lVar7 = *(long *)(param_1 + 0x68);\n    *(long *)(param_1 + 0x68) = lVar7 + 1;\n    sprintf(__s_01,"%ld=@S;",lVar7);\n    bVar8 = true;\n  }" else (compound_statement "{\n    lVar7 = *(long *)(param_1 + 0x68);\n    *(long *)(param_1 + 0x68) = lVar7 + 1;\n    sprintf(__s_01,"%ld=@S;",lVar7);\n    bVar8 = true;\n  }" { (expression_statement "lVar7 = *(long *)(param_1 + 0x68);" (assignment_expression "lVar7 = *(long *)(param_1 + 0x68)" identifier = (pointer_expression "*(long *)(param_1 + 0x68)" * (cast_expression "(long *)(param_1 + 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "*(long *)(param_1 + 0x68) = lVar7 + 1;" (assignment_expression "*(long *)(param_1 + 0x68) = lVar7 + 1" (pointer_expression "*(long *)(param_1 + 0x68)" * (cast_expression "(long *)(param_1 + 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) = (binary_expression "lVar7 + 1" identifier + number_literal)) ;) (expression_statement "sprintf(__s_01,"%ld=@S;",lVar7);" (call_expression "sprintf(__s_01,"%ld=@S;",lVar7)" identifier (argument_list "(__s_01,"%ld=@S;",lVar7)" ( identifier , (string_literal ""%ld=@S;"" " string_content ") , identifier ))) ;) (expression_statement "bVar8 = true;" (assignment_expression "bVar8 = true" identifier = true) ;) }))) (expression_statement "sVar3 = strlen(__s_01);" (assignment_expression "sVar3 = strlen(__s_01)" identifier = (call_expression "strlen(__s_01)" identifier (argument_list "(__s_01)" ( identifier )))) ;) (expression_statement "sprintf(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,param_2,param_3,__s_00);" (call_expression "sprintf(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,param_2,param_3,__s_00)" identifier (argument_list "(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,param_2,param_3,__s_00)" ( (binary_expression "__s_01 + sVar3" identifier + identifier) , (string_literal ""ar%s;%ld;%ld;%s"" " string_content ") , identifier , identifier , identifier , identifier ))) ;) (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (expression_statement "free(__s_00);" (call_expression "free(__s_00)" identifier (argument_list "(__s_00)" ( identifier ))) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (if_statement "if (param_2 <= param_3) {\n    iVar6 = (((int)param_3 - (int)param_2) + 1) * iVar2;\n  }" if (parenthesized_expression "(param_2 <= param_3)" ( (binary_expression "param_2 <= param_3" identifier <= identifier) )) (compound_statement "{\n    iVar6 = (((int)param_3 - (int)param_2) + 1) * iVar2;\n  }" { (expression_statement "iVar6 = (((int)param_3 - (int)param_2) + 1) * iVar2;" (assignment_expression "iVar6 = (((int)param_3 - (int)param_2) + 1) * iVar2" identifier = (binary_expression "(((int)param_3 - (int)param_2) + 1) * iVar2" (parenthesized_expression "(((int)param_3 - (int)param_2) + 1)" ( (binary_expression "((int)param_3 - (int)param_2) + 1" (parenthesized_expression "((int)param_3 - (int)param_2)" ( (binary_expression "(int)param_3 - (int)param_2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal) )) * identifier)) ;) })) (expression_statement "uVar5 = FUN_00119800(lVar1,__s_01,lVar7,bVar8,iVar6);" (assignment_expression "uVar5 = FUN_00119800(lVar1,__s_01,lVar7,bVar8,iVar6)" identifier = (call_expression "FUN_00119800(lVar1,__s_01,lVar7,bVar8,iVar6)" identifier (argument_list "(lVar1,__s_01,lVar7,bVar8,iVar6)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if ((int)uVar5 != 0) {\n    free(__s_01);\n    uVar5 = 1;\n  }" if (parenthesized_expression "((int)uVar5 != 0)" ( (binary_expression "(int)uVar5 != 0" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (compound_statement "{\n    free(__s_01);\n    uVar5 = 1;\n  }" { (expression_statement "free(__s_01);" (call_expression "free(__s_01)" identifier (argument_list "(__s_01)" ( identifier ))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) })) (return_statement "return uVar5;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , (string_literal " string_content ") , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) + LIT) )) * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (return_statement return IDENT ;) })))
(function_definition "undefined8 FUN_0011a260(long param_1,long param_2,long param_3,int param_4)\n\n{\n  long lVar1;\n  int iVar2;\n  char *__s;\n  char *__s_00;\n  size_t sVar3;\n  size_t sVar4;\n  char *__s_01;\n  undefined8 uVar5;\n  int iVar6;\n  long lVar7;\n  bool bVar8;\n  \n  lVar1 = param_1 + 0x60;\n  iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c);\n  __s = (char *)FUN_00118930(lVar1);\n  if (iVar2 == 0) {\n    bVar8 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0;\n  }\n  else {\n    bVar8 = true;\n  }\n  iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x18);\n  __s_00 = (char *)FUN_00118930(lVar1);\n  sVar3 = strlen(__s);\n  sVar4 = strlen(__s_00);\n  __s_01 = (char *)xmalloc(sVar3 + 100 + sVar4);\n  if (param_4 == 0) {\n    *__s_01 = '\0';\n    lVar7 = 0;\n  }\n  else {\n    lVar7 = *(long *)(param_1 + 0x68);\n    *(long *)(param_1 + 0x68) = lVar7 + 1;\n    sprintf(__s_01,"%ld=@S;",lVar7);\n    bVar8 = true;\n  }\n  sVar3 = strlen(__s_01);\n  sprintf(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,param_2,param_3,__s_00);\n  free(__s);\n  free(__s_00);\n  iVar6 = 0;\n  if (param_2 <= param_3) {\n    iVar6 = (((int)param_3 - (int)param_2) + 1) * iVar2;\n  }\n  uVar5 = FUN_00119800(lVar1,__s_01,lVar7,bVar8,iVar6);\n  if ((int)uVar5 != 0) {\n    free(__s_01);\n    uVar5 = 1;\n  }\n  return uVar5;\n}" (type_identifier "undefined8") (function_declarator "FUN_0011a260(long param_1,long param_2,long param_3,int param_4)" (identifier "FUN_0011a260") (parameter_list "(long param_1,long param_2,long param_3,int param_4)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  long lVar1;\n  int iVar2;\n  char *__s;\n  char *__s_00;\n  size_t sVar3;\n  size_t sVar4;\n  char *__s_01;\n  undefined8 uVar5;\n  int iVar6;\n  long lVar7;\n  bool bVar8;\n  \n  lVar1 = param_1 + 0x60;\n  iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c);\n  __s = (char *)FUN_00118930(lVar1);\n  if (iVar2 == 0) {\n    bVar8 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0;\n  }\n  else {\n    bVar8 = true;\n  }\n  iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x18);\n  __s_00 = (char *)FUN_00118930(lVar1);\n  sVar3 = strlen(__s);\n  sVar4 = strlen(__s_00);\n  __s_01 = (char *)xmalloc(sVar3 + 100 + sVar4);\n  if (param_4 == 0) {\n    *__s_01 = '\0';\n    lVar7 = 0;\n  }\n  else {\n    lVar7 = *(long *)(param_1 + 0x68);\n    *(long *)(param_1 + 0x68) = lVar7 + 1;\n    sprintf(__s_01,"%ld=@S;",lVar7);\n    bVar8 = true;\n  }\n  sVar3 = strlen(__s_01);\n  sprintf(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,param_2,param_3,__s_00);\n  free(__s);\n  free(__s_00);\n  iVar6 = 0;\n  if (param_2 <= param_3) {\n    iVar6 = (((int)param_3 - (int)param_2) + 1) * iVar2;\n  }\n  uVar5 = FUN_00119800(lVar1,__s_01,lVar7,bVar8,iVar6);\n  if ((int)uVar5 != 0) {\n    free(__s_01);\n    uVar5 = 1;\n  }\n  return uVar5;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "char *__s_00;" (primitive_type "char") (pointer_declarator "*__s_00" (* "*") (identifier "__s_00")) (; ";")) (declaration "size_t sVar3;" (primitive_type "size_t") (identifier "sVar3") (; ";")) (declaration "size_t sVar4;" (primitive_type "size_t") (identifier "sVar4") (; ";")) (declaration "char *__s_01;" (primitive_type "char") (pointer_declarator "*__s_01" (* "*") (identifier "__s_01")) (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "bool bVar8;" (primitive_type "bool") (identifier "bVar8") (; ";")) (expression_statement "lVar1 = param_1 + 0x60;" (assignment_expression "lVar1 = param_1 + 0x60" (identifier "lVar1") (= "=") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60"))) (; ";")) (expression_statement "iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c);" (assignment_expression "iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(*(long *)(param_1 + 0x60) + 0x1c)" (* "*") (cast_expression "(int *)(*(long *)(param_1 + 0x60) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0x60) + 0x1c)" (( "(") (binary_expression "*(long *)(param_1 + 0x60) + 0x1c" (pointer_expression "*(long *)(param_1 + 0x60)" (* "*") (cast_expression "(long *)(param_1 + 0x60)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")")))) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "__s = (char *)FUN_00118930(lVar1);" (assignment_expression "__s = (char *)FUN_00118930(lVar1)" (identifier "__s") (= "=") (cast_expression "(char *)FUN_00118930(lVar1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00118930(lVar1)" (identifier "FUN_00118930") (argument_list "(lVar1)" (( "(") (identifier "lVar1") () ")"))))) (; ";")) (if_statement "if (iVar2 == 0) {\n    bVar8 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0;\n  }\n  else {\n    bVar8 = true;\n  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    bVar8 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0;\n  }" ({ "{") (expression_statement "bVar8 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0;" (assignment_expression "bVar8 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0" (identifier "bVar8") (= "=") (binary_expression "*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0" (pointer_expression "*(int *)(*(long *)(param_1 + 0x60) + 0x1c)" (* "*") (cast_expression "(int *)(*(long *)(param_1 + 0x60) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0x60) + 0x1c)" (( "(") (binary_expression "*(long *)(param_1 + 0x60) + 0x1c" (pointer_expression "*(long *)(param_1 + 0x60)" (* "*") (cast_expression "(long *)(param_1 + 0x60)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (number_literal "0"))) (; ";")) (} "}")) (else_clause "else {\n    bVar8 = true;\n  }" (else "else") (compound_statement "{\n    bVar8 = true;\n  }" ({ "{") (expression_statement "bVar8 = true;" (assignment_expression "bVar8 = true" (identifier "bVar8") (= "=") (true "true")) (; ";")) (} "}")))) (expression_statement "iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x18);" (assignment_expression "iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x18)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(*(long *)(param_1 + 0x60) + 0x18)" (* "*") (cast_expression "(int *)(*(long *)(param_1 + 0x60) + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0x60) + 0x18)" (( "(") (binary_expression "*(long *)(param_1 + 0x60) + 0x18" (pointer_expression "*(long *)(param_1 + 0x60)" (* "*") (cast_expression "(long *)(param_1 + 0x60)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")")))) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "__s_00 = (char *)FUN_00118930(lVar1);" (assignment_expression "__s_00 = (char *)FUN_00118930(lVar1)" (identifier "__s_00") (= "=") (cast_expression "(char *)FUN_00118930(lVar1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00118930(lVar1)" (identifier "FUN_00118930") (argument_list "(lVar1)" (( "(") (identifier "lVar1") () ")"))))) (; ";")) (expression_statement "sVar3 = strlen(__s);" (assignment_expression "sVar3 = strlen(__s)" (identifier "sVar3") (= "=") (call_expression "strlen(__s)" (identifier "strlen") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (expression_statement "sVar4 = strlen(__s_00);" (assignment_expression "sVar4 = strlen(__s_00)" (identifier "sVar4") (= "=") (call_expression "strlen(__s_00)" (identifier "strlen") (argument_list "(__s_00)" (( "(") (identifier "__s_00") () ")")))) (; ";")) (expression_statement "__s_01 = (char *)xmalloc(sVar3 + 100 + sVar4);" (assignment_expression "__s_01 = (char *)xmalloc(sVar3 + 100 + sVar4)" (identifier "__s_01") (= "=") (cast_expression "(char *)xmalloc(sVar3 + 100 + sVar4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar3 + 100 + sVar4)" (identifier "xmalloc") (argument_list "(sVar3 + 100 + sVar4)" (( "(") (binary_expression "sVar3 + 100 + sVar4" (binary_expression "sVar3 + 100" (identifier "sVar3") (+ "+") (number_literal "100")) (+ "+") (identifier "sVar4")) () ")"))))) (; ";")) (if_statement "if (param_4 == 0) {\n    *__s_01 = '\0';\n    lVar7 = 0;\n  }\n  else {\n    lVar7 = *(long *)(param_1 + 0x68);\n    *(long *)(param_1 + 0x68) = lVar7 + 1;\n    sprintf(__s_01,"%ld=@S;",lVar7);\n    bVar8 = true;\n  }" (if "if") (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *__s_01 = '\0';\n    lVar7 = 0;\n  }" ({ "{") (expression_statement "*__s_01 = '\0';" (assignment_expression "*__s_01 = '\0'" (pointer_expression "*__s_01" (* "*") (identifier "__s_01")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "lVar7 = 0;" (assignment_expression "lVar7 = 0" (identifier "lVar7") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    lVar7 = *(long *)(param_1 + 0x68);\n    *(long *)(param_1 + 0x68) = lVar7 + 1;\n    sprintf(__s_01,"%ld=@S;",lVar7);\n    bVar8 = true;\n  }" (else "else") (compound_statement "{\n    lVar7 = *(long *)(param_1 + 0x68);\n    *(long *)(param_1 + 0x68) = lVar7 + 1;\n    sprintf(__s_01,"%ld=@S;",lVar7);\n    bVar8 = true;\n  }" ({ "{") (expression_statement "lVar7 = *(long *)(param_1 + 0x68);" (assignment_expression "lVar7 = *(long *)(param_1 + 0x68)" (identifier "lVar7") (= "=") (pointer_expression "*(long *)(param_1 + 0x68)" (* "*") (cast_expression "(long *)(param_1 + 0x68)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (expression_statement "*(long *)(param_1 + 0x68) = lVar7 + 1;" (assignment_expression "*(long *)(param_1 + 0x68) = lVar7 + 1" (pointer_expression "*(long *)(param_1 + 0x68)" (* "*") (cast_expression "(long *)(param_1 + 0x68)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")")))) (= "=") (binary_expression "lVar7 + 1" (identifier "lVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "sprintf(__s_01,"%ld=@S;",lVar7);" (call_expression "sprintf(__s_01,"%ld=@S;",lVar7)" (identifier "sprintf") (argument_list "(__s_01,"%ld=@S;",lVar7)" (( "(") (identifier "__s_01") (, ",") (string_literal ""%ld=@S;"" (" """) (string_content "%ld=@S;") (" """)) (, ",") (identifier "lVar7") () ")"))) (; ";")) (expression_statement "bVar8 = true;" (assignment_expression "bVar8 = true" (identifier "bVar8") (= "=") (true "true")) (; ";")) (} "}")))) (expression_statement "sVar3 = strlen(__s_01);" (assignment_expression "sVar3 = strlen(__s_01)" (identifier "sVar3") (= "=") (call_expression "strlen(__s_01)" (identifier "strlen") (argument_list "(__s_01)" (( "(") (identifier "__s_01") () ")")))) (; ";")) (expression_statement "sprintf(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,param_2,param_3,__s_00);" (call_expression "sprintf(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,param_2,param_3,__s_00)" (identifier "sprintf") (argument_list "(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,param_2,param_3,__s_00)" (( "(") (binary_expression "__s_01 + sVar3" (identifier "__s_01") (+ "+") (identifier "sVar3")) (, ",") (string_literal ""ar%s;%ld;%ld;%s"" (" """) (string_content "ar%s;%ld;%ld;%s") (" """)) (, ",") (identifier "__s") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "__s_00") () ")"))) (; ";")) (expression_statement "free(__s);" (call_expression "free(__s)" (identifier "free") (argument_list "(__s)" (( "(") (identifier "__s") () ")"))) (; ";")) (expression_statement "free(__s_00);" (call_expression "free(__s_00)" (identifier "free") (argument_list "(__s_00)" (( "(") (identifier "__s_00") () ")"))) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_2 <= param_3) {\n    iVar6 = (((int)param_3 - (int)param_2) + 1) * iVar2;\n  }" (if "if") (parenthesized_expression "(param_2 <= param_3)" (( "(") (binary_expression "param_2 <= param_3" (identifier "param_2") (<= "<=") (identifier "param_3")) () ")")) (compound_statement "{\n    iVar6 = (((int)param_3 - (int)param_2) + 1) * iVar2;\n  }" ({ "{") (expression_statement "iVar6 = (((int)param_3 - (int)param_2) + 1) * iVar2;" (assignment_expression "iVar6 = (((int)param_3 - (int)param_2) + 1) * iVar2" (identifier "iVar6") (= "=") (binary_expression "(((int)param_3 - (int)param_2) + 1) * iVar2" (parenthesized_expression "(((int)param_3 - (int)param_2) + 1)" (( "(") (binary_expression "((int)param_3 - (int)param_2) + 1" (parenthesized_expression "((int)param_3 - (int)param_2)" (( "(") (binary_expression "(int)param_3 - (int)param_2" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")) (+ "+") (number_literal "1")) () ")")) (* "*") (identifier "iVar2"))) (; ";")) (} "}"))) (expression_statement "uVar5 = FUN_00119800(lVar1,__s_01,lVar7,bVar8,iVar6);" (assignment_expression "uVar5 = FUN_00119800(lVar1,__s_01,lVar7,bVar8,iVar6)" (identifier "uVar5") (= "=") (call_expression "FUN_00119800(lVar1,__s_01,lVar7,bVar8,iVar6)" (identifier "FUN_00119800") (argument_list "(lVar1,__s_01,lVar7,bVar8,iVar6)" (( "(") (identifier "lVar1") (, ",") (identifier "__s_01") (, ",") (identifier "lVar7") (, ",") (identifier "bVar8") (, ",") (identifier "iVar6") () ")")))) (; ";")) (if_statement "if ((int)uVar5 != 0) {\n    free(__s_01);\n    uVar5 = 1;\n  }" (if "if") (parenthesized_expression "((int)uVar5 != 0)" (( "(") (binary_expression "(int)uVar5 != 0" (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    free(__s_01);\n    uVar5 = 1;\n  }" ({ "{") (expression_statement "free(__s_01);" (call_expression "free(__s_01)" (identifier "free") (argument_list "(__s_01)" (( "(") (identifier "__s_01") () ")"))) (; ";")) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (} "}"))) (return_statement "return uVar5;" (return "return") (identifier "uVar5") (; ";")) (} "}")))

type_1 function_1(void *p,type_2 var_12,type_2 var_13,type_1 var_7)

{
  type_3 *info_00;
  int var_2;
  type_1 var_15;
  char *__s;
  char *__s_00;
  size_t var_5;
  size_t var_6;
  char *var_10;
  type_3 *info;
  type_4 size;
  long var_8;
  type_4 local_40;
  
  info_00 = (type_3 *)((long)p + 0x60);
  var_2 = *(int *)(*(long *)((long)p + 0x60) + 0x1c);
  __s = var_1(info_00);
  if (var_2 == 0) {
    local_40 = (type_4)(*(int *)(*(long *)((long)p + 0x60) + 0x1c) != 0);
  }
  else {
    local_40 = 1;
  }
  var_2 = *(int *)(*(long *)((long)p + 0x60) + 0x18);
  __s_00 = var_1(info_00);
  var_5 = var_3(__s);
  var_6 = var_3(__s_00);
  var_10 = (char *)var_4(var_5 + 100 + var_6);
  if (var_7 == 0) {
    *var_10 = '\0';
    var_8 = 0;
  }
  else {
    var_8 = *(long *)((long)p + 0x68);
    *(long *)((long)p + 0x68) = var_8 + 1;
    var_9(var_10,"%ld=@S;",var_8);
    local_40 = 1;
  }
  var_5 = var_3(var_10);
  var_9(var_10 + var_5,"ar%s;%ld;%ld;%s",__s,var_12,var_13,__s_00);
  var_11(__s);
  var_11(__s_00);
  size = 0;
  if (var_12 <= var_13) {
    size = (((int)var_13 - (int)var_12) + 1) * var_2;
  }
  var_15 = var_14(info_00,var_10,var_8,local_40,size);
  if (var_15 != 0) {
    var_11(var_10);
    var_15 = 1;
  }
  return var_15;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (true)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (string_literal (string_content)) (identifier) (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (number_literal))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (return_statement (identifier)))))

undefined8 MASKED(long param_1,long param_2,long param_3,int param_4)

{
  long lVar1;
  int iVar2;
  char *__s;
  char *__s_00;
  size_t sVar3;
  size_t sVar4;
  char *__s_01;
  undefined8 uVar5;
  int iVar6;
  long lVar7;
  bool bVar8;
  
  lVar1 = param_1 + 0x60;
  iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c);
  __s = (char *)FUN_00118930(lVar1);
  if (iVar2 == 0) {
    bVar8 = *(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0;
  }
  else {
    bVar8 = true;
  }
  iVar2 = *(int *)(*(long *)(param_1 + 0x60) + 0x18);
  __s_00 = (char *)FUN_00118930(lVar1);
  sVar3 = strlen(__s);
  sVar4 = strlen(__s_00);
  __s_01 = (char *)xmalloc(sVar3 + 100 + sVar4);
  if (param_4 == 0) {
    *__s_01 = '\0';
    lVar7 = 0;
  }
  else {
    lVar7 = *(long *)(param_1 + 0x68);
    *(long *)(param_1 + 0x68) = lVar7 + 1;
    sprintf(__s_01,"%ld=@S;",lVar7);
    bVar8 = true;
  }
  sVar3 = strlen(__s_01);
  sprintf(__s_01 + sVar3,"ar%s;%ld;%ld;%s",__s,param_2,param_3,__s_00);
  free(__s);
  free(__s_00);
  iVar6 = 0;
  if (param_2 <= param_3) {
    iVar6 = (((int)param_3 - (int)param_2) + 1) * iVar2;
  }
  uVar5 = FUN_00119800(lVar1,__s_01,lVar7,bVar8,iVar6);
  if ((int)uVar5 != 0) {
    free(__s_01);
    uVar5 = 1;
  }
  return uVar5;
}

