
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

bfd_boolean __regparm3
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;
  size_t sVar4;
  size_t sVar5;
  size_t sVar6;
  char *pcVar7;
  int iVar8;
  undefined4 uVar9;
  int iVar10;
  uint local_40;
  char *local_34;
  
  local_40 = info->type_stack->definition;
  pcVar3 = stab_pop_type((stab_write_handle *)&info->type_stack);
  local_34 = (char *)0x0;
  if (contextp != 0) {
    if (local_40 == 0) {
      local_40 = (uint)(info->type_stack->definition != 0);
    }
    else {
      local_40 = 1;
    }
    local_34 = stab_pop_type((stab_write_handle *)&info->type_stack);
  }
  psVar2 = info->type_stack;
  if ((psVar2 == (stab_type_stack *)0x0) || (pcVar7 = psVar2->methods, pcVar7 == (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 *)((int)&CSWTCH_26 + visibility);
  if (constp == 0) {
    iVar8 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x43;
  }
  else {
    iVar8 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x44;
  }
  sVar4 = strlen(pcVar7);
  sVar5 = strlen(pcVar3);
  sVar6 = strlen(physname);
  iVar10 = sVar4 + sVar5 + sVar6;
  if (staticp == 0) {
    uVar9 = 0x2a;
    if (contextp != 0) {
LAB_00029f09:
      sVar4 = strlen(local_34);
      pcVar7 = (char *)xrealloc(pcVar7,iVar10 + 0x28 + sVar4);
      psVar2->methods = pcVar7;
      pcVar7 = info->type_stack->methods;
      sVar4 = strlen(pcVar7);
      sprintf(pcVar7 + sVar4,"%s:%s;%c%c%c",pcVar3,physname,(int)cVar1,iVar8,uVar9);
      free(pcVar3);
      pcVar3 = info->type_stack->methods;
      sVar4 = strlen(pcVar3);
      sprintf(pcVar3 + sVar4,"%ld;%s;",(undefined4)voffset,local_34);
      free(local_34);
      goto LAB_00029eae;
    }
    uVar9 = 0x2e;
  }
  else {
    uVar9 = 0x3f;
    if (contextp != 0) goto LAB_00029f09;
  }
  pcVar7 = (char *)xrealloc(pcVar7,iVar10 + 0x28);
  psVar2->methods = pcVar7;
  pcVar7 = info->type_stack->methods;
  sVar4 = strlen(pcVar7);
  sprintf(pcVar7 + sVar4,"%s:%s;%c%c%c",pcVar3,physname,(int)cVar1,iVar8,uVar9);
  free(pcVar3);
LAB_00029eae:
  if (local_40 != 0) {
    info->type_stack->definition = 1;
  }
  return 1;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 __regparm3
FUN_00029d40(int param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,
            undefined4 param_7,undefined4 param_8,int param_9)

{
  char cVar1;
  int iVar2;
  char *pcVar3;
  char *pcVar4;
  size_t sVar5;
  size_t sVar6;
  size_t sVar7;
  undefined4 uVar8;
  int iVar9;
  undefined4 uVar10;
  int iVar11;
  uint local_40;
  char *local_34;
  
  local_40 = *(uint *)(*(int *)(param_1 + 0x38) + 0x10);
  pcVar4 = (char *)FUN_00029a00();
  local_34 = (char *)0x0;
  if (param_9 != 0) {
    if (local_40 == 0) {
      local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);
    }
    else {
      local_40 = 1;
    }
    local_34 = (char *)FUN_00029a00();
  }
  iVar2 = *(int *)(param_1 + 0x38);
  if ((iVar2 == 0) || (pcVar3 = *(char **)(iVar2 + 0x1c), 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_00035154)[param_3];
  if (param_5 == 0) {
    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;
  }
  else {
    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;
  }
  sVar5 = strlen(pcVar3);
  sVar6 = strlen(pcVar4);
  sVar7 = strlen(param_2);
  iVar11 = sVar5 + sVar6 + sVar7;
  if (param_4 == 0) {
    uVar10 = 0x2a;
    if (param_9 != 0) {
LAB_00029f09:
      sVar5 = strlen(local_34);
      uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);
      *(undefined4 *)(iVar2 + 0x1c) = uVar8;
      pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);
      sVar5 = strlen(pcVar3);
      sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);
      free(pcVar4);
      pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);
      sVar5 = strlen(pcVar4);
      sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34);
      free(local_34);
      goto LAB_00029eae;
    }
    uVar10 = 0x2e;
  }
  else {
    uVar10 = 0x3f;
    if (param_9 != 0) goto LAB_00029f09;
  }
  uVar8 = xrealloc(pcVar3,iVar11 + 0x28);
  *(undefined4 *)(iVar2 + 0x1c) = uVar8;
  pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);
  sVar5 = strlen(pcVar3);
  sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);
  free(pcVar4);
LAB_00029eae:
  if (local_40 != 0) {
    *(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1;
  }
  return 1;
}


