
/* DWARF original prototype: debug_type parse_coff_struct_type(bfd * abfd, coff_symbols * symbols,
   coff_types * types, int ntype, internal_auxent * pauxent, void * dhandle, internal_auxent *
   pauxent) */

debug_type
parse_coff_struct_type
          (bfd *abfd,coff_symbols *symbols,coff_types *types,int ntype,internal_auxent *pauxent,
          void *dhandle,internal_auxent *pauxent_1)

{
  asymbol *paVar1;
  long coff_symno;
  int iVar2;
  undefined4 uVar3;
  debug_type_conflict pdVar4;
  debug_type type;
  debug_field pdVar5;
  undefined8 uVar6;
  char *pcVar7;
  internal_auxent *pauxent_00;
  bfd_vma bitsize;
  long lVar8;
  bfd_vma bitpos;
  internal_auxent *piVar9;
  debug_field *local_c0;
  int local_a8;
  internal_syment syment;
  internal_auxent auxent;
  
  lVar8 = 0;
  local_c0 = (debug_field *)xmalloc(0x50);
  local_a8 = 10;
  while( true ) {
    if (((long)dhandle <= symbols->coff_symno) || (symbols->symcount <= symbols->symno)) break;
    paVar1 = symbols->syms[symbols->symno];
    iVar2 = bfd_coff_get_syment(abfd,paVar1,&syment);
    if (iVar2 == 0) {
      uVar3 = bfd_get_error();
      uVar6 = bfd_errmsg(uVar3);
      pcVar7 = "bfd_coff_get_syment failed: %s";
LAB_00135b43:
      pcVar7 = (char *)dcgettext(0,pcVar7,5);
      non_fatal(pcVar7,uVar6);
      return (debug_type)0x0;
    }
    coff_symno = symbols->coff_symno;
    symbols->symno = symbols->symno + 1;
    symbols->coff_symno = coff_symno + 1 + (ulong)syment.n_numaux;
    pauxent_00 = (internal_auxent *)0x0;
    if ((syment.n_numaux != '\0') &&
       (iVar2 = bfd_coff_get_auxent(abfd,paVar1,0,&auxent), pauxent_00 = &auxent, iVar2 == 0)) {
      uVar3 = bfd_get_error();
      uVar6 = bfd_errmsg(uVar3);
      pcVar7 = "bfd_coff_get_auxent failed: %s";
      goto LAB_00135b43;
    }
    if (syment.n_sclass == '\v') {
LAB_00135a18:
      bitsize = 0;
      bitpos = (paVar1->value + paVar1->section->vma) * 8;
    }
    else {
      if (syment.n_sclass < 0xc) {
        if (syment.n_sclass == '\b') goto LAB_00135a18;
      }
      else {
        if (syment.n_sclass == '\x12') {
          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;
          bitpos = paVar1->value + paVar1->section->vma;
          goto LAB_00135a30;
        }
        if (syment.n_sclass == 'f') break;
      }
      bitsize = 0;
      bitpos = 0;
    }
LAB_00135a30:
    piVar9 = pauxent_1;
    type = parse_coff_type(abfd,symbols,types,coff_symno,(uint)syment.n_type,pauxent_00,1,pauxent_1)
    ;
    pdVar5 = debug_make_field(pauxent_1,paVar1->name,type,bitpos,bitsize,DEBUG_VISIBILITY_PUBLIC);
    if (pdVar5 == (debug_field)0x0) {
      return (debug_type)0x0;
    }
    if (local_a8 <= (int)lVar8 + 1) {
      local_a8 = local_a8 + 10;
      local_c0 = (debug_field *)xrealloc(local_c0,(long)local_a8 << 3,piVar9);
    }
    local_c0[lVar8] = pdVar5;
    lVar8 = lVar8 + 1;
  }
  local_c0[(int)lVar8] = (debug_field)0x0;
  pdVar4 = debug_make_struct_type(pauxent_1,(uint)(ntype == 8),(ulong)*(ushort *)pauxent,local_c0);
  return pdVar4;
}



undefined8
FUN_00135900(undefined8 param_1,long *param_2,undefined8 param_3,int param_4,undefined2 *param_5,
            long param_6,undefined8 param_7)

{
  long lVar1;
  int iVar2;
  undefined4 uVar3;
  undefined8 uVar4;
  long lVar5;
  undefined8 uVar6;
  char *pcVar7;
  undefined1 *puVar8;
  undefined2 uVar9;
  long lVar10;
  long lVar11;
  long local_c0;
  int local_a8;
  undefined1 local_98 [30];
  undefined2 local_7a;
  byte local_78;
  byte local_77;
  undefined1 local_68 [10];
  undefined2 local_5e;
  
  lVar10 = 0;
  local_c0 = xmalloc(0x50);
  local_a8 = 10;
  while( true ) {
    if ((param_6 <= param_2[3]) || (param_2[1] <= param_2[2])) break;
    lVar5 = *(long *)(*param_2 + param_2[2] * 8);
    iVar2 = bfd_coff_get_syment(param_1,lVar5,local_98);
    if (iVar2 == 0) {
      uVar3 = bfd_get_error();
      uVar4 = bfd_errmsg(uVar3);
      pcVar7 = "bfd_coff_get_syment failed: %s";
LAB_00135b43:
      uVar6 = dcgettext(0,pcVar7,5);
      FUN_00136630(uVar6,uVar4);
      return 0;
    }
    lVar1 = param_2[3];
    param_2[2] = param_2[2] + 1;
    param_2[3] = lVar1 + 1 + (ulong)local_77;
    puVar8 = (undefined1 *)0x0;
    if ((local_77 != 0) &&
       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)) {
      uVar3 = bfd_get_error();
      uVar4 = bfd_errmsg(uVar3);
      pcVar7 = "bfd_coff_get_auxent failed: %s";
      goto LAB_00135b43;
    }
    if (local_78 == 0xb) {
LAB_00135a18:
      uVar9 = 0;
      lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;
    }
    else {
      if (local_78 < 0xc) {
        if (local_78 == 8) goto LAB_00135a18;
      }
      else {
        if (local_78 == 0x12) {
          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);
          uVar9 = local_5e;
          goto LAB_00135a30;
        }
        if (local_78 == 0x66) break;
      }
      lVar11 = 0;
      uVar9 = 0;
    }
LAB_00135a30:
    uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1);
    lVar5 = FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9);
    if (lVar5 == 0) {
      return 0;
    }
    if (local_a8 <= (int)lVar10 + 1) {
      local_a8 = local_a8 + 10;
      local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);
    }
    *(long *)(local_c0 + lVar10 * 8) = lVar5;
    lVar10 = lVar10 + 1;
  }
  *(undefined8 *)(local_c0 + (long)(int)lVar10 * 8) = 0;
  uVar4 = FUN_0012d5b0(param_7,param_4 == 8,*param_5);
  return uVar4;
}


