
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* 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 __regparm2
parse_coff_struct_type
          (bfd *abfd,coff_symbols *symbols,coff_types *types,int ntype,internal_auxent *pauxent,
          void *dhandle,internal_auxent *pauxent_1)

{
  bfd_vma *pbVar1;
  asymbol *paVar2;
  uint uVar3;
  int iVar4;
  debug_type_conflict pdVar5;
  uint uVar6;
  debug_type type;
  debug_field pdVar7;
  int iVar8;
  char *pcVar9;
  undefined4 uVar10;
  coff_types *in_ECX;
  int local_84;
  uint local_80;
  uint local_7c;
  internal_auxent *local_74;
  int local_70;
  int local_68;
  debug_field *local_64;
  internal_auxent auxent;
  internal_syment syment;
  
  local_64 = (debug_field *)xmalloc(0x28);
  local_68 = 10;
  local_70 = 0;
  while ((symbols->coff_symno < (int)pauxent && (symbols->symno < symbols->symcount))) {
    paVar2 = symbols->syms[symbols->symno];
    iVar4 = bfd_coff_get_syment(abfd,paVar2,&syment);
    if (iVar4 == 0) {
      uVar10 = bfd_get_error();
      uVar10 = bfd_errmsg(uVar10);
      pcVar9 = "bfd_coff_get_syment failed: %s";
LAB_00046e1b:
      pcVar9 = (char *)dcgettext(0,pcVar9,5);
      non_fatal(pcVar9,uVar10);
      return (debug_type)0x0;
    }
    iVar4 = symbols->coff_symno;
    local_74 = (internal_auxent *)0x0;
    symbols->symno = symbols->symno + 1;
    symbols->coff_symno = iVar4 + 1 + (uint)syment.n_numaux;
    if (syment.n_numaux != '\0') {
      local_74 = &auxent;
      iVar8 = bfd_coff_get_auxent(abfd,paVar2,0,local_74);
      if (iVar8 == 0) {
        uVar10 = bfd_get_error();
        uVar10 = bfd_errmsg(uVar10);
        pcVar9 = "bfd_coff_get_auxent failed: %s";
        goto LAB_00046e1b;
      }
    }
    if (syment.n_sclass == '\v') {
LAB_00046ca0:
      uVar3 = (uint)paVar2->value;
      local_7c = 0;
      pbVar1 = &paVar2->section->vma;
      uVar6 = uVar3 + (int)*pbVar1;
      local_80 = (*(int *)((int)&paVar2->value + 4) + *(int *)((int)&paVar2->section->vma + 4) +
                 (uint)CARRY4(uVar3,(uint)*pbVar1)) * 8 | uVar6 >> 0x1d;
      local_84 = uVar6 * 8;
    }
    else {
      if (syment.n_sclass < 0xc) {
        if (syment.n_sclass == '\b') goto LAB_00046ca0;
      }
      else {
        if (syment.n_sclass == '\x12') {
          uVar3 = (uint)paVar2->section->vma;
          local_84 = uVar3 + (int)paVar2->value;
          local_80 = *(int *)((int)&paVar2->section->vma + 4) + *(int *)((int)&paVar2->value + 4) +
                     (uint)CARRY4(uVar3,(uint)paVar2->value);
          local_7c = (uint)auxent.x_scn.x_nlinno;
          goto LAB_00046cd0;
        }
        if (syment.n_sclass == 'f') break;
      }
      local_7c = 0;
      local_84 = 0;
      local_80 = 0;
    }
LAB_00046cd0:
    type = parse_coff_type(abfd,symbols,in_ECX,iVar4,(uint)syment.n_type,local_74,1,dhandle);
    pdVar7 = debug_make_field(dhandle,paVar2->name,type,CONCAT44(local_80,local_84),
                              (ulonglong)local_7c,DEBUG_VISIBILITY_PUBLIC);
    if (pdVar7 == (debug_field)0x0) {
      return (debug_type)0x0;
    }
    if (local_68 <= local_70 + 1) {
      local_68 = local_68 + 10;
      local_64 = (debug_field *)xrealloc(local_64,local_68 * 4);
    }
    local_64[local_70] = pdVar7;
    local_70 = local_70 + 1;
  }
  local_64[local_70] = (debug_field)0x0;
  pdVar5 = debug_make_struct_type
                     (dhandle,(uint)(types == (coff_types *)0x8),(ulonglong)*(ushort *)ntype,
                      local_64);
  return pdVar5;
}



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

undefined4 __regparm2
FUN_00046b90(undefined4 param_1,int *param_2,int param_3,undefined2 *param_4,int param_5,
            undefined4 param_6)

{
  uint *puVar1;
  undefined2 uVar2;
  int iVar3;
  undefined4 uVar4;
  uint uVar5;
  int iVar6;
  int iVar7;
  char *pcVar8;
  undefined4 uVar9;
  int local_84;
  uint local_80;
  undefined1 *local_74;
  int local_70;
  int local_68;
  int local_64;
  undefined1 local_50 [6];
  undefined2 local_4a;
  undefined1 local_38 [22];
  undefined2 local_22;
  byte local_20;
  byte local_1f;
  undefined4 uStack_14;
  
  uStack_14 = 0x46b9d;
  local_64 = xmalloc(0x28);
  local_68 = 10;
  local_70 = 0;
  while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {
    iVar6 = *(int *)(*param_2 + param_2[2] * 4);
    iVar3 = bfd_coff_get_syment(param_1,iVar6,local_38);
    if (iVar3 == 0) {
      uVar4 = bfd_get_error();
      uVar4 = bfd_errmsg(uVar4);
      pcVar8 = "bfd_coff_get_syment failed: %s";
LAB_00046e1b:
      uVar9 = dcgettext(0,pcVar8,5);
      FUN_00047a20(uVar9,uVar4);
      return 0;
    }
    iVar3 = param_2[3];
    local_74 = (undefined1 *)0x0;
    param_2[2] = param_2[2] + 1;
    param_2[3] = iVar3 + 1 + (uint)local_1f;
    if (local_1f != 0) {
      local_74 = local_50;
      iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);
      if (iVar7 == 0) {
        uVar4 = bfd_get_error();
        uVar4 = bfd_errmsg(uVar4);
        pcVar8 = "bfd_coff_get_auxent failed: %s";
        goto LAB_00046e1b;
      }
    }
    if (local_20 == 0xb) {
LAB_00046ca0:
      uVar2 = 0;
      puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);
      uVar5 = *(uint *)(iVar6 + 8) + *puVar1;
      local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +
                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;
      local_84 = uVar5 * 8;
    }
    else {
      if (local_20 < 0xc) {
        if (local_20 == 8) goto LAB_00046ca0;
      }
      else {
        if (local_20 == 0x12) {
          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);
          local_84 = uVar5 + *(uint *)(iVar6 + 8);
          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +
                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));
          uVar2 = local_4a;
          goto LAB_00046cd0;
        }
        if (local_20 == 0x66) break;
      }
      local_84 = 0;
      local_80 = 0;
      uVar2 = 0;
    }
LAB_00046cd0:
    uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6);
    iVar6 = FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0);
    if (iVar6 == 0) {
      return 0;
    }
    local_70 = local_70 + 1;
    if (local_68 <= local_70) {
      local_68 = local_68 + 10;
      local_64 = xrealloc(local_64,local_68 * 4);
    }
    *(int *)(local_64 + -4 + local_70 * 4) = iVar6;
  }
  *(undefined4 *)(local_64 + local_70 * 4) = 0;
  uVar4 = FUN_0003def0(param_6,param_3 == 8,*param_4,0,local_64);
  return uVar4;
}


