
bfd_boolean
stab_class_method_var
          (stab_write_handle *info,char *physname,debug_visibility visibility,bfd_boolean staticp,
          bfd_boolean constp,bfd_boolean volatilep,bfd_vma voffset,bfd_boolean contextp)

{
  char cVar1;
  stab_type_stack *psVar2;
  char *pcVar3;
  char *pcVar4;
  size_t sVar5;
  size_t sVar6;
  size_t sVar7;
  char *pcVar8;
  undefined8 uVar9;
  uint uVar10;
  long lVar11;
  undefined8 local_50;
  uint local_48;
  
  pcVar4 = (char *)0x0;
  local_48 = info->type_stack->definition;
  pcVar3 = stab_pop_type((stab_write_handle *)&info->type_stack);
  if (contextp != 0) {
    if (local_48 == 0) {
      local_48 = (uint)(info->type_stack->definition != 0);
    }
    else {
      local_48 = 1;
    }
    pcVar4 = stab_pop_type((stab_write_handle *)&info->type_stack);
  }
  psVar2 = info->type_stack;
  if ((psVar2 == (stab_type_stack *)0x0) || (pcVar8 = psVar2->methods, pcVar8 == (char *)0x0)) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",
                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");
  }
  if (DEBUG_VISIBILITY_PRIVATE < visibility) {
                    /* WARNING: Subroutine does not return */
    abort();
  }
  cVar1 = *(char *)((long)&CSWTCH_27 + (ulong)visibility);
  if (constp == 0) {
    uVar10 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x43;
  }
  else {
    uVar10 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x44;
  }
  sVar5 = strlen(pcVar8);
  sVar6 = strlen(pcVar3);
  sVar7 = strlen(physname);
  lVar11 = sVar6 + sVar5 + sVar7;
  if (staticp == 0) {
    if (contextp == 0) {
      uVar9 = 0x2e;
LAB_00118e80:
      pcVar4 = (char *)xrealloc(pcVar8,lVar11 + 0x28);
      psVar2->methods = pcVar4;
      pcVar4 = info->type_stack->methods;
      sVar5 = strlen(pcVar4);
      sprintf(pcVar4 + sVar5,"%s:%s;%c%c%c",pcVar3,physname,(ulong)(uint)(int)cVar1,(ulong)uVar10,
              uVar9);
      free(pcVar3);
      goto LAB_00118e1d;
    }
    local_50 = 0x2a;
  }
  else {
    if (contextp == 0) {
      uVar9 = 0x3f;
      goto LAB_00118e80;
    }
    local_50 = 0x3f;
  }
  sVar5 = strlen(pcVar4);
  pcVar8 = (char *)xrealloc(pcVar8,lVar11 + 0x28 + sVar5);
  psVar2->methods = pcVar8;
  pcVar8 = info->type_stack->methods;
  sVar5 = strlen(pcVar8);
  sprintf(pcVar8 + sVar5,"%s:%s;%c%c%c",pcVar3,physname,(ulong)(uint)(int)cVar1,(ulong)uVar10,
          local_50);
  free(pcVar3);
  pcVar3 = info->type_stack->methods;
  sVar5 = strlen(pcVar3);
  sprintf(pcVar3 + sVar5,"%ld;%s;",voffset,pcVar4);
  free(pcVar4);
LAB_00118e1d:
  if (local_48 != 0) {
    info->type_stack->definition = 1;
  }
  return 1;
}



undefined8
FUN_00118c60(long param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,
            undefined8 param_7,int param_8)

{
  char cVar1;
  long lVar2;
  char *pcVar3;
  char *pcVar4;
  char *pcVar5;
  size_t sVar6;
  size_t sVar7;
  size_t sVar8;
  undefined8 uVar9;
  undefined8 uVar10;
  uint uVar11;
  long lVar12;
  undefined8 local_50;
  uint local_48;
  
  pcVar5 = (char *)0x0;
  local_48 = *(uint *)(*(long *)(param_1 + 0x60) + 0x1c);
  pcVar4 = (char *)FUN_00118930(param_1 + 0x60);
  if (param_8 != 0) {
    if (local_48 == 0) {
      local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);
    }
    else {
      local_48 = 1;
    }
    pcVar5 = (char *)FUN_00118930(param_1 + 0x60);
  }
  lVar2 = *(long *)(param_1 + 0x60);
  if ((lVar2 == 0) || (pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0)) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",
                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");
  }
  if (2 < param_3) {
                    /* WARNING: Subroutine does not return */
    abort();
  }
  cVar1 = (&DAT_00124320)[param_3];
  if (param_5 == 0) {
    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;
  }
  else {
    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;
  }
  sVar6 = strlen(pcVar3);
  sVar7 = strlen(pcVar4);
  sVar8 = strlen(param_2);
  lVar12 = sVar7 + sVar6 + sVar8;
  if (param_4 == 0) {
    if (param_8 == 0) {
      uVar9 = 0x2e;
LAB_00118e80:
      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);
      *(undefined8 *)(lVar2 + 0x30) = uVar10;
      pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);
      sVar6 = strlen(pcVar5);
      sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,
              uVar9);
      free(pcVar4);
      goto LAB_00118e1d;
    }
    local_50 = 0x2a;
  }
  else {
    if (param_8 == 0) {
      uVar9 = 0x3f;
      goto LAB_00118e80;
    }
    local_50 = 0x3f;
  }
  sVar6 = strlen(pcVar5);
  uVar9 = xrealloc(pcVar3,lVar12 + 0x28 + sVar6);
  *(undefined8 *)(lVar2 + 0x30) = uVar9;
  pcVar3 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);
  sVar6 = strlen(pcVar3);
  sprintf(pcVar3 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,
          local_50);
  free(pcVar4);
  pcVar4 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);
  sVar6 = strlen(pcVar4);
  sprintf(pcVar4 + sVar6,"%ld;%s;",param_7,pcVar5);
  free(pcVar5);
LAB_00118e1d:
  if (local_48 != 0) {
    *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1;
  }
  return 1;
}


