
bfd_boolean stab_function_type(void *p,int argcount,bfd_boolean varargs)

{
  bfd_boolean bVar1;
  char *pcVar2;
  size_t sVar3;
  char *__s;
  int iVar4;
  stab_write_handle *info;
  
  iVar4 = 0;
  if (0 < argcount) {
    do {
      while (*(int *)(*(long *)((long)p + 0x60) + 0x1c) == 0) {
        pcVar2 = stab_pop_type((stab_write_handle *)((long)p + 0x60));
        iVar4 = iVar4 + 1;
        free(pcVar2);
        if (argcount == iVar4) goto LAB_0011a04b;
      }
      pcVar2 = stab_pop_type((stab_write_handle *)((long)p + 0x60));
      sVar3 = strlen(pcVar2);
      __s = (char *)xmalloc(sVar3 + 3);
      sprintf(__s,":t%s",pcVar2);
      free(pcVar2);
      bVar1 = stab_write_symbol((stab_write_handle *)p,0x80,0,0,__s);
      if (bVar1 == 0) {
        return 0;
      }
      iVar4 = iVar4 + 1;
      free(__s);
    } while (argcount != iVar4);
  }
LAB_0011a04b:
  bVar1 = stab_modify_type((stab_write_handle *)p,0x66,0,(long **)((long)p + 0x188),
                           (size_t *)((long)p + 400));
  return bVar1;
}



undefined8 FUN_00119fa0(long param_1,int param_2)

{
  int iVar1;
  void *__ptr;
  char *__s;
  size_t sVar2;
  char *__s_00;
  undefined8 uVar3;
  int iVar4;
  
  iVar4 = 0;
  if (0 < param_2) {
    do {
      while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {
        __ptr = (void *)FUN_00118930(param_1 + 0x60);
        iVar4 = iVar4 + 1;
        free(__ptr);
        if (param_2 == iVar4) goto LAB_0011a04b;
      }
      __s = (char *)FUN_00118930(param_1 + 0x60);
      sVar2 = strlen(__s);
      __s_00 = (char *)xmalloc(sVar2 + 3);
      sprintf(__s_00,":t%s",__s);
      free(__s);
      iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);
      if (iVar1 == 0) {
        return 0;
      }
      iVar4 = iVar4 + 1;
      free(__s_00);
    } while (param_2 != iVar4);
  }
LAB_0011a04b:
  uVar3 = FUN_00119cf0(param_1,0x66,0,param_1 + 0x188,param_1 + 400);
  return uVar3;
}


