
bfd_boolean stab_set_type(void *p,bfd_boolean bitstringp)

{
  bfd_boolean bVar1;
  char *__s;
  size_t sVar2;
  char *__s_00;
  stab_write_handle *info;
  long tindex;
  
  bVar1 = *(bfd_boolean *)(*(long *)((long)p + 0x60) + 0x1c);
  __s = stab_pop_type((stab_write_handle *)((long)p + 0x60));
  sVar2 = strlen(__s);
  __s_00 = (char *)xmalloc(sVar2 + 0x1e);
  if (bitstringp == 0) {
    *__s_00 = '\0';
    tindex = 0;
  }
  else {
    tindex = *(long *)((long)p + 0x68);
    bVar1 = 1;
    *(long *)((long)p + 0x68) = tindex + 1;
    sprintf(__s_00,"%ld=@S;",tindex);
  }
  sVar2 = strlen(__s_00);
  sprintf(__s_00 + sVar2,"S%s",__s);
  free(__s);
  bVar1 = stab_push_string((stab_write_handle *)((long)p + 0x60),__s_00,tindex,bVar1,0);
  if (bVar1 != 0) {
    free(__s_00);
    bVar1 = 1;
  }
  return bVar1;
}



undefined8 FUN_0011a180(long param_1,int param_2)

{
  char *__s;
  size_t sVar1;
  char *__s_00;
  undefined8 uVar2;
  long lVar3;
  undefined4 uVar4;
  
  uVar4 = *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c);
  __s = (char *)FUN_00118930(param_1 + 0x60);
  sVar1 = strlen(__s);
  __s_00 = (char *)xmalloc(sVar1 + 0x1e);
  if (param_2 == 0) {
    *__s_00 = '\0';
    lVar3 = 0;
  }
  else {
    lVar3 = *(long *)(param_1 + 0x68);
    uVar4 = 1;
    *(long *)(param_1 + 0x68) = lVar3 + 1;
    sprintf(__s_00,"%ld=@S;",lVar3);
  }
  sVar1 = strlen(__s_00);
  sprintf(__s_00 + sVar1,"S%s",__s);
  free(__s);
  uVar2 = FUN_00119800(param_1 + 0x60,__s_00,lVar3,uVar4,0);
  if ((int)uVar2 != 0) {
    free(__s_00);
    uVar2 = 1;
  }
  return uVar2;
}


