
bfd_boolean stab_start_function(void *p,char *name,bfd_boolean globalp)

{
  bfd_boolean bVar1;
  char *__s;
  size_t sVar2;
  size_t sVar3;
  char *__s_00;
  stab_write_handle *info;
  
  if ((*(int *)((long)p + 0x1f8) == 0) && (*(long *)((long)p + 0x1e8) == -1)) {
    __s = stab_pop_type((stab_write_handle *)((long)p + 0x60));
    sVar2 = strlen(name);
    sVar3 = strlen(__s);
    __s_00 = (char *)xmalloc(sVar2 + 3 + sVar3);
    sprintf(__s_00,"%s:%c%s",name,(ulong)((-(uint)(globalp == 0) & 0x20) + 0x46),__s);
    *(undefined8 *)((long)p + 0x1e8) = *(undefined8 *)((long)p + 0x10);
    bVar1 = stab_write_symbol((stab_write_handle *)p,0x24,0,0,__s_00);
    if (bVar1 != 0) {
      free(__s_00);
      bVar1 = 1;
    }
    return bVar1;
  }
                    /* WARNING: Subroutine does not return */
  __assert_fail("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,
                "stab_start_function");
}



undefined8 FUN_001191a0(long param_1,char *param_2,int param_3)

{
  char *__s;
  size_t sVar1;
  size_t sVar2;
  char *__s_00;
  undefined8 uVar3;
  
  if ((*(int *)(param_1 + 0x1f8) == 0) && (*(long *)(param_1 + 0x1e8) == -1)) {
    __s = (char *)FUN_00118930(param_1 + 0x60);
    sVar1 = strlen(param_2);
    sVar2 = strlen(__s);
    __s_00 = (char *)xmalloc(sVar1 + 3 + sVar2);
    sprintf(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s);
    *(undefined8 *)(param_1 + 0x1e8) = *(undefined8 *)(param_1 + 0x10);
    uVar3 = FUN_00118330(param_1,0x24,0,0,__s_00);
    if ((int)uVar3 != 0) {
      free(__s_00);
      uVar3 = 1;
    }
    return uVar3;
  }
                    /* WARNING: Subroutine does not return */
  __assert_fail("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,
                "stab_start_function");
}


PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
MOV EAX,dword ptr [RDI + 0x1f8]
TEST EAX,EAX
JNZ 0x00119255
CMP qword ptr [RDI + 0x1e8],-0x1
MOV RBX,RDI
JNZ 0x00119255
LEA RDI,[RDI + 0x60]
MOV R12,RSI
MOV R14D,EDX
CALL 0x00118930
MOV RDI,R12
MOV R13,RAX
CALL 0x00104260
MOV RDI,R13
MOV RBP,RAX
CALL 0x00104260
LEA RDI,[RBP + RAX*0x1 + 0x3]
CALL 0x00104370
CMP R14D,0x1
MOV R8,R13
MOV RDX,R12
SBB ECX,ECX
MOV RDI,RAX
LEA RSI,[0x123fba]
MOV RBP,RAX
AND ECX,0x20
XOR EAX,EAX
ADD ECX,0x46
CALL 0x00104820
MOV RAX,qword ptr [RBX + 0x10]
XOR ECX,ECX
XOR EDX,EDX
MOV R8,RBP
MOV ESI,0x24
MOV RDI,RBX
MOV qword ptr [RBX + 0x1e8],RAX
CALL 0x00118330
TEST EAX,EAX
JZ 0x0011924c
MOV RDI,RBP
CALL 0x00104920
MOV EAX,0x1
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
LEA RCX,[0x1244a0]
MOV EDX,0x828
LEA RSI,[0x123f18]
LEA RDI,[0x124220]
CALL 0x001042e0
(translation_unit "undefined8 FUN_001191a0(long param_1,char *param_2,int param_3)\n\n{\n  char *__s;\n  size_t sVar1;\n  size_t sVar2;\n  char *__s_00;\n  undefined8 uVar3;\n  \n  if ((*(int *)(param_1 + 0x1f8) == 0) && (*(long *)(param_1 + 0x1e8) == -1)) {\n    __s = (char *)FUN_00118930(param_1 + 0x60);\n    sVar1 = strlen(param_2);\n    sVar2 = strlen(__s);\n    __s_00 = (char *)xmalloc(sVar1 + 3 + sVar2);\n    sprintf(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s);\n    *(undefined8 *)(param_1 + 0x1e8) = *(undefined8 *)(param_1 + 0x10);\n    uVar3 = FUN_00118330(param_1,0x24,0,0,__s_00);\n    if ((int)uVar3 != 0) {\n      free(__s_00);\n      uVar3 = 1;\n    }\n    return uVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __assert_fail("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,\n                "stab_start_function");\n}\n\n" (function_definition "undefined8 FUN_001191a0(long param_1,char *param_2,int param_3)\n\n{\n  char *__s;\n  size_t sVar1;\n  size_t sVar2;\n  char *__s_00;\n  undefined8 uVar3;\n  \n  if ((*(int *)(param_1 + 0x1f8) == 0) && (*(long *)(param_1 + 0x1e8) == -1)) {\n    __s = (char *)FUN_00118930(param_1 + 0x60);\n    sVar1 = strlen(param_2);\n    sVar2 = strlen(__s);\n    __s_00 = (char *)xmalloc(sVar1 + 3 + sVar2);\n    sprintf(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s);\n    *(undefined8 *)(param_1 + 0x1e8) = *(undefined8 *)(param_1 + 0x10);\n    uVar3 = FUN_00118330(param_1,0x24,0,0,__s_00);\n    if ((int)uVar3 != 0) {\n      free(__s_00);\n      uVar3 = 1;\n    }\n    return uVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __assert_fail("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,\n                "stab_start_function");\n}" type_identifier (function_declarator "FUN_001191a0(long param_1,char *param_2,int param_3)" identifier (parameter_list "(long param_1,char *param_2,int param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  char *__s;\n  size_t sVar1;\n  size_t sVar2;\n  char *__s_00;\n  undefined8 uVar3;\n  \n  if ((*(int *)(param_1 + 0x1f8) == 0) && (*(long *)(param_1 + 0x1e8) == -1)) {\n    __s = (char *)FUN_00118930(param_1 + 0x60);\n    sVar1 = strlen(param_2);\n    sVar2 = strlen(__s);\n    __s_00 = (char *)xmalloc(sVar1 + 3 + sVar2);\n    sprintf(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s);\n    *(undefined8 *)(param_1 + 0x1e8) = *(undefined8 *)(param_1 + 0x10);\n    uVar3 = FUN_00118330(param_1,0x24,0,0,__s_00);\n    if ((int)uVar3 != 0) {\n      free(__s_00);\n      uVar3 = 1;\n    }\n    return uVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __assert_fail("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,\n                "stab_start_function");\n}" { (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "size_t sVar1;" primitive_type 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 ;) (if_statement "if ((*(int *)(param_1 + 0x1f8) == 0) && (*(long *)(param_1 + 0x1e8) == -1)) {\n    __s = (char *)FUN_00118930(param_1 + 0x60);\n    sVar1 = strlen(param_2);\n    sVar2 = strlen(__s);\n    __s_00 = (char *)xmalloc(sVar1 + 3 + sVar2);\n    sprintf(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s);\n    *(undefined8 *)(param_1 + 0x1e8) = *(undefined8 *)(param_1 + 0x10);\n    uVar3 = FUN_00118330(param_1,0x24,0,0,__s_00);\n    if ((int)uVar3 != 0) {\n      free(__s_00);\n      uVar3 = 1;\n    }\n    return uVar3;\n  }" if (parenthesized_expression "((*(int *)(param_1 + 0x1f8) == 0) && (*(long *)(param_1 + 0x1e8) == -1))" ( (binary_expression "(*(int *)(param_1 + 0x1f8) == 0) && (*(long *)(param_1 + 0x1e8) == -1)" (parenthesized_expression "(*(int *)(param_1 + 0x1f8) == 0)" ( (binary_expression "*(int *)(param_1 + 0x1f8) == 0" (pointer_expression "*(int *)(param_1 + 0x1f8)" * (cast_expression "(int *)(param_1 + 0x1f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1f8)" ( (binary_expression "param_1 + 0x1f8" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(long *)(param_1 + 0x1e8) == -1)" ( (binary_expression "*(long *)(param_1 + 0x1e8) == -1" (pointer_expression "*(long *)(param_1 + 0x1e8)" * (cast_expression "(long *)(param_1 + 0x1e8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1e8)" ( (binary_expression "param_1 + 0x1e8" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    __s = (char *)FUN_00118930(param_1 + 0x60);\n    sVar1 = strlen(param_2);\n    sVar2 = strlen(__s);\n    __s_00 = (char *)xmalloc(sVar1 + 3 + sVar2);\n    sprintf(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s);\n    *(undefined8 *)(param_1 + 0x1e8) = *(undefined8 *)(param_1 + 0x10);\n    uVar3 = FUN_00118330(param_1,0x24,0,0,__s_00);\n    if ((int)uVar3 != 0) {\n      free(__s_00);\n      uVar3 = 1;\n    }\n    return uVar3;\n  }" { (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(param_2);" (assignment_expression "sVar1 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (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(sVar1 + 3 + sVar2);" (assignment_expression "__s_00 = (char *)xmalloc(sVar1 + 3 + sVar2)" identifier = (cast_expression "(char *)xmalloc(sVar1 + 3 + sVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar1 + 3 + sVar2)" identifier (argument_list "(sVar1 + 3 + sVar2)" ( (binary_expression "sVar1 + 3 + sVar2" (binary_expression "sVar1 + 3" identifier + number_literal) + identifier) ))))) ;) (expression_statement "sprintf(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s);" (call_expression "sprintf(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s)" identifier (argument_list "(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s)" ( identifier , (string_literal ""%s:%c%s"" " string_content ") , identifier , (call_expression "(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((-(uint)(param_3 == 0) & 0x20) + 0x46)" ( (binary_expression "(-(uint)(param_3 == 0) & 0x20) + 0x46" (parenthesized_expression "(-(uint)(param_3 == 0) & 0x20)" ( (binary_expression "-(uint)(param_3 == 0) & 0x20" (unary_expression "-(uint)(param_3 == 0)" - (call_expression "(uint)(param_3 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal) ))) , identifier ))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x1e8) = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "*(undefined8 *)(param_1 + 0x1e8) = *(undefined8 *)(param_1 + 0x10)" (pointer_expression "*(undefined8 *)(param_1 + 0x1e8)" * (cast_expression "(undefined8 *)(param_1 + 0x1e8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1e8)" ( (binary_expression "param_1 + 0x1e8" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(param_1 + 0x10)" * (cast_expression "(undefined8 *)(param_1 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = FUN_00118330(param_1,0x24,0,0,__s_00);" (assignment_expression "uVar3 = FUN_00118330(param_1,0x24,0,0,__s_00)" identifier = (call_expression "FUN_00118330(param_1,0x24,0,0,__s_00)" identifier (argument_list "(param_1,0x24,0,0,__s_00)" ( identifier , number_literal , number_literal , number_literal , identifier )))) ;) (if_statement "if ((int)uVar3 != 0) {\n      free(__s_00);\n      uVar3 = 1;\n    }" if (parenthesized_expression "((int)uVar3 != 0)" ( (binary_expression "(int)uVar3 != 0" (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (compound_statement "{\n      free(__s_00);\n      uVar3 = 1;\n    }" { (expression_statement "free(__s_00);" (call_expression "free(__s_00)" identifier (argument_list "(__s_00)" ( identifier ))) ;) (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) })) (return_statement "return uVar3;" return identifier ;) })) comment (expression_statement "__assert_fail("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,\n                "stab_start_function");" (call_expression "__assert_fail("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,\n                "stab_start_function")" identifier (argument_list "("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,\n                "stab_start_function")" ( (string_literal ""info->nesting == 0 && info->fun_offset == -1"" " string_content ") , (string_literal ""../../binutils/wrstabs.c"" " string_content ") , number_literal , (string_literal ""stab_start_function"" " string_content ") ))) ;) })))
(translation_unit "bfd_boolean stab_start_function(void *p,char *name,bfd_boolean globalp)\n\n{\n  bfd_boolean bVar1;\n  char *__s;\n  size_t sVar2;\n  size_t sVar3;\n  char *__s_00;\n  stab_write_handle *info;\n  \n  if ((*(int *)((long)p + 0x1f8) == 0) && (*(long *)((long)p + 0x1e8) == -1)) {\n    __s = stab_pop_type((stab_write_handle *)((long)p + 0x60));\n    sVar2 = strlen(name);\n    sVar3 = strlen(__s);\n    __s_00 = (char *)xmalloc(sVar2 + 3 + sVar3);\n    sprintf(__s_00,"%s:%c%s",name,(ulong)((-(uint)(globalp == 0) & 0x20) + 0x46),__s);\n    *(undefined8 *)((long)p + 0x1e8) = *(undefined8 *)((long)p + 0x10);\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0x24,0,0,__s_00);\n    if (bVar1 != 0) {\n      free(__s_00);\n      bVar1 = 1;\n    }\n    return bVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  __assert_fail("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,\n                "stab_start_function");\n}\n\n" (function_definition "bfd_boolean stab_start_function(void *p,char *name,bfd_boolean globalp)\n\n{\n  bfd_boolean bVar1;\n  char *__s;\n  size_t sVar2;\n  size_t sVar3;\n  char *__s_00;\n  stab_write_handle *info;\n  \n  if ((*(int *)((long)p + 0x1f8) == 0) && (*(long *)((long)p + 0x1e8) == -1)) {\n    __s = stab_pop_type((stab_write_handle *)((long)p + 0x60));\n    sVar2 = strlen(name);\n    sVar3 = strlen(__s);\n    __s_00 = (char *)xmalloc(sVar2 + 3 + sVar3);\n    sprintf(__s_00,"%s:%c%s",name,(ulong)((-(uint)(globalp == 0) & 0x20) + 0x46),__s);\n    *(undefined8 *)((long)p + 0x1e8) = *(undefined8 *)((long)p + 0x10);\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0x24,0,0,__s_00);\n    if (bVar1 != 0) {\n      free(__s_00);\n      bVar1 = 1;\n    }\n    return bVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  __assert_fail("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,\n                "stab_start_function");\n}" type_identifier (function_declarator "stab_start_function(void *p,char *name,bfd_boolean globalp)" identifier (parameter_list "(void *p,char *name,bfd_boolean globalp)" ( (parameter_declaration "void *p" primitive_type (pointer_declarator "*p" * identifier)) , (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "bfd_boolean globalp" type_identifier identifier) ))) (compound_statement "{\n  bfd_boolean bVar1;\n  char *__s;\n  size_t sVar2;\n  size_t sVar3;\n  char *__s_00;\n  stab_write_handle *info;\n  \n  if ((*(int *)((long)p + 0x1f8) == 0) && (*(long *)((long)p + 0x1e8) == -1)) {\n    __s = stab_pop_type((stab_write_handle *)((long)p + 0x60));\n    sVar2 = strlen(name);\n    sVar3 = strlen(__s);\n    __s_00 = (char *)xmalloc(sVar2 + 3 + sVar3);\n    sprintf(__s_00,"%s:%c%s",name,(ulong)((-(uint)(globalp == 0) & 0x20) + 0x46),__s);\n    *(undefined8 *)((long)p + 0x1e8) = *(undefined8 *)((long)p + 0x10);\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0x24,0,0,__s_00);\n    if (bVar1 != 0) {\n      free(__s_00);\n      bVar1 = 1;\n    }\n    return bVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  __assert_fail("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,\n                "stab_start_function");\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 "size_t sVar3;" 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) ;) (if_statement "if ((*(int *)((long)p + 0x1f8) == 0) && (*(long *)((long)p + 0x1e8) == -1)) {\n    __s = stab_pop_type((stab_write_handle *)((long)p + 0x60));\n    sVar2 = strlen(name);\n    sVar3 = strlen(__s);\n    __s_00 = (char *)xmalloc(sVar2 + 3 + sVar3);\n    sprintf(__s_00,"%s:%c%s",name,(ulong)((-(uint)(globalp == 0) & 0x20) + 0x46),__s);\n    *(undefined8 *)((long)p + 0x1e8) = *(undefined8 *)((long)p + 0x10);\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0x24,0,0,__s_00);\n    if (bVar1 != 0) {\n      free(__s_00);\n      bVar1 = 1;\n    }\n    return bVar1;\n  }" if (parenthesized_expression "((*(int *)((long)p + 0x1f8) == 0) && (*(long *)((long)p + 0x1e8) == -1))" ( (binary_expression "(*(int *)((long)p + 0x1f8) == 0) && (*(long *)((long)p + 0x1e8) == -1)" (parenthesized_expression "(*(int *)((long)p + 0x1f8) == 0)" ( (binary_expression "*(int *)((long)p + 0x1f8) == 0" (pointer_expression "*(int *)((long)p + 0x1f8)" * (cast_expression "(int *)((long)p + 0x1f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x1f8)" ( (binary_expression "(long)p + 0x1f8" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(long *)((long)p + 0x1e8) == -1)" ( (binary_expression "*(long *)((long)p + 0x1e8) == -1" (pointer_expression "*(long *)((long)p + 0x1e8)" * (cast_expression "(long *)((long)p + 0x1e8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x1e8)" ( (binary_expression "(long)p + 0x1e8" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    __s = stab_pop_type((stab_write_handle *)((long)p + 0x60));\n    sVar2 = strlen(name);\n    sVar3 = strlen(__s);\n    __s_00 = (char *)xmalloc(sVar2 + 3 + sVar3);\n    sprintf(__s_00,"%s:%c%s",name,(ulong)((-(uint)(globalp == 0) & 0x20) + 0x46),__s);\n    *(undefined8 *)((long)p + 0x1e8) = *(undefined8 *)((long)p + 0x10);\n    bVar1 = stab_write_symbol((stab_write_handle *)p,0x24,0,0,__s_00);\n    if (bVar1 != 0) {\n      free(__s_00);\n      bVar1 = 1;\n    }\n    return bVar1;\n  }" { (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(name);" (assignment_expression "sVar2 = strlen(name)" identifier = (call_expression "strlen(name)" identifier (argument_list "(name)" ( identifier )))) ;) (expression_statement "sVar3 = strlen(__s);" (assignment_expression "sVar3 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "__s_00 = (char *)xmalloc(sVar2 + 3 + sVar3);" (assignment_expression "__s_00 = (char *)xmalloc(sVar2 + 3 + sVar3)" identifier = (cast_expression "(char *)xmalloc(sVar2 + 3 + sVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar2 + 3 + sVar3)" identifier (argument_list "(sVar2 + 3 + sVar3)" ( (binary_expression "sVar2 + 3 + sVar3" (binary_expression "sVar2 + 3" identifier + number_literal) + identifier) ))))) ;) (expression_statement "sprintf(__s_00,"%s:%c%s",name,(ulong)((-(uint)(globalp == 0) & 0x20) + 0x46),__s);" (call_expression "sprintf(__s_00,"%s:%c%s",name,(ulong)((-(uint)(globalp == 0) & 0x20) + 0x46),__s)" identifier (argument_list "(__s_00,"%s:%c%s",name,(ulong)((-(uint)(globalp == 0) & 0x20) + 0x46),__s)" ( identifier , (string_literal ""%s:%c%s"" " string_content ") , identifier , (call_expression "(ulong)((-(uint)(globalp == 0) & 0x20) + 0x46)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((-(uint)(globalp == 0) & 0x20) + 0x46)" ( (binary_expression "(-(uint)(globalp == 0) & 0x20) + 0x46" (parenthesized_expression "(-(uint)(globalp == 0) & 0x20)" ( (binary_expression "-(uint)(globalp == 0) & 0x20" (unary_expression "-(uint)(globalp == 0)" - (call_expression "(uint)(globalp == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(globalp == 0)" ( (binary_expression "globalp == 0" identifier == number_literal) )))) & number_literal) )) + number_literal) ))) , identifier ))) ;) (expression_statement "*(undefined8 *)((long)p + 0x1e8) = *(undefined8 *)((long)p + 0x10);" (assignment_expression "*(undefined8 *)((long)p + 0x1e8) = *(undefined8 *)((long)p + 0x10)" (pointer_expression "*(undefined8 *)((long)p + 0x1e8)" * (cast_expression "(undefined8 *)((long)p + 0x1e8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x1e8)" ( (binary_expression "(long)p + 0x1e8" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined8 *)((long)p + 0x10)" * (cast_expression "(undefined8 *)((long)p + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x10)" ( (binary_expression "(long)p + 0x10" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar1 = stab_write_symbol((stab_write_handle *)p,0x24,0,0,__s_00);" (assignment_expression "bVar1 = stab_write_symbol((stab_write_handle *)p,0x24,0,0,__s_00)" identifier = (call_expression "stab_write_symbol((stab_write_handle *)p,0x24,0,0,__s_00)" identifier (argument_list "((stab_write_handle *)p,0x24,0,0,__s_00)" ( (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      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 ;) })) comment (expression_statement "__assert_fail("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,\n                "stab_start_function");" (call_expression "__assert_fail("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,\n                "stab_start_function")" identifier (argument_list "("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,\n                "stab_start_function")" ( (string_literal ""info->nesting == 0 && info->fun_offset == -1"" " string_content ") , (string_literal ""../../binutils/wrstabs.c"" " string_content ") , number_literal , (string_literal ""stab_start_function"" " string_content ") ))) ;) })))
(translation_unit "undefined8 FUN_001191a0(long param_1,char *param_2,int param_3)\n\n{\n  char *__s;\n  size_t sVar1;\n  size_t sVar2;\n  char *__s_00;\n  undefined8 uVar3;\n  \n  if ((*(int *)(param_1 + 0x1f8) == 0) && (*(long *)(param_1 + 0x1e8) == -1)) {\n    __s = (char *)FUN_00118930(param_1 + 0x60);\n    sVar1 = strlen(param_2);\n    sVar2 = strlen(__s);\n    __s_00 = (char *)xmalloc(sVar1 + 3 + sVar2);\n    sprintf(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s);\n    *(undefined8 *)(param_1 + 0x1e8) = *(undefined8 *)(param_1 + 0x10);\n    uVar3 = FUN_00118330(param_1,0x24,0,0,__s_00);\n    if ((int)uVar3 != 0) {\n      free(__s_00);\n      uVar3 = 1;\n    }\n    return uVar3;\n  }\n                    \n  __assert_fail("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,\n                "stab_start_function");\n}\n\n" (function_definition "undefined8 FUN_001191a0(long param_1,char *param_2,int param_3)\n\n{\n  char *__s;\n  size_t sVar1;\n  size_t sVar2;\n  char *__s_00;\n  undefined8 uVar3;\n  \n  if ((*(int *)(param_1 + 0x1f8) == 0) && (*(long *)(param_1 + 0x1e8) == -1)) {\n    __s = (char *)FUN_00118930(param_1 + 0x60);\n    sVar1 = strlen(param_2);\n    sVar2 = strlen(__s);\n    __s_00 = (char *)xmalloc(sVar1 + 3 + sVar2);\n    sprintf(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s);\n    *(undefined8 *)(param_1 + 0x1e8) = *(undefined8 *)(param_1 + 0x10);\n    uVar3 = FUN_00118330(param_1,0x24,0,0,__s_00);\n    if ((int)uVar3 != 0) {\n      free(__s_00);\n      uVar3 = 1;\n    }\n    return uVar3;\n  }\n                    \n  __assert_fail("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,\n                "stab_start_function");\n}" type_identifier (function_declarator "FUN_001191a0(long param_1,char *param_2,int param_3)" identifier (parameter_list "(long param_1,char *param_2,int param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  char *__s;\n  size_t sVar1;\n  size_t sVar2;\n  char *__s_00;\n  undefined8 uVar3;\n  \n  if ((*(int *)(param_1 + 0x1f8) == 0) && (*(long *)(param_1 + 0x1e8) == -1)) {\n    __s = (char *)FUN_00118930(param_1 + 0x60);\n    sVar1 = strlen(param_2);\n    sVar2 = strlen(__s);\n    __s_00 = (char *)xmalloc(sVar1 + 3 + sVar2);\n    sprintf(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s);\n    *(undefined8 *)(param_1 + 0x1e8) = *(undefined8 *)(param_1 + 0x10);\n    uVar3 = FUN_00118330(param_1,0x24,0,0,__s_00);\n    if ((int)uVar3 != 0) {\n      free(__s_00);\n      uVar3 = 1;\n    }\n    return uVar3;\n  }\n                    \n  __assert_fail("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,\n                "stab_start_function");\n}" { (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "size_t sVar1;" primitive_type 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 ;) (if_statement "if ((*(int *)(param_1 + 0x1f8) == 0) && (*(long *)(param_1 + 0x1e8) == -1)) {\n    __s = (char *)FUN_00118930(param_1 + 0x60);\n    sVar1 = strlen(param_2);\n    sVar2 = strlen(__s);\n    __s_00 = (char *)xmalloc(sVar1 + 3 + sVar2);\n    sprintf(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s);\n    *(undefined8 *)(param_1 + 0x1e8) = *(undefined8 *)(param_1 + 0x10);\n    uVar3 = FUN_00118330(param_1,0x24,0,0,__s_00);\n    if ((int)uVar3 != 0) {\n      free(__s_00);\n      uVar3 = 1;\n    }\n    return uVar3;\n  }" if (parenthesized_expression "((*(int *)(param_1 + 0x1f8) == 0) && (*(long *)(param_1 + 0x1e8) == -1))" ( (binary_expression "(*(int *)(param_1 + 0x1f8) == 0) && (*(long *)(param_1 + 0x1e8) == -1)" (parenthesized_expression "(*(int *)(param_1 + 0x1f8) == 0)" ( (binary_expression "*(int *)(param_1 + 0x1f8) == 0" (pointer_expression "*(int *)(param_1 + 0x1f8)" * (cast_expression "(int *)(param_1 + 0x1f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1f8)" ( (binary_expression "param_1 + 0x1f8" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(long *)(param_1 + 0x1e8) == -1)" ( (binary_expression "*(long *)(param_1 + 0x1e8) == -1" (pointer_expression "*(long *)(param_1 + 0x1e8)" * (cast_expression "(long *)(param_1 + 0x1e8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1e8)" ( (binary_expression "param_1 + 0x1e8" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    __s = (char *)FUN_00118930(param_1 + 0x60);\n    sVar1 = strlen(param_2);\n    sVar2 = strlen(__s);\n    __s_00 = (char *)xmalloc(sVar1 + 3 + sVar2);\n    sprintf(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s);\n    *(undefined8 *)(param_1 + 0x1e8) = *(undefined8 *)(param_1 + 0x10);\n    uVar3 = FUN_00118330(param_1,0x24,0,0,__s_00);\n    if ((int)uVar3 != 0) {\n      free(__s_00);\n      uVar3 = 1;\n    }\n    return uVar3;\n  }" { (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(param_2);" (assignment_expression "sVar1 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (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(sVar1 + 3 + sVar2);" (assignment_expression "__s_00 = (char *)xmalloc(sVar1 + 3 + sVar2)" identifier = (cast_expression "(char *)xmalloc(sVar1 + 3 + sVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar1 + 3 + sVar2)" identifier (argument_list "(sVar1 + 3 + sVar2)" ( (binary_expression "sVar1 + 3 + sVar2" (binary_expression "sVar1 + 3" identifier + number_literal) + identifier) ))))) ;) (expression_statement "sprintf(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s);" (call_expression "sprintf(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s)" identifier (argument_list "(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s)" ( identifier , (string_literal ""%s:%c%s"" " string_content ") , identifier , (call_expression "(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((-(uint)(param_3 == 0) & 0x20) + 0x46)" ( (binary_expression "(-(uint)(param_3 == 0) & 0x20) + 0x46" (parenthesized_expression "(-(uint)(param_3 == 0) & 0x20)" ( (binary_expression "-(uint)(param_3 == 0) & 0x20" (unary_expression "-(uint)(param_3 == 0)" - (call_expression "(uint)(param_3 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal) ))) , identifier ))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x1e8) = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "*(undefined8 *)(param_1 + 0x1e8) = *(undefined8 *)(param_1 + 0x10)" (pointer_expression "*(undefined8 *)(param_1 + 0x1e8)" * (cast_expression "(undefined8 *)(param_1 + 0x1e8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1e8)" ( (binary_expression "param_1 + 0x1e8" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(param_1 + 0x10)" * (cast_expression "(undefined8 *)(param_1 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = FUN_00118330(param_1,0x24,0,0,__s_00);" (assignment_expression "uVar3 = FUN_00118330(param_1,0x24,0,0,__s_00)" identifier = (call_expression "FUN_00118330(param_1,0x24,0,0,__s_00)" identifier (argument_list "(param_1,0x24,0,0,__s_00)" ( identifier , number_literal , number_literal , number_literal , identifier )))) ;) (if_statement "if ((int)uVar3 != 0) {\n      free(__s_00);\n      uVar3 = 1;\n    }" if (parenthesized_expression "((int)uVar3 != 0)" ( (binary_expression "(int)uVar3 != 0" (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (compound_statement "{\n      free(__s_00);\n      uVar3 = 1;\n    }" { (expression_statement "free(__s_00);" (call_expression "free(__s_00)" identifier (argument_list "(__s_00)" ( identifier ))) ;) (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) })) (return_statement "return uVar3;" return identifier ;) })) (expression_statement "__assert_fail("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,\n                "stab_start_function");" (call_expression "__assert_fail("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,\n                "stab_start_function")" identifier (argument_list "("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,\n                "stab_start_function")" ( (string_literal ""info->nesting == 0 && info->fun_offset == -1"" " string_content ") , (string_literal ""../../binutils/wrstabs.c"" " string_content ") , number_literal , (string_literal ""stab_start_function"" " string_content ") ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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 = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) & LIT) )) + LIT) ))) , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })))
(function_definition "undefined8 FUN_001191a0(long param_1,char *param_2,int param_3)\n\n{\n  char *__s;\n  size_t sVar1;\n  size_t sVar2;\n  char *__s_00;\n  undefined8 uVar3;\n  \n  if ((*(int *)(param_1 + 0x1f8) == 0) && (*(long *)(param_1 + 0x1e8) == -1)) {\n    __s = (char *)FUN_00118930(param_1 + 0x60);\n    sVar1 = strlen(param_2);\n    sVar2 = strlen(__s);\n    __s_00 = (char *)xmalloc(sVar1 + 3 + sVar2);\n    sprintf(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s);\n    *(undefined8 *)(param_1 + 0x1e8) = *(undefined8 *)(param_1 + 0x10);\n    uVar3 = FUN_00118330(param_1,0x24,0,0,__s_00);\n    if ((int)uVar3 != 0) {\n      free(__s_00);\n      uVar3 = 1;\n    }\n    return uVar3;\n  }\n                    \n  __assert_fail("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,\n                "stab_start_function");\n}" (type_identifier "undefined8") (function_declarator "FUN_001191a0(long param_1,char *param_2,int param_3)" (identifier "FUN_001191a0") (parameter_list "(long param_1,char *param_2,int param_3)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  char *__s;\n  size_t sVar1;\n  size_t sVar2;\n  char *__s_00;\n  undefined8 uVar3;\n  \n  if ((*(int *)(param_1 + 0x1f8) == 0) && (*(long *)(param_1 + 0x1e8) == -1)) {\n    __s = (char *)FUN_00118930(param_1 + 0x60);\n    sVar1 = strlen(param_2);\n    sVar2 = strlen(__s);\n    __s_00 = (char *)xmalloc(sVar1 + 3 + sVar2);\n    sprintf(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s);\n    *(undefined8 *)(param_1 + 0x1e8) = *(undefined8 *)(param_1 + 0x10);\n    uVar3 = FUN_00118330(param_1,0x24,0,0,__s_00);\n    if ((int)uVar3 != 0) {\n      free(__s_00);\n      uVar3 = 1;\n    }\n    return uVar3;\n  }\n                    \n  __assert_fail("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,\n                "stab_start_function");\n}" ({ "{") (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "size_t sVar1;" (primitive_type "size_t") (identifier "sVar1") (; ";")) (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") (; ";")) (if_statement "if ((*(int *)(param_1 + 0x1f8) == 0) && (*(long *)(param_1 + 0x1e8) == -1)) {\n    __s = (char *)FUN_00118930(param_1 + 0x60);\n    sVar1 = strlen(param_2);\n    sVar2 = strlen(__s);\n    __s_00 = (char *)xmalloc(sVar1 + 3 + sVar2);\n    sprintf(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s);\n    *(undefined8 *)(param_1 + 0x1e8) = *(undefined8 *)(param_1 + 0x10);\n    uVar3 = FUN_00118330(param_1,0x24,0,0,__s_00);\n    if ((int)uVar3 != 0) {\n      free(__s_00);\n      uVar3 = 1;\n    }\n    return uVar3;\n  }" (if "if") (parenthesized_expression "((*(int *)(param_1 + 0x1f8) == 0) && (*(long *)(param_1 + 0x1e8) == -1))" (( "(") (binary_expression "(*(int *)(param_1 + 0x1f8) == 0) && (*(long *)(param_1 + 0x1e8) == -1)" (parenthesized_expression "(*(int *)(param_1 + 0x1f8) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x1f8) == 0" (pointer_expression "*(int *)(param_1 + 0x1f8)" (* "*") (cast_expression "(int *)(param_1 + 0x1f8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1f8)" (( "(") (binary_expression "param_1 + 0x1f8" (identifier "param_1") (+ "+") (number_literal "0x1f8")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(long *)(param_1 + 0x1e8) == -1)" (( "(") (binary_expression "*(long *)(param_1 + 0x1e8) == -1" (pointer_expression "*(long *)(param_1 + 0x1e8)" (* "*") (cast_expression "(long *)(param_1 + 0x1e8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1e8)" (( "(") (binary_expression "param_1 + 0x1e8" (identifier "param_1") (+ "+") (number_literal "0x1e8")) () ")")))) (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n    __s = (char *)FUN_00118930(param_1 + 0x60);\n    sVar1 = strlen(param_2);\n    sVar2 = strlen(__s);\n    __s_00 = (char *)xmalloc(sVar1 + 3 + sVar2);\n    sprintf(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s);\n    *(undefined8 *)(param_1 + 0x1e8) = *(undefined8 *)(param_1 + 0x10);\n    uVar3 = FUN_00118330(param_1,0x24,0,0,__s_00);\n    if ((int)uVar3 != 0) {\n      free(__s_00);\n      uVar3 = 1;\n    }\n    return uVar3;\n  }" ({ "{") (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(param_2);" (assignment_expression "sVar1 = strlen(param_2)" (identifier "sVar1") (= "=") (call_expression "strlen(param_2)" (identifier "strlen") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (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(sVar1 + 3 + sVar2);" (assignment_expression "__s_00 = (char *)xmalloc(sVar1 + 3 + sVar2)" (identifier "__s_00") (= "=") (cast_expression "(char *)xmalloc(sVar1 + 3 + sVar2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar1 + 3 + sVar2)" (identifier "xmalloc") (argument_list "(sVar1 + 3 + sVar2)" (( "(") (binary_expression "sVar1 + 3 + sVar2" (binary_expression "sVar1 + 3" (identifier "sVar1") (+ "+") (number_literal "3")) (+ "+") (identifier "sVar2")) () ")"))))) (; ";")) (expression_statement "sprintf(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s);" (call_expression "sprintf(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s)" (identifier "sprintf") (argument_list "(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s)" (( "(") (identifier "__s_00") (, ",") (string_literal ""%s:%c%s"" (" """) (string_content "%s:%c%s") (" """)) (, ",") (identifier "param_2") (, ",") (call_expression "(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((-(uint)(param_3 == 0) & 0x20) + 0x46)" (( "(") (binary_expression "(-(uint)(param_3 == 0) & 0x20) + 0x46" (parenthesized_expression "(-(uint)(param_3 == 0) & 0x20)" (( "(") (binary_expression "-(uint)(param_3 == 0) & 0x20" (unary_expression "-(uint)(param_3 == 0)" (- "-") (call_expression "(uint)(param_3 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (+ "+") (number_literal "0x46")) () ")"))) (, ",") (identifier "__s") () ")"))) (; ";")) (expression_statement "*(undefined8 *)(param_1 + 0x1e8) = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "*(undefined8 *)(param_1 + 0x1e8) = *(undefined8 *)(param_1 + 0x10)" (pointer_expression "*(undefined8 *)(param_1 + 0x1e8)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x1e8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1e8)" (( "(") (binary_expression "param_1 + 0x1e8" (identifier "param_1") (+ "+") (number_literal "0x1e8")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar3 = FUN_00118330(param_1,0x24,0,0,__s_00);" (assignment_expression "uVar3 = FUN_00118330(param_1,0x24,0,0,__s_00)" (identifier "uVar3") (= "=") (call_expression "FUN_00118330(param_1,0x24,0,0,__s_00)" (identifier "FUN_00118330") (argument_list "(param_1,0x24,0,0,__s_00)" (( "(") (identifier "param_1") (, ",") (number_literal "0x24") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "__s_00") () ")")))) (; ";")) (if_statement "if ((int)uVar3 != 0) {\n      free(__s_00);\n      uVar3 = 1;\n    }" (if "if") (parenthesized_expression "((int)uVar3 != 0)" (( "(") (binary_expression "(int)uVar3 != 0" (cast_expression "(int)uVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar3")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      free(__s_00);\n      uVar3 = 1;\n    }" ({ "{") (expression_statement "free(__s_00);" (call_expression "free(__s_00)" (identifier "free") (argument_list "(__s_00)" (( "(") (identifier "__s_00") () ")"))) (; ";")) (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" (identifier "uVar3") (= "=") (number_literal "1")) (; ";")) (} "}"))) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (expression_statement "__assert_fail("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,\n                "stab_start_function");" (call_expression "__assert_fail("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,\n                "stab_start_function")" (identifier "__assert_fail") (argument_list "("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,\n                "stab_start_function")" (( "(") (string_literal ""info->nesting == 0 && info->fun_offset == -1"" (" """) (string_content "info->nesting == 0 && info->fun_offset == -1") (" """)) (, ",") (string_literal ""../../binutils/wrstabs.c"" (" """) (string_content "../../binutils/wrstabs.c") (" """)) (, ",") (number_literal "0x828") (, ",") (string_literal ""stab_start_function"" (" """) (string_content "stab_start_function") (" """)) () ")"))) (; ";")) (} "}")))

type_1 function_1(void *p,char *name,type_1 var_7)

{
  type_1 var_9;
  char *__s;
  size_t var_4;
  size_t var_5;
  char *__s_00;
  type_2 *info;
  
  if ((*(int *)((long)p + 0x1f8) == 0) && (*(long *)((long)p + 0x1e8) == -1)) {
    __s = var_1((type_2 *)((long)p + 0x60));
    var_4 = var_2(name);
    var_5 = var_2(__s);
    __s_00 = (char *)var_3(var_4 + 3 + var_5);
    var_6(__s_00,"%s:%c%s",name,(ulong)((-(uint)(var_7 == 0) & 0x20) + 0x46),__s);
    *(type_3 *)((long)p + 0x1e8) = *(type_3 *)((long)p + 0x10);
    var_9 = var_8((type_2 *)p,0x24,0,0,__s_00);
    if (var_9 != 0) {
      var_10(__s_00);
      var_9 = 1;
    }
    return var_9;
  }
                    /* WARNING: Subroutine does not return */
  var_11("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,
                "stab_start_function");
}


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

undefined8 MASKED(long param_1,char *param_2,int param_3)

{
  char *__s;
  size_t sVar1;
  size_t sVar2;
  char *__s_00;
  undefined8 uVar3;
  
  if ((*(int *)(param_1 + 0x1f8) == 0) && (*(long *)(param_1 + 0x1e8) == -1)) {
    __s = (char *)FUN_00118930(param_1 + 0x60);
    sVar1 = strlen(param_2);
    sVar2 = strlen(__s);
    __s_00 = (char *)xmalloc(sVar1 + 3 + sVar2);
    sprintf(__s_00,"%s:%c%s",param_2,(ulong)((-(uint)(param_3 == 0) & 0x20) + 0x46),__s);
    *(undefined8 *)(param_1 + 0x1e8) = *(undefined8 *)(param_1 + 0x10);
    uVar3 = FUN_00118330(param_1,0x24,0,0,__s_00);
    if ((int)uVar3 != 0) {
      free(__s_00);
      uVar3 = 1;
    }
    return uVar3;
  }
                    /* WARNING: Subroutine does not return */
  __assert_fail("info->nesting == 0 && info->fun_offset == -1","../../binutils/wrstabs.c",0x828,
                "stab_start_function");
}