PUSH R15
LEA R15,[RDI + 0x60]
PUSH R14
MOV R14D,ESI
PUSH R13
MOV R13,RDI
PUSH R12
PUSH RBP
PUSH RBX
XOR EBX,EBX
SUB RSP,0x8
TEST ESI,ESI
JG 0x00119fdd
JMP 0x0011a04b
CALL 0x00118930
ADD EBX,0x1
MOV RDI,RAX
CALL 0x00104920
CMP R14D,EBX
JZ 0x0011a04b
MOV RAX,qword ptr [R13 + 0x60]
MOV RDI,R15
MOV EAX,dword ptr [RAX + 0x1c]
TEST EAX,EAX
JZ 0x00119fc8
CALL 0x00118930
MOV RDI,RAX
MOV RBP,RAX
CALL 0x00104260
LEA RDI,[RAX + 0x3]
CALL 0x00104370
MOV RDX,RBP
LEA RSI,[0x123fe0]
MOV RDI,RAX
MOV R12,RAX
XOR EAX,EAX
CALL 0x00104820
MOV RDI,RBP
CALL 0x00104920
XOR ECX,ECX
XOR EDX,EDX
MOV R8,R12
MOV ESI,0x80
MOV RDI,R13
CALL 0x00118330
TEST EAX,EAX
JZ 0x0011a080
MOV RDI,R12
ADD EBX,0x1
CALL 0x00104920
CMP R14D,EBX
JNZ 0x00119fdd
ADD RSP,0x8
LEA RCX,[R13 + 0x188]
MOV RDI,R13
XOR EDX,EDX
POP RBX
LEA R8,[R13 + 0x190]
POP RBP
MOV ESI,0x66
POP R12
POP R13
POP R14
POP R15
JMP 0x00119cf0
ADD RSP,0x8
XOR EAX,EAX
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
(translation_unit "undefined8 FUN_00119fa0(long param_1,int param_2)\n\n{\n  int iVar1;\n  void *__ptr;\n  char *__s;\n  size_t sVar2;\n  char *__s_00;\n  undefined8 uVar3;\n  int iVar4;\n  \n  iVar4 = 0;\n  if (0 < param_2) {\n    do {\n      while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }\n      __s = (char *)FUN_00118930(param_1 + 0x60);\n      sVar2 = strlen(__s);\n      __s_00 = (char *)xmalloc(sVar2 + 3);\n      sprintf(__s_00,":t%s",__s);\n      free(__s);\n      iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);\n      if (iVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s_00);\n    } while (param_2 != iVar4);\n  }\nLAB_0011a04b:\n  uVar3 = FUN_00119cf0(param_1,0x66,0,param_1 + 0x188,param_1 + 400);\n  return uVar3;\n}\n\n" (function_definition "undefined8 FUN_00119fa0(long param_1,int param_2)\n\n{\n  int iVar1;\n  void *__ptr;\n  char *__s;\n  size_t sVar2;\n  char *__s_00;\n  undefined8 uVar3;\n  int iVar4;\n  \n  iVar4 = 0;\n  if (0 < param_2) {\n    do {\n      while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }\n      __s = (char *)FUN_00118930(param_1 + 0x60);\n      sVar2 = strlen(__s);\n      __s_00 = (char *)xmalloc(sVar2 + 3);\n      sprintf(__s_00,":t%s",__s);\n      free(__s);\n      iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);\n      if (iVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s_00);\n    } while (param_2 != iVar4);\n  }\nLAB_0011a04b:\n  uVar3 = FUN_00119cf0(param_1,0x66,0,param_1 + 0x188,param_1 + 400);\n  return uVar3;\n}" type_identifier (function_declarator "FUN_00119fa0(long param_1,int param_2)" identifier (parameter_list "(long param_1,int param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  void *__ptr;\n  char *__s;\n  size_t sVar2;\n  char *__s_00;\n  undefined8 uVar3;\n  int iVar4;\n  \n  iVar4 = 0;\n  if (0 < param_2) {\n    do {\n      while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }\n      __s = (char *)FUN_00118930(param_1 + 0x60);\n      sVar2 = strlen(__s);\n      __s_00 = (char *)xmalloc(sVar2 + 3);\n      sprintf(__s_00,":t%s",__s);\n      free(__s);\n      iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);\n      if (iVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s_00);\n    } while (param_2 != iVar4);\n  }\nLAB_0011a04b:\n  uVar3 = FUN_00119cf0(param_1,0x66,0,param_1 + 0x188,param_1 + 400);\n  return uVar3;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "char *__s_00;" primitive_type (pointer_declarator "*__s_00" * identifier) ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (if_statement "if (0 < param_2) {\n    do {\n      while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }\n      __s = (char *)FUN_00118930(param_1 + 0x60);\n      sVar2 = strlen(__s);\n      __s_00 = (char *)xmalloc(sVar2 + 3);\n      sprintf(__s_00,":t%s",__s);\n      free(__s);\n      iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);\n      if (iVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s_00);\n    } while (param_2 != iVar4);\n  }" if (parenthesized_expression "(0 < param_2)" ( (binary_expression "0 < param_2" number_literal < identifier) )) (compound_statement "{\n    do {\n      while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }\n      __s = (char *)FUN_00118930(param_1 + 0x60);\n      sVar2 = strlen(__s);\n      __s_00 = (char *)xmalloc(sVar2 + 3);\n      sprintf(__s_00,":t%s",__s);\n      free(__s);\n      iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);\n      if (iVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s_00);\n    } while (param_2 != iVar4);\n  }" { (do_statement "do {\n      while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }\n      __s = (char *)FUN_00118930(param_1 + 0x60);\n      sVar2 = strlen(__s);\n      __s_00 = (char *)xmalloc(sVar2 + 3);\n      sprintf(__s_00,":t%s",__s);\n      free(__s);\n      iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);\n      if (iVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s_00);\n    } while (param_2 != iVar4);" do (compound_statement "{\n      while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }\n      __s = (char *)FUN_00118930(param_1 + 0x60);\n      sVar2 = strlen(__s);\n      __s_00 = (char *)xmalloc(sVar2 + 3);\n      sprintf(__s_00,":t%s",__s);\n      free(__s);\n      iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);\n      if (iVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s_00);\n    }" { (while_statement "while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }" while (parenthesized_expression "(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0)" ( (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) )) (compound_statement "{\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }" { (expression_statement "__ptr = (void *)FUN_00118930(param_1 + 0x60);" (assignment_expression "__ptr = (void *)FUN_00118930(param_1 + 0x60)" identifier = (cast_expression "(void *)FUN_00118930(param_1 + 0x60)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00118930(param_1 + 0x60)" identifier (argument_list "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (if_statement "if (param_2 == iVar4) goto LAB_0011a04b;" if (parenthesized_expression "(param_2 == iVar4)" ( (binary_expression "param_2 == iVar4" identifier == identifier) )) (goto_statement "goto LAB_0011a04b;" goto statement_identifier ;)) })) (expression_statement "__s = (char *)FUN_00118930(param_1 + 0x60);" (assignment_expression "__s = (char *)FUN_00118930(param_1 + 0x60)" identifier = (cast_expression "(char *)FUN_00118930(param_1 + 0x60)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00118930(param_1 + 0x60)" identifier (argument_list "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "sVar2 = strlen(__s);" (assignment_expression "sVar2 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "__s_00 = (char *)xmalloc(sVar2 + 3);" (assignment_expression "__s_00 = (char *)xmalloc(sVar2 + 3)" identifier = (cast_expression "(char *)xmalloc(sVar2 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar2 + 3)" identifier (argument_list "(sVar2 + 3)" ( (binary_expression "sVar2 + 3" identifier + number_literal) ))))) ;) (expression_statement "sprintf(__s_00,":t%s",__s);" (call_expression "sprintf(__s_00,":t%s",__s)" identifier (argument_list "(__s_00,":t%s",__s)" ( identifier , (string_literal "":t%s"" " string_content ") , identifier ))) ;) (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (expression_statement "iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);" (assignment_expression "iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00)" identifier = (call_expression "FUN_00118330(param_1,0x80,0,0,__s_00)" identifier (argument_list "(param_1,0x80,0,0,__s_00)" ( identifier , number_literal , number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "free(__s_00);" (call_expression "free(__s_00)" identifier (argument_list "(__s_00)" ( identifier ))) ;) }) while (parenthesized_expression "(param_2 != iVar4)" ( (binary_expression "param_2 != iVar4" identifier != identifier) )) ;) })) (labeled_statement "LAB_0011a04b:\n  uVar3 = FUN_00119cf0(param_1,0x66,0,param_1 + 0x188,param_1 + 400);" statement_identifier : (expression_statement "uVar3 = FUN_00119cf0(param_1,0x66,0,param_1 + 0x188,param_1 + 400);" (assignment_expression "uVar3 = FUN_00119cf0(param_1,0x66,0,param_1 + 0x188,param_1 + 400)" identifier = (call_expression "FUN_00119cf0(param_1,0x66,0,param_1 + 0x188,param_1 + 400)" identifier (argument_list "(param_1,0x66,0,param_1 + 0x188,param_1 + 400)" ( identifier , number_literal , number_literal , (binary_expression "param_1 + 0x188" identifier + number_literal) , (binary_expression "param_1 + 400" identifier + number_literal) )))) ;)) (return_statement "return uVar3;" return identifier ;) })))
(translation_unit "bfd_boolean stab_function_type(void *p,int argcount,bfd_boolean varargs)\n\n{\n  bfd_boolean bVar1;\n  char *pcVar2;\n  size_t sVar3;\n  char *__s;\n  int iVar4;\n  stab_write_handle *info;\n  \n  iVar4 = 0;\n  if (0 < argcount) {\n    do {\n      while (*(int *)(*(long *)((long)p + 0x60) + 0x1c) == 0) {\n        pcVar2 = stab_pop_type((stab_write_handle *)((long)p + 0x60));\n        iVar4 = iVar4 + 1;\n        free(pcVar2);\n        if (argcount == iVar4) goto LAB_0011a04b;\n      }\n      pcVar2 = stab_pop_type((stab_write_handle *)((long)p + 0x60));\n      sVar3 = strlen(pcVar2);\n      __s = (char *)xmalloc(sVar3 + 3);\n      sprintf(__s,":t%s",pcVar2);\n      free(pcVar2);\n      bVar1 = stab_write_symbol((stab_write_handle *)p,0x80,0,0,__s);\n      if (bVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s);\n    } while (argcount != iVar4);\n  }\nLAB_0011a04b:\n  bVar1 = stab_modify_type((stab_write_handle *)p,0x66,0,(long **)((long)p + 0x188),\n                           (size_t *)((long)p + 400));\n  return bVar1;\n}\n\n" (function_definition "bfd_boolean stab_function_type(void *p,int argcount,bfd_boolean varargs)\n\n{\n  bfd_boolean bVar1;\n  char *pcVar2;\n  size_t sVar3;\n  char *__s;\n  int iVar4;\n  stab_write_handle *info;\n  \n  iVar4 = 0;\n  if (0 < argcount) {\n    do {\n      while (*(int *)(*(long *)((long)p + 0x60) + 0x1c) == 0) {\n        pcVar2 = stab_pop_type((stab_write_handle *)((long)p + 0x60));\n        iVar4 = iVar4 + 1;\n        free(pcVar2);\n        if (argcount == iVar4) goto LAB_0011a04b;\n      }\n      pcVar2 = stab_pop_type((stab_write_handle *)((long)p + 0x60));\n      sVar3 = strlen(pcVar2);\n      __s = (char *)xmalloc(sVar3 + 3);\n      sprintf(__s,":t%s",pcVar2);\n      free(pcVar2);\n      bVar1 = stab_write_symbol((stab_write_handle *)p,0x80,0,0,__s);\n      if (bVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s);\n    } while (argcount != iVar4);\n  }\nLAB_0011a04b:\n  bVar1 = stab_modify_type((stab_write_handle *)p,0x66,0,(long **)((long)p + 0x188),\n                           (size_t *)((long)p + 400));\n  return bVar1;\n}" type_identifier (function_declarator "stab_function_type(void *p,int argcount,bfd_boolean varargs)" identifier (parameter_list "(void *p,int argcount,bfd_boolean varargs)" ( (parameter_declaration "void *p" primitive_type (pointer_declarator "*p" * identifier)) , (parameter_declaration "int argcount" primitive_type identifier) , (parameter_declaration "bfd_boolean varargs" type_identifier identifier) ))) (compound_statement "{\n  bfd_boolean bVar1;\n  char *pcVar2;\n  size_t sVar3;\n  char *__s;\n  int iVar4;\n  stab_write_handle *info;\n  \n  iVar4 = 0;\n  if (0 < argcount) {\n    do {\n      while (*(int *)(*(long *)((long)p + 0x60) + 0x1c) == 0) {\n        pcVar2 = stab_pop_type((stab_write_handle *)((long)p + 0x60));\n        iVar4 = iVar4 + 1;\n        free(pcVar2);\n        if (argcount == iVar4) goto LAB_0011a04b;\n      }\n      pcVar2 = stab_pop_type((stab_write_handle *)((long)p + 0x60));\n      sVar3 = strlen(pcVar2);\n      __s = (char *)xmalloc(sVar3 + 3);\n      sprintf(__s,":t%s",pcVar2);\n      free(pcVar2);\n      bVar1 = stab_write_symbol((stab_write_handle *)p,0x80,0,0,__s);\n      if (bVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s);\n    } while (argcount != iVar4);\n  }\nLAB_0011a04b:\n  bVar1 = stab_modify_type((stab_write_handle *)p,0x66,0,(long **)((long)p + 0x188),\n                           (size_t *)((long)p + 400));\n  return bVar1;\n}" { (declaration "bfd_boolean bVar1;" type_identifier identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "stab_write_handle *info;" type_identifier (pointer_declarator "*info" * identifier) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (if_statement "if (0 < argcount) {\n    do {\n      while (*(int *)(*(long *)((long)p + 0x60) + 0x1c) == 0) {\n        pcVar2 = stab_pop_type((stab_write_handle *)((long)p + 0x60));\n        iVar4 = iVar4 + 1;\n        free(pcVar2);\n        if (argcount == iVar4) goto LAB_0011a04b;\n      }\n      pcVar2 = stab_pop_type((stab_write_handle *)((long)p + 0x60));\n      sVar3 = strlen(pcVar2);\n      __s = (char *)xmalloc(sVar3 + 3);\n      sprintf(__s,":t%s",pcVar2);\n      free(pcVar2);\n      bVar1 = stab_write_symbol((stab_write_handle *)p,0x80,0,0,__s);\n      if (bVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s);\n    } while (argcount != iVar4);\n  }" if (parenthesized_expression "(0 < argcount)" ( (binary_expression "0 < argcount" number_literal < identifier) )) (compound_statement "{\n    do {\n      while (*(int *)(*(long *)((long)p + 0x60) + 0x1c) == 0) {\n        pcVar2 = stab_pop_type((stab_write_handle *)((long)p + 0x60));\n        iVar4 = iVar4 + 1;\n        free(pcVar2);\n        if (argcount == iVar4) goto LAB_0011a04b;\n      }\n      pcVar2 = stab_pop_type((stab_write_handle *)((long)p + 0x60));\n      sVar3 = strlen(pcVar2);\n      __s = (char *)xmalloc(sVar3 + 3);\n      sprintf(__s,":t%s",pcVar2);\n      free(pcVar2);\n      bVar1 = stab_write_symbol((stab_write_handle *)p,0x80,0,0,__s);\n      if (bVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s);\n    } while (argcount != iVar4);\n  }" { (do_statement "do {\n      while (*(int *)(*(long *)((long)p + 0x60) + 0x1c) == 0) {\n        pcVar2 = stab_pop_type((stab_write_handle *)((long)p + 0x60));\n        iVar4 = iVar4 + 1;\n        free(pcVar2);\n        if (argcount == iVar4) goto LAB_0011a04b;\n      }\n      pcVar2 = stab_pop_type((stab_write_handle *)((long)p + 0x60));\n      sVar3 = strlen(pcVar2);\n      __s = (char *)xmalloc(sVar3 + 3);\n      sprintf(__s,":t%s",pcVar2);\n      free(pcVar2);\n      bVar1 = stab_write_symbol((stab_write_handle *)p,0x80,0,0,__s);\n      if (bVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s);\n    } while (argcount != iVar4);" do (compound_statement "{\n      while (*(int *)(*(long *)((long)p + 0x60) + 0x1c) == 0) {\n        pcVar2 = stab_pop_type((stab_write_handle *)((long)p + 0x60));\n        iVar4 = iVar4 + 1;\n        free(pcVar2);\n        if (argcount == iVar4) goto LAB_0011a04b;\n      }\n      pcVar2 = stab_pop_type((stab_write_handle *)((long)p + 0x60));\n      sVar3 = strlen(pcVar2);\n      __s = (char *)xmalloc(sVar3 + 3);\n      sprintf(__s,":t%s",pcVar2);\n      free(pcVar2);\n      bVar1 = stab_write_symbol((stab_write_handle *)p,0x80,0,0,__s);\n      if (bVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s);\n    }" { (while_statement "while (*(int *)(*(long *)((long)p + 0x60) + 0x1c) == 0) {\n        pcVar2 = stab_pop_type((stab_write_handle *)((long)p + 0x60));\n        iVar4 = iVar4 + 1;\n        free(pcVar2);\n        if (argcount == iVar4) goto LAB_0011a04b;\n      }" while (parenthesized_expression "(*(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) )) (compound_statement "{\n        pcVar2 = stab_pop_type((stab_write_handle *)((long)p + 0x60));\n        iVar4 = iVar4 + 1;\n        free(pcVar2);\n        if (argcount == iVar4) goto LAB_0011a04b;\n      }" { (expression_statement "pcVar2 = stab_pop_type((stab_write_handle *)((long)p + 0x60));" (assignment_expression "pcVar2 = stab_pop_type((stab_write_handle *)((long)p + 0x60))" identifier = (call_expression "stab_pop_type((stab_write_handle *)((long)p + 0x60))" identifier (argument_list "((stab_write_handle *)((long)p + 0x60))" ( (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 "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "free(pcVar2);" (call_expression "free(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (if_statement "if (argcount == iVar4) goto LAB_0011a04b;" if (parenthesized_expression "(argcount == iVar4)" ( (binary_expression "argcount == iVar4" identifier == identifier) )) (goto_statement "goto LAB_0011a04b;" goto statement_identifier ;)) })) (expression_statement "pcVar2 = stab_pop_type((stab_write_handle *)((long)p + 0x60));" (assignment_expression "pcVar2 = stab_pop_type((stab_write_handle *)((long)p + 0x60))" identifier = (call_expression "stab_pop_type((stab_write_handle *)((long)p + 0x60))" identifier (argument_list "((stab_write_handle *)((long)p + 0x60))" ( (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 "sVar3 = strlen(pcVar2);" (assignment_expression "sVar3 = strlen(pcVar2)" identifier = (call_expression "strlen(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier )))) ;) (expression_statement "__s = (char *)xmalloc(sVar3 + 3);" (assignment_expression "__s = (char *)xmalloc(sVar3 + 3)" identifier = (cast_expression "(char *)xmalloc(sVar3 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar3 + 3)" identifier (argument_list "(sVar3 + 3)" ( (binary_expression "sVar3 + 3" identifier + number_literal) ))))) ;) (expression_statement "sprintf(__s,":t%s",pcVar2);" (call_expression "sprintf(__s,":t%s",pcVar2)" identifier (argument_list "(__s,":t%s",pcVar2)" ( identifier , (string_literal "":t%s"" " string_content ") , identifier ))) ;) (expression_statement "free(pcVar2);" (call_expression "free(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (expression_statement "bVar1 = stab_write_symbol((stab_write_handle *)p,0x80,0,0,__s);" (assignment_expression "bVar1 = stab_write_symbol((stab_write_handle *)p,0x80,0,0,__s)" identifier = (call_expression "stab_write_symbol((stab_write_handle *)p,0x80,0,0,__s)" identifier (argument_list "((stab_write_handle *)p,0x80,0,0,__s)" ( (cast_expression "(stab_write_handle *)p" ( (type_descriptor "stab_write_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , number_literal , number_literal , identifier )))) ;) (if_statement "if (bVar1 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) }) while (parenthesized_expression "(argcount != iVar4)" ( (binary_expression "argcount != iVar4" identifier != identifier) )) ;) })) (labeled_statement "LAB_0011a04b:\n  bVar1 = stab_modify_type((stab_write_handle *)p,0x66,0,(long **)((long)p + 0x188),\n                           (size_t *)((long)p + 400));" statement_identifier : (expression_statement "bVar1 = stab_modify_type((stab_write_handle *)p,0x66,0,(long **)((long)p + 0x188),\n                           (size_t *)((long)p + 400));" (assignment_expression "bVar1 = stab_modify_type((stab_write_handle *)p,0x66,0,(long **)((long)p + 0x188),\n                           (size_t *)((long)p + 400))" identifier = (call_expression "stab_modify_type((stab_write_handle *)p,0x66,0,(long **)((long)p + 0x188),\n                           (size_t *)((long)p + 400))" identifier (argument_list "((stab_write_handle *)p,0x66,0,(long **)((long)p + 0x188),\n                           (size_t *)((long)p + 400))" ( (cast_expression "(stab_write_handle *)p" ( (type_descriptor "stab_write_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , number_literal , (cast_expression "(long **)((long)p + 0x188)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)p + 0x188)" ( (binary_expression "(long)p + 0x188" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) , (cast_expression "(size_t *)((long)p + 400)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 400)" ( (binary_expression "(long)p + 400" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) )))) ;)) (return_statement "return bVar1;" return identifier ;) })))
(translation_unit "undefined8 FUN_00119fa0(long param_1,int param_2)\n\n{\n  int iVar1;\n  void *__ptr;\n  char *__s;\n  size_t sVar2;\n  char *__s_00;\n  undefined8 uVar3;\n  int iVar4;\n  \n  iVar4 = 0;\n  if (0 < param_2) {\n    do {\n      while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }\n      __s = (char *)FUN_00118930(param_1 + 0x60);\n      sVar2 = strlen(__s);\n      __s_00 = (char *)xmalloc(sVar2 + 3);\n      sprintf(__s_00,":t%s",__s);\n      free(__s);\n      iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);\n      if (iVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s_00);\n    } while (param_2 != iVar4);\n  }\nLAB_0011a04b:\n  uVar3 = FUN_00119cf0(param_1,0x66,0,param_1 + 0x188,param_1 + 400);\n  return uVar3;\n}\n\n" (function_definition "undefined8 FUN_00119fa0(long param_1,int param_2)\n\n{\n  int iVar1;\n  void *__ptr;\n  char *__s;\n  size_t sVar2;\n  char *__s_00;\n  undefined8 uVar3;\n  int iVar4;\n  \n  iVar4 = 0;\n  if (0 < param_2) {\n    do {\n      while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }\n      __s = (char *)FUN_00118930(param_1 + 0x60);\n      sVar2 = strlen(__s);\n      __s_00 = (char *)xmalloc(sVar2 + 3);\n      sprintf(__s_00,":t%s",__s);\n      free(__s);\n      iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);\n      if (iVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s_00);\n    } while (param_2 != iVar4);\n  }\nLAB_0011a04b:\n  uVar3 = FUN_00119cf0(param_1,0x66,0,param_1 + 0x188,param_1 + 400);\n  return uVar3;\n}" type_identifier (function_declarator "FUN_00119fa0(long param_1,int param_2)" identifier (parameter_list "(long param_1,int param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  void *__ptr;\n  char *__s;\n  size_t sVar2;\n  char *__s_00;\n  undefined8 uVar3;\n  int iVar4;\n  \n  iVar4 = 0;\n  if (0 < param_2) {\n    do {\n      while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }\n      __s = (char *)FUN_00118930(param_1 + 0x60);\n      sVar2 = strlen(__s);\n      __s_00 = (char *)xmalloc(sVar2 + 3);\n      sprintf(__s_00,":t%s",__s);\n      free(__s);\n      iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);\n      if (iVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s_00);\n    } while (param_2 != iVar4);\n  }\nLAB_0011a04b:\n  uVar3 = FUN_00119cf0(param_1,0x66,0,param_1 + 0x188,param_1 + 400);\n  return uVar3;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "char *__s_00;" primitive_type (pointer_declarator "*__s_00" * identifier) ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (if_statement "if (0 < param_2) {\n    do {\n      while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }\n      __s = (char *)FUN_00118930(param_1 + 0x60);\n      sVar2 = strlen(__s);\n      __s_00 = (char *)xmalloc(sVar2 + 3);\n      sprintf(__s_00,":t%s",__s);\n      free(__s);\n      iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);\n      if (iVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s_00);\n    } while (param_2 != iVar4);\n  }" if (parenthesized_expression "(0 < param_2)" ( (binary_expression "0 < param_2" number_literal < identifier) )) (compound_statement "{\n    do {\n      while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }\n      __s = (char *)FUN_00118930(param_1 + 0x60);\n      sVar2 = strlen(__s);\n      __s_00 = (char *)xmalloc(sVar2 + 3);\n      sprintf(__s_00,":t%s",__s);\n      free(__s);\n      iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);\n      if (iVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s_00);\n    } while (param_2 != iVar4);\n  }" { (do_statement "do {\n      while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }\n      __s = (char *)FUN_00118930(param_1 + 0x60);\n      sVar2 = strlen(__s);\n      __s_00 = (char *)xmalloc(sVar2 + 3);\n      sprintf(__s_00,":t%s",__s);\n      free(__s);\n      iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);\n      if (iVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s_00);\n    } while (param_2 != iVar4);" do (compound_statement "{\n      while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }\n      __s = (char *)FUN_00118930(param_1 + 0x60);\n      sVar2 = strlen(__s);\n      __s_00 = (char *)xmalloc(sVar2 + 3);\n      sprintf(__s_00,":t%s",__s);\n      free(__s);\n      iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);\n      if (iVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s_00);\n    }" { (while_statement "while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }" while (parenthesized_expression "(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0)" ( (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) )) (compound_statement "{\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }" { (expression_statement "__ptr = (void *)FUN_00118930(param_1 + 0x60);" (assignment_expression "__ptr = (void *)FUN_00118930(param_1 + 0x60)" identifier = (cast_expression "(void *)FUN_00118930(param_1 + 0x60)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00118930(param_1 + 0x60)" identifier (argument_list "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (if_statement "if (param_2 == iVar4) goto LAB_0011a04b;" if (parenthesized_expression "(param_2 == iVar4)" ( (binary_expression "param_2 == iVar4" identifier == identifier) )) (goto_statement "goto LAB_0011a04b;" goto statement_identifier ;)) })) (expression_statement "__s = (char *)FUN_00118930(param_1 + 0x60);" (assignment_expression "__s = (char *)FUN_00118930(param_1 + 0x60)" identifier = (cast_expression "(char *)FUN_00118930(param_1 + 0x60)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00118930(param_1 + 0x60)" identifier (argument_list "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "sVar2 = strlen(__s);" (assignment_expression "sVar2 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "__s_00 = (char *)xmalloc(sVar2 + 3);" (assignment_expression "__s_00 = (char *)xmalloc(sVar2 + 3)" identifier = (cast_expression "(char *)xmalloc(sVar2 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar2 + 3)" identifier (argument_list "(sVar2 + 3)" ( (binary_expression "sVar2 + 3" identifier + number_literal) ))))) ;) (expression_statement "sprintf(__s_00,":t%s",__s);" (call_expression "sprintf(__s_00,":t%s",__s)" identifier (argument_list "(__s_00,":t%s",__s)" ( identifier , (string_literal "":t%s"" " string_content ") , identifier ))) ;) (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (expression_statement "iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);" (assignment_expression "iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00)" identifier = (call_expression "FUN_00118330(param_1,0x80,0,0,__s_00)" identifier (argument_list "(param_1,0x80,0,0,__s_00)" ( identifier , number_literal , number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "free(__s_00);" (call_expression "free(__s_00)" identifier (argument_list "(__s_00)" ( identifier ))) ;) }) while (parenthesized_expression "(param_2 != iVar4)" ( (binary_expression "param_2 != iVar4" identifier != identifier) )) ;) })) (labeled_statement "LAB_0011a04b:\n  uVar3 = FUN_00119cf0(param_1,0x66,0,param_1 + 0x188,param_1 + 400);" statement_identifier : (expression_statement "uVar3 = FUN_00119cf0(param_1,0x66,0,param_1 + 0x188,param_1 + 400);" (assignment_expression "uVar3 = FUN_00119cf0(param_1,0x66,0,param_1 + 0x188,param_1 + 400)" identifier = (call_expression "FUN_00119cf0(param_1,0x66,0,param_1 + 0x188,param_1 + 400)" identifier (argument_list "(param_1,0x66,0,param_1 + 0x188,param_1 + 400)" ( identifier , number_literal , number_literal , (binary_expression "param_1 + 0x188" identifier + number_literal) , (binary_expression "param_1 + 400" identifier + number_literal) )))) ;)) (return_statement "return uVar3;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (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) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (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 IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) )))) ;)) (return_statement return IDENT ;) })))
(function_definition "undefined8 FUN_00119fa0(long param_1,int param_2)\n\n{\n  int iVar1;\n  void *__ptr;\n  char *__s;\n  size_t sVar2;\n  char *__s_00;\n  undefined8 uVar3;\n  int iVar4;\n  \n  iVar4 = 0;\n  if (0 < param_2) {\n    do {\n      while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }\n      __s = (char *)FUN_00118930(param_1 + 0x60);\n      sVar2 = strlen(__s);\n      __s_00 = (char *)xmalloc(sVar2 + 3);\n      sprintf(__s_00,":t%s",__s);\n      free(__s);\n      iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);\n      if (iVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s_00);\n    } while (param_2 != iVar4);\n  }\nLAB_0011a04b:\n  uVar3 = FUN_00119cf0(param_1,0x66,0,param_1 + 0x188,param_1 + 400);\n  return uVar3;\n}" (type_identifier "undefined8") (function_declarator "FUN_00119fa0(long param_1,int param_2)" (identifier "FUN_00119fa0") (parameter_list "(long param_1,int param_2)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  void *__ptr;\n  char *__s;\n  size_t sVar2;\n  char *__s_00;\n  undefined8 uVar3;\n  int iVar4;\n  \n  iVar4 = 0;\n  if (0 < param_2) {\n    do {\n      while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }\n      __s = (char *)FUN_00118930(param_1 + 0x60);\n      sVar2 = strlen(__s);\n      __s_00 = (char *)xmalloc(sVar2 + 3);\n      sprintf(__s_00,":t%s",__s);\n      free(__s);\n      iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);\n      if (iVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s_00);\n    } while (param_2 != iVar4);\n  }\nLAB_0011a04b:\n  uVar3 = FUN_00119cf0(param_1,0x66,0,param_1 + 0x188,param_1 + 400);\n  return uVar3;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "size_t sVar2;" (primitive_type "size_t") (identifier "sVar2") (; ";")) (declaration "char *__s_00;" (primitive_type "char") (pointer_declarator "*__s_00" (* "*") (identifier "__s_00")) (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < param_2) {\n    do {\n      while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }\n      __s = (char *)FUN_00118930(param_1 + 0x60);\n      sVar2 = strlen(__s);\n      __s_00 = (char *)xmalloc(sVar2 + 3);\n      sprintf(__s_00,":t%s",__s);\n      free(__s);\n      iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);\n      if (iVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s_00);\n    } while (param_2 != iVar4);\n  }" (if "if") (parenthesized_expression "(0 < param_2)" (( "(") (binary_expression "0 < param_2" (number_literal "0") (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n    do {\n      while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }\n      __s = (char *)FUN_00118930(param_1 + 0x60);\n      sVar2 = strlen(__s);\n      __s_00 = (char *)xmalloc(sVar2 + 3);\n      sprintf(__s_00,":t%s",__s);\n      free(__s);\n      iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);\n      if (iVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s_00);\n    } while (param_2 != iVar4);\n  }" ({ "{") (do_statement "do {\n      while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }\n      __s = (char *)FUN_00118930(param_1 + 0x60);\n      sVar2 = strlen(__s);\n      __s_00 = (char *)xmalloc(sVar2 + 3);\n      sprintf(__s_00,":t%s",__s);\n      free(__s);\n      iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);\n      if (iVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s_00);\n    } while (param_2 != iVar4);" (do "do") (compound_statement "{\n      while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }\n      __s = (char *)FUN_00118930(param_1 + 0x60);\n      sVar2 = strlen(__s);\n      __s_00 = (char *)xmalloc(sVar2 + 3);\n      sprintf(__s_00,":t%s",__s);\n      free(__s);\n      iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);\n      if (iVar1 == 0) {\n        return 0;\n      }\n      iVar4 = iVar4 + 1;\n      free(__s_00);\n    }" ({ "{") (while_statement "while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }" (while "while") (parenthesized_expression "(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0)" (( "(") (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")) () ")")) (compound_statement "{\n        __ptr = (void *)FUN_00118930(param_1 + 0x60);\n        iVar4 = iVar4 + 1;\n        free(__ptr);\n        if (param_2 == iVar4) goto LAB_0011a04b;\n      }" ({ "{") (expression_statement "__ptr = (void *)FUN_00118930(param_1 + 0x60);" (assignment_expression "__ptr = (void *)FUN_00118930(param_1 + 0x60)" (identifier "__ptr") (= "=") (cast_expression "(void *)FUN_00118930(param_1 + 0x60)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00118930(param_1 + 0x60)" (identifier "FUN_00118930") (argument_list "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (if_statement "if (param_2 == iVar4) goto LAB_0011a04b;" (if "if") (parenthesized_expression "(param_2 == iVar4)" (( "(") (binary_expression "param_2 == iVar4" (identifier "param_2") (== "==") (identifier "iVar4")) () ")")) (goto_statement "goto LAB_0011a04b;" (goto "goto") (statement_identifier "LAB_0011a04b") (; ";"))) (} "}"))) (expression_statement "__s = (char *)FUN_00118930(param_1 + 0x60);" (assignment_expression "__s = (char *)FUN_00118930(param_1 + 0x60)" (identifier "__s") (= "=") (cast_expression "(char *)FUN_00118930(param_1 + 0x60)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00118930(param_1 + 0x60)" (identifier "FUN_00118930") (argument_list "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (expression_statement "sVar2 = strlen(__s);" (assignment_expression "sVar2 = strlen(__s)" (identifier "sVar2") (= "=") (call_expression "strlen(__s)" (identifier "strlen") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (expression_statement "__s_00 = (char *)xmalloc(sVar2 + 3);" (assignment_expression "__s_00 = (char *)xmalloc(sVar2 + 3)" (identifier "__s_00") (= "=") (cast_expression "(char *)xmalloc(sVar2 + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar2 + 3)" (identifier "xmalloc") (argument_list "(sVar2 + 3)" (( "(") (binary_expression "sVar2 + 3" (identifier "sVar2") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "sprintf(__s_00,":t%s",__s);" (call_expression "sprintf(__s_00,":t%s",__s)" (identifier "sprintf") (argument_list "(__s_00,":t%s",__s)" (( "(") (identifier "__s_00") (, ",") (string_literal "":t%s"" (" """) (string_content ":t%s") (" """)) (, ",") (identifier "__s") () ")"))) (; ";")) (expression_statement "free(__s);" (call_expression "free(__s)" (identifier "free") (argument_list "(__s)" (( "(") (identifier "__s") () ")"))) (; ";")) (expression_statement "iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);" (assignment_expression "iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00)" (identifier "iVar1") (= "=") (call_expression "FUN_00118330(param_1,0x80,0,0,__s_00)" (identifier "FUN_00118330") (argument_list "(param_1,0x80,0,0,__s_00)" (( "(") (identifier "param_1") (, ",") (number_literal "0x80") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "__s_00") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "free(__s_00);" (call_expression "free(__s_00)" (identifier "free") (argument_list "(__s_00)" (( "(") (identifier "__s_00") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_2 != iVar4)" (( "(") (binary_expression "param_2 != iVar4" (identifier "param_2") (!= "!=") (identifier "iVar4")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_0011a04b:\n  uVar3 = FUN_00119cf0(param_1,0x66,0,param_1 + 0x188,param_1 + 400);" (statement_identifier "LAB_0011a04b") (: ":") (expression_statement "uVar3 = FUN_00119cf0(param_1,0x66,0,param_1 + 0x188,param_1 + 400);" (assignment_expression "uVar3 = FUN_00119cf0(param_1,0x66,0,param_1 + 0x188,param_1 + 400)" (identifier "uVar3") (= "=") (call_expression "FUN_00119cf0(param_1,0x66,0,param_1 + 0x188,param_1 + 400)" (identifier "FUN_00119cf0") (argument_list "(param_1,0x66,0,param_1 + 0x188,param_1 + 400)" (( "(") (identifier "param_1") (, ",") (number_literal "0x66") (, ",") (number_literal "0") (, ",") (binary_expression "param_1 + 0x188" (identifier "param_1") (+ "+") (number_literal "0x188")) (, ",") (binary_expression "param_1 + 400" (identifier "param_1") (+ "+") (number_literal "400")) () ")")))) (; ";"))) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}")))

type_1 function_1(void *p,int var_1,type_1 varargs)

{
  type_1 var_10;
  char *pcVar2;
  size_t var_7;
  char *__s;
  int var_3;
  type_2 *info;
  
  var_3 = 0;
  if (0 < var_1) {
    do {
      while (*(int *)(*(long *)((long)p + 0x60) + 0x1c) == 0) {
        pcVar2 = var_2((type_2 *)((long)p + 0x60));
        var_3 = var_3 + 1;
        var_4(pcVar2);
        if (var_1 == var_3) goto LAB_0011a04b;
      }
      pcVar2 = var_2((type_2 *)((long)p + 0x60));
      var_7 = var_5(pcVar2);
      __s = (char *)var_6(var_7 + 3);
      var_8(__s,":t%s",pcVar2);
      var_4(pcVar2);
      var_10 = var_9((type_2 *)p,0x80,0,0,__s);
      if (var_10 == 0) {
        return 0;
      }
      var_3 = var_3 + 1;
      var_4(__s);
    } while (var_1 != var_3);
  }
LAB_0011a04b:
  var_10 = var_11((type_2 *)p,0x66,0,(long **)((long)p + 0x188),
                           (size_t *)((long)p + 400));
  return var_10;
}


(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: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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))) body: (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: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_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: (identifier) right: (number_literal))))))) (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: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))))) (return_statement (identifier)))))

undefined8 MASKED(long param_1,int param_2)

{
  int iVar1;
  void *__ptr;
  char *__s;
  size_t sVar2;
  char *__s_00;
  undefined8 uVar3;
  int iVar4;
  
  iVar4 = 0;
  if (0 < param_2) {
    do {
      while (*(int *)(*(long *)(param_1 + 0x60) + 0x1c) == 0) {
        __ptr = (void *)FUN_00118930(param_1 + 0x60);
        iVar4 = iVar4 + 1;
        free(__ptr);
        if (param_2 == iVar4) goto LAB_0011a04b;
      }
      __s = (char *)FUN_00118930(param_1 + 0x60);
      sVar2 = strlen(__s);
      __s_00 = (char *)xmalloc(sVar2 + 3);
      sprintf(__s_00,":t%s",__s);
      free(__s);
      iVar1 = FUN_00118330(param_1,0x80,0,0,__s_00);
      if (iVar1 == 0) {
        return 0;
      }
      iVar4 = iVar4 + 1;
      free(__s_00);
    } while (param_2 != iVar4);
  }
LAB_0011a04b:
  uVar3 = FUN_00119cf0(param_1,0x66,0,param_1 + 0x188,param_1 + 400);
  return uVar3;
}

