
/* 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)

{
  asymbol *paVar1;
  int iVar2;
  internal_auxent *pauxent_00;
  debug_type_conflict pdVar3;
  debug_type type;
  debug_field pdVar4;
  int iVar5;
  char *pcVar6;
  undefined4 uVar7;
  coff_types *in_ECX;
  bfd_vma bitsize;
  bfd_vma local_64;
  int local_60;
  int local_58;
  debug_field *local_54;
  internal_auxent auxent;
  internal_syment syment;
  
  local_54 = (debug_field *)xmalloc(0x28);
  local_58 = 10;
  local_60 = 0;
  while ((symbols->coff_symno < (int)pauxent && (symbols->symno < symbols->symcount))) {
    paVar1 = symbols->syms[symbols->symno];
    iVar2 = bfd_coff_get_syment(abfd,paVar1,&syment);
    if (iVar2 == 0) {
      uVar7 = bfd_get_error();
      uVar7 = bfd_errmsg(uVar7);
      pcVar6 = "bfd_coff_get_syment failed: %s";
LAB_000277c3:
      pcVar6 = (char *)dcgettext(0,pcVar6,5);
      non_fatal(pcVar6,uVar7);
      return (debug_type)0x0;
    }
    iVar2 = symbols->coff_symno;
    symbols->symno = symbols->symno + 1;
    symbols->coff_symno = iVar2 + 1 + (uint)syment.n_numaux;
    pauxent_00 = (internal_auxent *)0x0;
    if ((syment.n_numaux != '\0') &&
       (iVar5 = bfd_coff_get_auxent(abfd,paVar1,0,&auxent), pauxent_00 = &auxent, iVar5 == 0)) {
      uVar7 = bfd_get_error();
      uVar7 = bfd_errmsg(uVar7);
      pcVar6 = "bfd_coff_get_auxent failed: %s";
      goto LAB_000277c3;
    }
    if (syment.n_sclass == '\v') {
LAB_00027699:
      local_64 = (paVar1->value + paVar1->section->vma) * 8;
      bitsize = 0;
    }
    else {
      if (syment.n_sclass < 0xc) {
        if (syment.n_sclass == '\b') goto LAB_00027699;
      }
      else {
        if (syment.n_sclass == '\x12') {
          local_64 = paVar1->value + paVar1->section->vma;
          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;
          goto LAB_000276b0;
        }
        if (syment.n_sclass == 'f') break;
      }
      bitsize = 0;
      local_64 = 0;
    }
LAB_000276b0:
    type = parse_coff_type(abfd,symbols,in_ECX,iVar2,(uint)syment.n_type,pauxent_00,1,dhandle);
    pdVar4 = debug_make_field(dhandle,paVar1->name,type,local_64,bitsize,DEBUG_VISIBILITY_PUBLIC);
    if (pdVar4 == (debug_field)0x0) {
      return (debug_type)0x0;
    }
    if (local_58 <= local_60 + 1) {
      local_58 = local_58 + 10;
      local_54 = (debug_field *)xrealloc(local_54,local_58 * 4);
    }
    local_54[local_60] = pdVar4;
    local_60 = local_60 + 1;
  }
  local_54[local_60] = (debug_field)0x0;
  pdVar3 = debug_make_struct_type
                     (dhandle,(uint)(types == (coff_types *)0x8),(uint)*(ushort *)ntype,local_54);
  return pdVar3;
}



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

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

{
  int iVar1;
  undefined1 *puVar2;
  undefined4 uVar3;
  int iVar4;
  int iVar5;
  char *pcVar6;
  undefined4 uVar7;
  undefined2 uVar8;
  int local_64;
  int local_60;
  int local_58;
  int local_54;
  undefined1 local_48 [6];
  undefined2 local_42;
  undefined1 local_34 [18];
  undefined2 local_22;
  byte local_20;
  byte local_1f;
  undefined4 uStack_14;
  
  uStack_14 = 0x275ad;
  local_54 = xmalloc(0x28);
  local_58 = 10;
  local_60 = 0;
  while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {
    iVar4 = *(int *)(*param_2 + param_2[2] * 4);
    iVar1 = bfd_coff_get_syment(param_1,iVar4,local_34);
    if (iVar1 == 0) {
      uVar3 = bfd_get_error();
      uVar3 = bfd_errmsg(uVar3);
      pcVar6 = "bfd_coff_get_syment failed: %s";
LAB_000277c3:
      uVar7 = dcgettext(0,pcVar6,5);
      FUN_0002b6d0(uVar7,uVar3);
      return 0;
    }
    iVar1 = param_2[3];
    param_2[2] = param_2[2] + 1;
    param_2[3] = iVar1 + 1 + (uint)local_1f;
    puVar2 = (undefined1 *)0x0;
    if ((local_1f != 0) &&
       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)) {
      uVar3 = bfd_get_error();
      uVar3 = bfd_errmsg(uVar3);
      pcVar6 = "bfd_coff_get_auxent failed: %s";
      goto LAB_000277c3;
    }
    if (local_20 == 0xb) {
LAB_00027699:
      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;
      uVar8 = 0;
    }
    else {
      if (local_20 < 0xc) {
        if (local_20 == 8) goto LAB_00027699;
      }
      else {
        if (local_20 == 0x12) {
          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);
          uVar8 = local_42;
          goto LAB_000276b0;
        }
        if (local_20 == 0x66) break;
      }
      local_64 = 0;
      uVar8 = 0;
    }
LAB_000276b0:
    uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6);
    iVar4 = FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0);
    if (iVar4 == 0) {
      return 0;
    }
    local_60 = local_60 + 1;
    if (local_58 <= local_60) {
      local_58 = local_58 + 10;
      local_54 = xrealloc(local_54,local_58 * 4);
    }
    *(int *)(local_54 + -4 + local_60 * 4) = iVar4;
  }
  *(undefined4 *)(local_54 + local_60 * 4) = 0;
  uVar3 = FUN_0001ed50(param_6,param_3 == 8,*param_4,local_54);
  return uVar3;
}


PUSH EBP
MOV EBP,EAX
PUSH EDI
PUSH ESI
MOV ESI,EDX
PUSH EBX
CALL 0x000165d0
ADD EBX,0x17a53
SUB ESP,0x68
MOV dword ptr [ESP + 0x28],ECX
PUSH 0x28
CALL 0x000132e0
MOV dword ptr [ESP + 0x28],EAX
ADD ESP,0x10
LEA EAX,[ESP + 0x24]
MOV dword ptr [ESP + 0x14],0xa
MOV dword ptr [ESP + 0xc],0x0
MOV dword ptr [ESP + 0x10],EAX
MOV dword ptr [ESP + 0x4],EBP
MOV EAX,dword ptr [ESP + 0x78]
CMP dword ptr [ESI + 0xc],EAX
JGE 0x00027654
MOV EAX,dword ptr [ESI + 0x8]
CMP EAX,dword ptr [ESI + 0x4]
JGE 0x00027654
MOV EDX,dword ptr [ESI]
SUB ESP,0x4
MOV EBP,dword ptr [EDX + EAX*0x4]
LEA EAX,[ESP + 0x3c]
PUSH EAX
PUSH EBP
PUSH dword ptr [ESP + 0x10]
CALL 0x00013670
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000277a8
MOV EDX,dword ptr [ESI + 0xc]
MOVZX EAX,byte ptr [ESP + 0x4d]
ADD dword ptr [ESI + 0x8],0x1
MOV ECX,EAX
LEA EAX,[EDX + EAX*0x1 + 0x1]
MOV dword ptr [ESI + 0xc],EAX
XOR EAX,EAX
TEST CL,CL
JNZ 0x00027730
MOVZX ECX,byte ptr [ESP + 0x4c]
CMP CL,0xb
JZ 0x00027699
JBE 0x00027690
CMP CL,0x12
JZ 0x00027760
CMP CL,0x66
JNZ 0x00027720
MOV EAX,dword ptr [ESP + 0x18]
MOV EDI,dword ptr [ESP + 0xc]
MOV dword ptr [EAX + EDI*0x4],0x0
PUSH EAX
MOV EAX,dword ptr [ESP + 0x78]
MOVZX EAX,word ptr [EAX]
PUSH EAX
XOR EAX,EAX
CMP dword ptr [ESP + 0x78],0x8
SETZ AL
PUSH EAX
PUSH dword ptr [ESP + 0x88]
CALL 0x0001ed50
ADD ESP,0x10
ADD ESP,0x5c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP CL,0x8
JNZ 0x00027720
MOV ECX,dword ptr [EBP + 0x10]
MOV EDI,dword ptr [EBP + 0x8]
ADD EDI,dword ptr [ECX + 0x1c]
SHL EDI,0x3
MOV dword ptr [ESP + 0x8],EDI
XOR EDI,EDI
LEA ESI,[ESI]
NOP
SUB ESP,0xc
PUSH dword ptr [ESP + 0x88]
PUSH 0x1
PUSH EAX
MOVZX EAX,word ptr [ESP + 0x62]
PUSH EAX
PUSH EDX
MOV ECX,dword ptr [ESP + 0x3c]
MOV EDX,ESI
MOV EAX,dword ptr [ESP + 0x24]
CALL 0x00026ea0
ADD ESP,0x18
PUSH 0x0
PUSH EDI
PUSH dword ptr [ESP + 0x18]
PUSH EAX
PUSH dword ptr [EBP + 0x4]
PUSH dword ptr [ESP + 0x98]
CALL 0x0001f220
ADD ESP,0x20
MOV EDI,EAX
TEST EAX,EAX
JZ 0x000277d7
ADD dword ptr [ESP + 0xc],0x1
MOV EAX,dword ptr [ESP + 0xc]
CMP EAX,dword ptr [ESP + 0x14]
JGE 0x00027780
MOV EAX,dword ptr [ESP + 0x18]
MOV EDX,dword ptr [ESP + 0xc]
MOV dword ptr [EAX + EDX*0x4 + -0x4],EDI
JMP 0x000275e4
XOR EDI,EDI
MOV dword ptr [ESP + 0x8],0x0
JMP 0x000276b0
MOV dword ptr [ESP + 0x8],EDX
PUSH dword ptr [ESP + 0x10]
PUSH 0x0
PUSH EBP
PUSH dword ptr [ESP + 0x10]
CALL 0x00013570
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JZ 0x000277e1
MOV EAX,dword ptr [ESP + 0x10]
JMP 0x00027636
MOV ECX,dword ptr [EBP + 0x10]
MOV EDI,dword ptr [EBP + 0x8]
ADD EDI,dword ptr [ECX + 0x1c]
MOV dword ptr [ESP + 0x8],EDI
MOVZX EDI,word ptr [ESP + 0x2a]
JMP 0x000276b0
ADD dword ptr [ESP + 0x14],0xa
MOV EAX,dword ptr [ESP + 0x14]
SUB ESP,0x8
SHL EAX,0x2
PUSH EAX
PUSH dword ptr [ESP + 0x24]
CALL 0x00013230
MOV dword ptr [ESP + 0x28],EAX
ADD ESP,0x10
JMP 0x00027709
CALL 0x000132b0
SUB ESP,0xc
PUSH EAX
CALL 0x000137b0
ADD ESP,0xc
PUSH 0x5
MOV ESI,EAX
LEA EAX,[EBX + 0xffff4cd0]
PUSH EAX
PUSH 0x0
CALL 0x00013200
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x0002b6d0
ADD ESP,0x10
ADD ESP,0x5c
XOR EAX,EAX
POP EBX
POP ESI
POP EDI
POP EBP
RET
CALL 0x000132b0
SUB ESP,0xc
PUSH EAX
CALL 0x000137b0
ADD ESP,0xc
MOV ESI,EAX
PUSH 0x5
LEA EAX,[EBX + 0xffff4cf0]
JMP 0x000277c3
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 __regparm2\nFUN_000275a0(undefined4 param_1,int *param_2,int param_3,undefined2 *param_4,int param_5,\n            undefined4 param_6)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  undefined2 uVar8;\n  int local_64;\n  int local_60;\n  int local_58;\n  int local_54;\n  undefined1 local_48 [6];\n  undefined2 local_42;\n  undefined1 local_34 [18];\n  undefined2 local_22;\n  byte local_20;\n  byte local_1f;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x275ad;\n  local_54 = xmalloc(0x28);\n  local_58 = 10;\n  local_60 = 0;\n  while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {\n    iVar4 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar1 = bfd_coff_get_syment(param_1,iVar4,local_34);\n    if (iVar1 == 0) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      uVar7 = dcgettext(0,pcVar6,5);\n      FUN_0002b6d0(uVar7,uVar3);\n      return 0;\n    }\n    iVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar1 + 1 + (uint)local_1f;\n    puVar2 = (undefined1 *)0x0;\n    if ((local_1f != 0) &&\n       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }\n    if (local_20 == 0xb) {\nLAB_00027699:\n      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;\n      uVar8 = 0;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_64 = 0;\n      uVar8 = 0;\n    }\nLAB_000276b0:\n    uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6);\n    iVar4 = FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0);\n    if (iVar4 == 0) {\n      return 0;\n    }\n    local_60 = local_60 + 1;\n    if (local_58 <= local_60) {\n      local_58 = local_58 + 10;\n      local_54 = xrealloc(local_54,local_58 * 4);\n    }\n    *(int *)(local_54 + -4 + local_60 * 4) = iVar4;\n  }\n  *(undefined4 *)(local_54 + local_60 * 4) = 0;\n  uVar3 = FUN_0001ed50(param_6,param_3 == 8,*param_4,local_54);\n  return uVar3;\n}\n\n" comment (function_definition "undefined4 __regparm2\nFUN_000275a0(undefined4 param_1,int *param_2,int param_3,undefined2 *param_4,int param_5,\n            undefined4 param_6)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  undefined2 uVar8;\n  int local_64;\n  int local_60;\n  int local_58;\n  int local_54;\n  undefined1 local_48 [6];\n  undefined2 local_42;\n  undefined1 local_34 [18];\n  undefined2 local_22;\n  byte local_20;\n  byte local_1f;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x275ad;\n  local_54 = xmalloc(0x28);\n  local_58 = 10;\n  local_60 = 0;\n  while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {\n    iVar4 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar1 = bfd_coff_get_syment(param_1,iVar4,local_34);\n    if (iVar1 == 0) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      uVar7 = dcgettext(0,pcVar6,5);\n      FUN_0002b6d0(uVar7,uVar3);\n      return 0;\n    }\n    iVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar1 + 1 + (uint)local_1f;\n    puVar2 = (undefined1 *)0x0;\n    if ((local_1f != 0) &&\n       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }\n    if (local_20 == 0xb) {\nLAB_00027699:\n      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;\n      uVar8 = 0;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_64 = 0;\n      uVar8 = 0;\n    }\nLAB_000276b0:\n    uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6);\n    iVar4 = FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0);\n    if (iVar4 == 0) {\n      return 0;\n    }\n    local_60 = local_60 + 1;\n    if (local_58 <= local_60) {\n      local_58 = local_58 + 10;\n      local_54 = xrealloc(local_54,local_58 * 4);\n    }\n    *(int *)(local_54 + -4 + local_60 * 4) = iVar4;\n  }\n  *(undefined4 *)(local_54 + local_60 * 4) = 0;\n  uVar3 = FUN_0001ed50(param_6,param_3 == 8,*param_4,local_54);\n  return uVar3;\n}" type_identifier (ERROR "__regparm2" identifier) (function_declarator "FUN_000275a0(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  int iVar1;\n  undefined1 *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  undefined2 uVar8;\n  int local_64;\n  int local_60;\n  int local_58;\n  int local_54;\n  undefined1 local_48 [6];\n  undefined2 local_42;\n  undefined1 local_34 [18];\n  undefined2 local_22;\n  byte local_20;\n  byte local_1f;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x275ad;\n  local_54 = xmalloc(0x28);\n  local_58 = 10;\n  local_60 = 0;\n  while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {\n    iVar4 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar1 = bfd_coff_get_syment(param_1,iVar4,local_34);\n    if (iVar1 == 0) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      uVar7 = dcgettext(0,pcVar6,5);\n      FUN_0002b6d0(uVar7,uVar3);\n      return 0;\n    }\n    iVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar1 + 1 + (uint)local_1f;\n    puVar2 = (undefined1 *)0x0;\n    if ((local_1f != 0) &&\n       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }\n    if (local_20 == 0xb) {\nLAB_00027699:\n      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;\n      uVar8 = 0;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_64 = 0;\n      uVar8 = 0;\n    }\nLAB_000276b0:\n    uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6);\n    iVar4 = FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0);\n    if (iVar4 == 0) {\n      return 0;\n    }\n    local_60 = local_60 + 1;\n    if (local_58 <= local_60) {\n      local_58 = local_58 + 10;\n      local_54 = xrealloc(local_54,local_58 * 4);\n    }\n    *(int *)(local_54 + -4 + local_60 * 4) = iVar4;\n  }\n  *(undefined4 *)(local_54 + local_60 * 4) = 0;\n  uVar3 = FUN_0001ed50(param_6,param_3 == 8,*param_4,local_54);\n  return uVar3;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined1 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined2 uVar8;" type_identifier identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "undefined1 local_48 [6];" type_identifier (array_declarator "local_48 [6]" identifier [ number_literal ]) ;) (declaration "undefined2 local_42;" type_identifier identifier ;) (declaration "undefined1 local_34 [18];" type_identifier (array_declarator "local_34 [18]" 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 = 0x275ad;" (assignment_expression "uStack_14 = 0x275ad" identifier = number_literal) ;) (expression_statement "local_54 = xmalloc(0x28);" (assignment_expression "local_54 = xmalloc(0x28)" identifier = (call_expression "xmalloc(0x28)" identifier (argument_list "(0x28)" ( number_literal )))) ;) (expression_statement "local_58 = 10;" (assignment_expression "local_58 = 10" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (while_statement "while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {\n    iVar4 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar1 = bfd_coff_get_syment(param_1,iVar4,local_34);\n    if (iVar1 == 0) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      uVar7 = dcgettext(0,pcVar6,5);\n      FUN_0002b6d0(uVar7,uVar3);\n      return 0;\n    }\n    iVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar1 + 1 + (uint)local_1f;\n    puVar2 = (undefined1 *)0x0;\n    if ((local_1f != 0) &&\n       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }\n    if (local_20 == 0xb) {\nLAB_00027699:\n      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;\n      uVar8 = 0;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_64 = 0;\n      uVar8 = 0;\n    }\nLAB_000276b0:\n    uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6);\n    iVar4 = FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0);\n    if (iVar4 == 0) {\n      return 0;\n    }\n    local_60 = local_60 + 1;\n    if (local_58 <= local_60) {\n      local_58 = local_58 + 10;\n      local_54 = xrealloc(local_54,local_58 * 4);\n    }\n    *(int *)(local_54 + -4 + local_60 * 4) = iVar4;\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    iVar4 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar1 = bfd_coff_get_syment(param_1,iVar4,local_34);\n    if (iVar1 == 0) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      uVar7 = dcgettext(0,pcVar6,5);\n      FUN_0002b6d0(uVar7,uVar3);\n      return 0;\n    }\n    iVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar1 + 1 + (uint)local_1f;\n    puVar2 = (undefined1 *)0x0;\n    if ((local_1f != 0) &&\n       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }\n    if (local_20 == 0xb) {\nLAB_00027699:\n      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;\n      uVar8 = 0;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_64 = 0;\n      uVar8 = 0;\n    }\nLAB_000276b0:\n    uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6);\n    iVar4 = FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0);\n    if (iVar4 == 0) {\n      return 0;\n    }\n    local_60 = local_60 + 1;\n    if (local_58 <= local_60) {\n      local_58 = local_58 + 10;\n      local_54 = xrealloc(local_54,local_58 * 4);\n    }\n    *(int *)(local_54 + -4 + local_60 * 4) = iVar4;\n  }" { (expression_statement "iVar4 = *(int *)(*param_2 + param_2[2] * 4);" (assignment_expression "iVar4 = *(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 "iVar1 = bfd_coff_get_syment(param_1,iVar4,local_34);" (assignment_expression "iVar1 = bfd_coff_get_syment(param_1,iVar4,local_34)" identifier = (call_expression "bfd_coff_get_syment(param_1,iVar4,local_34)" identifier (argument_list "(param_1,iVar4,local_34)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      uVar7 = dcgettext(0,pcVar6,5);\n      FUN_0002b6d0(uVar7,uVar3);\n      return 0;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      uVar7 = dcgettext(0,pcVar6,5);\n      FUN_0002b6d0(uVar7,uVar3);\n      return 0;\n    }" { (expression_statement "uVar3 = bfd_get_error();" (assignment_expression "uVar3 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar3 = bfd_errmsg(uVar3);" (assignment_expression "uVar3 = bfd_errmsg(uVar3)" identifier = (call_expression "bfd_errmsg(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "pcVar6 = "bfd_coff_get_syment failed: %s";" (assignment_expression "pcVar6 = "bfd_coff_get_syment failed: %s"" identifier = (string_literal ""bfd_coff_get_syment failed: %s"" " string_content ")) ;) (labeled_statement "LAB_000277c3:\n      uVar7 = dcgettext(0,pcVar6,5);" statement_identifier : (expression_statement "uVar7 = dcgettext(0,pcVar6,5);" (assignment_expression "uVar7 = dcgettext(0,pcVar6,5)" identifier = (call_expression "dcgettext(0,pcVar6,5)" identifier (argument_list "(0,pcVar6,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002b6d0(uVar7,uVar3);" (call_expression "FUN_0002b6d0(uVar7,uVar3)" identifier (argument_list "(uVar7,uVar3)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar1 = param_2[3];" (assignment_expression "iVar1 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "param_2[2] = param_2[2] + 1;" (assignment_expression "param_2[2] = param_2[2] + 1" (subscript_expression "param_2[2]" identifier [ number_literal ]) = (binary_expression "param_2[2] + 1" (subscript_expression "param_2[2]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "param_2[3] = iVar1 + 1 + (uint)local_1f;" (assignment_expression "param_2[3] = iVar1 + 1 + (uint)local_1f" (subscript_expression "param_2[3]" identifier [ number_literal ]) = (binary_expression "iVar1 + 1 + (uint)local_1f" (binary_expression "iVar1 + 1" identifier + number_literal) + (cast_expression "(uint)local_1f" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "puVar2 = (undefined1 *)0x0;" (assignment_expression "puVar2 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((local_1f != 0) &&\n       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }" if (parenthesized_expression "((local_1f != 0) &&\n       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0))" ( (binary_expression "(local_1f != 0) &&\n       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)" (parenthesized_expression "(local_1f != 0)" ( (binary_expression "local_1f != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)" ( (comma_expression "iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0" (assignment_expression "iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48)" identifier = (call_expression "bfd_coff_get_auxent(param_1,iVar4,0,local_48)" identifier (argument_list "(param_1,iVar4,0,local_48)" ( identifier , identifier , number_literal , identifier )))) , (comma_expression "puVar2 = local_48, iVar5 == 0" (assignment_expression "puVar2 = local_48" identifier = identifier) , (binary_expression "iVar5 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }" { (expression_statement "uVar3 = bfd_get_error();" (assignment_expression "uVar3 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar3 = bfd_errmsg(uVar3);" (assignment_expression "uVar3 = bfd_errmsg(uVar3)" identifier = (call_expression "bfd_errmsg(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "pcVar6 = "bfd_coff_get_auxent failed: %s";" (assignment_expression "pcVar6 = "bfd_coff_get_auxent failed: %s"" identifier = (string_literal ""bfd_coff_get_auxent failed: %s"" " string_content ")) ;) (goto_statement "goto LAB_000277c3;" goto statement_identifier ;) })) (if_statement "if (local_20 == 0xb) {\nLAB_00027699:\n      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;\n      uVar8 = 0;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_64 = 0;\n      uVar8 = 0;\n    }" if (parenthesized_expression "(local_20 == 0xb)" ( (binary_expression "local_20 == 0xb" identifier == number_literal) )) (compound_statement "{\nLAB_00027699:\n      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;\n      uVar8 = 0;\n    }" { (labeled_statement "LAB_00027699:\n      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;" statement_identifier : (expression_statement "local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;" (assignment_expression "local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8" identifier = (binary_expression "(*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8" (parenthesized_expression "(*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c))" ( (binary_expression "*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) + (pointer_expression "*(int *)(*(int *)(iVar4 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar4 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(iVar4 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar4 + 0x10)" * (cast_expression "(int *)(iVar4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) + number_literal) ))))) )) * number_literal)) ;)) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_64 = 0;\n      uVar8 = 0;\n    }" else (compound_statement "{\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_64 = 0;\n      uVar8 = 0;\n    }" { (if_statement "if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\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_00027699;\n      }" { (if_statement "if (local_20 == 8) goto LAB_00027699;" if (parenthesized_expression "(local_20 == 8)" ( (binary_expression "local_20 == 8" identifier == number_literal) )) (goto_statement "goto LAB_00027699;" goto statement_identifier ;)) }) (else_clause "else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }" else (compound_statement "{\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }" { (if_statement "if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }" if (parenthesized_expression "(local_20 == 0x12)" ( (binary_expression "local_20 == 0x12" identifier == number_literal) )) (compound_statement "{\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }" { (expression_statement "local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);" (assignment_expression "local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)" identifier = (binary_expression "*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) + (pointer_expression "*(int *)(*(int *)(iVar4 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar4 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(iVar4 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar4 + 0x10)" * (cast_expression "(int *)(iVar4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "uVar8 = local_42;" (assignment_expression "uVar8 = local_42" identifier = identifier) ;) (goto_statement "goto LAB_000276b0;" 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_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_000276b0:\n    uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6);" statement_identifier : (expression_statement "uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6);" (assignment_expression "uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6)" identifier = (call_expression "FUN_00026ea0(iVar1,local_22,puVar2,1,param_6)" identifier (argument_list "(iVar1,local_22,puVar2,1,param_6)" ( identifier , identifier , identifier , number_literal , identifier )))) ;)) (expression_statement "iVar4 = FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0);" (assignment_expression "iVar4 = FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0)" identifier = (call_expression "FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0)" identifier (argument_list "(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0)" ( identifier , (pointer_expression "*(undefined4 *)(iVar4 + 4)" * (cast_expression "(undefined4 *)(iVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) , identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (iVar4 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_60 = local_60 + 1;" (assignment_expression "local_60 = local_60 + 1" identifier = (binary_expression "local_60 + 1" identifier + number_literal)) ;) (if_statement "if (local_58 <= local_60) {\n      local_58 = local_58 + 10;\n      local_54 = xrealloc(local_54,local_58 * 4);\n    }" if (parenthesized_expression "(local_58 <= local_60)" ( (binary_expression "local_58 <= local_60" identifier <= identifier) )) (compound_statement "{\n      local_58 = local_58 + 10;\n      local_54 = xrealloc(local_54,local_58 * 4);\n    }" { (expression_statement "local_58 = local_58 + 10;" (assignment_expression "local_58 = local_58 + 10" identifier = (binary_expression "local_58 + 10" identifier + number_literal)) ;) (expression_statement "local_54 = xrealloc(local_54,local_58 * 4);" (assignment_expression "local_54 = xrealloc(local_54,local_58 * 4)" identifier = (call_expression "xrealloc(local_54,local_58 * 4)" identifier (argument_list "(local_54,local_58 * 4)" ( identifier , (binary_expression "local_58 * 4" identifier * number_literal) )))) ;) })) (expression_statement "*(int *)(local_54 + -4 + local_60 * 4) = iVar4;" (assignment_expression "*(int *)(local_54 + -4 + local_60 * 4) = iVar4" (pointer_expression "*(int *)(local_54 + -4 + local_60 * 4)" * (cast_expression "(int *)(local_54 + -4 + local_60 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + -4 + local_60 * 4)" ( (binary_expression "local_54 + -4 + local_60 * 4" (binary_expression "local_54 + -4" identifier + number_literal) + (binary_expression "local_60 * 4" identifier * number_literal)) )))) = identifier) ;) })) (expression_statement "*(undefined4 *)(local_54 + local_60 * 4) = 0;" (assignment_expression "*(undefined4 *)(local_54 + local_60 * 4) = 0" (pointer_expression "*(undefined4 *)(local_54 + local_60 * 4)" * (cast_expression "(undefined4 *)(local_54 + local_60 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + local_60 * 4)" ( (binary_expression "local_54 + local_60 * 4" identifier + (binary_expression "local_60 * 4" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "uVar3 = FUN_0001ed50(param_6,param_3 == 8,*param_4,local_54);" (assignment_expression "uVar3 = FUN_0001ed50(param_6,param_3 == 8,*param_4,local_54)" identifier = (call_expression "FUN_0001ed50(param_6,param_3 == 8,*param_4,local_54)" identifier (argument_list "(param_6,param_3 == 8,*param_4,local_54)" ( identifier , (binary_expression "param_3 == 8" identifier == number_literal) , (pointer_expression "*param_4" * identifier) , identifier )))) ;) (return_statement "return uVar3;" 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  asymbol *paVar1;\n  int iVar2;\n  internal_auxent *pauxent_00;\n  debug_type_conflict pdVar3;\n  debug_type type;\n  debug_field pdVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  coff_types *in_ECX;\n  bfd_vma bitsize;\n  bfd_vma local_64;\n  int local_60;\n  int local_58;\n  debug_field *local_54;\n  internal_auxent auxent;\n  internal_syment syment;\n  \n  local_54 = (debug_field *)xmalloc(0x28);\n  local_58 = 10;\n  local_60 = 0;\n  while ((symbols->coff_symno < (int)pauxent && (symbols->symno < symbols->symcount))) {\n    paVar1 = symbols->syms[symbols->symno];\n    iVar2 = bfd_coff_get_syment(abfd,paVar1,&syment);\n    if (iVar2 == 0) {\n      uVar7 = bfd_get_error();\n      uVar7 = bfd_errmsg(uVar7);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      pcVar6 = (char *)dcgettext(0,pcVar6,5);\n      non_fatal(pcVar6,uVar7);\n      return (debug_type)0x0;\n    }\n    iVar2 = symbols->coff_symno;\n    symbols->symno = symbols->symno + 1;\n    symbols->coff_symno = iVar2 + 1 + (uint)syment.n_numaux;\n    pauxent_00 = (internal_auxent *)0x0;\n    if ((syment.n_numaux != '\0') &&\n       (iVar5 = bfd_coff_get_auxent(abfd,paVar1,0,&auxent), pauxent_00 = &auxent, iVar5 == 0)) {\n      uVar7 = bfd_get_error();\n      uVar7 = bfd_errmsg(uVar7);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }\n    if (syment.n_sclass == '\v') {\nLAB_00027699:\n      local_64 = (paVar1->value + paVar1->section->vma) * 8;\n      bitsize = 0;\n    }\n    else {\n      if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00027699;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          local_64 = paVar1->value + paVar1->section->vma;\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          goto LAB_000276b0;\n        }\n        if (syment.n_sclass == 'f') break;\n      }\n      bitsize = 0;\n      local_64 = 0;\n    }\nLAB_000276b0:\n    type = parse_coff_type(abfd,symbols,in_ECX,iVar2,(uint)syment.n_type,pauxent_00,1,dhandle);\n    pdVar4 = debug_make_field(dhandle,paVar1->name,type,local_64,bitsize,DEBUG_VISIBILITY_PUBLIC);\n    if (pdVar4 == (debug_field)0x0) {\n      return (debug_type)0x0;\n    }\n    if (local_58 <= local_60 + 1) {\n      local_58 = local_58 + 10;\n      local_54 = (debug_field *)xrealloc(local_54,local_58 * 4);\n    }\n    local_54[local_60] = pdVar4;\n    local_60 = local_60 + 1;\n  }\n  local_54[local_60] = (debug_field)0x0;\n  pdVar3 = debug_make_struct_type\n                     (dhandle,(uint)(types == (coff_types *)0x8),(uint)*(ushort *)ntype,local_54);\n  return pdVar3;\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  asymbol *paVar1;\n  int iVar2;\n  internal_auxent *pauxent_00;\n  debug_type_conflict pdVar3;\n  debug_type type;\n  debug_field pdVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  coff_types *in_ECX;\n  bfd_vma bitsize;\n  bfd_vma local_64;\n  int local_60;\n  int local_58;\n  debug_field *local_54;\n  internal_auxent auxent;\n  internal_syment syment;\n  \n  local_54 = (debug_field *)xmalloc(0x28);\n  local_58 = 10;\n  local_60 = 0;\n  while ((symbols->coff_symno < (int)pauxent && (symbols->symno < symbols->symcount))) {\n    paVar1 = symbols->syms[symbols->symno];\n    iVar2 = bfd_coff_get_syment(abfd,paVar1,&syment);\n    if (iVar2 == 0) {\n      uVar7 = bfd_get_error();\n      uVar7 = bfd_errmsg(uVar7);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      pcVar6 = (char *)dcgettext(0,pcVar6,5);\n      non_fatal(pcVar6,uVar7);\n      return (debug_type)0x0;\n    }\n    iVar2 = symbols->coff_symno;\n    symbols->symno = symbols->symno + 1;\n    symbols->coff_symno = iVar2 + 1 + (uint)syment.n_numaux;\n    pauxent_00 = (internal_auxent *)0x0;\n    if ((syment.n_numaux != '\0') &&\n       (iVar5 = bfd_coff_get_auxent(abfd,paVar1,0,&auxent), pauxent_00 = &auxent, iVar5 == 0)) {\n      uVar7 = bfd_get_error();\n      uVar7 = bfd_errmsg(uVar7);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }\n    if (syment.n_sclass == '\v') {\nLAB_00027699:\n      local_64 = (paVar1->value + paVar1->section->vma) * 8;\n      bitsize = 0;\n    }\n    else {\n      if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00027699;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          local_64 = paVar1->value + paVar1->section->vma;\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          goto LAB_000276b0;\n        }\n        if (syment.n_sclass == 'f') break;\n      }\n      bitsize = 0;\n      local_64 = 0;\n    }\nLAB_000276b0:\n    type = parse_coff_type(abfd,symbols,in_ECX,iVar2,(uint)syment.n_type,pauxent_00,1,dhandle);\n    pdVar4 = debug_make_field(dhandle,paVar1->name,type,local_64,bitsize,DEBUG_VISIBILITY_PUBLIC);\n    if (pdVar4 == (debug_field)0x0) {\n      return (debug_type)0x0;\n    }\n    if (local_58 <= local_60 + 1) {\n      local_58 = local_58 + 10;\n      local_54 = (debug_field *)xrealloc(local_54,local_58 * 4);\n    }\n    local_54[local_60] = pdVar4;\n    local_60 = local_60 + 1;\n  }\n  local_54[local_60] = (debug_field)0x0;\n  pdVar3 = debug_make_struct_type\n                     (dhandle,(uint)(types == (coff_types *)0x8),(uint)*(ushort *)ntype,local_54);\n  return pdVar3;\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  asymbol *paVar1;\n  int iVar2;\n  internal_auxent *pauxent_00;\n  debug_type_conflict pdVar3;\n  debug_type type;\n  debug_field pdVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  coff_types *in_ECX;\n  bfd_vma bitsize;\n  bfd_vma local_64;\n  int local_60;\n  int local_58;\n  debug_field *local_54;\n  internal_auxent auxent;\n  internal_syment syment;\n  \n  local_54 = (debug_field *)xmalloc(0x28);\n  local_58 = 10;\n  local_60 = 0;\n  while ((symbols->coff_symno < (int)pauxent && (symbols->symno < symbols->symcount))) {\n    paVar1 = symbols->syms[symbols->symno];\n    iVar2 = bfd_coff_get_syment(abfd,paVar1,&syment);\n    if (iVar2 == 0) {\n      uVar7 = bfd_get_error();\n      uVar7 = bfd_errmsg(uVar7);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      pcVar6 = (char *)dcgettext(0,pcVar6,5);\n      non_fatal(pcVar6,uVar7);\n      return (debug_type)0x0;\n    }\n    iVar2 = symbols->coff_symno;\n    symbols->symno = symbols->symno + 1;\n    symbols->coff_symno = iVar2 + 1 + (uint)syment.n_numaux;\n    pauxent_00 = (internal_auxent *)0x0;\n    if ((syment.n_numaux != '\0') &&\n       (iVar5 = bfd_coff_get_auxent(abfd,paVar1,0,&auxent), pauxent_00 = &auxent, iVar5 == 0)) {\n      uVar7 = bfd_get_error();\n      uVar7 = bfd_errmsg(uVar7);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }\n    if (syment.n_sclass == '\v') {\nLAB_00027699:\n      local_64 = (paVar1->value + paVar1->section->vma) * 8;\n      bitsize = 0;\n    }\n    else {\n      if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00027699;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          local_64 = paVar1->value + paVar1->section->vma;\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          goto LAB_000276b0;\n        }\n        if (syment.n_sclass == 'f') break;\n      }\n      bitsize = 0;\n      local_64 = 0;\n    }\nLAB_000276b0:\n    type = parse_coff_type(abfd,symbols,in_ECX,iVar2,(uint)syment.n_type,pauxent_00,1,dhandle);\n    pdVar4 = debug_make_field(dhandle,paVar1->name,type,local_64,bitsize,DEBUG_VISIBILITY_PUBLIC);\n    if (pdVar4 == (debug_field)0x0) {\n      return (debug_type)0x0;\n    }\n    if (local_58 <= local_60 + 1) {\n      local_58 = local_58 + 10;\n      local_54 = (debug_field *)xrealloc(local_54,local_58 * 4);\n    }\n    local_54[local_60] = pdVar4;\n    local_60 = local_60 + 1;\n  }\n  local_54[local_60] = (debug_field)0x0;\n  pdVar3 = debug_make_struct_type\n                     (dhandle,(uint)(types == (coff_types *)0x8),(uint)*(ushort *)ntype,local_54);\n  return pdVar3;\n}" { (declaration "asymbol *paVar1;" type_identifier (pointer_declarator "*paVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "internal_auxent *pauxent_00;" type_identifier (pointer_declarator "*pauxent_00" * identifier) ;) (declaration "debug_type_conflict pdVar3;" type_identifier identifier ;) (declaration "debug_type type;" type_identifier identifier ;) (declaration "debug_field pdVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "coff_types *in_ECX;" type_identifier (pointer_declarator "*in_ECX" * identifier) ;) (declaration "bfd_vma bitsize;" type_identifier identifier ;) (declaration "bfd_vma local_64;" type_identifier identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "debug_field *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "internal_auxent auxent;" type_identifier identifier ;) (declaration "internal_syment syment;" type_identifier identifier ;) (expression_statement "local_54 = (debug_field *)xmalloc(0x28);" (assignment_expression "local_54 = (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_58 = 10;" (assignment_expression "local_58 = 10" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (while_statement "while ((symbols->coff_symno < (int)pauxent && (symbols->symno < symbols->symcount))) {\n    paVar1 = symbols->syms[symbols->symno];\n    iVar2 = bfd_coff_get_syment(abfd,paVar1,&syment);\n    if (iVar2 == 0) {\n      uVar7 = bfd_get_error();\n      uVar7 = bfd_errmsg(uVar7);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      pcVar6 = (char *)dcgettext(0,pcVar6,5);\n      non_fatal(pcVar6,uVar7);\n      return (debug_type)0x0;\n    }\n    iVar2 = symbols->coff_symno;\n    symbols->symno = symbols->symno + 1;\n    symbols->coff_symno = iVar2 + 1 + (uint)syment.n_numaux;\n    pauxent_00 = (internal_auxent *)0x0;\n    if ((syment.n_numaux != '\0') &&\n       (iVar5 = bfd_coff_get_auxent(abfd,paVar1,0,&auxent), pauxent_00 = &auxent, iVar5 == 0)) {\n      uVar7 = bfd_get_error();\n      uVar7 = bfd_errmsg(uVar7);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }\n    if (syment.n_sclass == '\v') {\nLAB_00027699:\n      local_64 = (paVar1->value + paVar1->section->vma) * 8;\n      bitsize = 0;\n    }\n    else {\n      if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00027699;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          local_64 = paVar1->value + paVar1->section->vma;\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          goto LAB_000276b0;\n        }\n        if (syment.n_sclass == 'f') break;\n      }\n      bitsize = 0;\n      local_64 = 0;\n    }\nLAB_000276b0:\n    type = parse_coff_type(abfd,symbols,in_ECX,iVar2,(uint)syment.n_type,pauxent_00,1,dhandle);\n    pdVar4 = debug_make_field(dhandle,paVar1->name,type,local_64,bitsize,DEBUG_VISIBILITY_PUBLIC);\n    if (pdVar4 == (debug_field)0x0) {\n      return (debug_type)0x0;\n    }\n    if (local_58 <= local_60 + 1) {\n      local_58 = local_58 + 10;\n      local_54 = (debug_field *)xrealloc(local_54,local_58 * 4);\n    }\n    local_54[local_60] = pdVar4;\n    local_60 = local_60 + 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    paVar1 = symbols->syms[symbols->symno];\n    iVar2 = bfd_coff_get_syment(abfd,paVar1,&syment);\n    if (iVar2 == 0) {\n      uVar7 = bfd_get_error();\n      uVar7 = bfd_errmsg(uVar7);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      pcVar6 = (char *)dcgettext(0,pcVar6,5);\n      non_fatal(pcVar6,uVar7);\n      return (debug_type)0x0;\n    }\n    iVar2 = symbols->coff_symno;\n    symbols->symno = symbols->symno + 1;\n    symbols->coff_symno = iVar2 + 1 + (uint)syment.n_numaux;\n    pauxent_00 = (internal_auxent *)0x0;\n    if ((syment.n_numaux != '\0') &&\n       (iVar5 = bfd_coff_get_auxent(abfd,paVar1,0,&auxent), pauxent_00 = &auxent, iVar5 == 0)) {\n      uVar7 = bfd_get_error();\n      uVar7 = bfd_errmsg(uVar7);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }\n    if (syment.n_sclass == '\v') {\nLAB_00027699:\n      local_64 = (paVar1->value + paVar1->section->vma) * 8;\n      bitsize = 0;\n    }\n    else {\n      if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00027699;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          local_64 = paVar1->value + paVar1->section->vma;\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          goto LAB_000276b0;\n        }\n        if (syment.n_sclass == 'f') break;\n      }\n      bitsize = 0;\n      local_64 = 0;\n    }\nLAB_000276b0:\n    type = parse_coff_type(abfd,symbols,in_ECX,iVar2,(uint)syment.n_type,pauxent_00,1,dhandle);\n    pdVar4 = debug_make_field(dhandle,paVar1->name,type,local_64,bitsize,DEBUG_VISIBILITY_PUBLIC);\n    if (pdVar4 == (debug_field)0x0) {\n      return (debug_type)0x0;\n    }\n    if (local_58 <= local_60 + 1) {\n      local_58 = local_58 + 10;\n      local_54 = (debug_field *)xrealloc(local_54,local_58 * 4);\n    }\n    local_54[local_60] = pdVar4;\n    local_60 = local_60 + 1;\n  }" { (expression_statement "paVar1 = symbols->syms[symbols->symno];" (assignment_expression "paVar1 = symbols->syms[symbols->symno]" identifier = (subscript_expression "symbols->syms[symbols->symno]" (field_expression "symbols->syms" identifier -> field_identifier) [ (field_expression "symbols->symno" identifier -> field_identifier) ])) ;) (expression_statement "iVar2 = bfd_coff_get_syment(abfd,paVar1,&syment);" (assignment_expression "iVar2 = bfd_coff_get_syment(abfd,paVar1,&syment)" identifier = (call_expression "bfd_coff_get_syment(abfd,paVar1,&syment)" identifier (argument_list "(abfd,paVar1,&syment)" ( identifier , identifier , (pointer_expression "&syment" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n      uVar7 = bfd_get_error();\n      uVar7 = bfd_errmsg(uVar7);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      pcVar6 = (char *)dcgettext(0,pcVar6,5);\n      non_fatal(pcVar6,uVar7);\n      return (debug_type)0x0;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar7 = bfd_get_error();\n      uVar7 = bfd_errmsg(uVar7);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      pcVar6 = (char *)dcgettext(0,pcVar6,5);\n      non_fatal(pcVar6,uVar7);\n      return (debug_type)0x0;\n    }" { (expression_statement "uVar7 = bfd_get_error();" (assignment_expression "uVar7 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar7 = bfd_errmsg(uVar7);" (assignment_expression "uVar7 = bfd_errmsg(uVar7)" identifier = (call_expression "bfd_errmsg(uVar7)" identifier (argument_list "(uVar7)" ( identifier )))) ;) (expression_statement "pcVar6 = "bfd_coff_get_syment failed: %s";" (assignment_expression "pcVar6 = "bfd_coff_get_syment failed: %s"" identifier = (string_literal ""bfd_coff_get_syment failed: %s"" " string_content ")) ;) (labeled_statement "LAB_000277c3:\n      pcVar6 = (char *)dcgettext(0,pcVar6,5);" statement_identifier : (expression_statement "pcVar6 = (char *)dcgettext(0,pcVar6,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,pcVar6,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar6,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar6,5)" identifier (argument_list "(0,pcVar6,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "non_fatal(pcVar6,uVar7);" (call_expression "non_fatal(pcVar6,uVar7)" identifier (argument_list "(pcVar6,uVar7)" ( identifier , identifier ))) ;) (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "iVar2 = symbols->coff_symno;" (assignment_expression "iVar2 = symbols->coff_symno" identifier = (field_expression "symbols->coff_symno" identifier -> field_identifier)) ;) (expression_statement "symbols->symno = symbols->symno + 1;" (assignment_expression "symbols->symno = symbols->symno + 1" (field_expression "symbols->symno" identifier -> field_identifier) = (binary_expression "symbols->symno + 1" (field_expression "symbols->symno" identifier -> field_identifier) + number_literal)) ;) (expression_statement "symbols->coff_symno = iVar2 + 1 + (uint)syment.n_numaux;" (assignment_expression "symbols->coff_symno = iVar2 + 1 + (uint)syment.n_numaux" (field_expression "symbols->coff_symno" identifier -> field_identifier) = (binary_expression "iVar2 + 1 + (uint)syment.n_numaux" (binary_expression "iVar2 + 1" identifier + number_literal) + (cast_expression "(uint)syment.n_numaux" ( (type_descriptor "uint" type_identifier) ) (field_expression "syment.n_numaux" identifier . field_identifier)))) ;) (expression_statement "pauxent_00 = (internal_auxent *)0x0;" (assignment_expression "pauxent_00 = (internal_auxent *)0x0" identifier = (cast_expression "(internal_auxent *)0x0" ( (type_descriptor "internal_auxent *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((syment.n_numaux != '\0') &&\n       (iVar5 = bfd_coff_get_auxent(abfd,paVar1,0,&auxent), pauxent_00 = &auxent, iVar5 == 0)) {\n      uVar7 = bfd_get_error();\n      uVar7 = bfd_errmsg(uVar7);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }" if (parenthesized_expression "((syment.n_numaux != '\0') &&\n       (iVar5 = bfd_coff_get_auxent(abfd,paVar1,0,&auxent), pauxent_00 = &auxent, iVar5 == 0))" ( (binary_expression "(syment.n_numaux != '\0') &&\n       (iVar5 = bfd_coff_get_auxent(abfd,paVar1,0,&auxent), pauxent_00 = &auxent, iVar5 == 0)" (parenthesized_expression "(syment.n_numaux != '\0')" ( (binary_expression "syment.n_numaux != '\0'" (field_expression "syment.n_numaux" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(iVar5 = bfd_coff_get_auxent(abfd,paVar1,0,&auxent), pauxent_00 = &auxent, iVar5 == 0)" ( (comma_expression "iVar5 = bfd_coff_get_auxent(abfd,paVar1,0,&auxent), pauxent_00 = &auxent, iVar5 == 0" (assignment_expression "iVar5 = bfd_coff_get_auxent(abfd,paVar1,0,&auxent)" identifier = (call_expression "bfd_coff_get_auxent(abfd,paVar1,0,&auxent)" identifier (argument_list "(abfd,paVar1,0,&auxent)" ( identifier , identifier , number_literal , (pointer_expression "&auxent" & identifier) )))) , (comma_expression "pauxent_00 = &auxent, iVar5 == 0" (assignment_expression "pauxent_00 = &auxent" identifier = (pointer_expression "&auxent" & identifier)) , (binary_expression "iVar5 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n      uVar7 = bfd_get_error();\n      uVar7 = bfd_errmsg(uVar7);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }" { (expression_statement "uVar7 = bfd_get_error();" (assignment_expression "uVar7 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar7 = bfd_errmsg(uVar7);" (assignment_expression "uVar7 = bfd_errmsg(uVar7)" identifier = (call_expression "bfd_errmsg(uVar7)" identifier (argument_list "(uVar7)" ( identifier )))) ;) (expression_statement "pcVar6 = "bfd_coff_get_auxent failed: %s";" (assignment_expression "pcVar6 = "bfd_coff_get_auxent failed: %s"" identifier = (string_literal ""bfd_coff_get_auxent failed: %s"" " string_content ")) ;) (goto_statement "goto LAB_000277c3;" goto statement_identifier ;) })) (if_statement "if (syment.n_sclass == '\v') {\nLAB_00027699:\n      local_64 = (paVar1->value + paVar1->section->vma) * 8;\n      bitsize = 0;\n    }\n    else {\n      if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00027699;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          local_64 = paVar1->value + paVar1->section->vma;\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          goto LAB_000276b0;\n        }\n        if (syment.n_sclass == 'f') break;\n      }\n      bitsize = 0;\n      local_64 = 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_00027699:\n      local_64 = (paVar1->value + paVar1->section->vma) * 8;\n      bitsize = 0;\n    }" { (labeled_statement "LAB_00027699:\n      local_64 = (paVar1->value + paVar1->section->vma) * 8;" statement_identifier : (expression_statement "local_64 = (paVar1->value + paVar1->section->vma) * 8;" (assignment_expression "local_64 = (paVar1->value + paVar1->section->vma) * 8" identifier = (binary_expression "(paVar1->value + paVar1->section->vma) * 8" (parenthesized_expression "(paVar1->value + paVar1->section->vma)" ( (binary_expression "paVar1->value + paVar1->section->vma" (field_expression "paVar1->value" identifier -> field_identifier) + (field_expression "paVar1->section->vma" (field_expression "paVar1->section" identifier -> field_identifier) -> field_identifier)) )) * number_literal)) ;)) (expression_statement "bitsize = 0;" (assignment_expression "bitsize = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00027699;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          local_64 = paVar1->value + paVar1->section->vma;\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          goto LAB_000276b0;\n        }\n        if (syment.n_sclass == 'f') break;\n      }\n      bitsize = 0;\n      local_64 = 0;\n    }" else (compound_statement "{\n      if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00027699;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          local_64 = paVar1->value + paVar1->section->vma;\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          goto LAB_000276b0;\n        }\n        if (syment.n_sclass == 'f') break;\n      }\n      bitsize = 0;\n      local_64 = 0;\n    }" { (if_statement "if (syment.n_sclass < 0xc) {\n        if (syment.n_sclass == '\b') goto LAB_00027699;\n      }\n      else {\n        if (syment.n_sclass == '\x12') {\n          local_64 = paVar1->value + paVar1->section->vma;\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          goto LAB_000276b0;\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_00027699;\n      }" { (if_statement "if (syment.n_sclass == '\b') goto LAB_00027699;" 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_00027699;" goto statement_identifier ;)) }) (else_clause "else {\n        if (syment.n_sclass == '\x12') {\n          local_64 = paVar1->value + paVar1->section->vma;\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          goto LAB_000276b0;\n        }\n        if (syment.n_sclass == 'f') break;\n      }" else (compound_statement "{\n        if (syment.n_sclass == '\x12') {\n          local_64 = paVar1->value + paVar1->section->vma;\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          goto LAB_000276b0;\n        }\n        if (syment.n_sclass == 'f') break;\n      }" { (if_statement "if (syment.n_sclass == '\x12') {\n          local_64 = paVar1->value + paVar1->section->vma;\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          goto LAB_000276b0;\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          local_64 = paVar1->value + paVar1->section->vma;\n          bitsize = (bfd_vma)auxent.x_scn.x_nlinno;\n          goto LAB_000276b0;\n        }" { (expression_statement "local_64 = paVar1->value + paVar1->section->vma;" (assignment_expression "local_64 = paVar1->value + paVar1->section->vma" identifier = (binary_expression "paVar1->value + paVar1->section->vma" (field_expression "paVar1->value" identifier -> field_identifier) + (field_expression "paVar1->section->vma" (field_expression "paVar1->section" identifier -> field_identifier) -> field_identifier))) ;) (expression_statement "bitsize = (bfd_vma)auxent.x_scn.x_nlinno;" (assignment_expression "bitsize = (bfd_vma)auxent.x_scn.x_nlinno" identifier = (cast_expression "(bfd_vma)auxent.x_scn.x_nlinno" ( (type_descriptor "bfd_vma" type_identifier) ) (field_expression "auxent.x_scn.x_nlinno" (field_expression "auxent.x_scn" identifier . field_identifier) . field_identifier))) ;) (goto_statement "goto LAB_000276b0;" goto statement_identifier ;) })) (if_statement "if (syment.n_sclass == 'f') break;" if (parenthesized_expression "(syment.n_sclass == 'f')" ( (binary_expression "syment.n_sclass == 'f'" (field_expression "syment.n_sclass" identifier . field_identifier) == (char_literal "'f'" ' character ')) )) (break_statement "break;" break ;)) }))) (expression_statement "bitsize = 0;" (assignment_expression "bitsize = 0" identifier = number_literal) ;) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_000276b0:\n    type = parse_coff_type(abfd,symbols,in_ECX,iVar2,(uint)syment.n_type,pauxent_00,1,dhandle);" statement_identifier : (expression_statement "type = parse_coff_type(abfd,symbols,in_ECX,iVar2,(uint)syment.n_type,pauxent_00,1,dhandle);" (assignment_expression "type = parse_coff_type(abfd,symbols,in_ECX,iVar2,(uint)syment.n_type,pauxent_00,1,dhandle)" identifier = (call_expression "parse_coff_type(abfd,symbols,in_ECX,iVar2,(uint)syment.n_type,pauxent_00,1,dhandle)" identifier (argument_list "(abfd,symbols,in_ECX,iVar2,(uint)syment.n_type,pauxent_00,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 "pdVar4 = debug_make_field(dhandle,paVar1->name,type,local_64,bitsize,DEBUG_VISIBILITY_PUBLIC);" (assignment_expression "pdVar4 = debug_make_field(dhandle,paVar1->name,type,local_64,bitsize,DEBUG_VISIBILITY_PUBLIC)" identifier = (call_expression "debug_make_field(dhandle,paVar1->name,type,local_64,bitsize,DEBUG_VISIBILITY_PUBLIC)" identifier (argument_list "(dhandle,paVar1->name,type,local_64,bitsize,DEBUG_VISIBILITY_PUBLIC)" ( identifier , (field_expression "paVar1->name" identifier -> field_identifier) , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (pdVar4 == (debug_field)0x0) {\n      return (debug_type)0x0;\n    }" if (parenthesized_expression "(pdVar4 == (debug_field)0x0)" ( (binary_expression "pdVar4 == (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_58 <= local_60 + 1) {\n      local_58 = local_58 + 10;\n      local_54 = (debug_field *)xrealloc(local_54,local_58 * 4);\n    }" if (parenthesized_expression "(local_58 <= local_60 + 1)" ( (binary_expression "local_58 <= local_60 + 1" identifier <= (binary_expression "local_60 + 1" identifier + number_literal)) )) (compound_statement "{\n      local_58 = local_58 + 10;\n      local_54 = (debug_field *)xrealloc(local_54,local_58 * 4);\n    }" { (expression_statement "local_58 = local_58 + 10;" (assignment_expression "local_58 = local_58 + 10" identifier = (binary_expression "local_58 + 10" identifier + number_literal)) ;) (expression_statement "local_54 = (debug_field *)xrealloc(local_54,local_58 * 4);" (assignment_expression "local_54 = (debug_field *)xrealloc(local_54,local_58 * 4)" identifier = (cast_expression "(debug_field *)xrealloc(local_54,local_58 * 4)" ( (type_descriptor "debug_field *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(local_54,local_58 * 4)" identifier (argument_list "(local_54,local_58 * 4)" ( identifier , (binary_expression "local_58 * 4" identifier * number_literal) ))))) ;) })) (expression_statement "local_54[local_60] = pdVar4;" (assignment_expression "local_54[local_60] = pdVar4" (subscript_expression "local_54[local_60]" identifier [ identifier ]) = identifier) ;) (expression_statement "local_60 = local_60 + 1;" (assignment_expression "local_60 = local_60 + 1" identifier = (binary_expression "local_60 + 1" identifier + number_literal)) ;) })) (expression_statement "local_54[local_60] = (debug_field)0x0;" (assignment_expression "local_54[local_60] = (debug_field)0x0" (subscript_expression "local_54[local_60]" identifier [ identifier ]) = (cast_expression "(debug_field)0x0" ( (type_descriptor "debug_field" type_identifier) ) number_literal)) ;) (expression_statement "pdVar3 = debug_make_struct_type\n                     (dhandle,(uint)(types == (coff_types *)0x8),(uint)*(ushort *)ntype,local_54);" (assignment_expression "pdVar3 = debug_make_struct_type\n                     (dhandle,(uint)(types == (coff_types *)0x8),(uint)*(ushort *)ntype,local_54)" identifier = (call_expression "debug_make_struct_type\n                     (dhandle,(uint)(types == (coff_types *)0x8),(uint)*(ushort *)ntype,local_54)" identifier (argument_list "(dhandle,(uint)(types == (coff_types *)0x8),(uint)*(ushort *)ntype,local_54)" ( 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 "(uint)*(ushort *)ntype" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)ntype" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , identifier )))) ;) (return_statement "return pdVar3;" return identifier ;) })))
(translation_unit "undefined4 __regparm2\nFUN_000275a0(undefined4 param_1,int *param_2,int param_3,undefined2 *param_4,int param_5,\n            undefined4 param_6)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  undefined2 uVar8;\n  int local_64;\n  int local_60;\n  int local_58;\n  int local_54;\n  undefined1 local_48 [6];\n  undefined2 local_42;\n  undefined1 local_34 [18];\n  undefined2 local_22;\n  byte local_20;\n  byte local_1f;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x275ad;\n  local_54 = xmalloc(0x28);\n  local_58 = 10;\n  local_60 = 0;\n  while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {\n    iVar4 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar1 = bfd_coff_get_syment(param_1,iVar4,local_34);\n    if (iVar1 == 0) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      uVar7 = dcgettext(0,pcVar6,5);\n      FUN_0002b6d0(uVar7,uVar3);\n      return 0;\n    }\n    iVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar1 + 1 + (uint)local_1f;\n    puVar2 = (undefined1 *)0x0;\n    if ((local_1f != 0) &&\n       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }\n    if (local_20 == 0xb) {\nLAB_00027699:\n      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;\n      uVar8 = 0;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_64 = 0;\n      uVar8 = 0;\n    }\nLAB_000276b0:\n    uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6);\n    iVar4 = FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0);\n    if (iVar4 == 0) {\n      return 0;\n    }\n    local_60 = local_60 + 1;\n    if (local_58 <= local_60) {\n      local_58 = local_58 + 10;\n      local_54 = xrealloc(local_54,local_58 * 4);\n    }\n    *(int *)(local_54 + -4 + local_60 * 4) = iVar4;\n  }\n  *(undefined4 *)(local_54 + local_60 * 4) = 0;\n  uVar3 = FUN_0001ed50(param_6,param_3 == 8,*param_4,local_54);\n  return uVar3;\n}\n\n" (function_definition "undefined4 __regparm2\nFUN_000275a0(undefined4 param_1,int *param_2,int param_3,undefined2 *param_4,int param_5,\n            undefined4 param_6)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  undefined2 uVar8;\n  int local_64;\n  int local_60;\n  int local_58;\n  int local_54;\n  undefined1 local_48 [6];\n  undefined2 local_42;\n  undefined1 local_34 [18];\n  undefined2 local_22;\n  byte local_20;\n  byte local_1f;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x275ad;\n  local_54 = xmalloc(0x28);\n  local_58 = 10;\n  local_60 = 0;\n  while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {\n    iVar4 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar1 = bfd_coff_get_syment(param_1,iVar4,local_34);\n    if (iVar1 == 0) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      uVar7 = dcgettext(0,pcVar6,5);\n      FUN_0002b6d0(uVar7,uVar3);\n      return 0;\n    }\n    iVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar1 + 1 + (uint)local_1f;\n    puVar2 = (undefined1 *)0x0;\n    if ((local_1f != 0) &&\n       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }\n    if (local_20 == 0xb) {\nLAB_00027699:\n      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;\n      uVar8 = 0;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_64 = 0;\n      uVar8 = 0;\n    }\nLAB_000276b0:\n    uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6);\n    iVar4 = FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0);\n    if (iVar4 == 0) {\n      return 0;\n    }\n    local_60 = local_60 + 1;\n    if (local_58 <= local_60) {\n      local_58 = local_58 + 10;\n      local_54 = xrealloc(local_54,local_58 * 4);\n    }\n    *(int *)(local_54 + -4 + local_60 * 4) = iVar4;\n  }\n  *(undefined4 *)(local_54 + local_60 * 4) = 0;\n  uVar3 = FUN_0001ed50(param_6,param_3 == 8,*param_4,local_54);\n  return uVar3;\n}" type_identifier (ERROR "__regparm2" identifier) (function_declarator "FUN_000275a0(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  int iVar1;\n  undefined1 *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  undefined2 uVar8;\n  int local_64;\n  int local_60;\n  int local_58;\n  int local_54;\n  undefined1 local_48 [6];\n  undefined2 local_42;\n  undefined1 local_34 [18];\n  undefined2 local_22;\n  byte local_20;\n  byte local_1f;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x275ad;\n  local_54 = xmalloc(0x28);\n  local_58 = 10;\n  local_60 = 0;\n  while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {\n    iVar4 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar1 = bfd_coff_get_syment(param_1,iVar4,local_34);\n    if (iVar1 == 0) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      uVar7 = dcgettext(0,pcVar6,5);\n      FUN_0002b6d0(uVar7,uVar3);\n      return 0;\n    }\n    iVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar1 + 1 + (uint)local_1f;\n    puVar2 = (undefined1 *)0x0;\n    if ((local_1f != 0) &&\n       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }\n    if (local_20 == 0xb) {\nLAB_00027699:\n      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;\n      uVar8 = 0;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_64 = 0;\n      uVar8 = 0;\n    }\nLAB_000276b0:\n    uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6);\n    iVar4 = FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0);\n    if (iVar4 == 0) {\n      return 0;\n    }\n    local_60 = local_60 + 1;\n    if (local_58 <= local_60) {\n      local_58 = local_58 + 10;\n      local_54 = xrealloc(local_54,local_58 * 4);\n    }\n    *(int *)(local_54 + -4 + local_60 * 4) = iVar4;\n  }\n  *(undefined4 *)(local_54 + local_60 * 4) = 0;\n  uVar3 = FUN_0001ed50(param_6,param_3 == 8,*param_4,local_54);\n  return uVar3;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined1 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined2 uVar8;" type_identifier identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "undefined1 local_48 [6];" type_identifier (array_declarator "local_48 [6]" identifier [ number_literal ]) ;) (declaration "undefined2 local_42;" type_identifier identifier ;) (declaration "undefined1 local_34 [18];" type_identifier (array_declarator "local_34 [18]" 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 = 0x275ad;" (assignment_expression "uStack_14 = 0x275ad" identifier = number_literal) ;) (expression_statement "local_54 = xmalloc(0x28);" (assignment_expression "local_54 = xmalloc(0x28)" identifier = (call_expression "xmalloc(0x28)" identifier (argument_list "(0x28)" ( number_literal )))) ;) (expression_statement "local_58 = 10;" (assignment_expression "local_58 = 10" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (while_statement "while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {\n    iVar4 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar1 = bfd_coff_get_syment(param_1,iVar4,local_34);\n    if (iVar1 == 0) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      uVar7 = dcgettext(0,pcVar6,5);\n      FUN_0002b6d0(uVar7,uVar3);\n      return 0;\n    }\n    iVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar1 + 1 + (uint)local_1f;\n    puVar2 = (undefined1 *)0x0;\n    if ((local_1f != 0) &&\n       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }\n    if (local_20 == 0xb) {\nLAB_00027699:\n      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;\n      uVar8 = 0;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_64 = 0;\n      uVar8 = 0;\n    }\nLAB_000276b0:\n    uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6);\n    iVar4 = FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0);\n    if (iVar4 == 0) {\n      return 0;\n    }\n    local_60 = local_60 + 1;\n    if (local_58 <= local_60) {\n      local_58 = local_58 + 10;\n      local_54 = xrealloc(local_54,local_58 * 4);\n    }\n    *(int *)(local_54 + -4 + local_60 * 4) = iVar4;\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    iVar4 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar1 = bfd_coff_get_syment(param_1,iVar4,local_34);\n    if (iVar1 == 0) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      uVar7 = dcgettext(0,pcVar6,5);\n      FUN_0002b6d0(uVar7,uVar3);\n      return 0;\n    }\n    iVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar1 + 1 + (uint)local_1f;\n    puVar2 = (undefined1 *)0x0;\n    if ((local_1f != 0) &&\n       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }\n    if (local_20 == 0xb) {\nLAB_00027699:\n      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;\n      uVar8 = 0;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_64 = 0;\n      uVar8 = 0;\n    }\nLAB_000276b0:\n    uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6);\n    iVar4 = FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0);\n    if (iVar4 == 0) {\n      return 0;\n    }\n    local_60 = local_60 + 1;\n    if (local_58 <= local_60) {\n      local_58 = local_58 + 10;\n      local_54 = xrealloc(local_54,local_58 * 4);\n    }\n    *(int *)(local_54 + -4 + local_60 * 4) = iVar4;\n  }" { (expression_statement "iVar4 = *(int *)(*param_2 + param_2[2] * 4);" (assignment_expression "iVar4 = *(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 "iVar1 = bfd_coff_get_syment(param_1,iVar4,local_34);" (assignment_expression "iVar1 = bfd_coff_get_syment(param_1,iVar4,local_34)" identifier = (call_expression "bfd_coff_get_syment(param_1,iVar4,local_34)" identifier (argument_list "(param_1,iVar4,local_34)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      uVar7 = dcgettext(0,pcVar6,5);\n      FUN_0002b6d0(uVar7,uVar3);\n      return 0;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      uVar7 = dcgettext(0,pcVar6,5);\n      FUN_0002b6d0(uVar7,uVar3);\n      return 0;\n    }" { (expression_statement "uVar3 = bfd_get_error();" (assignment_expression "uVar3 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar3 = bfd_errmsg(uVar3);" (assignment_expression "uVar3 = bfd_errmsg(uVar3)" identifier = (call_expression "bfd_errmsg(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "pcVar6 = "bfd_coff_get_syment failed: %s";" (assignment_expression "pcVar6 = "bfd_coff_get_syment failed: %s"" identifier = (string_literal ""bfd_coff_get_syment failed: %s"" " string_content ")) ;) (labeled_statement "LAB_000277c3:\n      uVar7 = dcgettext(0,pcVar6,5);" statement_identifier : (expression_statement "uVar7 = dcgettext(0,pcVar6,5);" (assignment_expression "uVar7 = dcgettext(0,pcVar6,5)" identifier = (call_expression "dcgettext(0,pcVar6,5)" identifier (argument_list "(0,pcVar6,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002b6d0(uVar7,uVar3);" (call_expression "FUN_0002b6d0(uVar7,uVar3)" identifier (argument_list "(uVar7,uVar3)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar1 = param_2[3];" (assignment_expression "iVar1 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "param_2[2] = param_2[2] + 1;" (assignment_expression "param_2[2] = param_2[2] + 1" (subscript_expression "param_2[2]" identifier [ number_literal ]) = (binary_expression "param_2[2] + 1" (subscript_expression "param_2[2]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "param_2[3] = iVar1 + 1 + (uint)local_1f;" (assignment_expression "param_2[3] = iVar1 + 1 + (uint)local_1f" (subscript_expression "param_2[3]" identifier [ number_literal ]) = (binary_expression "iVar1 + 1 + (uint)local_1f" (binary_expression "iVar1 + 1" identifier + number_literal) + (cast_expression "(uint)local_1f" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "puVar2 = (undefined1 *)0x0;" (assignment_expression "puVar2 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((local_1f != 0) &&\n       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }" if (parenthesized_expression "((local_1f != 0) &&\n       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0))" ( (binary_expression "(local_1f != 0) &&\n       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)" (parenthesized_expression "(local_1f != 0)" ( (binary_expression "local_1f != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)" ( (comma_expression "iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0" (assignment_expression "iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48)" identifier = (call_expression "bfd_coff_get_auxent(param_1,iVar4,0,local_48)" identifier (argument_list "(param_1,iVar4,0,local_48)" ( identifier , identifier , number_literal , identifier )))) , (comma_expression "puVar2 = local_48, iVar5 == 0" (assignment_expression "puVar2 = local_48" identifier = identifier) , (binary_expression "iVar5 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }" { (expression_statement "uVar3 = bfd_get_error();" (assignment_expression "uVar3 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar3 = bfd_errmsg(uVar3);" (assignment_expression "uVar3 = bfd_errmsg(uVar3)" identifier = (call_expression "bfd_errmsg(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "pcVar6 = "bfd_coff_get_auxent failed: %s";" (assignment_expression "pcVar6 = "bfd_coff_get_auxent failed: %s"" identifier = (string_literal ""bfd_coff_get_auxent failed: %s"" " string_content ")) ;) (goto_statement "goto LAB_000277c3;" goto statement_identifier ;) })) (if_statement "if (local_20 == 0xb) {\nLAB_00027699:\n      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;\n      uVar8 = 0;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_64 = 0;\n      uVar8 = 0;\n    }" if (parenthesized_expression "(local_20 == 0xb)" ( (binary_expression "local_20 == 0xb" identifier == number_literal) )) (compound_statement "{\nLAB_00027699:\n      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;\n      uVar8 = 0;\n    }" { (labeled_statement "LAB_00027699:\n      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;" statement_identifier : (expression_statement "local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;" (assignment_expression "local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8" identifier = (binary_expression "(*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8" (parenthesized_expression "(*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c))" ( (binary_expression "*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) + (pointer_expression "*(int *)(*(int *)(iVar4 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar4 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(iVar4 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar4 + 0x10)" * (cast_expression "(int *)(iVar4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) + number_literal) ))))) )) * number_literal)) ;)) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_64 = 0;\n      uVar8 = 0;\n    }" else (compound_statement "{\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_64 = 0;\n      uVar8 = 0;\n    }" { (if_statement "if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\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_00027699;\n      }" { (if_statement "if (local_20 == 8) goto LAB_00027699;" if (parenthesized_expression "(local_20 == 8)" ( (binary_expression "local_20 == 8" identifier == number_literal) )) (goto_statement "goto LAB_00027699;" goto statement_identifier ;)) }) (else_clause "else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }" else (compound_statement "{\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }" { (if_statement "if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }" if (parenthesized_expression "(local_20 == 0x12)" ( (binary_expression "local_20 == 0x12" identifier == number_literal) )) (compound_statement "{\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }" { (expression_statement "local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);" (assignment_expression "local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)" identifier = (binary_expression "*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) + (pointer_expression "*(int *)(*(int *)(iVar4 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar4 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(iVar4 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar4 + 0x10)" * (cast_expression "(int *)(iVar4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "uVar8 = local_42;" (assignment_expression "uVar8 = local_42" identifier = identifier) ;) (goto_statement "goto LAB_000276b0;" 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_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_000276b0:\n    uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6);" statement_identifier : (expression_statement "uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6);" (assignment_expression "uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6)" identifier = (call_expression "FUN_00026ea0(iVar1,local_22,puVar2,1,param_6)" identifier (argument_list "(iVar1,local_22,puVar2,1,param_6)" ( identifier , identifier , identifier , number_literal , identifier )))) ;)) (expression_statement "iVar4 = FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0);" (assignment_expression "iVar4 = FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0)" identifier = (call_expression "FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0)" identifier (argument_list "(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0)" ( identifier , (pointer_expression "*(undefined4 *)(iVar4 + 4)" * (cast_expression "(undefined4 *)(iVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) , identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (iVar4 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_60 = local_60 + 1;" (assignment_expression "local_60 = local_60 + 1" identifier = (binary_expression "local_60 + 1" identifier + number_literal)) ;) (if_statement "if (local_58 <= local_60) {\n      local_58 = local_58 + 10;\n      local_54 = xrealloc(local_54,local_58 * 4);\n    }" if (parenthesized_expression "(local_58 <= local_60)" ( (binary_expression "local_58 <= local_60" identifier <= identifier) )) (compound_statement "{\n      local_58 = local_58 + 10;\n      local_54 = xrealloc(local_54,local_58 * 4);\n    }" { (expression_statement "local_58 = local_58 + 10;" (assignment_expression "local_58 = local_58 + 10" identifier = (binary_expression "local_58 + 10" identifier + number_literal)) ;) (expression_statement "local_54 = xrealloc(local_54,local_58 * 4);" (assignment_expression "local_54 = xrealloc(local_54,local_58 * 4)" identifier = (call_expression "xrealloc(local_54,local_58 * 4)" identifier (argument_list "(local_54,local_58 * 4)" ( identifier , (binary_expression "local_58 * 4" identifier * number_literal) )))) ;) })) (expression_statement "*(int *)(local_54 + -4 + local_60 * 4) = iVar4;" (assignment_expression "*(int *)(local_54 + -4 + local_60 * 4) = iVar4" (pointer_expression "*(int *)(local_54 + -4 + local_60 * 4)" * (cast_expression "(int *)(local_54 + -4 + local_60 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + -4 + local_60 * 4)" ( (binary_expression "local_54 + -4 + local_60 * 4" (binary_expression "local_54 + -4" identifier + number_literal) + (binary_expression "local_60 * 4" identifier * number_literal)) )))) = identifier) ;) })) (expression_statement "*(undefined4 *)(local_54 + local_60 * 4) = 0;" (assignment_expression "*(undefined4 *)(local_54 + local_60 * 4) = 0" (pointer_expression "*(undefined4 *)(local_54 + local_60 * 4)" * (cast_expression "(undefined4 *)(local_54 + local_60 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + local_60 * 4)" ( (binary_expression "local_54 + local_60 * 4" identifier + (binary_expression "local_60 * 4" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "uVar3 = FUN_0001ed50(param_6,param_3 == 8,*param_4,local_54);" (assignment_expression "uVar3 = FUN_0001ed50(param_6,param_3 == 8,*param_4,local_54)" identifier = (call_expression "FUN_0001ed50(param_6,param_3 == 8,*param_4,local_54)" identifier (argument_list "(param_6,param_3 == 8,*param_4,local_54)" ( identifier , (binary_expression "param_3 == 8" identifier == number_literal) , (pointer_expression "*param_4" * identifier) , identifier )))) ;) (return_statement "return uVar3;" 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 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 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 (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression IDENT + LIT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_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) ))))) )) * LIT)) ;)) (expression_statement (assignment_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 = (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) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , 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 , 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) , IDENT )))) ;) (return_statement return IDENT ;) })))
(function_definition "undefined4 __regparm2\nFUN_000275a0(undefined4 param_1,int *param_2,int param_3,undefined2 *param_4,int param_5,\n            undefined4 param_6)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  undefined2 uVar8;\n  int local_64;\n  int local_60;\n  int local_58;\n  int local_54;\n  undefined1 local_48 [6];\n  undefined2 local_42;\n  undefined1 local_34 [18];\n  undefined2 local_22;\n  byte local_20;\n  byte local_1f;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x275ad;\n  local_54 = xmalloc(0x28);\n  local_58 = 10;\n  local_60 = 0;\n  while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {\n    iVar4 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar1 = bfd_coff_get_syment(param_1,iVar4,local_34);\n    if (iVar1 == 0) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      uVar7 = dcgettext(0,pcVar6,5);\n      FUN_0002b6d0(uVar7,uVar3);\n      return 0;\n    }\n    iVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar1 + 1 + (uint)local_1f;\n    puVar2 = (undefined1 *)0x0;\n    if ((local_1f != 0) &&\n       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }\n    if (local_20 == 0xb) {\nLAB_00027699:\n      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;\n      uVar8 = 0;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_64 = 0;\n      uVar8 = 0;\n    }\nLAB_000276b0:\n    uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6);\n    iVar4 = FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0);\n    if (iVar4 == 0) {\n      return 0;\n    }\n    local_60 = local_60 + 1;\n    if (local_58 <= local_60) {\n      local_58 = local_58 + 10;\n      local_54 = xrealloc(local_54,local_58 * 4);\n    }\n    *(int *)(local_54 + -4 + local_60 * 4) = iVar4;\n  }\n  *(undefined4 *)(local_54 + local_60 * 4) = 0;\n  uVar3 = FUN_0001ed50(param_6,param_3 == 8,*param_4,local_54);\n  return uVar3;\n}" (type_identifier "undefined4") (ERROR "__regparm2" (identifier "__regparm2")) (function_declarator "FUN_000275a0(undefined4 param_1,int *param_2,int param_3,undefined2 *param_4,int param_5,\n            undefined4 param_6)" (identifier "FUN_000275a0") (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  int iVar1;\n  undefined1 *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  undefined2 uVar8;\n  int local_64;\n  int local_60;\n  int local_58;\n  int local_54;\n  undefined1 local_48 [6];\n  undefined2 local_42;\n  undefined1 local_34 [18];\n  undefined2 local_22;\n  byte local_20;\n  byte local_1f;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x275ad;\n  local_54 = xmalloc(0x28);\n  local_58 = 10;\n  local_60 = 0;\n  while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {\n    iVar4 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar1 = bfd_coff_get_syment(param_1,iVar4,local_34);\n    if (iVar1 == 0) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      uVar7 = dcgettext(0,pcVar6,5);\n      FUN_0002b6d0(uVar7,uVar3);\n      return 0;\n    }\n    iVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar1 + 1 + (uint)local_1f;\n    puVar2 = (undefined1 *)0x0;\n    if ((local_1f != 0) &&\n       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }\n    if (local_20 == 0xb) {\nLAB_00027699:\n      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;\n      uVar8 = 0;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_64 = 0;\n      uVar8 = 0;\n    }\nLAB_000276b0:\n    uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6);\n    iVar4 = FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0);\n    if (iVar4 == 0) {\n      return 0;\n    }\n    local_60 = local_60 + 1;\n    if (local_58 <= local_60) {\n      local_58 = local_58 + 10;\n      local_54 = xrealloc(local_54,local_58 * 4);\n    }\n    *(int *)(local_54 + -4 + local_60 * 4) = iVar4;\n  }\n  *(undefined4 *)(local_54 + local_60 * 4) = 0;\n  uVar3 = FUN_0001ed50(param_6,param_3 == 8,*param_4,local_54);\n  return uVar3;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined1 *puVar2;" (type_identifier "undefined1") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "undefined2 uVar8;" (type_identifier "undefined2") (identifier "uVar8") (; ";")) (declaration "int local_64;" (primitive_type "int") (identifier "local_64") (; ";")) (declaration "int local_60;" (primitive_type "int") (identifier "local_60") (; ";")) (declaration "int local_58;" (primitive_type "int") (identifier "local_58") (; ";")) (declaration "int local_54;" (primitive_type "int") (identifier "local_54") (; ";")) (declaration "undefined1 local_48 [6];" (type_identifier "undefined1") (array_declarator "local_48 [6]" (identifier "local_48") ([ "[") (number_literal "6") (] "]")) (; ";")) (declaration "undefined2 local_42;" (type_identifier "undefined2") (identifier "local_42") (; ";")) (declaration "undefined1 local_34 [18];" (type_identifier "undefined1") (array_declarator "local_34 [18]" (identifier "local_34") ([ "[") (number_literal "18") (] "]")) (; ";")) (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 = 0x275ad;" (assignment_expression "uStack_14 = 0x275ad" (identifier "uStack_14") (= "=") (number_literal "0x275ad")) (; ";")) (expression_statement "local_54 = xmalloc(0x28);" (assignment_expression "local_54 = xmalloc(0x28)" (identifier "local_54") (= "=") (call_expression "xmalloc(0x28)" (identifier "xmalloc") (argument_list "(0x28)" (( "(") (number_literal "0x28") () ")")))) (; ";")) (expression_statement "local_58 = 10;" (assignment_expression "local_58 = 10" (identifier "local_58") (= "=") (number_literal "10")) (; ";")) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (while_statement "while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {\n    iVar4 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar1 = bfd_coff_get_syment(param_1,iVar4,local_34);\n    if (iVar1 == 0) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      uVar7 = dcgettext(0,pcVar6,5);\n      FUN_0002b6d0(uVar7,uVar3);\n      return 0;\n    }\n    iVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar1 + 1 + (uint)local_1f;\n    puVar2 = (undefined1 *)0x0;\n    if ((local_1f != 0) &&\n       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }\n    if (local_20 == 0xb) {\nLAB_00027699:\n      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;\n      uVar8 = 0;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_64 = 0;\n      uVar8 = 0;\n    }\nLAB_000276b0:\n    uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6);\n    iVar4 = FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0);\n    if (iVar4 == 0) {\n      return 0;\n    }\n    local_60 = local_60 + 1;\n    if (local_58 <= local_60) {\n      local_58 = local_58 + 10;\n      local_54 = xrealloc(local_54,local_58 * 4);\n    }\n    *(int *)(local_54 + -4 + local_60 * 4) = iVar4;\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    iVar4 = *(int *)(*param_2 + param_2[2] * 4);\n    iVar1 = bfd_coff_get_syment(param_1,iVar4,local_34);\n    if (iVar1 == 0) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      uVar7 = dcgettext(0,pcVar6,5);\n      FUN_0002b6d0(uVar7,uVar3);\n      return 0;\n    }\n    iVar1 = param_2[3];\n    param_2[2] = param_2[2] + 1;\n    param_2[3] = iVar1 + 1 + (uint)local_1f;\n    puVar2 = (undefined1 *)0x0;\n    if ((local_1f != 0) &&\n       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }\n    if (local_20 == 0xb) {\nLAB_00027699:\n      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;\n      uVar8 = 0;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_64 = 0;\n      uVar8 = 0;\n    }\nLAB_000276b0:\n    uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6);\n    iVar4 = FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0);\n    if (iVar4 == 0) {\n      return 0;\n    }\n    local_60 = local_60 + 1;\n    if (local_58 <= local_60) {\n      local_58 = local_58 + 10;\n      local_54 = xrealloc(local_54,local_58 * 4);\n    }\n    *(int *)(local_54 + -4 + local_60 * 4) = iVar4;\n  }" ({ "{") (expression_statement "iVar4 = *(int *)(*param_2 + param_2[2] * 4);" (assignment_expression "iVar4 = *(int *)(*param_2 + param_2[2] * 4)" (identifier "iVar4") (= "=") (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 "iVar1 = bfd_coff_get_syment(param_1,iVar4,local_34);" (assignment_expression "iVar1 = bfd_coff_get_syment(param_1,iVar4,local_34)" (identifier "iVar1") (= "=") (call_expression "bfd_coff_get_syment(param_1,iVar4,local_34)" (identifier "bfd_coff_get_syment") (argument_list "(param_1,iVar4,local_34)" (( "(") (identifier "param_1") (, ",") (identifier "iVar4") (, ",") (identifier "local_34") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      uVar7 = dcgettext(0,pcVar6,5);\n      FUN_0002b6d0(uVar7,uVar3);\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_syment failed: %s";\nLAB_000277c3:\n      uVar7 = dcgettext(0,pcVar6,5);\n      FUN_0002b6d0(uVar7,uVar3);\n      return 0;\n    }" ({ "{") (expression_statement "uVar3 = bfd_get_error();" (assignment_expression "uVar3 = bfd_get_error()" (identifier "uVar3") (= "=") (call_expression "bfd_get_error()" (identifier "bfd_get_error") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar3 = bfd_errmsg(uVar3);" (assignment_expression "uVar3 = bfd_errmsg(uVar3)" (identifier "uVar3") (= "=") (call_expression "bfd_errmsg(uVar3)" (identifier "bfd_errmsg") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (expression_statement "pcVar6 = "bfd_coff_get_syment failed: %s";" (assignment_expression "pcVar6 = "bfd_coff_get_syment failed: %s"" (identifier "pcVar6") (= "=") (string_literal ""bfd_coff_get_syment failed: %s"" (" """) (string_content "bfd_coff_get_syment failed: %s") (" """))) (; ";")) (labeled_statement "LAB_000277c3:\n      uVar7 = dcgettext(0,pcVar6,5);" (statement_identifier "LAB_000277c3") (: ":") (expression_statement "uVar7 = dcgettext(0,pcVar6,5);" (assignment_expression "uVar7 = dcgettext(0,pcVar6,5)" (identifier "uVar7") (= "=") (call_expression "dcgettext(0,pcVar6,5)" (identifier "dcgettext") (argument_list "(0,pcVar6,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar6") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_0002b6d0(uVar7,uVar3);" (call_expression "FUN_0002b6d0(uVar7,uVar3)" (identifier "FUN_0002b6d0") (argument_list "(uVar7,uVar3)" (( "(") (identifier "uVar7") (, ",") (identifier "uVar3") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar1 = param_2[3];" (assignment_expression "iVar1 = param_2[3]" (identifier "iVar1") (= "=") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "param_2[2] = param_2[2] + 1;" (assignment_expression "param_2[2] = param_2[2] + 1" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "param_2[2] + 1" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_2[3] = iVar1 + 1 + (uint)local_1f;" (assignment_expression "param_2[3] = iVar1 + 1 + (uint)local_1f" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "iVar1 + 1 + (uint)local_1f" (binary_expression "iVar1 + 1" (identifier "iVar1") (+ "+") (number_literal "1")) (+ "+") (cast_expression "(uint)local_1f" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_1f")))) (; ";")) (expression_statement "puVar2 = (undefined1 *)0x0;" (assignment_expression "puVar2 = (undefined1 *)0x0" (identifier "puVar2") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((local_1f != 0) &&\n       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)) {\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }" (if "if") (parenthesized_expression "((local_1f != 0) &&\n       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0))" (( "(") (binary_expression "(local_1f != 0) &&\n       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)" (parenthesized_expression "(local_1f != 0)" (( "(") (binary_expression "local_1f != 0" (identifier "local_1f") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)" (( "(") (comma_expression "iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0" (assignment_expression "iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48)" (identifier "iVar5") (= "=") (call_expression "bfd_coff_get_auxent(param_1,iVar4,0,local_48)" (identifier "bfd_coff_get_auxent") (argument_list "(param_1,iVar4,0,local_48)" (( "(") (identifier "param_1") (, ",") (identifier "iVar4") (, ",") (number_literal "0") (, ",") (identifier "local_48") () ")")))) (, ",") (comma_expression "puVar2 = local_48, iVar5 == 0" (assignment_expression "puVar2 = local_48" (identifier "puVar2") (= "=") (identifier "local_48")) (, ",") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n      uVar3 = bfd_get_error();\n      uVar3 = bfd_errmsg(uVar3);\n      pcVar6 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_000277c3;\n    }" ({ "{") (expression_statement "uVar3 = bfd_get_error();" (assignment_expression "uVar3 = bfd_get_error()" (identifier "uVar3") (= "=") (call_expression "bfd_get_error()" (identifier "bfd_get_error") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar3 = bfd_errmsg(uVar3);" (assignment_expression "uVar3 = bfd_errmsg(uVar3)" (identifier "uVar3") (= "=") (call_expression "bfd_errmsg(uVar3)" (identifier "bfd_errmsg") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (expression_statement "pcVar6 = "bfd_coff_get_auxent failed: %s";" (assignment_expression "pcVar6 = "bfd_coff_get_auxent failed: %s"" (identifier "pcVar6") (= "=") (string_literal ""bfd_coff_get_auxent failed: %s"" (" """) (string_content "bfd_coff_get_auxent failed: %s") (" """))) (; ";")) (goto_statement "goto LAB_000277c3;" (goto "goto") (statement_identifier "LAB_000277c3") (; ";")) (} "}"))) (if_statement "if (local_20 == 0xb) {\nLAB_00027699:\n      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;\n      uVar8 = 0;\n    }\n    else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_64 = 0;\n      uVar8 = 0;\n    }" (if "if") (parenthesized_expression "(local_20 == 0xb)" (( "(") (binary_expression "local_20 == 0xb" (identifier "local_20") (== "==") (number_literal "0xb")) () ")")) (compound_statement "{\nLAB_00027699:\n      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;\n      uVar8 = 0;\n    }" ({ "{") (labeled_statement "LAB_00027699:\n      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;" (statement_identifier "LAB_00027699") (: ":") (expression_statement "local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;" (assignment_expression "local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8" (identifier "local_64") (= "=") (binary_expression "(*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8" (parenthesized_expression "(*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c))" (( "(") (binary_expression "*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)" (pointer_expression "*(int *)(iVar4 + 8)" (* "*") (cast_expression "(int *)(iVar4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (+ "+") (pointer_expression "*(int *)(*(int *)(iVar4 + 0x10) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(iVar4 + 0x10) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar4 + 0x10) + 0x1c)" (( "(") (binary_expression "*(int *)(iVar4 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar4 + 0x10)" (* "*") (cast_expression "(int *)(iVar4 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (* "*") (number_literal "8"))) (; ";"))) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_64 = 0;\n      uVar8 = 0;\n    }" (else "else") (compound_statement "{\n      if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }\n      local_64 = 0;\n      uVar8 = 0;\n    }" ({ "{") (if_statement "if (local_20 < 0xc) {\n        if (local_20 == 8) goto LAB_00027699;\n      }\n      else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\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_00027699;\n      }" ({ "{") (if_statement "if (local_20 == 8) goto LAB_00027699;" (if "if") (parenthesized_expression "(local_20 == 8)" (( "(") (binary_expression "local_20 == 8" (identifier "local_20") (== "==") (number_literal "8")) () ")")) (goto_statement "goto LAB_00027699;" (goto "goto") (statement_identifier "LAB_00027699") (; ";"))) (} "}")) (else_clause "else {\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }" (else "else") (compound_statement "{\n        if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }\n        if (local_20 == 0x66) break;\n      }" ({ "{") (if_statement "if (local_20 == 0x12) {\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }" (if "if") (parenthesized_expression "(local_20 == 0x12)" (( "(") (binary_expression "local_20 == 0x12" (identifier "local_20") (== "==") (number_literal "0x12")) () ")")) (compound_statement "{\n          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);\n          uVar8 = local_42;\n          goto LAB_000276b0;\n        }" ({ "{") (expression_statement "local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);" (assignment_expression "local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)" (identifier "local_64") (= "=") (binary_expression "*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)" (pointer_expression "*(int *)(iVar4 + 8)" (* "*") (cast_expression "(int *)(iVar4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (+ "+") (pointer_expression "*(int *)(*(int *)(iVar4 + 0x10) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(iVar4 + 0x10) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar4 + 0x10) + 0x1c)" (( "(") (binary_expression "*(int *)(iVar4 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar4 + 0x10)" (* "*") (cast_expression "(int *)(iVar4 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (expression_statement "uVar8 = local_42;" (assignment_expression "uVar8 = local_42" (identifier "uVar8") (= "=") (identifier "local_42")) (; ";")) (goto_statement "goto LAB_000276b0;" (goto "goto") (statement_identifier "LAB_000276b0") (; ";")) (} "}"))) (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_64 = 0;" (assignment_expression "local_64 = 0" (identifier "local_64") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_000276b0:\n    uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6);" (statement_identifier "LAB_000276b0") (: ":") (expression_statement "uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6);" (assignment_expression "uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6)" (identifier "uVar3") (= "=") (call_expression "FUN_00026ea0(iVar1,local_22,puVar2,1,param_6)" (identifier "FUN_00026ea0") (argument_list "(iVar1,local_22,puVar2,1,param_6)" (( "(") (identifier "iVar1") (, ",") (identifier "local_22") (, ",") (identifier "puVar2") (, ",") (number_literal "1") (, ",") (identifier "param_6") () ")")))) (; ";"))) (expression_statement "iVar4 = FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0);" (assignment_expression "iVar4 = FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0)" (identifier "iVar4") (= "=") (call_expression "FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0)" (identifier "FUN_0001f220") (argument_list "(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0)" (( "(") (identifier "param_6") (, ",") (pointer_expression "*(undefined4 *)(iVar4 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 4)" (( "(") (binary_expression "iVar4 + 4" (identifier "iVar4") (+ "+") (number_literal "4")) () ")")))) (, ",") (identifier "uVar3") (, ",") (identifier "local_64") (, ",") (identifier "uVar8") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "local_60 = local_60 + 1;" (assignment_expression "local_60 = local_60 + 1" (identifier "local_60") (= "=") (binary_expression "local_60 + 1" (identifier "local_60") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_58 <= local_60) {\n      local_58 = local_58 + 10;\n      local_54 = xrealloc(local_54,local_58 * 4);\n    }" (if "if") (parenthesized_expression "(local_58 <= local_60)" (( "(") (binary_expression "local_58 <= local_60" (identifier "local_58") (<= "<=") (identifier "local_60")) () ")")) (compound_statement "{\n      local_58 = local_58 + 10;\n      local_54 = xrealloc(local_54,local_58 * 4);\n    }" ({ "{") (expression_statement "local_58 = local_58 + 10;" (assignment_expression "local_58 = local_58 + 10" (identifier "local_58") (= "=") (binary_expression "local_58 + 10" (identifier "local_58") (+ "+") (number_literal "10"))) (; ";")) (expression_statement "local_54 = xrealloc(local_54,local_58 * 4);" (assignment_expression "local_54 = xrealloc(local_54,local_58 * 4)" (identifier "local_54") (= "=") (call_expression "xrealloc(local_54,local_58 * 4)" (identifier "xrealloc") (argument_list "(local_54,local_58 * 4)" (( "(") (identifier "local_54") (, ",") (binary_expression "local_58 * 4" (identifier "local_58") (* "*") (number_literal "4")) () ")")))) (; ";")) (} "}"))) (expression_statement "*(int *)(local_54 + -4 + local_60 * 4) = iVar4;" (assignment_expression "*(int *)(local_54 + -4 + local_60 * 4) = iVar4" (pointer_expression "*(int *)(local_54 + -4 + local_60 * 4)" (* "*") (cast_expression "(int *)(local_54 + -4 + local_60 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + -4 + local_60 * 4)" (( "(") (binary_expression "local_54 + -4 + local_60 * 4" (binary_expression "local_54 + -4" (identifier "local_54") (+ "+") (number_literal "-4")) (+ "+") (binary_expression "local_60 * 4" (identifier "local_60") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "iVar4")) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(local_54 + local_60 * 4) = 0;" (assignment_expression "*(undefined4 *)(local_54 + local_60 * 4) = 0" (pointer_expression "*(undefined4 *)(local_54 + local_60 * 4)" (* "*") (cast_expression "(undefined4 *)(local_54 + local_60 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + local_60 * 4)" (( "(") (binary_expression "local_54 + local_60 * 4" (identifier "local_54") (+ "+") (binary_expression "local_60 * 4" (identifier "local_60") (* "*") (number_literal "4"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar3 = FUN_0001ed50(param_6,param_3 == 8,*param_4,local_54);" (assignment_expression "uVar3 = FUN_0001ed50(param_6,param_3 == 8,*param_4,local_54)" (identifier "uVar3") (= "=") (call_expression "FUN_0001ed50(param_6,param_3 == 8,*param_4,local_54)" (identifier "FUN_0001ed50") (argument_list "(param_6,param_3 == 8,*param_4,local_54)" (( "(") (identifier "param_6") (, ",") (binary_expression "param_3 == 8" (identifier "param_3") (== "==") (number_literal "8")) (, ",") (pointer_expression "*param_4" (* "*") (identifier "param_4")) (, ",") (identifier "local_54") () ")")))) (; ";")) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}")))

/* 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_17,int ntype,type_5 *pauxent,
          void *dhandle,type_5 *pauxent_1)

{
  type_6 *paVar1;
  int var_3;
  type_5 *pauxent_00;
  type_7 pdVar3;
  type_1 type;
  type_8 var_12;
  int var_9;
  char *pcVar6;
  type_9 uVar7;
  type_4 *in_ECX;
  type_10 bitsize;
  type_10 local_64;
  int var_14;
  int var_13;
  type_8 *local_54;
  type_5 auxent;
  type_11 syment;
  
  local_54 = (type_8 *)var_1(0x28);
  var_13 = 10;
  var_14 = 0;
  while ((symbols->coff_symno < (int)pauxent && (symbols->symno < symbols->symcount))) {
    paVar1 = symbols->syms[symbols->symno];
    var_3 = var_2(abfd,paVar1,&syment);
    if (var_3 == 0) {
      uVar7 = var_4();
      uVar7 = var_5(uVar7);
      pcVar6 = "bfd_coff_get_syment failed: %s";
LAB_000277c3:
      pcVar6 = (char *)var_6(0,pcVar6,5);
      var_7(pcVar6,uVar7);
      return (type_1)0x0;
    }
    var_3 = symbols->coff_symno;
    symbols->symno = symbols->symno + 1;
    symbols->coff_symno = var_3 + 1 + (type_12)syment.n_numaux;
    pauxent_00 = (type_5 *)0x0;
    if ((syment.n_numaux != '\0') &&
       (var_9 = var_8(abfd,paVar1,0,&auxent), pauxent_00 = &auxent, var_9 == 0)) {
      uVar7 = var_4();
      uVar7 = var_5(uVar7);
      pcVar6 = "bfd_coff_get_auxent failed: %s";
      goto LAB_000277c3;
    }
    if (syment.n_sclass == '\v') {
LAB_00027699:
      local_64 = (paVar1->value + paVar1->section->vma) * 8;
      bitsize = 0;
    }
    else {
      if (syment.n_sclass < 0xc) {
        if (syment.n_sclass == '\b') goto LAB_00027699;
      }
      else {
        if (syment.n_sclass == '\x12') {
          local_64 = paVar1->value + paVar1->section->vma;
          bitsize = (type_10)auxent.x_scn.x_nlinno;
          goto LAB_000276b0;
        }
        if (syment.n_sclass == 'f') break;
      }
      bitsize = 0;
      local_64 = 0;
    }
LAB_000276b0:
    type = var_10(abfd,symbols,in_ECX,var_3,(type_12)syment.n_type,pauxent_00,1,dhandle);
    var_12 = var_11(dhandle,paVar1->name,type,local_64,bitsize,DEBUG_VISIBILITY_PUBLIC);
    if (var_12 == (type_8)0x0) {
      return (type_1)0x0;
    }
    if (var_13 <= var_14 + 1) {
      var_13 = var_13 + 10;
      local_54 = (type_8 *)var_15(local_54,var_13 * 4);
    }
    local_54[var_14] = var_12;
    var_14 = var_14 + 1;
  }
  local_54[var_14] = (type_8)0x0;
  pdVar3 = var_16
                     (dhandle,(type_12)(var_17 == (type_4 *)0x8),(type_12)*(type_13 *)ntype,local_54);
  return pdVar3;
}


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

{
  int iVar1;
  undefined1 *puVar2;
  undefined4 uVar3;
  int iVar4;
  int iVar5;
  char *pcVar6;
  undefined4 uVar7;
  undefined2 uVar8;
  int local_64;
  int local_60;
  int local_58;
  int local_54;
  undefined1 local_48 [6];
  undefined2 local_42;
  undefined1 local_34 [18];
  undefined2 local_22;
  byte local_20;
  byte local_1f;
  undefined4 uStack_14;
  
  uStack_14 = 0x275ad;
  local_54 = xmalloc(0x28);
  local_58 = 10;
  local_60 = 0;
  while ((param_2[3] < param_5 && (param_2[2] < param_2[1]))) {
    iVar4 = *(int *)(*param_2 + param_2[2] * 4);
    iVar1 = bfd_coff_get_syment(param_1,iVar4,local_34);
    if (iVar1 == 0) {
      uVar3 = bfd_get_error();
      uVar3 = bfd_errmsg(uVar3);
      pcVar6 = "bfd_coff_get_syment failed: %s";
LAB_000277c3:
      uVar7 = dcgettext(0,pcVar6,5);
      FUN_0002b6d0(uVar7,uVar3);
      return 0;
    }
    iVar1 = param_2[3];
    param_2[2] = param_2[2] + 1;
    param_2[3] = iVar1 + 1 + (uint)local_1f;
    puVar2 = (undefined1 *)0x0;
    if ((local_1f != 0) &&
       (iVar5 = bfd_coff_get_auxent(param_1,iVar4,0,local_48), puVar2 = local_48, iVar5 == 0)) {
      uVar3 = bfd_get_error();
      uVar3 = bfd_errmsg(uVar3);
      pcVar6 = "bfd_coff_get_auxent failed: %s";
      goto LAB_000277c3;
    }
    if (local_20 == 0xb) {
LAB_00027699:
      local_64 = (*(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c)) * 8;
      uVar8 = 0;
    }
    else {
      if (local_20 < 0xc) {
        if (local_20 == 8) goto LAB_00027699;
      }
      else {
        if (local_20 == 0x12) {
          local_64 = *(int *)(iVar4 + 8) + *(int *)(*(int *)(iVar4 + 0x10) + 0x1c);
          uVar8 = local_42;
          goto LAB_000276b0;
        }
        if (local_20 == 0x66) break;
      }
      local_64 = 0;
      uVar8 = 0;
    }
LAB_000276b0:
    uVar3 = FUN_00026ea0(iVar1,local_22,puVar2,1,param_6);
    iVar4 = FUN_0001f220(param_6,*(undefined4 *)(iVar4 + 4),uVar3,local_64,uVar8,0);
    if (iVar4 == 0) {
      return 0;
    }
    local_60 = local_60 + 1;
    if (local_58 <= local_60) {
      local_58 = local_58 + 10;
      local_54 = xrealloc(local_54,local_58 * 4);
    }
    *(int *)(local_54 + -4 + local_60 * 4) = iVar4;
  }
  *(undefined4 *)(local_54 + local_60 * 4) = 0;
  uVar3 = FUN_0001ed50(param_6,param_3 == 8,*param_4,local_54);
  return uVar3;
}