PUSH EBP
PUSH EDI
MOV EDI,EAX
PUSH ESI
LEA EBP,[EDI + 0x38]
MOV ESI,ECX
PUSH EBX
CALL 0x000166c0
ADD EBX,0x162b0
SUB ESP,0x3c
MOV EAX,dword ptr [ESP + 0x5c]
MOV dword ptr [ESP + 0x14],EDX
MOV dword ptr [ESP + 0x2c],EAX
MOV EAX,dword ptr [EDI + 0x38]
MOV EAX,dword ptr [EAX + 0x10]
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,EBP
CALL 0x00029a00
MOV dword ptr [ESP + 0x18],0x0
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [ESP + 0x64]
TEST EAX,EAX
JZ 0x00029db3
MOV EAX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JNZ 0x00029ee8
MOV EAX,dword ptr [EDI + 0x38]
MOV EAX,dword ptr [EAX + 0x10]
TEST EAX,EAX
SETNZ AL
MOVZX EAX,AL
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,EBP
CALL 0x00029a00
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [EDI + 0x38]
MOV dword ptr [ESP + 0x1c],EAX
TEST EAX,EAX
JZ 0x00029fac
MOV ECX,dword ptr [EAX + 0x1c]
TEST ECX,ECX
JZ 0x00029fac
CMP ESI,0x2
JA 0x00013982
MOVZX EAX,byte ptr [EBX + ESI*0x1 + 0xffff5154]
MOV byte ptr [ESP + 0x23],AL
MOV EAX,dword ptr [ESP + 0x54]
TEST EAX,EAX
JNZ 0x00029ed0
CMP dword ptr [ESP + 0x58],0x1
SBB EDX,EDX
AND EDX,0xfffffffe
ADD EDX,0x43
MOV dword ptr [ESP + 0x28],EDX
SUB ESP,0xc
PUSH ECX
MOV dword ptr [ESP + 0x34],ECX
CALL 0x000134e0
POP EDX
PUSH dword ptr [ESP + 0x1c]
MOV ESI,EAX
CALL 0x000134e0
POP ECX
PUSH dword ptr [ESP + 0x20]
MOV EBP,EAX
ADD ESI,EBP
CALL 0x000134e0
ADD ESP,0x10
MOV EBP,dword ptr [ESP + 0x50]
MOV ECX,dword ptr [ESP + 0x24]
ADD ESI,EAX
MOV EDX,dword ptr [ESP + 0x28]
TEST EBP,EBP
JNZ 0x00029ef8
MOV EAX,dword ptr [ESP + 0x64]
MOV EBP,0x2a
TEST EAX,EAX
JNZ 0x00029f09
MOV EBP,0x2e
MOV dword ptr [ESP + 0x18],EDX
ADD ESI,0x28
SUB ESP,0x8
PUSH ESI
PUSH ECX
CALL 0x00013230
MOV ECX,dword ptr [ESP + 0x2c]
MOV dword ptr [ECX + 0x1c],EAX
MOV EAX,dword ptr [EDI + 0x38]
MOV ESI,dword ptr [EAX + 0x1c]
MOV dword ptr [ESP],ESI
CALL 0x000134e0
ADD ESP,0xc
PUSH EBP
MOV EDX,dword ptr [ESP + 0x20]
ADD EAX,ESI
PUSH EDX
MOVSX EDX,byte ptr [ESP + 0x2f]
PUSH EDX
LEA EDX,[EBX + 0xffff4e61]
PUSH dword ptr [ESP + 0x24]
MOV EBP,dword ptr [ESP + 0x24]
PUSH EBP
PUSH EDX
PUSH EAX
CALL 0x000137a0
ADD ESP,0x14
PUSH EBP
CALL 0x00013948
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JZ 0x00029ec0
MOV EAX,dword ptr [EDI + 0x38]
MOV dword ptr [EAX + 0x10],0x1
ADD ESP,0x3c
MOV EAX,0x1
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP dword ptr [ESP + 0x58],0x1
SBB EDX,EDX
AND EDX,0xfffffffe
ADD EDX,0x44
JMP 0x00029dfb
MOV dword ptr [ESP + 0xc],0x1
JMP 0x00029da8
MOV EAX,dword ptr [ESP + 0x64]
MOV EBP,0x3f
TEST EAX,EAX
JZ 0x00029e55
MOV dword ptr [ESP + 0x28],EDX
SUB ESP,0xc
MOV dword ptr [ESP + 0x30],ECX
PUSH dword ptr [ESP + 0x24]
CALL 0x000134e0
POP EDX
POP ECX
LEA EAX,[ESI + EAX*0x1 + 0x28]
PUSH EAX
MOV ECX,dword ptr [ESP + 0x30]
PUSH ECX
CALL 0x00013230
MOV ECX,dword ptr [ESP + 0x2c]
MOV dword ptr [ECX + 0x1c],EAX
MOV EAX,dword ptr [EDI + 0x38]
MOV ESI,dword ptr [EAX + 0x1c]
MOV dword ptr [ESP],ESI
CALL 0x000134e0
ADD ESP,0xc
PUSH EBP
MOV EDX,dword ptr [ESP + 0x30]
ADD ESI,EAX
PUSH EDX
MOVSX EDX,byte ptr [ESP + 0x2f]
PUSH EDX
LEA EDX,[EBX + 0xffff4e61]
PUSH dword ptr [ESP + 0x24]
MOV EBP,dword ptr [ESP + 0x24]
PUSH EBP
PUSH EDX
PUSH ESI
CALL 0x000137a0
ADD ESP,0x14
PUSH EBP
CALL 0x00013948
MOV EAX,dword ptr [EDI + 0x38]
MOV ESI,dword ptr [EAX + 0x1c]
MOV dword ptr [ESP],ESI
CALL 0x000134e0
ADD ESP,0x10
MOV EBP,dword ptr [ESP + 0x18]
LEA EDX,[EBX + 0xffff4e6e]
ADD ESI,EAX
PUSH EBP
PUSH dword ptr [ESP + 0x30]
PUSH EDX
PUSH ESI
CALL 0x000137a0
MOV dword ptr [ESP],EBP
CALL 0x00013948
ADD ESP,0x10
JMP 0x00029eae
LEA EAX,[EBX + 0xffff520c]
PUSH EAX
LEA EAX,[EBX + 0xffff4dac]
PUSH 0x67f
PUSH EAX
LEA EAX,[EBX + 0xffff5044]
PUSH EAX
CALL 0x00013920
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 __regparm3\nFUN_00029d40(int param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,\n            undefined4 param_7,undefined4 param_8,int param_9)\n\n{\n  char cVar1;\n  int iVar2;\n  char *pcVar3;\n  char *pcVar4;\n  size_t sVar5;\n  size_t sVar6;\n  size_t sVar7;\n  undefined4 uVar8;\n  int iVar9;\n  undefined4 uVar10;\n  int iVar11;\n  uint local_40;\n  char *local_34;\n  \n  local_40 = *(uint *)(*(int *)(param_1 + 0x38) + 0x10);\n  pcVar4 = (char *)FUN_00029a00();\n  local_34 = (char *)0x0;\n  if (param_9 != 0) {\n    if (local_40 == 0) {\n      local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);\n    }\n    else {\n      local_40 = 1;\n    }\n    local_34 = (char *)FUN_00029a00();\n  }\n  iVar2 = *(int *)(param_1 + 0x38);\n  if ((iVar2 == 0) || (pcVar3 = *(char **)(iVar2 + 0x1c), 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_00035154)[param_3];\n  if (param_5 == 0) {\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }\n  sVar5 = strlen(pcVar3);\n  sVar6 = strlen(pcVar4);\n  sVar7 = strlen(param_2);\n  iVar11 = sVar5 + sVar6 + sVar7;\n  if (param_4 == 0) {\n    uVar10 = 0x2a;\n    if (param_9 != 0) {\nLAB_00029f09:\n      sVar5 = strlen(local_34);\n      uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);\n      *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n      pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n      free(pcVar4);\n      pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }\n    uVar10 = 0x2e;\n  }\n  else {\n    uVar10 = 0x3f;\n    if (param_9 != 0) goto LAB_00029f09;\n  }\n  uVar8 = xrealloc(pcVar3,iVar11 + 0x28);\n  *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n  pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n  sVar5 = strlen(pcVar3);\n  sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n  free(pcVar4);\nLAB_00029eae:\n  if (local_40 != 0) {\n    *(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1;\n  }\n  return 1;\n}\n\n" comment (function_definition "undefined4 __regparm3\nFUN_00029d40(int param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,\n            undefined4 param_7,undefined4 param_8,int param_9)\n\n{\n  char cVar1;\n  int iVar2;\n  char *pcVar3;\n  char *pcVar4;\n  size_t sVar5;\n  size_t sVar6;\n  size_t sVar7;\n  undefined4 uVar8;\n  int iVar9;\n  undefined4 uVar10;\n  int iVar11;\n  uint local_40;\n  char *local_34;\n  \n  local_40 = *(uint *)(*(int *)(param_1 + 0x38) + 0x10);\n  pcVar4 = (char *)FUN_00029a00();\n  local_34 = (char *)0x0;\n  if (param_9 != 0) {\n    if (local_40 == 0) {\n      local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);\n    }\n    else {\n      local_40 = 1;\n    }\n    local_34 = (char *)FUN_00029a00();\n  }\n  iVar2 = *(int *)(param_1 + 0x38);\n  if ((iVar2 == 0) || (pcVar3 = *(char **)(iVar2 + 0x1c), 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_00035154)[param_3];\n  if (param_5 == 0) {\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }\n  sVar5 = strlen(pcVar3);\n  sVar6 = strlen(pcVar4);\n  sVar7 = strlen(param_2);\n  iVar11 = sVar5 + sVar6 + sVar7;\n  if (param_4 == 0) {\n    uVar10 = 0x2a;\n    if (param_9 != 0) {\nLAB_00029f09:\n      sVar5 = strlen(local_34);\n      uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);\n      *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n      pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n      free(pcVar4);\n      pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }\n    uVar10 = 0x2e;\n  }\n  else {\n    uVar10 = 0x3f;\n    if (param_9 != 0) goto LAB_00029f09;\n  }\n  uVar8 = xrealloc(pcVar3,iVar11 + 0x28);\n  *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n  pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n  sVar5 = strlen(pcVar3);\n  sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n  free(pcVar4);\nLAB_00029eae:\n  if (local_40 != 0) {\n    *(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1;\n  }\n  return 1;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00029d40(int param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,\n            undefined4 param_7,undefined4 param_8,int param_9)" identifier (parameter_list "(int param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,\n            undefined4 param_7,undefined4 param_8,int param_9)" ( (parameter_declaration "int param_1" primitive_type 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 "undefined4 param_7" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) , (parameter_declaration "int param_9" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  char *pcVar3;\n  char *pcVar4;\n  size_t sVar5;\n  size_t sVar6;\n  size_t sVar7;\n  undefined4 uVar8;\n  int iVar9;\n  undefined4 uVar10;\n  int iVar11;\n  uint local_40;\n  char *local_34;\n  \n  local_40 = *(uint *)(*(int *)(param_1 + 0x38) + 0x10);\n  pcVar4 = (char *)FUN_00029a00();\n  local_34 = (char *)0x0;\n  if (param_9 != 0) {\n    if (local_40 == 0) {\n      local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);\n    }\n    else {\n      local_40 = 1;\n    }\n    local_34 = (char *)FUN_00029a00();\n  }\n  iVar2 = *(int *)(param_1 + 0x38);\n  if ((iVar2 == 0) || (pcVar3 = *(char **)(iVar2 + 0x1c), 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_00035154)[param_3];\n  if (param_5 == 0) {\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }\n  sVar5 = strlen(pcVar3);\n  sVar6 = strlen(pcVar4);\n  sVar7 = strlen(param_2);\n  iVar11 = sVar5 + sVar6 + sVar7;\n  if (param_4 == 0) {\n    uVar10 = 0x2a;\n    if (param_9 != 0) {\nLAB_00029f09:\n      sVar5 = strlen(local_34);\n      uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);\n      *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n      pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n      free(pcVar4);\n      pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }\n    uVar10 = 0x2e;\n  }\n  else {\n    uVar10 = 0x3f;\n    if (param_9 != 0) goto LAB_00029f09;\n  }\n  uVar8 = xrealloc(pcVar3,iVar11 + 0x28);\n  *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n  pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n  sVar5 = strlen(pcVar3);\n  sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n  free(pcVar4);\nLAB_00029eae:\n  if (local_40 != 0) {\n    *(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1;\n  }\n  return 1;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type 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 "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "char *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (expression_statement "local_40 = *(uint *)(*(int *)(param_1 + 0x38) + 0x10);" (assignment_expression "local_40 = *(uint *)(*(int *)(param_1 + 0x38) + 0x10)" identifier = (pointer_expression "*(uint *)(*(int *)(param_1 + 0x38) + 0x10)" * (cast_expression "(uint *)(*(int *)(param_1 + 0x38) + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x38) + 0x10)" ( (binary_expression "*(int *)(param_1 + 0x38) + 0x10" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pcVar4 = (char *)FUN_00029a00();" (assignment_expression "pcVar4 = (char *)FUN_00029a00()" identifier = (cast_expression "(char *)FUN_00029a00()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00029a00()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_34 = (char *)0x0;" (assignment_expression "local_34 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (param_9 != 0) {\n    if (local_40 == 0) {\n      local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);\n    }\n    else {\n      local_40 = 1;\n    }\n    local_34 = (char *)FUN_00029a00();\n  }" if (parenthesized_expression "(param_9 != 0)" ( (binary_expression "param_9 != 0" identifier != number_literal) )) (compound_statement "{\n    if (local_40 == 0) {\n      local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);\n    }\n    else {\n      local_40 = 1;\n    }\n    local_34 = (char *)FUN_00029a00();\n  }" { (if_statement "if (local_40 == 0) {\n      local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);\n    }\n    else {\n      local_40 = 1;\n    }" if (parenthesized_expression "(local_40 == 0)" ( (binary_expression "local_40 == 0" identifier == number_literal) )) (compound_statement "{\n      local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);\n    }" { (expression_statement "local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);" (assignment_expression "local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0)" identifier = (call_expression "(uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x38) + 0x10)" * (cast_expression "(int *)(*(int *)(param_1 + 0x38) + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x38) + 0x10)" ( (binary_expression "*(int *)(param_1 + 0x38) + 0x10" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) + number_literal) )))) != number_literal) )))) ;) }) (else_clause "else {\n      local_40 = 1;\n    }" else (compound_statement "{\n      local_40 = 1;\n    }" { (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) }))) (expression_statement "local_34 = (char *)FUN_00029a00();" (assignment_expression "local_34 = (char *)FUN_00029a00()" identifier = (cast_expression "(char *)FUN_00029a00()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00029a00()" identifier (argument_list "()" ( ))))) ;) })) (expression_statement "iVar2 = *(int *)(param_1 + 0x38);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x38)" identifier = (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if ((iVar2 == 0) || (pcVar3 = *(char **)(iVar2 + 0x1c), 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 "((iVar2 == 0) || (pcVar3 = *(char **)(iVar2 + 0x1c), pcVar3 == (char *)0x0))" ( (binary_expression "(iVar2 == 0) || (pcVar3 = *(char **)(iVar2 + 0x1c), pcVar3 == (char *)0x0)" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) || (parenthesized_expression "(pcVar3 = *(char **)(iVar2 + 0x1c), pcVar3 == (char *)0x0)" ( (comma_expression "pcVar3 = *(char **)(iVar2 + 0x1c), pcVar3 == (char *)0x0" (assignment_expression "pcVar3 = *(char **)(iVar2 + 0x1c)" identifier = (pointer_expression "*(char **)(iVar2 + 0x1c)" * (cast_expression "(char **)(iVar2 + 0x1c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" 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_00035154)[param_3];" (assignment_expression "cVar1 = (&DAT_00035154)[param_3]" identifier = (subscript_expression "(&DAT_00035154)[param_3]" (parenthesized_expression "(&DAT_00035154)" ( (pointer_expression "&DAT_00035154" & identifier) )) [ identifier ])) ;) (if_statement "if (param_5 == 0) {\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }" { (expression_statement "iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;" (assignment_expression "iVar9 = (-(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    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }" else (compound_statement "{\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }" { (expression_statement "iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;" (assignment_expression "iVar9 = (-(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 "sVar5 = strlen(pcVar3);" (assignment_expression "sVar5 = strlen(pcVar3)" identifier = (call_expression "strlen(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "sVar6 = strlen(pcVar4);" (assignment_expression "sVar6 = strlen(pcVar4)" identifier = (call_expression "strlen(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier )))) ;) (expression_statement "sVar7 = strlen(param_2);" (assignment_expression "sVar7 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "iVar11 = sVar5 + sVar6 + sVar7;" (assignment_expression "iVar11 = sVar5 + sVar6 + sVar7" identifier = (binary_expression "sVar5 + sVar6 + sVar7" (binary_expression "sVar5 + sVar6" identifier + identifier) + identifier)) ;) (if_statement "if (param_4 == 0) {\n    uVar10 = 0x2a;\n    if (param_9 != 0) {\nLAB_00029f09:\n      sVar5 = strlen(local_34);\n      uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);\n      *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n      pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n      free(pcVar4);\n      pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }\n    uVar10 = 0x2e;\n  }\n  else {\n    uVar10 = 0x3f;\n    if (param_9 != 0) goto LAB_00029f09;\n  }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar10 = 0x2a;\n    if (param_9 != 0) {\nLAB_00029f09:\n      sVar5 = strlen(local_34);\n      uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);\n      *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n      pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n      free(pcVar4);\n      pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }\n    uVar10 = 0x2e;\n  }" { (expression_statement "uVar10 = 0x2a;" (assignment_expression "uVar10 = 0x2a" identifier = number_literal) ;) (if_statement "if (param_9 != 0) {\nLAB_00029f09:\n      sVar5 = strlen(local_34);\n      uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);\n      *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n      pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n      free(pcVar4);\n      pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }" if (parenthesized_expression "(param_9 != 0)" ( (binary_expression "param_9 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00029f09:\n      sVar5 = strlen(local_34);\n      uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);\n      *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n      pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n      free(pcVar4);\n      pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }" { (labeled_statement "LAB_00029f09:\n      sVar5 = strlen(local_34);" statement_identifier : (expression_statement "sVar5 = strlen(local_34);" (assignment_expression "sVar5 = strlen(local_34)" identifier = (call_expression "strlen(local_34)" identifier (argument_list "(local_34)" ( identifier )))) ;)) (expression_statement "uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);" (assignment_expression "uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5)" identifier = (call_expression "xrealloc(pcVar3,iVar11 + 0x28 + sVar5)" identifier (argument_list "(pcVar3,iVar11 + 0x28 + sVar5)" ( identifier , (binary_expression "iVar11 + 0x28 + sVar5" (binary_expression "iVar11 + 0x28" identifier + number_literal) + identifier) )))) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x1c) = uVar8;" (assignment_expression "*(undefined4 *)(iVar2 + 0x1c) = uVar8" (pointer_expression "*(undefined4 *)(iVar2 + 0x1c)" * (cast_expression "(undefined4 *)(iVar2 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);" (assignment_expression "pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c)" identifier = (pointer_expression "*(char **)(*(int *)(param_1 + 0x38) + 0x1c)" * (cast_expression "(char **)(*(int *)(param_1 + 0x38) + 0x1c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_1 + 0x38) + 0x1c)" ( (binary_expression "*(int *)(param_1 + 0x38) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) + number_literal) ))))) ;) (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,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);" (call_expression "sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10)" identifier (argument_list "(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10)" ( (binary_expression "pcVar3 + sVar5" identifier + identifier) , (string_literal ""%s:%s;%c%c%c"" " string_content ") , identifier , identifier , (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier ))) ;) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);" (assignment_expression "pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c)" identifier = (pointer_expression "*(char **)(*(int *)(param_1 + 0x38) + 0x1c)" * (cast_expression "(char **)(*(int *)(param_1 + 0x38) + 0x1c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_1 + 0x38) + 0x1c)" ( (binary_expression "*(int *)(param_1 + 0x38) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) + number_literal) ))))) ;) (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,"%ld;%s;",param_7,local_34);" (call_expression "sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34)" identifier (argument_list "(pcVar4 + sVar5,"%ld;%s;",param_7,local_34)" ( (binary_expression "pcVar4 + sVar5" identifier + identifier) , (string_literal ""%ld;%s;"" " string_content ") , identifier , identifier ))) ;) (expression_statement "free(local_34);" (call_expression "free(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) (goto_statement "goto LAB_00029eae;" goto statement_identifier ;) })) (expression_statement "uVar10 = 0x2e;" (assignment_expression "uVar10 = 0x2e" identifier = number_literal) ;) }) (else_clause "else {\n    uVar10 = 0x3f;\n    if (param_9 != 0) goto LAB_00029f09;\n  }" else (compound_statement "{\n    uVar10 = 0x3f;\n    if (param_9 != 0) goto LAB_00029f09;\n  }" { (expression_statement "uVar10 = 0x3f;" (assignment_expression "uVar10 = 0x3f" identifier = number_literal) ;) (if_statement "if (param_9 != 0) goto LAB_00029f09;" if (parenthesized_expression "(param_9 != 0)" ( (binary_expression "param_9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00029f09;" goto statement_identifier ;)) }))) (expression_statement "uVar8 = xrealloc(pcVar3,iVar11 + 0x28);" (assignment_expression "uVar8 = xrealloc(pcVar3,iVar11 + 0x28)" identifier = (call_expression "xrealloc(pcVar3,iVar11 + 0x28)" identifier (argument_list "(pcVar3,iVar11 + 0x28)" ( identifier , (binary_expression "iVar11 + 0x28" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x1c) = uVar8;" (assignment_expression "*(undefined4 *)(iVar2 + 0x1c) = uVar8" (pointer_expression "*(undefined4 *)(iVar2 + 0x1c)" * (cast_expression "(undefined4 *)(iVar2 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);" (assignment_expression "pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c)" identifier = (pointer_expression "*(char **)(*(int *)(param_1 + 0x38) + 0x1c)" * (cast_expression "(char **)(*(int *)(param_1 + 0x38) + 0x1c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_1 + 0x38) + 0x1c)" ( (binary_expression "*(int *)(param_1 + 0x38) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) + number_literal) ))))) ;) (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,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);" (call_expression "sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10)" identifier (argument_list "(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10)" ( (binary_expression "pcVar3 + sVar5" identifier + identifier) , (string_literal ""%s:%s;%c%c%c"" " string_content ") , identifier , identifier , (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier ))) ;) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (labeled_statement "LAB_00029eae:\n  if (local_40 != 0) {\n    *(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1;\n  }" statement_identifier : (if_statement "if (local_40 != 0) {\n    *(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1;\n  }" if (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) (compound_statement "{\n    *(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1;\n  }" { (expression_statement "*(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1;" (assignment_expression "*(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1" (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x38) + 0x10)" ( (binary_expression "*(int *)(param_1 + 0x38) + 0x10" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) }))) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nbfd_boolean __regparm3\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  size_t sVar4;\n  size_t sVar5;\n  size_t sVar6;\n  char *pcVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  uint local_40;\n  char *local_34;\n  \n  local_40 = info->type_stack->definition;\n  pcVar3 = stab_pop_type((stab_write_handle *)&info->type_stack);\n  local_34 = (char *)0x0;\n  if (contextp != 0) {\n    if (local_40 == 0) {\n      local_40 = (uint)(info->type_stack->definition != 0);\n    }\n    else {\n      local_40 = 1;\n    }\n    local_34 = stab_pop_type((stab_write_handle *)&info->type_stack);\n  }\n  psVar2 = info->type_stack;\n  if ((psVar2 == (stab_type_stack *)0x0) || (pcVar7 = psVar2->methods, pcVar7 == (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 *)((int)&CSWTCH_26 + visibility);\n  if (constp == 0) {\n    iVar8 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    iVar8 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x44;\n  }\n  sVar4 = strlen(pcVar7);\n  sVar5 = strlen(pcVar3);\n  sVar6 = strlen(physname);\n  iVar10 = sVar4 + sVar5 + sVar6;\n  if (staticp == 0) {\n    uVar9 = 0x2a;\n    if (contextp != 0) {\nLAB_00029f09:\n      sVar4 = strlen(local_34);\n      pcVar7 = (char *)xrealloc(pcVar7,iVar10 + 0x28 + sVar4);\n      psVar2->methods = pcVar7;\n      pcVar7 = info->type_stack->methods;\n      sVar4 = strlen(pcVar7);\n      sprintf(pcVar7 + sVar4,"%s:%s;%c%c%c",pcVar3,physname,(int)cVar1,iVar8,uVar9);\n      free(pcVar3);\n      pcVar3 = info->type_stack->methods;\n      sVar4 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar4,"%ld;%s;",(undefined4)voffset,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }\n    uVar9 = 0x2e;\n  }\n  else {\n    uVar9 = 0x3f;\n    if (contextp != 0) goto LAB_00029f09;\n  }\n  pcVar7 = (char *)xrealloc(pcVar7,iVar10 + 0x28);\n  psVar2->methods = pcVar7;\n  pcVar7 = info->type_stack->methods;\n  sVar4 = strlen(pcVar7);\n  sprintf(pcVar7 + sVar4,"%s:%s;%c%c%c",pcVar3,physname,(int)cVar1,iVar8,uVar9);\n  free(pcVar3);\nLAB_00029eae:\n  if (local_40 != 0) {\n    info->type_stack->definition = 1;\n  }\n  return 1;\n}\n\n" comment (function_definition "bfd_boolean __regparm3\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  size_t sVar4;\n  size_t sVar5;\n  size_t sVar6;\n  char *pcVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  uint local_40;\n  char *local_34;\n  \n  local_40 = info->type_stack->definition;\n  pcVar3 = stab_pop_type((stab_write_handle *)&info->type_stack);\n  local_34 = (char *)0x0;\n  if (contextp != 0) {\n    if (local_40 == 0) {\n      local_40 = (uint)(info->type_stack->definition != 0);\n    }\n    else {\n      local_40 = 1;\n    }\n    local_34 = stab_pop_type((stab_write_handle *)&info->type_stack);\n  }\n  psVar2 = info->type_stack;\n  if ((psVar2 == (stab_type_stack *)0x0) || (pcVar7 = psVar2->methods, pcVar7 == (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 *)((int)&CSWTCH_26 + visibility);\n  if (constp == 0) {\n    iVar8 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    iVar8 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x44;\n  }\n  sVar4 = strlen(pcVar7);\n  sVar5 = strlen(pcVar3);\n  sVar6 = strlen(physname);\n  iVar10 = sVar4 + sVar5 + sVar6;\n  if (staticp == 0) {\n    uVar9 = 0x2a;\n    if (contextp != 0) {\nLAB_00029f09:\n      sVar4 = strlen(local_34);\n      pcVar7 = (char *)xrealloc(pcVar7,iVar10 + 0x28 + sVar4);\n      psVar2->methods = pcVar7;\n      pcVar7 = info->type_stack->methods;\n      sVar4 = strlen(pcVar7);\n      sprintf(pcVar7 + sVar4,"%s:%s;%c%c%c",pcVar3,physname,(int)cVar1,iVar8,uVar9);\n      free(pcVar3);\n      pcVar3 = info->type_stack->methods;\n      sVar4 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar4,"%ld;%s;",(undefined4)voffset,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }\n    uVar9 = 0x2e;\n  }\n  else {\n    uVar9 = 0x3f;\n    if (contextp != 0) goto LAB_00029f09;\n  }\n  pcVar7 = (char *)xrealloc(pcVar7,iVar10 + 0x28);\n  psVar2->methods = pcVar7;\n  pcVar7 = info->type_stack->methods;\n  sVar4 = strlen(pcVar7);\n  sprintf(pcVar7 + sVar4,"%s:%s;%c%c%c",pcVar3,physname,(int)cVar1,iVar8,uVar9);\n  free(pcVar3);\nLAB_00029eae:\n  if (local_40 != 0) {\n    info->type_stack->definition = 1;\n  }\n  return 1;\n}" type_identifier (ERROR "__regparm3" 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  size_t sVar4;\n  size_t sVar5;\n  size_t sVar6;\n  char *pcVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  uint local_40;\n  char *local_34;\n  \n  local_40 = info->type_stack->definition;\n  pcVar3 = stab_pop_type((stab_write_handle *)&info->type_stack);\n  local_34 = (char *)0x0;\n  if (contextp != 0) {\n    if (local_40 == 0) {\n      local_40 = (uint)(info->type_stack->definition != 0);\n    }\n    else {\n      local_40 = 1;\n    }\n    local_34 = stab_pop_type((stab_write_handle *)&info->type_stack);\n  }\n  psVar2 = info->type_stack;\n  if ((psVar2 == (stab_type_stack *)0x0) || (pcVar7 = psVar2->methods, pcVar7 == (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 *)((int)&CSWTCH_26 + visibility);\n  if (constp == 0) {\n    iVar8 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    iVar8 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x44;\n  }\n  sVar4 = strlen(pcVar7);\n  sVar5 = strlen(pcVar3);\n  sVar6 = strlen(physname);\n  iVar10 = sVar4 + sVar5 + sVar6;\n  if (staticp == 0) {\n    uVar9 = 0x2a;\n    if (contextp != 0) {\nLAB_00029f09:\n      sVar4 = strlen(local_34);\n      pcVar7 = (char *)xrealloc(pcVar7,iVar10 + 0x28 + sVar4);\n      psVar2->methods = pcVar7;\n      pcVar7 = info->type_stack->methods;\n      sVar4 = strlen(pcVar7);\n      sprintf(pcVar7 + sVar4,"%s:%s;%c%c%c",pcVar3,physname,(int)cVar1,iVar8,uVar9);\n      free(pcVar3);\n      pcVar3 = info->type_stack->methods;\n      sVar4 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar4,"%ld;%s;",(undefined4)voffset,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }\n    uVar9 = 0x2e;\n  }\n  else {\n    uVar9 = 0x3f;\n    if (contextp != 0) goto LAB_00029f09;\n  }\n  pcVar7 = (char *)xrealloc(pcVar7,iVar10 + 0x28);\n  psVar2->methods = pcVar7;\n  pcVar7 = info->type_stack->methods;\n  sVar4 = strlen(pcVar7);\n  sprintf(pcVar7 + sVar4,"%s:%s;%c%c%c",pcVar3,physname,(int)cVar1,iVar8,uVar9);\n  free(pcVar3);\nLAB_00029eae:\n  if (local_40 != 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 "size_t sVar4;" primitive_type identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "char *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (expression_statement "local_40 = info->type_stack->definition;" (assignment_expression "local_40 = 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))) )))) ;) (expression_statement "local_34 = (char *)0x0;" (assignment_expression "local_34 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (contextp != 0) {\n    if (local_40 == 0) {\n      local_40 = (uint)(info->type_stack->definition != 0);\n    }\n    else {\n      local_40 = 1;\n    }\n    local_34 = 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_40 == 0) {\n      local_40 = (uint)(info->type_stack->definition != 0);\n    }\n    else {\n      local_40 = 1;\n    }\n    local_34 = stab_pop_type((stab_write_handle *)&info->type_stack);\n  }" { (if_statement "if (local_40 == 0) {\n      local_40 = (uint)(info->type_stack->definition != 0);\n    }\n    else {\n      local_40 = 1;\n    }" if (parenthesized_expression "(local_40 == 0)" ( (binary_expression "local_40 == 0" identifier == number_literal) )) (compound_statement "{\n      local_40 = (uint)(info->type_stack->definition != 0);\n    }" { (expression_statement "local_40 = (uint)(info->type_stack->definition != 0);" (assignment_expression "local_40 = (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_40 = 1;\n    }" else (compound_statement "{\n      local_40 = 1;\n    }" { (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) }))) (expression_statement "local_34 = stab_pop_type((stab_write_handle *)&info->type_stack);" (assignment_expression "local_34 = 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) || (pcVar7 = psVar2->methods, pcVar7 == (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) || (pcVar7 = psVar2->methods, pcVar7 == (char *)0x0))" ( (binary_expression "(psVar2 == (stab_type_stack *)0x0) || (pcVar7 = psVar2->methods, pcVar7 == (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 "(pcVar7 = psVar2->methods, pcVar7 == (char *)0x0)" ( (comma_expression "pcVar7 = psVar2->methods, pcVar7 == (char *)0x0" (assignment_expression "pcVar7 = psVar2->methods" identifier = (field_expression "psVar2->methods" identifier -> field_identifier)) , (binary_expression "pcVar7 == (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 *)((int)&CSWTCH_26 + visibility);" (assignment_expression "cVar1 = *(char *)((int)&CSWTCH_26 + visibility)" identifier = (pointer_expression "*(char *)((int)&CSWTCH_26 + visibility)" * (cast_expression "(char *)((int)&CSWTCH_26 + visibility)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&CSWTCH_26 + visibility)" ( (binary_expression "(int)&CSWTCH_26 + visibility" (cast_expression "(int)&CSWTCH_26" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&CSWTCH_26" & identifier)) + identifier) ))))) ;) (if_statement "if (constp == 0) {\n    iVar8 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    iVar8 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x44;\n  }" if (parenthesized_expression "(constp == 0)" ( (binary_expression "constp == 0" identifier == number_literal) )) (compound_statement "{\n    iVar8 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x43;\n  }" { (expression_statement "iVar8 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x43;" (assignment_expression "iVar8 = (-(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    iVar8 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x44;\n  }" else (compound_statement "{\n    iVar8 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x44;\n  }" { (expression_statement "iVar8 = (-(uint)(volatilep == 0) & 0xfffffffe) + 0x44;" (assignment_expression "iVar8 = (-(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 "sVar4 = strlen(pcVar7);" (assignment_expression "sVar4 = strlen(pcVar7)" identifier = (call_expression "strlen(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) (expression_statement "sVar5 = strlen(pcVar3);" (assignment_expression "sVar5 = strlen(pcVar3)" identifier = (call_expression "strlen(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "sVar6 = strlen(physname);" (assignment_expression "sVar6 = strlen(physname)" identifier = (call_expression "strlen(physname)" identifier (argument_list "(physname)" ( identifier )))) ;) (expression_statement "iVar10 = sVar4 + sVar5 + sVar6;" (assignment_expression "iVar10 = sVar4 + sVar5 + sVar6" identifier = (binary_expression "sVar4 + sVar5 + sVar6" (binary_expression "sVar4 + sVar5" identifier + identifier) + identifier)) ;) (if_statement "if (staticp == 0) {\n    uVar9 = 0x2a;\n    if (contextp != 0) {\nLAB_00029f09:\n      sVar4 = strlen(local_34);\n      pcVar7 = (char *)xrealloc(pcVar7,iVar10 + 0x28 + sVar4);\n      psVar2->methods = pcVar7;\n      pcVar7 = info->type_stack->methods;\n      sVar4 = strlen(pcVar7);\n      sprintf(pcVar7 + sVar4,"%s:%s;%c%c%c",pcVar3,physname,(int)cVar1,iVar8,uVar9);\n      free(pcVar3);\n      pcVar3 = info->type_stack->methods;\n      sVar4 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar4,"%ld;%s;",(undefined4)voffset,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }\n    uVar9 = 0x2e;\n  }\n  else {\n    uVar9 = 0x3f;\n    if (contextp != 0) goto LAB_00029f09;\n  }" if (parenthesized_expression "(staticp == 0)" ( (binary_expression "staticp == 0" identifier == number_literal) )) (compound_statement "{\n    uVar9 = 0x2a;\n    if (contextp != 0) {\nLAB_00029f09:\n      sVar4 = strlen(local_34);\n      pcVar7 = (char *)xrealloc(pcVar7,iVar10 + 0x28 + sVar4);\n      psVar2->methods = pcVar7;\n      pcVar7 = info->type_stack->methods;\n      sVar4 = strlen(pcVar7);\n      sprintf(pcVar7 + sVar4,"%s:%s;%c%c%c",pcVar3,physname,(int)cVar1,iVar8,uVar9);\n      free(pcVar3);\n      pcVar3 = info->type_stack->methods;\n      sVar4 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar4,"%ld;%s;",(undefined4)voffset,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }\n    uVar9 = 0x2e;\n  }" { (expression_statement "uVar9 = 0x2a;" (assignment_expression "uVar9 = 0x2a" identifier = number_literal) ;) (if_statement "if (contextp != 0) {\nLAB_00029f09:\n      sVar4 = strlen(local_34);\n      pcVar7 = (char *)xrealloc(pcVar7,iVar10 + 0x28 + sVar4);\n      psVar2->methods = pcVar7;\n      pcVar7 = info->type_stack->methods;\n      sVar4 = strlen(pcVar7);\n      sprintf(pcVar7 + sVar4,"%s:%s;%c%c%c",pcVar3,physname,(int)cVar1,iVar8,uVar9);\n      free(pcVar3);\n      pcVar3 = info->type_stack->methods;\n      sVar4 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar4,"%ld;%s;",(undefined4)voffset,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }" if (parenthesized_expression "(contextp != 0)" ( (binary_expression "contextp != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00029f09:\n      sVar4 = strlen(local_34);\n      pcVar7 = (char *)xrealloc(pcVar7,iVar10 + 0x28 + sVar4);\n      psVar2->methods = pcVar7;\n      pcVar7 = info->type_stack->methods;\n      sVar4 = strlen(pcVar7);\n      sprintf(pcVar7 + sVar4,"%s:%s;%c%c%c",pcVar3,physname,(int)cVar1,iVar8,uVar9);\n      free(pcVar3);\n      pcVar3 = info->type_stack->methods;\n      sVar4 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar4,"%ld;%s;",(undefined4)voffset,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }" { (labeled_statement "LAB_00029f09:\n      sVar4 = strlen(local_34);" statement_identifier : (expression_statement "sVar4 = strlen(local_34);" (assignment_expression "sVar4 = strlen(local_34)" identifier = (call_expression "strlen(local_34)" identifier (argument_list "(local_34)" ( identifier )))) ;)) (expression_statement "pcVar7 = (char *)xrealloc(pcVar7,iVar10 + 0x28 + sVar4);" (assignment_expression "pcVar7 = (char *)xrealloc(pcVar7,iVar10 + 0x28 + sVar4)" identifier = (cast_expression "(char *)xrealloc(pcVar7,iVar10 + 0x28 + sVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(pcVar7,iVar10 + 0x28 + sVar4)" identifier (argument_list "(pcVar7,iVar10 + 0x28 + sVar4)" ( identifier , (binary_expression "iVar10 + 0x28 + sVar4" (binary_expression "iVar10 + 0x28" identifier + number_literal) + identifier) ))))) ;) (expression_statement "psVar2->methods = pcVar7;" (assignment_expression "psVar2->methods = pcVar7" (field_expression "psVar2->methods" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar7 = info->type_stack->methods;" (assignment_expression "pcVar7 = info->type_stack->methods" identifier = (field_expression "info->type_stack->methods" (field_expression "info->type_stack" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "sVar4 = strlen(pcVar7);" (assignment_expression "sVar4 = strlen(pcVar7)" identifier = (call_expression "strlen(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) (expression_statement "sprintf(pcVar7 + sVar4,"%s:%s;%c%c%c",pcVar3,physname,(int)cVar1,iVar8,uVar9);" (call_expression "sprintf(pcVar7 + sVar4,"%s:%s;%c%c%c",pcVar3,physname,(int)cVar1,iVar8,uVar9)" identifier (argument_list "(pcVar7 + sVar4,"%s:%s;%c%c%c",pcVar3,physname,(int)cVar1,iVar8,uVar9)" ( (binary_expression "pcVar7 + sVar4" identifier + identifier) , (string_literal ""%s:%s;%c%c%c"" " string_content ") , identifier , identifier , (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_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 "sVar4 = strlen(pcVar3);" (assignment_expression "sVar4 = strlen(pcVar3)" identifier = (call_expression "strlen(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "sprintf(pcVar3 + sVar4,"%ld;%s;",(undefined4)voffset,local_34);" (call_expression "sprintf(pcVar3 + sVar4,"%ld;%s;",(undefined4)voffset,local_34)" identifier (argument_list "(pcVar3 + sVar4,"%ld;%s;",(undefined4)voffset,local_34)" ( (binary_expression "pcVar3 + sVar4" identifier + identifier) , (string_literal ""%ld;%s;"" " string_content ") , (cast_expression "(undefined4)voffset" ( (type_descriptor "undefined4" type_identifier) ) identifier) , identifier ))) ;) (expression_statement "free(local_34);" (call_expression "free(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) (goto_statement "goto LAB_00029eae;" goto statement_identifier ;) })) (expression_statement "uVar9 = 0x2e;" (assignment_expression "uVar9 = 0x2e" identifier = number_literal) ;) }) (else_clause "else {\n    uVar9 = 0x3f;\n    if (contextp != 0) goto LAB_00029f09;\n  }" else (compound_statement "{\n    uVar9 = 0x3f;\n    if (contextp != 0) goto LAB_00029f09;\n  }" { (expression_statement "uVar9 = 0x3f;" (assignment_expression "uVar9 = 0x3f" identifier = number_literal) ;) (if_statement "if (contextp != 0) goto LAB_00029f09;" if (parenthesized_expression "(contextp != 0)" ( (binary_expression "contextp != 0" identifier != number_literal) )) (goto_statement "goto LAB_00029f09;" goto statement_identifier ;)) }))) (expression_statement "pcVar7 = (char *)xrealloc(pcVar7,iVar10 + 0x28);" (assignment_expression "pcVar7 = (char *)xrealloc(pcVar7,iVar10 + 0x28)" identifier = (cast_expression "(char *)xrealloc(pcVar7,iVar10 + 0x28)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(pcVar7,iVar10 + 0x28)" identifier (argument_list "(pcVar7,iVar10 + 0x28)" ( identifier , (binary_expression "iVar10 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "psVar2->methods = pcVar7;" (assignment_expression "psVar2->methods = pcVar7" (field_expression "psVar2->methods" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar7 = info->type_stack->methods;" (assignment_expression "pcVar7 = info->type_stack->methods" identifier = (field_expression "info->type_stack->methods" (field_expression "info->type_stack" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "sVar4 = strlen(pcVar7);" (assignment_expression "sVar4 = strlen(pcVar7)" identifier = (call_expression "strlen(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) (expression_statement "sprintf(pcVar7 + sVar4,"%s:%s;%c%c%c",pcVar3,physname,(int)cVar1,iVar8,uVar9);" (call_expression "sprintf(pcVar7 + sVar4,"%s:%s;%c%c%c",pcVar3,physname,(int)cVar1,iVar8,uVar9)" identifier (argument_list "(pcVar7 + sVar4,"%s:%s;%c%c%c",pcVar3,physname,(int)cVar1,iVar8,uVar9)" ( (binary_expression "pcVar7 + sVar4" identifier + identifier) , (string_literal ""%s:%s;%c%c%c"" " string_content ") , identifier , identifier , (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier ))) ;) (expression_statement "free(pcVar3);" (call_expression "free(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (labeled_statement "LAB_00029eae:\n  if (local_40 != 0) {\n    info->type_stack->definition = 1;\n  }" statement_identifier : (if_statement "if (local_40 != 0) {\n    info->type_stack->definition = 1;\n  }" if (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 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 "undefined4 __regparm3\nFUN_00029d40(int param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,\n            undefined4 param_7,undefined4 param_8,int param_9)\n\n{\n  char cVar1;\n  int iVar2;\n  char *pcVar3;\n  char *pcVar4;\n  size_t sVar5;\n  size_t sVar6;\n  size_t sVar7;\n  undefined4 uVar8;\n  int iVar9;\n  undefined4 uVar10;\n  int iVar11;\n  uint local_40;\n  char *local_34;\n  \n  local_40 = *(uint *)(*(int *)(param_1 + 0x38) + 0x10);\n  pcVar4 = (char *)FUN_00029a00();\n  local_34 = (char *)0x0;\n  if (param_9 != 0) {\n    if (local_40 == 0) {\n      local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);\n    }\n    else {\n      local_40 = 1;\n    }\n    local_34 = (char *)FUN_00029a00();\n  }\n  iVar2 = *(int *)(param_1 + 0x38);\n  if ((iVar2 == 0) || (pcVar3 = *(char **)(iVar2 + 0x1c), 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_00035154)[param_3];\n  if (param_5 == 0) {\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }\n  sVar5 = strlen(pcVar3);\n  sVar6 = strlen(pcVar4);\n  sVar7 = strlen(param_2);\n  iVar11 = sVar5 + sVar6 + sVar7;\n  if (param_4 == 0) {\n    uVar10 = 0x2a;\n    if (param_9 != 0) {\nLAB_00029f09:\n      sVar5 = strlen(local_34);\n      uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);\n      *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n      pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n      free(pcVar4);\n      pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }\n    uVar10 = 0x2e;\n  }\n  else {\n    uVar10 = 0x3f;\n    if (param_9 != 0) goto LAB_00029f09;\n  }\n  uVar8 = xrealloc(pcVar3,iVar11 + 0x28);\n  *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n  pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n  sVar5 = strlen(pcVar3);\n  sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n  free(pcVar4);\nLAB_00029eae:\n  if (local_40 != 0) {\n    *(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1;\n  }\n  return 1;\n}\n\n" (function_definition "undefined4 __regparm3\nFUN_00029d40(int param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,\n            undefined4 param_7,undefined4 param_8,int param_9)\n\n{\n  char cVar1;\n  int iVar2;\n  char *pcVar3;\n  char *pcVar4;\n  size_t sVar5;\n  size_t sVar6;\n  size_t sVar7;\n  undefined4 uVar8;\n  int iVar9;\n  undefined4 uVar10;\n  int iVar11;\n  uint local_40;\n  char *local_34;\n  \n  local_40 = *(uint *)(*(int *)(param_1 + 0x38) + 0x10);\n  pcVar4 = (char *)FUN_00029a00();\n  local_34 = (char *)0x0;\n  if (param_9 != 0) {\n    if (local_40 == 0) {\n      local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);\n    }\n    else {\n      local_40 = 1;\n    }\n    local_34 = (char *)FUN_00029a00();\n  }\n  iVar2 = *(int *)(param_1 + 0x38);\n  if ((iVar2 == 0) || (pcVar3 = *(char **)(iVar2 + 0x1c), 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_00035154)[param_3];\n  if (param_5 == 0) {\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }\n  sVar5 = strlen(pcVar3);\n  sVar6 = strlen(pcVar4);\n  sVar7 = strlen(param_2);\n  iVar11 = sVar5 + sVar6 + sVar7;\n  if (param_4 == 0) {\n    uVar10 = 0x2a;\n    if (param_9 != 0) {\nLAB_00029f09:\n      sVar5 = strlen(local_34);\n      uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);\n      *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n      pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n      free(pcVar4);\n      pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }\n    uVar10 = 0x2e;\n  }\n  else {\n    uVar10 = 0x3f;\n    if (param_9 != 0) goto LAB_00029f09;\n  }\n  uVar8 = xrealloc(pcVar3,iVar11 + 0x28);\n  *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n  pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n  sVar5 = strlen(pcVar3);\n  sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n  free(pcVar4);\nLAB_00029eae:\n  if (local_40 != 0) {\n    *(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1;\n  }\n  return 1;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00029d40(int param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,\n            undefined4 param_7,undefined4 param_8,int param_9)" identifier (parameter_list "(int param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,\n            undefined4 param_7,undefined4 param_8,int param_9)" ( (parameter_declaration "int param_1" primitive_type 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 "undefined4 param_7" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) , (parameter_declaration "int param_9" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  char *pcVar3;\n  char *pcVar4;\n  size_t sVar5;\n  size_t sVar6;\n  size_t sVar7;\n  undefined4 uVar8;\n  int iVar9;\n  undefined4 uVar10;\n  int iVar11;\n  uint local_40;\n  char *local_34;\n  \n  local_40 = *(uint *)(*(int *)(param_1 + 0x38) + 0x10);\n  pcVar4 = (char *)FUN_00029a00();\n  local_34 = (char *)0x0;\n  if (param_9 != 0) {\n    if (local_40 == 0) {\n      local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);\n    }\n    else {\n      local_40 = 1;\n    }\n    local_34 = (char *)FUN_00029a00();\n  }\n  iVar2 = *(int *)(param_1 + 0x38);\n  if ((iVar2 == 0) || (pcVar3 = *(char **)(iVar2 + 0x1c), 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_00035154)[param_3];\n  if (param_5 == 0) {\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }\n  sVar5 = strlen(pcVar3);\n  sVar6 = strlen(pcVar4);\n  sVar7 = strlen(param_2);\n  iVar11 = sVar5 + sVar6 + sVar7;\n  if (param_4 == 0) {\n    uVar10 = 0x2a;\n    if (param_9 != 0) {\nLAB_00029f09:\n      sVar5 = strlen(local_34);\n      uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);\n      *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n      pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n      free(pcVar4);\n      pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }\n    uVar10 = 0x2e;\n  }\n  else {\n    uVar10 = 0x3f;\n    if (param_9 != 0) goto LAB_00029f09;\n  }\n  uVar8 = xrealloc(pcVar3,iVar11 + 0x28);\n  *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n  pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n  sVar5 = strlen(pcVar3);\n  sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n  free(pcVar4);\nLAB_00029eae:\n  if (local_40 != 0) {\n    *(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1;\n  }\n  return 1;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type 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 "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "char *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (expression_statement "local_40 = *(uint *)(*(int *)(param_1 + 0x38) + 0x10);" (assignment_expression "local_40 = *(uint *)(*(int *)(param_1 + 0x38) + 0x10)" identifier = (pointer_expression "*(uint *)(*(int *)(param_1 + 0x38) + 0x10)" * (cast_expression "(uint *)(*(int *)(param_1 + 0x38) + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x38) + 0x10)" ( (binary_expression "*(int *)(param_1 + 0x38) + 0x10" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pcVar4 = (char *)FUN_00029a00();" (assignment_expression "pcVar4 = (char *)FUN_00029a00()" identifier = (cast_expression "(char *)FUN_00029a00()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00029a00()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_34 = (char *)0x0;" (assignment_expression "local_34 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (param_9 != 0) {\n    if (local_40 == 0) {\n      local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);\n    }\n    else {\n      local_40 = 1;\n    }\n    local_34 = (char *)FUN_00029a00();\n  }" if (parenthesized_expression "(param_9 != 0)" ( (binary_expression "param_9 != 0" identifier != number_literal) )) (compound_statement "{\n    if (local_40 == 0) {\n      local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);\n    }\n    else {\n      local_40 = 1;\n    }\n    local_34 = (char *)FUN_00029a00();\n  }" { (if_statement "if (local_40 == 0) {\n      local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);\n    }\n    else {\n      local_40 = 1;\n    }" if (parenthesized_expression "(local_40 == 0)" ( (binary_expression "local_40 == 0" identifier == number_literal) )) (compound_statement "{\n      local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);\n    }" { (expression_statement "local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);" (assignment_expression "local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0)" identifier = (call_expression "(uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x38) + 0x10)" * (cast_expression "(int *)(*(int *)(param_1 + 0x38) + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x38) + 0x10)" ( (binary_expression "*(int *)(param_1 + 0x38) + 0x10" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) + number_literal) )))) != number_literal) )))) ;) }) (else_clause "else {\n      local_40 = 1;\n    }" else (compound_statement "{\n      local_40 = 1;\n    }" { (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" identifier = number_literal) ;) }))) (expression_statement "local_34 = (char *)FUN_00029a00();" (assignment_expression "local_34 = (char *)FUN_00029a00()" identifier = (cast_expression "(char *)FUN_00029a00()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00029a00()" identifier (argument_list "()" ( ))))) ;) })) (expression_statement "iVar2 = *(int *)(param_1 + 0x38);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x38)" identifier = (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if ((iVar2 == 0) || (pcVar3 = *(char **)(iVar2 + 0x1c), 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 "((iVar2 == 0) || (pcVar3 = *(char **)(iVar2 + 0x1c), pcVar3 == (char *)0x0))" ( (binary_expression "(iVar2 == 0) || (pcVar3 = *(char **)(iVar2 + 0x1c), pcVar3 == (char *)0x0)" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) || (parenthesized_expression "(pcVar3 = *(char **)(iVar2 + 0x1c), pcVar3 == (char *)0x0)" ( (comma_expression "pcVar3 = *(char **)(iVar2 + 0x1c), pcVar3 == (char *)0x0" (assignment_expression "pcVar3 = *(char **)(iVar2 + 0x1c)" identifier = (pointer_expression "*(char **)(iVar2 + 0x1c)" * (cast_expression "(char **)(iVar2 + 0x1c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" 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_00035154)[param_3];" (assignment_expression "cVar1 = (&DAT_00035154)[param_3]" identifier = (subscript_expression "(&DAT_00035154)[param_3]" (parenthesized_expression "(&DAT_00035154)" ( (pointer_expression "&DAT_00035154" & identifier) )) [ identifier ])) ;) (if_statement "if (param_5 == 0) {\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }" { (expression_statement "iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;" (assignment_expression "iVar9 = (-(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    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }" else (compound_statement "{\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }" { (expression_statement "iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;" (assignment_expression "iVar9 = (-(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 "sVar5 = strlen(pcVar3);" (assignment_expression "sVar5 = strlen(pcVar3)" identifier = (call_expression "strlen(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "sVar6 = strlen(pcVar4);" (assignment_expression "sVar6 = strlen(pcVar4)" identifier = (call_expression "strlen(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier )))) ;) (expression_statement "sVar7 = strlen(param_2);" (assignment_expression "sVar7 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "iVar11 = sVar5 + sVar6 + sVar7;" (assignment_expression "iVar11 = sVar5 + sVar6 + sVar7" identifier = (binary_expression "sVar5 + sVar6 + sVar7" (binary_expression "sVar5 + sVar6" identifier + identifier) + identifier)) ;) (if_statement "if (param_4 == 0) {\n    uVar10 = 0x2a;\n    if (param_9 != 0) {\nLAB_00029f09:\n      sVar5 = strlen(local_34);\n      uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);\n      *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n      pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n      free(pcVar4);\n      pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }\n    uVar10 = 0x2e;\n  }\n  else {\n    uVar10 = 0x3f;\n    if (param_9 != 0) goto LAB_00029f09;\n  }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar10 = 0x2a;\n    if (param_9 != 0) {\nLAB_00029f09:\n      sVar5 = strlen(local_34);\n      uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);\n      *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n      pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n      free(pcVar4);\n      pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }\n    uVar10 = 0x2e;\n  }" { (expression_statement "uVar10 = 0x2a;" (assignment_expression "uVar10 = 0x2a" identifier = number_literal) ;) (if_statement "if (param_9 != 0) {\nLAB_00029f09:\n      sVar5 = strlen(local_34);\n      uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);\n      *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n      pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n      free(pcVar4);\n      pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }" if (parenthesized_expression "(param_9 != 0)" ( (binary_expression "param_9 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00029f09:\n      sVar5 = strlen(local_34);\n      uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);\n      *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n      pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n      free(pcVar4);\n      pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }" { (labeled_statement "LAB_00029f09:\n      sVar5 = strlen(local_34);" statement_identifier : (expression_statement "sVar5 = strlen(local_34);" (assignment_expression "sVar5 = strlen(local_34)" identifier = (call_expression "strlen(local_34)" identifier (argument_list "(local_34)" ( identifier )))) ;)) (expression_statement "uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);" (assignment_expression "uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5)" identifier = (call_expression "xrealloc(pcVar3,iVar11 + 0x28 + sVar5)" identifier (argument_list "(pcVar3,iVar11 + 0x28 + sVar5)" ( identifier , (binary_expression "iVar11 + 0x28 + sVar5" (binary_expression "iVar11 + 0x28" identifier + number_literal) + identifier) )))) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x1c) = uVar8;" (assignment_expression "*(undefined4 *)(iVar2 + 0x1c) = uVar8" (pointer_expression "*(undefined4 *)(iVar2 + 0x1c)" * (cast_expression "(undefined4 *)(iVar2 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);" (assignment_expression "pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c)" identifier = (pointer_expression "*(char **)(*(int *)(param_1 + 0x38) + 0x1c)" * (cast_expression "(char **)(*(int *)(param_1 + 0x38) + 0x1c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_1 + 0x38) + 0x1c)" ( (binary_expression "*(int *)(param_1 + 0x38) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) + number_literal) ))))) ;) (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,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);" (call_expression "sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10)" identifier (argument_list "(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10)" ( (binary_expression "pcVar3 + sVar5" identifier + identifier) , (string_literal ""%s:%s;%c%c%c"" " string_content ") , identifier , identifier , (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier ))) ;) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);" (assignment_expression "pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c)" identifier = (pointer_expression "*(char **)(*(int *)(param_1 + 0x38) + 0x1c)" * (cast_expression "(char **)(*(int *)(param_1 + 0x38) + 0x1c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_1 + 0x38) + 0x1c)" ( (binary_expression "*(int *)(param_1 + 0x38) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) + number_literal) ))))) ;) (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,"%ld;%s;",param_7,local_34);" (call_expression "sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34)" identifier (argument_list "(pcVar4 + sVar5,"%ld;%s;",param_7,local_34)" ( (binary_expression "pcVar4 + sVar5" identifier + identifier) , (string_literal ""%ld;%s;"" " string_content ") , identifier , identifier ))) ;) (expression_statement "free(local_34);" (call_expression "free(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) (goto_statement "goto LAB_00029eae;" goto statement_identifier ;) })) (expression_statement "uVar10 = 0x2e;" (assignment_expression "uVar10 = 0x2e" identifier = number_literal) ;) }) (else_clause "else {\n    uVar10 = 0x3f;\n    if (param_9 != 0) goto LAB_00029f09;\n  }" else (compound_statement "{\n    uVar10 = 0x3f;\n    if (param_9 != 0) goto LAB_00029f09;\n  }" { (expression_statement "uVar10 = 0x3f;" (assignment_expression "uVar10 = 0x3f" identifier = number_literal) ;) (if_statement "if (param_9 != 0) goto LAB_00029f09;" if (parenthesized_expression "(param_9 != 0)" ( (binary_expression "param_9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00029f09;" goto statement_identifier ;)) }))) (expression_statement "uVar8 = xrealloc(pcVar3,iVar11 + 0x28);" (assignment_expression "uVar8 = xrealloc(pcVar3,iVar11 + 0x28)" identifier = (call_expression "xrealloc(pcVar3,iVar11 + 0x28)" identifier (argument_list "(pcVar3,iVar11 + 0x28)" ( identifier , (binary_expression "iVar11 + 0x28" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x1c) = uVar8;" (assignment_expression "*(undefined4 *)(iVar2 + 0x1c) = uVar8" (pointer_expression "*(undefined4 *)(iVar2 + 0x1c)" * (cast_expression "(undefined4 *)(iVar2 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);" (assignment_expression "pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c)" identifier = (pointer_expression "*(char **)(*(int *)(param_1 + 0x38) + 0x1c)" * (cast_expression "(char **)(*(int *)(param_1 + 0x38) + 0x1c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_1 + 0x38) + 0x1c)" ( (binary_expression "*(int *)(param_1 + 0x38) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) + number_literal) ))))) ;) (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,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);" (call_expression "sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10)" identifier (argument_list "(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10)" ( (binary_expression "pcVar3 + sVar5" identifier + identifier) , (string_literal ""%s:%s;%c%c%c"" " string_content ") , identifier , identifier , (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier ))) ;) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (labeled_statement "LAB_00029eae:\n  if (local_40 != 0) {\n    *(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1;\n  }" statement_identifier : (if_statement "if (local_40 != 0) {\n    *(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1;\n  }" if (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) (compound_statement "{\n    *(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1;\n  }" { (expression_statement "*(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1;" (assignment_expression "*(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1" (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x38) + 0x10)" ( (binary_expression "*(int *)(param_1 + 0x38) + 0x10" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) }))) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE 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) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE 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 TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (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 ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 TYPE (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 ( ))))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (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 { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (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 TYPE (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) ) IDENT) , 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 TYPE (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 ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto 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 TYPE (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) ) IDENT) , 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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = LIT) ;) }))) (return_statement return LIT ;) })))
(function_definition "undefined4 __regparm3\nFUN_00029d40(int param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,\n            undefined4 param_7,undefined4 param_8,int param_9)\n\n{\n  char cVar1;\n  int iVar2;\n  char *pcVar3;\n  char *pcVar4;\n  size_t sVar5;\n  size_t sVar6;\n  size_t sVar7;\n  undefined4 uVar8;\n  int iVar9;\n  undefined4 uVar10;\n  int iVar11;\n  uint local_40;\n  char *local_34;\n  \n  local_40 = *(uint *)(*(int *)(param_1 + 0x38) + 0x10);\n  pcVar4 = (char *)FUN_00029a00();\n  local_34 = (char *)0x0;\n  if (param_9 != 0) {\n    if (local_40 == 0) {\n      local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);\n    }\n    else {\n      local_40 = 1;\n    }\n    local_34 = (char *)FUN_00029a00();\n  }\n  iVar2 = *(int *)(param_1 + 0x38);\n  if ((iVar2 == 0) || (pcVar3 = *(char **)(iVar2 + 0x1c), 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_00035154)[param_3];\n  if (param_5 == 0) {\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }\n  sVar5 = strlen(pcVar3);\n  sVar6 = strlen(pcVar4);\n  sVar7 = strlen(param_2);\n  iVar11 = sVar5 + sVar6 + sVar7;\n  if (param_4 == 0) {\n    uVar10 = 0x2a;\n    if (param_9 != 0) {\nLAB_00029f09:\n      sVar5 = strlen(local_34);\n      uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);\n      *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n      pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n      free(pcVar4);\n      pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }\n    uVar10 = 0x2e;\n  }\n  else {\n    uVar10 = 0x3f;\n    if (param_9 != 0) goto LAB_00029f09;\n  }\n  uVar8 = xrealloc(pcVar3,iVar11 + 0x28);\n  *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n  pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n  sVar5 = strlen(pcVar3);\n  sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n  free(pcVar4);\nLAB_00029eae:\n  if (local_40 != 0) {\n    *(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1;\n  }\n  return 1;\n}" (type_identifier "undefined4") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00029d40(int param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,\n            undefined4 param_7,undefined4 param_8,int param_9)" (identifier "FUN_00029d40") (parameter_list "(int param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,\n            undefined4 param_7,undefined4 param_8,int param_9)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (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 "undefined4 param_7" (type_identifier "undefined4") (identifier "param_7")) (, ",") (parameter_declaration "undefined4 param_8" (type_identifier "undefined4") (identifier "param_8")) (, ",") (parameter_declaration "int param_9" (primitive_type "int") (identifier "param_9")) () ")"))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  char *pcVar3;\n  char *pcVar4;\n  size_t sVar5;\n  size_t sVar6;\n  size_t sVar7;\n  undefined4 uVar8;\n  int iVar9;\n  undefined4 uVar10;\n  int iVar11;\n  uint local_40;\n  char *local_34;\n  \n  local_40 = *(uint *)(*(int *)(param_1 + 0x38) + 0x10);\n  pcVar4 = (char *)FUN_00029a00();\n  local_34 = (char *)0x0;\n  if (param_9 != 0) {\n    if (local_40 == 0) {\n      local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);\n    }\n    else {\n      local_40 = 1;\n    }\n    local_34 = (char *)FUN_00029a00();\n  }\n  iVar2 = *(int *)(param_1 + 0x38);\n  if ((iVar2 == 0) || (pcVar3 = *(char **)(iVar2 + 0x1c), 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_00035154)[param_3];\n  if (param_5 == 0) {\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }\n  sVar5 = strlen(pcVar3);\n  sVar6 = strlen(pcVar4);\n  sVar7 = strlen(param_2);\n  iVar11 = sVar5 + sVar6 + sVar7;\n  if (param_4 == 0) {\n    uVar10 = 0x2a;\n    if (param_9 != 0) {\nLAB_00029f09:\n      sVar5 = strlen(local_34);\n      uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);\n      *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n      pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n      free(pcVar4);\n      pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }\n    uVar10 = 0x2e;\n  }\n  else {\n    uVar10 = 0x3f;\n    if (param_9 != 0) goto LAB_00029f09;\n  }\n  uVar8 = xrealloc(pcVar3,iVar11 + 0x28);\n  *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n  pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n  sVar5 = strlen(pcVar3);\n  sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n  free(pcVar4);\nLAB_00029eae:\n  if (local_40 != 0) {\n    *(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1;\n  }\n  return 1;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "size_t sVar5;" (primitive_type "size_t") (identifier "sVar5") (; ";")) (declaration "size_t sVar6;" (primitive_type "size_t") (identifier "sVar6") (; ";")) (declaration "size_t sVar7;" (primitive_type "size_t") (identifier "sVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "uint local_40;" (type_identifier "uint") (identifier "local_40") (; ";")) (declaration "char *local_34;" (primitive_type "char") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (expression_statement "local_40 = *(uint *)(*(int *)(param_1 + 0x38) + 0x10);" (assignment_expression "local_40 = *(uint *)(*(int *)(param_1 + 0x38) + 0x10)" (identifier "local_40") (= "=") (pointer_expression "*(uint *)(*(int *)(param_1 + 0x38) + 0x10)" (* "*") (cast_expression "(uint *)(*(int *)(param_1 + 0x38) + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x38) + 0x10)" (( "(") (binary_expression "*(int *)(param_1 + 0x38) + 0x10" (pointer_expression "*(int *)(param_1 + 0x38)" (* "*") (cast_expression "(int *)(param_1 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "pcVar4 = (char *)FUN_00029a00();" (assignment_expression "pcVar4 = (char *)FUN_00029a00()" (identifier "pcVar4") (= "=") (cast_expression "(char *)FUN_00029a00()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00029a00()" (identifier "FUN_00029a00") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "local_34 = (char *)0x0;" (assignment_expression "local_34 = (char *)0x0" (identifier "local_34") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (param_9 != 0) {\n    if (local_40 == 0) {\n      local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);\n    }\n    else {\n      local_40 = 1;\n    }\n    local_34 = (char *)FUN_00029a00();\n  }" (if "if") (parenthesized_expression "(param_9 != 0)" (( "(") (binary_expression "param_9 != 0" (identifier "param_9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (local_40 == 0) {\n      local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);\n    }\n    else {\n      local_40 = 1;\n    }\n    local_34 = (char *)FUN_00029a00();\n  }" ({ "{") (if_statement "if (local_40 == 0) {\n      local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);\n    }\n    else {\n      local_40 = 1;\n    }" (if "if") (parenthesized_expression "(local_40 == 0)" (( "(") (binary_expression "local_40 == 0" (identifier "local_40") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);\n    }" ({ "{") (expression_statement "local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);" (assignment_expression "local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0)" (identifier "local_40") (= "=") (call_expression "(uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x38) + 0x10)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x38) + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x38) + 0x10)" (( "(") (binary_expression "*(int *)(param_1 + 0x38) + 0x10" (pointer_expression "*(int *)(param_1 + 0x38)" (* "*") (cast_expression "(int *)(param_1 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n      local_40 = 1;\n    }" (else "else") (compound_statement "{\n      local_40 = 1;\n    }" ({ "{") (expression_statement "local_40 = 1;" (assignment_expression "local_40 = 1" (identifier "local_40") (= "=") (number_literal "1")) (; ";")) (} "}")))) (expression_statement "local_34 = (char *)FUN_00029a00();" (assignment_expression "local_34 = (char *)FUN_00029a00()" (identifier "local_34") (= "=") (cast_expression "(char *)FUN_00029a00()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00029a00()" (identifier "FUN_00029a00") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar2 = *(int *)(param_1 + 0x38);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x38)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(param_1 + 0x38)" (* "*") (cast_expression "(int *)(param_1 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (if_statement "if ((iVar2 == 0) || (pcVar3 = *(char **)(iVar2 + 0x1c), 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 "((iVar2 == 0) || (pcVar3 = *(char **)(iVar2 + 0x1c), pcVar3 == (char *)0x0))" (( "(") (binary_expression "(iVar2 == 0) || (pcVar3 = *(char **)(iVar2 + 0x1c), pcVar3 == (char *)0x0)" (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(pcVar3 = *(char **)(iVar2 + 0x1c), pcVar3 == (char *)0x0)" (( "(") (comma_expression "pcVar3 = *(char **)(iVar2 + 0x1c), pcVar3 == (char *)0x0" (assignment_expression "pcVar3 = *(char **)(iVar2 + 0x1c)" (identifier "pcVar3") (= "=") (pointer_expression "*(char **)(iVar2 + 0x1c)" (* "*") (cast_expression "(char **)(iVar2 + 0x1c)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x1c)" (( "(") (binary_expression "iVar2 + 0x1c" (identifier "iVar2") (+ "+") (number_literal "0x1c")) () ")"))))) (, ",") (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_00035154)[param_3];" (assignment_expression "cVar1 = (&DAT_00035154)[param_3]" (identifier "cVar1") (= "=") (subscript_expression "(&DAT_00035154)[param_3]" (parenthesized_expression "(&DAT_00035154)" (( "(") (pointer_expression "&DAT_00035154" (& "&") (identifier "DAT_00035154")) () ")")) ([ "[") (identifier "param_3") (] "]"))) (; ";")) (if_statement "if (param_5 == 0) {\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }\n  else {\n    iVar9 = (-(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    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;\n  }" ({ "{") (expression_statement "iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;" (assignment_expression "iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43" (identifier "iVar9") (= "=") (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    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }" (else "else") (compound_statement "{\n    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;\n  }" ({ "{") (expression_statement "iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;" (assignment_expression "iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44" (identifier "iVar9") (= "=") (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 "sVar5 = strlen(pcVar3);" (assignment_expression "sVar5 = strlen(pcVar3)" (identifier "sVar5") (= "=") (call_expression "strlen(pcVar3)" (identifier "strlen") (argument_list "(pcVar3)" (( "(") (identifier "pcVar3") () ")")))) (; ";")) (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 "sVar7 = strlen(param_2);" (assignment_expression "sVar7 = strlen(param_2)" (identifier "sVar7") (= "=") (call_expression "strlen(param_2)" (identifier "strlen") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "iVar11 = sVar5 + sVar6 + sVar7;" (assignment_expression "iVar11 = sVar5 + sVar6 + sVar7" (identifier "iVar11") (= "=") (binary_expression "sVar5 + sVar6 + sVar7" (binary_expression "sVar5 + sVar6" (identifier "sVar5") (+ "+") (identifier "sVar6")) (+ "+") (identifier "sVar7"))) (; ";")) (if_statement "if (param_4 == 0) {\n    uVar10 = 0x2a;\n    if (param_9 != 0) {\nLAB_00029f09:\n      sVar5 = strlen(local_34);\n      uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);\n      *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n      pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n      free(pcVar4);\n      pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }\n    uVar10 = 0x2e;\n  }\n  else {\n    uVar10 = 0x3f;\n    if (param_9 != 0) goto LAB_00029f09;\n  }" (if "if") (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar10 = 0x2a;\n    if (param_9 != 0) {\nLAB_00029f09:\n      sVar5 = strlen(local_34);\n      uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);\n      *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n      pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n      free(pcVar4);\n      pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }\n    uVar10 = 0x2e;\n  }" ({ "{") (expression_statement "uVar10 = 0x2a;" (assignment_expression "uVar10 = 0x2a" (identifier "uVar10") (= "=") (number_literal "0x2a")) (; ";")) (if_statement "if (param_9 != 0) {\nLAB_00029f09:\n      sVar5 = strlen(local_34);\n      uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);\n      *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n      pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n      free(pcVar4);\n      pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }" (if "if") (parenthesized_expression "(param_9 != 0)" (( "(") (binary_expression "param_9 != 0" (identifier "param_9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00029f09:\n      sVar5 = strlen(local_34);\n      uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);\n      *(undefined4 *)(iVar2 + 0x1c) = uVar8;\n      pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar3);\n      sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);\n      free(pcVar4);\n      pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);\n      sVar5 = strlen(pcVar4);\n      sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34);\n      free(local_34);\n      goto LAB_00029eae;\n    }" ({ "{") (labeled_statement "LAB_00029f09:\n      sVar5 = strlen(local_34);" (statement_identifier "LAB_00029f09") (: ":") (expression_statement "sVar5 = strlen(local_34);" (assignment_expression "sVar5 = strlen(local_34)" (identifier "sVar5") (= "=") (call_expression "strlen(local_34)" (identifier "strlen") (argument_list "(local_34)" (( "(") (identifier "local_34") () ")")))) (; ";"))) (expression_statement "uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);" (assignment_expression "uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5)" (identifier "uVar8") (= "=") (call_expression "xrealloc(pcVar3,iVar11 + 0x28 + sVar5)" (identifier "xrealloc") (argument_list "(pcVar3,iVar11 + 0x28 + sVar5)" (( "(") (identifier "pcVar3") (, ",") (binary_expression "iVar11 + 0x28 + sVar5" (binary_expression "iVar11 + 0x28" (identifier "iVar11") (+ "+") (number_literal "0x28")) (+ "+") (identifier "sVar5")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar2 + 0x1c) = uVar8;" (assignment_expression "*(undefined4 *)(iVar2 + 0x1c) = uVar8" (pointer_expression "*(undefined4 *)(iVar2 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1c)" (( "(") (binary_expression "iVar2 + 0x1c" (identifier "iVar2") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);" (assignment_expression "pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c)" (identifier "pcVar3") (= "=") (pointer_expression "*(char **)(*(int *)(param_1 + 0x38) + 0x1c)" (* "*") (cast_expression "(char **)(*(int *)(param_1 + 0x38) + 0x1c)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x38) + 0x1c)" (( "(") (binary_expression "*(int *)(param_1 + 0x38) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x38)" (* "*") (cast_expression "(int *)(param_1 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "sVar5 = strlen(pcVar3);" (assignment_expression "sVar5 = strlen(pcVar3)" (identifier "sVar5") (= "=") (call_expression "strlen(pcVar3)" (identifier "strlen") (argument_list "(pcVar3)" (( "(") (identifier "pcVar3") () ")")))) (; ";")) (expression_statement "sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);" (call_expression "sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10)" (identifier "sprintf") (argument_list "(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10)" (( "(") (binary_expression "pcVar3 + sVar5" (identifier "pcVar3") (+ "+") (identifier "sVar5")) (, ",") (string_literal ""%s:%s;%c%c%c"" (" """) (string_content "%s:%s;%c%c%c") (" """)) (, ",") (identifier "pcVar4") (, ",") (identifier "param_2") (, ",") (cast_expression "(int)cVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar1")) (, ",") (identifier "iVar9") (, ",") (identifier "uVar10") () ")"))) (; ";")) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" (identifier "free") (argument_list "(pcVar4)" (( "(") (identifier "pcVar4") () ")"))) (; ";")) (expression_statement "pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);" (assignment_expression "pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c)" (identifier "pcVar4") (= "=") (pointer_expression "*(char **)(*(int *)(param_1 + 0x38) + 0x1c)" (* "*") (cast_expression "(char **)(*(int *)(param_1 + 0x38) + 0x1c)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x38) + 0x1c)" (( "(") (binary_expression "*(int *)(param_1 + 0x38) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x38)" (* "*") (cast_expression "(int *)(param_1 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "sVar5 = strlen(pcVar4);" (assignment_expression "sVar5 = strlen(pcVar4)" (identifier "sVar5") (= "=") (call_expression "strlen(pcVar4)" (identifier "strlen") (argument_list "(pcVar4)" (( "(") (identifier "pcVar4") () ")")))) (; ";")) (expression_statement "sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34);" (call_expression "sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34)" (identifier "sprintf") (argument_list "(pcVar4 + sVar5,"%ld;%s;",param_7,local_34)" (( "(") (binary_expression "pcVar4 + sVar5" (identifier "pcVar4") (+ "+") (identifier "sVar5")) (, ",") (string_literal ""%ld;%s;"" (" """) (string_content "%ld;%s;") (" """)) (, ",") (identifier "param_7") (, ",") (identifier "local_34") () ")"))) (; ";")) (expression_statement "free(local_34);" (call_expression "free(local_34)" (identifier "free") (argument_list "(local_34)" (( "(") (identifier "local_34") () ")"))) (; ";")) (goto_statement "goto LAB_00029eae;" (goto "goto") (statement_identifier "LAB_00029eae") (; ";")) (} "}"))) (expression_statement "uVar10 = 0x2e;" (assignment_expression "uVar10 = 0x2e" (identifier "uVar10") (= "=") (number_literal "0x2e")) (; ";")) (} "}")) (else_clause "else {\n    uVar10 = 0x3f;\n    if (param_9 != 0) goto LAB_00029f09;\n  }" (else "else") (compound_statement "{\n    uVar10 = 0x3f;\n    if (param_9 != 0) goto LAB_00029f09;\n  }" ({ "{") (expression_statement "uVar10 = 0x3f;" (assignment_expression "uVar10 = 0x3f" (identifier "uVar10") (= "=") (number_literal "0x3f")) (; ";")) (if_statement "if (param_9 != 0) goto LAB_00029f09;" (if "if") (parenthesized_expression "(param_9 != 0)" (( "(") (binary_expression "param_9 != 0" (identifier "param_9") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00029f09;" (goto "goto") (statement_identifier "LAB_00029f09") (; ";"))) (} "}")))) (expression_statement "uVar8 = xrealloc(pcVar3,iVar11 + 0x28);" (assignment_expression "uVar8 = xrealloc(pcVar3,iVar11 + 0x28)" (identifier "uVar8") (= "=") (call_expression "xrealloc(pcVar3,iVar11 + 0x28)" (identifier "xrealloc") (argument_list "(pcVar3,iVar11 + 0x28)" (( "(") (identifier "pcVar3") (, ",") (binary_expression "iVar11 + 0x28" (identifier "iVar11") (+ "+") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar2 + 0x1c) = uVar8;" (assignment_expression "*(undefined4 *)(iVar2 + 0x1c) = uVar8" (pointer_expression "*(undefined4 *)(iVar2 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1c)" (( "(") (binary_expression "iVar2 + 0x1c" (identifier "iVar2") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);" (assignment_expression "pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c)" (identifier "pcVar3") (= "=") (pointer_expression "*(char **)(*(int *)(param_1 + 0x38) + 0x1c)" (* "*") (cast_expression "(char **)(*(int *)(param_1 + 0x38) + 0x1c)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x38) + 0x1c)" (( "(") (binary_expression "*(int *)(param_1 + 0x38) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x38)" (* "*") (cast_expression "(int *)(param_1 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "sVar5 = strlen(pcVar3);" (assignment_expression "sVar5 = strlen(pcVar3)" (identifier "sVar5") (= "=") (call_expression "strlen(pcVar3)" (identifier "strlen") (argument_list "(pcVar3)" (( "(") (identifier "pcVar3") () ")")))) (; ";")) (expression_statement "sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);" (call_expression "sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10)" (identifier "sprintf") (argument_list "(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10)" (( "(") (binary_expression "pcVar3 + sVar5" (identifier "pcVar3") (+ "+") (identifier "sVar5")) (, ",") (string_literal ""%s:%s;%c%c%c"" (" """) (string_content "%s:%s;%c%c%c") (" """)) (, ",") (identifier "pcVar4") (, ",") (identifier "param_2") (, ",") (cast_expression "(int)cVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar1")) (, ",") (identifier "iVar9") (, ",") (identifier "uVar10") () ")"))) (; ";")) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" (identifier "free") (argument_list "(pcVar4)" (( "(") (identifier "pcVar4") () ")"))) (; ";")) (labeled_statement "LAB_00029eae:\n  if (local_40 != 0) {\n    *(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1;\n  }" (statement_identifier "LAB_00029eae") (: ":") (if_statement "if (local_40 != 0) {\n    *(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1;\n  }" (if "if") (parenthesized_expression "(local_40 != 0)" (( "(") (binary_expression "local_40 != 0" (identifier "local_40") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1;\n  }" ({ "{") (expression_statement "*(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1;" (assignment_expression "*(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1" (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10)" (* "*") (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x38) + 0x10)" (( "(") (binary_expression "*(int *)(param_1 + 0x38) + 0x10" (pointer_expression "*(int *)(param_1 + 0x38)" (* "*") (cast_expression "(int *)(param_1 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}")))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

type_1 __regparm3
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_21;
  size_t var_13;
  size_t var_14;
  size_t var_15;
  char *var_5;
  int iVar8;
  type_6 uVar9;
  int var_18;
  type_7 var_3;
  char *local_34;
  
  var_3 = info->type_stack->definition;
  var_21 = var_1((type_2 *)&info->type_stack);
  local_34 = (char *)0x0;
  if (var_2 != 0) {
    if (var_3 == 0) {
      var_3 = (type_7)(info->type_stack->definition != 0);
    }
    else {
      var_3 = 1;
    }
    local_34 = 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 *)((int)&CSWTCH_26 + var_8);
  if (var_10 == 0) {
    iVar8 = (-(type_7)(var_11 == 0) & 0xfffffffe) + 0x43;
  }
  else {
    iVar8 = (-(type_7)(var_11 == 0) & 0xfffffffe) + 0x44;
  }
  var_13 = var_12(var_5);
  var_14 = var_12(var_21);
  var_15 = var_12(physname);
  var_18 = var_13 + var_14 + var_15;
  if (var_16 == 0) {
    uVar9 = 0x2a;
    if (var_2 != 0) {
LAB_00029f09:
      var_13 = var_12(local_34);
      var_5 = (char *)var_17(var_5,var_18 + 0x28 + var_13);
      var_4->methods = var_5;
      var_5 = info->type_stack->methods;
      var_13 = var_12(var_5);
      var_19(var_5 + var_13,"%s:%s;%c%c%c",var_21,physname,(int)cVar1,iVar8,uVar9);
      var_20(var_21);
      var_21 = info->type_stack->methods;
      var_13 = var_12(var_21);
      var_19(var_21 + var_13,"%ld;%s;",(type_6)voffset,local_34);
      var_20(local_34);
      goto LAB_00029eae;
    }
    uVar9 = 0x2e;
  }
  else {
    uVar9 = 0x3f;
    if (var_2 != 0) goto LAB_00029f09;
  }
  var_5 = (char *)var_17(var_5,var_18 + 0x28);
  var_4->methods = var_5;
  var_5 = info->type_stack->methods;
  var_13 = var_12(var_5);
  var_19(var_5 + var_13,"%s:%s;%c%c%c",var_21,physname,(int)cVar1,iVar8,uVar9);
  var_20(var_21);
LAB_00029eae:
  if (var_3 != 0) {
    info->type_stack->definition = 1;
  }
  return 1;
}


(translation_unit (function_definition type: (type_identifier) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) 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: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) 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))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (primitive_type) 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))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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 (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_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) (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: (primitive_type) 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: (primitive_type)) value: (identifier)) (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: (primitive_type) 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)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_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: (primitive_type) 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: (primitive_type)) value: (identifier)) (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal)))))) (return_statement (number_literal)))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 __regparm3
MASKED(int param_1,char *param_2,uint param_3,int param_4,int param_5,int param_6,
            undefined4 param_7,undefined4 param_8,int param_9)

{
  char cVar1;
  int iVar2;
  char *pcVar3;
  char *pcVar4;
  size_t sVar5;
  size_t sVar6;
  size_t sVar7;
  undefined4 uVar8;
  int iVar9;
  undefined4 uVar10;
  int iVar11;
  uint local_40;
  char *local_34;
  
  local_40 = *(uint *)(*(int *)(param_1 + 0x38) + 0x10);
  pcVar4 = (char *)FUN_00029a00();
  local_34 = (char *)0x0;
  if (param_9 != 0) {
    if (local_40 == 0) {
      local_40 = (uint)(*(int *)(*(int *)(param_1 + 0x38) + 0x10) != 0);
    }
    else {
      local_40 = 1;
    }
    local_34 = (char *)FUN_00029a00();
  }
  iVar2 = *(int *)(param_1 + 0x38);
  if ((iVar2 == 0) || (pcVar3 = *(char **)(iVar2 + 0x1c), 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_00035154)[param_3];
  if (param_5 == 0) {
    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x43;
  }
  else {
    iVar9 = (-(uint)(param_6 == 0) & 0xfffffffe) + 0x44;
  }
  sVar5 = strlen(pcVar3);
  sVar6 = strlen(pcVar4);
  sVar7 = strlen(param_2);
  iVar11 = sVar5 + sVar6 + sVar7;
  if (param_4 == 0) {
    uVar10 = 0x2a;
    if (param_9 != 0) {
LAB_00029f09:
      sVar5 = strlen(local_34);
      uVar8 = xrealloc(pcVar3,iVar11 + 0x28 + sVar5);
      *(undefined4 *)(iVar2 + 0x1c) = uVar8;
      pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);
      sVar5 = strlen(pcVar3);
      sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);
      free(pcVar4);
      pcVar4 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);
      sVar5 = strlen(pcVar4);
      sprintf(pcVar4 + sVar5,"%ld;%s;",param_7,local_34);
      free(local_34);
      goto LAB_00029eae;
    }
    uVar10 = 0x2e;
  }
  else {
    uVar10 = 0x3f;
    if (param_9 != 0) goto LAB_00029f09;
  }
  uVar8 = xrealloc(pcVar3,iVar11 + 0x28);
  *(undefined4 *)(iVar2 + 0x1c) = uVar8;
  pcVar3 = *(char **)(*(int *)(param_1 + 0x38) + 0x1c);
  sVar5 = strlen(pcVar3);
  sprintf(pcVar3 + sVar5,"%s:%s;%c%c%c",pcVar4,param_2,(int)cVar1,iVar9,uVar10);
  free(pcVar4);
LAB_00029eae:
  if (local_40 != 0) {
    *(undefined4 *)(*(int *)(param_1 + 0x38) + 0x10) = 1;
  }
  return 1;
}