PUSH R15
MOV R15,RDI
MOV EDI,0x50
PUSH R14
PUSH R13
PUSH R12
XOR R12D,R12D
PUSH RBP
PUSH RBX
MOV RBX,RSI
SUB RSP,0xa8
MOV qword ptr [RSP + 0x28],RDX
MOV dword ptr [RSP + 0x34],ECX
MOV qword ptr [RSP + 0x38],R8
MOV qword ptr [RSP],R9
CALL 0x00107350
MOV dword ptr [RSP + 0x30],0xa
MOV qword ptr [RSP + 0x18],RAX
LEA RAX,[RSP + 0x40]
MOV qword ptr [RSP + 0x8],RAX
LEA RAX,[RSP + 0x70]
MOV qword ptr [RSP + 0x10],RAX
MOV R14D,R12D
MOVSXD R13,R12D
MOV RAX,qword ptr [RSP]
CMP qword ptr [RBX + 0x18],RAX
JGE 0x001359d0
MOV RAX,qword ptr [RBX + 0x10]
CMP RAX,qword ptr [RBX + 0x8]
JGE 0x001359d0
MOV RDX,qword ptr [RBX]
MOV RDI,R15
MOV RBP,qword ptr [RDX + RAX*0x8]
MOV RDX,qword ptr [RSP + 0x8]
MOV RSI,RBP
CALL 0x00107600
TEST EAX,EAX
JZ 0x00135b28
MOV R10,qword ptr [RBX + 0x18]
MOVZX EDX,byte ptr [RSP + 0x61]
XOR R9D,R9D
ADD qword ptr [RBX + 0x10],0x1
MOV RAX,RDX
LEA RDX,[R10 + RDX*0x1 + 0x1]
MOV qword ptr [RBX + 0x18],RDX
TEST AL,AL
JNZ 0x00135ab0
MOVZX EAX,byte ptr [RSP + 0x60]
CMP AL,0xb
JZ 0x00135a18
JBE 0x00135a10
CMP AL,0x12
JZ 0x00135ae0
CMP AL,0x66
JNZ 0x00135aa8
MOV RCX,qword ptr [RSP + 0x18]
MOV RAX,qword ptr [RSP + 0x38]
XOR ESI,ESI
MOV RDI,qword ptr [RSP + 0xe0]
CMP dword ptr [RSP + 0x34],0x8
MOV qword ptr [RCX + R13*0x8],0x0
MOVZX EDX,word ptr [RAX]
SETZ SIL
CALL 0x0012d5b0
ADD RSP,0xa8
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
CMP AL,0x8
JNZ 0x00135aa8
MOV RAX,qword ptr [RBP + 0x20]
MOV R13,qword ptr [RBP + 0x10]
XOR R11D,R11D
ADD R13,qword ptr [RAX + 0x28]
SHL R13,0x3
NOP dword ptr [RAX + RAX*0x1]
MOV qword ptr [RSP + 0x20],R11
MOV RCX,R10
MOV RSI,RBX
MOV RDI,R15
PUSH qword ptr [RSP + 0xe0]
PUSH 0x1
MOVZX R8D,word ptr [RSP + 0x6e]
MOV RDX,qword ptr [RSP + 0x38]
CALL 0x00135230
MOV R11,qword ptr [RSP + 0x30]
XOR R9D,R9D
MOV RCX,R13
MOV RDI,qword ptr [RSP + 0xf0]
MOV RSI,qword ptr [RBP + 0x8]
MOV RDX,RAX
MOV R8,R11
CALL 0x0012da50
MOV RBP,RAX
POP RAX
POP RDX
TEST RBP,RBP
JZ 0x00135b57
ADD R14D,0x1
CMP R14D,dword ptr [RSP + 0x30]
JGE 0x00135b00
MOV RAX,qword ptr [RSP + 0x18]
MOV qword ptr [RAX + R12*0x8],RBP
ADD R12,0x1
JMP 0x00135957
XOR R11D,R11D
XOR R13D,R13D
JMP 0x00135a30
MOV RCX,qword ptr [RSP + 0x10]
XOR EDX,EDX
MOV RSI,RBP
MOV RDI,R15
MOV qword ptr [RSP + 0x20],R10
CALL 0x00107530
MOV R10,qword ptr [RSP + 0x20]
TEST EAX,EAX
JZ 0x00135b5e
MOV R9,qword ptr [RSP + 0x10]
JMP 0x001359b5
MOV RAX,qword ptr [RBP + 0x20]
MOV R13,qword ptr [RBP + 0x10]
MOVZX R11D,word ptr [RSP + 0x7a]
ADD R13,qword ptr [RAX + 0x28]
JMP 0x00135a30
ADD dword ptr [RSP + 0x30],0xa
MOVSXD RSI,dword ptr [RSP + 0x30]
MOV RDI,qword ptr [RSP + 0x18]
SHL RSI,0x3
CALL 0x001072b0
MOV qword ptr [RSP + 0x18],RAX
JMP 0x00135a92
CALL 0x00107320
MOV EDI,EAX
CALL 0x00107720
MOV EDX,0x5
LEA RSI,[0x147688]
MOV RBX,RAX
XOR EDI,EDI
CALL 0x00107230
MOV RSI,RBX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00136630
XOR EAX,EAX
JMP 0x001359fd
CALL 0x00107320
MOV EDI,EAX
CALL 0x00107720
MOV EDX,0x5
LEA RSI,[0x1476a8]
MOV RBX,RAX
JMP 0x00135b43
(translation_unit "undefined8\nFUN_00135900(undefined8 param_1,long *param_2,undefined8 param_3,int param_4,undefined2 *param_5,\n            long param_6,undefined8 param_7)\n\n{\n  long lVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined8 uVar4;\n  long lVar5;\n  undefined8 uVar6;\n  char *pcVar7;\n  undefined1 *puVar8;\n  undefined2 uVar9;\n  long lVar10;\n  long lVar11;\n  long local_c0;\n  int local_a8;\n  undefined1 local_98 [30];\n  undefined2 local_7a;\n  byte local_78;\n  byte local_77;\n  undefined1 local_68 [10];\n  undefined2 local_5e;\n  \n  lVar10 = 0;\n  local_c0 = xmalloc(0x50);\n  local_a8 = 10;\n  while( true ) {\n    if ((param_6 <= param_2[3]) || (param_2[1] <= param_2[2])) break;\n    lVar5 = *(long *)(*param_2 + param_2[2] * 8);\n    iVar2 = bfd_coff_get_syment(param_1,lVar5,local_98);\n    if (iVar2 == 0) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      uVar6 = dcgettext(0,pcVar7,5);\n      FUN_00136630(uVar6,uVar4);\n      return 0;\n    }\n    lVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = lVar1 + 1 + (ulong)local_77;\n    puVar8 = (undefined1 *)0x0;\n    if ((local_77 != 0) &&\n       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }\n    if (local_78 == 0xb) {\nLAB_00135a18:\n      uVar9 = 0;\n      lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;\n    }\n    else {\n      if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }\n      lVar11 = 0;\n      uVar9 = 0;\n    }\nLAB_00135a30:\n    uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1);\n    lVar5 = FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9);\n    if (lVar5 == 0) {\n      return 0;\n    }\n    if (local_a8 <= (int)lVar10 + 1) {\n      local_a8 = local_a8 + 10;\n      local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);\n    }\n    *(long *)(local_c0 + lVar10 * 8) = lVar5;\n    lVar10 = lVar10 + 1;\n  }\n  *(undefined8 *)(local_c0 + (long)(int)lVar10 * 8) = 0;\n  uVar4 = FUN_0012d5b0(param_7,param_4 == 8,*param_5);\n  return uVar4;\n}\n\n" (function_definition "undefined8\nFUN_00135900(undefined8 param_1,long *param_2,undefined8 param_3,int param_4,undefined2 *param_5,\n            long param_6,undefined8 param_7)\n\n{\n  long lVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined8 uVar4;\n  long lVar5;\n  undefined8 uVar6;\n  char *pcVar7;\n  undefined1 *puVar8;\n  undefined2 uVar9;\n  long lVar10;\n  long lVar11;\n  long local_c0;\n  int local_a8;\n  undefined1 local_98 [30];\n  undefined2 local_7a;\n  byte local_78;\n  byte local_77;\n  undefined1 local_68 [10];\n  undefined2 local_5e;\n  \n  lVar10 = 0;\n  local_c0 = xmalloc(0x50);\n  local_a8 = 10;\n  while( true ) {\n    if ((param_6 <= param_2[3]) || (param_2[1] <= param_2[2])) break;\n    lVar5 = *(long *)(*param_2 + param_2[2] * 8);\n    iVar2 = bfd_coff_get_syment(param_1,lVar5,local_98);\n    if (iVar2 == 0) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      uVar6 = dcgettext(0,pcVar7,5);\n      FUN_00136630(uVar6,uVar4);\n      return 0;\n    }\n    lVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = lVar1 + 1 + (ulong)local_77;\n    puVar8 = (undefined1 *)0x0;\n    if ((local_77 != 0) &&\n       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }\n    if (local_78 == 0xb) {\nLAB_00135a18:\n      uVar9 = 0;\n      lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;\n    }\n    else {\n      if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }\n      lVar11 = 0;\n      uVar9 = 0;\n    }\nLAB_00135a30:\n    uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1);\n    lVar5 = FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9);\n    if (lVar5 == 0) {\n      return 0;\n    }\n    if (local_a8 <= (int)lVar10 + 1) {\n      local_a8 = local_a8 + 10;\n      local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);\n    }\n    *(long *)(local_c0 + lVar10 * 8) = lVar5;\n    lVar10 = lVar10 + 1;\n  }\n  *(undefined8 *)(local_c0 + (long)(int)lVar10 * 8) = 0;\n  uVar4 = FUN_0012d5b0(param_7,param_4 == 8,*param_5);\n  return uVar4;\n}" type_identifier (function_declarator "FUN_00135900(undefined8 param_1,long *param_2,undefined8 param_3,int param_4,undefined2 *param_5,\n            long param_6,undefined8 param_7)" identifier (parameter_list "(undefined8 param_1,long *param_2,undefined8 param_3,int param_4,undefined2 *param_5,\n            long param_6,undefined8 param_7)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "undefined2 *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "long param_6" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_7" type_identifier identifier) ))) (compound_statement "{\n  long lVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined8 uVar4;\n  long lVar5;\n  undefined8 uVar6;\n  char *pcVar7;\n  undefined1 *puVar8;\n  undefined2 uVar9;\n  long lVar10;\n  long lVar11;\n  long local_c0;\n  int local_a8;\n  undefined1 local_98 [30];\n  undefined2 local_7a;\n  byte local_78;\n  byte local_77;\n  undefined1 local_68 [10];\n  undefined2 local_5e;\n  \n  lVar10 = 0;\n  local_c0 = xmalloc(0x50);\n  local_a8 = 10;\n  while( true ) {\n    if ((param_6 <= param_2[3]) || (param_2[1] <= param_2[2])) break;\n    lVar5 = *(long *)(*param_2 + param_2[2] * 8);\n    iVar2 = bfd_coff_get_syment(param_1,lVar5,local_98);\n    if (iVar2 == 0) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      uVar6 = dcgettext(0,pcVar7,5);\n      FUN_00136630(uVar6,uVar4);\n      return 0;\n    }\n    lVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = lVar1 + 1 + (ulong)local_77;\n    puVar8 = (undefined1 *)0x0;\n    if ((local_77 != 0) &&\n       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }\n    if (local_78 == 0xb) {\nLAB_00135a18:\n      uVar9 = 0;\n      lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;\n    }\n    else {\n      if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }\n      lVar11 = 0;\n      uVar9 = 0;\n    }\nLAB_00135a30:\n    uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1);\n    lVar5 = FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9);\n    if (lVar5 == 0) {\n      return 0;\n    }\n    if (local_a8 <= (int)lVar10 + 1) {\n      local_a8 = local_a8 + 10;\n      local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);\n    }\n    *(long *)(local_c0 + lVar10 * 8) = lVar5;\n    lVar10 = lVar10 + 1;\n  }\n  *(undefined8 *)(local_c0 + (long)(int)lVar10 * 8) = 0;\n  uVar4 = FUN_0012d5b0(param_7,param_4 == 8,*param_5);\n  return uVar4;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "undefined1 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined2 uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_c0;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_a8;" primitive_type identifier ;) (declaration "undefined1 local_98 [30];" type_identifier (array_declarator "local_98 [30]" identifier [ number_literal ]) ;) (declaration "undefined2 local_7a;" type_identifier identifier ;) (declaration "byte local_78;" type_identifier identifier ;) (declaration "byte local_77;" type_identifier identifier ;) (declaration "undefined1 local_68 [10];" type_identifier (array_declarator "local_68 [10]" identifier [ number_literal ]) ;) (declaration "undefined2 local_5e;" type_identifier identifier ;) (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) (expression_statement "local_c0 = xmalloc(0x50);" (assignment_expression "local_c0 = xmalloc(0x50)" identifier = (call_expression "xmalloc(0x50)" identifier (argument_list "(0x50)" ( number_literal )))) ;) (expression_statement "local_a8 = 10;" (assignment_expression "local_a8 = 10" identifier = number_literal) ;) (while_statement "while( true ) {\n    if ((param_6 <= param_2[3]) || (param_2[1] <= param_2[2])) break;\n    lVar5 = *(long *)(*param_2 + param_2[2] * 8);\n    iVar2 = bfd_coff_get_syment(param_1,lVar5,local_98);\n    if (iVar2 == 0) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      uVar6 = dcgettext(0,pcVar7,5);\n      FUN_00136630(uVar6,uVar4);\n      return 0;\n    }\n    lVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = lVar1 + 1 + (ulong)local_77;\n    puVar8 = (undefined1 *)0x0;\n    if ((local_77 != 0) &&\n       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }\n    if (local_78 == 0xb) {\nLAB_00135a18:\n      uVar9 = 0;\n      lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;\n    }\n    else {\n      if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }\n      lVar11 = 0;\n      uVar9 = 0;\n    }\nLAB_00135a30:\n    uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1);\n    lVar5 = FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9);\n    if (lVar5 == 0) {\n      return 0;\n    }\n    if (local_a8 <= (int)lVar10 + 1) {\n      local_a8 = local_a8 + 10;\n      local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);\n    }\n    *(long *)(local_c0 + lVar10 * 8) = lVar5;\n    lVar10 = lVar10 + 1;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if ((param_6 <= param_2[3]) || (param_2[1] <= param_2[2])) break;\n    lVar5 = *(long *)(*param_2 + param_2[2] * 8);\n    iVar2 = bfd_coff_get_syment(param_1,lVar5,local_98);\n    if (iVar2 == 0) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      uVar6 = dcgettext(0,pcVar7,5);\n      FUN_00136630(uVar6,uVar4);\n      return 0;\n    }\n    lVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = lVar1 + 1 + (ulong)local_77;\n    puVar8 = (undefined1 *)0x0;\n    if ((local_77 != 0) &&\n       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }\n    if (local_78 == 0xb) {\nLAB_00135a18:\n      uVar9 = 0;\n      lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;\n    }\n    else {\n      if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }\n      lVar11 = 0;\n      uVar9 = 0;\n    }\nLAB_00135a30:\n    uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1);\n    lVar5 = FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9);\n    if (lVar5 == 0) {\n      return 0;\n    }\n    if (local_a8 <= (int)lVar10 + 1) {\n      local_a8 = local_a8 + 10;\n      local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);\n    }\n    *(long *)(local_c0 + lVar10 * 8) = lVar5;\n    lVar10 = lVar10 + 1;\n  }" { (if_statement "if ((param_6 <= param_2[3]) || (param_2[1] <= param_2[2])) break;" if (parenthesized_expression "((param_6 <= param_2[3]) || (param_2[1] <= param_2[2]))" ( (binary_expression "(param_6 <= param_2[3]) || (param_2[1] <= param_2[2])" (parenthesized_expression "(param_6 <= param_2[3])" ( (binary_expression "param_6 <= param_2[3]" identifier <= (subscript_expression "param_2[3]" identifier [ number_literal ])) )) || (parenthesized_expression "(param_2[1] <= param_2[2])" ( (binary_expression "param_2[1] <= param_2[2]" (subscript_expression "param_2[1]" identifier [ number_literal ]) <= (subscript_expression "param_2[2]" identifier [ number_literal ])) ))) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = *(long *)(*param_2 + param_2[2] * 8);" (assignment_expression "lVar5 = *(long *)(*param_2 + param_2[2] * 8)" identifier = (pointer_expression "*(long *)(*param_2 + param_2[2] * 8)" * (cast_expression "(long *)(*param_2 + param_2[2] * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + param_2[2] * 8)" ( (binary_expression "*param_2 + param_2[2] * 8" (pointer_expression "*param_2" * identifier) + (binary_expression "param_2[2] * 8" (subscript_expression "param_2[2]" identifier [ number_literal ]) * number_literal)) ))))) ;) (expression_statement "iVar2 = bfd_coff_get_syment(param_1,lVar5,local_98);" (assignment_expression "iVar2 = bfd_coff_get_syment(param_1,lVar5,local_98)" identifier = (call_expression "bfd_coff_get_syment(param_1,lVar5,local_98)" identifier (argument_list "(param_1,lVar5,local_98)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      uVar6 = dcgettext(0,pcVar7,5);\n      FUN_00136630(uVar6,uVar4);\n      return 0;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      uVar6 = dcgettext(0,pcVar7,5);\n      FUN_00136630(uVar6,uVar4);\n      return 0;\n    }" { (expression_statement "uVar3 = bfd_get_error();" (assignment_expression "uVar3 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar4 = bfd_errmsg(uVar3);" (assignment_expression "uVar4 = bfd_errmsg(uVar3)" identifier = (call_expression "bfd_errmsg(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "pcVar7 = "bfd_coff_get_syment failed: %s";" (assignment_expression "pcVar7 = "bfd_coff_get_syment failed: %s"" identifier = (string_literal ""bfd_coff_get_syment failed: %s"" " string_content ")) ;) (labeled_statement "LAB_00135b43:\n      uVar6 = dcgettext(0,pcVar7,5);" statement_identifier : (expression_statement "uVar6 = dcgettext(0,pcVar7,5);" (assignment_expression "uVar6 = dcgettext(0,pcVar7,5)" identifier = (call_expression "dcgettext(0,pcVar7,5)" identifier (argument_list "(0,pcVar7,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_00136630(uVar6,uVar4);" (call_expression "FUN_00136630(uVar6,uVar4)" identifier (argument_list "(uVar6,uVar4)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar1 = param_2[3];" (assignment_expression "lVar1 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "param_2[2] = param_2[2] + 1;" (assignment_expression "param_2[2] = param_2[2] + 1" (subscript_expression "param_2[2]" identifier [ number_literal ]) = (binary_expression "param_2[2] + 1" (subscript_expression "param_2[2]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "param_2[3] = lVar1 + 1 + (ulong)local_77;" (assignment_expression "param_2[3] = lVar1 + 1 + (ulong)local_77" (subscript_expression "param_2[3]" identifier [ number_literal ]) = (binary_expression "lVar1 + 1 + (ulong)local_77" (binary_expression "lVar1 + 1" identifier + number_literal) + (cast_expression "(ulong)local_77" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "puVar8 = (undefined1 *)0x0;" (assignment_expression "puVar8 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((local_77 != 0) &&\n       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }" if (parenthesized_expression "((local_77 != 0) &&\n       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0))" ( (binary_expression "(local_77 != 0) &&\n       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)" (parenthesized_expression "(local_77 != 0)" ( (binary_expression "local_77 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)" ( (comma_expression "iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0" (assignment_expression "iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68)" identifier = (call_expression "bfd_coff_get_auxent(param_1,lVar5,0,local_68)" identifier (argument_list "(param_1,lVar5,0,local_68)" ( identifier , identifier , number_literal , identifier )))) , (comma_expression "puVar8 = local_68, iVar2 == 0" (assignment_expression "puVar8 = local_68" identifier = identifier) , (binary_expression "iVar2 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }" { (expression_statement "uVar3 = bfd_get_error();" (assignment_expression "uVar3 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar4 = bfd_errmsg(uVar3);" (assignment_expression "uVar4 = bfd_errmsg(uVar3)" identifier = (call_expression "bfd_errmsg(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "pcVar7 = "bfd_coff_get_auxent failed: %s";" (assignment_expression "pcVar7 = "bfd_coff_get_auxent failed: %s"" identifier = (string_literal ""bfd_coff_get_auxent failed: %s"" " string_content ")) ;) (goto_statement "goto LAB_00135b43;" goto statement_identifier ;) })) (if_statement "if (local_78 == 0xb) {\nLAB_00135a18:\n      uVar9 = 0;\n      lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;\n    }\n    else {\n      if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }\n      lVar11 = 0;\n      uVar9 = 0;\n    }" if (parenthesized_expression "(local_78 == 0xb)" ( (binary_expression "local_78 == 0xb" identifier == number_literal) )) (compound_statement "{\nLAB_00135a18:\n      uVar9 = 0;\n      lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;\n    }" { (labeled_statement "LAB_00135a18:\n      uVar9 = 0;" statement_identifier : (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;)) (expression_statement "lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;" (assignment_expression "lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8" identifier = (binary_expression "(*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8" (parenthesized_expression "(*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28))" ( (binary_expression "*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)" (pointer_expression "*(long *)(lVar5 + 0x10)" * (cast_expression "(long *)(lVar5 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) )))) + (pointer_expression "*(long *)(*(long *)(lVar5 + 0x20) + 0x28)" * (cast_expression "(long *)(*(long *)(lVar5 + 0x20) + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar5 + 0x20) + 0x28)" ( (binary_expression "*(long *)(lVar5 + 0x20) + 0x28" (pointer_expression "*(long *)(lVar5 + 0x20)" * (cast_expression "(long *)(lVar5 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x20)" ( (binary_expression "lVar5 + 0x20" identifier + number_literal) )))) + number_literal) ))))) )) * number_literal)) ;) }) (else_clause "else {\n      if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }\n      lVar11 = 0;\n      uVar9 = 0;\n    }" else (compound_statement "{\n      if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }\n      lVar11 = 0;\n      uVar9 = 0;\n    }" { (if_statement "if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }" if (parenthesized_expression "(local_78 < 0xc)" ( (binary_expression "local_78 < 0xc" identifier < number_literal) )) (compound_statement "{\n        if (local_78 == 8) goto LAB_00135a18;\n      }" { (if_statement "if (local_78 == 8) goto LAB_00135a18;" if (parenthesized_expression "(local_78 == 8)" ( (binary_expression "local_78 == 8" identifier == number_literal) )) (goto_statement "goto LAB_00135a18;" goto statement_identifier ;)) }) (else_clause "else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }" else (compound_statement "{\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }" { (if_statement "if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }" if (parenthesized_expression "(local_78 == 0x12)" ( (binary_expression "local_78 == 0x12" identifier == number_literal) )) (compound_statement "{\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }" { (expression_statement "lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);" (assignment_expression "lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)" identifier = (binary_expression "*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)" (pointer_expression "*(long *)(lVar5 + 0x10)" * (cast_expression "(long *)(lVar5 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) )))) + (pointer_expression "*(long *)(*(long *)(lVar5 + 0x20) + 0x28)" * (cast_expression "(long *)(*(long *)(lVar5 + 0x20) + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar5 + 0x20) + 0x28)" ( (binary_expression "*(long *)(lVar5 + 0x20) + 0x28" (pointer_expression "*(long *)(lVar5 + 0x20)" * (cast_expression "(long *)(lVar5 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x20)" ( (binary_expression "lVar5 + 0x20" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "uVar9 = local_5e;" (assignment_expression "uVar9 = local_5e" identifier = identifier) ;) (goto_statement "goto LAB_00135a30;" goto statement_identifier ;) })) (if_statement "if (local_78 == 0x66) break;" if (parenthesized_expression "(local_78 == 0x66)" ( (binary_expression "local_78 == 0x66" identifier == number_literal) )) (break_statement "break;" break ;)) }))) (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_00135a30:\n    uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1);" statement_identifier : (expression_statement "uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1);" (assignment_expression "uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1)" identifier = (call_expression "FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1)" identifier (argument_list "(param_1,param_2,param_3,lVar1,local_7a,puVar8,1)" ( identifier , identifier , identifier , identifier , identifier , identifier , number_literal )))) ;)) (expression_statement "lVar5 = FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9);" (assignment_expression "lVar5 = FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9)" identifier = (call_expression "FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9)" identifier (argument_list "(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9)" ( identifier , (pointer_expression "*(undefined8 *)(lVar5 + 8)" * (cast_expression "(undefined8 *)(lVar5 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 8)" ( (binary_expression "lVar5 + 8" identifier + number_literal) )))) , identifier , identifier , identifier )))) ;) (if_statement "if (lVar5 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (local_a8 <= (int)lVar10 + 1) {\n      local_a8 = local_a8 + 10;\n      local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);\n    }" if (parenthesized_expression "(local_a8 <= (int)lVar10 + 1)" ( (binary_expression "local_a8 <= (int)lVar10 + 1" identifier <= (binary_expression "(int)lVar10 + 1" (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) )) (compound_statement "{\n      local_a8 = local_a8 + 10;\n      local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);\n    }" { (expression_statement "local_a8 = local_a8 + 10;" (assignment_expression "local_a8 = local_a8 + 10" identifier = (binary_expression "local_a8 + 10" identifier + number_literal)) ;) (expression_statement "local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);" (assignment_expression "local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7)" identifier = (call_expression "xrealloc(local_c0,(long)local_a8 << 3,param_7)" identifier (argument_list "(local_c0,(long)local_a8 << 3,param_7)" ( identifier , (binary_expression "(long)local_a8 << 3" (cast_expression "(long)local_a8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) << number_literal) , identifier )))) ;) })) (expression_statement "*(long *)(local_c0 + lVar10 * 8) = lVar5;" (assignment_expression "*(long *)(local_c0 + lVar10 * 8) = lVar5" (pointer_expression "*(long *)(local_c0 + lVar10 * 8)" * (cast_expression "(long *)(local_c0 + lVar10 * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c0 + lVar10 * 8)" ( (binary_expression "local_c0 + lVar10 * 8" identifier + (binary_expression "lVar10 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" identifier = (binary_expression "lVar10 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined8 *)(local_c0 + (long)(int)lVar10 * 8) = 0;" (assignment_expression "*(undefined8 *)(local_c0 + (long)(int)lVar10 * 8) = 0" (pointer_expression "*(undefined8 *)(local_c0 + (long)(int)lVar10 * 8)" * (cast_expression "(undefined8 *)(local_c0 + (long)(int)lVar10 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c0 + (long)(int)lVar10 * 8)" ( (binary_expression "local_c0 + (long)(int)lVar10 * 8" identifier + (binary_expression "(long)(int)lVar10 * 8" (cast_expression "(long)(int)lVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier)) * number_literal)) )))) = number_literal) ;) (expression_statement "uVar4 = FUN_0012d5b0(param_7,param_4 == 8,*param_5);" (assignment_expression "uVar4 = FUN_0012d5b0(param_7,param_4 == 8,*param_5)" identifier = (call_expression "FUN_0012d5b0(param_7,param_4 == 8,*param_5)" identifier (argument_list "(param_7,param_4 == 8,*param_5)" ( identifier , (binary_expression "param_4 == 8" identifier == number_literal) , (pointer_expression "*param_5" * identifier) )))) ;) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit "/* DWARF original prototype: debug_type parse_coff_struct_type(bfd * abfd, coff_symbols * symbols,\n   coff_types * types, int ntype, internal_auxent * pauxent, void * dhandle, internal_auxent *\n   pauxent) */\n\ndebug_type\nparse_coff_struct_type\n          (bfd *abfd,coff_symbols *symbols,coff_types *types,int ntype,internal_auxent *pauxent,\n          void *dhandle,internal_auxent *pauxent_1)\n\n{\n  asymbol *paVar1;\n  long coff_symno;\n  int iVar2;\n  undefined4 uVar3;\n  debug_type_conflict pdVar4;\n  debug_type type;\n  debug_field pdVar5;\n  undefined8 uVar6;\n  char *pcVar7;\n  internal_auxent *pauxent_00;\n  bfd_vma bitsize;\n  long lVar8;\n  bfd_vma bitpos;\n  internal_auxent *piVar9;\n  debug_field *local_c0;\n  int local_a8;\n  internal_syment syment;\n  internal_auxent auxent;\n  \n  lVar8 = 0;\n  local_c0 = (debug_field *)xmalloc(0x50);\n  local_a8 = 10;\n  while( true ) {\n    if (((long)dhandle <= symbols->coff_symno) || (symbols->symcount <= symbols->symno)) break;\n    paVar1 = symbols->syms[symbols->symno];\n    iVar2 = bfd_coff_get_syment(abfd,paVar1,&syment);\n    if (iVar2 == 0) {\n      uVar3 = bfd_get_error();\n      uVar6 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      pcVar7 = (char *)dcgettext(0,pcVar7,5);\n      non_fatal(pcVar7,uVar6);\n      return (debug_type)0x0;\n    }\n    coff_symno = symbols->coff_symno;\n    symbols->symno = symbols->symno + 1;\n    symbols->coff_symno = coff_symno + 1 + (ulong)syment.n_numaux;\n    pauxent_00 = (internal_auxent *)0x0;\n    if ((syment.n_numaux != '\0') &&\n       (iVar2 = bfd_coff_get_auxent(abfd,paVar1,0,&auxent), pauxent_00 = &auxent, iVar2 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar6 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }\n    if (syment.n_sclass == '\v') {\nLAB_00135a18:\n      bitsize = 0;\n      bitpos = (paVar1->value + paVar1->section->vma) * 8;\n    }\n    else {\n      if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00135a18;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          bitpos = paVar1->value + paVar1->section->vma;\n          goto LAB_00135a30;\n        }\n        if (syment.n_sclass == 'f') break;\n      }\n      bitsize = 0;\n      bitpos = 0;\n    }\nLAB_00135a30:\n    piVar9 = pauxent_1;\n    type = parse_coff_type(abfd,symbols,types,coff_symno,(uint)syment.n_type,pauxent_00,1,pauxent_1)\n    ;\n    pdVar5 = debug_make_field(pauxent_1,paVar1->name,type,bitpos,bitsize,DEBUG_VISIBILITY_PUBLIC);\n    if (pdVar5 == (debug_field)0x0) {\n      return (debug_type)0x0;\n    }\n    if (local_a8 <= (int)lVar8 + 1) {\n      local_a8 = local_a8 + 10;\n      local_c0 = (debug_field *)xrealloc(local_c0,(long)local_a8 << 3,piVar9);\n    }\n    local_c0[lVar8] = pdVar5;\n    lVar8 = lVar8 + 1;\n  }\n  local_c0[(int)lVar8] = (debug_field)0x0;\n  pdVar4 = debug_make_struct_type(pauxent_1,(uint)(ntype == 8),(ulong)*(ushort *)pauxent,local_c0);\n  return pdVar4;\n}\n\n" comment (function_definition "debug_type\nparse_coff_struct_type\n          (bfd *abfd,coff_symbols *symbols,coff_types *types,int ntype,internal_auxent *pauxent,\n          void *dhandle,internal_auxent *pauxent_1)\n\n{\n  asymbol *paVar1;\n  long coff_symno;\n  int iVar2;\n  undefined4 uVar3;\n  debug_type_conflict pdVar4;\n  debug_type type;\n  debug_field pdVar5;\n  undefined8 uVar6;\n  char *pcVar7;\n  internal_auxent *pauxent_00;\n  bfd_vma bitsize;\n  long lVar8;\n  bfd_vma bitpos;\n  internal_auxent *piVar9;\n  debug_field *local_c0;\n  int local_a8;\n  internal_syment syment;\n  internal_auxent auxent;\n  \n  lVar8 = 0;\n  local_c0 = (debug_field *)xmalloc(0x50);\n  local_a8 = 10;\n  while( true ) {\n    if (((long)dhandle <= symbols->coff_symno) || (symbols->symcount <= symbols->symno)) break;\n    paVar1 = symbols->syms[symbols->symno];\n    iVar2 = bfd_coff_get_syment(abfd,paVar1,&syment);\n    if (iVar2 == 0) {\n      uVar3 = bfd_get_error();\n      uVar6 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      pcVar7 = (char *)dcgettext(0,pcVar7,5);\n      non_fatal(pcVar7,uVar6);\n      return (debug_type)0x0;\n    }\n    coff_symno = symbols->coff_symno;\n    symbols->symno = symbols->symno + 1;\n    symbols->coff_symno = coff_symno + 1 + (ulong)syment.n_numaux;\n    pauxent_00 = (internal_auxent *)0x0;\n    if ((syment.n_numaux != '\0') &&\n       (iVar2 = bfd_coff_get_auxent(abfd,paVar1,0,&auxent), pauxent_00 = &auxent, iVar2 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar6 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }\n    if (syment.n_sclass == '\v') {\nLAB_00135a18:\n      bitsize = 0;\n      bitpos = (paVar1->value + paVar1->section->vma) * 8;\n    }\n    else {\n      if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00135a18;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          bitpos = paVar1->value + paVar1->section->vma;\n          goto LAB_00135a30;\n        }\n        if (syment.n_sclass == 'f') break;\n      }\n      bitsize = 0;\n      bitpos = 0;\n    }\nLAB_00135a30:\n    piVar9 = pauxent_1;\n    type = parse_coff_type(abfd,symbols,types,coff_symno,(uint)syment.n_type,pauxent_00,1,pauxent_1)\n    ;\n    pdVar5 = debug_make_field(pauxent_1,paVar1->name,type,bitpos,bitsize,DEBUG_VISIBILITY_PUBLIC);\n    if (pdVar5 == (debug_field)0x0) {\n      return (debug_type)0x0;\n    }\n    if (local_a8 <= (int)lVar8 + 1) {\n      local_a8 = local_a8 + 10;\n      local_c0 = (debug_field *)xrealloc(local_c0,(long)local_a8 << 3,piVar9);\n    }\n    local_c0[lVar8] = pdVar5;\n    lVar8 = lVar8 + 1;\n  }\n  local_c0[(int)lVar8] = (debug_field)0x0;\n  pdVar4 = debug_make_struct_type(pauxent_1,(uint)(ntype == 8),(ulong)*(ushort *)pauxent,local_c0);\n  return pdVar4;\n}" type_identifier (function_declarator "parse_coff_struct_type\n          (bfd *abfd,coff_symbols *symbols,coff_types *types,int ntype,internal_auxent *pauxent,\n          void *dhandle,internal_auxent *pauxent_1)" identifier (parameter_list "(bfd *abfd,coff_symbols *symbols,coff_types *types,int ntype,internal_auxent *pauxent,\n          void *dhandle,internal_auxent *pauxent_1)" ( (parameter_declaration "bfd *abfd" type_identifier (pointer_declarator "*abfd" * identifier)) , (parameter_declaration "coff_symbols *symbols" type_identifier (pointer_declarator "*symbols" * identifier)) , (parameter_declaration "coff_types *types" type_identifier (pointer_declarator "*types" * identifier)) , (parameter_declaration "int ntype" primitive_type identifier) , (parameter_declaration "internal_auxent *pauxent" type_identifier (pointer_declarator "*pauxent" * identifier)) , (parameter_declaration "void *dhandle" primitive_type (pointer_declarator "*dhandle" * identifier)) , (parameter_declaration "internal_auxent *pauxent_1" type_identifier (pointer_declarator "*pauxent_1" * identifier)) ))) (compound_statement "{\n  asymbol *paVar1;\n  long coff_symno;\n  int iVar2;\n  undefined4 uVar3;\n  debug_type_conflict pdVar4;\n  debug_type type;\n  debug_field pdVar5;\n  undefined8 uVar6;\n  char *pcVar7;\n  internal_auxent *pauxent_00;\n  bfd_vma bitsize;\n  long lVar8;\n  bfd_vma bitpos;\n  internal_auxent *piVar9;\n  debug_field *local_c0;\n  int local_a8;\n  internal_syment syment;\n  internal_auxent auxent;\n  \n  lVar8 = 0;\n  local_c0 = (debug_field *)xmalloc(0x50);\n  local_a8 = 10;\n  while( true ) {\n    if (((long)dhandle <= symbols->coff_symno) || (symbols->symcount <= symbols->symno)) break;\n    paVar1 = symbols->syms[symbols->symno];\n    iVar2 = bfd_coff_get_syment(abfd,paVar1,&syment);\n    if (iVar2 == 0) {\n      uVar3 = bfd_get_error();\n      uVar6 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      pcVar7 = (char *)dcgettext(0,pcVar7,5);\n      non_fatal(pcVar7,uVar6);\n      return (debug_type)0x0;\n    }\n    coff_symno = symbols->coff_symno;\n    symbols->symno = symbols->symno + 1;\n    symbols->coff_symno = coff_symno + 1 + (ulong)syment.n_numaux;\n    pauxent_00 = (internal_auxent *)0x0;\n    if ((syment.n_numaux != '\0') &&\n       (iVar2 = bfd_coff_get_auxent(abfd,paVar1,0,&auxent), pauxent_00 = &auxent, iVar2 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar6 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }\n    if (syment.n_sclass == '\v') {\nLAB_00135a18:\n      bitsize = 0;\n      bitpos = (paVar1->value + paVar1->section->vma) * 8;\n    }\n    else {\n      if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00135a18;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          bitpos = paVar1->value + paVar1->section->vma;\n          goto LAB_00135a30;\n        }\n        if (syment.n_sclass == 'f') break;\n      }\n      bitsize = 0;\n      bitpos = 0;\n    }\nLAB_00135a30:\n    piVar9 = pauxent_1;\n    type = parse_coff_type(abfd,symbols,types,coff_symno,(uint)syment.n_type,pauxent_00,1,pauxent_1)\n    ;\n    pdVar5 = debug_make_field(pauxent_1,paVar1->name,type,bitpos,bitsize,DEBUG_VISIBILITY_PUBLIC);\n    if (pdVar5 == (debug_field)0x0) {\n      return (debug_type)0x0;\n    }\n    if (local_a8 <= (int)lVar8 + 1) {\n      local_a8 = local_a8 + 10;\n      local_c0 = (debug_field *)xrealloc(local_c0,(long)local_a8 << 3,piVar9);\n    }\n    local_c0[lVar8] = pdVar5;\n    lVar8 = lVar8 + 1;\n  }\n  local_c0[(int)lVar8] = (debug_field)0x0;\n  pdVar4 = debug_make_struct_type(pauxent_1,(uint)(ntype == 8),(ulong)*(ushort *)pauxent,local_c0);\n  return pdVar4;\n}" { (declaration "asymbol *paVar1;" type_identifier (pointer_declarator "*paVar1" * identifier) ;) (declaration "long coff_symno;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "debug_type_conflict pdVar4;" type_identifier identifier ;) (declaration "debug_type type;" type_identifier identifier ;) (declaration "debug_field pdVar5;" type_identifier identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "internal_auxent *pauxent_00;" type_identifier (pointer_declarator "*pauxent_00" * identifier) ;) (declaration "bfd_vma bitsize;" type_identifier identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "bfd_vma bitpos;" type_identifier identifier ;) (declaration "internal_auxent *piVar9;" type_identifier (pointer_declarator "*piVar9" * identifier) ;) (declaration "debug_field *local_c0;" type_identifier (pointer_declarator "*local_c0" * identifier) ;) (declaration "int local_a8;" primitive_type identifier ;) (declaration "internal_syment syment;" type_identifier identifier ;) (declaration "internal_auxent auxent;" type_identifier identifier ;) (expression_statement "lVar8 = 0;" (assignment_expression "lVar8 = 0" identifier = number_literal) ;) (expression_statement "local_c0 = (debug_field *)xmalloc(0x50);" (assignment_expression "local_c0 = (debug_field *)xmalloc(0x50)" identifier = (cast_expression "(debug_field *)xmalloc(0x50)" ( (type_descriptor "debug_field *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "local_a8 = 10;" (assignment_expression "local_a8 = 10" identifier = number_literal) ;) (while_statement "while( true ) {\n    if (((long)dhandle <= symbols->coff_symno) || (symbols->symcount <= symbols->symno)) break;\n    paVar1 = symbols->syms[symbols->symno];\n    iVar2 = bfd_coff_get_syment(abfd,paVar1,&syment);\n    if (iVar2 == 0) {\n      uVar3 = bfd_get_error();\n      uVar6 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      pcVar7 = (char *)dcgettext(0,pcVar7,5);\n      non_fatal(pcVar7,uVar6);\n      return (debug_type)0x0;\n    }\n    coff_symno = symbols->coff_symno;\n    symbols->symno = symbols->symno + 1;\n    symbols->coff_symno = coff_symno + 1 + (ulong)syment.n_numaux;\n    pauxent_00 = (internal_auxent *)0x0;\n    if ((syment.n_numaux != '\0') &&\n       (iVar2 = bfd_coff_get_auxent(abfd,paVar1,0,&auxent), pauxent_00 = &auxent, iVar2 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar6 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }\n    if (syment.n_sclass == '\v') {\nLAB_00135a18:\n      bitsize = 0;\n      bitpos = (paVar1->value + paVar1->section->vma) * 8;\n    }\n    else {\n      if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00135a18;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          bitpos = paVar1->value + paVar1->section->vma;\n          goto LAB_00135a30;\n        }\n        if (syment.n_sclass == 'f') break;\n      }\n      bitsize = 0;\n      bitpos = 0;\n    }\nLAB_00135a30:\n    piVar9 = pauxent_1;\n    type = parse_coff_type(abfd,symbols,types,coff_symno,(uint)syment.n_type,pauxent_00,1,pauxent_1)\n    ;\n    pdVar5 = debug_make_field(pauxent_1,paVar1->name,type,bitpos,bitsize,DEBUG_VISIBILITY_PUBLIC);\n    if (pdVar5 == (debug_field)0x0) {\n      return (debug_type)0x0;\n    }\n    if (local_a8 <= (int)lVar8 + 1) {\n      local_a8 = local_a8 + 10;\n      local_c0 = (debug_field *)xrealloc(local_c0,(long)local_a8 << 3,piVar9);\n    }\n    local_c0[lVar8] = pdVar5;\n    lVar8 = lVar8 + 1;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (((long)dhandle <= symbols->coff_symno) || (symbols->symcount <= symbols->symno)) break;\n    paVar1 = symbols->syms[symbols->symno];\n    iVar2 = bfd_coff_get_syment(abfd,paVar1,&syment);\n    if (iVar2 == 0) {\n      uVar3 = bfd_get_error();\n      uVar6 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      pcVar7 = (char *)dcgettext(0,pcVar7,5);\n      non_fatal(pcVar7,uVar6);\n      return (debug_type)0x0;\n    }\n    coff_symno = symbols->coff_symno;\n    symbols->symno = symbols->symno + 1;\n    symbols->coff_symno = coff_symno + 1 + (ulong)syment.n_numaux;\n    pauxent_00 = (internal_auxent *)0x0;\n    if ((syment.n_numaux != '\0') &&\n       (iVar2 = bfd_coff_get_auxent(abfd,paVar1,0,&auxent), pauxent_00 = &auxent, iVar2 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar6 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }\n    if (syment.n_sclass == '\v') {\nLAB_00135a18:\n      bitsize = 0;\n      bitpos = (paVar1->value + paVar1->section->vma) * 8;\n    }\n    else {\n      if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00135a18;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          bitpos = paVar1->value + paVar1->section->vma;\n          goto LAB_00135a30;\n        }\n        if (syment.n_sclass == 'f') break;\n      }\n      bitsize = 0;\n      bitpos = 0;\n    }\nLAB_00135a30:\n    piVar9 = pauxent_1;\n    type = parse_coff_type(abfd,symbols,types,coff_symno,(uint)syment.n_type,pauxent_00,1,pauxent_1)\n    ;\n    pdVar5 = debug_make_field(pauxent_1,paVar1->name,type,bitpos,bitsize,DEBUG_VISIBILITY_PUBLIC);\n    if (pdVar5 == (debug_field)0x0) {\n      return (debug_type)0x0;\n    }\n    if (local_a8 <= (int)lVar8 + 1) {\n      local_a8 = local_a8 + 10;\n      local_c0 = (debug_field *)xrealloc(local_c0,(long)local_a8 << 3,piVar9);\n    }\n    local_c0[lVar8] = pdVar5;\n    lVar8 = lVar8 + 1;\n  }" { (if_statement "if (((long)dhandle <= symbols->coff_symno) || (symbols->symcount <= symbols->symno)) break;" if (parenthesized_expression "(((long)dhandle <= symbols->coff_symno) || (symbols->symcount <= symbols->symno))" ( (binary_expression "((long)dhandle <= symbols->coff_symno) || (symbols->symcount <= symbols->symno)" (parenthesized_expression "((long)dhandle <= symbols->coff_symno)" ( (binary_expression "(long)dhandle <= symbols->coff_symno" (cast_expression "(long)dhandle" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) <= (field_expression "symbols->coff_symno" identifier -> field_identifier)) )) || (parenthesized_expression "(symbols->symcount <= symbols->symno)" ( (binary_expression "symbols->symcount <= symbols->symno" (field_expression "symbols->symcount" identifier -> field_identifier) <= (field_expression "symbols->symno" identifier -> field_identifier)) ))) )) (break_statement "break;" break ;)) (expression_statement "paVar1 = symbols->syms[symbols->symno];" (assignment_expression "paVar1 = symbols->syms[symbols->symno]" identifier = (subscript_expression "symbols->syms[symbols->symno]" (field_expression "symbols->syms" identifier -> field_identifier) [ (field_expression "symbols->symno" identifier -> field_identifier) ])) ;) (expression_statement "iVar2 = bfd_coff_get_syment(abfd,paVar1,&syment);" (assignment_expression "iVar2 = bfd_coff_get_syment(abfd,paVar1,&syment)" identifier = (call_expression "bfd_coff_get_syment(abfd,paVar1,&syment)" identifier (argument_list "(abfd,paVar1,&syment)" ( identifier , identifier , (pointer_expression "&syment" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n      uVar3 = bfd_get_error();\n      uVar6 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      pcVar7 = (char *)dcgettext(0,pcVar7,5);\n      non_fatal(pcVar7,uVar6);\n      return (debug_type)0x0;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar3 = bfd_get_error();\n      uVar6 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      pcVar7 = (char *)dcgettext(0,pcVar7,5);\n      non_fatal(pcVar7,uVar6);\n      return (debug_type)0x0;\n    }" { (expression_statement "uVar3 = bfd_get_error();" (assignment_expression "uVar3 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar6 = bfd_errmsg(uVar3);" (assignment_expression "uVar6 = bfd_errmsg(uVar3)" identifier = (call_expression "bfd_errmsg(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "pcVar7 = "bfd_coff_get_syment failed: %s";" (assignment_expression "pcVar7 = "bfd_coff_get_syment failed: %s"" identifier = (string_literal ""bfd_coff_get_syment failed: %s"" " string_content ")) ;) (labeled_statement "LAB_00135b43:\n      pcVar7 = (char *)dcgettext(0,pcVar7,5);" statement_identifier : (expression_statement "pcVar7 = (char *)dcgettext(0,pcVar7,5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,pcVar7,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar7,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar7,5)" identifier (argument_list "(0,pcVar7,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "non_fatal(pcVar7,uVar6);" (call_expression "non_fatal(pcVar7,uVar6)" identifier (argument_list "(pcVar7,uVar6)" ( identifier , identifier ))) ;) (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "coff_symno = symbols->coff_symno;" (assignment_expression "coff_symno = symbols->coff_symno" identifier = (field_expression "symbols->coff_symno" identifier -> field_identifier)) ;) (expression_statement "symbols->symno = symbols->symno + 1;" (assignment_expression "symbols->symno = symbols->symno + 1" (field_expression "symbols->symno" identifier -> field_identifier) = (binary_expression "symbols->symno + 1" (field_expression "symbols->symno" identifier -> field_identifier) + number_literal)) ;) (expression_statement "symbols->coff_symno = coff_symno + 1 + (ulong)syment.n_numaux;" (assignment_expression "symbols->coff_symno = coff_symno + 1 + (ulong)syment.n_numaux" (field_expression "symbols->coff_symno" identifier -> field_identifier) = (binary_expression "coff_symno + 1 + (ulong)syment.n_numaux" (binary_expression "coff_symno + 1" identifier + number_literal) + (cast_expression "(ulong)syment.n_numaux" ( (type_descriptor "ulong" type_identifier) ) (field_expression "syment.n_numaux" identifier . field_identifier)))) ;) (expression_statement "pauxent_00 = (internal_auxent *)0x0;" (assignment_expression "pauxent_00 = (internal_auxent *)0x0" identifier = (cast_expression "(internal_auxent *)0x0" ( (type_descriptor "internal_auxent *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((syment.n_numaux != '\0') &&\n       (iVar2 = bfd_coff_get_auxent(abfd,paVar1,0,&auxent), pauxent_00 = &auxent, iVar2 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar6 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }" if (parenthesized_expression "((syment.n_numaux != '\0') &&\n       (iVar2 = bfd_coff_get_auxent(abfd,paVar1,0,&auxent), pauxent_00 = &auxent, iVar2 == 0))" ( (binary_expression "(syment.n_numaux != '\0') &&\n       (iVar2 = bfd_coff_get_auxent(abfd,paVar1,0,&auxent), pauxent_00 = &auxent, iVar2 == 0)" (parenthesized_expression "(syment.n_numaux != '\0')" ( (binary_expression "syment.n_numaux != '\0'" (field_expression "syment.n_numaux" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(iVar2 = bfd_coff_get_auxent(abfd,paVar1,0,&auxent), pauxent_00 = &auxent, iVar2 == 0)" ( (comma_expression "iVar2 = bfd_coff_get_auxent(abfd,paVar1,0,&auxent), pauxent_00 = &auxent, iVar2 == 0" (assignment_expression "iVar2 = bfd_coff_get_auxent(abfd,paVar1,0,&auxent)" identifier = (call_expression "bfd_coff_get_auxent(abfd,paVar1,0,&auxent)" identifier (argument_list "(abfd,paVar1,0,&auxent)" ( identifier , identifier , number_literal , (pointer_expression "&auxent" & identifier) )))) , (comma_expression "pauxent_00 = &auxent, iVar2 == 0" (assignment_expression "pauxent_00 = &auxent" identifier = (pointer_expression "&auxent" & identifier)) , (binary_expression "iVar2 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n      uVar3 = bfd_get_error();\n      uVar6 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }" { (expression_statement "uVar3 = bfd_get_error();" (assignment_expression "uVar3 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar6 = bfd_errmsg(uVar3);" (assignment_expression "uVar6 = bfd_errmsg(uVar3)" identifier = (call_expression "bfd_errmsg(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "pcVar7 = "bfd_coff_get_auxent failed: %s";" (assignment_expression "pcVar7 = "bfd_coff_get_auxent failed: %s"" identifier = (string_literal ""bfd_coff_get_auxent failed: %s"" " string_content ")) ;) (goto_statement "goto LAB_00135b43;" goto statement_identifier ;) })) (if_statement "if (syment.n_sclass == '\v') {\nLAB_00135a18:\n      bitsize = 0;\n      bitpos = (paVar1->value + paVar1->section->vma) * 8;\n    }\n    else {\n      if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00135a18;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          bitpos = paVar1->value + paVar1->section->vma;\n          goto LAB_00135a30;\n        }\n        if (syment.n_sclass == 'f') break;\n      }\n      bitsize = 0;\n      bitpos = 0;\n    }" if (parenthesized_expression "(syment.n_sclass == '\v')" ( (binary_expression "syment.n_sclass == '\v'" (field_expression "syment.n_sclass" identifier . field_identifier) == (char_literal "'\v'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00135a18:\n      bitsize = 0;\n      bitpos = (paVar1->value + paVar1->section->vma) * 8;\n    }" { (labeled_statement "LAB_00135a18:\n      bitsize = 0;" statement_identifier : (expression_statement "bitsize = 0;" (assignment_expression "bitsize = 0" identifier = number_literal) ;)) (expression_statement "bitpos = (paVar1->value + paVar1->section->vma) * 8;" (assignment_expression "bitpos = (paVar1->value + paVar1->section->vma) * 8" identifier = (binary_expression "(paVar1->value + paVar1->section->vma) * 8" (parenthesized_expression "(paVar1->value + paVar1->section->vma)" ( (binary_expression "paVar1->value + paVar1->section->vma" (field_expression "paVar1->value" identifier -> field_identifier) + (field_expression "paVar1->section->vma" (field_expression "paVar1->section" identifier -> field_identifier) -> field_identifier)) )) * number_literal)) ;) }) (else_clause "else {\n      if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00135a18;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          bitpos = paVar1->value + paVar1->section->vma;\n          goto LAB_00135a30;\n        }\n        if (syment.n_sclass == 'f') break;\n      }\n      bitsize = 0;\n      bitpos = 0;\n    }" else (compound_statement "{\n      if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00135a18;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          bitpos = paVar1->value + paVar1->section->vma;\n          goto LAB_00135a30;\n        }\n        if (syment.n_sclass == 'f') break;\n      }\n      bitsize = 0;\n      bitpos = 0;\n    }" { (if_statement "if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00135a18;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          bitpos = paVar1->value + paVar1->section->vma;\n          goto LAB_00135a30;\n        }\n        if (syment.n_sclass == 'f') break;\n      }" if (parenthesized_expression "(syment.n_sclass < 0xc)" ( (binary_expression "syment.n_sclass < 0xc" (field_expression "syment.n_sclass" identifier . field_identifier) < number_literal) )) (compound_statement "{\n        if (syment.n_sclass == '\b') goto LAB_00135a18;\n      }" { (if_statement "if (syment.n_sclass == '\b') goto LAB_00135a18;" if (parenthesized_expression "(syment.n_sclass == '\b')" ( (binary_expression "syment.n_sclass == '\b'" (field_expression "syment.n_sclass" identifier . field_identifier) == (char_literal "'\b'" ' escape_sequence ')) )) (goto_statement "goto LAB_00135a18;" goto statement_identifier ;)) }) (else_clause "else {\n        if (syment.n_sclass == '\x12') {\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          bitpos = paVar1->value + paVar1->section->vma;\n          goto LAB_00135a30;\n        }\n        if (syment.n_sclass == 'f') break;\n      }" else (compound_statement "{\n        if (syment.n_sclass == '\x12') {\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          bitpos = paVar1->value + paVar1->section->vma;\n          goto LAB_00135a30;\n        }\n        if (syment.n_sclass == 'f') break;\n      }" { (if_statement "if (syment.n_sclass == '\x12') {\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          bitpos = paVar1->value + paVar1->section->vma;\n          goto LAB_00135a30;\n        }" if (parenthesized_expression "(syment.n_sclass == '\x12')" ( (binary_expression "syment.n_sclass == '\x12'" (field_expression "syment.n_sclass" identifier . field_identifier) == (char_literal "'\x12'" ' escape_sequence ')) )) (compound_statement "{\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          bitpos = paVar1->value + paVar1->section->vma;\n          goto LAB_00135a30;\n        }" { (expression_statement "bitsize = (bfd_vma)auxent.x_scn.x_nlinno;" (assignment_expression "bitsize = (bfd_vma)auxent.x_scn.x_nlinno" identifier = (cast_expression "(bfd_vma)auxent.x_scn.x_nlinno" ( (type_descriptor "bfd_vma" type_identifier) ) (field_expression "auxent.x_scn.x_nlinno" (field_expression "auxent.x_scn" identifier . field_identifier) . field_identifier))) ;) (expression_statement "bitpos = paVar1->value + paVar1->section->vma;" (assignment_expression "bitpos = paVar1->value + paVar1->section->vma" identifier = (binary_expression "paVar1->value + paVar1->section->vma" (field_expression "paVar1->value" identifier -> field_identifier) + (field_expression "paVar1->section->vma" (field_expression "paVar1->section" identifier -> field_identifier) -> field_identifier))) ;) (goto_statement "goto LAB_00135a30;" goto statement_identifier ;) })) (if_statement "if (syment.n_sclass == 'f') break;" if (parenthesized_expression "(syment.n_sclass == 'f')" ( (binary_expression "syment.n_sclass == 'f'" (field_expression "syment.n_sclass" identifier . field_identifier) == (char_literal "'f'" ' character ')) )) (break_statement "break;" break ;)) }))) (expression_statement "bitsize = 0;" (assignment_expression "bitsize = 0" identifier = number_literal) ;) (expression_statement "bitpos = 0;" (assignment_expression "bitpos = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_00135a30:\n    piVar9 = pauxent_1;" statement_identifier : (expression_statement "piVar9 = pauxent_1;" (assignment_expression "piVar9 = pauxent_1" identifier = identifier) ;)) (expression_statement "type = parse_coff_type(abfd,symbols,types,coff_symno,(uint)syment.n_type,pauxent_00,1,pauxent_1)\n    ;" (assignment_expression "type = parse_coff_type(abfd,symbols,types,coff_symno,(uint)syment.n_type,pauxent_00,1,pauxent_1)" identifier = (call_expression "parse_coff_type(abfd,symbols,types,coff_symno,(uint)syment.n_type,pauxent_00,1,pauxent_1)" identifier (argument_list "(abfd,symbols,types,coff_symno,(uint)syment.n_type,pauxent_00,1,pauxent_1)" ( identifier , identifier , identifier , identifier , (cast_expression "(uint)syment.n_type" ( (type_descriptor "uint" type_identifier) ) (field_expression "syment.n_type" identifier . field_identifier)) , identifier , number_literal , identifier )))) ;) (expression_statement "pdVar5 = debug_make_field(pauxent_1,paVar1->name,type,bitpos,bitsize,DEBUG_VISIBILITY_PUBLIC);" (assignment_expression "pdVar5 = debug_make_field(pauxent_1,paVar1->name,type,bitpos,bitsize,DEBUG_VISIBILITY_PUBLIC)" identifier = (call_expression "debug_make_field(pauxent_1,paVar1->name,type,bitpos,bitsize,DEBUG_VISIBILITY_PUBLIC)" identifier (argument_list "(pauxent_1,paVar1->name,type,bitpos,bitsize,DEBUG_VISIBILITY_PUBLIC)" ( identifier , (field_expression "paVar1->name" identifier -> field_identifier) , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (pdVar5 == (debug_field)0x0) {\n      return (debug_type)0x0;\n    }" if (parenthesized_expression "(pdVar5 == (debug_field)0x0)" ( (binary_expression "pdVar5 == (debug_field)0x0" identifier == (cast_expression "(debug_field)0x0" ( (type_descriptor "debug_field" type_identifier) ) number_literal)) )) (compound_statement "{\n      return (debug_type)0x0;\n    }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (if_statement "if (local_a8 <= (int)lVar8 + 1) {\n      local_a8 = local_a8 + 10;\n      local_c0 = (debug_field *)xrealloc(local_c0,(long)local_a8 << 3,piVar9);\n    }" if (parenthesized_expression "(local_a8 <= (int)lVar8 + 1)" ( (binary_expression "local_a8 <= (int)lVar8 + 1" identifier <= (binary_expression "(int)lVar8 + 1" (cast_expression "(int)lVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) )) (compound_statement "{\n      local_a8 = local_a8 + 10;\n      local_c0 = (debug_field *)xrealloc(local_c0,(long)local_a8 << 3,piVar9);\n    }" { (expression_statement "local_a8 = local_a8 + 10;" (assignment_expression "local_a8 = local_a8 + 10" identifier = (binary_expression "local_a8 + 10" identifier + number_literal)) ;) (expression_statement "local_c0 = (debug_field *)xrealloc(local_c0,(long)local_a8 << 3,piVar9);" (assignment_expression "local_c0 = (debug_field *)xrealloc(local_c0,(long)local_a8 << 3,piVar9)" identifier = (cast_expression "(debug_field *)xrealloc(local_c0,(long)local_a8 << 3,piVar9)" ( (type_descriptor "debug_field *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(local_c0,(long)local_a8 << 3,piVar9)" identifier (argument_list "(local_c0,(long)local_a8 << 3,piVar9)" ( identifier , (binary_expression "(long)local_a8 << 3" (cast_expression "(long)local_a8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) << number_literal) , identifier ))))) ;) })) (expression_statement "local_c0[lVar8] = pdVar5;" (assignment_expression "local_c0[lVar8] = pdVar5" (subscript_expression "local_c0[lVar8]" identifier [ identifier ]) = identifier) ;) (expression_statement "lVar8 = lVar8 + 1;" (assignment_expression "lVar8 = lVar8 + 1" identifier = (binary_expression "lVar8 + 1" identifier + number_literal)) ;) })) (expression_statement "local_c0[(int)lVar8] = (debug_field)0x0;" (assignment_expression "local_c0[(int)lVar8] = (debug_field)0x0" (subscript_expression "local_c0[(int)lVar8]" identifier [ (cast_expression "(int)lVar8" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (cast_expression "(debug_field)0x0" ( (type_descriptor "debug_field" type_identifier) ) number_literal)) ;) (expression_statement "pdVar4 = debug_make_struct_type(pauxent_1,(uint)(ntype == 8),(ulong)*(ushort *)pauxent,local_c0);" (assignment_expression "pdVar4 = debug_make_struct_type(pauxent_1,(uint)(ntype == 8),(ulong)*(ushort *)pauxent,local_c0)" identifier = (call_expression "debug_make_struct_type(pauxent_1,(uint)(ntype == 8),(ulong)*(ushort *)pauxent,local_c0)" identifier (argument_list "(pauxent_1,(uint)(ntype == 8),(ulong)*(ushort *)pauxent,local_c0)" ( identifier , (call_expression "(uint)(ntype == 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ntype == 8)" ( (binary_expression "ntype == 8" identifier == number_literal) ))) , (binary_expression "(ulong)*(ushort *)pauxent" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(ushort *)pauxent" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , identifier )))) ;) (return_statement "return pdVar4;" return identifier ;) })))
(translation_unit "undefined8\nFUN_00135900(undefined8 param_1,long *param_2,undefined8 param_3,int param_4,undefined2 *param_5,\n            long param_6,undefined8 param_7)\n\n{\n  long lVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined8 uVar4;\n  long lVar5;\n  undefined8 uVar6;\n  char *pcVar7;\n  undefined1 *puVar8;\n  undefined2 uVar9;\n  long lVar10;\n  long lVar11;\n  long local_c0;\n  int local_a8;\n  undefined1 local_98 [30];\n  undefined2 local_7a;\n  byte local_78;\n  byte local_77;\n  undefined1 local_68 [10];\n  undefined2 local_5e;\n  \n  lVar10 = 0;\n  local_c0 = xmalloc(0x50);\n  local_a8 = 10;\n  while( true ) {\n    if ((param_6 <= param_2[3]) || (param_2[1] <= param_2[2])) break;\n    lVar5 = *(long *)(*param_2 + param_2[2] * 8);\n    iVar2 = bfd_coff_get_syment(param_1,lVar5,local_98);\n    if (iVar2 == 0) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      uVar6 = dcgettext(0,pcVar7,5);\n      FUN_00136630(uVar6,uVar4);\n      return 0;\n    }\n    lVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = lVar1 + 1 + (ulong)local_77;\n    puVar8 = (undefined1 *)0x0;\n    if ((local_77 != 0) &&\n       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }\n    if (local_78 == 0xb) {\nLAB_00135a18:\n      uVar9 = 0;\n      lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;\n    }\n    else {\n      if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }\n      lVar11 = 0;\n      uVar9 = 0;\n    }\nLAB_00135a30:\n    uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1);\n    lVar5 = FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9);\n    if (lVar5 == 0) {\n      return 0;\n    }\n    if (local_a8 <= (int)lVar10 + 1) {\n      local_a8 = local_a8 + 10;\n      local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);\n    }\n    *(long *)(local_c0 + lVar10 * 8) = lVar5;\n    lVar10 = lVar10 + 1;\n  }\n  *(undefined8 *)(local_c0 + (long)(int)lVar10 * 8) = 0;\n  uVar4 = FUN_0012d5b0(param_7,param_4 == 8,*param_5);\n  return uVar4;\n}\n\n" (function_definition "undefined8\nFUN_00135900(undefined8 param_1,long *param_2,undefined8 param_3,int param_4,undefined2 *param_5,\n            long param_6,undefined8 param_7)\n\n{\n  long lVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined8 uVar4;\n  long lVar5;\n  undefined8 uVar6;\n  char *pcVar7;\n  undefined1 *puVar8;\n  undefined2 uVar9;\n  long lVar10;\n  long lVar11;\n  long local_c0;\n  int local_a8;\n  undefined1 local_98 [30];\n  undefined2 local_7a;\n  byte local_78;\n  byte local_77;\n  undefined1 local_68 [10];\n  undefined2 local_5e;\n  \n  lVar10 = 0;\n  local_c0 = xmalloc(0x50);\n  local_a8 = 10;\n  while( true ) {\n    if ((param_6 <= param_2[3]) || (param_2[1] <= param_2[2])) break;\n    lVar5 = *(long *)(*param_2 + param_2[2] * 8);\n    iVar2 = bfd_coff_get_syment(param_1,lVar5,local_98);\n    if (iVar2 == 0) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      uVar6 = dcgettext(0,pcVar7,5);\n      FUN_00136630(uVar6,uVar4);\n      return 0;\n    }\n    lVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = lVar1 + 1 + (ulong)local_77;\n    puVar8 = (undefined1 *)0x0;\n    if ((local_77 != 0) &&\n       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }\n    if (local_78 == 0xb) {\nLAB_00135a18:\n      uVar9 = 0;\n      lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;\n    }\n    else {\n      if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }\n      lVar11 = 0;\n      uVar9 = 0;\n    }\nLAB_00135a30:\n    uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1);\n    lVar5 = FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9);\n    if (lVar5 == 0) {\n      return 0;\n    }\n    if (local_a8 <= (int)lVar10 + 1) {\n      local_a8 = local_a8 + 10;\n      local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);\n    }\n    *(long *)(local_c0 + lVar10 * 8) = lVar5;\n    lVar10 = lVar10 + 1;\n  }\n  *(undefined8 *)(local_c0 + (long)(int)lVar10 * 8) = 0;\n  uVar4 = FUN_0012d5b0(param_7,param_4 == 8,*param_5);\n  return uVar4;\n}" type_identifier (function_declarator "FUN_00135900(undefined8 param_1,long *param_2,undefined8 param_3,int param_4,undefined2 *param_5,\n            long param_6,undefined8 param_7)" identifier (parameter_list "(undefined8 param_1,long *param_2,undefined8 param_3,int param_4,undefined2 *param_5,\n            long param_6,undefined8 param_7)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "undefined2 *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "long param_6" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_7" type_identifier identifier) ))) (compound_statement "{\n  long lVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined8 uVar4;\n  long lVar5;\n  undefined8 uVar6;\n  char *pcVar7;\n  undefined1 *puVar8;\n  undefined2 uVar9;\n  long lVar10;\n  long lVar11;\n  long local_c0;\n  int local_a8;\n  undefined1 local_98 [30];\n  undefined2 local_7a;\n  byte local_78;\n  byte local_77;\n  undefined1 local_68 [10];\n  undefined2 local_5e;\n  \n  lVar10 = 0;\n  local_c0 = xmalloc(0x50);\n  local_a8 = 10;\n  while( true ) {\n    if ((param_6 <= param_2[3]) || (param_2[1] <= param_2[2])) break;\n    lVar5 = *(long *)(*param_2 + param_2[2] * 8);\n    iVar2 = bfd_coff_get_syment(param_1,lVar5,local_98);\n    if (iVar2 == 0) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      uVar6 = dcgettext(0,pcVar7,5);\n      FUN_00136630(uVar6,uVar4);\n      return 0;\n    }\n    lVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = lVar1 + 1 + (ulong)local_77;\n    puVar8 = (undefined1 *)0x0;\n    if ((local_77 != 0) &&\n       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }\n    if (local_78 == 0xb) {\nLAB_00135a18:\n      uVar9 = 0;\n      lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;\n    }\n    else {\n      if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }\n      lVar11 = 0;\n      uVar9 = 0;\n    }\nLAB_00135a30:\n    uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1);\n    lVar5 = FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9);\n    if (lVar5 == 0) {\n      return 0;\n    }\n    if (local_a8 <= (int)lVar10 + 1) {\n      local_a8 = local_a8 + 10;\n      local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);\n    }\n    *(long *)(local_c0 + lVar10 * 8) = lVar5;\n    lVar10 = lVar10 + 1;\n  }\n  *(undefined8 *)(local_c0 + (long)(int)lVar10 * 8) = 0;\n  uVar4 = FUN_0012d5b0(param_7,param_4 == 8,*param_5);\n  return uVar4;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "undefined1 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined2 uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_c0;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_a8;" primitive_type identifier ;) (declaration "undefined1 local_98 [30];" type_identifier (array_declarator "local_98 [30]" identifier [ number_literal ]) ;) (declaration "undefined2 local_7a;" type_identifier identifier ;) (declaration "byte local_78;" type_identifier identifier ;) (declaration "byte local_77;" type_identifier identifier ;) (declaration "undefined1 local_68 [10];" type_identifier (array_declarator "local_68 [10]" identifier [ number_literal ]) ;) (declaration "undefined2 local_5e;" type_identifier identifier ;) (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) (expression_statement "local_c0 = xmalloc(0x50);" (assignment_expression "local_c0 = xmalloc(0x50)" identifier = (call_expression "xmalloc(0x50)" identifier (argument_list "(0x50)" ( number_literal )))) ;) (expression_statement "local_a8 = 10;" (assignment_expression "local_a8 = 10" identifier = number_literal) ;) (while_statement "while( true ) {\n    if ((param_6 <= param_2[3]) || (param_2[1] <= param_2[2])) break;\n    lVar5 = *(long *)(*param_2 + param_2[2] * 8);\n    iVar2 = bfd_coff_get_syment(param_1,lVar5,local_98);\n    if (iVar2 == 0) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      uVar6 = dcgettext(0,pcVar7,5);\n      FUN_00136630(uVar6,uVar4);\n      return 0;\n    }\n    lVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = lVar1 + 1 + (ulong)local_77;\n    puVar8 = (undefined1 *)0x0;\n    if ((local_77 != 0) &&\n       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }\n    if (local_78 == 0xb) {\nLAB_00135a18:\n      uVar9 = 0;\n      lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;\n    }\n    else {\n      if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }\n      lVar11 = 0;\n      uVar9 = 0;\n    }\nLAB_00135a30:\n    uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1);\n    lVar5 = FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9);\n    if (lVar5 == 0) {\n      return 0;\n    }\n    if (local_a8 <= (int)lVar10 + 1) {\n      local_a8 = local_a8 + 10;\n      local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);\n    }\n    *(long *)(local_c0 + lVar10 * 8) = lVar5;\n    lVar10 = lVar10 + 1;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if ((param_6 <= param_2[3]) || (param_2[1] <= param_2[2])) break;\n    lVar5 = *(long *)(*param_2 + param_2[2] * 8);\n    iVar2 = bfd_coff_get_syment(param_1,lVar5,local_98);\n    if (iVar2 == 0) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      uVar6 = dcgettext(0,pcVar7,5);\n      FUN_00136630(uVar6,uVar4);\n      return 0;\n    }\n    lVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = lVar1 + 1 + (ulong)local_77;\n    puVar8 = (undefined1 *)0x0;\n    if ((local_77 != 0) &&\n       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }\n    if (local_78 == 0xb) {\nLAB_00135a18:\n      uVar9 = 0;\n      lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;\n    }\n    else {\n      if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }\n      lVar11 = 0;\n      uVar9 = 0;\n    }\nLAB_00135a30:\n    uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1);\n    lVar5 = FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9);\n    if (lVar5 == 0) {\n      return 0;\n    }\n    if (local_a8 <= (int)lVar10 + 1) {\n      local_a8 = local_a8 + 10;\n      local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);\n    }\n    *(long *)(local_c0 + lVar10 * 8) = lVar5;\n    lVar10 = lVar10 + 1;\n  }" { (if_statement "if ((param_6 <= param_2[3]) || (param_2[1] <= param_2[2])) break;" if (parenthesized_expression "((param_6 <= param_2[3]) || (param_2[1] <= param_2[2]))" ( (binary_expression "(param_6 <= param_2[3]) || (param_2[1] <= param_2[2])" (parenthesized_expression "(param_6 <= param_2[3])" ( (binary_expression "param_6 <= param_2[3]" identifier <= (subscript_expression "param_2[3]" identifier [ number_literal ])) )) || (parenthesized_expression "(param_2[1] <= param_2[2])" ( (binary_expression "param_2[1] <= param_2[2]" (subscript_expression "param_2[1]" identifier [ number_literal ]) <= (subscript_expression "param_2[2]" identifier [ number_literal ])) ))) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = *(long *)(*param_2 + param_2[2] * 8);" (assignment_expression "lVar5 = *(long *)(*param_2 + param_2[2] * 8)" identifier = (pointer_expression "*(long *)(*param_2 + param_2[2] * 8)" * (cast_expression "(long *)(*param_2 + param_2[2] * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + param_2[2] * 8)" ( (binary_expression "*param_2 + param_2[2] * 8" (pointer_expression "*param_2" * identifier) + (binary_expression "param_2[2] * 8" (subscript_expression "param_2[2]" identifier [ number_literal ]) * number_literal)) ))))) ;) (expression_statement "iVar2 = bfd_coff_get_syment(param_1,lVar5,local_98);" (assignment_expression "iVar2 = bfd_coff_get_syment(param_1,lVar5,local_98)" identifier = (call_expression "bfd_coff_get_syment(param_1,lVar5,local_98)" identifier (argument_list "(param_1,lVar5,local_98)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      uVar6 = dcgettext(0,pcVar7,5);\n      FUN_00136630(uVar6,uVar4);\n      return 0;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      uVar6 = dcgettext(0,pcVar7,5);\n      FUN_00136630(uVar6,uVar4);\n      return 0;\n    }" { (expression_statement "uVar3 = bfd_get_error();" (assignment_expression "uVar3 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar4 = bfd_errmsg(uVar3);" (assignment_expression "uVar4 = bfd_errmsg(uVar3)" identifier = (call_expression "bfd_errmsg(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "pcVar7 = "bfd_coff_get_syment failed: %s";" (assignment_expression "pcVar7 = "bfd_coff_get_syment failed: %s"" identifier = (string_literal ""bfd_coff_get_syment failed: %s"" " string_content ")) ;) (labeled_statement "LAB_00135b43:\n      uVar6 = dcgettext(0,pcVar7,5);" statement_identifier : (expression_statement "uVar6 = dcgettext(0,pcVar7,5);" (assignment_expression "uVar6 = dcgettext(0,pcVar7,5)" identifier = (call_expression "dcgettext(0,pcVar7,5)" identifier (argument_list "(0,pcVar7,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_00136630(uVar6,uVar4);" (call_expression "FUN_00136630(uVar6,uVar4)" identifier (argument_list "(uVar6,uVar4)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar1 = param_2[3];" (assignment_expression "lVar1 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "param_2[2] = param_2[2] + 1;" (assignment_expression "param_2[2] = param_2[2] + 1" (subscript_expression "param_2[2]" identifier [ number_literal ]) = (binary_expression "param_2[2] + 1" (subscript_expression "param_2[2]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "param_2[3] = lVar1 + 1 + (ulong)local_77;" (assignment_expression "param_2[3] = lVar1 + 1 + (ulong)local_77" (subscript_expression "param_2[3]" identifier [ number_literal ]) = (binary_expression "lVar1 + 1 + (ulong)local_77" (binary_expression "lVar1 + 1" identifier + number_literal) + (cast_expression "(ulong)local_77" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "puVar8 = (undefined1 *)0x0;" (assignment_expression "puVar8 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((local_77 != 0) &&\n       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }" if (parenthesized_expression "((local_77 != 0) &&\n       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0))" ( (binary_expression "(local_77 != 0) &&\n       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)" (parenthesized_expression "(local_77 != 0)" ( (binary_expression "local_77 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)" ( (comma_expression "iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0" (assignment_expression "iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68)" identifier = (call_expression "bfd_coff_get_auxent(param_1,lVar5,0,local_68)" identifier (argument_list "(param_1,lVar5,0,local_68)" ( identifier , identifier , number_literal , identifier )))) , (comma_expression "puVar8 = local_68, iVar2 == 0" (assignment_expression "puVar8 = local_68" identifier = identifier) , (binary_expression "iVar2 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }" { (expression_statement "uVar3 = bfd_get_error();" (assignment_expression "uVar3 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar4 = bfd_errmsg(uVar3);" (assignment_expression "uVar4 = bfd_errmsg(uVar3)" identifier = (call_expression "bfd_errmsg(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "pcVar7 = "bfd_coff_get_auxent failed: %s";" (assignment_expression "pcVar7 = "bfd_coff_get_auxent failed: %s"" identifier = (string_literal ""bfd_coff_get_auxent failed: %s"" " string_content ")) ;) (goto_statement "goto LAB_00135b43;" goto statement_identifier ;) })) (if_statement "if (local_78 == 0xb) {\nLAB_00135a18:\n      uVar9 = 0;\n      lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;\n    }\n    else {\n      if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }\n      lVar11 = 0;\n      uVar9 = 0;\n    }" if (parenthesized_expression "(local_78 == 0xb)" ( (binary_expression "local_78 == 0xb" identifier == number_literal) )) (compound_statement "{\nLAB_00135a18:\n      uVar9 = 0;\n      lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;\n    }" { (labeled_statement "LAB_00135a18:\n      uVar9 = 0;" statement_identifier : (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;)) (expression_statement "lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;" (assignment_expression "lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8" identifier = (binary_expression "(*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8" (parenthesized_expression "(*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28))" ( (binary_expression "*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)" (pointer_expression "*(long *)(lVar5 + 0x10)" * (cast_expression "(long *)(lVar5 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) )))) + (pointer_expression "*(long *)(*(long *)(lVar5 + 0x20) + 0x28)" * (cast_expression "(long *)(*(long *)(lVar5 + 0x20) + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar5 + 0x20) + 0x28)" ( (binary_expression "*(long *)(lVar5 + 0x20) + 0x28" (pointer_expression "*(long *)(lVar5 + 0x20)" * (cast_expression "(long *)(lVar5 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x20)" ( (binary_expression "lVar5 + 0x20" identifier + number_literal) )))) + number_literal) ))))) )) * number_literal)) ;) }) (else_clause "else {\n      if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }\n      lVar11 = 0;\n      uVar9 = 0;\n    }" else (compound_statement "{\n      if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }\n      lVar11 = 0;\n      uVar9 = 0;\n    }" { (if_statement "if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }" if (parenthesized_expression "(local_78 < 0xc)" ( (binary_expression "local_78 < 0xc" identifier < number_literal) )) (compound_statement "{\n        if (local_78 == 8) goto LAB_00135a18;\n      }" { (if_statement "if (local_78 == 8) goto LAB_00135a18;" if (parenthesized_expression "(local_78 == 8)" ( (binary_expression "local_78 == 8" identifier == number_literal) )) (goto_statement "goto LAB_00135a18;" goto statement_identifier ;)) }) (else_clause "else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }" else (compound_statement "{\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }" { (if_statement "if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }" if (parenthesized_expression "(local_78 == 0x12)" ( (binary_expression "local_78 == 0x12" identifier == number_literal) )) (compound_statement "{\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }" { (expression_statement "lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);" (assignment_expression "lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)" identifier = (binary_expression "*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)" (pointer_expression "*(long *)(lVar5 + 0x10)" * (cast_expression "(long *)(lVar5 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) )))) + (pointer_expression "*(long *)(*(long *)(lVar5 + 0x20) + 0x28)" * (cast_expression "(long *)(*(long *)(lVar5 + 0x20) + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar5 + 0x20) + 0x28)" ( (binary_expression "*(long *)(lVar5 + 0x20) + 0x28" (pointer_expression "*(long *)(lVar5 + 0x20)" * (cast_expression "(long *)(lVar5 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x20)" ( (binary_expression "lVar5 + 0x20" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "uVar9 = local_5e;" (assignment_expression "uVar9 = local_5e" identifier = identifier) ;) (goto_statement "goto LAB_00135a30;" goto statement_identifier ;) })) (if_statement "if (local_78 == 0x66) break;" if (parenthesized_expression "(local_78 == 0x66)" ( (binary_expression "local_78 == 0x66" identifier == number_literal) )) (break_statement "break;" break ;)) }))) (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_00135a30:\n    uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1);" statement_identifier : (expression_statement "uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1);" (assignment_expression "uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1)" identifier = (call_expression "FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1)" identifier (argument_list "(param_1,param_2,param_3,lVar1,local_7a,puVar8,1)" ( identifier , identifier , identifier , identifier , identifier , identifier , number_literal )))) ;)) (expression_statement "lVar5 = FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9);" (assignment_expression "lVar5 = FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9)" identifier = (call_expression "FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9)" identifier (argument_list "(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9)" ( identifier , (pointer_expression "*(undefined8 *)(lVar5 + 8)" * (cast_expression "(undefined8 *)(lVar5 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 8)" ( (binary_expression "lVar5 + 8" identifier + number_literal) )))) , identifier , identifier , identifier )))) ;) (if_statement "if (lVar5 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (local_a8 <= (int)lVar10 + 1) {\n      local_a8 = local_a8 + 10;\n      local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);\n    }" if (parenthesized_expression "(local_a8 <= (int)lVar10 + 1)" ( (binary_expression "local_a8 <= (int)lVar10 + 1" identifier <= (binary_expression "(int)lVar10 + 1" (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) )) (compound_statement "{\n      local_a8 = local_a8 + 10;\n      local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);\n    }" { (expression_statement "local_a8 = local_a8 + 10;" (assignment_expression "local_a8 = local_a8 + 10" identifier = (binary_expression "local_a8 + 10" identifier + number_literal)) ;) (expression_statement "local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);" (assignment_expression "local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7)" identifier = (call_expression "xrealloc(local_c0,(long)local_a8 << 3,param_7)" identifier (argument_list "(local_c0,(long)local_a8 << 3,param_7)" ( identifier , (binary_expression "(long)local_a8 << 3" (cast_expression "(long)local_a8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) << number_literal) , identifier )))) ;) })) (expression_statement "*(long *)(local_c0 + lVar10 * 8) = lVar5;" (assignment_expression "*(long *)(local_c0 + lVar10 * 8) = lVar5" (pointer_expression "*(long *)(local_c0 + lVar10 * 8)" * (cast_expression "(long *)(local_c0 + lVar10 * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c0 + lVar10 * 8)" ( (binary_expression "local_c0 + lVar10 * 8" identifier + (binary_expression "lVar10 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" identifier = (binary_expression "lVar10 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined8 *)(local_c0 + (long)(int)lVar10 * 8) = 0;" (assignment_expression "*(undefined8 *)(local_c0 + (long)(int)lVar10 * 8) = 0" (pointer_expression "*(undefined8 *)(local_c0 + (long)(int)lVar10 * 8)" * (cast_expression "(undefined8 *)(local_c0 + (long)(int)lVar10 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c0 + (long)(int)lVar10 * 8)" ( (binary_expression "local_c0 + (long)(int)lVar10 * 8" identifier + (binary_expression "(long)(int)lVar10 * 8" (cast_expression "(long)(int)lVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)lVar10" ( (type_descriptor "int" primitive_type) ) identifier)) * number_literal)) )))) = number_literal) ;) (expression_statement "uVar4 = FUN_0012d5b0(param_7,param_4 == 8,*param_5);" (assignment_expression "uVar4 = FUN_0012d5b0(param_7,param_4 == 8,*param_5)" identifier = (call_expression "FUN_0012d5b0(param_7,param_4 == 8,*param_5)" identifier (argument_list "(param_7,param_4 == 8,*param_5)" ( identifier , (binary_expression "param_4 == 8" identifier == number_literal) , (pointer_expression "*param_5" * identifier) )))) ;) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= (subscript_expression IDENT [ LIT ])) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= (subscript_expression IDENT [ LIT ])) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression IDENT + LIT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) * LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , LIT )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) << LIT) , IDENT )))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) * LIT)) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT == LIT) , (pointer_expression * IDENT) )))) ;) (return_statement return IDENT ;) })))
(function_definition "undefined8\nFUN_00135900(undefined8 param_1,long *param_2,undefined8 param_3,int param_4,undefined2 *param_5,\n            long param_6,undefined8 param_7)\n\n{\n  long lVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined8 uVar4;\n  long lVar5;\n  undefined8 uVar6;\n  char *pcVar7;\n  undefined1 *puVar8;\n  undefined2 uVar9;\n  long lVar10;\n  long lVar11;\n  long local_c0;\n  int local_a8;\n  undefined1 local_98 [30];\n  undefined2 local_7a;\n  byte local_78;\n  byte local_77;\n  undefined1 local_68 [10];\n  undefined2 local_5e;\n  \n  lVar10 = 0;\n  local_c0 = xmalloc(0x50);\n  local_a8 = 10;\n  while( true ) {\n    if ((param_6 <= param_2[3]) || (param_2[1] <= param_2[2])) break;\n    lVar5 = *(long *)(*param_2 + param_2[2] * 8);\n    iVar2 = bfd_coff_get_syment(param_1,lVar5,local_98);\n    if (iVar2 == 0) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      uVar6 = dcgettext(0,pcVar7,5);\n      FUN_00136630(uVar6,uVar4);\n      return 0;\n    }\n    lVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = lVar1 + 1 + (ulong)local_77;\n    puVar8 = (undefined1 *)0x0;\n    if ((local_77 != 0) &&\n       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }\n    if (local_78 == 0xb) {\nLAB_00135a18:\n      uVar9 = 0;\n      lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;\n    }\n    else {\n      if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }\n      lVar11 = 0;\n      uVar9 = 0;\n    }\nLAB_00135a30:\n    uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1);\n    lVar5 = FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9);\n    if (lVar5 == 0) {\n      return 0;\n    }\n    if (local_a8 <= (int)lVar10 + 1) {\n      local_a8 = local_a8 + 10;\n      local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);\n    }\n    *(long *)(local_c0 + lVar10 * 8) = lVar5;\n    lVar10 = lVar10 + 1;\n  }\n  *(undefined8 *)(local_c0 + (long)(int)lVar10 * 8) = 0;\n  uVar4 = FUN_0012d5b0(param_7,param_4 == 8,*param_5);\n  return uVar4;\n}" (type_identifier "undefined8") (function_declarator "FUN_00135900(undefined8 param_1,long *param_2,undefined8 param_3,int param_4,undefined2 *param_5,\n            long param_6,undefined8 param_7)" (identifier "FUN_00135900") (parameter_list "(undefined8 param_1,long *param_2,undefined8 param_3,int param_4,undefined2 *param_5,\n            long param_6,undefined8 param_7)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "long *param_2" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "undefined2 *param_5" (type_identifier "undefined2") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "long param_6" (sized_type_specifier "long" (long "long")) (identifier "param_6")) (, ",") (parameter_declaration "undefined8 param_7" (type_identifier "undefined8") (identifier "param_7")) () ")"))) (compound_statement "{\n  long lVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined8 uVar4;\n  long lVar5;\n  undefined8 uVar6;\n  char *pcVar7;\n  undefined1 *puVar8;\n  undefined2 uVar9;\n  long lVar10;\n  long lVar11;\n  long local_c0;\n  int local_a8;\n  undefined1 local_98 [30];\n  undefined2 local_7a;\n  byte local_78;\n  byte local_77;\n  undefined1 local_68 [10];\n  undefined2 local_5e;\n  \n  lVar10 = 0;\n  local_c0 = xmalloc(0x50);\n  local_a8 = 10;\n  while( true ) {\n    if ((param_6 <= param_2[3]) || (param_2[1] <= param_2[2])) break;\n    lVar5 = *(long *)(*param_2 + param_2[2] * 8);\n    iVar2 = bfd_coff_get_syment(param_1,lVar5,local_98);\n    if (iVar2 == 0) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      uVar6 = dcgettext(0,pcVar7,5);\n      FUN_00136630(uVar6,uVar4);\n      return 0;\n    }\n    lVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = lVar1 + 1 + (ulong)local_77;\n    puVar8 = (undefined1 *)0x0;\n    if ((local_77 != 0) &&\n       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }\n    if (local_78 == 0xb) {\nLAB_00135a18:\n      uVar9 = 0;\n      lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;\n    }\n    else {\n      if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }\n      lVar11 = 0;\n      uVar9 = 0;\n    }\nLAB_00135a30:\n    uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1);\n    lVar5 = FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9);\n    if (lVar5 == 0) {\n      return 0;\n    }\n    if (local_a8 <= (int)lVar10 + 1) {\n      local_a8 = local_a8 + 10;\n      local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);\n    }\n    *(long *)(local_c0 + lVar10 * 8) = lVar5;\n    lVar10 = lVar10 + 1;\n  }\n  *(undefined8 *)(local_c0 + (long)(int)lVar10 * 8) = 0;\n  uVar4 = FUN_0012d5b0(param_7,param_4 == 8,*param_5);\n  return uVar4;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "undefined8 uVar6;" (type_identifier "undefined8") (identifier "uVar6") (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "undefined1 *puVar8;" (type_identifier "undefined1") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined2 uVar9;" (type_identifier "undefined2") (identifier "uVar9") (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "long lVar11;" (sized_type_specifier "long" (long "long")) (identifier "lVar11") (; ";")) (declaration "long local_c0;" (sized_type_specifier "long" (long "long")) (identifier "local_c0") (; ";")) (declaration "int local_a8;" (primitive_type "int") (identifier "local_a8") (; ";")) (declaration "undefined1 local_98 [30];" (type_identifier "undefined1") (array_declarator "local_98 [30]" (identifier "local_98") ([ "[") (number_literal "30") (] "]")) (; ";")) (declaration "undefined2 local_7a;" (type_identifier "undefined2") (identifier "local_7a") (; ";")) (declaration "byte local_78;" (type_identifier "byte") (identifier "local_78") (; ";")) (declaration "byte local_77;" (type_identifier "byte") (identifier "local_77") (; ";")) (declaration "undefined1 local_68 [10];" (type_identifier "undefined1") (array_declarator "local_68 [10]" (identifier "local_68") ([ "[") (number_literal "10") (] "]")) (; ";")) (declaration "undefined2 local_5e;" (type_identifier "undefined2") (identifier "local_5e") (; ";")) (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" (identifier "lVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c0 = xmalloc(0x50);" (assignment_expression "local_c0 = xmalloc(0x50)" (identifier "local_c0") (= "=") (call_expression "xmalloc(0x50)" (identifier "xmalloc") (argument_list "(0x50)" (( "(") (number_literal "0x50") () ")")))) (; ";")) (expression_statement "local_a8 = 10;" (assignment_expression "local_a8 = 10" (identifier "local_a8") (= "=") (number_literal "10")) (; ";")) (while_statement "while( true ) {\n    if ((param_6 <= param_2[3]) || (param_2[1] <= param_2[2])) break;\n    lVar5 = *(long *)(*param_2 + param_2[2] * 8);\n    iVar2 = bfd_coff_get_syment(param_1,lVar5,local_98);\n    if (iVar2 == 0) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      uVar6 = dcgettext(0,pcVar7,5);\n      FUN_00136630(uVar6,uVar4);\n      return 0;\n    }\n    lVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = lVar1 + 1 + (ulong)local_77;\n    puVar8 = (undefined1 *)0x0;\n    if ((local_77 != 0) &&\n       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }\n    if (local_78 == 0xb) {\nLAB_00135a18:\n      uVar9 = 0;\n      lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;\n    }\n    else {\n      if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }\n      lVar11 = 0;\n      uVar9 = 0;\n    }\nLAB_00135a30:\n    uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1);\n    lVar5 = FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9);\n    if (lVar5 == 0) {\n      return 0;\n    }\n    if (local_a8 <= (int)lVar10 + 1) {\n      local_a8 = local_a8 + 10;\n      local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);\n    }\n    *(long *)(local_c0 + lVar10 * 8) = lVar5;\n    lVar10 = lVar10 + 1;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    if ((param_6 <= param_2[3]) || (param_2[1] <= param_2[2])) break;\n    lVar5 = *(long *)(*param_2 + param_2[2] * 8);\n    iVar2 = bfd_coff_get_syment(param_1,lVar5,local_98);\n    if (iVar2 == 0) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      uVar6 = dcgettext(0,pcVar7,5);\n      FUN_00136630(uVar6,uVar4);\n      return 0;\n    }\n    lVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = lVar1 + 1 + (ulong)local_77;\n    puVar8 = (undefined1 *)0x0;\n    if ((local_77 != 0) &&\n       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }\n    if (local_78 == 0xb) {\nLAB_00135a18:\n      uVar9 = 0;\n      lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;\n    }\n    else {\n      if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }\n      lVar11 = 0;\n      uVar9 = 0;\n    }\nLAB_00135a30:\n    uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1);\n    lVar5 = FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9);\n    if (lVar5 == 0) {\n      return 0;\n    }\n    if (local_a8 <= (int)lVar10 + 1) {\n      local_a8 = local_a8 + 10;\n      local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);\n    }\n    *(long *)(local_c0 + lVar10 * 8) = lVar5;\n    lVar10 = lVar10 + 1;\n  }" ({ "{") (if_statement "if ((param_6 <= param_2[3]) || (param_2[1] <= param_2[2])) break;" (if "if") (parenthesized_expression "((param_6 <= param_2[3]) || (param_2[1] <= param_2[2]))" (( "(") (binary_expression "(param_6 <= param_2[3]) || (param_2[1] <= param_2[2])" (parenthesized_expression "(param_6 <= param_2[3])" (( "(") (binary_expression "param_6 <= param_2[3]" (identifier "param_6") (<= "<=") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]"))) () ")")) (|| "||") (parenthesized_expression "(param_2[1] <= param_2[2])" (( "(") (binary_expression "param_2[1] <= param_2[2]" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (<= "<=") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar5 = *(long *)(*param_2 + param_2[2] * 8);" (assignment_expression "lVar5 = *(long *)(*param_2 + param_2[2] * 8)" (identifier "lVar5") (= "=") (pointer_expression "*(long *)(*param_2 + param_2[2] * 8)" (* "*") (cast_expression "(long *)(*param_2 + param_2[2] * 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_2 + param_2[2] * 8)" (( "(") (binary_expression "*param_2 + param_2[2] * 8" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (binary_expression "param_2[2] * 8" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "iVar2 = bfd_coff_get_syment(param_1,lVar5,local_98);" (assignment_expression "iVar2 = bfd_coff_get_syment(param_1,lVar5,local_98)" (identifier "iVar2") (= "=") (call_expression "bfd_coff_get_syment(param_1,lVar5,local_98)" (identifier "bfd_coff_get_syment") (argument_list "(param_1,lVar5,local_98)" (( "(") (identifier "param_1") (, ",") (identifier "lVar5") (, ",") (identifier "local_98") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      uVar6 = dcgettext(0,pcVar7,5);\n      FUN_00136630(uVar6,uVar4);\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_syment failed: %s";\nLAB_00135b43:\n      uVar6 = dcgettext(0,pcVar7,5);\n      FUN_00136630(uVar6,uVar4);\n      return 0;\n    }" ({ "{") (expression_statement "uVar3 = bfd_get_error();" (assignment_expression "uVar3 = bfd_get_error()" (identifier "uVar3") (= "=") (call_expression "bfd_get_error()" (identifier "bfd_get_error") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar4 = bfd_errmsg(uVar3);" (assignment_expression "uVar4 = bfd_errmsg(uVar3)" (identifier "uVar4") (= "=") (call_expression "bfd_errmsg(uVar3)" (identifier "bfd_errmsg") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (expression_statement "pcVar7 = "bfd_coff_get_syment failed: %s";" (assignment_expression "pcVar7 = "bfd_coff_get_syment failed: %s"" (identifier "pcVar7") (= "=") (string_literal ""bfd_coff_get_syment failed: %s"" (" """) (string_content "bfd_coff_get_syment failed: %s") (" """))) (; ";")) (labeled_statement "LAB_00135b43:\n      uVar6 = dcgettext(0,pcVar7,5);" (statement_identifier "LAB_00135b43") (: ":") (expression_statement "uVar6 = dcgettext(0,pcVar7,5);" (assignment_expression "uVar6 = dcgettext(0,pcVar7,5)" (identifier "uVar6") (= "=") (call_expression "dcgettext(0,pcVar7,5)" (identifier "dcgettext") (argument_list "(0,pcVar7,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar7") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_00136630(uVar6,uVar4);" (call_expression "FUN_00136630(uVar6,uVar4)" (identifier "FUN_00136630") (argument_list "(uVar6,uVar4)" (( "(") (identifier "uVar6") (, ",") (identifier "uVar4") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "lVar1 = param_2[3];" (assignment_expression "lVar1 = param_2[3]" (identifier "lVar1") (= "=") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "param_2[2] = param_2[2] + 1;" (assignment_expression "param_2[2] = param_2[2] + 1" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "param_2[2] + 1" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_2[3] = lVar1 + 1 + (ulong)local_77;" (assignment_expression "param_2[3] = lVar1 + 1 + (ulong)local_77" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "lVar1 + 1 + (ulong)local_77" (binary_expression "lVar1 + 1" (identifier "lVar1") (+ "+") (number_literal "1")) (+ "+") (cast_expression "(ulong)local_77" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_77")))) (; ";")) (expression_statement "puVar8 = (undefined1 *)0x0;" (assignment_expression "puVar8 = (undefined1 *)0x0" (identifier "puVar8") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((local_77 != 0) &&\n       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }" (if "if") (parenthesized_expression "((local_77 != 0) &&\n       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0))" (( "(") (binary_expression "(local_77 != 0) &&\n       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)" (parenthesized_expression "(local_77 != 0)" (( "(") (binary_expression "local_77 != 0" (identifier "local_77") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)" (( "(") (comma_expression "iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0" (assignment_expression "iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68)" (identifier "iVar2") (= "=") (call_expression "bfd_coff_get_auxent(param_1,lVar5,0,local_68)" (identifier "bfd_coff_get_auxent") (argument_list "(param_1,lVar5,0,local_68)" (( "(") (identifier "param_1") (, ",") (identifier "lVar5") (, ",") (number_literal "0") (, ",") (identifier "local_68") () ")")))) (, ",") (comma_expression "puVar8 = local_68, iVar2 == 0" (assignment_expression "puVar8 = local_68" (identifier "puVar8") (= "=") (identifier "local_68")) (, ",") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n      uVar3 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar3);\n      pcVar7 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00135b43;\n    }" ({ "{") (expression_statement "uVar3 = bfd_get_error();" (assignment_expression "uVar3 = bfd_get_error()" (identifier "uVar3") (= "=") (call_expression "bfd_get_error()" (identifier "bfd_get_error") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar4 = bfd_errmsg(uVar3);" (assignment_expression "uVar4 = bfd_errmsg(uVar3)" (identifier "uVar4") (= "=") (call_expression "bfd_errmsg(uVar3)" (identifier "bfd_errmsg") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (expression_statement "pcVar7 = "bfd_coff_get_auxent failed: %s";" (assignment_expression "pcVar7 = "bfd_coff_get_auxent failed: %s"" (identifier "pcVar7") (= "=") (string_literal ""bfd_coff_get_auxent failed: %s"" (" """) (string_content "bfd_coff_get_auxent failed: %s") (" """))) (; ";")) (goto_statement "goto LAB_00135b43;" (goto "goto") (statement_identifier "LAB_00135b43") (; ";")) (} "}"))) (if_statement "if (local_78 == 0xb) {\nLAB_00135a18:\n      uVar9 = 0;\n      lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;\n    }\n    else {\n      if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }\n      lVar11 = 0;\n      uVar9 = 0;\n    }" (if "if") (parenthesized_expression "(local_78 == 0xb)" (( "(") (binary_expression "local_78 == 0xb" (identifier "local_78") (== "==") (number_literal "0xb")) () ")")) (compound_statement "{\nLAB_00135a18:\n      uVar9 = 0;\n      lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;\n    }" ({ "{") (labeled_statement "LAB_00135a18:\n      uVar9 = 0;" (statement_identifier "LAB_00135a18") (: ":") (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";"))) (expression_statement "lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;" (assignment_expression "lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8" (identifier "lVar11") (= "=") (binary_expression "(*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8" (parenthesized_expression "(*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28))" (( "(") (binary_expression "*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)" (pointer_expression "*(long *)(lVar5 + 0x10)" (* "*") (cast_expression "(long *)(lVar5 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x10)" (( "(") (binary_expression "lVar5 + 0x10" (identifier "lVar5") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (pointer_expression "*(long *)(*(long *)(lVar5 + 0x20) + 0x28)" (* "*") (cast_expression "(long *)(*(long *)(lVar5 + 0x20) + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar5 + 0x20) + 0x28)" (( "(") (binary_expression "*(long *)(lVar5 + 0x20) + 0x28" (pointer_expression "*(long *)(lVar5 + 0x20)" (* "*") (cast_expression "(long *)(lVar5 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x20)" (( "(") (binary_expression "lVar5 + 0x20" (identifier "lVar5") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (* "*") (number_literal "8"))) (; ";")) (} "}")) (else_clause "else {\n      if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }\n      lVar11 = 0;\n      uVar9 = 0;\n    }" (else "else") (compound_statement "{\n      if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }\n      lVar11 = 0;\n      uVar9 = 0;\n    }" ({ "{") (if_statement "if (local_78 < 0xc) {\n        if (local_78 == 8) goto LAB_00135a18;\n      }\n      else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }" (if "if") (parenthesized_expression "(local_78 < 0xc)" (( "(") (binary_expression "local_78 < 0xc" (identifier "local_78") (< "<") (number_literal "0xc")) () ")")) (compound_statement "{\n        if (local_78 == 8) goto LAB_00135a18;\n      }" ({ "{") (if_statement "if (local_78 == 8) goto LAB_00135a18;" (if "if") (parenthesized_expression "(local_78 == 8)" (( "(") (binary_expression "local_78 == 8" (identifier "local_78") (== "==") (number_literal "8")) () ")")) (goto_statement "goto LAB_00135a18;" (goto "goto") (statement_identifier "LAB_00135a18") (; ";"))) (} "}")) (else_clause "else {\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }" (else "else") (compound_statement "{\n        if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }\n        if (local_78 == 0x66) break;\n      }" ({ "{") (if_statement "if (local_78 == 0x12) {\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }" (if "if") (parenthesized_expression "(local_78 == 0x12)" (( "(") (binary_expression "local_78 == 0x12" (identifier "local_78") (== "==") (number_literal "0x12")) () ")")) (compound_statement "{\n          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);\n          uVar9 = local_5e;\n          goto LAB_00135a30;\n        }" ({ "{") (expression_statement "lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);" (assignment_expression "lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)" (identifier "lVar11") (= "=") (binary_expression "*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)" (pointer_expression "*(long *)(lVar5 + 0x10)" (* "*") (cast_expression "(long *)(lVar5 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x10)" (( "(") (binary_expression "lVar5 + 0x10" (identifier "lVar5") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (pointer_expression "*(long *)(*(long *)(lVar5 + 0x20) + 0x28)" (* "*") (cast_expression "(long *)(*(long *)(lVar5 + 0x20) + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar5 + 0x20) + 0x28)" (( "(") (binary_expression "*(long *)(lVar5 + 0x20) + 0x28" (pointer_expression "*(long *)(lVar5 + 0x20)" (* "*") (cast_expression "(long *)(lVar5 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x20)" (( "(") (binary_expression "lVar5 + 0x20" (identifier "lVar5") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "0x28")) () ")")))))) (; ";")) (expression_statement "uVar9 = local_5e;" (assignment_expression "uVar9 = local_5e" (identifier "uVar9") (= "=") (identifier "local_5e")) (; ";")) (goto_statement "goto LAB_00135a30;" (goto "goto") (statement_identifier "LAB_00135a30") (; ";")) (} "}"))) (if_statement "if (local_78 == 0x66) break;" (if "if") (parenthesized_expression "(local_78 == 0x66)" (( "(") (binary_expression "local_78 == 0x66" (identifier "local_78") (== "==") (number_literal "0x66")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")))) (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" (identifier "lVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_00135a30:\n    uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1);" (statement_identifier "LAB_00135a30") (: ":") (expression_statement "uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1);" (assignment_expression "uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1)" (identifier "uVar4") (= "=") (call_expression "FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1)" (identifier "FUN_00135230") (argument_list "(param_1,param_2,param_3,lVar1,local_7a,puVar8,1)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "lVar1") (, ",") (identifier "local_7a") (, ",") (identifier "puVar8") (, ",") (number_literal "1") () ")")))) (; ";"))) (expression_statement "lVar5 = FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9);" (assignment_expression "lVar5 = FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9)" (identifier "lVar5") (= "=") (call_expression "FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9)" (identifier "FUN_0012da50") (argument_list "(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9)" (( "(") (identifier "param_7") (, ",") (pointer_expression "*(undefined8 *)(lVar5 + 8)" (* "*") (cast_expression "(undefined8 *)(lVar5 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 8)" (( "(") (binary_expression "lVar5 + 8" (identifier "lVar5") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "uVar4") (, ",") (identifier "lVar11") (, ",") (identifier "uVar9") () ")")))) (; ";")) (if_statement "if (lVar5 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(lVar5 == 0)" (( "(") (binary_expression "lVar5 == 0" (identifier "lVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (local_a8 <= (int)lVar10 + 1) {\n      local_a8 = local_a8 + 10;\n      local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);\n    }" (if "if") (parenthesized_expression "(local_a8 <= (int)lVar10 + 1)" (( "(") (binary_expression "local_a8 <= (int)lVar10 + 1" (identifier "local_a8") (<= "<=") (binary_expression "(int)lVar10 + 1" (cast_expression "(int)lVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar10")) (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\n      local_a8 = local_a8 + 10;\n      local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);\n    }" ({ "{") (expression_statement "local_a8 = local_a8 + 10;" (assignment_expression "local_a8 = local_a8 + 10" (identifier "local_a8") (= "=") (binary_expression "local_a8 + 10" (identifier "local_a8") (+ "+") (number_literal "10"))) (; ";")) (expression_statement "local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);" (assignment_expression "local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7)" (identifier "local_c0") (= "=") (call_expression "xrealloc(local_c0,(long)local_a8 << 3,param_7)" (identifier "xrealloc") (argument_list "(local_c0,(long)local_a8 << 3,param_7)" (( "(") (identifier "local_c0") (, ",") (binary_expression "(long)local_a8 << 3" (cast_expression "(long)local_a8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_a8")) (<< "<<") (number_literal "3")) (, ",") (identifier "param_7") () ")")))) (; ";")) (} "}"))) (expression_statement "*(long *)(local_c0 + lVar10 * 8) = lVar5;" (assignment_expression "*(long *)(local_c0 + lVar10 * 8) = lVar5" (pointer_expression "*(long *)(local_c0 + lVar10 * 8)" (* "*") (cast_expression "(long *)(local_c0 + lVar10 * 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c0 + lVar10 * 8)" (( "(") (binary_expression "local_c0 + lVar10 * 8" (identifier "local_c0") (+ "+") (binary_expression "lVar10 * 8" (identifier "lVar10") (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "lVar5")) (; ";")) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + 1" (identifier "lVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*(undefined8 *)(local_c0 + (long)(int)lVar10 * 8) = 0;" (assignment_expression "*(undefined8 *)(local_c0 + (long)(int)lVar10 * 8) = 0" (pointer_expression "*(undefined8 *)(local_c0 + (long)(int)lVar10 * 8)" (* "*") (cast_expression "(undefined8 *)(local_c0 + (long)(int)lVar10 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c0 + (long)(int)lVar10 * 8)" (( "(") (binary_expression "local_c0 + (long)(int)lVar10 * 8" (identifier "local_c0") (+ "+") (binary_expression "(long)(int)lVar10 * 8" (cast_expression "(long)(int)lVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)lVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar10"))) (* "*") (number_literal "8"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar4 = FUN_0012d5b0(param_7,param_4 == 8,*param_5);" (assignment_expression "uVar4 = FUN_0012d5b0(param_7,param_4 == 8,*param_5)" (identifier "uVar4") (= "=") (call_expression "FUN_0012d5b0(param_7,param_4 == 8,*param_5)" (identifier "FUN_0012d5b0") (argument_list "(param_7,param_4 == 8,*param_5)" (( "(") (identifier "param_7") (, ",") (binary_expression "param_4 == 8" (identifier "param_4") (== "==") (number_literal "8")) (, ",") (pointer_expression "*param_5" (* "*") (identifier "param_5")) () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}")))

/* DWARF original prototype: debug_type parse_coff_struct_type(bfd * abfd, coff_symbols * symbols,
   coff_types * types, int ntype, internal_auxent * pauxent, void * dhandle, internal_auxent *
   pauxent) */

type_1
function_1
          (type_2 *abfd,type_3 *symbols,type_4 *types,int var_17,type_5 *pauxent,
          void *dhandle,type_5 *pauxent_1)

{
  type_6 *paVar1;
  long var_8;
  int var_3;
  type_7 uVar3;
  type_8 pdVar4;
  type_1 type;
  type_9 var_12;
  type_10 uVar6;
  char *pcVar7;
  type_5 *pauxent_00;
  type_11 bitsize;
  long var_15;
  type_11 bitpos;
  type_5 *piVar9;
  type_9 *local_c0;
  int var_13;
  type_12 syment;
  type_5 auxent;
  
  var_15 = 0;
  local_c0 = (type_9 *)var_1(0x50);
  var_13 = 10;
  while( true ) {
    if (((long)dhandle <= symbols->var_8) || (symbols->symcount <= symbols->symno)) break;
    paVar1 = symbols->syms[symbols->symno];
    var_3 = var_2(abfd,paVar1,&syment);
    if (var_3 == 0) {
      uVar3 = var_4();
      uVar6 = var_5(uVar3);
      pcVar7 = "bfd_coff_get_syment failed: %s";
LAB_00135b43:
      pcVar7 = (char *)var_6(0,pcVar7,5);
      var_7(pcVar7,uVar6);
      return (type_1)0x0;
    }
    var_8 = symbols->var_8;
    symbols->symno = symbols->symno + 1;
    symbols->var_8 = var_8 + 1 + (type_13)syment.n_numaux;
    pauxent_00 = (type_5 *)0x0;
    if ((syment.n_numaux != '\0') &&
       (var_3 = var_9(abfd,paVar1,0,&auxent), pauxent_00 = &auxent, var_3 == 0)) {
      uVar3 = var_4();
      uVar6 = var_5(uVar3);
      pcVar7 = "bfd_coff_get_auxent failed: %s";
      goto LAB_00135b43;
    }
    if (syment.n_sclass == '\v') {
LAB_00135a18:
      bitsize = 0;
      bitpos = (paVar1->value + paVar1->section->vma) * 8;
    }
    else {
      if (syment.n_sclass < 0xc) {
        if (syment.n_sclass == '\b') goto LAB_00135a18;
      }
      else {
        if (syment.n_sclass == '\x12') {
          bitsize = (type_11)auxent.x_scn.x_nlinno;
          bitpos = paVar1->value + paVar1->section->vma;
          goto LAB_00135a30;
        }
        if (syment.n_sclass == 'f') break;
      }
      bitsize = 0;
      bitpos = 0;
    }
LAB_00135a30:
    piVar9 = pauxent_1;
    type = var_10(abfd,symbols,types,var_8,(type_14)syment.n_type,pauxent_00,1,pauxent_1)
    ;
    var_12 = var_11(pauxent_1,paVar1->name,type,bitpos,bitsize,DEBUG_VISIBILITY_PUBLIC);
    if (var_12 == (type_9)0x0) {
      return (type_1)0x0;
    }
    if (var_13 <= (int)var_15 + 1) {
      var_13 = var_13 + 10;
      local_c0 = (type_9 *)var_14(local_c0,(long)var_13 << 3,piVar9);
    }
    local_c0[var_15] = var_12;
    var_15 = var_15 + 1;
  }
  local_c0[(int)var_15] = (type_9)0x0;
  pdVar4 = var_16(pauxent_1,(type_14)(var_17 == 8),(type_13)*(type_15 *)pauxent,local_c0);
  return pdVar4;
}


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

undefined8
MASKED(undefined8 param_1,long *param_2,undefined8 param_3,int param_4,undefined2 *param_5,
            long param_6,undefined8 param_7)

{
  long lVar1;
  int iVar2;
  undefined4 uVar3;
  undefined8 uVar4;
  long lVar5;
  undefined8 uVar6;
  char *pcVar7;
  undefined1 *puVar8;
  undefined2 uVar9;
  long lVar10;
  long lVar11;
  long local_c0;
  int local_a8;
  undefined1 local_98 [30];
  undefined2 local_7a;
  byte local_78;
  byte local_77;
  undefined1 local_68 [10];
  undefined2 local_5e;
  
  lVar10 = 0;
  local_c0 = xmalloc(0x50);
  local_a8 = 10;
  while( true ) {
    if ((param_6 <= param_2[3]) || (param_2[1] <= param_2[2])) break;
    lVar5 = *(long *)(*param_2 + param_2[2] * 8);
    iVar2 = bfd_coff_get_syment(param_1,lVar5,local_98);
    if (iVar2 == 0) {
      uVar3 = bfd_get_error();
      uVar4 = bfd_errmsg(uVar3);
      pcVar7 = "bfd_coff_get_syment failed: %s";
LAB_00135b43:
      uVar6 = dcgettext(0,pcVar7,5);
      FUN_00136630(uVar6,uVar4);
      return 0;
    }
    lVar1 = param_2[3];
    param_2[2] = param_2[2] + 1;
    param_2[3] = lVar1 + 1 + (ulong)local_77;
    puVar8 = (undefined1 *)0x0;
    if ((local_77 != 0) &&
       (iVar2 = bfd_coff_get_auxent(param_1,lVar5,0,local_68), puVar8 = local_68, iVar2 == 0)) {
      uVar3 = bfd_get_error();
      uVar4 = bfd_errmsg(uVar3);
      pcVar7 = "bfd_coff_get_auxent failed: %s";
      goto LAB_00135b43;
    }
    if (local_78 == 0xb) {
LAB_00135a18:
      uVar9 = 0;
      lVar11 = (*(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28)) * 8;
    }
    else {
      if (local_78 < 0xc) {
        if (local_78 == 8) goto LAB_00135a18;
      }
      else {
        if (local_78 == 0x12) {
          lVar11 = *(long *)(lVar5 + 0x10) + *(long *)(*(long *)(lVar5 + 0x20) + 0x28);
          uVar9 = local_5e;
          goto LAB_00135a30;
        }
        if (local_78 == 0x66) break;
      }
      lVar11 = 0;
      uVar9 = 0;
    }
LAB_00135a30:
    uVar4 = FUN_00135230(param_1,param_2,param_3,lVar1,local_7a,puVar8,1);
    lVar5 = FUN_0012da50(param_7,*(undefined8 *)(lVar5 + 8),uVar4,lVar11,uVar9);
    if (lVar5 == 0) {
      return 0;
    }
    if (local_a8 <= (int)lVar10 + 1) {
      local_a8 = local_a8 + 10;
      local_c0 = xrealloc(local_c0,(long)local_a8 << 3,param_7);
    }
    *(long *)(local_c0 + lVar10 * 8) = lVar5;
    lVar10 = lVar10 + 1;
  }
  *(undefined8 *)(local_c0 + (long)(int)lVar10 * 8) = 0;
  uVar4 = FUN_0012d5b0(param_7,param_4 == 8,*param_5);
  return uVar4;
}