PUSH R15
MOV R15D,R8D
PUSH R14
MOV R14D,EDX
PUSH R13
XOR R13D,R13D
PUSH R12
LEA R12,[RDI + 0x60]
PUSH RBP
PUSH RBX
MOV RBX,RDI
SUB RSP,0x38
MOV RAX,qword ptr [RDI + 0x60]
MOV RDI,R12
MOV qword ptr [RSP + 0x8],RSI
MOV EAX,dword ptr [RAX + 0x1c]
MOV dword ptr [RSP + 0x10],ECX
MOV dword ptr [RSP + 0x18],R9D
MOV dword ptr [RSP + 0x20],EAX
CALL 0x00118930
MOV RBP,RAX
MOV EAX,dword ptr [RSP + 0x78]
TEST EAX,EAX
JZ 0x00118cd5
MOV EAX,dword ptr [RSP + 0x20]
TEST EAX,EAX
JNZ 0x00118e60
MOV RAX,qword ptr [RBX + 0x60]
MOV R13D,dword ptr [RAX + 0x1c]
XOR EAX,EAX
TEST R13D,R13D
SETNZ AL
MOV dword ptr [RSP + 0x20],EAX
MOV RDI,R12
CALL 0x00118930
MOV R13,RAX
MOV R12,qword ptr [RBX + 0x60]
TEST R12,R12
JZ 0x00118efd
MOV R8,qword ptr [R12 + 0x30]
TEST R8,R8
JZ 0x00118efd
CMP R14D,0x2
JA 0x00104963
MOV EDX,R14D
LEA RAX,[0x124320]
MOVZX EAX,byte ptr [RAX + RDX*0x1]
MOV byte ptr [RSP + 0x27],AL
TEST R15D,R15D
JNZ 0x00118e48
CMP dword ptr [RSP + 0x18],0x1
SBB R14D,R14D
AND R14D,0xfffffffe
ADD R14D,0x43
MOV RDI,R8
MOV qword ptr [RSP + 0x28],R8
CALL 0x00104260
MOV RDI,RBP
MOV qword ptr [RSP + 0x18],RAX
CALL 0x00104260
MOV RDI,qword ptr [RSP + 0x8]
MOV R15,RAX
CALL 0x00104260
MOV R11D,dword ptr [RSP + 0x10]
ADD R15,qword ptr [RSP + 0x18]
ADD R15,RAX
MOV R8,qword ptr [RSP + 0x28]
TEST R11D,R11D
JNZ 0x00118e70
MOV R10D,dword ptr [RSP + 0x78]
TEST R10D,R10D
JZ 0x00118ee0
MOV dword ptr [RSP + 0x18],0x2a
MOV RDI,R13
MOV qword ptr [RSP + 0x10],R8
CALL 0x00104260
MOV R8,qword ptr [RSP + 0x10]
LEA RSI,[R15 + RAX*0x1 + 0x28]
MOV RDI,R8
CALL 0x001042b0
MOV qword ptr [R12 + 0x30],RAX
MOV RAX,qword ptr [RBX + 0x60]
MOV R15,qword ptr [RAX + 0x30]
MOV RDI,R15
CALL 0x00104260
SUB RSP,0x8
MOV R9D,R14D
MOV RDX,RBP
LEA RDI,[R15 + RAX*0x1]
MOV EAX,dword ptr [RSP + 0x20]
LEA RSI,[0x123f9d]
PUSH RAX
MOVSX R8D,byte ptr [RSP + 0x37]
XOR EAX,EAX
MOV RCX,qword ptr [RSP + 0x18]
CALL 0x00104820
MOV RDI,RBP
CALL 0x00104920
MOV RAX,qword ptr [RBX + 0x60]
MOV RBP,qword ptr [RAX + 0x30]
MOV RDI,RBP
CALL 0x00104260
MOV RDX,qword ptr [RSP + 0x80]
MOV RCX,R13
LEA RSI,[0x123faa]
LEA RDI,[RBP + RAX*0x1]
XOR EAX,EAX
CALL 0x00104820
MOV RDI,R13
CALL 0x00104920
POP RDX
POP RCX
MOV EAX,dword ptr [RSP + 0x20]
TEST EAX,EAX
JZ 0x00118e30
MOV RAX,qword ptr [RBX + 0x60]
MOV dword ptr [RAX + 0x1c],0x1
ADD RSP,0x38
MOV EAX,0x1
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
CMP dword ptr [RSP + 0x18],0x1
SBB R14D,R14D
AND R14D,0xfffffffe
ADD R14D,0x44
JMP 0x00118d25
MOV dword ptr [RSP + 0x20],0x1
JMP 0x00118cca
MOV R9D,dword ptr [RSP + 0x78]
TEST R9D,R9D
JNZ 0x00118ef0
MOV R13D,0x3f
LEA RSI,[R15 + 0x28]
MOV RDI,R8
CALL 0x001042b0
MOV qword ptr [R12 + 0x30],RAX
MOV RAX,qword ptr [RBX + 0x60]
MOV R15,qword ptr [RAX + 0x30]
MOV RDI,R15
CALL 0x00104260
SUB RSP,0x8
MOV R9D,R14D
MOV RDX,RBP
PUSH R13
MOVSX R8D,byte ptr [RSP + 0x37]
LEA RDI,[R15 + RAX*0x1]
LEA RSI,[0x123f9d]
MOV RCX,qword ptr [RSP + 0x18]
XOR EAX,EAX
CALL 0x00104820
MOV RDI,RBP
CALL 0x00104920
POP RSI
POP RDI
JMP 0x00118e1d
MOV R13D,0x2e
JMP 0x00118e80
MOV dword ptr [RSP + 0x18],0x3f
JMP 0x00118d7d
LEA RCX,[0x124420]
MOV EDX,0x67f
LEA RSI,[0x123f18]
LEA RDI,[0x1241e0]
CALL 0x001042e0
(translation_unit "undefined8\nFUN_00118c60(long param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,\n            undefined8 param_7,int param_8)\n\n{\n  char cVar1;\n  long lVar2;\n  char *pcVar3;\n  char *pcVar4;\n  char *pcVar5;\n  size_t sVar6;\n  size_t sVar7;\n  size_t sVar8;\n  undefined8 uVar9;\n  undefined8 uVar10;\n  uint uVar11;\n  long lVar12;\n  undefined8 local_50;\n  uint local_48;\n  \n  pcVar5 = (char *)0x0;\n  local_48 = *(uint *)(*(long *)(param_1 + 0x60) + 0x1c);\n  pcVar4 = (char *)FUN_00118930(param_1 + 0x60);\n  if (param_8 != 0) {\n    if (local_48 == 0) {\n      local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);\n    }\n    else {\n      local_48 = 1;\n    }\n    pcVar5 = (char *)FUN_00118930(param_1 + 0x60);\n  }\n  lVar2 = *(long *)(param_1 + 0x60);\n  if ((lVar2 == 0) || (pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");\n  }\n  if (2 < param_3) {\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }\n  cVar1 = (&DAT_00124320)[param_3];\n  if (param_5 == 0) {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }\n  sVar6 = strlen(pcVar3);\n  sVar7 = strlen(pcVar4);\n  sVar8 = strlen(param_2);\n  lVar12 = sVar7 + sVar6 + sVar8;\n  if (param_4 == 0) {\n    if (param_8 == 0) {\n      uVar9 = 0x2e;\nLAB_00118e80:\n      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);\n      *(undefined8 *)(lVar2 + 0x30) = uVar10;\n      pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n      sVar6 = strlen(pcVar5);\n      sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9);\n      free(pcVar4);\n      goto LAB_00118e1d;\n    }\n    local_50 = 0x2a;\n  }\n  else {\n    if (param_8 == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }\n    local_50 = 0x3f;\n  }\n  sVar6 = strlen(pcVar5);\n  uVar9 = xrealloc(pcVar3,lVar12 + 0x28 + sVar6);\n  *(undefined8 *)(lVar2 + 0x30) = uVar9;\n  pcVar3 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n  sVar6 = strlen(pcVar3);\n  sprintf(pcVar3 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n          local_50);\n  free(pcVar4);\n  pcVar4 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n  sVar6 = strlen(pcVar4);\n  sprintf(pcVar4 + sVar6,"%ld;%s;",param_7,pcVar5);\n  free(pcVar5);\nLAB_00118e1d:\n  if (local_48 != 0) {\n    *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1;\n  }\n  return 1;\n}\n\n" (function_definition "undefined8\nFUN_00118c60(long param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,\n            undefined8 param_7,int param_8)\n\n{\n  char cVar1;\n  long lVar2;\n  char *pcVar3;\n  char *pcVar4;\n  char *pcVar5;\n  size_t sVar6;\n  size_t sVar7;\n  size_t sVar8;\n  undefined8 uVar9;\n  undefined8 uVar10;\n  uint uVar11;\n  long lVar12;\n  undefined8 local_50;\n  uint local_48;\n  \n  pcVar5 = (char *)0x0;\n  local_48 = *(uint *)(*(long *)(param_1 + 0x60) + 0x1c);\n  pcVar4 = (char *)FUN_00118930(param_1 + 0x60);\n  if (param_8 != 0) {\n    if (local_48 == 0) {\n      local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);\n    }\n    else {\n      local_48 = 1;\n    }\n    pcVar5 = (char *)FUN_00118930(param_1 + 0x60);\n  }\n  lVar2 = *(long *)(param_1 + 0x60);\n  if ((lVar2 == 0) || (pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");\n  }\n  if (2 < param_3) {\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }\n  cVar1 = (&DAT_00124320)[param_3];\n  if (param_5 == 0) {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }\n  sVar6 = strlen(pcVar3);\n  sVar7 = strlen(pcVar4);\n  sVar8 = strlen(param_2);\n  lVar12 = sVar7 + sVar6 + sVar8;\n  if (param_4 == 0) {\n    if (param_8 == 0) {\n      uVar9 = 0x2e;\nLAB_00118e80:\n      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);\n      *(undefined8 *)(lVar2 + 0x30) = uVar10;\n      pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n      sVar6 = strlen(pcVar5);\n      sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9);\n      free(pcVar4);\n      goto LAB_00118e1d;\n    }\n    local_50 = 0x2a;\n  }\n  else {\n    if (param_8 == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }\n    local_50 = 0x3f;\n  }\n  sVar6 = strlen(pcVar5);\n  uVar9 = xrealloc(pcVar3,lVar12 + 0x28 + sVar6);\n  *(undefined8 *)(lVar2 + 0x30) = uVar9;\n  pcVar3 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n  sVar6 = strlen(pcVar3);\n  sprintf(pcVar3 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n          local_50);\n  free(pcVar4);\n  pcVar4 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n  sVar6 = strlen(pcVar4);\n  sprintf(pcVar4 + sVar6,"%ld;%s;",param_7,pcVar5);\n  free(pcVar5);\nLAB_00118e1d:\n  if (local_48 != 0) {\n    *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1;\n  }\n  return 1;\n}" type_identifier (function_declarator "FUN_00118c60(long param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,\n            undefined8 param_7,int param_8)" identifier (parameter_list "(long param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,\n            undefined8 param_7,int param_8)" ( (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 "uint param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "undefined8 param_7" type_identifier identifier) , (parameter_declaration "int param_8" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  long lVar2;\n  char *pcVar3;\n  char *pcVar4;\n  char *pcVar5;\n  size_t sVar6;\n  size_t sVar7;\n  size_t sVar8;\n  undefined8 uVar9;\n  undefined8 uVar10;\n  uint uVar11;\n  long lVar12;\n  undefined8 local_50;\n  uint local_48;\n  \n  pcVar5 = (char *)0x0;\n  local_48 = *(uint *)(*(long *)(param_1 + 0x60) + 0x1c);\n  pcVar4 = (char *)FUN_00118930(param_1 + 0x60);\n  if (param_8 != 0) {\n    if (local_48 == 0) {\n      local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);\n    }\n    else {\n      local_48 = 1;\n    }\n    pcVar5 = (char *)FUN_00118930(param_1 + 0x60);\n  }\n  lVar2 = *(long *)(param_1 + 0x60);\n  if ((lVar2 == 0) || (pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");\n  }\n  if (2 < param_3) {\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }\n  cVar1 = (&DAT_00124320)[param_3];\n  if (param_5 == 0) {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }\n  sVar6 = strlen(pcVar3);\n  sVar7 = strlen(pcVar4);\n  sVar8 = strlen(param_2);\n  lVar12 = sVar7 + sVar6 + sVar8;\n  if (param_4 == 0) {\n    if (param_8 == 0) {\n      uVar9 = 0x2e;\nLAB_00118e80:\n      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);\n      *(undefined8 *)(lVar2 + 0x30) = uVar10;\n      pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n      sVar6 = strlen(pcVar5);\n      sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9);\n      free(pcVar4);\n      goto LAB_00118e1d;\n    }\n    local_50 = 0x2a;\n  }\n  else {\n    if (param_8 == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }\n    local_50 = 0x3f;\n  }\n  sVar6 = strlen(pcVar5);\n  uVar9 = xrealloc(pcVar3,lVar12 + 0x28 + sVar6);\n  *(undefined8 *)(lVar2 + 0x30) = uVar9;\n  pcVar3 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n  sVar6 = strlen(pcVar3);\n  sprintf(pcVar3 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n          local_50);\n  free(pcVar4);\n  pcVar4 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n  sVar6 = strlen(pcVar4);\n  sprintf(pcVar4 + sVar6,"%ld;%s;",param_7,pcVar5);\n  free(pcVar5);\nLAB_00118e1d:\n  if (local_48 != 0) {\n    *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1;\n  }\n  return 1;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "undefined8 uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_50;" type_identifier identifier ;) (declaration "uint local_48;" type_identifier identifier ;) (expression_statement "pcVar5 = (char *)0x0;" (assignment_expression "pcVar5 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48 = *(uint *)(*(long *)(param_1 + 0x60) + 0x1c);" (assignment_expression "local_48 = *(uint *)(*(long *)(param_1 + 0x60) + 0x1c)" identifier = (pointer_expression "*(uint *)(*(long *)(param_1 + 0x60) + 0x1c)" * (cast_expression "(uint *)(*(long *)(param_1 + 0x60) + 0x1c)" ( (type_descriptor "uint *" 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 "pcVar4 = (char *)FUN_00118930(param_1 + 0x60);" (assignment_expression "pcVar4 = (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) ))))) ;) (if_statement "if (param_8 != 0) {\n    if (local_48 == 0) {\n      local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);\n    }\n    else {\n      local_48 = 1;\n    }\n    pcVar5 = (char *)FUN_00118930(param_1 + 0x60);\n  }" if (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) (compound_statement "{\n    if (local_48 == 0) {\n      local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);\n    }\n    else {\n      local_48 = 1;\n    }\n    pcVar5 = (char *)FUN_00118930(param_1 + 0x60);\n  }" { (if_statement "if (local_48 == 0) {\n      local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);\n    }\n    else {\n      local_48 = 1;\n    }" if (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) (compound_statement "{\n      local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);\n    }" { (expression_statement "local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);" (assignment_expression "local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0)" identifier = (call_expression "(uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0)" ( (binary_expression "*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0" (pointer_expression "*(int *)(*(long *)(param_1 + 0x60) + 0x1c)" * (cast_expression "(int *)(*(long *)(param_1 + 0x60) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x60) + 0x1c)" ( (binary_expression "*(long *)(param_1 + 0x60) + 0x1c" (pointer_expression "*(long *)(param_1 + 0x60)" * (cast_expression "(long *)(param_1 + 0x60)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) + number_literal) )))) != number_literal) )))) ;) }) (else_clause "else {\n      local_48 = 1;\n    }" else (compound_statement "{\n      local_48 = 1;\n    }" { (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) }))) (expression_statement "pcVar5 = (char *)FUN_00118930(param_1 + 0x60);" (assignment_expression "pcVar5 = (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 "lVar2 = *(long *)(param_1 + 0x60);" (assignment_expression "lVar2 = *(long *)(param_1 + 0x60)" identifier = (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) ))))) ;) (if_statement "if ((lVar2 == 0) || (pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");\n  }" if (parenthesized_expression "((lVar2 == 0) || (pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0))" ( (binary_expression "(lVar2 == 0) || (pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0)" (parenthesized_expression "(lVar2 == 0)" ( (binary_expression "lVar2 == 0" identifier == number_literal) )) || (parenthesized_expression "(pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0)" ( (comma_expression "pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0" (assignment_expression "pcVar3 = *(char **)(lVar2 + 0x30)" identifier = (pointer_expression "*(char **)(lVar2 + 0x30)" * (cast_expression "(char **)(lVar2 + 0x30)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar2 + 0x30)" ( (binary_expression "lVar2 + 0x30" identifier + number_literal) ))))) , (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");\n  }" { comment (expression_statement "__assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");" (call_expression "__assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var")" identifier (argument_list "("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var")" ( (string_literal ""info->type_stack != NULL && info->type_stack->methods != NULL"" " string_content ") , (string_literal ""../../binutils/wrstabs.c"" " string_content ") , number_literal , (string_literal ""stab_class_method_var"" " string_content ") ))) ;) })) (if_statement "if (2 < param_3) {\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }" if (parenthesized_expression "(2 < param_3)" ( (binary_expression "2 < param_3" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }" { comment (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "cVar1 = (&DAT_00124320)[param_3];" (assignment_expression "cVar1 = (&DAT_00124320)[param_3]" identifier = (subscript_expression "(&DAT_00124320)[param_3]" (parenthesized_expression "(&DAT_00124320)" ( (pointer_expression "&DAT_00124320" & identifier) )) [ identifier ])) ;) (if_statement "if (param_5 == 0) {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }" { (expression_statement "uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;" (assignment_expression "uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43" identifier = (binary_expression "(-(uint)(param_6 == 0) & 0xfffffffe) + 0x43" (parenthesized_expression "(-(uint)(param_6 == 0) & 0xfffffffe)" ( (binary_expression "-(uint)(param_6 == 0) & 0xfffffffe" (unary_expression "-(uint)(param_6 == 0)" - (call_expression "(uint)(param_6 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;) }) (else_clause "else {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }" else (compound_statement "{\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }" { (expression_statement "uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;" (assignment_expression "uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44" identifier = (binary_expression "(-(uint)(param_6 == 0) & 0xfffffffe) + 0x44" (parenthesized_expression "(-(uint)(param_6 == 0) & 0xfffffffe)" ( (binary_expression "-(uint)(param_6 == 0) & 0xfffffffe" (unary_expression "-(uint)(param_6 == 0)" - (call_expression "(uint)(param_6 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;) }))) (expression_statement "sVar6 = strlen(pcVar3);" (assignment_expression "sVar6 = strlen(pcVar3)" identifier = (call_expression "strlen(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "sVar7 = strlen(pcVar4);" (assignment_expression "sVar7 = strlen(pcVar4)" identifier = (call_expression "strlen(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier )))) ;) (expression_statement "sVar8 = strlen(param_2);" (assignment_expression "sVar8 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "lVar12 = sVar7 + sVar6 + sVar8;" (assignment_expression "lVar12 = sVar7 + sVar6 + sVar8" identifier = (binary_expression "sVar7 + sVar6 + sVar8" (binary_expression "sVar7 + sVar6" identifier + identifier) + identifier)) ;) (if_statement "if (param_4 == 0) {\n    if (param_8 == 0) {\n      uVar9 = 0x2e;\nLAB_00118e80:\n      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);\n      *(undefined8 *)(lVar2 + 0x30) = uVar10;\n      pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n      sVar6 = strlen(pcVar5);\n      sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9);\n      free(pcVar4);\n      goto LAB_00118e1d;\n    }\n    local_50 = 0x2a;\n  }\n  else {\n    if (param_8 == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }\n    local_50 = 0x3f;\n  }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n    if (param_8 == 0) {\n      uVar9 = 0x2e;\nLAB_00118e80:\n      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);\n      *(undefined8 *)(lVar2 + 0x30) = uVar10;\n      pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n      sVar6 = strlen(pcVar5);\n      sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9);\n      free(pcVar4);\n      goto LAB_00118e1d;\n    }\n    local_50 = 0x2a;\n  }" { (if_statement "if (param_8 == 0) {\n      uVar9 = 0x2e;\nLAB_00118e80:\n      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);\n      *(undefined8 *)(lVar2 + 0x30) = uVar10;\n      pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n      sVar6 = strlen(pcVar5);\n      sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9);\n      free(pcVar4);\n      goto LAB_00118e1d;\n    }" if (parenthesized_expression "(param_8 == 0)" ( (binary_expression "param_8 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar9 = 0x2e;\nLAB_00118e80:\n      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);\n      *(undefined8 *)(lVar2 + 0x30) = uVar10;\n      pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n      sVar6 = strlen(pcVar5);\n      sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9);\n      free(pcVar4);\n      goto LAB_00118e1d;\n    }" { (expression_statement "uVar9 = 0x2e;" (assignment_expression "uVar9 = 0x2e" identifier = number_literal) ;) (labeled_statement "LAB_00118e80:\n      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);" statement_identifier : (expression_statement "uVar10 = xrealloc(pcVar3,lVar12 + 0x28);" (assignment_expression "uVar10 = xrealloc(pcVar3,lVar12 + 0x28)" identifier = (call_expression "xrealloc(pcVar3,lVar12 + 0x28)" identifier (argument_list "(pcVar3,lVar12 + 0x28)" ( identifier , (binary_expression "lVar12 + 0x28" identifier + number_literal) )))) ;)) (expression_statement "*(undefined8 *)(lVar2 + 0x30) = uVar10;" (assignment_expression "*(undefined8 *)(lVar2 + 0x30) = uVar10" (pointer_expression "*(undefined8 *)(lVar2 + 0x30)" * (cast_expression "(undefined8 *)(lVar2 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x30)" ( (binary_expression "lVar2 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);" (assignment_expression "pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30)" identifier = (pointer_expression "*(char **)(*(long *)(param_1 + 0x60) + 0x30)" * (cast_expression "(char **)(*(long *)(param_1 + 0x60) + 0x30)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 0x60) + 0x30)" ( (binary_expression "*(long *)(param_1 + 0x60) + 0x30" (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 "sVar6 = strlen(pcVar5);" (assignment_expression "sVar6 = strlen(pcVar5)" identifier = (call_expression "strlen(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier )))) ;) (expression_statement "sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9);" (call_expression "sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9)" identifier (argument_list "(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9)" ( (binary_expression "pcVar5 + sVar6" identifier + identifier) , (string_literal ""%s:%s;%c%c%c"" " string_content ") , identifier , identifier , (cast_expression "(ulong)(uint)(int)cVar1" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)(int)cVar1" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier))) , (cast_expression "(ulong)uVar11" ( (type_descriptor "ulong" type_identifier) ) identifier) , identifier ))) ;) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (goto_statement "goto LAB_00118e1d;" goto statement_identifier ;) })) (expression_statement "local_50 = 0x2a;" (assignment_expression "local_50 = 0x2a" identifier = number_literal) ;) }) (else_clause "else {\n    if (param_8 == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }\n    local_50 = 0x3f;\n  }" else (compound_statement "{\n    if (param_8 == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }\n    local_50 = 0x3f;\n  }" { (if_statement "if (param_8 == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }" if (parenthesized_expression "(param_8 == 0)" ( (binary_expression "param_8 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }" { (expression_statement "uVar9 = 0x3f;" (assignment_expression "uVar9 = 0x3f" identifier = number_literal) ;) (goto_statement "goto LAB_00118e80;" goto statement_identifier ;) })) (expression_statement "local_50 = 0x3f;" (assignment_expression "local_50 = 0x3f" identifier = number_literal) ;) }))) (expression_statement "sVar6 = strlen(pcVar5);" (assignment_expression "sVar6 = strlen(pcVar5)" identifier = (call_expression "strlen(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier )))) ;) (expression_statement "uVar9 = xrealloc(pcVar3,lVar12 + 0x28 + sVar6);" (assignment_expression "uVar9 = xrealloc(pcVar3,lVar12 + 0x28 + sVar6)" identifier = (call_expression "xrealloc(pcVar3,lVar12 + 0x28 + sVar6)" identifier (argument_list "(pcVar3,lVar12 + 0x28 + sVar6)" ( identifier , (binary_expression "lVar12 + 0x28 + sVar6" (binary_expression "lVar12 + 0x28" identifier + number_literal) + identifier) )))) ;) (expression_statement "*(undefined8 *)(lVar2 + 0x30) = uVar9;" (assignment_expression "*(undefined8 *)(lVar2 + 0x30) = uVar9" (pointer_expression "*(undefined8 *)(lVar2 + 0x30)" * (cast_expression "(undefined8 *)(lVar2 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x30)" ( (binary_expression "lVar2 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);" (assignment_expression "pcVar3 = *(char **)(*(long *)(param_1 + 0x60) + 0x30)" identifier = (pointer_expression "*(char **)(*(long *)(param_1 + 0x60) + 0x30)" * (cast_expression "(char **)(*(long *)(param_1 + 0x60) + 0x30)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 0x60) + 0x30)" ( (binary_expression "*(long *)(param_1 + 0x60) + 0x30" (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 "sVar6 = strlen(pcVar3);" (assignment_expression "sVar6 = strlen(pcVar3)" identifier = (call_expression "strlen(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "sprintf(pcVar3 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n          local_50);" (call_expression "sprintf(pcVar3 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n          local_50)" identifier (argument_list "(pcVar3 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n          local_50)" ( (binary_expression "pcVar3 + sVar6" identifier + identifier) , (string_literal ""%s:%s;%c%c%c"" " string_content ") , identifier , identifier , (cast_expression "(ulong)(uint)(int)cVar1" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)(int)cVar1" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier))) , (cast_expression "(ulong)uVar11" ( (type_descriptor "ulong" type_identifier) ) identifier) , identifier ))) ;) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "pcVar4 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);" (assignment_expression "pcVar4 = *(char **)(*(long *)(param_1 + 0x60) + 0x30)" identifier = (pointer_expression "*(char **)(*(long *)(param_1 + 0x60) + 0x30)" * (cast_expression "(char **)(*(long *)(param_1 + 0x60) + 0x30)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 0x60) + 0x30)" ( (binary_expression "*(long *)(param_1 + 0x60) + 0x30" (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 "sVar6 = strlen(pcVar4);" (assignment_expression "sVar6 = strlen(pcVar4)" identifier = (call_expression "strlen(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier )))) ;) (expression_statement "sprintf(pcVar4 + sVar6,"%ld;%s;",param_7,pcVar5);" (call_expression "sprintf(pcVar4 + sVar6,"%ld;%s;",param_7,pcVar5)" identifier (argument_list "(pcVar4 + sVar6,"%ld;%s;",param_7,pcVar5)" ( (binary_expression "pcVar4 + sVar6" identifier + identifier) , (string_literal ""%ld;%s;"" " string_content ") , identifier , identifier ))) ;) (expression_statement "free(pcVar5);" (call_expression "free(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (labeled_statement "LAB_00118e1d:\n  if (local_48 != 0) {\n    *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1;\n  }" statement_identifier : (if_statement "if (local_48 != 0) {\n    *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1;\n  }" if (parenthesized_expression "(local_48 != 0)" ( (binary_expression "local_48 != 0" identifier != number_literal) )) (compound_statement "{\n    *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1;\n  }" { (expression_statement "*(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1;" (assignment_expression "*(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1" (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) )))) = number_literal) ;) }))) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "bfd_boolean\nstab_class_method_var\n          (stab_write_handle *info,char *physname,debug_visibility visibility,bfd_boolean staticp,\n          bfd_boolean constp,bfd_boolean volatilep,bfd_vma voffset,bfd_boolean contextp)\n\n{\n  char cVar1;\n  stab_type_stack *psVar2;\n  char *pcVar3;\n  char *pcVar4;\n  size_t sVar5;\n  size_t sVar6;\n  size_t sVar7;\n  char *pcVar8;\n  undefined8 uVar9;\n  uint uVar10;\n  long lVar11;\n  undefined8 local_50;\n  uint local_48;\n  \n  pcVar4 = (char *)0x0;\n  local_48 = info->type_stack->definition;\n  pcVar3 = stab_pop_type((stab_write_handle *)&info->type_stack);\n  if (contextp != 0) {\n    if (local_48 == 0) {\n      local_48 = (uint)(info->type_stack->definition != 0);\n    }\n    else {\n      local_48 = 1;\n    }\n    pcVar4 = stab_pop_type((stab_write_handle *)&info->type_stack);\n  }\n  psVar2 = info->type_stack;\n  if ((psVar2 == (stab_type_stack *)0x0) || (pcVar8 = psVar2->methods, pcVar8 == (char *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");\n  }\n  if (DEBUG_VISIBILITY_PRIVATE < visibility) {\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }\n  cVar1 = *(char *)((long)&CSWTCH_27 + (ulong)visibility);\n  if (constp == 0) {\n    uVar10 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    uVar10 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x44;\n  }\n  sVar5 = strlen(pcVar8);\n  sVar6 = strlen(pcVar3);\n  sVar7 = strlen(physname);\n  lVar11 = sVar6 + sVar5 + sVar7;\n  if (staticp == 0) {\n    if (contextp == 0) {\n      uVar9 = 0x2e;\nLAB_00118e80:\n      pcVar4 = (char *)xrealloc(pcVar8,lVar11 + 0x28);\n      psVar2->methods = pcVar4;\n      pcVar4 = info->type_stack->methods;\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%s:%s;%c%c%c",pcVar3,physname,(ulong)(uint)(int)cVar1,(ulong)uVar10,\n              uVar9);\n      free(pcVar3);\n      goto LAB_00118e1d;\n    }\n    local_50 = 0x2a;\n  }\n  else {\n    if (contextp == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }\n    local_50 = 0x3f;\n  }\n  sVar5 = strlen(pcVar4);\n  pcVar8 = (char *)xrealloc(pcVar8,lVar11 + 0x28 + sVar5);\n  psVar2->methods = pcVar8;\n  pcVar8 = info->type_stack->methods;\n  sVar5 = strlen(pcVar8);\n  sprintf(pcVar8 + sVar5,"%s:%s;%c%c%c",pcVar3,physname,(ulong)(uint)(int)cVar1,(ulong)uVar10,\n          local_50);\n  free(pcVar3);\n  pcVar3 = info->type_stack->methods;\n  sVar5 = strlen(pcVar3);\n  sprintf(pcVar3 + sVar5,"%ld;%s;",voffset,pcVar4);\n  free(pcVar4);\nLAB_00118e1d:\n  if (local_48 != 0) {\n    info->type_stack->definition = 1;\n  }\n  return 1;\n}\n\n" (function_definition "bfd_boolean\nstab_class_method_var\n          (stab_write_handle *info,char *physname,debug_visibility visibility,bfd_boolean staticp,\n          bfd_boolean constp,bfd_boolean volatilep,bfd_vma voffset,bfd_boolean contextp)\n\n{\n  char cVar1;\n  stab_type_stack *psVar2;\n  char *pcVar3;\n  char *pcVar4;\n  size_t sVar5;\n  size_t sVar6;\n  size_t sVar7;\n  char *pcVar8;\n  undefined8 uVar9;\n  uint uVar10;\n  long lVar11;\n  undefined8 local_50;\n  uint local_48;\n  \n  pcVar4 = (char *)0x0;\n  local_48 = info->type_stack->definition;\n  pcVar3 = stab_pop_type((stab_write_handle *)&info->type_stack);\n  if (contextp != 0) {\n    if (local_48 == 0) {\n      local_48 = (uint)(info->type_stack->definition != 0);\n    }\n    else {\n      local_48 = 1;\n    }\n    pcVar4 = stab_pop_type((stab_write_handle *)&info->type_stack);\n  }\n  psVar2 = info->type_stack;\n  if ((psVar2 == (stab_type_stack *)0x0) || (pcVar8 = psVar2->methods, pcVar8 == (char *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");\n  }\n  if (DEBUG_VISIBILITY_PRIVATE < visibility) {\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }\n  cVar1 = *(char *)((long)&CSWTCH_27 + (ulong)visibility);\n  if (constp == 0) {\n    uVar10 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    uVar10 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x44;\n  }\n  sVar5 = strlen(pcVar8);\n  sVar6 = strlen(pcVar3);\n  sVar7 = strlen(physname);\n  lVar11 = sVar6 + sVar5 + sVar7;\n  if (staticp == 0) {\n    if (contextp == 0) {\n      uVar9 = 0x2e;\nLAB_00118e80:\n      pcVar4 = (char *)xrealloc(pcVar8,lVar11 + 0x28);\n      psVar2->methods = pcVar4;\n      pcVar4 = info->type_stack->methods;\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%s:%s;%c%c%c",pcVar3,physname,(ulong)(uint)(int)cVar1,(ulong)uVar10,\n              uVar9);\n      free(pcVar3);\n      goto LAB_00118e1d;\n    }\n    local_50 = 0x2a;\n  }\n  else {\n    if (contextp == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }\n    local_50 = 0x3f;\n  }\n  sVar5 = strlen(pcVar4);\n  pcVar8 = (char *)xrealloc(pcVar8,lVar11 + 0x28 + sVar5);\n  psVar2->methods = pcVar8;\n  pcVar8 = info->type_stack->methods;\n  sVar5 = strlen(pcVar8);\n  sprintf(pcVar8 + sVar5,"%s:%s;%c%c%c",pcVar3,physname,(ulong)(uint)(int)cVar1,(ulong)uVar10,\n          local_50);\n  free(pcVar3);\n  pcVar3 = info->type_stack->methods;\n  sVar5 = strlen(pcVar3);\n  sprintf(pcVar3 + sVar5,"%ld;%s;",voffset,pcVar4);\n  free(pcVar4);\nLAB_00118e1d:\n  if (local_48 != 0) {\n    info->type_stack->definition = 1;\n  }\n  return 1;\n}" type_identifier (function_declarator "stab_class_method_var\n          (stab_write_handle *info,char *physname,debug_visibility visibility,bfd_boolean staticp,\n          bfd_boolean constp,bfd_boolean volatilep,bfd_vma voffset,bfd_boolean contextp)" identifier (parameter_list "(stab_write_handle *info,char *physname,debug_visibility visibility,bfd_boolean staticp,\n          bfd_boolean constp,bfd_boolean volatilep,bfd_vma voffset,bfd_boolean contextp)" ( (parameter_declaration "stab_write_handle *info" type_identifier (pointer_declarator "*info" * identifier)) , (parameter_declaration "char *physname" primitive_type (pointer_declarator "*physname" * identifier)) , (parameter_declaration "debug_visibility visibility" type_identifier identifier) , (parameter_declaration "bfd_boolean staticp" type_identifier identifier) , (parameter_declaration "bfd_boolean constp" type_identifier identifier) , (parameter_declaration "bfd_boolean volatilep" type_identifier identifier) , (parameter_declaration "bfd_vma voffset" type_identifier identifier) , (parameter_declaration "bfd_boolean contextp" type_identifier identifier) ))) (compound_statement "{\n  char cVar1;\n  stab_type_stack *psVar2;\n  char *pcVar3;\n  char *pcVar4;\n  size_t sVar5;\n  size_t sVar6;\n  size_t sVar7;\n  char *pcVar8;\n  undefined8 uVar9;\n  uint uVar10;\n  long lVar11;\n  undefined8 local_50;\n  uint local_48;\n  \n  pcVar4 = (char *)0x0;\n  local_48 = info->type_stack->definition;\n  pcVar3 = stab_pop_type((stab_write_handle *)&info->type_stack);\n  if (contextp != 0) {\n    if (local_48 == 0) {\n      local_48 = (uint)(info->type_stack->definition != 0);\n    }\n    else {\n      local_48 = 1;\n    }\n    pcVar4 = stab_pop_type((stab_write_handle *)&info->type_stack);\n  }\n  psVar2 = info->type_stack;\n  if ((psVar2 == (stab_type_stack *)0x0) || (pcVar8 = psVar2->methods, pcVar8 == (char *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");\n  }\n  if (DEBUG_VISIBILITY_PRIVATE < visibility) {\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }\n  cVar1 = *(char *)((long)&CSWTCH_27 + (ulong)visibility);\n  if (constp == 0) {\n    uVar10 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    uVar10 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x44;\n  }\n  sVar5 = strlen(pcVar8);\n  sVar6 = strlen(pcVar3);\n  sVar7 = strlen(physname);\n  lVar11 = sVar6 + sVar5 + sVar7;\n  if (staticp == 0) {\n    if (contextp == 0) {\n      uVar9 = 0x2e;\nLAB_00118e80:\n      pcVar4 = (char *)xrealloc(pcVar8,lVar11 + 0x28);\n      psVar2->methods = pcVar4;\n      pcVar4 = info->type_stack->methods;\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%s:%s;%c%c%c",pcVar3,physname,(ulong)(uint)(int)cVar1,(ulong)uVar10,\n              uVar9);\n      free(pcVar3);\n      goto LAB_00118e1d;\n    }\n    local_50 = 0x2a;\n  }\n  else {\n    if (contextp == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }\n    local_50 = 0x3f;\n  }\n  sVar5 = strlen(pcVar4);\n  pcVar8 = (char *)xrealloc(pcVar8,lVar11 + 0x28 + sVar5);\n  psVar2->methods = pcVar8;\n  pcVar8 = info->type_stack->methods;\n  sVar5 = strlen(pcVar8);\n  sprintf(pcVar8 + sVar5,"%s:%s;%c%c%c",pcVar3,physname,(ulong)(uint)(int)cVar1,(ulong)uVar10,\n          local_50);\n  free(pcVar3);\n  pcVar3 = info->type_stack->methods;\n  sVar5 = strlen(pcVar3);\n  sprintf(pcVar3 + sVar5,"%ld;%s;",voffset,pcVar4);\n  free(pcVar4);\nLAB_00118e1d:\n  if (local_48 != 0) {\n    info->type_stack->definition = 1;\n  }\n  return 1;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "stab_type_stack *psVar2;" type_identifier (pointer_declarator "*psVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_50;" type_identifier identifier ;) (declaration "uint local_48;" type_identifier identifier ;) (expression_statement "pcVar4 = (char *)0x0;" (assignment_expression "pcVar4 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48 = info->type_stack->definition;" (assignment_expression "local_48 = info->type_stack->definition" identifier = (field_expression "info->type_stack->definition" (field_expression "info->type_stack" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "pcVar3 = stab_pop_type((stab_write_handle *)&info->type_stack);" (assignment_expression "pcVar3 = stab_pop_type((stab_write_handle *)&info->type_stack)" identifier = (call_expression "stab_pop_type((stab_write_handle *)&info->type_stack)" identifier (argument_list "((stab_write_handle *)&info->type_stack)" ( (cast_expression "(stab_write_handle *)&info->type_stack" ( (type_descriptor "stab_write_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&info->type_stack" & (field_expression "info->type_stack" identifier -> field_identifier))) )))) ;) (if_statement "if (contextp != 0) {\n    if (local_48 == 0) {\n      local_48 = (uint)(info->type_stack->definition != 0);\n    }\n    else {\n      local_48 = 1;\n    }\n    pcVar4 = stab_pop_type((stab_write_handle *)&info->type_stack);\n  }" if (parenthesized_expression "(contextp != 0)" ( (binary_expression "contextp != 0" identifier != number_literal) )) (compound_statement "{\n    if (local_48 == 0) {\n      local_48 = (uint)(info->type_stack->definition != 0);\n    }\n    else {\n      local_48 = 1;\n    }\n    pcVar4 = stab_pop_type((stab_write_handle *)&info->type_stack);\n  }" { (if_statement "if (local_48 == 0) {\n      local_48 = (uint)(info->type_stack->definition != 0);\n    }\n    else {\n      local_48 = 1;\n    }" if (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) (compound_statement "{\n      local_48 = (uint)(info->type_stack->definition != 0);\n    }" { (expression_statement "local_48 = (uint)(info->type_stack->definition != 0);" (assignment_expression "local_48 = (uint)(info->type_stack->definition != 0)" identifier = (call_expression "(uint)(info->type_stack->definition != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(info->type_stack->definition != 0)" ( (binary_expression "info->type_stack->definition != 0" (field_expression "info->type_stack->definition" (field_expression "info->type_stack" identifier -> field_identifier) -> field_identifier) != number_literal) )))) ;) }) (else_clause "else {\n      local_48 = 1;\n    }" else (compound_statement "{\n      local_48 = 1;\n    }" { (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) }))) (expression_statement "pcVar4 = stab_pop_type((stab_write_handle *)&info->type_stack);" (assignment_expression "pcVar4 = stab_pop_type((stab_write_handle *)&info->type_stack)" identifier = (call_expression "stab_pop_type((stab_write_handle *)&info->type_stack)" identifier (argument_list "((stab_write_handle *)&info->type_stack)" ( (cast_expression "(stab_write_handle *)&info->type_stack" ( (type_descriptor "stab_write_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&info->type_stack" & (field_expression "info->type_stack" identifier -> field_identifier))) )))) ;) })) (expression_statement "psVar2 = info->type_stack;" (assignment_expression "psVar2 = info->type_stack" identifier = (field_expression "info->type_stack" identifier -> field_identifier)) ;) (if_statement "if ((psVar2 == (stab_type_stack *)0x0) || (pcVar8 = psVar2->methods, pcVar8 == (char *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");\n  }" if (parenthesized_expression "((psVar2 == (stab_type_stack *)0x0) || (pcVar8 = psVar2->methods, pcVar8 == (char *)0x0))" ( (binary_expression "(psVar2 == (stab_type_stack *)0x0) || (pcVar8 = psVar2->methods, pcVar8 == (char *)0x0)" (parenthesized_expression "(psVar2 == (stab_type_stack *)0x0)" ( (binary_expression "psVar2 == (stab_type_stack *)0x0" identifier == (cast_expression "(stab_type_stack *)0x0" ( (type_descriptor "stab_type_stack *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar8 = psVar2->methods, pcVar8 == (char *)0x0)" ( (comma_expression "pcVar8 = psVar2->methods, pcVar8 == (char *)0x0" (assignment_expression "pcVar8 = psVar2->methods" identifier = (field_expression "psVar2->methods" identifier -> field_identifier)) , (binary_expression "pcVar8 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");\n  }" { comment (expression_statement "__assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");" (call_expression "__assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var")" identifier (argument_list "("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var")" ( (string_literal ""info->type_stack != NULL && info->type_stack->methods != NULL"" " string_content ") , (string_literal ""../../binutils/wrstabs.c"" " string_content ") , number_literal , (string_literal ""stab_class_method_var"" " string_content ") ))) ;) })) (if_statement "if (DEBUG_VISIBILITY_PRIVATE < visibility) {\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }" if (parenthesized_expression "(DEBUG_VISIBILITY_PRIVATE < visibility)" ( (binary_expression "DEBUG_VISIBILITY_PRIVATE < visibility" identifier < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }" { comment (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "cVar1 = *(char *)((long)&CSWTCH_27 + (ulong)visibility);" (assignment_expression "cVar1 = *(char *)((long)&CSWTCH_27 + (ulong)visibility)" identifier = (pointer_expression "*(char *)((long)&CSWTCH_27 + (ulong)visibility)" * (cast_expression "(char *)((long)&CSWTCH_27 + (ulong)visibility)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&CSWTCH_27 + (ulong)visibility)" ( (binary_expression "(long)&CSWTCH_27 + (ulong)visibility" (cast_expression "(long)&CSWTCH_27" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&CSWTCH_27" & identifier)) + (cast_expression "(ulong)visibility" ( (type_descriptor "ulong" type_identifier) ) identifier)) ))))) ;) (if_statement "if (constp == 0) {\n    uVar10 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    uVar10 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x44;\n  }" if (parenthesized_expression "(constp == 0)" ( (binary_expression "constp == 0" identifier == number_literal) )) (compound_statement "{\n    uVar10 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x43;\n  }" { (expression_statement "uVar10 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x43;" (assignment_expression "uVar10 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x43" identifier = (binary_expression "(-(uint)(volatilep == 0) & 0xfffffffe) + 0x43" (parenthesized_expression "(-(uint)(volatilep == 0) & 0xfffffffe)" ( (binary_expression "-(uint)(volatilep == 0) & 0xfffffffe" (unary_expression "-(uint)(volatilep == 0)" - (call_expression "(uint)(volatilep == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(volatilep == 0)" ( (binary_expression "volatilep == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;) }) (else_clause "else {\n    uVar10 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x44;\n  }" else (compound_statement "{\n    uVar10 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x44;\n  }" { (expression_statement "uVar10 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x44;" (assignment_expression "uVar10 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x44" identifier = (binary_expression "(-(uint)(volatilep == 0) & 0xfffffffe) + 0x44" (parenthesized_expression "(-(uint)(volatilep == 0) & 0xfffffffe)" ( (binary_expression "-(uint)(volatilep == 0) & 0xfffffffe" (unary_expression "-(uint)(volatilep == 0)" - (call_expression "(uint)(volatilep == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(volatilep == 0)" ( (binary_expression "volatilep == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;) }))) (expression_statement "sVar5 = strlen(pcVar8);" (assignment_expression "sVar5 = strlen(pcVar8)" identifier = (call_expression "strlen(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier )))) ;) (expression_statement "sVar6 = strlen(pcVar3);" (assignment_expression "sVar6 = strlen(pcVar3)" identifier = (call_expression "strlen(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "sVar7 = strlen(physname);" (assignment_expression "sVar7 = strlen(physname)" identifier = (call_expression "strlen(physname)" identifier (argument_list "(physname)" ( identifier )))) ;) (expression_statement "lVar11 = sVar6 + sVar5 + sVar7;" (assignment_expression "lVar11 = sVar6 + sVar5 + sVar7" identifier = (binary_expression "sVar6 + sVar5 + sVar7" (binary_expression "sVar6 + sVar5" identifier + identifier) + identifier)) ;) (if_statement "if (staticp == 0) {\n    if (contextp == 0) {\n      uVar9 = 0x2e;\nLAB_00118e80:\n      pcVar4 = (char *)xrealloc(pcVar8,lVar11 + 0x28);\n      psVar2->methods = pcVar4;\n      pcVar4 = info->type_stack->methods;\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%s:%s;%c%c%c",pcVar3,physname,(ulong)(uint)(int)cVar1,(ulong)uVar10,\n              uVar9);\n      free(pcVar3);\n      goto LAB_00118e1d;\n    }\n    local_50 = 0x2a;\n  }\n  else {\n    if (contextp == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }\n    local_50 = 0x3f;\n  }" if (parenthesized_expression "(staticp == 0)" ( (binary_expression "staticp == 0" identifier == number_literal) )) (compound_statement "{\n    if (contextp == 0) {\n      uVar9 = 0x2e;\nLAB_00118e80:\n      pcVar4 = (char *)xrealloc(pcVar8,lVar11 + 0x28);\n      psVar2->methods = pcVar4;\n      pcVar4 = info->type_stack->methods;\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%s:%s;%c%c%c",pcVar3,physname,(ulong)(uint)(int)cVar1,(ulong)uVar10,\n              uVar9);\n      free(pcVar3);\n      goto LAB_00118e1d;\n    }\n    local_50 = 0x2a;\n  }" { (if_statement "if (contextp == 0) {\n      uVar9 = 0x2e;\nLAB_00118e80:\n      pcVar4 = (char *)xrealloc(pcVar8,lVar11 + 0x28);\n      psVar2->methods = pcVar4;\n      pcVar4 = info->type_stack->methods;\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%s:%s;%c%c%c",pcVar3,physname,(ulong)(uint)(int)cVar1,(ulong)uVar10,\n              uVar9);\n      free(pcVar3);\n      goto LAB_00118e1d;\n    }" if (parenthesized_expression "(contextp == 0)" ( (binary_expression "contextp == 0" identifier == number_literal) )) (compound_statement "{\n      uVar9 = 0x2e;\nLAB_00118e80:\n      pcVar4 = (char *)xrealloc(pcVar8,lVar11 + 0x28);\n      psVar2->methods = pcVar4;\n      pcVar4 = info->type_stack->methods;\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%s:%s;%c%c%c",pcVar3,physname,(ulong)(uint)(int)cVar1,(ulong)uVar10,\n              uVar9);\n      free(pcVar3);\n      goto LAB_00118e1d;\n    }" { (expression_statement "uVar9 = 0x2e;" (assignment_expression "uVar9 = 0x2e" identifier = number_literal) ;) (labeled_statement "LAB_00118e80:\n      pcVar4 = (char *)xrealloc(pcVar8,lVar11 + 0x28);" statement_identifier : (expression_statement "pcVar4 = (char *)xrealloc(pcVar8,lVar11 + 0x28);" (assignment_expression "pcVar4 = (char *)xrealloc(pcVar8,lVar11 + 0x28)" identifier = (cast_expression "(char *)xrealloc(pcVar8,lVar11 + 0x28)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(pcVar8,lVar11 + 0x28)" identifier (argument_list "(pcVar8,lVar11 + 0x28)" ( identifier , (binary_expression "lVar11 + 0x28" identifier + number_literal) ))))) ;)) (expression_statement "psVar2->methods = pcVar4;" (assignment_expression "psVar2->methods = pcVar4" (field_expression "psVar2->methods" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar4 = info->type_stack->methods;" (assignment_expression "pcVar4 = info->type_stack->methods" identifier = (field_expression "info->type_stack->methods" (field_expression "info->type_stack" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "sVar5 = strlen(pcVar4);" (assignment_expression "sVar5 = strlen(pcVar4)" identifier = (call_expression "strlen(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier )))) ;) (expression_statement "sprintf(pcVar4 + sVar5,"%s:%s;%c%c%c",pcVar3,physname,(ulong)(uint)(int)cVar1,(ulong)uVar10,\n              uVar9);" (call_expression "sprintf(pcVar4 + sVar5,"%s:%s;%c%c%c",pcVar3,physname,(ulong)(uint)(int)cVar1,(ulong)uVar10,\n              uVar9)" identifier (argument_list "(pcVar4 + sVar5,"%s:%s;%c%c%c",pcVar3,physname,(ulong)(uint)(int)cVar1,(ulong)uVar10,\n              uVar9)" ( (binary_expression "pcVar4 + sVar5" identifier + identifier) , (string_literal ""%s:%s;%c%c%c"" " string_content ") , identifier , identifier , (cast_expression "(ulong)(uint)(int)cVar1" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)(int)cVar1" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier))) , (cast_expression "(ulong)uVar10" ( (type_descriptor "ulong" type_identifier) ) identifier) , identifier ))) ;) (expression_statement "free(pcVar3);" (call_expression "free(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (goto_statement "goto LAB_00118e1d;" goto statement_identifier ;) })) (expression_statement "local_50 = 0x2a;" (assignment_expression "local_50 = 0x2a" identifier = number_literal) ;) }) (else_clause "else {\n    if (contextp == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }\n    local_50 = 0x3f;\n  }" else (compound_statement "{\n    if (contextp == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }\n    local_50 = 0x3f;\n  }" { (if_statement "if (contextp == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }" if (parenthesized_expression "(contextp == 0)" ( (binary_expression "contextp == 0" identifier == number_literal) )) (compound_statement "{\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }" { (expression_statement "uVar9 = 0x3f;" (assignment_expression "uVar9 = 0x3f" identifier = number_literal) ;) (goto_statement "goto LAB_00118e80;" goto statement_identifier ;) })) (expression_statement "local_50 = 0x3f;" (assignment_expression "local_50 = 0x3f" identifier = number_literal) ;) }))) (expression_statement "sVar5 = strlen(pcVar4);" (assignment_expression "sVar5 = strlen(pcVar4)" identifier = (call_expression "strlen(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier )))) ;) (expression_statement "pcVar8 = (char *)xrealloc(pcVar8,lVar11 + 0x28 + sVar5);" (assignment_expression "pcVar8 = (char *)xrealloc(pcVar8,lVar11 + 0x28 + sVar5)" identifier = (cast_expression "(char *)xrealloc(pcVar8,lVar11 + 0x28 + sVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(pcVar8,lVar11 + 0x28 + sVar5)" identifier (argument_list "(pcVar8,lVar11 + 0x28 + sVar5)" ( identifier , (binary_expression "lVar11 + 0x28 + sVar5" (binary_expression "lVar11 + 0x28" identifier + number_literal) + identifier) ))))) ;) (expression_statement "psVar2->methods = pcVar8;" (assignment_expression "psVar2->methods = pcVar8" (field_expression "psVar2->methods" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar8 = info->type_stack->methods;" (assignment_expression "pcVar8 = info->type_stack->methods" identifier = (field_expression "info->type_stack->methods" (field_expression "info->type_stack" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "sVar5 = strlen(pcVar8);" (assignment_expression "sVar5 = strlen(pcVar8)" identifier = (call_expression "strlen(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier )))) ;) (expression_statement "sprintf(pcVar8 + sVar5,"%s:%s;%c%c%c",pcVar3,physname,(ulong)(uint)(int)cVar1,(ulong)uVar10,\n          local_50);" (call_expression "sprintf(pcVar8 + sVar5,"%s:%s;%c%c%c",pcVar3,physname,(ulong)(uint)(int)cVar1,(ulong)uVar10,\n          local_50)" identifier (argument_list "(pcVar8 + sVar5,"%s:%s;%c%c%c",pcVar3,physname,(ulong)(uint)(int)cVar1,(ulong)uVar10,\n          local_50)" ( (binary_expression "pcVar8 + sVar5" identifier + identifier) , (string_literal ""%s:%s;%c%c%c"" " string_content ") , identifier , identifier , (cast_expression "(ulong)(uint)(int)cVar1" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)(int)cVar1" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier))) , (cast_expression "(ulong)uVar10" ( (type_descriptor "ulong" type_identifier) ) identifier) , identifier ))) ;) (expression_statement "free(pcVar3);" (call_expression "free(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (expression_statement "pcVar3 = info->type_stack->methods;" (assignment_expression "pcVar3 = info->type_stack->methods" identifier = (field_expression "info->type_stack->methods" (field_expression "info->type_stack" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "sVar5 = strlen(pcVar3);" (assignment_expression "sVar5 = strlen(pcVar3)" identifier = (call_expression "strlen(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "sprintf(pcVar3 + sVar5,"%ld;%s;",voffset,pcVar4);" (call_expression "sprintf(pcVar3 + sVar5,"%ld;%s;",voffset,pcVar4)" identifier (argument_list "(pcVar3 + sVar5,"%ld;%s;",voffset,pcVar4)" ( (binary_expression "pcVar3 + sVar5" identifier + identifier) , (string_literal ""%ld;%s;"" " string_content ") , identifier , identifier ))) ;) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (labeled_statement "LAB_00118e1d:\n  if (local_48 != 0) {\n    info->type_stack->definition = 1;\n  }" statement_identifier : (if_statement "if (local_48 != 0) {\n    info->type_stack->definition = 1;\n  }" if (parenthesized_expression "(local_48 != 0)" ( (binary_expression "local_48 != 0" identifier != number_literal) )) (compound_statement "{\n    info->type_stack->definition = 1;\n  }" { (expression_statement "info->type_stack->definition = 1;" (assignment_expression "info->type_stack->definition = 1" (field_expression "info->type_stack->definition" (field_expression "info->type_stack" identifier -> field_identifier) -> field_identifier) = number_literal) ;) }))) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "undefined8\nFUN_00118c60(long param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,\n            undefined8 param_7,int param_8)\n\n{\n  char cVar1;\n  long lVar2;\n  char *pcVar3;\n  char *pcVar4;\n  char *pcVar5;\n  size_t sVar6;\n  size_t sVar7;\n  size_t sVar8;\n  undefined8 uVar9;\n  undefined8 uVar10;\n  uint uVar11;\n  long lVar12;\n  undefined8 local_50;\n  uint local_48;\n  \n  pcVar5 = (char *)0x0;\n  local_48 = *(uint *)(*(long *)(param_1 + 0x60) + 0x1c);\n  pcVar4 = (char *)FUN_00118930(param_1 + 0x60);\n  if (param_8 != 0) {\n    if (local_48 == 0) {\n      local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);\n    }\n    else {\n      local_48 = 1;\n    }\n    pcVar5 = (char *)FUN_00118930(param_1 + 0x60);\n  }\n  lVar2 = *(long *)(param_1 + 0x60);\n  if ((lVar2 == 0) || (pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0)) {\n                    \n    __assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");\n  }\n  if (2 < param_3) {\n                    \n    abort();\n  }\n  cVar1 = (&DAT_00124320)[param_3];\n  if (param_5 == 0) {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }\n  sVar6 = strlen(pcVar3);\n  sVar7 = strlen(pcVar4);\n  sVar8 = strlen(param_2);\n  lVar12 = sVar7 + sVar6 + sVar8;\n  if (param_4 == 0) {\n    if (param_8 == 0) {\n      uVar9 = 0x2e;\nLAB_00118e80:\n      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);\n      *(undefined8 *)(lVar2 + 0x30) = uVar10;\n      pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n      sVar6 = strlen(pcVar5);\n      sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9);\n      free(pcVar4);\n      goto LAB_00118e1d;\n    }\n    local_50 = 0x2a;\n  }\n  else {\n    if (param_8 == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }\n    local_50 = 0x3f;\n  }\n  sVar6 = strlen(pcVar5);\n  uVar9 = xrealloc(pcVar3,lVar12 + 0x28 + sVar6);\n  *(undefined8 *)(lVar2 + 0x30) = uVar9;\n  pcVar3 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n  sVar6 = strlen(pcVar3);\n  sprintf(pcVar3 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n          local_50);\n  free(pcVar4);\n  pcVar4 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n  sVar6 = strlen(pcVar4);\n  sprintf(pcVar4 + sVar6,"%ld;%s;",param_7,pcVar5);\n  free(pcVar5);\nLAB_00118e1d:\n  if (local_48 != 0) {\n    *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1;\n  }\n  return 1;\n}\n\n" (function_definition "undefined8\nFUN_00118c60(long param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,\n            undefined8 param_7,int param_8)\n\n{\n  char cVar1;\n  long lVar2;\n  char *pcVar3;\n  char *pcVar4;\n  char *pcVar5;\n  size_t sVar6;\n  size_t sVar7;\n  size_t sVar8;\n  undefined8 uVar9;\n  undefined8 uVar10;\n  uint uVar11;\n  long lVar12;\n  undefined8 local_50;\n  uint local_48;\n  \n  pcVar5 = (char *)0x0;\n  local_48 = *(uint *)(*(long *)(param_1 + 0x60) + 0x1c);\n  pcVar4 = (char *)FUN_00118930(param_1 + 0x60);\n  if (param_8 != 0) {\n    if (local_48 == 0) {\n      local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);\n    }\n    else {\n      local_48 = 1;\n    }\n    pcVar5 = (char *)FUN_00118930(param_1 + 0x60);\n  }\n  lVar2 = *(long *)(param_1 + 0x60);\n  if ((lVar2 == 0) || (pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0)) {\n                    \n    __assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");\n  }\n  if (2 < param_3) {\n                    \n    abort();\n  }\n  cVar1 = (&DAT_00124320)[param_3];\n  if (param_5 == 0) {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }\n  sVar6 = strlen(pcVar3);\n  sVar7 = strlen(pcVar4);\n  sVar8 = strlen(param_2);\n  lVar12 = sVar7 + sVar6 + sVar8;\n  if (param_4 == 0) {\n    if (param_8 == 0) {\n      uVar9 = 0x2e;\nLAB_00118e80:\n      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);\n      *(undefined8 *)(lVar2 + 0x30) = uVar10;\n      pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n      sVar6 = strlen(pcVar5);\n      sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9);\n      free(pcVar4);\n      goto LAB_00118e1d;\n    }\n    local_50 = 0x2a;\n  }\n  else {\n    if (param_8 == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }\n    local_50 = 0x3f;\n  }\n  sVar6 = strlen(pcVar5);\n  uVar9 = xrealloc(pcVar3,lVar12 + 0x28 + sVar6);\n  *(undefined8 *)(lVar2 + 0x30) = uVar9;\n  pcVar3 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n  sVar6 = strlen(pcVar3);\n  sprintf(pcVar3 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n          local_50);\n  free(pcVar4);\n  pcVar4 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n  sVar6 = strlen(pcVar4);\n  sprintf(pcVar4 + sVar6,"%ld;%s;",param_7,pcVar5);\n  free(pcVar5);\nLAB_00118e1d:\n  if (local_48 != 0) {\n    *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1;\n  }\n  return 1;\n}" type_identifier (function_declarator "FUN_00118c60(long param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,\n            undefined8 param_7,int param_8)" identifier (parameter_list "(long param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,\n            undefined8 param_7,int param_8)" ( (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 "uint param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "undefined8 param_7" type_identifier identifier) , (parameter_declaration "int param_8" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  long lVar2;\n  char *pcVar3;\n  char *pcVar4;\n  char *pcVar5;\n  size_t sVar6;\n  size_t sVar7;\n  size_t sVar8;\n  undefined8 uVar9;\n  undefined8 uVar10;\n  uint uVar11;\n  long lVar12;\n  undefined8 local_50;\n  uint local_48;\n  \n  pcVar5 = (char *)0x0;\n  local_48 = *(uint *)(*(long *)(param_1 + 0x60) + 0x1c);\n  pcVar4 = (char *)FUN_00118930(param_1 + 0x60);\n  if (param_8 != 0) {\n    if (local_48 == 0) {\n      local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);\n    }\n    else {\n      local_48 = 1;\n    }\n    pcVar5 = (char *)FUN_00118930(param_1 + 0x60);\n  }\n  lVar2 = *(long *)(param_1 + 0x60);\n  if ((lVar2 == 0) || (pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0)) {\n                    \n    __assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");\n  }\n  if (2 < param_3) {\n                    \n    abort();\n  }\n  cVar1 = (&DAT_00124320)[param_3];\n  if (param_5 == 0) {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }\n  sVar6 = strlen(pcVar3);\n  sVar7 = strlen(pcVar4);\n  sVar8 = strlen(param_2);\n  lVar12 = sVar7 + sVar6 + sVar8;\n  if (param_4 == 0) {\n    if (param_8 == 0) {\n      uVar9 = 0x2e;\nLAB_00118e80:\n      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);\n      *(undefined8 *)(lVar2 + 0x30) = uVar10;\n      pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n      sVar6 = strlen(pcVar5);\n      sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9);\n      free(pcVar4);\n      goto LAB_00118e1d;\n    }\n    local_50 = 0x2a;\n  }\n  else {\n    if (param_8 == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }\n    local_50 = 0x3f;\n  }\n  sVar6 = strlen(pcVar5);\n  uVar9 = xrealloc(pcVar3,lVar12 + 0x28 + sVar6);\n  *(undefined8 *)(lVar2 + 0x30) = uVar9;\n  pcVar3 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n  sVar6 = strlen(pcVar3);\n  sprintf(pcVar3 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n          local_50);\n  free(pcVar4);\n  pcVar4 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n  sVar6 = strlen(pcVar4);\n  sprintf(pcVar4 + sVar6,"%ld;%s;",param_7,pcVar5);\n  free(pcVar5);\nLAB_00118e1d:\n  if (local_48 != 0) {\n    *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1;\n  }\n  return 1;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "undefined8 uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_50;" type_identifier identifier ;) (declaration "uint local_48;" type_identifier identifier ;) (expression_statement "pcVar5 = (char *)0x0;" (assignment_expression "pcVar5 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48 = *(uint *)(*(long *)(param_1 + 0x60) + 0x1c);" (assignment_expression "local_48 = *(uint *)(*(long *)(param_1 + 0x60) + 0x1c)" identifier = (pointer_expression "*(uint *)(*(long *)(param_1 + 0x60) + 0x1c)" * (cast_expression "(uint *)(*(long *)(param_1 + 0x60) + 0x1c)" ( (type_descriptor "uint *" 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 "pcVar4 = (char *)FUN_00118930(param_1 + 0x60);" (assignment_expression "pcVar4 = (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) ))))) ;) (if_statement "if (param_8 != 0) {\n    if (local_48 == 0) {\n      local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);\n    }\n    else {\n      local_48 = 1;\n    }\n    pcVar5 = (char *)FUN_00118930(param_1 + 0x60);\n  }" if (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) (compound_statement "{\n    if (local_48 == 0) {\n      local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);\n    }\n    else {\n      local_48 = 1;\n    }\n    pcVar5 = (char *)FUN_00118930(param_1 + 0x60);\n  }" { (if_statement "if (local_48 == 0) {\n      local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);\n    }\n    else {\n      local_48 = 1;\n    }" if (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) (compound_statement "{\n      local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);\n    }" { (expression_statement "local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);" (assignment_expression "local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0)" identifier = (call_expression "(uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0)" ( (binary_expression "*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0" (pointer_expression "*(int *)(*(long *)(param_1 + 0x60) + 0x1c)" * (cast_expression "(int *)(*(long *)(param_1 + 0x60) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x60) + 0x1c)" ( (binary_expression "*(long *)(param_1 + 0x60) + 0x1c" (pointer_expression "*(long *)(param_1 + 0x60)" * (cast_expression "(long *)(param_1 + 0x60)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) + number_literal) )))) != number_literal) )))) ;) }) (else_clause "else {\n      local_48 = 1;\n    }" else (compound_statement "{\n      local_48 = 1;\n    }" { (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) }))) (expression_statement "pcVar5 = (char *)FUN_00118930(param_1 + 0x60);" (assignment_expression "pcVar5 = (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 "lVar2 = *(long *)(param_1 + 0x60);" (assignment_expression "lVar2 = *(long *)(param_1 + 0x60)" identifier = (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) ))))) ;) (if_statement "if ((lVar2 == 0) || (pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0)) {\n                    \n    __assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");\n  }" if (parenthesized_expression "((lVar2 == 0) || (pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0))" ( (binary_expression "(lVar2 == 0) || (pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0)" (parenthesized_expression "(lVar2 == 0)" ( (binary_expression "lVar2 == 0" identifier == number_literal) )) || (parenthesized_expression "(pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0)" ( (comma_expression "pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0" (assignment_expression "pcVar3 = *(char **)(lVar2 + 0x30)" identifier = (pointer_expression "*(char **)(lVar2 + 0x30)" * (cast_expression "(char **)(lVar2 + 0x30)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar2 + 0x30)" ( (binary_expression "lVar2 + 0x30" identifier + number_literal) ))))) , (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                    \n    __assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");\n  }" { (expression_statement "__assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");" (call_expression "__assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var")" identifier (argument_list "("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var")" ( (string_literal ""info->type_stack != NULL && info->type_stack->methods != NULL"" " string_content ") , (string_literal ""../../binutils/wrstabs.c"" " string_content ") , number_literal , (string_literal ""stab_class_method_var"" " string_content ") ))) ;) })) (if_statement "if (2 < param_3) {\n                    \n    abort();\n  }" if (parenthesized_expression "(2 < param_3)" ( (binary_expression "2 < param_3" number_literal < identifier) )) (compound_statement "{\n                    \n    abort();\n  }" { (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "cVar1 = (&DAT_00124320)[param_3];" (assignment_expression "cVar1 = (&DAT_00124320)[param_3]" identifier = (subscript_expression "(&DAT_00124320)[param_3]" (parenthesized_expression "(&DAT_00124320)" ( (pointer_expression "&DAT_00124320" & identifier) )) [ identifier ])) ;) (if_statement "if (param_5 == 0) {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }" { (expression_statement "uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;" (assignment_expression "uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43" identifier = (binary_expression "(-(uint)(param_6 == 0) & 0xfffffffe) + 0x43" (parenthesized_expression "(-(uint)(param_6 == 0) & 0xfffffffe)" ( (binary_expression "-(uint)(param_6 == 0) & 0xfffffffe" (unary_expression "-(uint)(param_6 == 0)" - (call_expression "(uint)(param_6 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;) }) (else_clause "else {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }" else (compound_statement "{\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }" { (expression_statement "uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;" (assignment_expression "uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44" identifier = (binary_expression "(-(uint)(param_6 == 0) & 0xfffffffe) + 0x44" (parenthesized_expression "(-(uint)(param_6 == 0) & 0xfffffffe)" ( (binary_expression "-(uint)(param_6 == 0) & 0xfffffffe" (unary_expression "-(uint)(param_6 == 0)" - (call_expression "(uint)(param_6 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;) }))) (expression_statement "sVar6 = strlen(pcVar3);" (assignment_expression "sVar6 = strlen(pcVar3)" identifier = (call_expression "strlen(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "sVar7 = strlen(pcVar4);" (assignment_expression "sVar7 = strlen(pcVar4)" identifier = (call_expression "strlen(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier )))) ;) (expression_statement "sVar8 = strlen(param_2);" (assignment_expression "sVar8 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "lVar12 = sVar7 + sVar6 + sVar8;" (assignment_expression "lVar12 = sVar7 + sVar6 + sVar8" identifier = (binary_expression "sVar7 + sVar6 + sVar8" (binary_expression "sVar7 + sVar6" identifier + identifier) + identifier)) ;) (if_statement "if (param_4 == 0) {\n    if (param_8 == 0) {\n      uVar9 = 0x2e;\nLAB_00118e80:\n      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);\n      *(undefined8 *)(lVar2 + 0x30) = uVar10;\n      pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n      sVar6 = strlen(pcVar5);\n      sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9);\n      free(pcVar4);\n      goto LAB_00118e1d;\n    }\n    local_50 = 0x2a;\n  }\n  else {\n    if (param_8 == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }\n    local_50 = 0x3f;\n  }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n    if (param_8 == 0) {\n      uVar9 = 0x2e;\nLAB_00118e80:\n      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);\n      *(undefined8 *)(lVar2 + 0x30) = uVar10;\n      pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n      sVar6 = strlen(pcVar5);\n      sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9);\n      free(pcVar4);\n      goto LAB_00118e1d;\n    }\n    local_50 = 0x2a;\n  }" { (if_statement "if (param_8 == 0) {\n      uVar9 = 0x2e;\nLAB_00118e80:\n      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);\n      *(undefined8 *)(lVar2 + 0x30) = uVar10;\n      pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n      sVar6 = strlen(pcVar5);\n      sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9);\n      free(pcVar4);\n      goto LAB_00118e1d;\n    }" if (parenthesized_expression "(param_8 == 0)" ( (binary_expression "param_8 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar9 = 0x2e;\nLAB_00118e80:\n      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);\n      *(undefined8 *)(lVar2 + 0x30) = uVar10;\n      pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n      sVar6 = strlen(pcVar5);\n      sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9);\n      free(pcVar4);\n      goto LAB_00118e1d;\n    }" { (expression_statement "uVar9 = 0x2e;" (assignment_expression "uVar9 = 0x2e" identifier = number_literal) ;) (labeled_statement "LAB_00118e80:\n      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);" statement_identifier : (expression_statement "uVar10 = xrealloc(pcVar3,lVar12 + 0x28);" (assignment_expression "uVar10 = xrealloc(pcVar3,lVar12 + 0x28)" identifier = (call_expression "xrealloc(pcVar3,lVar12 + 0x28)" identifier (argument_list "(pcVar3,lVar12 + 0x28)" ( identifier , (binary_expression "lVar12 + 0x28" identifier + number_literal) )))) ;)) (expression_statement "*(undefined8 *)(lVar2 + 0x30) = uVar10;" (assignment_expression "*(undefined8 *)(lVar2 + 0x30) = uVar10" (pointer_expression "*(undefined8 *)(lVar2 + 0x30)" * (cast_expression "(undefined8 *)(lVar2 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x30)" ( (binary_expression "lVar2 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);" (assignment_expression "pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30)" identifier = (pointer_expression "*(char **)(*(long *)(param_1 + 0x60) + 0x30)" * (cast_expression "(char **)(*(long *)(param_1 + 0x60) + 0x30)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 0x60) + 0x30)" ( (binary_expression "*(long *)(param_1 + 0x60) + 0x30" (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 "sVar6 = strlen(pcVar5);" (assignment_expression "sVar6 = strlen(pcVar5)" identifier = (call_expression "strlen(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier )))) ;) (expression_statement "sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9);" (call_expression "sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9)" identifier (argument_list "(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9)" ( (binary_expression "pcVar5 + sVar6" identifier + identifier) , (string_literal ""%s:%s;%c%c%c"" " string_content ") , identifier , identifier , (cast_expression "(ulong)(uint)(int)cVar1" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)(int)cVar1" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier))) , (cast_expression "(ulong)uVar11" ( (type_descriptor "ulong" type_identifier) ) identifier) , identifier ))) ;) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (goto_statement "goto LAB_00118e1d;" goto statement_identifier ;) })) (expression_statement "local_50 = 0x2a;" (assignment_expression "local_50 = 0x2a" identifier = number_literal) ;) }) (else_clause "else {\n    if (param_8 == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }\n    local_50 = 0x3f;\n  }" else (compound_statement "{\n    if (param_8 == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }\n    local_50 = 0x3f;\n  }" { (if_statement "if (param_8 == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }" if (parenthesized_expression "(param_8 == 0)" ( (binary_expression "param_8 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }" { (expression_statement "uVar9 = 0x3f;" (assignment_expression "uVar9 = 0x3f" identifier = number_literal) ;) (goto_statement "goto LAB_00118e80;" goto statement_identifier ;) })) (expression_statement "local_50 = 0x3f;" (assignment_expression "local_50 = 0x3f" identifier = number_literal) ;) }))) (expression_statement "sVar6 = strlen(pcVar5);" (assignment_expression "sVar6 = strlen(pcVar5)" identifier = (call_expression "strlen(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier )))) ;) (expression_statement "uVar9 = xrealloc(pcVar3,lVar12 + 0x28 + sVar6);" (assignment_expression "uVar9 = xrealloc(pcVar3,lVar12 + 0x28 + sVar6)" identifier = (call_expression "xrealloc(pcVar3,lVar12 + 0x28 + sVar6)" identifier (argument_list "(pcVar3,lVar12 + 0x28 + sVar6)" ( identifier , (binary_expression "lVar12 + 0x28 + sVar6" (binary_expression "lVar12 + 0x28" identifier + number_literal) + identifier) )))) ;) (expression_statement "*(undefined8 *)(lVar2 + 0x30) = uVar9;" (assignment_expression "*(undefined8 *)(lVar2 + 0x30) = uVar9" (pointer_expression "*(undefined8 *)(lVar2 + 0x30)" * (cast_expression "(undefined8 *)(lVar2 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x30)" ( (binary_expression "lVar2 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);" (assignment_expression "pcVar3 = *(char **)(*(long *)(param_1 + 0x60) + 0x30)" identifier = (pointer_expression "*(char **)(*(long *)(param_1 + 0x60) + 0x30)" * (cast_expression "(char **)(*(long *)(param_1 + 0x60) + 0x30)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 0x60) + 0x30)" ( (binary_expression "*(long *)(param_1 + 0x60) + 0x30" (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 "sVar6 = strlen(pcVar3);" (assignment_expression "sVar6 = strlen(pcVar3)" identifier = (call_expression "strlen(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "sprintf(pcVar3 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n          local_50);" (call_expression "sprintf(pcVar3 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n          local_50)" identifier (argument_list "(pcVar3 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n          local_50)" ( (binary_expression "pcVar3 + sVar6" identifier + identifier) , (string_literal ""%s:%s;%c%c%c"" " string_content ") , identifier , identifier , (cast_expression "(ulong)(uint)(int)cVar1" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)(int)cVar1" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier))) , (cast_expression "(ulong)uVar11" ( (type_descriptor "ulong" type_identifier) ) identifier) , identifier ))) ;) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "pcVar4 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);" (assignment_expression "pcVar4 = *(char **)(*(long *)(param_1 + 0x60) + 0x30)" identifier = (pointer_expression "*(char **)(*(long *)(param_1 + 0x60) + 0x30)" * (cast_expression "(char **)(*(long *)(param_1 + 0x60) + 0x30)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 0x60) + 0x30)" ( (binary_expression "*(long *)(param_1 + 0x60) + 0x30" (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 "sVar6 = strlen(pcVar4);" (assignment_expression "sVar6 = strlen(pcVar4)" identifier = (call_expression "strlen(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier )))) ;) (expression_statement "sprintf(pcVar4 + sVar6,"%ld;%s;",param_7,pcVar5);" (call_expression "sprintf(pcVar4 + sVar6,"%ld;%s;",param_7,pcVar5)" identifier (argument_list "(pcVar4 + sVar6,"%ld;%s;",param_7,pcVar5)" ( (binary_expression "pcVar4 + sVar6" identifier + identifier) , (string_literal ""%ld;%s;"" " string_content ") , identifier , identifier ))) ;) (expression_statement "free(pcVar5);" (call_expression "free(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (labeled_statement "LAB_00118e1d:\n  if (local_48 != 0) {\n    *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1;\n  }" statement_identifier : (if_statement "if (local_48 != 0) {\n    *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1;\n  }" if (parenthesized_expression "(local_48 != 0)" ( (binary_expression "local_48 != 0" identifier != number_literal) )) (compound_statement "{\n    *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1;\n  }" { (expression_statement "*(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1;" (assignment_expression "*(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1" (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) )))) = number_literal) ;) }))) (return_statement "return 1;" return number_literal ;) })))
(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) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = 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 = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) & LIT) )) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) & LIT) )) + 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 = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , (string_literal " string_content ") , IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) , (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_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 , (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , (string_literal " string_content ") , IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) , (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , (string_literal " string_content ") , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = LIT) ;) }))) (return_statement return LIT ;) })))
(function_definition "undefined8\nFUN_00118c60(long param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,\n            undefined8 param_7,int param_8)\n\n{\n  char cVar1;\n  long lVar2;\n  char *pcVar3;\n  char *pcVar4;\n  char *pcVar5;\n  size_t sVar6;\n  size_t sVar7;\n  size_t sVar8;\n  undefined8 uVar9;\n  undefined8 uVar10;\n  uint uVar11;\n  long lVar12;\n  undefined8 local_50;\n  uint local_48;\n  \n  pcVar5 = (char *)0x0;\n  local_48 = *(uint *)(*(long *)(param_1 + 0x60) + 0x1c);\n  pcVar4 = (char *)FUN_00118930(param_1 + 0x60);\n  if (param_8 != 0) {\n    if (local_48 == 0) {\n      local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);\n    }\n    else {\n      local_48 = 1;\n    }\n    pcVar5 = (char *)FUN_00118930(param_1 + 0x60);\n  }\n  lVar2 = *(long *)(param_1 + 0x60);\n  if ((lVar2 == 0) || (pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0)) {\n                    \n    __assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");\n  }\n  if (2 < param_3) {\n                    \n    abort();\n  }\n  cVar1 = (&DAT_00124320)[param_3];\n  if (param_5 == 0) {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }\n  sVar6 = strlen(pcVar3);\n  sVar7 = strlen(pcVar4);\n  sVar8 = strlen(param_2);\n  lVar12 = sVar7 + sVar6 + sVar8;\n  if (param_4 == 0) {\n    if (param_8 == 0) {\n      uVar9 = 0x2e;\nLAB_00118e80:\n      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);\n      *(undefined8 *)(lVar2 + 0x30) = uVar10;\n      pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n      sVar6 = strlen(pcVar5);\n      sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9);\n      free(pcVar4);\n      goto LAB_00118e1d;\n    }\n    local_50 = 0x2a;\n  }\n  else {\n    if (param_8 == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }\n    local_50 = 0x3f;\n  }\n  sVar6 = strlen(pcVar5);\n  uVar9 = xrealloc(pcVar3,lVar12 + 0x28 + sVar6);\n  *(undefined8 *)(lVar2 + 0x30) = uVar9;\n  pcVar3 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n  sVar6 = strlen(pcVar3);\n  sprintf(pcVar3 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n          local_50);\n  free(pcVar4);\n  pcVar4 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n  sVar6 = strlen(pcVar4);\n  sprintf(pcVar4 + sVar6,"%ld;%s;",param_7,pcVar5);\n  free(pcVar5);\nLAB_00118e1d:\n  if (local_48 != 0) {\n    *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1;\n  }\n  return 1;\n}" (type_identifier "undefined8") (function_declarator "FUN_00118c60(long param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,\n            undefined8 param_7,int param_8)" (identifier "FUN_00118c60") (parameter_list "(long param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,\n            undefined8 param_7,int param_8)" (( "(") (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 "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) (, ",") (parameter_declaration "undefined8 param_7" (type_identifier "undefined8") (identifier "param_7")) (, ",") (parameter_declaration "int param_8" (primitive_type "int") (identifier "param_8")) () ")"))) (compound_statement "{\n  char cVar1;\n  long lVar2;\n  char *pcVar3;\n  char *pcVar4;\n  char *pcVar5;\n  size_t sVar6;\n  size_t sVar7;\n  size_t sVar8;\n  undefined8 uVar9;\n  undefined8 uVar10;\n  uint uVar11;\n  long lVar12;\n  undefined8 local_50;\n  uint local_48;\n  \n  pcVar5 = (char *)0x0;\n  local_48 = *(uint *)(*(long *)(param_1 + 0x60) + 0x1c);\n  pcVar4 = (char *)FUN_00118930(param_1 + 0x60);\n  if (param_8 != 0) {\n    if (local_48 == 0) {\n      local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);\n    }\n    else {\n      local_48 = 1;\n    }\n    pcVar5 = (char *)FUN_00118930(param_1 + 0x60);\n  }\n  lVar2 = *(long *)(param_1 + 0x60);\n  if ((lVar2 == 0) || (pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0)) {\n                    \n    __assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");\n  }\n  if (2 < param_3) {\n                    \n    abort();\n  }\n  cVar1 = (&DAT_00124320)[param_3];\n  if (param_5 == 0) {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }\n  sVar6 = strlen(pcVar3);\n  sVar7 = strlen(pcVar4);\n  sVar8 = strlen(param_2);\n  lVar12 = sVar7 + sVar6 + sVar8;\n  if (param_4 == 0) {\n    if (param_8 == 0) {\n      uVar9 = 0x2e;\nLAB_00118e80:\n      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);\n      *(undefined8 *)(lVar2 + 0x30) = uVar10;\n      pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n      sVar6 = strlen(pcVar5);\n      sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9);\n      free(pcVar4);\n      goto LAB_00118e1d;\n    }\n    local_50 = 0x2a;\n  }\n  else {\n    if (param_8 == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }\n    local_50 = 0x3f;\n  }\n  sVar6 = strlen(pcVar5);\n  uVar9 = xrealloc(pcVar3,lVar12 + 0x28 + sVar6);\n  *(undefined8 *)(lVar2 + 0x30) = uVar9;\n  pcVar3 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n  sVar6 = strlen(pcVar3);\n  sprintf(pcVar3 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n          local_50);\n  free(pcVar4);\n  pcVar4 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n  sVar6 = strlen(pcVar4);\n  sprintf(pcVar4 + sVar6,"%ld;%s;",param_7,pcVar5);\n  free(pcVar5);\nLAB_00118e1d:\n  if (local_48 != 0) {\n    *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1;\n  }\n  return 1;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "size_t sVar6;" (primitive_type "size_t") (identifier "sVar6") (; ";")) (declaration "size_t sVar7;" (primitive_type "size_t") (identifier "sVar7") (; ";")) (declaration "size_t sVar8;" (primitive_type "size_t") (identifier "sVar8") (; ";")) (declaration "undefined8 uVar9;" (type_identifier "undefined8") (identifier "uVar9") (; ";")) (declaration "undefined8 uVar10;" (type_identifier "undefined8") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "long lVar12;" (sized_type_specifier "long" (long "long")) (identifier "lVar12") (; ";")) (declaration "undefined8 local_50;" (type_identifier "undefined8") (identifier "local_50") (; ";")) (declaration "uint local_48;" (type_identifier "uint") (identifier "local_48") (; ";")) (expression_statement "pcVar5 = (char *)0x0;" (assignment_expression "pcVar5 = (char *)0x0" (identifier "pcVar5") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_48 = *(uint *)(*(long *)(param_1 + 0x60) + 0x1c);" (assignment_expression "local_48 = *(uint *)(*(long *)(param_1 + 0x60) + 0x1c)" (identifier "local_48") (= "=") (pointer_expression "*(uint *)(*(long *)(param_1 + 0x60) + 0x1c)" (* "*") (cast_expression "(uint *)(*(long *)(param_1 + 0x60) + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (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 "pcVar4 = (char *)FUN_00118930(param_1 + 0x60);" (assignment_expression "pcVar4 = (char *)FUN_00118930(param_1 + 0x60)" (identifier "pcVar4") (= "=") (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")) () ")"))))) (; ";")) (if_statement "if (param_8 != 0) {\n    if (local_48 == 0) {\n      local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);\n    }\n    else {\n      local_48 = 1;\n    }\n    pcVar5 = (char *)FUN_00118930(param_1 + 0x60);\n  }" (if "if") (parenthesized_expression "(param_8 != 0)" (( "(") (binary_expression "param_8 != 0" (identifier "param_8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (local_48 == 0) {\n      local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);\n    }\n    else {\n      local_48 = 1;\n    }\n    pcVar5 = (char *)FUN_00118930(param_1 + 0x60);\n  }" ({ "{") (if_statement "if (local_48 == 0) {\n      local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);\n    }\n    else {\n      local_48 = 1;\n    }" (if "if") (parenthesized_expression "(local_48 == 0)" (( "(") (binary_expression "local_48 == 0" (identifier "local_48") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);\n    }" ({ "{") (expression_statement "local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);" (assignment_expression "local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0)" (identifier "local_48") (= "=") (call_expression "(uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0)" (( "(") (binary_expression "*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0" (pointer_expression "*(int *)(*(long *)(param_1 + 0x60) + 0x1c)" (* "*") (cast_expression "(int *)(*(long *)(param_1 + 0x60) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0x60) + 0x1c)" (( "(") (binary_expression "*(long *)(param_1 + 0x60) + 0x1c" (pointer_expression "*(long *)(param_1 + 0x60)" (* "*") (cast_expression "(long *)(param_1 + 0x60)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (number_literal "0")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n      local_48 = 1;\n    }" (else "else") (compound_statement "{\n      local_48 = 1;\n    }" ({ "{") (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" (identifier "local_48") (= "=") (number_literal "1")) (; ";")) (} "}")))) (expression_statement "pcVar5 = (char *)FUN_00118930(param_1 + 0x60);" (assignment_expression "pcVar5 = (char *)FUN_00118930(param_1 + 0x60)" (identifier "pcVar5") (= "=") (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 "lVar2 = *(long *)(param_1 + 0x60);" (assignment_expression "lVar2 = *(long *)(param_1 + 0x60)" (identifier "lVar2") (= "=") (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")) () ")"))))) (; ";")) (if_statement "if ((lVar2 == 0) || (pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0)) {\n                    \n    __assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");\n  }" (if "if") (parenthesized_expression "((lVar2 == 0) || (pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0))" (( "(") (binary_expression "(lVar2 == 0) || (pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0)" (parenthesized_expression "(lVar2 == 0)" (( "(") (binary_expression "lVar2 == 0" (identifier "lVar2") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0)" (( "(") (comma_expression "pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0" (assignment_expression "pcVar3 = *(char **)(lVar2 + 0x30)" (identifier "pcVar3") (= "=") (pointer_expression "*(char **)(lVar2 + 0x30)" (* "*") (cast_expression "(char **)(lVar2 + 0x30)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar2 + 0x30)" (( "(") (binary_expression "lVar2 + 0x30" (identifier "lVar2") (+ "+") (number_literal "0x30")) () ")"))))) (, ",") (binary_expression "pcVar3 == (char *)0x0" (identifier "pcVar3") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n                    \n    __assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");\n  }" ({ "{") (expression_statement "__assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");" (call_expression "__assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var")" (identifier "__assert_fail") (argument_list "("info->type_stack != NULL && info->type_stack->methods != NULL",\n                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var")" (( "(") (string_literal ""info->type_stack != NULL && info->type_stack->methods != NULL"" (" """) (string_content "info->type_stack != NULL && info->type_stack->methods != NULL") (" """)) (, ",") (string_literal ""../../binutils/wrstabs.c"" (" """) (string_content "../../binutils/wrstabs.c") (" """)) (, ",") (number_literal "0x67f") (, ",") (string_literal ""stab_class_method_var"" (" """) (string_content "stab_class_method_var") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (2 < param_3) {\n                    \n    abort();\n  }" (if "if") (parenthesized_expression "(2 < param_3)" (( "(") (binary_expression "2 < param_3" (number_literal "2") (< "<") (identifier "param_3")) () ")")) (compound_statement "{\n                    \n    abort();\n  }" ({ "{") (expression_statement "abort();" (call_expression "abort()" (identifier "abort") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "cVar1 = (&DAT_00124320)[param_3];" (assignment_expression "cVar1 = (&DAT_00124320)[param_3]" (identifier "cVar1") (= "=") (subscript_expression "(&DAT_00124320)[param_3]" (parenthesized_expression "(&DAT_00124320)" (( "(") (pointer_expression "&DAT_00124320" (& "&") (identifier "DAT_00124320")) () ")")) ([ "[") (identifier "param_3") (] "]"))) (; ";")) (if_statement "if (param_5 == 0) {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }" (if "if") (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }" ({ "{") (expression_statement "uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;" (assignment_expression "uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43" (identifier "uVar11") (= "=") (binary_expression "(-(uint)(param_6 == 0) & 0xfffffffe) + 0x43" (parenthesized_expression "(-(uint)(param_6 == 0) & 0xfffffffe)" (( "(") (binary_expression "-(uint)(param_6 == 0) & 0xfffffffe" (unary_expression "-(uint)(param_6 == 0)" (- "-") (call_expression "(uint)(param_6 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_6 == 0)" (( "(") (binary_expression "param_6 == 0" (identifier "param_6") (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xfffffffe")) () ")")) (+ "+") (number_literal "0x43"))) (; ";")) (} "}")) (else_clause "else {\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }" (else "else") (compound_statement "{\n    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }" ({ "{") (expression_statement "uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;" (assignment_expression "uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44" (identifier "uVar11") (= "=") (binary_expression "(-(uint)(param_6 == 0) & 0xfffffffe) + 0x44" (parenthesized_expression "(-(uint)(param_6 == 0) & 0xfffffffe)" (( "(") (binary_expression "-(uint)(param_6 == 0) & 0xfffffffe" (unary_expression "-(uint)(param_6 == 0)" (- "-") (call_expression "(uint)(param_6 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_6 == 0)" (( "(") (binary_expression "param_6 == 0" (identifier "param_6") (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xfffffffe")) () ")")) (+ "+") (number_literal "0x44"))) (; ";")) (} "}")))) (expression_statement "sVar6 = strlen(pcVar3);" (assignment_expression "sVar6 = strlen(pcVar3)" (identifier "sVar6") (= "=") (call_expression "strlen(pcVar3)" (identifier "strlen") (argument_list "(pcVar3)" (( "(") (identifier "pcVar3") () ")")))) (; ";")) (expression_statement "sVar7 = strlen(pcVar4);" (assignment_expression "sVar7 = strlen(pcVar4)" (identifier "sVar7") (= "=") (call_expression "strlen(pcVar4)" (identifier "strlen") (argument_list "(pcVar4)" (( "(") (identifier "pcVar4") () ")")))) (; ";")) (expression_statement "sVar8 = strlen(param_2);" (assignment_expression "sVar8 = strlen(param_2)" (identifier "sVar8") (= "=") (call_expression "strlen(param_2)" (identifier "strlen") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "lVar12 = sVar7 + sVar6 + sVar8;" (assignment_expression "lVar12 = sVar7 + sVar6 + sVar8" (identifier "lVar12") (= "=") (binary_expression "sVar7 + sVar6 + sVar8" (binary_expression "sVar7 + sVar6" (identifier "sVar7") (+ "+") (identifier "sVar6")) (+ "+") (identifier "sVar8"))) (; ";")) (if_statement "if (param_4 == 0) {\n    if (param_8 == 0) {\n      uVar9 = 0x2e;\nLAB_00118e80:\n      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);\n      *(undefined8 *)(lVar2 + 0x30) = uVar10;\n      pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n      sVar6 = strlen(pcVar5);\n      sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9);\n      free(pcVar4);\n      goto LAB_00118e1d;\n    }\n    local_50 = 0x2a;\n  }\n  else {\n    if (param_8 == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }\n    local_50 = 0x3f;\n  }" (if "if") (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (param_8 == 0) {\n      uVar9 = 0x2e;\nLAB_00118e80:\n      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);\n      *(undefined8 *)(lVar2 + 0x30) = uVar10;\n      pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n      sVar6 = strlen(pcVar5);\n      sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9);\n      free(pcVar4);\n      goto LAB_00118e1d;\n    }\n    local_50 = 0x2a;\n  }" ({ "{") (if_statement "if (param_8 == 0) {\n      uVar9 = 0x2e;\nLAB_00118e80:\n      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);\n      *(undefined8 *)(lVar2 + 0x30) = uVar10;\n      pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n      sVar6 = strlen(pcVar5);\n      sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9);\n      free(pcVar4);\n      goto LAB_00118e1d;\n    }" (if "if") (parenthesized_expression "(param_8 == 0)" (( "(") (binary_expression "param_8 == 0" (identifier "param_8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar9 = 0x2e;\nLAB_00118e80:\n      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);\n      *(undefined8 *)(lVar2 + 0x30) = uVar10;\n      pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);\n      sVar6 = strlen(pcVar5);\n      sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9);\n      free(pcVar4);\n      goto LAB_00118e1d;\n    }" ({ "{") (expression_statement "uVar9 = 0x2e;" (assignment_expression "uVar9 = 0x2e" (identifier "uVar9") (= "=") (number_literal "0x2e")) (; ";")) (labeled_statement "LAB_00118e80:\n      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);" (statement_identifier "LAB_00118e80") (: ":") (expression_statement "uVar10 = xrealloc(pcVar3,lVar12 + 0x28);" (assignment_expression "uVar10 = xrealloc(pcVar3,lVar12 + 0x28)" (identifier "uVar10") (= "=") (call_expression "xrealloc(pcVar3,lVar12 + 0x28)" (identifier "xrealloc") (argument_list "(pcVar3,lVar12 + 0x28)" (( "(") (identifier "pcVar3") (, ",") (binary_expression "lVar12 + 0x28" (identifier "lVar12") (+ "+") (number_literal "0x28")) () ")")))) (; ";"))) (expression_statement "*(undefined8 *)(lVar2 + 0x30) = uVar10;" (assignment_expression "*(undefined8 *)(lVar2 + 0x30) = uVar10" (pointer_expression "*(undefined8 *)(lVar2 + 0x30)" (* "*") (cast_expression "(undefined8 *)(lVar2 + 0x30)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x30)" (( "(") (binary_expression "lVar2 + 0x30" (identifier "lVar2") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);" (assignment_expression "pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30)" (identifier "pcVar5") (= "=") (pointer_expression "*(char **)(*(long *)(param_1 + 0x60) + 0x30)" (* "*") (cast_expression "(char **)(*(long *)(param_1 + 0x60) + 0x30)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0x60) + 0x30)" (( "(") (binary_expression "*(long *)(param_1 + 0x60) + 0x30" (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 "0x30")) () ")"))))) (; ";")) (expression_statement "sVar6 = strlen(pcVar5);" (assignment_expression "sVar6 = strlen(pcVar5)" (identifier "sVar6") (= "=") (call_expression "strlen(pcVar5)" (identifier "strlen") (argument_list "(pcVar5)" (( "(") (identifier "pcVar5") () ")")))) (; ";")) (expression_statement "sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9);" (call_expression "sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9)" (identifier "sprintf") (argument_list "(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n              uVar9)" (( "(") (binary_expression "pcVar5 + sVar6" (identifier "pcVar5") (+ "+") (identifier "sVar6")) (, ",") (string_literal ""%s:%s;%c%c%c"" (" """) (string_content "%s:%s;%c%c%c") (" """)) (, ",") (identifier "pcVar4") (, ",") (identifier "param_2") (, ",") (cast_expression "(ulong)(uint)(int)cVar1" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(uint)(int)cVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(int)cVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar1")))) (, ",") (cast_expression "(ulong)uVar11" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar11")) (, ",") (identifier "uVar9") () ")"))) (; ";")) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" (identifier "free") (argument_list "(pcVar4)" (( "(") (identifier "pcVar4") () ")"))) (; ";")) (goto_statement "goto LAB_00118e1d;" (goto "goto") (statement_identifier "LAB_00118e1d") (; ";")) (} "}"))) (expression_statement "local_50 = 0x2a;" (assignment_expression "local_50 = 0x2a" (identifier "local_50") (= "=") (number_literal "0x2a")) (; ";")) (} "}")) (else_clause "else {\n    if (param_8 == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }\n    local_50 = 0x3f;\n  }" (else "else") (compound_statement "{\n    if (param_8 == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }\n    local_50 = 0x3f;\n  }" ({ "{") (if_statement "if (param_8 == 0) {\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }" (if "if") (parenthesized_expression "(param_8 == 0)" (( "(") (binary_expression "param_8 == 0" (identifier "param_8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar9 = 0x3f;\n      goto LAB_00118e80;\n    }" ({ "{") (expression_statement "uVar9 = 0x3f;" (assignment_expression "uVar9 = 0x3f" (identifier "uVar9") (= "=") (number_literal "0x3f")) (; ";")) (goto_statement "goto LAB_00118e80;" (goto "goto") (statement_identifier "LAB_00118e80") (; ";")) (} "}"))) (expression_statement "local_50 = 0x3f;" (assignment_expression "local_50 = 0x3f" (identifier "local_50") (= "=") (number_literal "0x3f")) (; ";")) (} "}")))) (expression_statement "sVar6 = strlen(pcVar5);" (assignment_expression "sVar6 = strlen(pcVar5)" (identifier "sVar6") (= "=") (call_expression "strlen(pcVar5)" (identifier "strlen") (argument_list "(pcVar5)" (( "(") (identifier "pcVar5") () ")")))) (; ";")) (expression_statement "uVar9 = xrealloc(pcVar3,lVar12 + 0x28 + sVar6);" (assignment_expression "uVar9 = xrealloc(pcVar3,lVar12 + 0x28 + sVar6)" (identifier "uVar9") (= "=") (call_expression "xrealloc(pcVar3,lVar12 + 0x28 + sVar6)" (identifier "xrealloc") (argument_list "(pcVar3,lVar12 + 0x28 + sVar6)" (( "(") (identifier "pcVar3") (, ",") (binary_expression "lVar12 + 0x28 + sVar6" (binary_expression "lVar12 + 0x28" (identifier "lVar12") (+ "+") (number_literal "0x28")) (+ "+") (identifier "sVar6")) () ")")))) (; ";")) (expression_statement "*(undefined8 *)(lVar2 + 0x30) = uVar9;" (assignment_expression "*(undefined8 *)(lVar2 + 0x30) = uVar9" (pointer_expression "*(undefined8 *)(lVar2 + 0x30)" (* "*") (cast_expression "(undefined8 *)(lVar2 + 0x30)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x30)" (( "(") (binary_expression "lVar2 + 0x30" (identifier "lVar2") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "pcVar3 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);" (assignment_expression "pcVar3 = *(char **)(*(long *)(param_1 + 0x60) + 0x30)" (identifier "pcVar3") (= "=") (pointer_expression "*(char **)(*(long *)(param_1 + 0x60) + 0x30)" (* "*") (cast_expression "(char **)(*(long *)(param_1 + 0x60) + 0x30)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0x60) + 0x30)" (( "(") (binary_expression "*(long *)(param_1 + 0x60) + 0x30" (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 "0x30")) () ")"))))) (; ";")) (expression_statement "sVar6 = strlen(pcVar3);" (assignment_expression "sVar6 = strlen(pcVar3)" (identifier "sVar6") (= "=") (call_expression "strlen(pcVar3)" (identifier "strlen") (argument_list "(pcVar3)" (( "(") (identifier "pcVar3") () ")")))) (; ";")) (expression_statement "sprintf(pcVar3 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n          local_50);" (call_expression "sprintf(pcVar3 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n          local_50)" (identifier "sprintf") (argument_list "(pcVar3 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,\n          local_50)" (( "(") (binary_expression "pcVar3 + sVar6" (identifier "pcVar3") (+ "+") (identifier "sVar6")) (, ",") (string_literal ""%s:%s;%c%c%c"" (" """) (string_content "%s:%s;%c%c%c") (" """)) (, ",") (identifier "pcVar4") (, ",") (identifier "param_2") (, ",") (cast_expression "(ulong)(uint)(int)cVar1" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(uint)(int)cVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(int)cVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar1")))) (, ",") (cast_expression "(ulong)uVar11" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar11")) (, ",") (identifier "local_50") () ")"))) (; ";")) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" (identifier "free") (argument_list "(pcVar4)" (( "(") (identifier "pcVar4") () ")"))) (; ";")) (expression_statement "pcVar4 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);" (assignment_expression "pcVar4 = *(char **)(*(long *)(param_1 + 0x60) + 0x30)" (identifier "pcVar4") (= "=") (pointer_expression "*(char **)(*(long *)(param_1 + 0x60) + 0x30)" (* "*") (cast_expression "(char **)(*(long *)(param_1 + 0x60) + 0x30)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0x60) + 0x30)" (( "(") (binary_expression "*(long *)(param_1 + 0x60) + 0x30" (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 "0x30")) () ")"))))) (; ";")) (expression_statement "sVar6 = strlen(pcVar4);" (assignment_expression "sVar6 = strlen(pcVar4)" (identifier "sVar6") (= "=") (call_expression "strlen(pcVar4)" (identifier "strlen") (argument_list "(pcVar4)" (( "(") (identifier "pcVar4") () ")")))) (; ";")) (expression_statement "sprintf(pcVar4 + sVar6,"%ld;%s;",param_7,pcVar5);" (call_expression "sprintf(pcVar4 + sVar6,"%ld;%s;",param_7,pcVar5)" (identifier "sprintf") (argument_list "(pcVar4 + sVar6,"%ld;%s;",param_7,pcVar5)" (( "(") (binary_expression "pcVar4 + sVar6" (identifier "pcVar4") (+ "+") (identifier "sVar6")) (, ",") (string_literal ""%ld;%s;"" (" """) (string_content "%ld;%s;") (" """)) (, ",") (identifier "param_7") (, ",") (identifier "pcVar5") () ")"))) (; ";")) (expression_statement "free(pcVar5);" (call_expression "free(pcVar5)" (identifier "free") (argument_list "(pcVar5)" (( "(") (identifier "pcVar5") () ")"))) (; ";")) (labeled_statement "LAB_00118e1d:\n  if (local_48 != 0) {\n    *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1;\n  }" (statement_identifier "LAB_00118e1d") (: ":") (if_statement "if (local_48 != 0) {\n    *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1;\n  }" (if "if") (parenthesized_expression "(local_48 != 0)" (( "(") (binary_expression "local_48 != 0" (identifier "local_48") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1;\n  }" ({ "{") (expression_statement "*(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1;" (assignment_expression "*(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1" (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")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}")))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

type_1
function_1
          (type_2 *info,char *physname,type_3 var_8,type_1 var_16,
          type_1 var_10,type_1 var_11,type_4 voffset,type_1 var_2)

{
  char cVar1;
  type_5 *var_4;
  char *var_22;
  char *var_20;
  size_t var_14;
  size_t var_13;
  size_t var_15;
  char *var_5;
  type_6 uVar9;
  type_7 uVar10;
  long var_18;
  type_6 local_50;
  type_7 var_3;
  
  var_20 = (char *)0x0;
  var_3 = info->type_stack->definition;
  var_22 = var_1((type_2 *)&info->type_stack);
  if (var_2 != 0) {
    if (var_3 == 0) {
      var_3 = (type_7)(info->type_stack->definition != 0);
    }
    else {
      var_3 = 1;
    }
    var_20 = var_1((type_2 *)&info->type_stack);
  }
  var_4 = info->type_stack;
  if ((var_4 == (type_5 *)0x0) || (var_5 = var_4->methods, var_5 == (char *)0x0)) {
                    /* WARNING: Subroutine does not return */
    var_6("info->type_stack != NULL && info->type_stack->methods != NULL",
                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");
  }
  if (var_7 < var_8) {
                    /* WARNING: Subroutine does not return */
    var_9();
  }
  cVar1 = *(char *)((long)&CSWTCH_27 + (type_8)var_8);
  if (var_10 == 0) {
    uVar10 = (-(type_7)(var_11 == 0) & 0xfffffffe) + 0x43;
  }
  else {
    uVar10 = (-(type_7)(var_11 == 0) & 0xfffffffe) + 0x44;
  }
  var_14 = var_12(var_5);
  var_13 = var_12(var_22);
  var_15 = var_12(physname);
  var_18 = var_13 + var_14 + var_15;
  if (var_16 == 0) {
    if (var_2 == 0) {
      uVar9 = 0x2e;
LAB_00118e80:
      var_20 = (char *)var_17(var_5,var_18 + 0x28);
      var_4->methods = var_20;
      var_20 = info->type_stack->methods;
      var_14 = var_12(var_20);
      var_19(var_20 + var_14,"%s:%s;%c%c%c",var_22,physname,(type_8)(type_7)(int)cVar1,(type_8)uVar10,
              uVar9);
      var_21(var_22);
      goto LAB_00118e1d;
    }
    local_50 = 0x2a;
  }
  else {
    if (var_2 == 0) {
      uVar9 = 0x3f;
      goto LAB_00118e80;
    }
    local_50 = 0x3f;
  }
  var_14 = var_12(var_20);
  var_5 = (char *)var_17(var_5,var_18 + 0x28 + var_14);
  var_4->methods = var_5;
  var_5 = info->type_stack->methods;
  var_14 = var_12(var_5);
  var_19(var_5 + var_14,"%s:%s;%c%c%c",var_22,physname,(type_8)(type_7)(int)cVar1,(type_8)uVar10,
          local_50);
  var_21(var_22);
  var_22 = info->type_stack->methods;
  var_14 = var_12(var_22);
  var_19(var_22 + var_14,"%ld;%s;",voffset,var_20);
  var_21(var_20);
LAB_00118e1d:
  if (var_3 != 0) {
    info->type_stack->definition = 1;
  }
  return 1;
}


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

undefined8
MASKED(long param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,
            undefined8 param_7,int param_8)

{
  char cVar1;
  long lVar2;
  char *pcVar3;
  char *pcVar4;
  char *pcVar5;
  size_t sVar6;
  size_t sVar7;
  size_t sVar8;
  undefined8 uVar9;
  undefined8 uVar10;
  uint uVar11;
  long lVar12;
  undefined8 local_50;
  uint local_48;
  
  pcVar5 = (char *)0x0;
  local_48 = *(uint *)(*(long *)(param_1 + 0x60) + 0x1c);
  pcVar4 = (char *)FUN_00118930(param_1 + 0x60);
  if (param_8 != 0) {
    if (local_48 == 0) {
      local_48 = (uint)(*(int *)(*(long *)(param_1 + 0x60) + 0x1c) != 0);
    }
    else {
      local_48 = 1;
    }
    pcVar5 = (char *)FUN_00118930(param_1 + 0x60);
  }
  lVar2 = *(long *)(param_1 + 0x60);
  if ((lVar2 == 0) || (pcVar3 = *(char **)(lVar2 + 0x30), pcVar3 == (char *)0x0)) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("info->type_stack != NULL && info->type_stack->methods != NULL",
                  "../../binutils/wrstabs.c",0x67f,"stab_class_method_var");
  }
  if (2 < param_3) {
                    /* WARNING: Subroutine does not return */
    abort();
  }
  cVar1 = (&DAT_00124320)[param_3];
  if (param_5 == 0) {
    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;
  }
  else {
    uVar11 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;
  }
  sVar6 = strlen(pcVar3);
  sVar7 = strlen(pcVar4);
  sVar8 = strlen(param_2);
  lVar12 = sVar7 + sVar6 + sVar8;
  if (param_4 == 0) {
    if (param_8 == 0) {
      uVar9 = 0x2e;
LAB_00118e80:
      uVar10 = xrealloc(pcVar3,lVar12 + 0x28);
      *(undefined8 *)(lVar2 + 0x30) = uVar10;
      pcVar5 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);
      sVar6 = strlen(pcVar5);
      sprintf(pcVar5 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,
              uVar9);
      free(pcVar4);
      goto LAB_00118e1d;
    }
    local_50 = 0x2a;
  }
  else {
    if (param_8 == 0) {
      uVar9 = 0x3f;
      goto LAB_00118e80;
    }
    local_50 = 0x3f;
  }
  sVar6 = strlen(pcVar5);
  uVar9 = xrealloc(pcVar3,lVar12 + 0x28 + sVar6);
  *(undefined8 *)(lVar2 + 0x30) = uVar9;
  pcVar3 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);
  sVar6 = strlen(pcVar3);
  sprintf(pcVar3 + sVar6,"%s:%s;%c%c%c",pcVar4,param_2,(ulong)(uint)(int)cVar1,(ulong)uVar11,
          local_50);
  free(pcVar4);
  pcVar4 = *(char **)(*(long *)(param_1 + 0x60) + 0x30);
  sVar6 = strlen(pcVar4);
  sprintf(pcVar4 + sVar6,"%ld;%s;",param_7,pcVar5);
  free(pcVar5);
LAB_00118e1d:
  if (local_48 != 0) {
    *(undefined4 *)(*(long *)(param_1 + 0x60) + 0x1c) = 1;
  }
  return 1;
}