PUSH R15
MOV R15,RDI
PUSH R14
PUSH R13
MOV R13D,ESI
PUSH R12
LEA R12,[RDI + 0x60]
PUSH RBP
PUSH RBX
SUB RSP,0x8
MOV RAX,qword ptr [RDI + 0x60]
MOV RDI,R12
MOV R14D,dword ptr [RAX + 0x1c]
CALL 0x00118930
MOV RDI,RAX
MOV RBP,RAX
CALL 0x00104260
LEA RDI,[RAX + 0x1e]
CALL 0x00104370
MOV RBX,RAX
TEST R13D,R13D
JNZ 0x0011a228
MOV byte ptr [RAX],0x0
XOR R13D,R13D
MOV RDI,RBX
CALL 0x00104260
MOV RDX,RBP
LEA RSI,[0x12408a]
LEA RDI,[RBX + RAX*0x1]
XOR EAX,EAX
CALL 0x00104820
MOV RDI,RBP
CALL 0x00104920
XOR R8D,R8D
MOV ECX,R14D
MOV RDX,R13
MOV RSI,RBX
MOV RDI,R12
CALL 0x00119800
TEST EAX,EAX
JZ 0x0011a214
MOV RDI,RBX
CALL 0x00104920
MOV EAX,0x1
ADD RSP,0x8
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV R13,qword ptr [R15 + 0x68]
LEA RSI,[0x124082]
MOV RDI,RBX
MOV R14D,0x1
LEA RAX,[R13 + 0x1]
MOV RDX,R13
MOV qword ptr [R15 + 0x68],RAX
XOR EAX,EAX
CALL 0x00104820
JMP 0x0011a1ca
(translation_unit "undefined8 FUN_0011a180(long param_1,int param_2)\n\n{\n  char *__s;\n  size_t sVar1;\n  char *__s_00;\n  undefined8 uVar2;\n  long lVar3;\n  undefined4 uVar4;\n  \n  uVar4 = *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c);\n  __s = (char *)FUN_00118930(param_1 + 0x60);\n  sVar1 = strlen(__s);\n  __s_00 = (char *)xmalloc(sVar1 + 0x1e);\n  if (param_2 == 0) {\n    *__s_00 = '\0';\n    lVar3 = 0;\n  }\n  else {\n    lVar3 = *(long *)(param_1 + 0x68);\n    uVar4 = 1;\n    *(long *)(param_1 + 0x68) = lVar3 + 1;\n    sprintf(__s_00,"%ld=@S;",lVar3);\n  }\n  sVar1 = strlen(__s_00);\n  sprintf(__s_00 + sVar1,"S%s",__s);\n  free(__s);\n  uVar2 = FUN_00119800(param_1 + 0x60,__s_00,lVar3,uVar4,0);\n  if ((int)uVar2 != 0) {\n    free(__s_00);\n    uVar2 = 1;\n  }\n  return uVar2;\n}\n\n" (function_definition "undefined8 FUN_0011a180(long param_1,int param_2)\n\n{\n  char *__s;\n  size_t sVar1;\n  char *__s_00;\n  undefined8 uVar2;\n  long lVar3;\n  undefined4 uVar4;\n  \n  uVar4 = *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c);\n  __s = (char *)FUN_00118930(param_1 + 0x60);\n  sVar1 = strlen(__s);\n  __s_00 = (char *)xmalloc(sVar1 + 0x1e);\n  if (param_2 == 0) {\n    *__s_00 = '\0';\n    lVar3 = 0;\n  }\n  else {\n    lVar3 = *(long *)(param_1 + 0x68);\n    uVar4 = 1;\n    *(long *)(param_1 + 0x68) = lVar3 + 1;\n    sprintf(__s_00,"%ld=@S;",lVar3);\n  }\n  sVar1 = strlen(__s_00);\n  sprintf(__s_00 + sVar1,"S%s",__s);\n  free(__s);\n  uVar2 = FUN_00119800(param_1 + 0x60,__s_00,lVar3,uVar4,0);\n  if ((int)uVar2 != 0) {\n    free(__s_00);\n    uVar2 = 1;\n  }\n  return uVar2;\n}" type_identifier (function_declarator "FUN_0011a180(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  char *__s;\n  size_t sVar1;\n  char *__s_00;\n  undefined8 uVar2;\n  long lVar3;\n  undefined4 uVar4;\n  \n  uVar4 = *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c);\n  __s = (char *)FUN_00118930(param_1 + 0x60);\n  sVar1 = strlen(__s);\n  __s_00 = (char *)xmalloc(sVar1 + 0x1e);\n  if (param_2 == 0) {\n    *__s_00 = '\0';\n    lVar3 = 0;\n  }\n  else {\n    lVar3 = *(long *)(param_1 + 0x68);\n    uVar4 = 1;\n    *(long *)(param_1 + 0x68) = lVar3 + 1;\n    sprintf(__s_00,"%ld=@S;",lVar3);\n  }\n  sVar1 = strlen(__s_00);\n  sprintf(__s_00 + sVar1,"S%s",__s);\n  free(__s);\n  uVar2 = FUN_00119800(param_1 + 0x60,__s_00,lVar3,uVar4,0);\n  if ((int)uVar2 != 0) {\n    free(__s_00);\n    uVar2 = 1;\n  }\n  return uVar2;\n}" { (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "char *__s_00;" primitive_type (pointer_declarator "*__s_00" * identifier) ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (expression_statement "uVar4 = *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c);" (assignment_expression "uVar4 = *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c)" * (cast_expression "(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (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(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 "sVar1 = strlen(__s);" (assignment_expression "sVar1 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "__s_00 = (char *)xmalloc(sVar1 + 0x1e);" (assignment_expression "__s_00 = (char *)xmalloc(sVar1 + 0x1e)" identifier = (cast_expression "(char *)xmalloc(sVar1 + 0x1e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar1 + 0x1e)" identifier (argument_list "(sVar1 + 0x1e)" ( (binary_expression "sVar1 + 0x1e" identifier + number_literal) ))))) ;) (if_statement "if (param_2 == 0) {\n    *__s_00 = '\0';\n    lVar3 = 0;\n  }\n  else {\n    lVar3 = *(long *)(param_1 + 0x68);\n    uVar4 = 1;\n    *(long *)(param_1 + 0x68) = lVar3 + 1;\n    sprintf(__s_00,"%ld=@S;",lVar3);\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    *__s_00 = '\0';\n    lVar3 = 0;\n  }" { (expression_statement "*__s_00 = '\0';" (assignment_expression "*__s_00 = '\0'" (pointer_expression "*__s_00" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    lVar3 = *(long *)(param_1 + 0x68);\n    uVar4 = 1;\n    *(long *)(param_1 + 0x68) = lVar3 + 1;\n    sprintf(__s_00,"%ld=@S;",lVar3);\n  }" else (compound_statement "{\n    lVar3 = *(long *)(param_1 + 0x68);\n    uVar4 = 1;\n    *(long *)(param_1 + 0x68) = lVar3 + 1;\n    sprintf(__s_00,"%ld=@S;",lVar3);\n  }" { (expression_statement "lVar3 = *(long *)(param_1 + 0x68);" (assignment_expression "lVar3 = *(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 "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) (expression_statement "*(long *)(param_1 + 0x68) = lVar3 + 1;" (assignment_expression "*(long *)(param_1 + 0x68) = lVar3 + 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 "lVar3 + 1" identifier + number_literal)) ;) (expression_statement "sprintf(__s_00,"%ld=@S;",lVar3);" (call_expression "sprintf(__s_00,"%ld=@S;",lVar3)" identifier (argument_list "(__s_00,"%ld=@S;",lVar3)" ( identifier , (string_literal ""%ld=@S;"" " string_content ") , identifier ))) ;) }))) (expression_statement "sVar1 = strlen(__s_00);" (assignment_expression "sVar1 = strlen(__s_00)" identifier = (call_expression "strlen(__s_00)" identifier (argument_list "(__s_00)" ( identifier )))) ;) (expression_statement "sprintf(__s_00 + sVar1,"S%s",__s);" (call_expression "sprintf(__s_00 + sVar1,"S%s",__s)" identifier (argument_list "(__s_00 + sVar1,"S%s",__s)" ( (binary_expression "__s_00 + sVar1" identifier + identifier) , (string_literal ""S%s"" " string_content ") , identifier ))) ;) (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (expression_statement "uVar2 = FUN_00119800(param_1 + 0x60,__s_00,lVar3,uVar4,0);" (assignment_expression "uVar2 = FUN_00119800(param_1 + 0x60,__s_00,lVar3,uVar4,0)" identifier = (call_expression "FUN_00119800(param_1 + 0x60,__s_00,lVar3,uVar4,0)" identifier (argument_list "(param_1 + 0x60,__s_00,lVar3,uVar4,0)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) , identifier , identifier , identifier , number_literal )))) ;) (if_statement "if ((int)uVar2 != 0) {\n    free(__s_00);\n    uVar2 = 1;\n  }" if (parenthesized_expression "((int)uVar2 != 0)" ( (binary_expression "(int)uVar2 != 0" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (compound_statement "{\n    free(__s_00);\n    uVar2 = 1;\n  }" { (expression_statement "free(__s_00);" (call_expression "free(__s_00)" identifier (argument_list "(__s_00)" ( identifier ))) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) })) (return_statement "return uVar2;" return identifier ;) })))
(translation_unit "bfd_boolean stab_set_type(void *p,bfd_boolean bitstringp)\n\n{\n  bfd_boolean bVar1;\n  char *__s;\n  size_t sVar2;\n  char *__s_00;\n  stab_write_handle *info;\n  long tindex;\n  \n  bVar1 = *(bfd_boolean *)(*(long *)((long)p + 0x60) + 0x1c);\n  __s = stab_pop_type((stab_write_handle *)((long)p + 0x60));\n  sVar2 = strlen(__s);\n  __s_00 = (char *)xmalloc(sVar2 + 0x1e);\n  if (bitstringp == 0) {\n    *__s_00 = '\0';\n    tindex = 0;\n  }\n  else {\n    tindex = *(long *)((long)p + 0x68);\n    bVar1 = 1;\n    *(long *)((long)p + 0x68) = tindex + 1;\n    sprintf(__s_00,"%ld=@S;",tindex);\n  }\n  sVar2 = strlen(__s_00);\n  sprintf(__s_00 + sVar2,"S%s",__s);\n  free(__s);\n  bVar1 = stab_push_string((stab_write_handle *)((long)p + 0x60),__s_00,tindex,bVar1,0);\n  if (bVar1 != 0) {\n    free(__s_00);\n    bVar1 = 1;\n  }\n  return bVar1;\n}\n\n" (function_definition "bfd_boolean stab_set_type(void *p,bfd_boolean bitstringp)\n\n{\n  bfd_boolean bVar1;\n  char *__s;\n  size_t sVar2;\n  char *__s_00;\n  stab_write_handle *info;\n  long tindex;\n  \n  bVar1 = *(bfd_boolean *)(*(long *)((long)p + 0x60) + 0x1c);\n  __s = stab_pop_type((stab_write_handle *)((long)p + 0x60));\n  sVar2 = strlen(__s);\n  __s_00 = (char *)xmalloc(sVar2 + 0x1e);\n  if (bitstringp == 0) {\n    *__s_00 = '\0';\n    tindex = 0;\n  }\n  else {\n    tindex = *(long *)((long)p + 0x68);\n    bVar1 = 1;\n    *(long *)((long)p + 0x68) = tindex + 1;\n    sprintf(__s_00,"%ld=@S;",tindex);\n  }\n  sVar2 = strlen(__s_00);\n  sprintf(__s_00 + sVar2,"S%s",__s);\n  free(__s);\n  bVar1 = stab_push_string((stab_write_handle *)((long)p + 0x60),__s_00,tindex,bVar1,0);\n  if (bVar1 != 0) {\n    free(__s_00);\n    bVar1 = 1;\n  }\n  return bVar1;\n}" type_identifier (function_declarator "stab_set_type(void *p,bfd_boolean bitstringp)" identifier (parameter_list "(void *p,bfd_boolean bitstringp)" ( (parameter_declaration "void *p" primitive_type (pointer_declarator "*p" * identifier)) , (parameter_declaration "bfd_boolean bitstringp" type_identifier identifier) ))) (compound_statement "{\n  bfd_boolean bVar1;\n  char *__s;\n  size_t sVar2;\n  char *__s_00;\n  stab_write_handle *info;\n  long tindex;\n  \n  bVar1 = *(bfd_boolean *)(*(long *)((long)p + 0x60) + 0x1c);\n  __s = stab_pop_type((stab_write_handle *)((long)p + 0x60));\n  sVar2 = strlen(__s);\n  __s_00 = (char *)xmalloc(sVar2 + 0x1e);\n  if (bitstringp == 0) {\n    *__s_00 = '\0';\n    tindex = 0;\n  }\n  else {\n    tindex = *(long *)((long)p + 0x68);\n    bVar1 = 1;\n    *(long *)((long)p + 0x68) = tindex + 1;\n    sprintf(__s_00,"%ld=@S;",tindex);\n  }\n  sVar2 = strlen(__s_00);\n  sprintf(__s_00 + sVar2,"S%s",__s);\n  free(__s);\n  bVar1 = stab_push_string((stab_write_handle *)((long)p + 0x60),__s_00,tindex,bVar1,0);\n  if (bVar1 != 0) {\n    free(__s_00);\n    bVar1 = 1;\n  }\n  return bVar1;\n}" { (declaration "bfd_boolean bVar1;" type_identifier 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 "stab_write_handle *info;" type_identifier (pointer_declarator "*info" * identifier) ;) (declaration "long tindex;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar1 = *(bfd_boolean *)(*(long *)((long)p + 0x60) + 0x1c);" (assignment_expression "bVar1 = *(bfd_boolean *)(*(long *)((long)p + 0x60) + 0x1c)" identifier = (pointer_expression "*(bfd_boolean *)(*(long *)((long)p + 0x60) + 0x1c)" * (cast_expression "(bfd_boolean *)(*(long *)((long)p + 0x60) + 0x1c)" ( (type_descriptor "bfd_boolean *" type_identifier (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((stab_write_handle *)((long)p + 0x60));" (assignment_expression "__s = 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 "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 + 0x1e);" (assignment_expression "__s_00 = (char *)xmalloc(sVar2 + 0x1e)" identifier = (cast_expression "(char *)xmalloc(sVar2 + 0x1e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar2 + 0x1e)" identifier (argument_list "(sVar2 + 0x1e)" ( (binary_expression "sVar2 + 0x1e" identifier + number_literal) ))))) ;) (if_statement "if (bitstringp == 0) {\n    *__s_00 = '\0';\n    tindex = 0;\n  }\n  else {\n    tindex = *(long *)((long)p + 0x68);\n    bVar1 = 1;\n    *(long *)((long)p + 0x68) = tindex + 1;\n    sprintf(__s_00,"%ld=@S;",tindex);\n  }" if (parenthesized_expression "(bitstringp == 0)" ( (binary_expression "bitstringp == 0" identifier == number_literal) )) (compound_statement "{\n    *__s_00 = '\0';\n    tindex = 0;\n  }" { (expression_statement "*__s_00 = '\0';" (assignment_expression "*__s_00 = '\0'" (pointer_expression "*__s_00" * 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    bVar1 = 1;\n    *(long *)((long)p + 0x68) = tindex + 1;\n    sprintf(__s_00,"%ld=@S;",tindex);\n  }" else (compound_statement "{\n    tindex = *(long *)((long)p + 0x68);\n    bVar1 = 1;\n    *(long *)((long)p + 0x68) = tindex + 1;\n    sprintf(__s_00,"%ld=@S;",tindex);\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 "bVar1 = 1;" (assignment_expression "bVar1 = 1" 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_00,"%ld=@S;",tindex);" (call_expression "sprintf(__s_00,"%ld=@S;",tindex)" identifier (argument_list "(__s_00,"%ld=@S;",tindex)" ( identifier , (string_literal ""%ld=@S;"" " string_content ") , identifier ))) ;) }))) (expression_statement "sVar2 = strlen(__s_00);" (assignment_expression "sVar2 = strlen(__s_00)" identifier = (call_expression "strlen(__s_00)" identifier (argument_list "(__s_00)" ( identifier )))) ;) (expression_statement "sprintf(__s_00 + sVar2,"S%s",__s);" (call_expression "sprintf(__s_00 + sVar2,"S%s",__s)" identifier (argument_list "(__s_00 + sVar2,"S%s",__s)" ( (binary_expression "__s_00 + sVar2" identifier + identifier) , (string_literal ""S%s"" " string_content ") , identifier ))) ;) (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (expression_statement "bVar1 = stab_push_string((stab_write_handle *)((long)p + 0x60),__s_00,tindex,bVar1,0);" (assignment_expression "bVar1 = stab_push_string((stab_write_handle *)((long)p + 0x60),__s_00,tindex,bVar1,0)" identifier = (call_expression "stab_push_string((stab_write_handle *)((long)p + 0x60),__s_00,tindex,bVar1,0)" identifier (argument_list "((stab_write_handle *)((long)p + 0x60),__s_00,tindex,bVar1,0)" ( (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) ))) , identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (bVar1 != 0) {\n    free(__s_00);\n    bVar1 = 1;\n  }" if (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    free(__s_00);\n    bVar1 = 1;\n  }" { (expression_statement "free(__s_00);" (call_expression "free(__s_00)" identifier (argument_list "(__s_00)" ( identifier ))) ;) (expression_statement "bVar1 = 1;" (assignment_expression "bVar1 = 1" identifier = number_literal) ;) })) (return_statement "return bVar1;" return identifier ;) })))
(translation_unit "undefined8 FUN_0011a180(long param_1,int param_2)\n\n{\n  char *__s;\n  size_t sVar1;\n  char *__s_00;\n  undefined8 uVar2;\n  long lVar3;\n  undefined4 uVar4;\n  \n  uVar4 = *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c);\n  __s = (char *)FUN_00118930(param_1 + 0x60);\n  sVar1 = strlen(__s);\n  __s_00 = (char *)xmalloc(sVar1 + 0x1e);\n  if (param_2 == 0) {\n    *__s_00 = '\0';\n    lVar3 = 0;\n  }\n  else {\n    lVar3 = *(long *)(param_1 + 0x68);\n    uVar4 = 1;\n    *(long *)(param_1 + 0x68) = lVar3 + 1;\n    sprintf(__s_00,"%ld=@S;",lVar3);\n  }\n  sVar1 = strlen(__s_00);\n  sprintf(__s_00 + sVar1,"S%s",__s);\n  free(__s);\n  uVar2 = FUN_00119800(param_1 + 0x60,__s_00,lVar3,uVar4,0);\n  if ((int)uVar2 != 0) {\n    free(__s_00);\n    uVar2 = 1;\n  }\n  return uVar2;\n}\n\n" (function_definition "undefined8 FUN_0011a180(long param_1,int param_2)\n\n{\n  char *__s;\n  size_t sVar1;\n  char *__s_00;\n  undefined8 uVar2;\n  long lVar3;\n  undefined4 uVar4;\n  \n  uVar4 = *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c);\n  __s = (char *)FUN_00118930(param_1 + 0x60);\n  sVar1 = strlen(__s);\n  __s_00 = (char *)xmalloc(sVar1 + 0x1e);\n  if (param_2 == 0) {\n    *__s_00 = '\0';\n    lVar3 = 0;\n  }\n  else {\n    lVar3 = *(long *)(param_1 + 0x68);\n    uVar4 = 1;\n    *(long *)(param_1 + 0x68) = lVar3 + 1;\n    sprintf(__s_00,"%ld=@S;",lVar3);\n  }\n  sVar1 = strlen(__s_00);\n  sprintf(__s_00 + sVar1,"S%s",__s);\n  free(__s);\n  uVar2 = FUN_00119800(param_1 + 0x60,__s_00,lVar3,uVar4,0);\n  if ((int)uVar2 != 0) {\n    free(__s_00);\n    uVar2 = 1;\n  }\n  return uVar2;\n}" type_identifier (function_declarator "FUN_0011a180(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  char *__s;\n  size_t sVar1;\n  char *__s_00;\n  undefined8 uVar2;\n  long lVar3;\n  undefined4 uVar4;\n  \n  uVar4 = *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c);\n  __s = (char *)FUN_00118930(param_1 + 0x60);\n  sVar1 = strlen(__s);\n  __s_00 = (char *)xmalloc(sVar1 + 0x1e);\n  if (param_2 == 0) {\n    *__s_00 = '\0';\n    lVar3 = 0;\n  }\n  else {\n    lVar3 = *(long *)(param_1 + 0x68);\n    uVar4 = 1;\n    *(long *)(param_1 + 0x68) = lVar3 + 1;\n    sprintf(__s_00,"%ld=@S;",lVar3);\n  }\n  sVar1 = strlen(__s_00);\n  sprintf(__s_00 + sVar1,"S%s",__s);\n  free(__s);\n  uVar2 = FUN_00119800(param_1 + 0x60,__s_00,lVar3,uVar4,0);\n  if ((int)uVar2 != 0) {\n    free(__s_00);\n    uVar2 = 1;\n  }\n  return uVar2;\n}" { (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "char *__s_00;" primitive_type (pointer_declarator "*__s_00" * identifier) ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (expression_statement "uVar4 = *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c);" (assignment_expression "uVar4 = *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c)" * (cast_expression "(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (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(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 "sVar1 = strlen(__s);" (assignment_expression "sVar1 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "__s_00 = (char *)xmalloc(sVar1 + 0x1e);" (assignment_expression "__s_00 = (char *)xmalloc(sVar1 + 0x1e)" identifier = (cast_expression "(char *)xmalloc(sVar1 + 0x1e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar1 + 0x1e)" identifier (argument_list "(sVar1 + 0x1e)" ( (binary_expression "sVar1 + 0x1e" identifier + number_literal) ))))) ;) (if_statement "if (param_2 == 0) {\n    *__s_00 = '\0';\n    lVar3 = 0;\n  }\n  else {\n    lVar3 = *(long *)(param_1 + 0x68);\n    uVar4 = 1;\n    *(long *)(param_1 + 0x68) = lVar3 + 1;\n    sprintf(__s_00,"%ld=@S;",lVar3);\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    *__s_00 = '\0';\n    lVar3 = 0;\n  }" { (expression_statement "*__s_00 = '\0';" (assignment_expression "*__s_00 = '\0'" (pointer_expression "*__s_00" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    lVar3 = *(long *)(param_1 + 0x68);\n    uVar4 = 1;\n    *(long *)(param_1 + 0x68) = lVar3 + 1;\n    sprintf(__s_00,"%ld=@S;",lVar3);\n  }" else (compound_statement "{\n    lVar3 = *(long *)(param_1 + 0x68);\n    uVar4 = 1;\n    *(long *)(param_1 + 0x68) = lVar3 + 1;\n    sprintf(__s_00,"%ld=@S;",lVar3);\n  }" { (expression_statement "lVar3 = *(long *)(param_1 + 0x68);" (assignment_expression "lVar3 = *(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 "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) (expression_statement "*(long *)(param_1 + 0x68) = lVar3 + 1;" (assignment_expression "*(long *)(param_1 + 0x68) = lVar3 + 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 "lVar3 + 1" identifier + number_literal)) ;) (expression_statement "sprintf(__s_00,"%ld=@S;",lVar3);" (call_expression "sprintf(__s_00,"%ld=@S;",lVar3)" identifier (argument_list "(__s_00,"%ld=@S;",lVar3)" ( identifier , (string_literal ""%ld=@S;"" " string_content ") , identifier ))) ;) }))) (expression_statement "sVar1 = strlen(__s_00);" (assignment_expression "sVar1 = strlen(__s_00)" identifier = (call_expression "strlen(__s_00)" identifier (argument_list "(__s_00)" ( identifier )))) ;) (expression_statement "sprintf(__s_00 + sVar1,"S%s",__s);" (call_expression "sprintf(__s_00 + sVar1,"S%s",__s)" identifier (argument_list "(__s_00 + sVar1,"S%s",__s)" ( (binary_expression "__s_00 + sVar1" identifier + identifier) , (string_literal ""S%s"" " string_content ") , identifier ))) ;) (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (expression_statement "uVar2 = FUN_00119800(param_1 + 0x60,__s_00,lVar3,uVar4,0);" (assignment_expression "uVar2 = FUN_00119800(param_1 + 0x60,__s_00,lVar3,uVar4,0)" identifier = (call_expression "FUN_00119800(param_1 + 0x60,__s_00,lVar3,uVar4,0)" identifier (argument_list "(param_1 + 0x60,__s_00,lVar3,uVar4,0)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) , identifier , identifier , identifier , number_literal )))) ;) (if_statement "if ((int)uVar2 != 0) {\n    free(__s_00);\n    uVar2 = 1;\n  }" if (parenthesized_expression "((int)uVar2 != 0)" ( (binary_expression "(int)uVar2 != 0" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (compound_statement "{\n    free(__s_00);\n    uVar2 = 1;\n  }" { (expression_statement "free(__s_00);" (call_expression "free(__s_00)" identifier (argument_list "(__s_00)" ( identifier ))) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) })) (return_statement "return uVar2;" 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (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 ( (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) ))))) ;) (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 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 = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT , LIT )))) ;) (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_0011a180(long param_1,int param_2)\n\n{\n  char *__s;\n  size_t sVar1;\n  char *__s_00;\n  undefined8 uVar2;\n  long lVar3;\n  undefined4 uVar4;\n  \n  uVar4 = *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c);\n  __s = (char *)FUN_00118930(param_1 + 0x60);\n  sVar1 = strlen(__s);\n  __s_00 = (char *)xmalloc(sVar1 + 0x1e);\n  if (param_2 == 0) {\n    *__s_00 = '\0';\n    lVar3 = 0;\n  }\n  else {\n    lVar3 = *(long *)(param_1 + 0x68);\n    uVar4 = 1;\n    *(long *)(param_1 + 0x68) = lVar3 + 1;\n    sprintf(__s_00,"%ld=@S;",lVar3);\n  }\n  sVar1 = strlen(__s_00);\n  sprintf(__s_00 + sVar1,"S%s",__s);\n  free(__s);\n  uVar2 = FUN_00119800(param_1 + 0x60,__s_00,lVar3,uVar4,0);\n  if ((int)uVar2 != 0) {\n    free(__s_00);\n    uVar2 = 1;\n  }\n  return uVar2;\n}" (type_identifier "undefined8") (function_declarator "FUN_0011a180(long param_1,int param_2)" (identifier "FUN_0011a180") (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  char *__s;\n  size_t sVar1;\n  char *__s_00;\n  undefined8 uVar2;\n  long lVar3;\n  undefined4 uVar4;\n  \n  uVar4 = *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c);\n  __s = (char *)FUN_00118930(param_1 + 0x60);\n  sVar1 = strlen(__s);\n  __s_00 = (char *)xmalloc(sVar1 + 0x1e);\n  if (param_2 == 0) {\n    *__s_00 = '\0';\n    lVar3 = 0;\n  }\n  else {\n    lVar3 = *(long *)(param_1 + 0x68);\n    uVar4 = 1;\n    *(long *)(param_1 + 0x68) = lVar3 + 1;\n    sprintf(__s_00,"%ld=@S;",lVar3);\n  }\n  sVar1 = strlen(__s_00);\n  sprintf(__s_00 + sVar1,"S%s",__s);\n  free(__s);\n  uVar2 = FUN_00119800(param_1 + 0x60,__s_00,lVar3,uVar4,0);\n  if ((int)uVar2 != 0) {\n    free(__s_00);\n    uVar2 = 1;\n  }\n  return uVar2;\n}" ({ "{") (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "size_t sVar1;" (primitive_type "size_t") (identifier "sVar1") (; ";")) (declaration "char *__s_00;" (primitive_type "char") (pointer_declarator "*__s_00" (* "*") (identifier "__s_00")) (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (expression_statement "uVar4 = *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c);" (assignment_expression "uVar4 = *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c)" (* "*") (cast_expression "(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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(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 "sVar1 = strlen(__s);" (assignment_expression "sVar1 = strlen(__s)" (identifier "sVar1") (= "=") (call_expression "strlen(__s)" (identifier "strlen") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (expression_statement "__s_00 = (char *)xmalloc(sVar1 + 0x1e);" (assignment_expression "__s_00 = (char *)xmalloc(sVar1 + 0x1e)" (identifier "__s_00") (= "=") (cast_expression "(char *)xmalloc(sVar1 + 0x1e)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar1 + 0x1e)" (identifier "xmalloc") (argument_list "(sVar1 + 0x1e)" (( "(") (binary_expression "sVar1 + 0x1e" (identifier "sVar1") (+ "+") (number_literal "0x1e")) () ")"))))) (; ";")) (if_statement "if (param_2 == 0) {\n    *__s_00 = '\0';\n    lVar3 = 0;\n  }\n  else {\n    lVar3 = *(long *)(param_1 + 0x68);\n    uVar4 = 1;\n    *(long *)(param_1 + 0x68) = lVar3 + 1;\n    sprintf(__s_00,"%ld=@S;",lVar3);\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *__s_00 = '\0';\n    lVar3 = 0;\n  }" ({ "{") (expression_statement "*__s_00 = '\0';" (assignment_expression "*__s_00 = '\0'" (pointer_expression "*__s_00" (* "*") (identifier "__s_00")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "lVar3 = 0;" (assignment_expression "lVar3 = 0" (identifier "lVar3") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    lVar3 = *(long *)(param_1 + 0x68);\n    uVar4 = 1;\n    *(long *)(param_1 + 0x68) = lVar3 + 1;\n    sprintf(__s_00,"%ld=@S;",lVar3);\n  }" (else "else") (compound_statement "{\n    lVar3 = *(long *)(param_1 + 0x68);\n    uVar4 = 1;\n    *(long *)(param_1 + 0x68) = lVar3 + 1;\n    sprintf(__s_00,"%ld=@S;",lVar3);\n  }" ({ "{") (expression_statement "lVar3 = *(long *)(param_1 + 0x68);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x68)" (identifier "lVar3") (= "=") (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 "uVar4 = 1;" (assignment_expression "uVar4 = 1" (identifier "uVar4") (= "=") (number_literal "1")) (; ";")) (expression_statement "*(long *)(param_1 + 0x68) = lVar3 + 1;" (assignment_expression "*(long *)(param_1 + 0x68) = lVar3 + 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 "lVar3 + 1" (identifier "lVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "sprintf(__s_00,"%ld=@S;",lVar3);" (call_expression "sprintf(__s_00,"%ld=@S;",lVar3)" (identifier "sprintf") (argument_list "(__s_00,"%ld=@S;",lVar3)" (( "(") (identifier "__s_00") (, ",") (string_literal ""%ld=@S;"" (" """) (string_content "%ld=@S;") (" """)) (, ",") (identifier "lVar3") () ")"))) (; ";")) (} "}")))) (expression_statement "sVar1 = strlen(__s_00);" (assignment_expression "sVar1 = strlen(__s_00)" (identifier "sVar1") (= "=") (call_expression "strlen(__s_00)" (identifier "strlen") (argument_list "(__s_00)" (( "(") (identifier "__s_00") () ")")))) (; ";")) (expression_statement "sprintf(__s_00 + sVar1,"S%s",__s);" (call_expression "sprintf(__s_00 + sVar1,"S%s",__s)" (identifier "sprintf") (argument_list "(__s_00 + sVar1,"S%s",__s)" (( "(") (binary_expression "__s_00 + sVar1" (identifier "__s_00") (+ "+") (identifier "sVar1")) (, ",") (string_literal ""S%s"" (" """) (string_content "S%s") (" """)) (, ",") (identifier "__s") () ")"))) (; ";")) (expression_statement "free(__s);" (call_expression "free(__s)" (identifier "free") (argument_list "(__s)" (( "(") (identifier "__s") () ")"))) (; ";")) (expression_statement "uVar2 = FUN_00119800(param_1 + 0x60,__s_00,lVar3,uVar4,0);" (assignment_expression "uVar2 = FUN_00119800(param_1 + 0x60,__s_00,lVar3,uVar4,0)" (identifier "uVar2") (= "=") (call_expression "FUN_00119800(param_1 + 0x60,__s_00,lVar3,uVar4,0)" (identifier "FUN_00119800") (argument_list "(param_1 + 0x60,__s_00,lVar3,uVar4,0)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) (, ",") (identifier "__s_00") (, ",") (identifier "lVar3") (, ",") (identifier "uVar4") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((int)uVar2 != 0) {\n    free(__s_00);\n    uVar2 = 1;\n  }" (if "if") (parenthesized_expression "((int)uVar2 != 0)" (( "(") (binary_expression "(int)uVar2 != 0" (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    free(__s_00);\n    uVar2 = 1;\n  }" ({ "{") (expression_statement "free(__s_00);" (call_expression "free(__s_00)" (identifier "free") (argument_list "(__s_00)" (( "(") (identifier "__s_00") () ")"))) (; ";")) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";")) (} "}"))) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}")))

type_1 function_1(void *p,type_1 var_5)

{
  type_1 var_11;
  char *__s;
  size_t var_4;
  char *var_8;
  type_2 *info;
  long var_6;
  
  var_11 = *(type_1 *)(*(long *)((long)p + 0x60) + 0x1c);
  __s = var_1((type_2 *)((long)p + 0x60));
  var_4 = var_2(__s);
  var_8 = (char *)var_3(var_4 + 0x1e);
  if (var_5 == 0) {
    *var_8 = '\0';
    var_6 = 0;
  }
  else {
    var_6 = *(long *)((long)p + 0x68);
    var_11 = 1;
    *(long *)((long)p + 0x68) = var_6 + 1;
    var_7(var_8,"%ld=@S;",var_6);
  }
  var_4 = var_2(var_8);
  var_7(var_8 + var_4,"S%s",__s);
  var_9(__s);
  var_11 = var_10((type_2 *)((long)p + 0x60),var_8,var_6,var_11,0);
  if (var_11 != 0) {
    var_9(var_8);
    var_11 = 1;
  }
  return var_11;
}


(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: (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: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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 (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))))))) (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: (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: (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)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier) (identifier) (number_literal))))) (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,int param_2)

{
  char *__s;
  size_t sVar1;
  char *__s_00;
  undefined8 uVar2;
  long lVar3;
  undefined4 uVar4;
  
  uVar4 = *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c);
  __s = (char *)FUN_00118930(param_1 + 0x60);
  sVar1 = strlen(__s);
  __s_00 = (char *)xmalloc(sVar1 + 0x1e);
  if (param_2 == 0) {
    *__s_00 = '\0';
    lVar3 = 0;
  }
  else {
    lVar3 = *(long *)(param_1 + 0x68);
    uVar4 = 1;
    *(long *)(param_1 + 0x68) = lVar3 + 1;
    sprintf(__s_00,"%ld=@S;",lVar3);
  }
  sVar1 = strlen(__s_00);
  sprintf(__s_00 + sVar1,"S%s",__s);
  free(__s);
  uVar2 = FUN_00119800(param_1 + 0x60,__s_00,lVar3,uVar4,0);
  if ((int)uVar2 != 0) {
    free(__s_00);
    uVar2 = 1;
  }
  return uVar2;
}