PUSH EBP
MOV EBP,EDX
PUSH EDI
MOV EDI,EAX
PUSH ESI
PUSH EBX
CALL 0x000153d0
ADD EBX,0x2c463
SUB ESP,0x88
MOV dword ptr [ESP + 0x38],ECX
PUSH 0x28
CALL 0x000142b0
MOV dword ptr [ESP + 0x38],EAX
ADD ESP,0x10
LEA EAX,[ESP + 0x54]
MOV dword ptr [ESP + 0x24],0xa
MOV dword ptr [ESP + 0x1c],0x0
MOV dword ptr [ESP + 0x20],EAX
MOV dword ptr [ESP + 0x4],EDI
MOV EAX,dword ptr [ESP + 0x98]
CMP dword ptr [EBP + 0xc],EAX
JGE 0x00046c4d
MOV EAX,dword ptr [EBP + 0x8]
CMP EAX,dword ptr [EBP + 0x4]
JGE 0x00046c4d
MOV EDX,dword ptr [EBP]
SUB ESP,0x4
MOV ESI,dword ptr [EDX + EAX*0x4]
PUSH dword ptr [ESP + 0x24]
PUSH ESI
PUSH dword ptr [ESP + 0x10]
CALL 0x000145b0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00046e00
MOV EDI,dword ptr [EBP + 0xc]
MOVZX EDX,byte ptr [ESP + 0x6d]
MOV dword ptr [ESP + 0x18],0x0
ADD dword ptr [EBP + 0x8],0x1
MOV EAX,EDX
LEA EDX,[EDI + EDX*0x1 + 0x1]
MOV dword ptr [EBP + 0xc],EDX
TEST AL,AL
JNZ 0x00046d78
MOVZX EAX,byte ptr [ESP + 0x6c]
CMP AL,0xb
JZ 0x00046ca0
JBE 0x00046c98
CMP AL,0x12
JZ 0x00046da8
CMP AL,0x66
JNZ 0x00046d50
MOV EAX,dword ptr [ESP + 0x28]
MOV ECX,dword ptr [ESP + 0x1c]
SUB ESP,0xc
XOR EDX,EDX
MOV dword ptr [EAX + ECX*0x4],0x0
PUSH EAX
MOV EAX,dword ptr [ESP + 0xa4]
MOVZX EAX,word ptr [EAX]
PUSH EDX
PUSH EAX
XOR EAX,EAX
CMP dword ptr [ESP + 0xa8],0x8
SETZ AL
PUSH EAX
PUSH dword ptr [ESP + 0xb8]
CALL 0x0003def0
ADD ESP,0x20
ADD ESP,0x7c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP AL,0x8
JNZ 0x00046d50
MOV ECX,dword ptr [ESI + 0x14]
MOV EAX,dword ptr [ESI + 0x8]
MOV dword ptr [ESP + 0x10],0x0
MOV EDX,dword ptr [ESI + 0xc]
MOV dword ptr [ESP + 0x14],0x0
ADD EAX,dword ptr [ECX + 0x1c]
ADC EDX,dword ptr [ECX + 0x20]
SHLD EDX,EAX,0x3
SHL EAX,0x3
MOV dword ptr [ESP + 0x8],EAX
MOV dword ptr [ESP + 0xc],EDX
NOP
SUB ESP,0xc
MOV EDX,EBP
PUSH dword ptr [ESP + 0xa8]
PUSH 0x1
PUSH dword ptr [ESP + 0x2c]
MOVZX EAX,word ptr [ESP + 0x82]
PUSH EAX
PUSH EDI
MOV ECX,dword ptr [ESP + 0x4c]
MOV EAX,dword ptr [ESP + 0x24]
CALL 0x00046470
ADD ESP,0x20
PUSH 0x0
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [ESP + 0x18]
PUSH EAX
PUSH dword ptr [ESI + 0x4]
PUSH dword ptr [ESP + 0xb8]
CALL 0x0003e410
ADD ESP,0x20
MOV ESI,EAX
TEST EAX,EAX
JZ 0x00046e2f
ADD dword ptr [ESP + 0x1c],0x1
MOV EAX,dword ptr [ESP + 0x1c]
CMP EAX,dword ptr [ESP + 0x24]
JGE 0x00046dd8
MOV EAX,dword ptr [ESP + 0x28]
MOV EDI,dword ptr [ESP + 0x1c]
MOV dword ptr [EAX + EDI*0x4 + -0x4],ESI
JMP 0x00046bd7
MOV dword ptr [ESP + 0x10],0x0
MOV dword ptr [ESP + 0x14],0x0
MOV dword ptr [ESP + 0x8],0x0
MOV dword ptr [ESP + 0xc],0x0
JMP 0x00046cd0
LEA ECX,[ESP + 0x3c]
PUSH ECX
MOV dword ptr [ESP + 0xc],ECX
PUSH 0x0
PUSH ESI
PUSH dword ptr [ESP + 0x10]
CALL 0x000144d0
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JZ 0x00046e39
MOV dword ptr [ESP + 0x18],ECX
JMP 0x00046c32
MOV EAX,dword ptr [ESI + 0x14]
MOV dword ptr [ESP + 0x14],0x0
MOV EDX,dword ptr [EAX + 0x20]
MOV EAX,dword ptr [EAX + 0x1c]
ADD EAX,dword ptr [ESI + 0x8]
ADC EDX,dword ptr [ESI + 0xc]
MOV dword ptr [ESP + 0x8],EAX
MOVZX EAX,word ptr [ESP + 0x42]
MOV dword ptr [ESP + 0xc],EDX
MOV dword ptr [ESP + 0x10],EAX
JMP 0x00046cd0
ADD dword ptr [ESP + 0x24],0xa
MOV EAX,dword ptr [ESP + 0x24]
SUB ESP,0x8
SHL EAX,0x2
PUSH EAX
PUSH dword ptr [ESP + 0x34]
CALL 0x00014220
MOV dword ptr [ESP + 0x38],EAX
ADD ESP,0x10
JMP 0x00046d3e
CALL 0x00014270
SUB ESP,0xc
PUSH EAX
CALL 0x000146e0
ADD ESP,0xc
PUSH 0x5
MOV ESI,EAX
LEA EAX,[EBX + 0xfffe5f20]
PUSH EAX
PUSH 0x0
CALL 0x000141f0
POP EDI
POP EBP
PUSH ESI
PUSH EAX
CALL 0x00047a20
ADD ESP,0x10
ADD ESP,0x7c
XOR EAX,EAX
POP EBX
POP ESI
POP EDI
POP EBP
RET
CALL 0x00014270
SUB ESP,0xc
PUSH EAX
CALL 0x000146e0
ADD ESP,0xc
MOV ESI,EAX
PUSH 0x5
LEA EAX,[EBX + 0xfffe5f40]
JMP 0x00046e1b
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 __regparm2\nFUN_00046b90(undefined4 param_1,int *param_2,int param_3,undefined2 *param_4,int param_5,\n            undefined4 param_6)\n\n{\n  uint *puVar1;\n  undefined2 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  int local_84;\n  uint local_80;\n  undefined1 *local_74;\n  int local_70;\n  int local_68;\n  int local_64;\n  undefined1 local_50 [6];\n  undefined2 local_4a;\n  undefined1 local_38 [22];\n  undefined2 local_22;\n  byte local_20;\n  byte local_1f;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x46b9d;\n  local_64 = xmalloc(0x28);\n  local_68 = 10;\n  local_70 = 0;\n  while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {\n    iVar6 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar3 = bfd_coff_get_syment(param_1,iVar6,local_38);\n    if (iVar3 == 0) {\n      uVar4 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar4);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_00047a20(uVar9,uVar4);\n      return 0;\n    }\n    iVar3 = param_2[3];\n    local_74 = (undefined1 *)0x0;\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar3 + 1 + (uint)local_1f;\n    if (local_1f != 0) {\n      local_74 = local_50;\n      iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);\n      if (iVar7 == 0) {\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }\n    if (local_20 == 0xb) {\nLAB_00046ca0:\n      uVar2 = 0;\n      puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n      uVar5 = *(uint *)(iVar6 + 8) + *puVar1;\n      local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;\n      local_84 = uVar5 * 8;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_84 = 0;\n      local_80 = 0;\n      uVar2 = 0;\n    }\nLAB_00046cd0:\n    uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6);\n    iVar6 = FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    local_70 = local_70 + 1;\n    if (local_68 <= local_70) {\n      local_68 = local_68 + 10;\n      local_64 = xrealloc(local_64,local_68 * 4);\n    }\n    *(int *)(local_64 + -4 + local_70 * 4) = iVar6;\n  }\n  *(undefined4 *)(local_64 + local_70 * 4) = 0;\n  uVar4 = FUN_0003def0(param_6,param_3 == 8,*param_4,0,local_64);\n  return uVar4;\n}\n\n" comment (function_definition "undefined4 __regparm2\nFUN_00046b90(undefined4 param_1,int *param_2,int param_3,undefined2 *param_4,int param_5,\n            undefined4 param_6)\n\n{\n  uint *puVar1;\n  undefined2 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  int local_84;\n  uint local_80;\n  undefined1 *local_74;\n  int local_70;\n  int local_68;\n  int local_64;\n  undefined1 local_50 [6];\n  undefined2 local_4a;\n  undefined1 local_38 [22];\n  undefined2 local_22;\n  byte local_20;\n  byte local_1f;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x46b9d;\n  local_64 = xmalloc(0x28);\n  local_68 = 10;\n  local_70 = 0;\n  while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {\n    iVar6 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar3 = bfd_coff_get_syment(param_1,iVar6,local_38);\n    if (iVar3 == 0) {\n      uVar4 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar4);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_00047a20(uVar9,uVar4);\n      return 0;\n    }\n    iVar3 = param_2[3];\n    local_74 = (undefined1 *)0x0;\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar3 + 1 + (uint)local_1f;\n    if (local_1f != 0) {\n      local_74 = local_50;\n      iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);\n      if (iVar7 == 0) {\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }\n    if (local_20 == 0xb) {\nLAB_00046ca0:\n      uVar2 = 0;\n      puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n      uVar5 = *(uint *)(iVar6 + 8) + *puVar1;\n      local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;\n      local_84 = uVar5 * 8;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_84 = 0;\n      local_80 = 0;\n      uVar2 = 0;\n    }\nLAB_00046cd0:\n    uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6);\n    iVar6 = FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    local_70 = local_70 + 1;\n    if (local_68 <= local_70) {\n      local_68 = local_68 + 10;\n      local_64 = xrealloc(local_64,local_68 * 4);\n    }\n    *(int *)(local_64 + -4 + local_70 * 4) = iVar6;\n  }\n  *(undefined4 *)(local_64 + local_70 * 4) = 0;\n  uVar4 = FUN_0003def0(param_6,param_3 == 8,*param_4,0,local_64);\n  return uVar4;\n}" type_identifier (ERROR "__regparm2" identifier) (function_declarator "FUN_00046b90(undefined4 param_1,int *param_2,int param_3,undefined2 *param_4,int param_5,\n            undefined4 param_6)" identifier (parameter_list "(undefined4 param_1,int *param_2,int param_3,undefined2 *param_4,int param_5,\n            undefined4 param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined2 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) ))) (compound_statement "{\n  uint *puVar1;\n  undefined2 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  int local_84;\n  uint local_80;\n  undefined1 *local_74;\n  int local_70;\n  int local_68;\n  int local_64;\n  undefined1 local_50 [6];\n  undefined2 local_4a;\n  undefined1 local_38 [22];\n  undefined2 local_22;\n  byte local_20;\n  byte local_1f;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x46b9d;\n  local_64 = xmalloc(0x28);\n  local_68 = 10;\n  local_70 = 0;\n  while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {\n    iVar6 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar3 = bfd_coff_get_syment(param_1,iVar6,local_38);\n    if (iVar3 == 0) {\n      uVar4 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar4);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_00047a20(uVar9,uVar4);\n      return 0;\n    }\n    iVar3 = param_2[3];\n    local_74 = (undefined1 *)0x0;\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar3 + 1 + (uint)local_1f;\n    if (local_1f != 0) {\n      local_74 = local_50;\n      iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);\n      if (iVar7 == 0) {\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }\n    if (local_20 == 0xb) {\nLAB_00046ca0:\n      uVar2 = 0;\n      puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n      uVar5 = *(uint *)(iVar6 + 8) + *puVar1;\n      local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;\n      local_84 = uVar5 * 8;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_84 = 0;\n      local_80 = 0;\n      uVar2 = 0;\n    }\nLAB_00046cd0:\n    uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6);\n    iVar6 = FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    local_70 = local_70 + 1;\n    if (local_68 <= local_70) {\n      local_68 = local_68 + 10;\n      local_64 = xrealloc(local_64,local_68 * 4);\n    }\n    *(int *)(local_64 + -4 + local_70 * 4) = iVar6;\n  }\n  *(undefined4 *)(local_64 + local_70 * 4) = 0;\n  uVar4 = FUN_0003def0(param_6,param_3 == 8,*param_4,0,local_64);\n  return uVar4;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined2 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "int local_84;" primitive_type identifier ;) (declaration "uint local_80;" type_identifier identifier ;) (declaration "undefined1 *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "undefined1 local_50 [6];" type_identifier (array_declarator "local_50 [6]" identifier [ number_literal ]) ;) (declaration "undefined2 local_4a;" type_identifier identifier ;) (declaration "undefined1 local_38 [22];" type_identifier (array_declarator "local_38 [22]" identifier [ number_literal ]) ;) (declaration "undefined2 local_22;" type_identifier identifier ;) (declaration "byte local_20;" type_identifier identifier ;) (declaration "byte local_1f;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x46b9d;" (assignment_expression "uStack_14 = 0x46b9d" identifier = number_literal) ;) (expression_statement "local_64 = xmalloc(0x28);" (assignment_expression "local_64 = xmalloc(0x28)" identifier = (call_expression "xmalloc(0x28)" identifier (argument_list "(0x28)" ( number_literal )))) ;) (expression_statement "local_68 = 10;" (assignment_expression "local_68 = 10" identifier = number_literal) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (while_statement "while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {\n    iVar6 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar3 = bfd_coff_get_syment(param_1,iVar6,local_38);\n    if (iVar3 == 0) {\n      uVar4 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar4);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_00047a20(uVar9,uVar4);\n      return 0;\n    }\n    iVar3 = param_2[3];\n    local_74 = (undefined1 *)0x0;\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar3 + 1 + (uint)local_1f;\n    if (local_1f != 0) {\n      local_74 = local_50;\n      iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);\n      if (iVar7 == 0) {\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }\n    if (local_20 == 0xb) {\nLAB_00046ca0:\n      uVar2 = 0;\n      puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n      uVar5 = *(uint *)(iVar6 + 8) + *puVar1;\n      local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;\n      local_84 = uVar5 * 8;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_84 = 0;\n      local_80 = 0;\n      uVar2 = 0;\n    }\nLAB_00046cd0:\n    uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6);\n    iVar6 = FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    local_70 = local_70 + 1;\n    if (local_68 <= local_70) {\n      local_68 = local_68 + 10;\n      local_64 = xrealloc(local_64,local_68 * 4);\n    }\n    *(int *)(local_64 + -4 + local_70 * 4) = iVar6;\n  }" while (parenthesized_expression "((param_2[3] < param_5 && (param_2[2] < param_2[1])))" ( (parenthesized_expression "(param_2[3] < param_5 && (param_2[2] < param_2[1]))" ( (binary_expression "param_2[3] < param_5 && (param_2[2] < param_2[1])" (binary_expression "param_2[3] < param_5" (subscript_expression "param_2[3]" identifier [ number_literal ]) < identifier) && (parenthesized_expression "(param_2[2] < param_2[1])" ( (binary_expression "param_2[2] < param_2[1]" (subscript_expression "param_2[2]" identifier [ number_literal ]) < (subscript_expression "param_2[1]" identifier [ number_literal ])) ))) )) )) (compound_statement "{\n    iVar6 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar3 = bfd_coff_get_syment(param_1,iVar6,local_38);\n    if (iVar3 == 0) {\n      uVar4 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar4);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_00047a20(uVar9,uVar4);\n      return 0;\n    }\n    iVar3 = param_2[3];\n    local_74 = (undefined1 *)0x0;\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar3 + 1 + (uint)local_1f;\n    if (local_1f != 0) {\n      local_74 = local_50;\n      iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);\n      if (iVar7 == 0) {\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }\n    if (local_20 == 0xb) {\nLAB_00046ca0:\n      uVar2 = 0;\n      puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n      uVar5 = *(uint *)(iVar6 + 8) + *puVar1;\n      local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;\n      local_84 = uVar5 * 8;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_84 = 0;\n      local_80 = 0;\n      uVar2 = 0;\n    }\nLAB_00046cd0:\n    uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6);\n    iVar6 = FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    local_70 = local_70 + 1;\n    if (local_68 <= local_70) {\n      local_68 = local_68 + 10;\n      local_64 = xrealloc(local_64,local_68 * 4);\n    }\n    *(int *)(local_64 + -4 + local_70 * 4) = iVar6;\n  }" { (expression_statement "iVar6 = *(int *)(*param_2 + param_2[2] * 4);" (assignment_expression "iVar6 = *(int *)(*param_2 + param_2[2] * 4)" identifier = (pointer_expression "*(int *)(*param_2 + param_2[2] * 4)" * (cast_expression "(int *)(*param_2 + param_2[2] * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + param_2[2] * 4)" ( (binary_expression "*param_2 + param_2[2] * 4" (pointer_expression "*param_2" * identifier) + (binary_expression "param_2[2] * 4" (subscript_expression "param_2[2]" identifier [ number_literal ]) * number_literal)) ))))) ;) (expression_statement "iVar3 = bfd_coff_get_syment(param_1,iVar6,local_38);" (assignment_expression "iVar3 = bfd_coff_get_syment(param_1,iVar6,local_38)" identifier = (call_expression "bfd_coff_get_syment(param_1,iVar6,local_38)" identifier (argument_list "(param_1,iVar6,local_38)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      uVar4 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar4);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_00047a20(uVar9,uVar4);\n      return 0;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar4 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar4);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_00047a20(uVar9,uVar4);\n      return 0;\n    }" { (expression_statement "uVar4 = bfd_get_error();" (assignment_expression "uVar4 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar4 = bfd_errmsg(uVar4);" (assignment_expression "uVar4 = bfd_errmsg(uVar4)" identifier = (call_expression "bfd_errmsg(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "pcVar8 = "bfd_coff_get_syment failed: %s";" (assignment_expression "pcVar8 = "bfd_coff_get_syment failed: %s"" identifier = (string_literal ""bfd_coff_get_syment failed: %s"" " string_content ")) ;) (labeled_statement "LAB_00046e1b:\n      uVar9 = dcgettext(0,pcVar8,5);" statement_identifier : (expression_statement "uVar9 = dcgettext(0,pcVar8,5);" (assignment_expression "uVar9 = dcgettext(0,pcVar8,5)" identifier = (call_expression "dcgettext(0,pcVar8,5)" identifier (argument_list "(0,pcVar8,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_00047a20(uVar9,uVar4);" (call_expression "FUN_00047a20(uVar9,uVar4)" identifier (argument_list "(uVar9,uVar4)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = param_2[3];" (assignment_expression "iVar3 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "local_74 = (undefined1 *)0x0;" (assignment_expression "local_74 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) 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] = iVar3 + 1 + (uint)local_1f;" (assignment_expression "param_2[3] = iVar3 + 1 + (uint)local_1f" (subscript_expression "param_2[3]" identifier [ number_literal ]) = (binary_expression "iVar3 + 1 + (uint)local_1f" (binary_expression "iVar3 + 1" identifier + number_literal) + (cast_expression "(uint)local_1f" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (local_1f != 0) {\n      local_74 = local_50;\n      iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);\n      if (iVar7 == 0) {\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }" if (parenthesized_expression "(local_1f != 0)" ( (binary_expression "local_1f != 0" identifier != number_literal) )) (compound_statement "{\n      local_74 = local_50;\n      iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);\n      if (iVar7 == 0) {\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }" { (expression_statement "local_74 = local_50;" (assignment_expression "local_74 = local_50" identifier = identifier) ;) (expression_statement "iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);" (assignment_expression "iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74)" identifier = (call_expression "bfd_coff_get_auxent(param_1,iVar6,0,local_74)" identifier (argument_list "(param_1,iVar6,0,local_74)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }" { (expression_statement "uVar4 = bfd_get_error();" (assignment_expression "uVar4 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar4 = bfd_errmsg(uVar4);" (assignment_expression "uVar4 = bfd_errmsg(uVar4)" identifier = (call_expression "bfd_errmsg(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "pcVar8 = "bfd_coff_get_auxent failed: %s";" (assignment_expression "pcVar8 = "bfd_coff_get_auxent failed: %s"" identifier = (string_literal ""bfd_coff_get_auxent failed: %s"" " string_content ")) ;) (goto_statement "goto LAB_00046e1b;" goto statement_identifier ;) })) })) (if_statement "if (local_20 == 0xb) {\nLAB_00046ca0:\n      uVar2 = 0;\n      puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n      uVar5 = *(uint *)(iVar6 + 8) + *puVar1;\n      local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;\n      local_84 = uVar5 * 8;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_84 = 0;\n      local_80 = 0;\n      uVar2 = 0;\n    }" if (parenthesized_expression "(local_20 == 0xb)" ( (binary_expression "local_20 == 0xb" identifier == number_literal) )) (compound_statement "{\nLAB_00046ca0:\n      uVar2 = 0;\n      puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n      uVar5 = *(uint *)(iVar6 + 8) + *puVar1;\n      local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;\n      local_84 = uVar5 * 8;\n    }" { (labeled_statement "LAB_00046ca0:\n      uVar2 = 0;" statement_identifier : (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;)) (expression_statement "puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);" (assignment_expression "puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c)" identifier = (cast_expression "(uint *)(*(int *)(iVar6 + 0x14) + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar6 + 0x14) + 0x1c)" ( (binary_expression "*(int *)(iVar6 + 0x14) + 0x1c" (pointer_expression "*(int *)(iVar6 + 0x14)" * (cast_expression "(int *)(iVar6 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar5 = *(uint *)(iVar6 + 8) + *puVar1;" (assignment_expression "uVar5 = *(uint *)(iVar6 + 8) + *puVar1" identifier = (binary_expression "*(uint *)(iVar6 + 8) + *puVar1" (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) + (pointer_expression "*puVar1" * identifier))) ;) (expression_statement "local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;" (assignment_expression "local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d" identifier = (binary_expression "(*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d" (binary_expression "(*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8" (parenthesized_expression "(*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1))" ( (binary_expression "*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)" (binary_expression "*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20)" (pointer_expression "*(int *)(iVar6 + 0xc)" * (cast_expression "(int *)(iVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) )))) + (pointer_expression "*(int *)(*(int *)(iVar6 + 0x14) + 0x20)" * (cast_expression "(int *)(*(int *)(iVar6 + 0x14) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar6 + 0x14) + 0x20)" ( (binary_expression "*(int *)(iVar6 + 0x14) + 0x20" (pointer_expression "*(int *)(iVar6 + 0x14)" * (cast_expression "(int *)(iVar6 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) + number_literal) ))))) + (cast_expression "(uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(*(uint *)(iVar6 + 8),*puVar1)" identifier (argument_list "(*(uint *)(iVar6 + 8),*puVar1)" ( (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) , (pointer_expression "*puVar1" * identifier) ))))) )) * number_literal) | (binary_expression "uVar5 >> 0x1d" identifier >> number_literal))) ;) (expression_statement "local_84 = uVar5 * 8;" (assignment_expression "local_84 = uVar5 * 8" identifier = (binary_expression "uVar5 * 8" identifier * number_literal)) ;) }) (else_clause "else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_84 = 0;\n      local_80 = 0;\n      uVar2 = 0;\n    }" else (compound_statement "{\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_84 = 0;\n      local_80 = 0;\n      uVar2 = 0;\n    }" { (if_statement "if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }" if (parenthesized_expression "(local_20 < 0xc)" ( (binary_expression "local_20 < 0xc" identifier < number_literal) )) (compound_statement "{\n        if (local_20 == 8) goto LAB_00046ca0;\n      }" { (if_statement "if (local_20 == 8) goto LAB_00046ca0;" if (parenthesized_expression "(local_20 == 8)" ( (binary_expression "local_20 == 8" identifier == number_literal) )) (goto_statement "goto LAB_00046ca0;" goto statement_identifier ;)) }) (else_clause "else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }" else (compound_statement "{\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }" { (if_statement "if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }" if (parenthesized_expression "(local_20 == 0x12)" ( (binary_expression "local_20 == 0x12" identifier == number_literal) )) (compound_statement "{\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }" { (expression_statement "uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);" (assignment_expression "uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c)" identifier = (pointer_expression "*(uint *)(*(int *)(iVar6 + 0x14) + 0x1c)" * (cast_expression "(uint *)(*(int *)(iVar6 + 0x14) + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar6 + 0x14) + 0x1c)" ( (binary_expression "*(int *)(iVar6 + 0x14) + 0x1c" (pointer_expression "*(int *)(iVar6 + 0x14)" * (cast_expression "(int *)(iVar6 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_84 = uVar5 + *(uint *)(iVar6 + 8);" (assignment_expression "local_84 = uVar5 + *(uint *)(iVar6 + 8)" identifier = (binary_expression "uVar5 + *(uint *)(iVar6 + 8)" identifier + (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))))) ;) (expression_statement "local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));" (assignment_expression "local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8))" identifier = (binary_expression "*(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8))" (binary_expression "*(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc)" (pointer_expression "*(int *)(*(int *)(iVar6 + 0x14) + 0x20)" * (cast_expression "(int *)(*(int *)(iVar6 + 0x14) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar6 + 0x14) + 0x20)" ( (binary_expression "*(int *)(iVar6 + 0x14) + 0x20" (pointer_expression "*(int *)(iVar6 + 0x14)" * (cast_expression "(int *)(iVar6 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) + number_literal) )))) + (pointer_expression "*(int *)(iVar6 + 0xc)" * (cast_expression "(int *)(iVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar5,*(uint *)(iVar6 + 8))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar5,*(uint *)(iVar6 + 8))" identifier (argument_list "(uVar5,*(uint *)(iVar6 + 8))" ( identifier , (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) )))))) ;) (expression_statement "uVar2 = local_4a;" (assignment_expression "uVar2 = local_4a" identifier = identifier) ;) (goto_statement "goto LAB_00046cd0;" goto statement_identifier ;) })) (if_statement "if (local_20 == 0x66) break;" if (parenthesized_expression "(local_20 == 0x66)" ( (binary_expression "local_20 == 0x66" identifier == number_literal) )) (break_statement "break;" break ;)) }))) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" identifier = number_literal) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_00046cd0:\n    uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6);" statement_identifier : (expression_statement "uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6);" (assignment_expression "uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6)" identifier = (call_expression "FUN_00046470(iVar3,local_22,local_74,1,param_6)" identifier (argument_list "(iVar3,local_22,local_74,1,param_6)" ( identifier , identifier , identifier , number_literal , identifier )))) ;)) (expression_statement "iVar6 = FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0);" (assignment_expression "iVar6 = FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0)" identifier = (call_expression "FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0)" identifier (argument_list "(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0)" ( identifier , (pointer_expression "*(undefined4 *)(iVar6 + 4)" * (cast_expression "(undefined4 *)(iVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) , identifier , identifier , identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_70 = local_70 + 1;" (assignment_expression "local_70 = local_70 + 1" identifier = (binary_expression "local_70 + 1" identifier + number_literal)) ;) (if_statement "if (local_68 <= local_70) {\n      local_68 = local_68 + 10;\n      local_64 = xrealloc(local_64,local_68 * 4);\n    }" if (parenthesized_expression "(local_68 <= local_70)" ( (binary_expression "local_68 <= local_70" identifier <= identifier) )) (compound_statement "{\n      local_68 = local_68 + 10;\n      local_64 = xrealloc(local_64,local_68 * 4);\n    }" { (expression_statement "local_68 = local_68 + 10;" (assignment_expression "local_68 = local_68 + 10" identifier = (binary_expression "local_68 + 10" identifier + number_literal)) ;) (expression_statement "local_64 = xrealloc(local_64,local_68 * 4);" (assignment_expression "local_64 = xrealloc(local_64,local_68 * 4)" identifier = (call_expression "xrealloc(local_64,local_68 * 4)" identifier (argument_list "(local_64,local_68 * 4)" ( identifier , (binary_expression "local_68 * 4" identifier * number_literal) )))) ;) })) (expression_statement "*(int *)(local_64 + -4 + local_70 * 4) = iVar6;" (assignment_expression "*(int *)(local_64 + -4 + local_70 * 4) = iVar6" (pointer_expression "*(int *)(local_64 + -4 + local_70 * 4)" * (cast_expression "(int *)(local_64 + -4 + local_70 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_64 + -4 + local_70 * 4)" ( (binary_expression "local_64 + -4 + local_70 * 4" (binary_expression "local_64 + -4" identifier + number_literal) + (binary_expression "local_70 * 4" identifier * number_literal)) )))) = identifier) ;) })) (expression_statement "*(undefined4 *)(local_64 + local_70 * 4) = 0;" (assignment_expression "*(undefined4 *)(local_64 + local_70 * 4) = 0" (pointer_expression "*(undefined4 *)(local_64 + local_70 * 4)" * (cast_expression "(undefined4 *)(local_64 + local_70 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_64 + local_70 * 4)" ( (binary_expression "local_64 + local_70 * 4" identifier + (binary_expression "local_70 * 4" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "uVar4 = FUN_0003def0(param_6,param_3 == 8,*param_4,0,local_64);" (assignment_expression "uVar4 = FUN_0003def0(param_6,param_3 == 8,*param_4,0,local_64)" identifier = (call_expression "FUN_0003def0(param_6,param_3 == 8,*param_4,0,local_64)" identifier (argument_list "(param_6,param_3 == 8,*param_4,0,local_64)" ( identifier , (binary_expression "param_3 == 8" identifier == number_literal) , (pointer_expression "*param_4" * identifier) , number_literal , identifier )))) ;) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* 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 __regparm2\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  bfd_vma *pbVar1;\n  asymbol *paVar2;\n  uint uVar3;\n  int iVar4;\n  debug_type_conflict pdVar5;\n  uint uVar6;\n  debug_type type;\n  debug_field pdVar7;\n  int iVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  coff_types *in_ECX;\n  int local_84;\n  uint local_80;\n  uint local_7c;\n  internal_auxent *local_74;\n  int local_70;\n  int local_68;\n  debug_field *local_64;\n  internal_auxent auxent;\n  internal_syment syment;\n  \n  local_64 = (debug_field *)xmalloc(0x28);\n  local_68 = 10;\n  local_70 = 0;\n  while ((symbols->coff_symno < (int)pauxent && (symbols->symno < symbols->symcount))) {\n    paVar2 = symbols->syms[symbols->symno];\n    iVar4 = bfd_coff_get_syment(abfd,paVar2,&syment);\n    if (iVar4 == 0) {\n      uVar10 = bfd_get_error();\n      uVar10 = bfd_errmsg(uVar10);\n      pcVar9 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      pcVar9 = (char *)dcgettext(0,pcVar9,5);\n      non_fatal(pcVar9,uVar10);\n      return (debug_type)0x0;\n    }\n    iVar4 = symbols->coff_symno;\n    local_74 = (internal_auxent *)0x0;\n    symbols->symno = symbols->symno + 1;\n    symbols->coff_symno = iVar4 + 1 + (uint)syment.n_numaux;\n    if (syment.n_numaux != '\0') {\n      local_74 = &auxent;\n      iVar8 = bfd_coff_get_auxent(abfd,paVar2,0,local_74);\n      if (iVar8 == 0) {\n        uVar10 = bfd_get_error();\n        uVar10 = bfd_errmsg(uVar10);\n        pcVar9 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }\n    if (syment.n_sclass == '\v') {\nLAB_00046ca0:\n      uVar3 = (uint)paVar2->value;\n      local_7c = 0;\n      pbVar1 = &paVar2->section->vma;\n      uVar6 = uVar3 + (int)*pbVar1;\n      local_80 = (*(int *)((int)&paVar2->value + 4) + *(int *)((int)&paVar2->section->vma + 4) +\n                 (uint)CARRY4(uVar3,(uint)*pbVar1)) * 8 | uVar6 >> 0x1d;\n      local_84 = uVar6 * 8;\n    }\n    else {\n      if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00046ca0;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          uVar3 = (uint)paVar2->section->vma;\n          local_84 = uVar3 + (int)paVar2->value;\n          local_80 = *(int *)((int)&paVar2->section->vma + 4) + *(int *)((int)&paVar2->value + 4) +\n                     (uint)CARRY4(uVar3,(uint)paVar2->value);\n          local_7c = (uint)auxent.x_scn.x_nlinno;\n          goto LAB_00046cd0;\n        }\n        if (syment.n_sclass == 'f') break;\n      }\n      local_7c = 0;\n      local_84 = 0;\n      local_80 = 0;\n    }\nLAB_00046cd0:\n    type = parse_coff_type(abfd,symbols,in_ECX,iVar4,(uint)syment.n_type,local_74,1,dhandle);\n    pdVar7 = debug_make_field(dhandle,paVar2->name,type,CONCAT44(local_80,local_84),\n                              (ulonglong)local_7c,DEBUG_VISIBILITY_PUBLIC);\n    if (pdVar7 == (debug_field)0x0) {\n      return (debug_type)0x0;\n    }\n    if (local_68 <= local_70 + 1) {\n      local_68 = local_68 + 10;\n      local_64 = (debug_field *)xrealloc(local_64,local_68 * 4);\n    }\n    local_64[local_70] = pdVar7;\n    local_70 = local_70 + 1;\n  }\n  local_64[local_70] = (debug_field)0x0;\n  pdVar5 = debug_make_struct_type\n                     (dhandle,(uint)(types == (coff_types *)0x8),(ulonglong)*(ushort *)ntype,\n                      local_64);\n  return pdVar5;\n}\n\n" comment comment (function_definition "debug_type __regparm2\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  bfd_vma *pbVar1;\n  asymbol *paVar2;\n  uint uVar3;\n  int iVar4;\n  debug_type_conflict pdVar5;\n  uint uVar6;\n  debug_type type;\n  debug_field pdVar7;\n  int iVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  coff_types *in_ECX;\n  int local_84;\n  uint local_80;\n  uint local_7c;\n  internal_auxent *local_74;\n  int local_70;\n  int local_68;\n  debug_field *local_64;\n  internal_auxent auxent;\n  internal_syment syment;\n  \n  local_64 = (debug_field *)xmalloc(0x28);\n  local_68 = 10;\n  local_70 = 0;\n  while ((symbols->coff_symno < (int)pauxent && (symbols->symno < symbols->symcount))) {\n    paVar2 = symbols->syms[symbols->symno];\n    iVar4 = bfd_coff_get_syment(abfd,paVar2,&syment);\n    if (iVar4 == 0) {\n      uVar10 = bfd_get_error();\n      uVar10 = bfd_errmsg(uVar10);\n      pcVar9 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      pcVar9 = (char *)dcgettext(0,pcVar9,5);\n      non_fatal(pcVar9,uVar10);\n      return (debug_type)0x0;\n    }\n    iVar4 = symbols->coff_symno;\n    local_74 = (internal_auxent *)0x0;\n    symbols->symno = symbols->symno + 1;\n    symbols->coff_symno = iVar4 + 1 + (uint)syment.n_numaux;\n    if (syment.n_numaux != '\0') {\n      local_74 = &auxent;\n      iVar8 = bfd_coff_get_auxent(abfd,paVar2,0,local_74);\n      if (iVar8 == 0) {\n        uVar10 = bfd_get_error();\n        uVar10 = bfd_errmsg(uVar10);\n        pcVar9 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }\n    if (syment.n_sclass == '\v') {\nLAB_00046ca0:\n      uVar3 = (uint)paVar2->value;\n      local_7c = 0;\n      pbVar1 = &paVar2->section->vma;\n      uVar6 = uVar3 + (int)*pbVar1;\n      local_80 = (*(int *)((int)&paVar2->value + 4) + *(int *)((int)&paVar2->section->vma + 4) +\n                 (uint)CARRY4(uVar3,(uint)*pbVar1)) * 8 | uVar6 >> 0x1d;\n      local_84 = uVar6 * 8;\n    }\n    else {\n      if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00046ca0;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          uVar3 = (uint)paVar2->section->vma;\n          local_84 = uVar3 + (int)paVar2->value;\n          local_80 = *(int *)((int)&paVar2->section->vma + 4) + *(int *)((int)&paVar2->value + 4) +\n                     (uint)CARRY4(uVar3,(uint)paVar2->value);\n          local_7c = (uint)auxent.x_scn.x_nlinno;\n          goto LAB_00046cd0;\n        }\n        if (syment.n_sclass == 'f') break;\n      }\n      local_7c = 0;\n      local_84 = 0;\n      local_80 = 0;\n    }\nLAB_00046cd0:\n    type = parse_coff_type(abfd,symbols,in_ECX,iVar4,(uint)syment.n_type,local_74,1,dhandle);\n    pdVar7 = debug_make_field(dhandle,paVar2->name,type,CONCAT44(local_80,local_84),\n                              (ulonglong)local_7c,DEBUG_VISIBILITY_PUBLIC);\n    if (pdVar7 == (debug_field)0x0) {\n      return (debug_type)0x0;\n    }\n    if (local_68 <= local_70 + 1) {\n      local_68 = local_68 + 10;\n      local_64 = (debug_field *)xrealloc(local_64,local_68 * 4);\n    }\n    local_64[local_70] = pdVar7;\n    local_70 = local_70 + 1;\n  }\n  local_64[local_70] = (debug_field)0x0;\n  pdVar5 = debug_make_struct_type\n                     (dhandle,(uint)(types == (coff_types *)0x8),(ulonglong)*(ushort *)ntype,\n                      local_64);\n  return pdVar5;\n}" type_identifier (ERROR "__regparm2" 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  bfd_vma *pbVar1;\n  asymbol *paVar2;\n  uint uVar3;\n  int iVar4;\n  debug_type_conflict pdVar5;\n  uint uVar6;\n  debug_type type;\n  debug_field pdVar7;\n  int iVar8;\n  char *pcVar9;\n  undefined4 uVar10;\n  coff_types *in_ECX;\n  int local_84;\n  uint local_80;\n  uint local_7c;\n  internal_auxent *local_74;\n  int local_70;\n  int local_68;\n  debug_field *local_64;\n  internal_auxent auxent;\n  internal_syment syment;\n  \n  local_64 = (debug_field *)xmalloc(0x28);\n  local_68 = 10;\n  local_70 = 0;\n  while ((symbols->coff_symno < (int)pauxent && (symbols->symno < symbols->symcount))) {\n    paVar2 = symbols->syms[symbols->symno];\n    iVar4 = bfd_coff_get_syment(abfd,paVar2,&syment);\n    if (iVar4 == 0) {\n      uVar10 = bfd_get_error();\n      uVar10 = bfd_errmsg(uVar10);\n      pcVar9 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      pcVar9 = (char *)dcgettext(0,pcVar9,5);\n      non_fatal(pcVar9,uVar10);\n      return (debug_type)0x0;\n    }\n    iVar4 = symbols->coff_symno;\n    local_74 = (internal_auxent *)0x0;\n    symbols->symno = symbols->symno + 1;\n    symbols->coff_symno = iVar4 + 1 + (uint)syment.n_numaux;\n    if (syment.n_numaux != '\0') {\n      local_74 = &auxent;\n      iVar8 = bfd_coff_get_auxent(abfd,paVar2,0,local_74);\n      if (iVar8 == 0) {\n        uVar10 = bfd_get_error();\n        uVar10 = bfd_errmsg(uVar10);\n        pcVar9 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }\n    if (syment.n_sclass == '\v') {\nLAB_00046ca0:\n      uVar3 = (uint)paVar2->value;\n      local_7c = 0;\n      pbVar1 = &paVar2->section->vma;\n      uVar6 = uVar3 + (int)*pbVar1;\n      local_80 = (*(int *)((int)&paVar2->value + 4) + *(int *)((int)&paVar2->section->vma + 4) +\n                 (uint)CARRY4(uVar3,(uint)*pbVar1)) * 8 | uVar6 >> 0x1d;\n      local_84 = uVar6 * 8;\n    }\n    else {\n      if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00046ca0;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          uVar3 = (uint)paVar2->section->vma;\n          local_84 = uVar3 + (int)paVar2->value;\n          local_80 = *(int *)((int)&paVar2->section->vma + 4) + *(int *)((int)&paVar2->value + 4) +\n                     (uint)CARRY4(uVar3,(uint)paVar2->value);\n          local_7c = (uint)auxent.x_scn.x_nlinno;\n          goto LAB_00046cd0;\n        }\n        if (syment.n_sclass == 'f') break;\n      }\n      local_7c = 0;\n      local_84 = 0;\n      local_80 = 0;\n    }\nLAB_00046cd0:\n    type = parse_coff_type(abfd,symbols,in_ECX,iVar4,(uint)syment.n_type,local_74,1,dhandle);\n    pdVar7 = debug_make_field(dhandle,paVar2->name,type,CONCAT44(local_80,local_84),\n                              (ulonglong)local_7c,DEBUG_VISIBILITY_PUBLIC);\n    if (pdVar7 == (debug_field)0x0) {\n      return (debug_type)0x0;\n    }\n    if (local_68 <= local_70 + 1) {\n      local_68 = local_68 + 10;\n      local_64 = (debug_field *)xrealloc(local_64,local_68 * 4);\n    }\n    local_64[local_70] = pdVar7;\n    local_70 = local_70 + 1;\n  }\n  local_64[local_70] = (debug_field)0x0;\n  pdVar5 = debug_make_struct_type\n                     (dhandle,(uint)(types == (coff_types *)0x8),(ulonglong)*(ushort *)ntype,\n                      local_64);\n  return pdVar5;\n}" { (declaration "bfd_vma *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "asymbol *paVar2;" type_identifier (pointer_declarator "*paVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "debug_type_conflict pdVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "debug_type type;" type_identifier identifier ;) (declaration "debug_field pdVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "coff_types *in_ECX;" type_identifier (pointer_declarator "*in_ECX" * identifier) ;) (declaration "int local_84;" primitive_type identifier ;) (declaration "uint local_80;" type_identifier identifier ;) (declaration "uint local_7c;" type_identifier identifier ;) (declaration "internal_auxent *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "debug_field *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "internal_auxent auxent;" type_identifier identifier ;) (declaration "internal_syment syment;" type_identifier identifier ;) (expression_statement "local_64 = (debug_field *)xmalloc(0x28);" (assignment_expression "local_64 = (debug_field *)xmalloc(0x28)" identifier = (cast_expression "(debug_field *)xmalloc(0x28)" ( (type_descriptor "debug_field *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x28)" identifier (argument_list "(0x28)" ( number_literal ))))) ;) (expression_statement "local_68 = 10;" (assignment_expression "local_68 = 10" identifier = number_literal) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (while_statement "while ((symbols->coff_symno < (int)pauxent && (symbols->symno < symbols->symcount))) {\n    paVar2 = symbols->syms[symbols->symno];\n    iVar4 = bfd_coff_get_syment(abfd,paVar2,&syment);\n    if (iVar4 == 0) {\n      uVar10 = bfd_get_error();\n      uVar10 = bfd_errmsg(uVar10);\n      pcVar9 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      pcVar9 = (char *)dcgettext(0,pcVar9,5);\n      non_fatal(pcVar9,uVar10);\n      return (debug_type)0x0;\n    }\n    iVar4 = symbols->coff_symno;\n    local_74 = (internal_auxent *)0x0;\n    symbols->symno = symbols->symno + 1;\n    symbols->coff_symno = iVar4 + 1 + (uint)syment.n_numaux;\n    if (syment.n_numaux != '\0') {\n      local_74 = &auxent;\n      iVar8 = bfd_coff_get_auxent(abfd,paVar2,0,local_74);\n      if (iVar8 == 0) {\n        uVar10 = bfd_get_error();\n        uVar10 = bfd_errmsg(uVar10);\n        pcVar9 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }\n    if (syment.n_sclass == '\v') {\nLAB_00046ca0:\n      uVar3 = (uint)paVar2->value;\n      local_7c = 0;\n      pbVar1 = &paVar2->section->vma;\n      uVar6 = uVar3 + (int)*pbVar1;\n      local_80 = (*(int *)((int)&paVar2->value + 4) + *(int *)((int)&paVar2->section->vma + 4) +\n                 (uint)CARRY4(uVar3,(uint)*pbVar1)) * 8 | uVar6 >> 0x1d;\n      local_84 = uVar6 * 8;\n    }\n    else {\n      if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00046ca0;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          uVar3 = (uint)paVar2->section->vma;\n          local_84 = uVar3 + (int)paVar2->value;\n          local_80 = *(int *)((int)&paVar2->section->vma + 4) + *(int *)((int)&paVar2->value + 4) +\n                     (uint)CARRY4(uVar3,(uint)paVar2->value);\n          local_7c = (uint)auxent.x_scn.x_nlinno;\n          goto LAB_00046cd0;\n        }\n        if (syment.n_sclass == 'f') break;\n      }\n      local_7c = 0;\n      local_84 = 0;\n      local_80 = 0;\n    }\nLAB_00046cd0:\n    type = parse_coff_type(abfd,symbols,in_ECX,iVar4,(uint)syment.n_type,local_74,1,dhandle);\n    pdVar7 = debug_make_field(dhandle,paVar2->name,type,CONCAT44(local_80,local_84),\n                              (ulonglong)local_7c,DEBUG_VISIBILITY_PUBLIC);\n    if (pdVar7 == (debug_field)0x0) {\n      return (debug_type)0x0;\n    }\n    if (local_68 <= local_70 + 1) {\n      local_68 = local_68 + 10;\n      local_64 = (debug_field *)xrealloc(local_64,local_68 * 4);\n    }\n    local_64[local_70] = pdVar7;\n    local_70 = local_70 + 1;\n  }" while (parenthesized_expression "((symbols->coff_symno < (int)pauxent && (symbols->symno < symbols->symcount)))" ( (parenthesized_expression "(symbols->coff_symno < (int)pauxent && (symbols->symno < symbols->symcount))" ( (binary_expression "symbols->coff_symno < (int)pauxent && (symbols->symno < symbols->symcount)" (binary_expression "symbols->coff_symno < (int)pauxent" (field_expression "symbols->coff_symno" identifier -> field_identifier) < (cast_expression "(int)pauxent" ( (type_descriptor "int" primitive_type) ) identifier)) && (parenthesized_expression "(symbols->symno < symbols->symcount)" ( (binary_expression "symbols->symno < symbols->symcount" (field_expression "symbols->symno" identifier -> field_identifier) < (field_expression "symbols->symcount" identifier -> field_identifier)) ))) )) )) (compound_statement "{\n    paVar2 = symbols->syms[symbols->symno];\n    iVar4 = bfd_coff_get_syment(abfd,paVar2,&syment);\n    if (iVar4 == 0) {\n      uVar10 = bfd_get_error();\n      uVar10 = bfd_errmsg(uVar10);\n      pcVar9 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      pcVar9 = (char *)dcgettext(0,pcVar9,5);\n      non_fatal(pcVar9,uVar10);\n      return (debug_type)0x0;\n    }\n    iVar4 = symbols->coff_symno;\n    local_74 = (internal_auxent *)0x0;\n    symbols->symno = symbols->symno + 1;\n    symbols->coff_symno = iVar4 + 1 + (uint)syment.n_numaux;\n    if (syment.n_numaux != '\0') {\n      local_74 = &auxent;\n      iVar8 = bfd_coff_get_auxent(abfd,paVar2,0,local_74);\n      if (iVar8 == 0) {\n        uVar10 = bfd_get_error();\n        uVar10 = bfd_errmsg(uVar10);\n        pcVar9 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }\n    if (syment.n_sclass == '\v') {\nLAB_00046ca0:\n      uVar3 = (uint)paVar2->value;\n      local_7c = 0;\n      pbVar1 = &paVar2->section->vma;\n      uVar6 = uVar3 + (int)*pbVar1;\n      local_80 = (*(int *)((int)&paVar2->value + 4) + *(int *)((int)&paVar2->section->vma + 4) +\n                 (uint)CARRY4(uVar3,(uint)*pbVar1)) * 8 | uVar6 >> 0x1d;\n      local_84 = uVar6 * 8;\n    }\n    else {\n      if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00046ca0;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          uVar3 = (uint)paVar2->section->vma;\n          local_84 = uVar3 + (int)paVar2->value;\n          local_80 = *(int *)((int)&paVar2->section->vma + 4) + *(int *)((int)&paVar2->value + 4) +\n                     (uint)CARRY4(uVar3,(uint)paVar2->value);\n          local_7c = (uint)auxent.x_scn.x_nlinno;\n          goto LAB_00046cd0;\n        }\n        if (syment.n_sclass == 'f') break;\n      }\n      local_7c = 0;\n      local_84 = 0;\n      local_80 = 0;\n    }\nLAB_00046cd0:\n    type = parse_coff_type(abfd,symbols,in_ECX,iVar4,(uint)syment.n_type,local_74,1,dhandle);\n    pdVar7 = debug_make_field(dhandle,paVar2->name,type,CONCAT44(local_80,local_84),\n                              (ulonglong)local_7c,DEBUG_VISIBILITY_PUBLIC);\n    if (pdVar7 == (debug_field)0x0) {\n      return (debug_type)0x0;\n    }\n    if (local_68 <= local_70 + 1) {\n      local_68 = local_68 + 10;\n      local_64 = (debug_field *)xrealloc(local_64,local_68 * 4);\n    }\n    local_64[local_70] = pdVar7;\n    local_70 = local_70 + 1;\n  }" { (expression_statement "paVar2 = symbols->syms[symbols->symno];" (assignment_expression "paVar2 = 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 "iVar4 = bfd_coff_get_syment(abfd,paVar2,&syment);" (assignment_expression "iVar4 = bfd_coff_get_syment(abfd,paVar2,&syment)" identifier = (call_expression "bfd_coff_get_syment(abfd,paVar2,&syment)" identifier (argument_list "(abfd,paVar2,&syment)" ( identifier , identifier , (pointer_expression "&syment" & identifier) )))) ;) (if_statement "if (iVar4 == 0) {\n      uVar10 = bfd_get_error();\n      uVar10 = bfd_errmsg(uVar10);\n      pcVar9 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      pcVar9 = (char *)dcgettext(0,pcVar9,5);\n      non_fatal(pcVar9,uVar10);\n      return (debug_type)0x0;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar10 = bfd_get_error();\n      uVar10 = bfd_errmsg(uVar10);\n      pcVar9 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      pcVar9 = (char *)dcgettext(0,pcVar9,5);\n      non_fatal(pcVar9,uVar10);\n      return (debug_type)0x0;\n    }" { (expression_statement "uVar10 = bfd_get_error();" (assignment_expression "uVar10 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar10 = bfd_errmsg(uVar10);" (assignment_expression "uVar10 = bfd_errmsg(uVar10)" identifier = (call_expression "bfd_errmsg(uVar10)" identifier (argument_list "(uVar10)" ( identifier )))) ;) (expression_statement "pcVar9 = "bfd_coff_get_syment failed: %s";" (assignment_expression "pcVar9 = "bfd_coff_get_syment failed: %s"" identifier = (string_literal ""bfd_coff_get_syment failed: %s"" " string_content ")) ;) (labeled_statement "LAB_00046e1b:\n      pcVar9 = (char *)dcgettext(0,pcVar9,5);" statement_identifier : (expression_statement "pcVar9 = (char *)dcgettext(0,pcVar9,5);" (assignment_expression "pcVar9 = (char *)dcgettext(0,pcVar9,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar9,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar9,5)" identifier (argument_list "(0,pcVar9,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "non_fatal(pcVar9,uVar10);" (call_expression "non_fatal(pcVar9,uVar10)" identifier (argument_list "(pcVar9,uVar10)" ( identifier , identifier ))) ;) (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "iVar4 = symbols->coff_symno;" (assignment_expression "iVar4 = symbols->coff_symno" identifier = (field_expression "symbols->coff_symno" identifier -> field_identifier)) ;) (expression_statement "local_74 = (internal_auxent *)0x0;" (assignment_expression "local_74 = (internal_auxent *)0x0" identifier = (cast_expression "(internal_auxent *)0x0" ( (type_descriptor "internal_auxent *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (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 = iVar4 + 1 + (uint)syment.n_numaux;" (assignment_expression "symbols->coff_symno = iVar4 + 1 + (uint)syment.n_numaux" (field_expression "symbols->coff_symno" identifier -> field_identifier) = (binary_expression "iVar4 + 1 + (uint)syment.n_numaux" (binary_expression "iVar4 + 1" identifier + number_literal) + (cast_expression "(uint)syment.n_numaux" ( (type_descriptor "uint" type_identifier) ) (field_expression "syment.n_numaux" identifier . field_identifier)))) ;) (if_statement "if (syment.n_numaux != '\0') {\n      local_74 = &auxent;\n      iVar8 = bfd_coff_get_auxent(abfd,paVar2,0,local_74);\n      if (iVar8 == 0) {\n        uVar10 = bfd_get_error();\n        uVar10 = bfd_errmsg(uVar10);\n        pcVar9 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }" if (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 ')) )) (compound_statement "{\n      local_74 = &auxent;\n      iVar8 = bfd_coff_get_auxent(abfd,paVar2,0,local_74);\n      if (iVar8 == 0) {\n        uVar10 = bfd_get_error();\n        uVar10 = bfd_errmsg(uVar10);\n        pcVar9 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }" { (expression_statement "local_74 = &auxent;" (assignment_expression "local_74 = &auxent" identifier = (pointer_expression "&auxent" & identifier)) ;) (expression_statement "iVar8 = bfd_coff_get_auxent(abfd,paVar2,0,local_74);" (assignment_expression "iVar8 = bfd_coff_get_auxent(abfd,paVar2,0,local_74)" identifier = (call_expression "bfd_coff_get_auxent(abfd,paVar2,0,local_74)" identifier (argument_list "(abfd,paVar2,0,local_74)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar8 == 0) {\n        uVar10 = bfd_get_error();\n        uVar10 = bfd_errmsg(uVar10);\n        pcVar9 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar10 = bfd_get_error();\n        uVar10 = bfd_errmsg(uVar10);\n        pcVar9 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }" { (expression_statement "uVar10 = bfd_get_error();" (assignment_expression "uVar10 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar10 = bfd_errmsg(uVar10);" (assignment_expression "uVar10 = bfd_errmsg(uVar10)" identifier = (call_expression "bfd_errmsg(uVar10)" identifier (argument_list "(uVar10)" ( identifier )))) ;) (expression_statement "pcVar9 = "bfd_coff_get_auxent failed: %s";" (assignment_expression "pcVar9 = "bfd_coff_get_auxent failed: %s"" identifier = (string_literal ""bfd_coff_get_auxent failed: %s"" " string_content ")) ;) (goto_statement "goto LAB_00046e1b;" goto statement_identifier ;) })) })) (if_statement "if (syment.n_sclass == '\v') {\nLAB_00046ca0:\n      uVar3 = (uint)paVar2->value;\n      local_7c = 0;\n      pbVar1 = &paVar2->section->vma;\n      uVar6 = uVar3 + (int)*pbVar1;\n      local_80 = (*(int *)((int)&paVar2->value + 4) + *(int *)((int)&paVar2->section->vma + 4) +\n                 (uint)CARRY4(uVar3,(uint)*pbVar1)) * 8 | uVar6 >> 0x1d;\n      local_84 = uVar6 * 8;\n    }\n    else {\n      if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00046ca0;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          uVar3 = (uint)paVar2->section->vma;\n          local_84 = uVar3 + (int)paVar2->value;\n          local_80 = *(int *)((int)&paVar2->section->vma + 4) + *(int *)((int)&paVar2->value + 4) +\n                     (uint)CARRY4(uVar3,(uint)paVar2->value);\n          local_7c = (uint)auxent.x_scn.x_nlinno;\n          goto LAB_00046cd0;\n        }\n        if (syment.n_sclass == 'f') break;\n      }\n      local_7c = 0;\n      local_84 = 0;\n      local_80 = 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_00046ca0:\n      uVar3 = (uint)paVar2->value;\n      local_7c = 0;\n      pbVar1 = &paVar2->section->vma;\n      uVar6 = uVar3 + (int)*pbVar1;\n      local_80 = (*(int *)((int)&paVar2->value + 4) + *(int *)((int)&paVar2->section->vma + 4) +\n                 (uint)CARRY4(uVar3,(uint)*pbVar1)) * 8 | uVar6 >> 0x1d;\n      local_84 = uVar6 * 8;\n    }" { (labeled_statement "LAB_00046ca0:\n      uVar3 = (uint)paVar2->value;" statement_identifier : (expression_statement "uVar3 = (uint)paVar2->value;" (assignment_expression "uVar3 = (uint)paVar2->value" identifier = (cast_expression "(uint)paVar2->value" ( (type_descriptor "uint" type_identifier) ) (field_expression "paVar2->value" identifier -> field_identifier))) ;)) (expression_statement "local_7c = 0;" (assignment_expression "local_7c = 0" identifier = number_literal) ;) (expression_statement "pbVar1 = &paVar2->section->vma;" (assignment_expression "pbVar1 = &paVar2->section->vma" identifier = (pointer_expression "&paVar2->section->vma" & (field_expression "paVar2->section->vma" (field_expression "paVar2->section" identifier -> field_identifier) -> field_identifier))) ;) (expression_statement "uVar6 = uVar3 + (int)*pbVar1;" (assignment_expression "uVar6 = uVar3 + (int)*pbVar1" identifier = (binary_expression "uVar3 + (int)*pbVar1" identifier + (cast_expression "(int)*pbVar1" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pbVar1" * identifier)))) ;) (expression_statement "local_80 = (*(int *)((int)&paVar2->value + 4) + *(int *)((int)&paVar2->section->vma + 4) +\n                 (uint)CARRY4(uVar3,(uint)*pbVar1)) * 8 | uVar6 >> 0x1d;" (assignment_expression "local_80 = (*(int *)((int)&paVar2->value + 4) + *(int *)((int)&paVar2->section->vma + 4) +\n                 (uint)CARRY4(uVar3,(uint)*pbVar1)) * 8 | uVar6 >> 0x1d" identifier = (binary_expression "(*(int *)((int)&paVar2->value + 4) + *(int *)((int)&paVar2->section->vma + 4) +\n                 (uint)CARRY4(uVar3,(uint)*pbVar1)) * 8 | uVar6 >> 0x1d" (binary_expression "(*(int *)((int)&paVar2->value + 4) + *(int *)((int)&paVar2->section->vma + 4) +\n                 (uint)CARRY4(uVar3,(uint)*pbVar1)) * 8" (parenthesized_expression "(*(int *)((int)&paVar2->value + 4) + *(int *)((int)&paVar2->section->vma + 4) +\n                 (uint)CARRY4(uVar3,(uint)*pbVar1))" ( (binary_expression "*(int *)((int)&paVar2->value + 4) + *(int *)((int)&paVar2->section->vma + 4) +\n                 (uint)CARRY4(uVar3,(uint)*pbVar1)" (binary_expression "*(int *)((int)&paVar2->value + 4) + *(int *)((int)&paVar2->section->vma + 4)" (pointer_expression "*(int *)((int)&paVar2->value + 4)" * (cast_expression "(int *)((int)&paVar2->value + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar2->value + 4)" ( (binary_expression "(int)&paVar2->value + 4" (cast_expression "(int)&paVar2->value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar2->value" & (field_expression "paVar2->value" identifier -> field_identifier))) + number_literal) )))) + (pointer_expression "*(int *)((int)&paVar2->section->vma + 4)" * (cast_expression "(int *)((int)&paVar2->section->vma + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar2->section->vma + 4)" ( (binary_expression "(int)&paVar2->section->vma + 4" (cast_expression "(int)&paVar2->section->vma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar2->section->vma" & (field_expression "paVar2->section->vma" (field_expression "paVar2->section" identifier -> field_identifier) -> field_identifier))) + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar3,(uint)*pbVar1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar3,(uint)*pbVar1)" identifier (argument_list "(uVar3,(uint)*pbVar1)" ( identifier , (binary_expression "(uint)*pbVar1" (parenthesized_expression "(uint)" ( identifier )) * identifier) ))))) )) * number_literal) | (binary_expression "uVar6 >> 0x1d" identifier >> number_literal))) ;) (expression_statement "local_84 = uVar6 * 8;" (assignment_expression "local_84 = uVar6 * 8" identifier = (binary_expression "uVar6 * 8" identifier * number_literal)) ;) }) (else_clause "else {\n      if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00046ca0;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          uVar3 = (uint)paVar2->section->vma;\n          local_84 = uVar3 + (int)paVar2->value;\n          local_80 = *(int *)((int)&paVar2->section->vma + 4) + *(int *)((int)&paVar2->value + 4) +\n                     (uint)CARRY4(uVar3,(uint)paVar2->value);\n          local_7c = (uint)auxent.x_scn.x_nlinno;\n          goto LAB_00046cd0;\n        }\n        if (syment.n_sclass == 'f') break;\n      }\n      local_7c = 0;\n      local_84 = 0;\n      local_80 = 0;\n    }" else (compound_statement "{\n      if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00046ca0;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          uVar3 = (uint)paVar2->section->vma;\n          local_84 = uVar3 + (int)paVar2->value;\n          local_80 = *(int *)((int)&paVar2->section->vma + 4) + *(int *)((int)&paVar2->value + 4) +\n                     (uint)CARRY4(uVar3,(uint)paVar2->value);\n          local_7c = (uint)auxent.x_scn.x_nlinno;\n          goto LAB_00046cd0;\n        }\n        if (syment.n_sclass == 'f') break;\n      }\n      local_7c = 0;\n      local_84 = 0;\n      local_80 = 0;\n    }" { (if_statement "if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00046ca0;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          uVar3 = (uint)paVar2->section->vma;\n          local_84 = uVar3 + (int)paVar2->value;\n          local_80 = *(int *)((int)&paVar2->section->vma + 4) + *(int *)((int)&paVar2->value + 4) +\n                     (uint)CARRY4(uVar3,(uint)paVar2->value);\n          local_7c = (uint)auxent.x_scn.x_nlinno;\n          goto LAB_00046cd0;\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_00046ca0;\n      }" { (if_statement "if (syment.n_sclass == '\b') goto LAB_00046ca0;" 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_00046ca0;" goto statement_identifier ;)) }) (else_clause "else {\n        if (syment.n_sclass == '\x12') {\n          uVar3 = (uint)paVar2->section->vma;\n          local_84 = uVar3 + (int)paVar2->value;\n          local_80 = *(int *)((int)&paVar2->section->vma + 4) + *(int *)((int)&paVar2->value + 4) +\n                     (uint)CARRY4(uVar3,(uint)paVar2->value);\n          local_7c = (uint)auxent.x_scn.x_nlinno;\n          goto LAB_00046cd0;\n        }\n        if (syment.n_sclass == 'f') break;\n      }" else (compound_statement "{\n        if (syment.n_sclass == '\x12') {\n          uVar3 = (uint)paVar2->section->vma;\n          local_84 = uVar3 + (int)paVar2->value;\n          local_80 = *(int *)((int)&paVar2->section->vma + 4) + *(int *)((int)&paVar2->value + 4) +\n                     (uint)CARRY4(uVar3,(uint)paVar2->value);\n          local_7c = (uint)auxent.x_scn.x_nlinno;\n          goto LAB_00046cd0;\n        }\n        if (syment.n_sclass == 'f') break;\n      }" { (if_statement "if (syment.n_sclass == '\x12') {\n          uVar3 = (uint)paVar2->section->vma;\n          local_84 = uVar3 + (int)paVar2->value;\n          local_80 = *(int *)((int)&paVar2->section->vma + 4) + *(int *)((int)&paVar2->value + 4) +\n                     (uint)CARRY4(uVar3,(uint)paVar2->value);\n          local_7c = (uint)auxent.x_scn.x_nlinno;\n          goto LAB_00046cd0;\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          uVar3 = (uint)paVar2->section->vma;\n          local_84 = uVar3 + (int)paVar2->value;\n          local_80 = *(int *)((int)&paVar2->section->vma + 4) + *(int *)((int)&paVar2->value + 4) +\n                     (uint)CARRY4(uVar3,(uint)paVar2->value);\n          local_7c = (uint)auxent.x_scn.x_nlinno;\n          goto LAB_00046cd0;\n        }" { (expression_statement "uVar3 = (uint)paVar2->section->vma;" (assignment_expression "uVar3 = (uint)paVar2->section->vma" identifier = (cast_expression "(uint)paVar2->section->vma" ( (type_descriptor "uint" type_identifier) ) (field_expression "paVar2->section->vma" (field_expression "paVar2->section" identifier -> field_identifier) -> field_identifier))) ;) (expression_statement "local_84 = uVar3 + (int)paVar2->value;" (assignment_expression "local_84 = uVar3 + (int)paVar2->value" identifier = (binary_expression "uVar3 + (int)paVar2->value" identifier + (cast_expression "(int)paVar2->value" ( (type_descriptor "int" primitive_type) ) (field_expression "paVar2->value" identifier -> field_identifier)))) ;) (expression_statement "local_80 = *(int *)((int)&paVar2->section->vma + 4) + *(int *)((int)&paVar2->value + 4) +\n                     (uint)CARRY4(uVar3,(uint)paVar2->value);" (assignment_expression "local_80 = *(int *)((int)&paVar2->section->vma + 4) + *(int *)((int)&paVar2->value + 4) +\n                     (uint)CARRY4(uVar3,(uint)paVar2->value)" identifier = (binary_expression "*(int *)((int)&paVar2->section->vma + 4) + *(int *)((int)&paVar2->value + 4) +\n                     (uint)CARRY4(uVar3,(uint)paVar2->value)" (binary_expression "*(int *)((int)&paVar2->section->vma + 4) + *(int *)((int)&paVar2->value + 4)" (pointer_expression "*(int *)((int)&paVar2->section->vma + 4)" * (cast_expression "(int *)((int)&paVar2->section->vma + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar2->section->vma + 4)" ( (binary_expression "(int)&paVar2->section->vma + 4" (cast_expression "(int)&paVar2->section->vma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar2->section->vma" & (field_expression "paVar2->section->vma" (field_expression "paVar2->section" identifier -> field_identifier) -> field_identifier))) + number_literal) )))) + (pointer_expression "*(int *)((int)&paVar2->value + 4)" * (cast_expression "(int *)((int)&paVar2->value + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar2->value + 4)" ( (binary_expression "(int)&paVar2->value + 4" (cast_expression "(int)&paVar2->value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar2->value" & (field_expression "paVar2->value" identifier -> field_identifier))) + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar3,(uint)paVar2->value)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar3,(uint)paVar2->value)" identifier (argument_list "(uVar3,(uint)paVar2->value)" ( identifier , (cast_expression "(uint)paVar2->value" ( (type_descriptor "uint" type_identifier) ) (field_expression "paVar2->value" identifier -> field_identifier)) )))))) ;) (expression_statement "local_7c = (uint)auxent.x_scn.x_nlinno;" (assignment_expression "local_7c = (uint)auxent.x_scn.x_nlinno" identifier = (cast_expression "(uint)auxent.x_scn.x_nlinno" ( (type_descriptor "uint" type_identifier) ) (field_expression "auxent.x_scn.x_nlinno" (field_expression "auxent.x_scn" identifier . field_identifier) . field_identifier))) ;) (goto_statement "goto LAB_00046cd0;" 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 "local_7c = 0;" (assignment_expression "local_7c = 0" identifier = number_literal) ;) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_00046cd0:\n    type = parse_coff_type(abfd,symbols,in_ECX,iVar4,(uint)syment.n_type,local_74,1,dhandle);" statement_identifier : (expression_statement "type = parse_coff_type(abfd,symbols,in_ECX,iVar4,(uint)syment.n_type,local_74,1,dhandle);" (assignment_expression "type = parse_coff_type(abfd,symbols,in_ECX,iVar4,(uint)syment.n_type,local_74,1,dhandle)" identifier = (call_expression "parse_coff_type(abfd,symbols,in_ECX,iVar4,(uint)syment.n_type,local_74,1,dhandle)" identifier (argument_list "(abfd,symbols,in_ECX,iVar4,(uint)syment.n_type,local_74,1,dhandle)" ( 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 "pdVar7 = debug_make_field(dhandle,paVar2->name,type,CONCAT44(local_80,local_84),\n                              (ulonglong)local_7c,DEBUG_VISIBILITY_PUBLIC);" (assignment_expression "pdVar7 = debug_make_field(dhandle,paVar2->name,type,CONCAT44(local_80,local_84),\n                              (ulonglong)local_7c,DEBUG_VISIBILITY_PUBLIC)" identifier = (call_expression "debug_make_field(dhandle,paVar2->name,type,CONCAT44(local_80,local_84),\n                              (ulonglong)local_7c,DEBUG_VISIBILITY_PUBLIC)" identifier (argument_list "(dhandle,paVar2->name,type,CONCAT44(local_80,local_84),\n                              (ulonglong)local_7c,DEBUG_VISIBILITY_PUBLIC)" ( identifier , (field_expression "paVar2->name" identifier -> field_identifier) , identifier , (call_expression "CONCAT44(local_80,local_84)" identifier (argument_list "(local_80,local_84)" ( identifier , identifier ))) , (cast_expression "(ulonglong)local_7c" ( (type_descriptor "ulonglong" type_identifier) ) identifier) , identifier )))) ;) (if_statement "if (pdVar7 == (debug_field)0x0) {\n      return (debug_type)0x0;\n    }" if (parenthesized_expression "(pdVar7 == (debug_field)0x0)" ( (binary_expression "pdVar7 == (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_68 <= local_70 + 1) {\n      local_68 = local_68 + 10;\n      local_64 = (debug_field *)xrealloc(local_64,local_68 * 4);\n    }" if (parenthesized_expression "(local_68 <= local_70 + 1)" ( (binary_expression "local_68 <= local_70 + 1" identifier <= (binary_expression "local_70 + 1" identifier + number_literal)) )) (compound_statement "{\n      local_68 = local_68 + 10;\n      local_64 = (debug_field *)xrealloc(local_64,local_68 * 4);\n    }" { (expression_statement "local_68 = local_68 + 10;" (assignment_expression "local_68 = local_68 + 10" identifier = (binary_expression "local_68 + 10" identifier + number_literal)) ;) (expression_statement "local_64 = (debug_field *)xrealloc(local_64,local_68 * 4);" (assignment_expression "local_64 = (debug_field *)xrealloc(local_64,local_68 * 4)" identifier = (cast_expression "(debug_field *)xrealloc(local_64,local_68 * 4)" ( (type_descriptor "debug_field *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(local_64,local_68 * 4)" identifier (argument_list "(local_64,local_68 * 4)" ( identifier , (binary_expression "local_68 * 4" identifier * number_literal) ))))) ;) })) (expression_statement "local_64[local_70] = pdVar7;" (assignment_expression "local_64[local_70] = pdVar7" (subscript_expression "local_64[local_70]" identifier [ identifier ]) = identifier) ;) (expression_statement "local_70 = local_70 + 1;" (assignment_expression "local_70 = local_70 + 1" identifier = (binary_expression "local_70 + 1" identifier + number_literal)) ;) })) (expression_statement "local_64[local_70] = (debug_field)0x0;" (assignment_expression "local_64[local_70] = (debug_field)0x0" (subscript_expression "local_64[local_70]" identifier [ identifier ]) = (cast_expression "(debug_field)0x0" ( (type_descriptor "debug_field" type_identifier) ) number_literal)) ;) (expression_statement "pdVar5 = debug_make_struct_type\n                     (dhandle,(uint)(types == (coff_types *)0x8),(ulonglong)*(ushort *)ntype,\n                      local_64);" (assignment_expression "pdVar5 = debug_make_struct_type\n                     (dhandle,(uint)(types == (coff_types *)0x8),(ulonglong)*(ushort *)ntype,\n                      local_64)" identifier = (call_expression "debug_make_struct_type\n                     (dhandle,(uint)(types == (coff_types *)0x8),(ulonglong)*(ushort *)ntype,\n                      local_64)" identifier (argument_list "(dhandle,(uint)(types == (coff_types *)0x8),(ulonglong)*(ushort *)ntype,\n                      local_64)" ( identifier , (call_expression "(uint)(types == (coff_types *)0x8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(types == (coff_types *)0x8)" ( (binary_expression "types == (coff_types *)0x8" identifier == (cast_expression "(coff_types *)0x8" ( (type_descriptor "coff_types *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) , (binary_expression "(ulonglong)*(ushort *)ntype" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(ushort *)ntype" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , identifier )))) ;) (return_statement "return pdVar5;" return identifier ;) })))
(translation_unit "undefined4 __regparm2\nFUN_00046b90(undefined4 param_1,int *param_2,int param_3,undefined2 *param_4,int param_5,\n            undefined4 param_6)\n\n{\n  uint *puVar1;\n  undefined2 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  int local_84;\n  uint local_80;\n  undefined1 *local_74;\n  int local_70;\n  int local_68;\n  int local_64;\n  undefined1 local_50 [6];\n  undefined2 local_4a;\n  undefined1 local_38 [22];\n  undefined2 local_22;\n  byte local_20;\n  byte local_1f;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x46b9d;\n  local_64 = xmalloc(0x28);\n  local_68 = 10;\n  local_70 = 0;\n  while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {\n    iVar6 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar3 = bfd_coff_get_syment(param_1,iVar6,local_38);\n    if (iVar3 == 0) {\n      uVar4 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar4);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_00047a20(uVar9,uVar4);\n      return 0;\n    }\n    iVar3 = param_2[3];\n    local_74 = (undefined1 *)0x0;\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar3 + 1 + (uint)local_1f;\n    if (local_1f != 0) {\n      local_74 = local_50;\n      iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);\n      if (iVar7 == 0) {\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }\n    if (local_20 == 0xb) {\nLAB_00046ca0:\n      uVar2 = 0;\n      puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n      uVar5 = *(uint *)(iVar6 + 8) + *puVar1;\n      local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;\n      local_84 = uVar5 * 8;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_84 = 0;\n      local_80 = 0;\n      uVar2 = 0;\n    }\nLAB_00046cd0:\n    uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6);\n    iVar6 = FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    local_70 = local_70 + 1;\n    if (local_68 <= local_70) {\n      local_68 = local_68 + 10;\n      local_64 = xrealloc(local_64,local_68 * 4);\n    }\n    *(int *)(local_64 + -4 + local_70 * 4) = iVar6;\n  }\n  *(undefined4 *)(local_64 + local_70 * 4) = 0;\n  uVar4 = FUN_0003def0(param_6,param_3 == 8,*param_4,0,local_64);\n  return uVar4;\n}\n\n" (function_definition "undefined4 __regparm2\nFUN_00046b90(undefined4 param_1,int *param_2,int param_3,undefined2 *param_4,int param_5,\n            undefined4 param_6)\n\n{\n  uint *puVar1;\n  undefined2 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  int local_84;\n  uint local_80;\n  undefined1 *local_74;\n  int local_70;\n  int local_68;\n  int local_64;\n  undefined1 local_50 [6];\n  undefined2 local_4a;\n  undefined1 local_38 [22];\n  undefined2 local_22;\n  byte local_20;\n  byte local_1f;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x46b9d;\n  local_64 = xmalloc(0x28);\n  local_68 = 10;\n  local_70 = 0;\n  while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {\n    iVar6 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar3 = bfd_coff_get_syment(param_1,iVar6,local_38);\n    if (iVar3 == 0) {\n      uVar4 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar4);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_00047a20(uVar9,uVar4);\n      return 0;\n    }\n    iVar3 = param_2[3];\n    local_74 = (undefined1 *)0x0;\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar3 + 1 + (uint)local_1f;\n    if (local_1f != 0) {\n      local_74 = local_50;\n      iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);\n      if (iVar7 == 0) {\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }\n    if (local_20 == 0xb) {\nLAB_00046ca0:\n      uVar2 = 0;\n      puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n      uVar5 = *(uint *)(iVar6 + 8) + *puVar1;\n      local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;\n      local_84 = uVar5 * 8;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_84 = 0;\n      local_80 = 0;\n      uVar2 = 0;\n    }\nLAB_00046cd0:\n    uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6);\n    iVar6 = FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    local_70 = local_70 + 1;\n    if (local_68 <= local_70) {\n      local_68 = local_68 + 10;\n      local_64 = xrealloc(local_64,local_68 * 4);\n    }\n    *(int *)(local_64 + -4 + local_70 * 4) = iVar6;\n  }\n  *(undefined4 *)(local_64 + local_70 * 4) = 0;\n  uVar4 = FUN_0003def0(param_6,param_3 == 8,*param_4,0,local_64);\n  return uVar4;\n}" type_identifier (ERROR "__regparm2" identifier) (function_declarator "FUN_00046b90(undefined4 param_1,int *param_2,int param_3,undefined2 *param_4,int param_5,\n            undefined4 param_6)" identifier (parameter_list "(undefined4 param_1,int *param_2,int param_3,undefined2 *param_4,int param_5,\n            undefined4 param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined2 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) ))) (compound_statement "{\n  uint *puVar1;\n  undefined2 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  int local_84;\n  uint local_80;\n  undefined1 *local_74;\n  int local_70;\n  int local_68;\n  int local_64;\n  undefined1 local_50 [6];\n  undefined2 local_4a;\n  undefined1 local_38 [22];\n  undefined2 local_22;\n  byte local_20;\n  byte local_1f;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x46b9d;\n  local_64 = xmalloc(0x28);\n  local_68 = 10;\n  local_70 = 0;\n  while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {\n    iVar6 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar3 = bfd_coff_get_syment(param_1,iVar6,local_38);\n    if (iVar3 == 0) {\n      uVar4 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar4);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_00047a20(uVar9,uVar4);\n      return 0;\n    }\n    iVar3 = param_2[3];\n    local_74 = (undefined1 *)0x0;\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar3 + 1 + (uint)local_1f;\n    if (local_1f != 0) {\n      local_74 = local_50;\n      iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);\n      if (iVar7 == 0) {\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }\n    if (local_20 == 0xb) {\nLAB_00046ca0:\n      uVar2 = 0;\n      puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n      uVar5 = *(uint *)(iVar6 + 8) + *puVar1;\n      local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;\n      local_84 = uVar5 * 8;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_84 = 0;\n      local_80 = 0;\n      uVar2 = 0;\n    }\nLAB_00046cd0:\n    uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6);\n    iVar6 = FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    local_70 = local_70 + 1;\n    if (local_68 <= local_70) {\n      local_68 = local_68 + 10;\n      local_64 = xrealloc(local_64,local_68 * 4);\n    }\n    *(int *)(local_64 + -4 + local_70 * 4) = iVar6;\n  }\n  *(undefined4 *)(local_64 + local_70 * 4) = 0;\n  uVar4 = FUN_0003def0(param_6,param_3 == 8,*param_4,0,local_64);\n  return uVar4;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined2 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "int local_84;" primitive_type identifier ;) (declaration "uint local_80;" type_identifier identifier ;) (declaration "undefined1 *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "undefined1 local_50 [6];" type_identifier (array_declarator "local_50 [6]" identifier [ number_literal ]) ;) (declaration "undefined2 local_4a;" type_identifier identifier ;) (declaration "undefined1 local_38 [22];" type_identifier (array_declarator "local_38 [22]" identifier [ number_literal ]) ;) (declaration "undefined2 local_22;" type_identifier identifier ;) (declaration "byte local_20;" type_identifier identifier ;) (declaration "byte local_1f;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x46b9d;" (assignment_expression "uStack_14 = 0x46b9d" identifier = number_literal) ;) (expression_statement "local_64 = xmalloc(0x28);" (assignment_expression "local_64 = xmalloc(0x28)" identifier = (call_expression "xmalloc(0x28)" identifier (argument_list "(0x28)" ( number_literal )))) ;) (expression_statement "local_68 = 10;" (assignment_expression "local_68 = 10" identifier = number_literal) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (while_statement "while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {\n    iVar6 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar3 = bfd_coff_get_syment(param_1,iVar6,local_38);\n    if (iVar3 == 0) {\n      uVar4 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar4);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_00047a20(uVar9,uVar4);\n      return 0;\n    }\n    iVar3 = param_2[3];\n    local_74 = (undefined1 *)0x0;\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar3 + 1 + (uint)local_1f;\n    if (local_1f != 0) {\n      local_74 = local_50;\n      iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);\n      if (iVar7 == 0) {\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }\n    if (local_20 == 0xb) {\nLAB_00046ca0:\n      uVar2 = 0;\n      puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n      uVar5 = *(uint *)(iVar6 + 8) + *puVar1;\n      local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;\n      local_84 = uVar5 * 8;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_84 = 0;\n      local_80 = 0;\n      uVar2 = 0;\n    }\nLAB_00046cd0:\n    uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6);\n    iVar6 = FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    local_70 = local_70 + 1;\n    if (local_68 <= local_70) {\n      local_68 = local_68 + 10;\n      local_64 = xrealloc(local_64,local_68 * 4);\n    }\n    *(int *)(local_64 + -4 + local_70 * 4) = iVar6;\n  }" while (parenthesized_expression "((param_2[3] < param_5 && (param_2[2] < param_2[1])))" ( (parenthesized_expression "(param_2[3] < param_5 && (param_2[2] < param_2[1]))" ( (binary_expression "param_2[3] < param_5 && (param_2[2] < param_2[1])" (binary_expression "param_2[3] < param_5" (subscript_expression "param_2[3]" identifier [ number_literal ]) < identifier) && (parenthesized_expression "(param_2[2] < param_2[1])" ( (binary_expression "param_2[2] < param_2[1]" (subscript_expression "param_2[2]" identifier [ number_literal ]) < (subscript_expression "param_2[1]" identifier [ number_literal ])) ))) )) )) (compound_statement "{\n    iVar6 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar3 = bfd_coff_get_syment(param_1,iVar6,local_38);\n    if (iVar3 == 0) {\n      uVar4 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar4);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_00047a20(uVar9,uVar4);\n      return 0;\n    }\n    iVar3 = param_2[3];\n    local_74 = (undefined1 *)0x0;\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar3 + 1 + (uint)local_1f;\n    if (local_1f != 0) {\n      local_74 = local_50;\n      iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);\n      if (iVar7 == 0) {\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }\n    if (local_20 == 0xb) {\nLAB_00046ca0:\n      uVar2 = 0;\n      puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n      uVar5 = *(uint *)(iVar6 + 8) + *puVar1;\n      local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;\n      local_84 = uVar5 * 8;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_84 = 0;\n      local_80 = 0;\n      uVar2 = 0;\n    }\nLAB_00046cd0:\n    uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6);\n    iVar6 = FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    local_70 = local_70 + 1;\n    if (local_68 <= local_70) {\n      local_68 = local_68 + 10;\n      local_64 = xrealloc(local_64,local_68 * 4);\n    }\n    *(int *)(local_64 + -4 + local_70 * 4) = iVar6;\n  }" { (expression_statement "iVar6 = *(int *)(*param_2 + param_2[2] * 4);" (assignment_expression "iVar6 = *(int *)(*param_2 + param_2[2] * 4)" identifier = (pointer_expression "*(int *)(*param_2 + param_2[2] * 4)" * (cast_expression "(int *)(*param_2 + param_2[2] * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + param_2[2] * 4)" ( (binary_expression "*param_2 + param_2[2] * 4" (pointer_expression "*param_2" * identifier) + (binary_expression "param_2[2] * 4" (subscript_expression "param_2[2]" identifier [ number_literal ]) * number_literal)) ))))) ;) (expression_statement "iVar3 = bfd_coff_get_syment(param_1,iVar6,local_38);" (assignment_expression "iVar3 = bfd_coff_get_syment(param_1,iVar6,local_38)" identifier = (call_expression "bfd_coff_get_syment(param_1,iVar6,local_38)" identifier (argument_list "(param_1,iVar6,local_38)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      uVar4 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar4);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_00047a20(uVar9,uVar4);\n      return 0;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar4 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar4);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_00047a20(uVar9,uVar4);\n      return 0;\n    }" { (expression_statement "uVar4 = bfd_get_error();" (assignment_expression "uVar4 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar4 = bfd_errmsg(uVar4);" (assignment_expression "uVar4 = bfd_errmsg(uVar4)" identifier = (call_expression "bfd_errmsg(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "pcVar8 = "bfd_coff_get_syment failed: %s";" (assignment_expression "pcVar8 = "bfd_coff_get_syment failed: %s"" identifier = (string_literal ""bfd_coff_get_syment failed: %s"" " string_content ")) ;) (labeled_statement "LAB_00046e1b:\n      uVar9 = dcgettext(0,pcVar8,5);" statement_identifier : (expression_statement "uVar9 = dcgettext(0,pcVar8,5);" (assignment_expression "uVar9 = dcgettext(0,pcVar8,5)" identifier = (call_expression "dcgettext(0,pcVar8,5)" identifier (argument_list "(0,pcVar8,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_00047a20(uVar9,uVar4);" (call_expression "FUN_00047a20(uVar9,uVar4)" identifier (argument_list "(uVar9,uVar4)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = param_2[3];" (assignment_expression "iVar3 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "local_74 = (undefined1 *)0x0;" (assignment_expression "local_74 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) 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] = iVar3 + 1 + (uint)local_1f;" (assignment_expression "param_2[3] = iVar3 + 1 + (uint)local_1f" (subscript_expression "param_2[3]" identifier [ number_literal ]) = (binary_expression "iVar3 + 1 + (uint)local_1f" (binary_expression "iVar3 + 1" identifier + number_literal) + (cast_expression "(uint)local_1f" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (local_1f != 0) {\n      local_74 = local_50;\n      iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);\n      if (iVar7 == 0) {\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }" if (parenthesized_expression "(local_1f != 0)" ( (binary_expression "local_1f != 0" identifier != number_literal) )) (compound_statement "{\n      local_74 = local_50;\n      iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);\n      if (iVar7 == 0) {\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }" { (expression_statement "local_74 = local_50;" (assignment_expression "local_74 = local_50" identifier = identifier) ;) (expression_statement "iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);" (assignment_expression "iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74)" identifier = (call_expression "bfd_coff_get_auxent(param_1,iVar6,0,local_74)" identifier (argument_list "(param_1,iVar6,0,local_74)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }" { (expression_statement "uVar4 = bfd_get_error();" (assignment_expression "uVar4 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar4 = bfd_errmsg(uVar4);" (assignment_expression "uVar4 = bfd_errmsg(uVar4)" identifier = (call_expression "bfd_errmsg(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "pcVar8 = "bfd_coff_get_auxent failed: %s";" (assignment_expression "pcVar8 = "bfd_coff_get_auxent failed: %s"" identifier = (string_literal ""bfd_coff_get_auxent failed: %s"" " string_content ")) ;) (goto_statement "goto LAB_00046e1b;" goto statement_identifier ;) })) })) (if_statement "if (local_20 == 0xb) {\nLAB_00046ca0:\n      uVar2 = 0;\n      puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n      uVar5 = *(uint *)(iVar6 + 8) + *puVar1;\n      local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;\n      local_84 = uVar5 * 8;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_84 = 0;\n      local_80 = 0;\n      uVar2 = 0;\n    }" if (parenthesized_expression "(local_20 == 0xb)" ( (binary_expression "local_20 == 0xb" identifier == number_literal) )) (compound_statement "{\nLAB_00046ca0:\n      uVar2 = 0;\n      puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n      uVar5 = *(uint *)(iVar6 + 8) + *puVar1;\n      local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;\n      local_84 = uVar5 * 8;\n    }" { (labeled_statement "LAB_00046ca0:\n      uVar2 = 0;" statement_identifier : (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;)) (expression_statement "puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);" (assignment_expression "puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c)" identifier = (cast_expression "(uint *)(*(int *)(iVar6 + 0x14) + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar6 + 0x14) + 0x1c)" ( (binary_expression "*(int *)(iVar6 + 0x14) + 0x1c" (pointer_expression "*(int *)(iVar6 + 0x14)" * (cast_expression "(int *)(iVar6 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar5 = *(uint *)(iVar6 + 8) + *puVar1;" (assignment_expression "uVar5 = *(uint *)(iVar6 + 8) + *puVar1" identifier = (binary_expression "*(uint *)(iVar6 + 8) + *puVar1" (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) + (pointer_expression "*puVar1" * identifier))) ;) (expression_statement "local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;" (assignment_expression "local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d" identifier = (binary_expression "(*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d" (binary_expression "(*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8" (parenthesized_expression "(*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1))" ( (binary_expression "*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)" (binary_expression "*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20)" (pointer_expression "*(int *)(iVar6 + 0xc)" * (cast_expression "(int *)(iVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) )))) + (pointer_expression "*(int *)(*(int *)(iVar6 + 0x14) + 0x20)" * (cast_expression "(int *)(*(int *)(iVar6 + 0x14) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar6 + 0x14) + 0x20)" ( (binary_expression "*(int *)(iVar6 + 0x14) + 0x20" (pointer_expression "*(int *)(iVar6 + 0x14)" * (cast_expression "(int *)(iVar6 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) + number_literal) ))))) + (cast_expression "(uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(*(uint *)(iVar6 + 8),*puVar1)" identifier (argument_list "(*(uint *)(iVar6 + 8),*puVar1)" ( (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) , (pointer_expression "*puVar1" * identifier) ))))) )) * number_literal) | (binary_expression "uVar5 >> 0x1d" identifier >> number_literal))) ;) (expression_statement "local_84 = uVar5 * 8;" (assignment_expression "local_84 = uVar5 * 8" identifier = (binary_expression "uVar5 * 8" identifier * number_literal)) ;) }) (else_clause "else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_84 = 0;\n      local_80 = 0;\n      uVar2 = 0;\n    }" else (compound_statement "{\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_84 = 0;\n      local_80 = 0;\n      uVar2 = 0;\n    }" { (if_statement "if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }" if (parenthesized_expression "(local_20 < 0xc)" ( (binary_expression "local_20 < 0xc" identifier < number_literal) )) (compound_statement "{\n        if (local_20 == 8) goto LAB_00046ca0;\n      }" { (if_statement "if (local_20 == 8) goto LAB_00046ca0;" if (parenthesized_expression "(local_20 == 8)" ( (binary_expression "local_20 == 8" identifier == number_literal) )) (goto_statement "goto LAB_00046ca0;" goto statement_identifier ;)) }) (else_clause "else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }" else (compound_statement "{\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }" { (if_statement "if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }" if (parenthesized_expression "(local_20 == 0x12)" ( (binary_expression "local_20 == 0x12" identifier == number_literal) )) (compound_statement "{\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }" { (expression_statement "uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);" (assignment_expression "uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c)" identifier = (pointer_expression "*(uint *)(*(int *)(iVar6 + 0x14) + 0x1c)" * (cast_expression "(uint *)(*(int *)(iVar6 + 0x14) + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar6 + 0x14) + 0x1c)" ( (binary_expression "*(int *)(iVar6 + 0x14) + 0x1c" (pointer_expression "*(int *)(iVar6 + 0x14)" * (cast_expression "(int *)(iVar6 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_84 = uVar5 + *(uint *)(iVar6 + 8);" (assignment_expression "local_84 = uVar5 + *(uint *)(iVar6 + 8)" identifier = (binary_expression "uVar5 + *(uint *)(iVar6 + 8)" identifier + (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))))) ;) (expression_statement "local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));" (assignment_expression "local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8))" identifier = (binary_expression "*(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8))" (binary_expression "*(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc)" (pointer_expression "*(int *)(*(int *)(iVar6 + 0x14) + 0x20)" * (cast_expression "(int *)(*(int *)(iVar6 + 0x14) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar6 + 0x14) + 0x20)" ( (binary_expression "*(int *)(iVar6 + 0x14) + 0x20" (pointer_expression "*(int *)(iVar6 + 0x14)" * (cast_expression "(int *)(iVar6 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) + number_literal) )))) + (pointer_expression "*(int *)(iVar6 + 0xc)" * (cast_expression "(int *)(iVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar5,*(uint *)(iVar6 + 8))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar5,*(uint *)(iVar6 + 8))" identifier (argument_list "(uVar5,*(uint *)(iVar6 + 8))" ( identifier , (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) )))))) ;) (expression_statement "uVar2 = local_4a;" (assignment_expression "uVar2 = local_4a" identifier = identifier) ;) (goto_statement "goto LAB_00046cd0;" goto statement_identifier ;) })) (if_statement "if (local_20 == 0x66) break;" if (parenthesized_expression "(local_20 == 0x66)" ( (binary_expression "local_20 == 0x66" identifier == number_literal) )) (break_statement "break;" break ;)) }))) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" identifier = number_literal) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_00046cd0:\n    uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6);" statement_identifier : (expression_statement "uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6);" (assignment_expression "uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6)" identifier = (call_expression "FUN_00046470(iVar3,local_22,local_74,1,param_6)" identifier (argument_list "(iVar3,local_22,local_74,1,param_6)" ( identifier , identifier , identifier , number_literal , identifier )))) ;)) (expression_statement "iVar6 = FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0);" (assignment_expression "iVar6 = FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0)" identifier = (call_expression "FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0)" identifier (argument_list "(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0)" ( identifier , (pointer_expression "*(undefined4 *)(iVar6 + 4)" * (cast_expression "(undefined4 *)(iVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) , identifier , identifier , identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_70 = local_70 + 1;" (assignment_expression "local_70 = local_70 + 1" identifier = (binary_expression "local_70 + 1" identifier + number_literal)) ;) (if_statement "if (local_68 <= local_70) {\n      local_68 = local_68 + 10;\n      local_64 = xrealloc(local_64,local_68 * 4);\n    }" if (parenthesized_expression "(local_68 <= local_70)" ( (binary_expression "local_68 <= local_70" identifier <= identifier) )) (compound_statement "{\n      local_68 = local_68 + 10;\n      local_64 = xrealloc(local_64,local_68 * 4);\n    }" { (expression_statement "local_68 = local_68 + 10;" (assignment_expression "local_68 = local_68 + 10" identifier = (binary_expression "local_68 + 10" identifier + number_literal)) ;) (expression_statement "local_64 = xrealloc(local_64,local_68 * 4);" (assignment_expression "local_64 = xrealloc(local_64,local_68 * 4)" identifier = (call_expression "xrealloc(local_64,local_68 * 4)" identifier (argument_list "(local_64,local_68 * 4)" ( identifier , (binary_expression "local_68 * 4" identifier * number_literal) )))) ;) })) (expression_statement "*(int *)(local_64 + -4 + local_70 * 4) = iVar6;" (assignment_expression "*(int *)(local_64 + -4 + local_70 * 4) = iVar6" (pointer_expression "*(int *)(local_64 + -4 + local_70 * 4)" * (cast_expression "(int *)(local_64 + -4 + local_70 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_64 + -4 + local_70 * 4)" ( (binary_expression "local_64 + -4 + local_70 * 4" (binary_expression "local_64 + -4" identifier + number_literal) + (binary_expression "local_70 * 4" identifier * number_literal)) )))) = identifier) ;) })) (expression_statement "*(undefined4 *)(local_64 + local_70 * 4) = 0;" (assignment_expression "*(undefined4 *)(local_64 + local_70 * 4) = 0" (pointer_expression "*(undefined4 *)(local_64 + local_70 * 4)" * (cast_expression "(undefined4 *)(local_64 + local_70 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_64 + local_70 * 4)" ( (binary_expression "local_64 + local_70 * 4" identifier + (binary_expression "local_70 * 4" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "uVar4 = FUN_0003def0(param_6,param_3 == 8,*param_4,0,local_64);" (assignment_expression "uVar4 = FUN_0003def0(param_6,param_3 == 8,*param_4,0,local_64)" identifier = (call_expression "FUN_0003def0(param_6,param_3 == 8,*param_4,0,local_64)" identifier (argument_list "(param_6,param_3 == 8,*param_4,0,local_64)" ( identifier , (binary_expression "param_3 == 8" identifier == number_literal) , (pointer_expression "*param_4" * identifier) , number_literal , identifier )))) ;) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < (subscript_expression IDENT [ LIT ])) ))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (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 IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , 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 ")) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * IDENT) ))))) )) * LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , IDENT )))) ;)) (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 , IDENT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT * LIT) )))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) )))) = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT == LIT) , (pointer_expression * IDENT) , LIT , IDENT )))) ;) (return_statement return IDENT ;) })))
(function_definition "undefined4 __regparm2\nFUN_00046b90(undefined4 param_1,int *param_2,int param_3,undefined2 *param_4,int param_5,\n            undefined4 param_6)\n\n{\n  uint *puVar1;\n  undefined2 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  int local_84;\n  uint local_80;\n  undefined1 *local_74;\n  int local_70;\n  int local_68;\n  int local_64;\n  undefined1 local_50 [6];\n  undefined2 local_4a;\n  undefined1 local_38 [22];\n  undefined2 local_22;\n  byte local_20;\n  byte local_1f;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x46b9d;\n  local_64 = xmalloc(0x28);\n  local_68 = 10;\n  local_70 = 0;\n  while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {\n    iVar6 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar3 = bfd_coff_get_syment(param_1,iVar6,local_38);\n    if (iVar3 == 0) {\n      uVar4 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar4);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_00047a20(uVar9,uVar4);\n      return 0;\n    }\n    iVar3 = param_2[3];\n    local_74 = (undefined1 *)0x0;\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar3 + 1 + (uint)local_1f;\n    if (local_1f != 0) {\n      local_74 = local_50;\n      iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);\n      if (iVar7 == 0) {\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }\n    if (local_20 == 0xb) {\nLAB_00046ca0:\n      uVar2 = 0;\n      puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n      uVar5 = *(uint *)(iVar6 + 8) + *puVar1;\n      local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;\n      local_84 = uVar5 * 8;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_84 = 0;\n      local_80 = 0;\n      uVar2 = 0;\n    }\nLAB_00046cd0:\n    uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6);\n    iVar6 = FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    local_70 = local_70 + 1;\n    if (local_68 <= local_70) {\n      local_68 = local_68 + 10;\n      local_64 = xrealloc(local_64,local_68 * 4);\n    }\n    *(int *)(local_64 + -4 + local_70 * 4) = iVar6;\n  }\n  *(undefined4 *)(local_64 + local_70 * 4) = 0;\n  uVar4 = FUN_0003def0(param_6,param_3 == 8,*param_4,0,local_64);\n  return uVar4;\n}" (type_identifier "undefined4") (ERROR "__regparm2" (identifier "__regparm2")) (function_declarator "FUN_00046b90(undefined4 param_1,int *param_2,int param_3,undefined2 *param_4,int param_5,\n            undefined4 param_6)" (identifier "FUN_00046b90") (parameter_list "(undefined4 param_1,int *param_2,int param_3,undefined2 *param_4,int param_5,\n            undefined4 param_6)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "undefined2 *param_4" (type_identifier "undefined2") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) () ")"))) (compound_statement "{\n  uint *puVar1;\n  undefined2 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  int local_84;\n  uint local_80;\n  undefined1 *local_74;\n  int local_70;\n  int local_68;\n  int local_64;\n  undefined1 local_50 [6];\n  undefined2 local_4a;\n  undefined1 local_38 [22];\n  undefined2 local_22;\n  byte local_20;\n  byte local_1f;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x46b9d;\n  local_64 = xmalloc(0x28);\n  local_68 = 10;\n  local_70 = 0;\n  while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {\n    iVar6 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar3 = bfd_coff_get_syment(param_1,iVar6,local_38);\n    if (iVar3 == 0) {\n      uVar4 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar4);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_00047a20(uVar9,uVar4);\n      return 0;\n    }\n    iVar3 = param_2[3];\n    local_74 = (undefined1 *)0x0;\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar3 + 1 + (uint)local_1f;\n    if (local_1f != 0) {\n      local_74 = local_50;\n      iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);\n      if (iVar7 == 0) {\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }\n    if (local_20 == 0xb) {\nLAB_00046ca0:\n      uVar2 = 0;\n      puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n      uVar5 = *(uint *)(iVar6 + 8) + *puVar1;\n      local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;\n      local_84 = uVar5 * 8;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_84 = 0;\n      local_80 = 0;\n      uVar2 = 0;\n    }\nLAB_00046cd0:\n    uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6);\n    iVar6 = FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    local_70 = local_70 + 1;\n    if (local_68 <= local_70) {\n      local_68 = local_68 + 10;\n      local_64 = xrealloc(local_64,local_68 * 4);\n    }\n    *(int *)(local_64 + -4 + local_70 * 4) = iVar6;\n  }\n  *(undefined4 *)(local_64 + local_70 * 4) = 0;\n  uVar4 = FUN_0003def0(param_6,param_3 == 8,*param_4,0,local_64);\n  return uVar4;\n}" ({ "{") (declaration "uint *puVar1;" (type_identifier "uint") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined2 uVar2;" (type_identifier "undefined2") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "int local_84;" (primitive_type "int") (identifier "local_84") (; ";")) (declaration "uint local_80;" (type_identifier "uint") (identifier "local_80") (; ";")) (declaration "undefined1 *local_74;" (type_identifier "undefined1") (pointer_declarator "*local_74" (* "*") (identifier "local_74")) (; ";")) (declaration "int local_70;" (primitive_type "int") (identifier "local_70") (; ";")) (declaration "int local_68;" (primitive_type "int") (identifier "local_68") (; ";")) (declaration "int local_64;" (primitive_type "int") (identifier "local_64") (; ";")) (declaration "undefined1 local_50 [6];" (type_identifier "undefined1") (array_declarator "local_50 [6]" (identifier "local_50") ([ "[") (number_literal "6") (] "]")) (; ";")) (declaration "undefined2 local_4a;" (type_identifier "undefined2") (identifier "local_4a") (; ";")) (declaration "undefined1 local_38 [22];" (type_identifier "undefined1") (array_declarator "local_38 [22]" (identifier "local_38") ([ "[") (number_literal "22") (] "]")) (; ";")) (declaration "undefined2 local_22;" (type_identifier "undefined2") (identifier "local_22") (; ";")) (declaration "byte local_20;" (type_identifier "byte") (identifier "local_20") (; ";")) (declaration "byte local_1f;" (type_identifier "byte") (identifier "local_1f") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x46b9d;" (assignment_expression "uStack_14 = 0x46b9d" (identifier "uStack_14") (= "=") (number_literal "0x46b9d")) (; ";")) (expression_statement "local_64 = xmalloc(0x28);" (assignment_expression "local_64 = xmalloc(0x28)" (identifier "local_64") (= "=") (call_expression "xmalloc(0x28)" (identifier "xmalloc") (argument_list "(0x28)" (( "(") (number_literal "0x28") () ")")))) (; ";")) (expression_statement "local_68 = 10;" (assignment_expression "local_68 = 10" (identifier "local_68") (= "=") (number_literal "10")) (; ";")) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" (identifier "local_70") (= "=") (number_literal "0")) (; ";")) (while_statement "while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {\n    iVar6 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar3 = bfd_coff_get_syment(param_1,iVar6,local_38);\n    if (iVar3 == 0) {\n      uVar4 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar4);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_00047a20(uVar9,uVar4);\n      return 0;\n    }\n    iVar3 = param_2[3];\n    local_74 = (undefined1 *)0x0;\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar3 + 1 + (uint)local_1f;\n    if (local_1f != 0) {\n      local_74 = local_50;\n      iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);\n      if (iVar7 == 0) {\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }\n    if (local_20 == 0xb) {\nLAB_00046ca0:\n      uVar2 = 0;\n      puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n      uVar5 = *(uint *)(iVar6 + 8) + *puVar1;\n      local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;\n      local_84 = uVar5 * 8;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_84 = 0;\n      local_80 = 0;\n      uVar2 = 0;\n    }\nLAB_00046cd0:\n    uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6);\n    iVar6 = FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    local_70 = local_70 + 1;\n    if (local_68 <= local_70) {\n      local_68 = local_68 + 10;\n      local_64 = xrealloc(local_64,local_68 * 4);\n    }\n    *(int *)(local_64 + -4 + local_70 * 4) = iVar6;\n  }" (while "while") (parenthesized_expression "((param_2[3] < param_5 && (param_2[2] < param_2[1])))" (( "(") (parenthesized_expression "(param_2[3] < param_5 && (param_2[2] < param_2[1]))" (( "(") (binary_expression "param_2[3] < param_5 && (param_2[2] < param_2[1])" (binary_expression "param_2[3] < param_5" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (< "<") (identifier "param_5")) (&& "&&") (parenthesized_expression "(param_2[2] < param_2[1])" (( "(") (binary_expression "param_2[2] < param_2[1]" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (< "<") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) () ")"))) () ")")) () ")")) (compound_statement "{\n    iVar6 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar3 = bfd_coff_get_syment(param_1,iVar6,local_38);\n    if (iVar3 == 0) {\n      uVar4 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar4);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_00047a20(uVar9,uVar4);\n      return 0;\n    }\n    iVar3 = param_2[3];\n    local_74 = (undefined1 *)0x0;\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar3 + 1 + (uint)local_1f;\n    if (local_1f != 0) {\n      local_74 = local_50;\n      iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);\n      if (iVar7 == 0) {\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }\n    if (local_20 == 0xb) {\nLAB_00046ca0:\n      uVar2 = 0;\n      puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n      uVar5 = *(uint *)(iVar6 + 8) + *puVar1;\n      local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;\n      local_84 = uVar5 * 8;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_84 = 0;\n      local_80 = 0;\n      uVar2 = 0;\n    }\nLAB_00046cd0:\n    uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6);\n    iVar6 = FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0);\n    if (iVar6 == 0) {\n      return 0;\n    }\n    local_70 = local_70 + 1;\n    if (local_68 <= local_70) {\n      local_68 = local_68 + 10;\n      local_64 = xrealloc(local_64,local_68 * 4);\n    }\n    *(int *)(local_64 + -4 + local_70 * 4) = iVar6;\n  }" ({ "{") (expression_statement "iVar6 = *(int *)(*param_2 + param_2[2] * 4);" (assignment_expression "iVar6 = *(int *)(*param_2 + param_2[2] * 4)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(*param_2 + param_2[2] * 4)" (* "*") (cast_expression "(int *)(*param_2 + param_2[2] * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_2 + param_2[2] * 4)" (( "(") (binary_expression "*param_2 + param_2[2] * 4" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (binary_expression "param_2[2] * 4" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "iVar3 = bfd_coff_get_syment(param_1,iVar6,local_38);" (assignment_expression "iVar3 = bfd_coff_get_syment(param_1,iVar6,local_38)" (identifier "iVar3") (= "=") (call_expression "bfd_coff_get_syment(param_1,iVar6,local_38)" (identifier "bfd_coff_get_syment") (argument_list "(param_1,iVar6,local_38)" (( "(") (identifier "param_1") (, ",") (identifier "iVar6") (, ",") (identifier "local_38") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      uVar4 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar4);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_00047a20(uVar9,uVar4);\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar4 = bfd_get_error();\n      uVar4 = bfd_errmsg(uVar4);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00046e1b:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_00047a20(uVar9,uVar4);\n      return 0;\n    }" ({ "{") (expression_statement "uVar4 = bfd_get_error();" (assignment_expression "uVar4 = bfd_get_error()" (identifier "uVar4") (= "=") (call_expression "bfd_get_error()" (identifier "bfd_get_error") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar4 = bfd_errmsg(uVar4);" (assignment_expression "uVar4 = bfd_errmsg(uVar4)" (identifier "uVar4") (= "=") (call_expression "bfd_errmsg(uVar4)" (identifier "bfd_errmsg") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "pcVar8 = "bfd_coff_get_syment failed: %s";" (assignment_expression "pcVar8 = "bfd_coff_get_syment failed: %s"" (identifier "pcVar8") (= "=") (string_literal ""bfd_coff_get_syment failed: %s"" (" """) (string_content "bfd_coff_get_syment failed: %s") (" """))) (; ";")) (labeled_statement "LAB_00046e1b:\n      uVar9 = dcgettext(0,pcVar8,5);" (statement_identifier "LAB_00046e1b") (: ":") (expression_statement "uVar9 = dcgettext(0,pcVar8,5);" (assignment_expression "uVar9 = dcgettext(0,pcVar8,5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,pcVar8,5)" (identifier "dcgettext") (argument_list "(0,pcVar8,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar8") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_00047a20(uVar9,uVar4);" (call_expression "FUN_00047a20(uVar9,uVar4)" (identifier "FUN_00047a20") (argument_list "(uVar9,uVar4)" (( "(") (identifier "uVar9") (, ",") (identifier "uVar4") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar3 = param_2[3];" (assignment_expression "iVar3 = param_2[3]" (identifier "iVar3") (= "=") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_74 = (undefined1 *)0x0;" (assignment_expression "local_74 = (undefined1 *)0x0" (identifier "local_74") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (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] = iVar3 + 1 + (uint)local_1f;" (assignment_expression "param_2[3] = iVar3 + 1 + (uint)local_1f" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "iVar3 + 1 + (uint)local_1f" (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1")) (+ "+") (cast_expression "(uint)local_1f" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_1f")))) (; ";")) (if_statement "if (local_1f != 0) {\n      local_74 = local_50;\n      iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);\n      if (iVar7 == 0) {\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }" (if "if") (parenthesized_expression "(local_1f != 0)" (( "(") (binary_expression "local_1f != 0" (identifier "local_1f") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_74 = local_50;\n      iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);\n      if (iVar7 == 0) {\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }\n    }" ({ "{") (expression_statement "local_74 = local_50;" (assignment_expression "local_74 = local_50" (identifier "local_74") (= "=") (identifier "local_50")) (; ";")) (expression_statement "iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);" (assignment_expression "iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74)" (identifier "iVar7") (= "=") (call_expression "bfd_coff_get_auxent(param_1,iVar6,0,local_74)" (identifier "bfd_coff_get_auxent") (argument_list "(param_1,iVar6,0,local_74)" (( "(") (identifier "param_1") (, ",") (identifier "iVar6") (, ",") (number_literal "0") (, ",") (identifier "local_74") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar4 = bfd_get_error();\n        uVar4 = bfd_errmsg(uVar4);\n        pcVar8 = "bfd_coff_get_auxent failed: %s";\n        goto LAB_00046e1b;\n      }" ({ "{") (expression_statement "uVar4 = bfd_get_error();" (assignment_expression "uVar4 = bfd_get_error()" (identifier "uVar4") (= "=") (call_expression "bfd_get_error()" (identifier "bfd_get_error") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar4 = bfd_errmsg(uVar4);" (assignment_expression "uVar4 = bfd_errmsg(uVar4)" (identifier "uVar4") (= "=") (call_expression "bfd_errmsg(uVar4)" (identifier "bfd_errmsg") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "pcVar8 = "bfd_coff_get_auxent failed: %s";" (assignment_expression "pcVar8 = "bfd_coff_get_auxent failed: %s"" (identifier "pcVar8") (= "=") (string_literal ""bfd_coff_get_auxent failed: %s"" (" """) (string_content "bfd_coff_get_auxent failed: %s") (" """))) (; ";")) (goto_statement "goto LAB_00046e1b;" (goto "goto") (statement_identifier "LAB_00046e1b") (; ";")) (} "}"))) (} "}"))) (if_statement "if (local_20 == 0xb) {\nLAB_00046ca0:\n      uVar2 = 0;\n      puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n      uVar5 = *(uint *)(iVar6 + 8) + *puVar1;\n      local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;\n      local_84 = uVar5 * 8;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_84 = 0;\n      local_80 = 0;\n      uVar2 = 0;\n    }" (if "if") (parenthesized_expression "(local_20 == 0xb)" (( "(") (binary_expression "local_20 == 0xb" (identifier "local_20") (== "==") (number_literal "0xb")) () ")")) (compound_statement "{\nLAB_00046ca0:\n      uVar2 = 0;\n      puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n      uVar5 = *(uint *)(iVar6 + 8) + *puVar1;\n      local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;\n      local_84 = uVar5 * 8;\n    }" ({ "{") (labeled_statement "LAB_00046ca0:\n      uVar2 = 0;" (statement_identifier "LAB_00046ca0") (: ":") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";"))) (expression_statement "puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);" (assignment_expression "puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c)" (identifier "puVar1") (= "=") (cast_expression "(uint *)(*(int *)(iVar6 + 0x14) + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar6 + 0x14) + 0x1c)" (( "(") (binary_expression "*(int *)(iVar6 + 0x14) + 0x1c" (pointer_expression "*(int *)(iVar6 + 0x14)" (* "*") (cast_expression "(int *)(iVar6 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x14)" (( "(") (binary_expression "iVar6 + 0x14" (identifier "iVar6") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))) (; ";")) (expression_statement "uVar5 = *(uint *)(iVar6 + 8) + *puVar1;" (assignment_expression "uVar5 = *(uint *)(iVar6 + 8) + *puVar1" (identifier "uVar5") (= "=") (binary_expression "*(uint *)(iVar6 + 8) + *puVar1" (pointer_expression "*(uint *)(iVar6 + 8)" (* "*") (cast_expression "(uint *)(iVar6 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")")))) (+ "+") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")))) (; ";")) (expression_statement "local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;" (assignment_expression "local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d" (identifier "local_80") (= "=") (binary_expression "(*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d" (binary_expression "(*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8" (parenthesized_expression "(*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1))" (( "(") (binary_expression "*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +\n                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)" (binary_expression "*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20)" (pointer_expression "*(int *)(iVar6 + 0xc)" (* "*") (cast_expression "(int *)(iVar6 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xc)" (( "(") (binary_expression "iVar6 + 0xc" (identifier "iVar6") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (pointer_expression "*(int *)(*(int *)(iVar6 + 0x14) + 0x20)" (* "*") (cast_expression "(int *)(*(int *)(iVar6 + 0x14) + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar6 + 0x14) + 0x20)" (( "(") (binary_expression "*(int *)(iVar6 + 0x14) + 0x20" (pointer_expression "*(int *)(iVar6 + 0x14)" (* "*") (cast_expression "(int *)(iVar6 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x14)" (( "(") (binary_expression "iVar6 + 0x14" (identifier "iVar6") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "0x20")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(*(uint *)(iVar6 + 8),*puVar1)" (identifier "CARRY4") (argument_list "(*(uint *)(iVar6 + 8),*puVar1)" (( "(") (pointer_expression "*(uint *)(iVar6 + 8)" (* "*") (cast_expression "(uint *)(iVar6 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")")))) (, ",") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) () ")"))))) () ")")) (* "*") (number_literal "8")) (| "|") (binary_expression "uVar5 >> 0x1d" (identifier "uVar5") (>> ">>") (number_literal "0x1d")))) (; ";")) (expression_statement "local_84 = uVar5 * 8;" (assignment_expression "local_84 = uVar5 * 8" (identifier "local_84") (= "=") (binary_expression "uVar5 * 8" (identifier "uVar5") (* "*") (number_literal "8"))) (; ";")) (} "}")) (else_clause "else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_84 = 0;\n      local_80 = 0;\n      uVar2 = 0;\n    }" (else "else") (compound_statement "{\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_84 = 0;\n      local_80 = 0;\n      uVar2 = 0;\n    }" ({ "{") (if_statement "if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00046ca0;\n      }\n      else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }" (if "if") (parenthesized_expression "(local_20 < 0xc)" (( "(") (binary_expression "local_20 < 0xc" (identifier "local_20") (< "<") (number_literal "0xc")) () ")")) (compound_statement "{\n        if (local_20 == 8) goto LAB_00046ca0;\n      }" ({ "{") (if_statement "if (local_20 == 8) goto LAB_00046ca0;" (if "if") (parenthesized_expression "(local_20 == 8)" (( "(") (binary_expression "local_20 == 8" (identifier "local_20") (== "==") (number_literal "8")) () ")")) (goto_statement "goto LAB_00046ca0;" (goto "goto") (statement_identifier "LAB_00046ca0") (; ";"))) (} "}")) (else_clause "else {\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }" (else "else") (compound_statement "{\n        if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }\n        if (local_20 == 0x66) break;\n      }" ({ "{") (if_statement "if (local_20 == 0x12) {\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }" (if "if") (parenthesized_expression "(local_20 == 0x12)" (( "(") (binary_expression "local_20 == 0x12" (identifier "local_20") (== "==") (number_literal "0x12")) () ")")) (compound_statement "{\n          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);\n          local_84 = uVar5 + *(uint *)(iVar6 + 8);\n          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));\n          uVar2 = local_4a;\n          goto LAB_00046cd0;\n        }" ({ "{") (expression_statement "uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);" (assignment_expression "uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(*(int *)(iVar6 + 0x14) + 0x1c)" (* "*") (cast_expression "(uint *)(*(int *)(iVar6 + 0x14) + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar6 + 0x14) + 0x1c)" (( "(") (binary_expression "*(int *)(iVar6 + 0x14) + 0x1c" (pointer_expression "*(int *)(iVar6 + 0x14)" (* "*") (cast_expression "(int *)(iVar6 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x14)" (( "(") (binary_expression "iVar6 + 0x14" (identifier "iVar6") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "local_84 = uVar5 + *(uint *)(iVar6 + 8);" (assignment_expression "local_84 = uVar5 + *(uint *)(iVar6 + 8)" (identifier "local_84") (= "=") (binary_expression "uVar5 + *(uint *)(iVar6 + 8)" (identifier "uVar5") (+ "+") (pointer_expression "*(uint *)(iVar6 + 8)" (* "*") (cast_expression "(uint *)(iVar6 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (expression_statement "local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));" (assignment_expression "local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8))" (identifier "local_80") (= "=") (binary_expression "*(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +\n                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8))" (binary_expression "*(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc)" (pointer_expression "*(int *)(*(int *)(iVar6 + 0x14) + 0x20)" (* "*") (cast_expression "(int *)(*(int *)(iVar6 + 0x14) + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar6 + 0x14) + 0x20)" (( "(") (binary_expression "*(int *)(iVar6 + 0x14) + 0x20" (pointer_expression "*(int *)(iVar6 + 0x14)" (* "*") (cast_expression "(int *)(iVar6 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x14)" (( "(") (binary_expression "iVar6 + 0x14" (identifier "iVar6") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (pointer_expression "*(int *)(iVar6 + 0xc)" (* "*") (cast_expression "(int *)(iVar6 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xc)" (( "(") (binary_expression "iVar6 + 0xc" (identifier "iVar6") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(uVar5,*(uint *)(iVar6 + 8))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar5,*(uint *)(iVar6 + 8))" (identifier "CARRY4") (argument_list "(uVar5,*(uint *)(iVar6 + 8))" (( "(") (identifier "uVar5") (, ",") (pointer_expression "*(uint *)(iVar6 + 8)" (* "*") (cast_expression "(uint *)(iVar6 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")")))) () ")")))))) (; ";")) (expression_statement "uVar2 = local_4a;" (assignment_expression "uVar2 = local_4a" (identifier "uVar2") (= "=") (identifier "local_4a")) (; ";")) (goto_statement "goto LAB_00046cd0;" (goto "goto") (statement_identifier "LAB_00046cd0") (; ";")) (} "}"))) (if_statement "if (local_20 == 0x66) break;" (if "if") (parenthesized_expression "(local_20 == 0x66)" (( "(") (binary_expression "local_20 == 0x66" (identifier "local_20") (== "==") (number_literal "0x66")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")))) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" (identifier "local_84") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" (identifier "local_80") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_00046cd0:\n    uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6);" (statement_identifier "LAB_00046cd0") (: ":") (expression_statement "uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6);" (assignment_expression "uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6)" (identifier "uVar4") (= "=") (call_expression "FUN_00046470(iVar3,local_22,local_74,1,param_6)" (identifier "FUN_00046470") (argument_list "(iVar3,local_22,local_74,1,param_6)" (( "(") (identifier "iVar3") (, ",") (identifier "local_22") (, ",") (identifier "local_74") (, ",") (number_literal "1") (, ",") (identifier "param_6") () ")")))) (; ";"))) (expression_statement "iVar6 = FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0);" (assignment_expression "iVar6 = FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0)" (identifier "iVar6") (= "=") (call_expression "FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0)" (identifier "FUN_0003e410") (argument_list "(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0)" (( "(") (identifier "param_6") (, ",") (pointer_expression "*(undefined4 *)(iVar6 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (, ",") (identifier "uVar4") (, ",") (identifier "local_84") (, ",") (identifier "local_80") (, ",") (identifier "uVar2") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "local_70 = local_70 + 1;" (assignment_expression "local_70 = local_70 + 1" (identifier "local_70") (= "=") (binary_expression "local_70 + 1" (identifier "local_70") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_68 <= local_70) {\n      local_68 = local_68 + 10;\n      local_64 = xrealloc(local_64,local_68 * 4);\n    }" (if "if") (parenthesized_expression "(local_68 <= local_70)" (( "(") (binary_expression "local_68 <= local_70" (identifier "local_68") (<= "<=") (identifier "local_70")) () ")")) (compound_statement "{\n      local_68 = local_68 + 10;\n      local_64 = xrealloc(local_64,local_68 * 4);\n    }" ({ "{") (expression_statement "local_68 = local_68 + 10;" (assignment_expression "local_68 = local_68 + 10" (identifier "local_68") (= "=") (binary_expression "local_68 + 10" (identifier "local_68") (+ "+") (number_literal "10"))) (; ";")) (expression_statement "local_64 = xrealloc(local_64,local_68 * 4);" (assignment_expression "local_64 = xrealloc(local_64,local_68 * 4)" (identifier "local_64") (= "=") (call_expression "xrealloc(local_64,local_68 * 4)" (identifier "xrealloc") (argument_list "(local_64,local_68 * 4)" (( "(") (identifier "local_64") (, ",") (binary_expression "local_68 * 4" (identifier "local_68") (* "*") (number_literal "4")) () ")")))) (; ";")) (} "}"))) (expression_statement "*(int *)(local_64 + -4 + local_70 * 4) = iVar6;" (assignment_expression "*(int *)(local_64 + -4 + local_70 * 4) = iVar6" (pointer_expression "*(int *)(local_64 + -4 + local_70 * 4)" (* "*") (cast_expression "(int *)(local_64 + -4 + local_70 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_64 + -4 + local_70 * 4)" (( "(") (binary_expression "local_64 + -4 + local_70 * 4" (binary_expression "local_64 + -4" (identifier "local_64") (+ "+") (number_literal "-4")) (+ "+") (binary_expression "local_70 * 4" (identifier "local_70") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(local_64 + local_70 * 4) = 0;" (assignment_expression "*(undefined4 *)(local_64 + local_70 * 4) = 0" (pointer_expression "*(undefined4 *)(local_64 + local_70 * 4)" (* "*") (cast_expression "(undefined4 *)(local_64 + local_70 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_64 + local_70 * 4)" (( "(") (binary_expression "local_64 + local_70 * 4" (identifier "local_64") (+ "+") (binary_expression "local_70 * 4" (identifier "local_70") (* "*") (number_literal "4"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar4 = FUN_0003def0(param_6,param_3 == 8,*param_4,0,local_64);" (assignment_expression "uVar4 = FUN_0003def0(param_6,param_3 == 8,*param_4,0,local_64)" (identifier "uVar4") (= "=") (call_expression "FUN_0003def0(param_6,param_3 == 8,*param_4,0,local_64)" (identifier "FUN_0003def0") (argument_list "(param_6,param_3 == 8,*param_4,0,local_64)" (( "(") (identifier "param_6") (, ",") (binary_expression "param_3 == 8" (identifier "param_3") (== "==") (number_literal "8")) (, ",") (pointer_expression "*param_4" (* "*") (identifier "param_4")) (, ",") (number_literal "0") (, ",") (identifier "local_64") () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* 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 __regparm2
function_1
          (type_2 *abfd,type_3 *symbols,type_4 *var_22,int ntype,type_5 *pauxent,
          void *dhandle,type_5 *pauxent_1)

{
  type_6 *var_12;
  type_7 *paVar2;
  type_8 var_10;
  int var_3;
  type_9 pdVar5;
  type_8 var_13;
  type_1 type;
  type_10 var_17;
  int var_9;
  char *pcVar9;
  type_11 uVar10;
  type_4 *in_ECX;
  int local_84;
  type_8 local_80;
  type_8 local_7c;
  type_5 *local_74;
  int var_19;
  int var_18;
  type_10 *local_64;
  type_5 auxent;
  type_12 syment;
  
  local_64 = (type_10 *)var_1(0x28);
  var_18 = 10;
  var_19 = 0;
  while ((symbols->coff_symno < (int)pauxent && (symbols->symno < symbols->symcount))) {
    paVar2 = symbols->syms[symbols->symno];
    var_3 = var_2(abfd,paVar2,&syment);
    if (var_3 == 0) {
      uVar10 = var_4();
      uVar10 = var_5(uVar10);
      pcVar9 = "bfd_coff_get_syment failed: %s";
LAB_00046e1b:
      pcVar9 = (char *)var_6(0,pcVar9,5);
      var_7(pcVar9,uVar10);
      return (type_1)0x0;
    }
    var_3 = symbols->coff_symno;
    local_74 = (type_5 *)0x0;
    symbols->symno = symbols->symno + 1;
    symbols->coff_symno = var_3 + 1 + (type_8)syment.n_numaux;
    if (syment.n_numaux != '\0') {
      local_74 = &auxent;
      var_9 = var_8(abfd,paVar2,0,local_74);
      if (var_9 == 0) {
        uVar10 = var_4();
        uVar10 = var_5(uVar10);
        pcVar9 = "bfd_coff_get_auxent failed: %s";
        goto LAB_00046e1b;
      }
    }
    if (syment.n_sclass == '\v') {
LAB_00046ca0:
      var_10 = (type_8)paVar2->value;
      local_7c = 0;
      var_12 = &paVar2->section->vma;
      var_13 = var_10 + (int)*var_12;
      local_80 = (*(int *)((int)&paVar2->value + 4) + *(int *)((int)&paVar2->section->vma + 4) +
                 (type_8)var_11(var_10,(type_8)*var_12)) * 8 | var_13 >> 0x1d;
      local_84 = var_13 * 8;
    }
    else {
      if (syment.n_sclass < 0xc) {
        if (syment.n_sclass == '\b') goto LAB_00046ca0;
      }
      else {
        if (syment.n_sclass == '\x12') {
          var_10 = (type_8)paVar2->section->vma;
          local_84 = var_10 + (int)paVar2->value;
          local_80 = *(int *)((int)&paVar2->section->vma + 4) + *(int *)((int)&paVar2->value + 4) +
                     (type_8)var_11(var_10,(type_8)paVar2->value);
          local_7c = (type_8)auxent.x_scn.x_nlinno;
          goto LAB_00046cd0;
        }
        if (syment.n_sclass == 'f') break;
      }
      local_7c = 0;
      local_84 = 0;
      local_80 = 0;
    }
LAB_00046cd0:
    type = var_14(abfd,symbols,in_ECX,var_3,(type_8)syment.n_type,local_74,1,dhandle);
    var_17 = var_15(dhandle,paVar2->name,type,var_16(local_80,local_84),
                              (type_13)local_7c,DEBUG_VISIBILITY_PUBLIC);
    if (var_17 == (type_10)0x0) {
      return (type_1)0x0;
    }
    if (var_18 <= var_19 + 1) {
      var_18 = var_18 + 10;
      local_64 = (type_10 *)var_20(local_64,var_18 * 4);
    }
    local_64[var_19] = var_17;
    var_19 = var_19 + 1;
  }
  local_64[var_19] = (type_10)0x0;
  pdVar5 = var_21
                     (dhandle,(type_8)(var_22 == (type_4 *)0x8),(type_13)*(type_14 *)ntype,
                      local_64);
  return pdVar5;
}


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

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

undefined4 __regparm2
MASKED(undefined4 param_1,int *param_2,int param_3,undefined2 *param_4,int param_5,
            undefined4 param_6)

{
  uint *puVar1;
  undefined2 uVar2;
  int iVar3;
  undefined4 uVar4;
  uint uVar5;
  int iVar6;
  int iVar7;
  char *pcVar8;
  undefined4 uVar9;
  int local_84;
  uint local_80;
  undefined1 *local_74;
  int local_70;
  int local_68;
  int local_64;
  undefined1 local_50 [6];
  undefined2 local_4a;
  undefined1 local_38 [22];
  undefined2 local_22;
  byte local_20;
  byte local_1f;
  undefined4 uStack_14;
  
  uStack_14 = 0x46b9d;
  local_64 = xmalloc(0x28);
  local_68 = 10;
  local_70 = 0;
  while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {
    iVar6 = *(int *)(*param_2 + param_2[2] * 4);
    iVar3 = bfd_coff_get_syment(param_1,iVar6,local_38);
    if (iVar3 == 0) {
      uVar4 = bfd_get_error();
      uVar4 = bfd_errmsg(uVar4);
      pcVar8 = "bfd_coff_get_syment failed: %s";
LAB_00046e1b:
      uVar9 = dcgettext(0,pcVar8,5);
      FUN_00047a20(uVar9,uVar4);
      return 0;
    }
    iVar3 = param_2[3];
    local_74 = (undefined1 *)0x0;
    param_2[2] = param_2[2] + 1;
    param_2[3] = iVar3 + 1 + (uint)local_1f;
    if (local_1f != 0) {
      local_74 = local_50;
      iVar7 = bfd_coff_get_auxent(param_1,iVar6,0,local_74);
      if (iVar7 == 0) {
        uVar4 = bfd_get_error();
        uVar4 = bfd_errmsg(uVar4);
        pcVar8 = "bfd_coff_get_auxent failed: %s";
        goto LAB_00046e1b;
      }
    }
    if (local_20 == 0xb) {
LAB_00046ca0:
      uVar2 = 0;
      puVar1 = (uint *)(*(int *)(iVar6 + 0x14) + 0x1c);
      uVar5 = *(uint *)(iVar6 + 8) + *puVar1;
      local_80 = (*(int *)(iVar6 + 0xc) + *(int *)(*(int *)(iVar6 + 0x14) + 0x20) +
                 (uint)CARRY4(*(uint *)(iVar6 + 8),*puVar1)) * 8 | uVar5 >> 0x1d;
      local_84 = uVar5 * 8;
    }
    else {
      if (local_20 < 0xc) {
        if (local_20 == 8) goto LAB_00046ca0;
      }
      else {
        if (local_20 == 0x12) {
          uVar5 = *(uint *)(*(int *)(iVar6 + 0x14) + 0x1c);
          local_84 = uVar5 + *(uint *)(iVar6 + 8);
          local_80 = *(int *)(*(int *)(iVar6 + 0x14) + 0x20) + *(int *)(iVar6 + 0xc) +
                     (uint)CARRY4(uVar5,*(uint *)(iVar6 + 8));
          uVar2 = local_4a;
          goto LAB_00046cd0;
        }
        if (local_20 == 0x66) break;
      }
      local_84 = 0;
      local_80 = 0;
      uVar2 = 0;
    }
LAB_00046cd0:
    uVar4 = FUN_00046470(iVar3,local_22,local_74,1,param_6);
    iVar6 = FUN_0003e410(param_6,*(undefined4 *)(iVar6 + 4),uVar4,local_84,local_80,uVar2,0,0);
    if (iVar6 == 0) {
      return 0;
    }
    local_70 = local_70 + 1;
    if (local_68 <= local_70) {
      local_68 = local_68 + 10;
      local_64 = xrealloc(local_64,local_68 * 4);
    }
    *(int *)(local_64 + -4 + local_70 * 4) = iVar6;
  }
  *(undefined4 *)(local_64 + local_70 * 4) = 0;
  uVar4 = FUN_0003def0(param_6,param_3 == 8,*param_4,0,local_64);
  return uVar4;
}

