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

debug_type __regparm3
parse_coff_type(bfd *abfd,coff_symbols *symbols,coff_types *types,long coff_symno,int ntype,
               internal_auxent *pauxent,bfd_boolean useaux,void *dhandle)

{
  ushort uVar1;
  coff_tdata *pcVar2;
  int iVar3;
  asymbol *paVar4;
  debug_type pdVar5;
  debug_type_conflict pdVar6;
  debug_type_conflict *ppdVar7;
  char *pcVar8;
  undefined4 uVar9;
  byte bVar10;
  int iVar11;
  debug_type_conflict *arg_types;
  ushort *puVar12;
  ushort *puVar13;
  debug_type_conflict type;
  uint uVar14;
  uint uVar15;
  bfd_signed_vma upper;
  coff_types *types_00;
  internal_auxent *pauxent_00;
  internal_auxent *in_stack_ffffff94;
  int local_5c;
  bfd_signed_vma *local_50;
  char **local_4c;
  internal_syment syment;
  
  pcVar2 = (abfd->tdata).coff_obj_data;
  if ((~pcVar2->local_n_btmask & ntype) != 0) {
    uVar14 = ntype >> ((byte)pcVar2->local_n_tshift & 0x1f);
    uVar14 = (ntype ^ uVar14) & pcVar2->local_n_btmask ^ uVar14;
    uVar15 = pcVar2->local_n_tmask & ntype;
    bVar10 = (byte)pcVar2->local_n_btshft;
    if (uVar15 == 1 << (bVar10 & 0x1f)) {
      pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,useaux,dhandle);
      pdVar6 = debug_make_pointer_type(dhandle,pdVar5);
      return pdVar6;
    }
    if (uVar15 == 2 << (bVar10 & 0x1f)) {
      pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,useaux,dhandle);
      pdVar6 = debug_make_function_type(pdVar5,type,arg_types,(bfd_boolean)dhandle);
      return pdVar6;
    }
    if (uVar15 != 3 << (bVar10 & 0x1f)) {
      pcVar8 = (char *)dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);
      non_fatal(pcVar8,ntype);
      return (debug_type)0x0;
    }
    upper = -1;
    if (pauxent != (internal_auxent *)0x0) {
      uVar1 = (pauxent->x_tv).x_tvran[1];
      puVar13 = (pauxent->x_tv).x_tvran + 1;
      if (uVar1 != 0) {
        iVar11 = 0;
        puVar12 = puVar13;
        do {
          iVar11 = iVar11 + 1;
          puVar13 = puVar12 + 1;
          *puVar12 = puVar12[1];
          if (puVar12[1] == 0) break;
          puVar12 = puVar13;
        } while (iVar11 != 3);
      }
      upper = uVar1 - 1;
      *puVar13 = 0;
    }
    pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,0,dhandle);
    pdVar6 = types->basic[4];
    if (pdVar6 == (debug_type_conflict)0x0) {
      pdVar6 = debug_make_int_type(dhandle,4,0);
      pdVar6 = debug_name_type(dhandle,"int",pdVar6);
      types->basic[4] = pdVar6;
    }
    pdVar6 = debug_make_array_type(dhandle,pdVar5,pdVar6,0,upper,0);
    return pdVar6;
  }
  if ((pauxent != (internal_auxent *)0x0) && (0 < (pauxent->x_scn).x_scnlen)) {
    ppdVar7 = coff_get_slot(types,(pauxent->x_scn).x_scnlen);
    if (*ppdVar7 != (debug_type)0x0) {
      return *ppdVar7;
    }
    pdVar6 = debug_make_indirect_type(dhandle,ppdVar7,(char *)0x0);
    return pdVar6;
  }
  if (useaux == 0) {
    pauxent = (internal_auxent *)0x0;
  }
  if (0x10 < (uint)ntype) {
    pdVar6 = debug_make_void_type();
    return pdVar6;
  }
  if (types->basic[ntype] != (debug_type)0x0) {
    return types->basic[ntype];
  }
  switch(ntype) {
  default:
    pdVar6 = debug_make_void_type();
    pcVar8 = "void";
    break;
  case 2:
    pdVar6 = debug_make_int_type(dhandle,1,0);
    pcVar8 = "char";
    break;
  case 3:
    pdVar6 = debug_make_int_type(dhandle,2,0);
    pcVar8 = "short";
    break;
  case 4:
    pdVar6 = debug_make_int_type(dhandle,4,0);
    pcVar8 = "int";
    break;
  case 5:
    pdVar6 = debug_make_int_type(dhandle,4,0);
    pcVar8 = "long";
    break;
  case 6:
    pdVar6 = debug_make_float_type(4);
    pcVar8 = "float";
    break;
  case 7:
    pdVar6 = debug_make_float_type(8);
    pcVar8 = "double";
    break;
  case 8:
    if (pauxent == (internal_auxent *)0x0) {
      pdVar5 = debug_make_struct_type(dhandle,1,0,(debug_field *)0x0);
      goto LAB_00027300;
    }
    pauxent_00 = (internal_auxent *)(pauxent->x_csect).x_stab;
    types_00 = (coff_types *)0x8;
    goto LAB_00027330;
  case 9:
    if (pauxent == (internal_auxent *)0x0) {
      pdVar5 = debug_make_struct_type(dhandle,0,0,(debug_field *)0x0);
      goto LAB_00027300;
    }
    pauxent_00 = (internal_auxent *)(pauxent->x_csect).x_stab;
    types_00 = (coff_types *)0x9;
LAB_00027330:
    pdVar5 = parse_coff_struct_type
                       (abfd,symbols,types_00,(int)pauxent + 6,pauxent_00,dhandle,in_stack_ffffff94)
    ;
LAB_00027300:
    ppdVar7 = coff_get_slot(types,coff_symno);
    *ppdVar7 = pdVar5;
    return pdVar5;
  case 10:
    if (pauxent == (internal_auxent *)0x0) {
      pdVar5 = debug_make_enum_type(dhandle,(char **)0x0,(bfd_signed_vma *)0x0);
    }
    else {
      iVar3 = (pauxent->x_csect).x_stab;
      local_4c = (char **)xmalloc(0x28);
      local_50 = (bfd_signed_vma *)xmalloc(0x28);
      iVar11 = symbols->coff_symno;
      local_5c = 0;
      do {
        while( true ) {
          if ((iVar3 <= iVar11) || (symbols->symcount <= symbols->symno)) goto LAB_000272d6;
          paVar4 = symbols->syms[symbols->symno];
          iVar11 = bfd_coff_get_syment(abfd,paVar4,&syment);
          if (iVar11 == 0) {
            uVar9 = bfd_get_error();
            uVar9 = bfd_errmsg(uVar9);
            pcVar8 = (char *)dcgettext(0,"bfd_coff_get_syment failed: %s",5);
            non_fatal(pcVar8,uVar9);
            pdVar5 = (debug_type)0x0;
            goto LAB_00027300;
          }
          symbols->symno = symbols->symno + 1;
          iVar11 = syment.n_numaux + 1 + symbols->coff_symno;
          symbols->coff_symno = iVar11;
          if (syment.n_sclass != '\x10') break;
          if (ntype <= local_5c + 1) {
            ntype = ntype + 10;
            local_4c = (char **)xrealloc(local_4c,ntype * 4);
            local_50 = (bfd_signed_vma *)xrealloc(local_50,ntype * 4);
          }
          local_4c[local_5c] = paVar4->name;
          local_50[local_5c] = paVar4->value + paVar4->section->vma;
          iVar11 = symbols->coff_symno;
          local_5c = local_5c + 1;
        }
      } while (syment.n_sclass != 'f');
LAB_000272d6:
      local_4c[local_5c] = (char *)0x0;
      pdVar5 = debug_make_enum_type(dhandle,local_4c,local_50);
    }
    goto LAB_00027300;
  case 0xb:
    pdVar6 = debug_make_void_type();
    goto LAB_00027186;
  case 0xc:
    pdVar6 = debug_make_int_type(dhandle,1,1);
    pcVar8 = "unsigned char";
    break;
  case 0xd:
    pdVar6 = debug_make_int_type(dhandle,2,1);
    pcVar8 = "unsigned short";
    break;
  case 0xe:
    pdVar6 = debug_make_int_type(dhandle,4,1);
    pcVar8 = "unsigned int";
    break;
  case 0xf:
    pdVar6 = debug_make_int_type(dhandle,4,1);
    pcVar8 = "unsigned long";
    break;
  case 0x10:
    pdVar6 = debug_make_float_type(0xc);
    pcVar8 = "long double";
  }
  pdVar6 = debug_name_type(dhandle,pcVar8,pdVar6);
LAB_00027186:
  types->basic[ntype] = pdVar6;
  return pdVar6;
}



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

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

{
  ushort uVar1;
  int iVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  int iVar5;
  byte bVar6;
  int *piVar7;
  int *piVar8;
  char *pcVar9;
  uint uVar10;
  uint uVar11;
  int iVar12;
  int local_5c;
  int iStack_50;
  int iStack_4c;
  undefined1 auStack_34 [20];
  char cStack_20;
  byte bStack_1f;
  undefined4 uStack_14;
  
  uStack_14 = 0x26eab;
  iVar12 = *(int *)(param_1 + 0x9c);
  if ((~*(uint *)(iVar12 + 0x20) & param_5) != 0) {
    uVar10 = (int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f);
    uVar10 = (param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10;
    uVar11 = *(uint *)(iVar12 + 0x28) & param_5;
    bVar6 = (byte)*(undefined4 *)(iVar12 + 0x24);
    if (uVar11 == 1 << (bVar6 & 0x1f)) {
      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);
      iVar12 = FUN_0001ee90(param_8,uVar3);
      return iVar12;
    }
    if (uVar11 == 2 << (bVar6 & 0x1f)) {
      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);
      iVar12 = FUN_0001eee0(param_8,uVar3,0,0);
      return iVar12;
    }
    if (uVar11 != 3 << (bVar6 & 0x1f)) {
      uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);
      FUN_0002b6d0(uVar3,param_5);
      return 0;
    }
    iVar12 = -1;
    if (param_6 != (int *)0x0) {
      uVar1 = *(ushort *)(param_6 + 2);
      piVar8 = param_6 + 2;
      if (uVar1 != 0) {
        iVar12 = 0;
        piVar7 = piVar8;
        do {
          iVar12 = iVar12 + 1;
          piVar8 = (int *)((int)piVar7 + 2);
          *(short *)piVar7 = *(short *)((int)piVar7 + 2);
          if (*(short *)((int)piVar7 + 2) == 0) break;
          piVar7 = piVar8;
        } while (iVar12 != 3);
      }
      iVar12 = uVar1 - 1;
      *(short *)piVar8 = 0;
    }
    uVar3 = FUN_00026ea0(param_4,uVar10,param_6,0,param_8);
    iVar5 = *(int *)(param_3 + 0x14);
    if (iVar5 == 0) {
      uVar4 = FUN_0001ed00(param_8,4,0);
      iVar5 = FUN_0001f390(param_8,"int",uVar4);
      *(int *)(param_3 + 0x14) = iVar5;
    }
    iVar12 = FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0);
    return iVar12;
  }
  if ((param_6 != (int *)0x0) && (0 < *param_6)) {
    piVar8 = (int *)FUN_00026be0();
    if (*piVar8 != 0) {
      return *piVar8;
    }
    iVar12 = FUN_0001eca0(param_8,piVar8,0);
    return iVar12;
  }
  if (param_7 == 0) {
    param_6 = (int *)0x0;
  }
  if (0x10 < param_5) {
    iVar12 = FUN_0001ecf0(param_8);
    return iVar12;
  }
  iVar12 = *(int *)(param_3 + 4 + param_5 * 4);
  if (iVar12 != 0) {
    return iVar12;
  }
  switch(param_5) {
  default:
    uVar3 = FUN_0001ecf0(param_8);
    pcVar9 = "void";
    break;
  case 2:
    uVar3 = FUN_0001ed00(param_8,1,0);
    pcVar9 = "char";
    break;
  case 3:
    uVar3 = FUN_0001ed00(param_8,2,0);
    pcVar9 = "short";
    break;
  case 4:
    uVar3 = FUN_0001ed00(param_8,4,0);
    pcVar9 = "int";
    break;
  case 5:
    uVar3 = FUN_0001ed00(param_8,4,0);
    pcVar9 = "long";
    break;
  case 6:
    uVar3 = FUN_0001ed20(param_8,4);
    pcVar9 = "float";
    break;
  case 7:
    uVar3 = FUN_0001ed20(param_8,8);
    pcVar9 = "double";
    break;
  case 8:
    if (param_6 == (int *)0x0) {
      iVar12 = FUN_0001ed50(param_8,1,0,0);
      goto code_r0x00027300;
    }
    iVar12 = param_6[3];
    uVar3 = 8;
    goto code_r0x00027330;
  case 9:
    if (param_6 == (int *)0x0) {
      iVar12 = FUN_0001ed50(param_8,0,0,0);
      goto code_r0x00027300;
    }
    iVar12 = param_6[3];
    uVar3 = 9;
code_r0x00027330:
    iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);
code_r0x00027300:
    piVar8 = (int *)FUN_00026be0();
    *piVar8 = iVar12;
    return iVar12;
  case 10:
    if (param_6 == (int *)0x0) {
      iVar12 = FUN_0001ee40(param_8,0,0);
    }
    else {
      iVar5 = param_6[3];
      iStack_4c = xmalloc(0x28);
      iStack_50 = xmalloc(0x28);
      iVar12 = param_2[3];
      local_5c = 0;
      do {
        while( true ) {
          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;
          iVar2 = *(int *)(*param_2 + param_2[2] * 4);
          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);
          if (iVar12 == 0) {
            uVar3 = bfd_get_error();
            uVar3 = bfd_errmsg(uVar3);
            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);
            FUN_0002b6d0(uVar4,uVar3);
            iVar12 = 0;
            goto code_r0x00027300;
          }
          param_2[2] = param_2[2] + 1;
          iVar12 = bStack_1f + 1 + param_2[3];
          param_2[3] = iVar12;
          if (cStack_20 != '\x10') break;
          if ((int)param_5 <= local_5c + 1) {
            param_5 = param_5 + 10;
            iStack_4c = xrealloc(iStack_4c,param_5 * 4);
            iStack_50 = xrealloc(iStack_50,param_5 * 4);
          }
          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);
          *(int *)(iStack_50 + local_5c * 4) =
               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);
          iVar12 = param_2[3];
          local_5c = local_5c + 1;
        }
      } while (cStack_20 != 'f');
code_r0x000272d6:
      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;
      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);
    }
    goto code_r0x00027300;
  case 0xb:
    iVar12 = FUN_0001ecf0(param_8);
    goto code_r0x00027186;
  case 0xc:
    uVar3 = FUN_0001ed00(param_8,1,1);
    pcVar9 = "unsigned char";
    break;
  case 0xd:
    uVar3 = FUN_0001ed00(param_8,2,1);
    pcVar9 = "unsigned short";
    break;
  case 0xe:
    uVar3 = FUN_0001ed00(param_8,4,1);
    pcVar9 = "unsigned int";
    break;
  case 0xf:
    uVar3 = FUN_0001ed00(param_8,4,1);
    pcVar9 = "unsigned long";
    break;
  case 0x10:
    uVar3 = FUN_0001ed20(param_8,0xc);
    pcVar9 = "long double";
  }
  iVar12 = FUN_0001f390(param_8,pcVar9,uVar3);
code_r0x00027186:
  *(int *)(param_3 + 4 + param_5 * 4) = iVar12;
  return iVar12;
}


PUSH EBP
PUSH EDI
PUSH ESI
MOV ESI,EAX
PUSH EBX
CALL 0x000165d0
ADD EBX,0x18155
SUB ESP,0x5c
MOV dword ptr [ESP + 0x10],EDX
MOV EDX,dword ptr [ESI + 0x9c]
MOV dword ptr [ESP + 0x8],ECX
MOV EDI,dword ptr [ESP + 0x74]
MOV ESI,dword ptr [EDX + 0x20]
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x78]
MOV ECX,ESI
NOT ECX
TEST ECX,EDI
JZ 0x00026ff0
MOV ECX,dword ptr [EDX + 0x2c]
MOV EBP,EDI
SAR EBP,CL
MOV ECX,EBP
MOV EBP,EDI
XOR EBP,ECX
AND EBP,ESI
MOV ESI,dword ptr [EDX + 0x28]
XOR EBP,ECX
MOV ECX,dword ptr [EDX + 0x24]
MOV EDX,0x1
AND ESI,EDI
SHL EDX,CL
CMP ESI,EDX
JZ 0x00027050
MOV EDX,0x2
SHL EDX,CL
CMP ESI,EDX
JZ 0x00027100
MOV EDX,0x3
SHL EDX,CL
CMP ESI,EDX
JNZ 0x000270d0
MOV ESI,0xffffffff
TEST EAX,EAX
JZ 0x00026f5a
MOVZX ESI,word ptr [EAX + 0x8]
LEA EDX,[EAX + 0x8]
TEST SI,SI
JZ 0x00026f52
XOR ECX,ECX
MOVZX EDI,word ptr [EDX + 0x2]
ADD ECX,0x1
ADD EDX,0x2
MOV word ptr [EDX + -0x2],DI
TEST DI,DI
JZ 0x00026f52
CMP ECX,0x3
JNZ 0x00026f3a
XOR EDI,EDI
SUB ESI,0x1
MOV word ptr [EDX],DI
SUB ESP,0xc
PUSH dword ptr [ESP + 0x8c]
PUSH 0x0
PUSH EAX
PUSH EBP
PUSH dword ptr [ESP + 0x8c]
MOV EBP,dword ptr [ESP + 0x28]
MOV EDX,dword ptr [ESP + 0x30]
MOV EAX,dword ptr [ESP + 0x2c]
MOV ECX,EBP
CALL 0x00026ea0
ADD ESP,0x20
MOV EDI,EAX
MOV EAX,dword ptr [EBP + 0x14]
TEST EAX,EAX
JZ 0x00026fb8
SUB ESP,0x8
PUSH 0x0
PUSH ESI
PUSH 0x0
PUSH EAX
PUSH EDI
PUSH dword ptr [ESP + 0x9c]
CALL 0x0001efd0
ADD ESP,0x20
MOV ESI,EAX
ADD ESP,0x5c
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
PUSH 0x0
PUSH 0x4
PUSH dword ptr [ESP + 0x8c]
CALL 0x0001ed00
ADD ESP,0xc
PUSH EAX
LEA EAX,[EBX + 0xffff3f92]
PUSH EAX
PUSH dword ptr [ESP + 0x8c]
CALL 0x0001f390
ADD ESP,0x10
MOV dword ptr [EBP + 0x14],EAX
JMP 0x00026f8e
TEST EAX,EAX
JZ 0x00026ffe
MOV EDX,dword ptr [EAX]
TEST EDX,EDX
JG 0x00027098
MOV EDX,dword ptr [ESP + 0x7c]
TEST EDX,EDX
MOV EDX,0x0
CMOVZ EAX,EDX
CMP EDI,0x10
JA 0x00027030
MOV ECX,dword ptr [ESP + 0x8]
MOV ESI,dword ptr [ECX + EDI*0x4 + 0x4]
TEST ESI,ESI
JNZ 0x00026fa9
MOV EDX,dword ptr [EBX + EDI*0x4 + 0xffff4d64]
ADD EDX,EBX
JMP EDX
SUB ESP,0xc
PUSH dword ptr [ESP + 0x8c]
CALL 0x0001ecf0
ADD ESP,0x10
ADD ESP,0x5c
MOV ESI,EAX
POP EBX
MOV EAX,ESI
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
PUSH dword ptr [ESP + 0x8c]
PUSH dword ptr [ESP + 0x8c]
PUSH EAX
PUSH EBP
PUSH dword ptr [ESP + 0x8c]
MOV ECX,dword ptr [ESP + 0x28]
MOV EDX,dword ptr [ESP + 0x30]
MOV EAX,dword ptr [ESP + 0x2c]
CALL 0x00026ea0
ADD ESP,0x18
PUSH EAX
PUSH dword ptr [ESP + 0x8c]
CALL 0x0001ee90
ADD ESP,0x10
MOV ESI,EAX
JMP 0x00026fa9
MOV EAX,dword ptr [ESP + 0x8]
CALL 0x00026be0
MOV ESI,dword ptr [EAX]
TEST ESI,ESI
JNZ 0x00026fa9
SUB ESP,0x4
PUSH 0x0
PUSH EAX
PUSH dword ptr [ESP + 0x8c]
CALL 0x0001eca0
ADD ESP,0x10
MOV ESI,EAX
JMP 0x00026fa9
SUB ESP,0x4
LEA EAX,[EBX + 0xffff4cac]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
POP ECX
POP ESI
PUSH EDI
PUSH EAX
XOR ESI,ESI
CALL 0x0002b6d0
ADD ESP,0x10
MOV EAX,ESI
ADD ESP,0x5c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
PUSH dword ptr [ESP + 0x8c]
PUSH dword ptr [ESP + 0x8c]
PUSH EAX
PUSH EBP
PUSH dword ptr [ESP + 0x8c]
MOV ECX,dword ptr [ESP + 0x28]
MOV EDX,dword ptr [ESP + 0x30]
MOV EAX,dword ptr [ESP + 0x2c]
CALL 0x00026ea0
ADD ESP,0x20
PUSH 0x0
PUSH 0x0
PUSH EAX
PUSH dword ptr [ESP + 0x8c]
CALL 0x0001eee0
ADD ESP,0x10
MOV ESI,EAX
JMP 0x00026fa9
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3\nFUN_00026ea0(int param_1,int *param_2,int param_3,undefined4 param_4,uint param_5,int *param_6,\n            int param_7,undefined4 param_8)\n\n{\n  ushort uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  byte bVar6;\n  int *piVar7;\n  int *piVar8;\n  char *pcVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  int local_5c;\n  int iStack_50;\n  int iStack_4c;\n  undefined1 auStack_34 [20];\n  char cStack_20;\n  byte bStack_1f;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x26eab;\n  iVar12 = *(int *)(param_1 + 0x9c);\n  if ((~*(uint *)(iVar12 + 0x20) & param_5) != 0) {\n    uVar10 = (int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f);\n    uVar10 = (param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10;\n    uVar11 = *(uint *)(iVar12 + 0x28) & param_5;\n    bVar6 = (byte)*(undefined4 *)(iVar12 + 0x24);\n    if (uVar11 == 1 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001ee90(param_8,uVar3);\n      return iVar12;\n    }\n    if (uVar11 == 2 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001eee0(param_8,uVar3,0,0);\n      return iVar12;\n    }\n    if (uVar11 != 3 << (bVar6 & 0x1f)) {\n      uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      FUN_0002b6d0(uVar3,param_5);\n      return 0;\n    }\n    iVar12 = -1;\n    if (param_6 != (int *)0x0) {\n      uVar1 = *(ushort *)(param_6 + 2);\n      piVar8 = param_6 + 2;\n      if (uVar1 != 0) {\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }\n      iVar12 = uVar1 - 1;\n      *(short *)piVar8 = 0;\n    }\n    uVar3 = FUN_00026ea0(param_4,uVar10,param_6,0,param_8);\n    iVar5 = *(int *)(param_3 + 0x14);\n    if (iVar5 == 0) {\n      uVar4 = FUN_0001ed00(param_8,4,0);\n      iVar5 = FUN_0001f390(param_8,"int",uVar4);\n      *(int *)(param_3 + 0x14) = iVar5;\n    }\n    iVar12 = FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0);\n    return iVar12;\n  }\n  if ((param_6 != (int *)0x0) && (0 < *param_6)) {\n    piVar8 = (int *)FUN_00026be0();\n    if (*piVar8 != 0) {\n      return *piVar8;\n    }\n    iVar12 = FUN_0001eca0(param_8,piVar8,0);\n    return iVar12;\n  }\n  if (param_7 == 0) {\n    param_6 = (int *)0x0;\n  }\n  if (0x10 < param_5) {\n    iVar12 = FUN_0001ecf0(param_8);\n    return iVar12;\n  }\n  iVar12 = *(int *)(param_3 + 4 + param_5 * 4);\n  if (iVar12 != 0) {\n    return iVar12;\n  }\n  switch(param_5) {\n  default:\n    uVar3 = FUN_0001ecf0(param_8);\n    pcVar9 = "void";\n    break;\n  case 2:\n    uVar3 = FUN_0001ed00(param_8,1,0);\n    pcVar9 = "char";\n    break;\n  case 3:\n    uVar3 = FUN_0001ed00(param_8,2,0);\n    pcVar9 = "short";\n    break;\n  case 4:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "int";\n    break;\n  case 5:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "long";\n    break;\n  case 6:\n    uVar3 = FUN_0001ed20(param_8,4);\n    pcVar9 = "float";\n    break;\n  case 7:\n    uVar3 = FUN_0001ed20(param_8,8);\n    pcVar9 = "double";\n    break;\n  case 8:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,1,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 8;\n    goto code_r0x00027330;\n  case 9:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,0,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 9;\ncode_r0x00027330:\n    iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);\ncode_r0x00027300:\n    piVar8 = (int *)FUN_00026be0();\n    *piVar8 = iVar12;\n    return iVar12;\n  case 10:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ee40(param_8,0,0);\n    }\n    else {\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }\n    goto code_r0x00027300;\n  case 0xb:\n    iVar12 = FUN_0001ecf0(param_8);\n    goto code_r0x00027186;\n  case 0xc:\n    uVar3 = FUN_0001ed00(param_8,1,1);\n    pcVar9 = "unsigned char";\n    break;\n  case 0xd:\n    uVar3 = FUN_0001ed00(param_8,2,1);\n    pcVar9 = "unsigned short";\n    break;\n  case 0xe:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned int";\n    break;\n  case 0xf:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned long";\n    break;\n  case 0x10:\n    uVar3 = FUN_0001ed20(param_8,0xc);\n    pcVar9 = "long double";\n  }\n  iVar12 = FUN_0001f390(param_8,pcVar9,uVar3);\ncode_r0x00027186:\n  *(int *)(param_3 + 4 + param_5 * 4) = iVar12;\n  return iVar12;\n}\n\n" comment (function_definition "int __regparm3\nFUN_00026ea0(int param_1,int *param_2,int param_3,undefined4 param_4,uint param_5,int *param_6,\n            int param_7,undefined4 param_8)\n\n{\n  ushort uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  byte bVar6;\n  int *piVar7;\n  int *piVar8;\n  char *pcVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  int local_5c;\n  int iStack_50;\n  int iStack_4c;\n  undefined1 auStack_34 [20];\n  char cStack_20;\n  byte bStack_1f;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x26eab;\n  iVar12 = *(int *)(param_1 + 0x9c);\n  if ((~*(uint *)(iVar12 + 0x20) & param_5) != 0) {\n    uVar10 = (int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f);\n    uVar10 = (param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10;\n    uVar11 = *(uint *)(iVar12 + 0x28) & param_5;\n    bVar6 = (byte)*(undefined4 *)(iVar12 + 0x24);\n    if (uVar11 == 1 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001ee90(param_8,uVar3);\n      return iVar12;\n    }\n    if (uVar11 == 2 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001eee0(param_8,uVar3,0,0);\n      return iVar12;\n    }\n    if (uVar11 != 3 << (bVar6 & 0x1f)) {\n      uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      FUN_0002b6d0(uVar3,param_5);\n      return 0;\n    }\n    iVar12 = -1;\n    if (param_6 != (int *)0x0) {\n      uVar1 = *(ushort *)(param_6 + 2);\n      piVar8 = param_6 + 2;\n      if (uVar1 != 0) {\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }\n      iVar12 = uVar1 - 1;\n      *(short *)piVar8 = 0;\n    }\n    uVar3 = FUN_00026ea0(param_4,uVar10,param_6,0,param_8);\n    iVar5 = *(int *)(param_3 + 0x14);\n    if (iVar5 == 0) {\n      uVar4 = FUN_0001ed00(param_8,4,0);\n      iVar5 = FUN_0001f390(param_8,"int",uVar4);\n      *(int *)(param_3 + 0x14) = iVar5;\n    }\n    iVar12 = FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0);\n    return iVar12;\n  }\n  if ((param_6 != (int *)0x0) && (0 < *param_6)) {\n    piVar8 = (int *)FUN_00026be0();\n    if (*piVar8 != 0) {\n      return *piVar8;\n    }\n    iVar12 = FUN_0001eca0(param_8,piVar8,0);\n    return iVar12;\n  }\n  if (param_7 == 0) {\n    param_6 = (int *)0x0;\n  }\n  if (0x10 < param_5) {\n    iVar12 = FUN_0001ecf0(param_8);\n    return iVar12;\n  }\n  iVar12 = *(int *)(param_3 + 4 + param_5 * 4);\n  if (iVar12 != 0) {\n    return iVar12;\n  }\n  switch(param_5) {\n  default:\n    uVar3 = FUN_0001ecf0(param_8);\n    pcVar9 = "void";\n    break;\n  case 2:\n    uVar3 = FUN_0001ed00(param_8,1,0);\n    pcVar9 = "char";\n    break;\n  case 3:\n    uVar3 = FUN_0001ed00(param_8,2,0);\n    pcVar9 = "short";\n    break;\n  case 4:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "int";\n    break;\n  case 5:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "long";\n    break;\n  case 6:\n    uVar3 = FUN_0001ed20(param_8,4);\n    pcVar9 = "float";\n    break;\n  case 7:\n    uVar3 = FUN_0001ed20(param_8,8);\n    pcVar9 = "double";\n    break;\n  case 8:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,1,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 8;\n    goto code_r0x00027330;\n  case 9:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,0,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 9;\ncode_r0x00027330:\n    iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);\ncode_r0x00027300:\n    piVar8 = (int *)FUN_00026be0();\n    *piVar8 = iVar12;\n    return iVar12;\n  case 10:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ee40(param_8,0,0);\n    }\n    else {\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }\n    goto code_r0x00027300;\n  case 0xb:\n    iVar12 = FUN_0001ecf0(param_8);\n    goto code_r0x00027186;\n  case 0xc:\n    uVar3 = FUN_0001ed00(param_8,1,1);\n    pcVar9 = "unsigned char";\n    break;\n  case 0xd:\n    uVar3 = FUN_0001ed00(param_8,2,1);\n    pcVar9 = "unsigned short";\n    break;\n  case 0xe:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned int";\n    break;\n  case 0xf:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned long";\n    break;\n  case 0x10:\n    uVar3 = FUN_0001ed20(param_8,0xc);\n    pcVar9 = "long double";\n  }\n  iVar12 = FUN_0001f390(param_8,pcVar9,uVar3);\ncode_r0x00027186:\n  *(int *)(param_3 + 4 + param_5 * 4) = iVar12;\n  return iVar12;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00026ea0(int param_1,int *param_2,int param_3,undefined4 param_4,uint param_5,int *param_6,\n            int param_7,undefined4 param_8)" identifier (parameter_list "(int param_1,int *param_2,int param_3,undefined4 param_4,uint param_5,int *param_6,\n            int param_7,undefined4 param_8)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "int *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) ))) (compound_statement "{\n  ushort uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  byte bVar6;\n  int *piVar7;\n  int *piVar8;\n  char *pcVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  int local_5c;\n  int iStack_50;\n  int iStack_4c;\n  undefined1 auStack_34 [20];\n  char cStack_20;\n  byte bStack_1f;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x26eab;\n  iVar12 = *(int *)(param_1 + 0x9c);\n  if ((~*(uint *)(iVar12 + 0x20) & param_5) != 0) {\n    uVar10 = (int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f);\n    uVar10 = (param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10;\n    uVar11 = *(uint *)(iVar12 + 0x28) & param_5;\n    bVar6 = (byte)*(undefined4 *)(iVar12 + 0x24);\n    if (uVar11 == 1 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001ee90(param_8,uVar3);\n      return iVar12;\n    }\n    if (uVar11 == 2 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001eee0(param_8,uVar3,0,0);\n      return iVar12;\n    }\n    if (uVar11 != 3 << (bVar6 & 0x1f)) {\n      uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      FUN_0002b6d0(uVar3,param_5);\n      return 0;\n    }\n    iVar12 = -1;\n    if (param_6 != (int *)0x0) {\n      uVar1 = *(ushort *)(param_6 + 2);\n      piVar8 = param_6 + 2;\n      if (uVar1 != 0) {\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }\n      iVar12 = uVar1 - 1;\n      *(short *)piVar8 = 0;\n    }\n    uVar3 = FUN_00026ea0(param_4,uVar10,param_6,0,param_8);\n    iVar5 = *(int *)(param_3 + 0x14);\n    if (iVar5 == 0) {\n      uVar4 = FUN_0001ed00(param_8,4,0);\n      iVar5 = FUN_0001f390(param_8,"int",uVar4);\n      *(int *)(param_3 + 0x14) = iVar5;\n    }\n    iVar12 = FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0);\n    return iVar12;\n  }\n  if ((param_6 != (int *)0x0) && (0 < *param_6)) {\n    piVar8 = (int *)FUN_00026be0();\n    if (*piVar8 != 0) {\n      return *piVar8;\n    }\n    iVar12 = FUN_0001eca0(param_8,piVar8,0);\n    return iVar12;\n  }\n  if (param_7 == 0) {\n    param_6 = (int *)0x0;\n  }\n  if (0x10 < param_5) {\n    iVar12 = FUN_0001ecf0(param_8);\n    return iVar12;\n  }\n  iVar12 = *(int *)(param_3 + 4 + param_5 * 4);\n  if (iVar12 != 0) {\n    return iVar12;\n  }\n  switch(param_5) {\n  default:\n    uVar3 = FUN_0001ecf0(param_8);\n    pcVar9 = "void";\n    break;\n  case 2:\n    uVar3 = FUN_0001ed00(param_8,1,0);\n    pcVar9 = "char";\n    break;\n  case 3:\n    uVar3 = FUN_0001ed00(param_8,2,0);\n    pcVar9 = "short";\n    break;\n  case 4:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "int";\n    break;\n  case 5:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "long";\n    break;\n  case 6:\n    uVar3 = FUN_0001ed20(param_8,4);\n    pcVar9 = "float";\n    break;\n  case 7:\n    uVar3 = FUN_0001ed20(param_8,8);\n    pcVar9 = "double";\n    break;\n  case 8:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,1,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 8;\n    goto code_r0x00027330;\n  case 9:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,0,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 9;\ncode_r0x00027330:\n    iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);\ncode_r0x00027300:\n    piVar8 = (int *)FUN_00026be0();\n    *piVar8 = iVar12;\n    return iVar12;\n  case 10:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ee40(param_8,0,0);\n    }\n    else {\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }\n    goto code_r0x00027300;\n  case 0xb:\n    iVar12 = FUN_0001ecf0(param_8);\n    goto code_r0x00027186;\n  case 0xc:\n    uVar3 = FUN_0001ed00(param_8,1,1);\n    pcVar9 = "unsigned char";\n    break;\n  case 0xd:\n    uVar3 = FUN_0001ed00(param_8,2,1);\n    pcVar9 = "unsigned short";\n    break;\n  case 0xe:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned int";\n    break;\n  case 0xf:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned long";\n    break;\n  case 0x10:\n    uVar3 = FUN_0001ed20(param_8,0xc);\n    pcVar9 = "long double";\n  }\n  iVar12 = FUN_0001f390(param_8,pcVar9,uVar3);\ncode_r0x00027186:\n  *(int *)(param_3 + 4 + param_5 * 4) = iVar12;\n  return iVar12;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "int iStack_50;" primitive_type identifier ;) (declaration "int iStack_4c;" primitive_type identifier ;) (declaration "undefined1 auStack_34 [20];" type_identifier (array_declarator "auStack_34 [20]" identifier [ number_literal ]) ;) (declaration "char cStack_20;" primitive_type identifier ;) (declaration "byte bStack_1f;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x26eab;" (assignment_expression "uStack_14 = 0x26eab" identifier = number_literal) ;) (expression_statement "iVar12 = *(int *)(param_1 + 0x9c);" (assignment_expression "iVar12 = *(int *)(param_1 + 0x9c)" identifier = (pointer_expression "*(int *)(param_1 + 0x9c)" * (cast_expression "(int *)(param_1 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9c)" ( (binary_expression "param_1 + 0x9c" identifier + number_literal) ))))) ;) (if_statement "if ((~*(uint *)(iVar12 + 0x20) & param_5) != 0) {\n    uVar10 = (int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f);\n    uVar10 = (param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10;\n    uVar11 = *(uint *)(iVar12 + 0x28) & param_5;\n    bVar6 = (byte)*(undefined4 *)(iVar12 + 0x24);\n    if (uVar11 == 1 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001ee90(param_8,uVar3);\n      return iVar12;\n    }\n    if (uVar11 == 2 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001eee0(param_8,uVar3,0,0);\n      return iVar12;\n    }\n    if (uVar11 != 3 << (bVar6 & 0x1f)) {\n      uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      FUN_0002b6d0(uVar3,param_5);\n      return 0;\n    }\n    iVar12 = -1;\n    if (param_6 != (int *)0x0) {\n      uVar1 = *(ushort *)(param_6 + 2);\n      piVar8 = param_6 + 2;\n      if (uVar1 != 0) {\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }\n      iVar12 = uVar1 - 1;\n      *(short *)piVar8 = 0;\n    }\n    uVar3 = FUN_00026ea0(param_4,uVar10,param_6,0,param_8);\n    iVar5 = *(int *)(param_3 + 0x14);\n    if (iVar5 == 0) {\n      uVar4 = FUN_0001ed00(param_8,4,0);\n      iVar5 = FUN_0001f390(param_8,"int",uVar4);\n      *(int *)(param_3 + 0x14) = iVar5;\n    }\n    iVar12 = FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0);\n    return iVar12;\n  }" if (parenthesized_expression "((~*(uint *)(iVar12 + 0x20) & param_5) != 0)" ( (binary_expression "(~*(uint *)(iVar12 + 0x20) & param_5) != 0" (parenthesized_expression "(~*(uint *)(iVar12 + 0x20) & param_5)" ( (binary_expression "~*(uint *)(iVar12 + 0x20) & param_5" (unary_expression "~*(uint *)(iVar12 + 0x20)" ~ (pointer_expression "*(uint *)(iVar12 + 0x20)" * (cast_expression "(uint *)(iVar12 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) ))))) & identifier) )) != number_literal) )) (compound_statement "{\n    uVar10 = (int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f);\n    uVar10 = (param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10;\n    uVar11 = *(uint *)(iVar12 + 0x28) & param_5;\n    bVar6 = (byte)*(undefined4 *)(iVar12 + 0x24);\n    if (uVar11 == 1 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001ee90(param_8,uVar3);\n      return iVar12;\n    }\n    if (uVar11 == 2 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001eee0(param_8,uVar3,0,0);\n      return iVar12;\n    }\n    if (uVar11 != 3 << (bVar6 & 0x1f)) {\n      uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      FUN_0002b6d0(uVar3,param_5);\n      return 0;\n    }\n    iVar12 = -1;\n    if (param_6 != (int *)0x0) {\n      uVar1 = *(ushort *)(param_6 + 2);\n      piVar8 = param_6 + 2;\n      if (uVar1 != 0) {\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }\n      iVar12 = uVar1 - 1;\n      *(short *)piVar8 = 0;\n    }\n    uVar3 = FUN_00026ea0(param_4,uVar10,param_6,0,param_8);\n    iVar5 = *(int *)(param_3 + 0x14);\n    if (iVar5 == 0) {\n      uVar4 = FUN_0001ed00(param_8,4,0);\n      iVar5 = FUN_0001f390(param_8,"int",uVar4);\n      *(int *)(param_3 + 0x14) = iVar5;\n    }\n    iVar12 = FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0);\n    return iVar12;\n  }" { (expression_statement "uVar10 = (int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f);" (assignment_expression "uVar10 = (int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f)" identifier = (binary_expression "(int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f)" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f)" ( (binary_expression "(byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f" (binary_expression "(byte)*(undefined4 *)(iVar12 + 0x2c)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(undefined4 *)(iVar12 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c)" ( (binary_expression "iVar12 + 0x2c" identifier + number_literal) )))) & number_literal) )))) ;) (expression_statement "uVar10 = (param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10;" (assignment_expression "uVar10 = (param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10" identifier = (binary_expression "(param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10" (binary_expression "(param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20)" (parenthesized_expression "(param_5 ^ uVar10)" ( (binary_expression "param_5 ^ uVar10" identifier ^ identifier) )) & (pointer_expression "*(uint *)(iVar12 + 0x20)" * (cast_expression "(uint *)(iVar12 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) ))))) ^ identifier)) ;) (expression_statement "uVar11 = *(uint *)(iVar12 + 0x28) & param_5;" (assignment_expression "uVar11 = *(uint *)(iVar12 + 0x28) & param_5" identifier = (binary_expression "*(uint *)(iVar12 + 0x28) & param_5" (pointer_expression "*(uint *)(iVar12 + 0x28)" * (cast_expression "(uint *)(iVar12 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) )))) & identifier)) ;) (expression_statement "bVar6 = (byte)*(undefined4 *)(iVar12 + 0x24);" (assignment_expression "bVar6 = (byte)*(undefined4 *)(iVar12 + 0x24)" identifier = (binary_expression "(byte)*(undefined4 *)(iVar12 + 0x24)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(undefined4 *)(iVar12 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) ;) (if_statement "if (uVar11 == 1 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001ee90(param_8,uVar3);\n      return iVar12;\n    }" if (parenthesized_expression "(uVar11 == 1 << (bVar6 & 0x1f))" ( (binary_expression "uVar11 == 1 << (bVar6 & 0x1f)" identifier == (binary_expression "1 << (bVar6 & 0x1f)" number_literal << (parenthesized_expression "(bVar6 & 0x1f)" ( (binary_expression "bVar6 & 0x1f" identifier & number_literal) )))) )) (compound_statement "{\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001ee90(param_8,uVar3);\n      return iVar12;\n    }" { (expression_statement "uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);" (assignment_expression "uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8)" identifier = (call_expression "FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8)" identifier (argument_list "(param_4,uVar10,param_6,param_7,param_8)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar12 = FUN_0001ee90(param_8,uVar3);" (assignment_expression "iVar12 = FUN_0001ee90(param_8,uVar3)" identifier = (call_expression "FUN_0001ee90(param_8,uVar3)" identifier (argument_list "(param_8,uVar3)" ( identifier , identifier )))) ;) (return_statement "return iVar12;" return identifier ;) })) (if_statement "if (uVar11 == 2 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001eee0(param_8,uVar3,0,0);\n      return iVar12;\n    }" if (parenthesized_expression "(uVar11 == 2 << (bVar6 & 0x1f))" ( (binary_expression "uVar11 == 2 << (bVar6 & 0x1f)" identifier == (binary_expression "2 << (bVar6 & 0x1f)" number_literal << (parenthesized_expression "(bVar6 & 0x1f)" ( (binary_expression "bVar6 & 0x1f" identifier & number_literal) )))) )) (compound_statement "{\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001eee0(param_8,uVar3,0,0);\n      return iVar12;\n    }" { (expression_statement "uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);" (assignment_expression "uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8)" identifier = (call_expression "FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8)" identifier (argument_list "(param_4,uVar10,param_6,param_7,param_8)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar12 = FUN_0001eee0(param_8,uVar3,0,0);" (assignment_expression "iVar12 = FUN_0001eee0(param_8,uVar3,0,0)" identifier = (call_expression "FUN_0001eee0(param_8,uVar3,0,0)" identifier (argument_list "(param_8,uVar3,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (return_statement "return iVar12;" return identifier ;) })) (if_statement "if (uVar11 != 3 << (bVar6 & 0x1f)) {\n      uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      FUN_0002b6d0(uVar3,param_5);\n      return 0;\n    }" if (parenthesized_expression "(uVar11 != 3 << (bVar6 & 0x1f))" ( (binary_expression "uVar11 != 3 << (bVar6 & 0x1f)" identifier != (binary_expression "3 << (bVar6 & 0x1f)" number_literal << (parenthesized_expression "(bVar6 & 0x1f)" ( (binary_expression "bVar6 & 0x1f" identifier & number_literal) )))) )) (compound_statement "{\n      uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      FUN_0002b6d0(uVar3,param_5);\n      return 0;\n    }" { (expression_statement "uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);" (assignment_expression "uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5)" identifier = (call_expression "dcgettext(0,"parse_coff_type: Bad type code 0x%x",5)" identifier (argument_list "(0,"parse_coff_type: Bad type code 0x%x",5)" ( number_literal , (string_literal ""parse_coff_type: Bad type code 0x%x"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002b6d0(uVar3,param_5);" (call_expression "FUN_0002b6d0(uVar3,param_5)" identifier (argument_list "(uVar3,param_5)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar12 = -1;" (assignment_expression "iVar12 = -1" identifier = number_literal) ;) (if_statement "if (param_6 != (int *)0x0) {\n      uVar1 = *(ushort *)(param_6 + 2);\n      piVar8 = param_6 + 2;\n      if (uVar1 != 0) {\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }\n      iVar12 = uVar1 - 1;\n      *(short *)piVar8 = 0;\n    }" if (parenthesized_expression "(param_6 != (int *)0x0)" ( (binary_expression "param_6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar1 = *(ushort *)(param_6 + 2);\n      piVar8 = param_6 + 2;\n      if (uVar1 != 0) {\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }\n      iVar12 = uVar1 - 1;\n      *(short *)piVar8 = 0;\n    }" { (expression_statement "uVar1 = *(ushort *)(param_6 + 2);" (assignment_expression "uVar1 = *(ushort *)(param_6 + 2)" identifier = (pointer_expression "*(ushort *)(param_6 + 2)" * (cast_expression "(ushort *)(param_6 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 2)" ( (binary_expression "param_6 + 2" identifier + number_literal) ))))) ;) (expression_statement "piVar8 = param_6 + 2;" (assignment_expression "piVar8 = param_6 + 2" identifier = (binary_expression "param_6 + 2" identifier + number_literal)) ;) (if_statement "if (uVar1 != 0) {\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }" if (parenthesized_expression "(uVar1 != 0)" ( (binary_expression "uVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "piVar7 = piVar8;" (assignment_expression "piVar7 = piVar8" identifier = identifier) ;) (do_statement "do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);" do (compound_statement "{\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        }" { (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "piVar8 = (int *)((int)piVar7 + 2);" (assignment_expression "piVar8 = (int *)((int)piVar7 + 2)" identifier = (cast_expression "(int *)((int)piVar7 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar7 + 2)" ( (binary_expression "(int)piVar7 + 2" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(short *)piVar7 = *(short *)((int)piVar7 + 2);" (assignment_expression "*(short *)piVar7 = *(short *)((int)piVar7 + 2)" (pointer_expression "*(short *)piVar7" * (cast_expression "(short *)piVar7" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(short *)((int)piVar7 + 2)" * (cast_expression "(short *)((int)piVar7 + 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar7 + 2)" ( (binary_expression "(int)piVar7 + 2" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (*(short *)((int)piVar7 + 2) == 0) break;" if (parenthesized_expression "(*(short *)((int)piVar7 + 2) == 0)" ( (binary_expression "*(short *)((int)piVar7 + 2) == 0" (pointer_expression "*(short *)((int)piVar7 + 2)" * (cast_expression "(short *)((int)piVar7 + 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar7 + 2)" ( (binary_expression "(int)piVar7 + 2" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "piVar7 = piVar8;" (assignment_expression "piVar7 = piVar8" identifier = identifier) ;) }) while (parenthesized_expression "(iVar12 != 3)" ( (binary_expression "iVar12 != 3" identifier != number_literal) )) ;) })) (expression_statement "iVar12 = uVar1 - 1;" (assignment_expression "iVar12 = uVar1 - 1" identifier = (binary_expression "uVar1 - 1" identifier - number_literal)) ;) (expression_statement "*(short *)piVar8 = 0;" (assignment_expression "*(short *)piVar8 = 0" (pointer_expression "*(short *)piVar8" * (cast_expression "(short *)piVar8" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) })) (expression_statement "uVar3 = FUN_00026ea0(param_4,uVar10,param_6,0,param_8);" (assignment_expression "uVar3 = FUN_00026ea0(param_4,uVar10,param_6,0,param_8)" identifier = (call_expression "FUN_00026ea0(param_4,uVar10,param_6,0,param_8)" identifier (argument_list "(param_4,uVar10,param_6,0,param_8)" ( identifier , identifier , identifier , number_literal , identifier )))) ;) (expression_statement "iVar5 = *(int *)(param_3 + 0x14);" (assignment_expression "iVar5 = *(int *)(param_3 + 0x14)" identifier = (pointer_expression "*(int *)(param_3 + 0x14)" * (cast_expression "(int *)(param_3 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x14)" ( (binary_expression "param_3 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) {\n      uVar4 = FUN_0001ed00(param_8,4,0);\n      iVar5 = FUN_0001f390(param_8,"int",uVar4);\n      *(int *)(param_3 + 0x14) = iVar5;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar4 = FUN_0001ed00(param_8,4,0);\n      iVar5 = FUN_0001f390(param_8,"int",uVar4);\n      *(int *)(param_3 + 0x14) = iVar5;\n    }" { (expression_statement "uVar4 = FUN_0001ed00(param_8,4,0);" (assignment_expression "uVar4 = FUN_0001ed00(param_8,4,0)" identifier = (call_expression "FUN_0001ed00(param_8,4,0)" identifier (argument_list "(param_8,4,0)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "iVar5 = FUN_0001f390(param_8,"int",uVar4);" (assignment_expression "iVar5 = FUN_0001f390(param_8,"int",uVar4)" identifier = (call_expression "FUN_0001f390(param_8,"int",uVar4)" identifier (argument_list "(param_8,"int",uVar4)" ( identifier , (string_literal ""int"" " string_content ") , identifier )))) ;) (expression_statement "*(int *)(param_3 + 0x14) = iVar5;" (assignment_expression "*(int *)(param_3 + 0x14) = iVar5" (pointer_expression "*(int *)(param_3 + 0x14)" * (cast_expression "(int *)(param_3 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x14)" ( (binary_expression "param_3 + 0x14" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar12 = FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0);" (assignment_expression "iVar12 = FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0)" identifier = (call_expression "FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0)" identifier (argument_list "(param_8,uVar3,iVar5,0,iVar12,0)" ( identifier , identifier , identifier , number_literal , identifier , number_literal )))) ;) (return_statement "return iVar12;" return identifier ;) })) (if_statement "if ((param_6 != (int *)0x0) && (0 < *param_6)) {\n    piVar8 = (int *)FUN_00026be0();\n    if (*piVar8 != 0) {\n      return *piVar8;\n    }\n    iVar12 = FUN_0001eca0(param_8,piVar8,0);\n    return iVar12;\n  }" if (parenthesized_expression "((param_6 != (int *)0x0) && (0 < *param_6))" ( (binary_expression "(param_6 != (int *)0x0) && (0 < *param_6)" (parenthesized_expression "(param_6 != (int *)0x0)" ( (binary_expression "param_6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(0 < *param_6)" ( (binary_expression "0 < *param_6" number_literal < (pointer_expression "*param_6" * identifier)) ))) )) (compound_statement "{\n    piVar8 = (int *)FUN_00026be0();\n    if (*piVar8 != 0) {\n      return *piVar8;\n    }\n    iVar12 = FUN_0001eca0(param_8,piVar8,0);\n    return iVar12;\n  }" { (expression_statement "piVar8 = (int *)FUN_00026be0();" (assignment_expression "piVar8 = (int *)FUN_00026be0()" identifier = (cast_expression "(int *)FUN_00026be0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00026be0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (*piVar8 != 0) {\n      return *piVar8;\n    }" if (parenthesized_expression "(*piVar8 != 0)" ( (binary_expression "*piVar8 != 0" (pointer_expression "*piVar8" * identifier) != number_literal) )) (compound_statement "{\n      return *piVar8;\n    }" { (return_statement "return *piVar8;" return (pointer_expression "*piVar8" * identifier) ;) })) (expression_statement "iVar12 = FUN_0001eca0(param_8,piVar8,0);" (assignment_expression "iVar12 = FUN_0001eca0(param_8,piVar8,0)" identifier = (call_expression "FUN_0001eca0(param_8,piVar8,0)" identifier (argument_list "(param_8,piVar8,0)" ( identifier , identifier , number_literal )))) ;) (return_statement "return iVar12;" return identifier ;) })) (if_statement "if (param_7 == 0) {\n    param_6 = (int *)0x0;\n  }" if (parenthesized_expression "(param_7 == 0)" ( (binary_expression "param_7 == 0" identifier == number_literal) )) (compound_statement "{\n    param_6 = (int *)0x0;\n  }" { (expression_statement "param_6 = (int *)0x0;" (assignment_expression "param_6 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (if_statement "if (0x10 < param_5) {\n    iVar12 = FUN_0001ecf0(param_8);\n    return iVar12;\n  }" if (parenthesized_expression "(0x10 < param_5)" ( (binary_expression "0x10 < param_5" number_literal < identifier) )) (compound_statement "{\n    iVar12 = FUN_0001ecf0(param_8);\n    return iVar12;\n  }" { (expression_statement "iVar12 = FUN_0001ecf0(param_8);" (assignment_expression "iVar12 = FUN_0001ecf0(param_8)" identifier = (call_expression "FUN_0001ecf0(param_8)" identifier (argument_list "(param_8)" ( identifier )))) ;) (return_statement "return iVar12;" return identifier ;) })) (expression_statement "iVar12 = *(int *)(param_3 + 4 + param_5 * 4);" (assignment_expression "iVar12 = *(int *)(param_3 + 4 + param_5 * 4)" identifier = (pointer_expression "*(int *)(param_3 + 4 + param_5 * 4)" * (cast_expression "(int *)(param_3 + 4 + param_5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4 + param_5 * 4)" ( (binary_expression "param_3 + 4 + param_5 * 4" (binary_expression "param_3 + 4" identifier + number_literal) + (binary_expression "param_5 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (iVar12 != 0) {\n    return iVar12;\n  }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n    return iVar12;\n  }" { (return_statement "return iVar12;" return identifier ;) })) (switch_statement "switch(param_5) {\n  default:\n    uVar3 = FUN_0001ecf0(param_8);\n    pcVar9 = "void";\n    break;\n  case 2:\n    uVar3 = FUN_0001ed00(param_8,1,0);\n    pcVar9 = "char";\n    break;\n  case 3:\n    uVar3 = FUN_0001ed00(param_8,2,0);\n    pcVar9 = "short";\n    break;\n  case 4:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "int";\n    break;\n  case 5:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "long";\n    break;\n  case 6:\n    uVar3 = FUN_0001ed20(param_8,4);\n    pcVar9 = "float";\n    break;\n  case 7:\n    uVar3 = FUN_0001ed20(param_8,8);\n    pcVar9 = "double";\n    break;\n  case 8:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,1,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 8;\n    goto code_r0x00027330;\n  case 9:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,0,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 9;\ncode_r0x00027330:\n    iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);\ncode_r0x00027300:\n    piVar8 = (int *)FUN_00026be0();\n    *piVar8 = iVar12;\n    return iVar12;\n  case 10:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ee40(param_8,0,0);\n    }\n    else {\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }\n    goto code_r0x00027300;\n  case 0xb:\n    iVar12 = FUN_0001ecf0(param_8);\n    goto code_r0x00027186;\n  case 0xc:\n    uVar3 = FUN_0001ed00(param_8,1,1);\n    pcVar9 = "unsigned char";\n    break;\n  case 0xd:\n    uVar3 = FUN_0001ed00(param_8,2,1);\n    pcVar9 = "unsigned short";\n    break;\n  case 0xe:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned int";\n    break;\n  case 0xf:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned long";\n    break;\n  case 0x10:\n    uVar3 = FUN_0001ed20(param_8,0xc);\n    pcVar9 = "long double";\n  }" switch (parenthesized_expression "(param_5)" ( identifier )) (compound_statement "{\n  default:\n    uVar3 = FUN_0001ecf0(param_8);\n    pcVar9 = "void";\n    break;\n  case 2:\n    uVar3 = FUN_0001ed00(param_8,1,0);\n    pcVar9 = "char";\n    break;\n  case 3:\n    uVar3 = FUN_0001ed00(param_8,2,0);\n    pcVar9 = "short";\n    break;\n  case 4:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "int";\n    break;\n  case 5:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "long";\n    break;\n  case 6:\n    uVar3 = FUN_0001ed20(param_8,4);\n    pcVar9 = "float";\n    break;\n  case 7:\n    uVar3 = FUN_0001ed20(param_8,8);\n    pcVar9 = "double";\n    break;\n  case 8:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,1,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 8;\n    goto code_r0x00027330;\n  case 9:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,0,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 9;\ncode_r0x00027330:\n    iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);\ncode_r0x00027300:\n    piVar8 = (int *)FUN_00026be0();\n    *piVar8 = iVar12;\n    return iVar12;\n  case 10:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ee40(param_8,0,0);\n    }\n    else {\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }\n    goto code_r0x00027300;\n  case 0xb:\n    iVar12 = FUN_0001ecf0(param_8);\n    goto code_r0x00027186;\n  case 0xc:\n    uVar3 = FUN_0001ed00(param_8,1,1);\n    pcVar9 = "unsigned char";\n    break;\n  case 0xd:\n    uVar3 = FUN_0001ed00(param_8,2,1);\n    pcVar9 = "unsigned short";\n    break;\n  case 0xe:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned int";\n    break;\n  case 0xf:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned long";\n    break;\n  case 0x10:\n    uVar3 = FUN_0001ed20(param_8,0xc);\n    pcVar9 = "long double";\n  }" { (case_statement "default:\n    uVar3 = FUN_0001ecf0(param_8);\n    pcVar9 = "void";\n    break;" default : (expression_statement "uVar3 = FUN_0001ecf0(param_8);" (assignment_expression "uVar3 = FUN_0001ecf0(param_8)" identifier = (call_expression "FUN_0001ecf0(param_8)" identifier (argument_list "(param_8)" ( identifier )))) ;) (expression_statement "pcVar9 = "void";" (assignment_expression "pcVar9 = "void"" identifier = (string_literal ""void"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n    uVar3 = FUN_0001ed00(param_8,1,0);\n    pcVar9 = "char";\n    break;" case number_literal : (expression_statement "uVar3 = FUN_0001ed00(param_8,1,0);" (assignment_expression "uVar3 = FUN_0001ed00(param_8,1,0)" identifier = (call_expression "FUN_0001ed00(param_8,1,0)" identifier (argument_list "(param_8,1,0)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar9 = "char";" (assignment_expression "pcVar9 = "char"" identifier = (string_literal ""char"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n    uVar3 = FUN_0001ed00(param_8,2,0);\n    pcVar9 = "short";\n    break;" case number_literal : (expression_statement "uVar3 = FUN_0001ed00(param_8,2,0);" (assignment_expression "uVar3 = FUN_0001ed00(param_8,2,0)" identifier = (call_expression "FUN_0001ed00(param_8,2,0)" identifier (argument_list "(param_8,2,0)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar9 = "short";" (assignment_expression "pcVar9 = "short"" identifier = (string_literal ""short"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "int";\n    break;" case number_literal : (expression_statement "uVar3 = FUN_0001ed00(param_8,4,0);" (assignment_expression "uVar3 = FUN_0001ed00(param_8,4,0)" identifier = (call_expression "FUN_0001ed00(param_8,4,0)" identifier (argument_list "(param_8,4,0)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar9 = "int";" (assignment_expression "pcVar9 = "int"" identifier = (string_literal ""int"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "long";\n    break;" case number_literal : (expression_statement "uVar3 = FUN_0001ed00(param_8,4,0);" (assignment_expression "uVar3 = FUN_0001ed00(param_8,4,0)" identifier = (call_expression "FUN_0001ed00(param_8,4,0)" identifier (argument_list "(param_8,4,0)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar9 = "long";" (assignment_expression "pcVar9 = "long"" identifier = (string_literal ""long"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n    uVar3 = FUN_0001ed20(param_8,4);\n    pcVar9 = "float";\n    break;" case number_literal : (expression_statement "uVar3 = FUN_0001ed20(param_8,4);" (assignment_expression "uVar3 = FUN_0001ed20(param_8,4)" identifier = (call_expression "FUN_0001ed20(param_8,4)" identifier (argument_list "(param_8,4)" ( identifier , number_literal )))) ;) (expression_statement "pcVar9 = "float";" (assignment_expression "pcVar9 = "float"" identifier = (string_literal ""float"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 7:\n    uVar3 = FUN_0001ed20(param_8,8);\n    pcVar9 = "double";\n    break;" case number_literal : (expression_statement "uVar3 = FUN_0001ed20(param_8,8);" (assignment_expression "uVar3 = FUN_0001ed20(param_8,8)" identifier = (call_expression "FUN_0001ed20(param_8,8)" identifier (argument_list "(param_8,8)" ( identifier , number_literal )))) ;) (expression_statement "pcVar9 = "double";" (assignment_expression "pcVar9 = "double"" identifier = (string_literal ""double"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,1,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 8;\n    goto code_r0x00027330;" case number_literal : (if_statement "if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,1,0,0);\n      goto code_r0x00027300;\n    }" if (parenthesized_expression "(param_6 == (int *)0x0)" ( (binary_expression "param_6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar12 = FUN_0001ed50(param_8,1,0,0);\n      goto code_r0x00027300;\n    }" { (expression_statement "iVar12 = FUN_0001ed50(param_8,1,0,0);" (assignment_expression "iVar12 = FUN_0001ed50(param_8,1,0,0)" identifier = (call_expression "FUN_0001ed50(param_8,1,0,0)" identifier (argument_list "(param_8,1,0,0)" ( identifier , number_literal , number_literal , number_literal )))) ;) (goto_statement "goto code_r0x00027300;" goto statement_identifier ;) })) (expression_statement "iVar12 = param_6[3];" (assignment_expression "iVar12 = param_6[3]" identifier = (subscript_expression "param_6[3]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = 8;" (assignment_expression "uVar3 = 8" identifier = number_literal) ;) (goto_statement "goto code_r0x00027330;" goto statement_identifier ;)) (case_statement "case 9:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,0,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 9;\ncode_r0x00027330:\n    iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);\ncode_r0x00027300:\n    piVar8 = (int *)FUN_00026be0();\n    *piVar8 = iVar12;\n    return iVar12;" case number_literal : (if_statement "if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,0,0,0);\n      goto code_r0x00027300;\n    }" if (parenthesized_expression "(param_6 == (int *)0x0)" ( (binary_expression "param_6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar12 = FUN_0001ed50(param_8,0,0,0);\n      goto code_r0x00027300;\n    }" { (expression_statement "iVar12 = FUN_0001ed50(param_8,0,0,0);" (assignment_expression "iVar12 = FUN_0001ed50(param_8,0,0,0)" identifier = (call_expression "FUN_0001ed50(param_8,0,0,0)" identifier (argument_list "(param_8,0,0,0)" ( identifier , number_literal , number_literal , number_literal )))) ;) (goto_statement "goto code_r0x00027300;" goto statement_identifier ;) })) (expression_statement "iVar12 = param_6[3];" (assignment_expression "iVar12 = param_6[3]" identifier = (subscript_expression "param_6[3]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = 9;" (assignment_expression "uVar3 = 9" identifier = number_literal) ;) (labeled_statement "code_r0x00027330:\n    iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);" statement_identifier : (expression_statement "iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);" (assignment_expression "iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8)" identifier = (call_expression "FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8)" identifier (argument_list "(uVar3,(int)param_6 + 6,iVar12,param_8)" ( identifier , (binary_expression "(int)param_6 + 6" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , identifier , identifier )))) ;)) (labeled_statement "code_r0x00027300:\n    piVar8 = (int *)FUN_00026be0();" statement_identifier : (expression_statement "piVar8 = (int *)FUN_00026be0();" (assignment_expression "piVar8 = (int *)FUN_00026be0()" identifier = (cast_expression "(int *)FUN_00026be0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00026be0()" identifier (argument_list "()" ( ))))) ;)) (expression_statement "*piVar8 = iVar12;" (assignment_expression "*piVar8 = iVar12" (pointer_expression "*piVar8" * identifier) = identifier) ;) (return_statement "return iVar12;" return identifier ;)) (case_statement "case 10:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ee40(param_8,0,0);\n    }\n    else {\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }\n    goto code_r0x00027300;" case number_literal : (if_statement "if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ee40(param_8,0,0);\n    }\n    else {\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }" if (parenthesized_expression "(param_6 == (int *)0x0)" ( (binary_expression "param_6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar12 = FUN_0001ee40(param_8,0,0);\n    }" { (expression_statement "iVar12 = FUN_0001ee40(param_8,0,0);" (assignment_expression "iVar12 = FUN_0001ee40(param_8,0,0)" identifier = (call_expression "FUN_0001ee40(param_8,0,0)" identifier (argument_list "(param_8,0,0)" ( identifier , number_literal , number_literal )))) ;) }) (else_clause "else {\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }" else (compound_statement "{\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }" { (expression_statement "iVar5 = param_6[3];" (assignment_expression "iVar5 = param_6[3]" identifier = (subscript_expression "param_6[3]" identifier [ number_literal ])) ;) (expression_statement "iStack_4c = xmalloc(0x28);" (assignment_expression "iStack_4c = xmalloc(0x28)" identifier = (call_expression "xmalloc(0x28)" identifier (argument_list "(0x28)" ( number_literal )))) ;) (expression_statement "iStack_50 = xmalloc(0x28);" (assignment_expression "iStack_50 = xmalloc(0x28)" identifier = (call_expression "xmalloc(0x28)" identifier (argument_list "(0x28)" ( number_literal )))) ;) (expression_statement "iVar12 = param_2[3];" (assignment_expression "iVar12 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (do_statement "do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');" do (compound_statement "{\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      }" { (while_statement "while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }" { (if_statement "if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;" if (parenthesized_expression "((iVar5 <= iVar12) || (param_2[1] <= param_2[2]))" ( (binary_expression "(iVar5 <= iVar12) || (param_2[1] <= param_2[2])" (parenthesized_expression "(iVar5 <= iVar12)" ( (binary_expression "iVar5 <= iVar12" identifier <= identifier) )) || (parenthesized_expression "(param_2[1] <= param_2[2])" ( (binary_expression "param_2[1] <= param_2[2]" (subscript_expression "param_2[1]" identifier [ number_literal ]) <= (subscript_expression "param_2[2]" identifier [ number_literal ])) ))) )) (goto_statement "goto code_r0x000272d6;" goto statement_identifier ;)) (expression_statement "iVar2 = *(int *)(*param_2 + param_2[2] * 4);" (assignment_expression "iVar2 = *(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 "iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);" (assignment_expression "iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34)" identifier = (call_expression "bfd_coff_get_syment(param_1,iVar2,auStack_34)" identifier (argument_list "(param_1,iVar2,auStack_34)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\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 "uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);" (assignment_expression "uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5)" identifier = (call_expression "dcgettext(0,"bfd_coff_get_syment failed: %s",5)" identifier (argument_list "(0,"bfd_coff_get_syment failed: %s",5)" ( number_literal , (string_literal ""bfd_coff_get_syment failed: %s"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002b6d0(uVar4,uVar3);" (call_expression "FUN_0002b6d0(uVar4,uVar3)" identifier (argument_list "(uVar4,uVar3)" ( identifier , identifier ))) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (goto_statement "goto code_r0x00027300;" goto statement_identifier ;) })) (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 "iVar12 = bStack_1f + 1 + param_2[3];" (assignment_expression "iVar12 = bStack_1f + 1 + param_2[3]" identifier = (binary_expression "bStack_1f + 1 + param_2[3]" (binary_expression "bStack_1f + 1" identifier + number_literal) + (subscript_expression "param_2[3]" identifier [ number_literal ]))) ;) (expression_statement "param_2[3] = iVar12;" (assignment_expression "param_2[3] = iVar12" (subscript_expression "param_2[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (cStack_20 != '\x10') break;" if (parenthesized_expression "(cStack_20 != '\x10')" ( (binary_expression "cStack_20 != '\x10'" identifier != (char_literal "'\x10'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (if_statement "if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }" if (parenthesized_expression "((int)param_5 <= local_5c + 1)" ( (binary_expression "(int)param_5 <= local_5c + 1" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) <= (binary_expression "local_5c + 1" identifier + number_literal)) )) (compound_statement "{\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }" { (expression_statement "param_5 = param_5 + 10;" (assignment_expression "param_5 = param_5 + 10" identifier = (binary_expression "param_5 + 10" identifier + number_literal)) ;) (expression_statement "iStack_4c = xrealloc(iStack_4c,param_5 * 4);" (assignment_expression "iStack_4c = xrealloc(iStack_4c,param_5 * 4)" identifier = (call_expression "xrealloc(iStack_4c,param_5 * 4)" identifier (argument_list "(iStack_4c,param_5 * 4)" ( identifier , (binary_expression "param_5 * 4" identifier * number_literal) )))) ;) (expression_statement "iStack_50 = xrealloc(iStack_50,param_5 * 4);" (assignment_expression "iStack_50 = xrealloc(iStack_50,param_5 * 4)" identifier = (call_expression "xrealloc(iStack_50,param_5 * 4)" identifier (argument_list "(iStack_50,param_5 * 4)" ( identifier , (binary_expression "param_5 * 4" identifier * number_literal) )))) ;) })) (expression_statement "*(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);" (assignment_expression "*(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4)" (pointer_expression "*(undefined4 *)(iStack_4c + local_5c * 4)" * (cast_expression "(undefined4 *)(iStack_4c + local_5c * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_4c + local_5c * 4)" ( (binary_expression "iStack_4c + local_5c * 4" identifier + (binary_expression "local_5c * 4" identifier * number_literal)) )))) = (pointer_expression "*(undefined4 *)(iVar2 + 4)" * (cast_expression "(undefined4 *)(iVar2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);" (assignment_expression "*(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c)" (pointer_expression "*(int *)(iStack_50 + local_5c * 4)" * (cast_expression "(int *)(iStack_50 + local_5c * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_50 + local_5c * 4)" ( (binary_expression "iStack_50 + local_5c * 4" identifier + (binary_expression "local_5c * 4" identifier * number_literal)) )))) = (binary_expression "*(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c)" (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) + (pointer_expression "*(int *)(*(int *)(iVar2 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar2 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar2 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(iVar2 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar2 + 0x10)" * (cast_expression "(int *)(iVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "iVar12 = param_2[3];" (assignment_expression "iVar12 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "local_5c = local_5c + 1;" (assignment_expression "local_5c = local_5c + 1" identifier = (binary_expression "local_5c + 1" identifier + number_literal)) ;) })) }) while (parenthesized_expression "(cStack_20 != 'f')" ( (binary_expression "cStack_20 != 'f'" identifier != (char_literal "'f'" ' character ')) )) ;) (labeled_statement "code_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(iStack_4c + local_5c * 4) = 0;" (assignment_expression "*(undefined4 *)(iStack_4c + local_5c * 4) = 0" (pointer_expression "*(undefined4 *)(iStack_4c + local_5c * 4)" * (cast_expression "(undefined4 *)(iStack_4c + local_5c * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_4c + local_5c * 4)" ( (binary_expression "iStack_4c + local_5c * 4" identifier + (binary_expression "local_5c * 4" identifier * number_literal)) )))) = number_literal) ;)) (expression_statement "iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);" (assignment_expression "iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50)" identifier = (call_expression "FUN_0001ee40(param_8,iStack_4c,iStack_50)" identifier (argument_list "(param_8,iStack_4c,iStack_50)" ( identifier , identifier , identifier )))) ;) }))) (goto_statement "goto code_r0x00027300;" goto statement_identifier ;)) (case_statement "case 0xb:\n    iVar12 = FUN_0001ecf0(param_8);\n    goto code_r0x00027186;" case number_literal : (expression_statement "iVar12 = FUN_0001ecf0(param_8);" (assignment_expression "iVar12 = FUN_0001ecf0(param_8)" identifier = (call_expression "FUN_0001ecf0(param_8)" identifier (argument_list "(param_8)" ( identifier )))) ;) (goto_statement "goto code_r0x00027186;" goto statement_identifier ;)) (case_statement "case 0xc:\n    uVar3 = FUN_0001ed00(param_8,1,1);\n    pcVar9 = "unsigned char";\n    break;" case number_literal : (expression_statement "uVar3 = FUN_0001ed00(param_8,1,1);" (assignment_expression "uVar3 = FUN_0001ed00(param_8,1,1)" identifier = (call_expression "FUN_0001ed00(param_8,1,1)" identifier (argument_list "(param_8,1,1)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar9 = "unsigned char";" (assignment_expression "pcVar9 = "unsigned char"" identifier = (string_literal ""unsigned char"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xd:\n    uVar3 = FUN_0001ed00(param_8,2,1);\n    pcVar9 = "unsigned short";\n    break;" case number_literal : (expression_statement "uVar3 = FUN_0001ed00(param_8,2,1);" (assignment_expression "uVar3 = FUN_0001ed00(param_8,2,1)" identifier = (call_expression "FUN_0001ed00(param_8,2,1)" identifier (argument_list "(param_8,2,1)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar9 = "unsigned short";" (assignment_expression "pcVar9 = "unsigned short"" identifier = (string_literal ""unsigned short"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xe:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned int";\n    break;" case number_literal : (expression_statement "uVar3 = FUN_0001ed00(param_8,4,1);" (assignment_expression "uVar3 = FUN_0001ed00(param_8,4,1)" identifier = (call_expression "FUN_0001ed00(param_8,4,1)" identifier (argument_list "(param_8,4,1)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar9 = "unsigned int";" (assignment_expression "pcVar9 = "unsigned int"" identifier = (string_literal ""unsigned int"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xf:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned long";\n    break;" case number_literal : (expression_statement "uVar3 = FUN_0001ed00(param_8,4,1);" (assignment_expression "uVar3 = FUN_0001ed00(param_8,4,1)" identifier = (call_expression "FUN_0001ed00(param_8,4,1)" identifier (argument_list "(param_8,4,1)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar9 = "unsigned long";" (assignment_expression "pcVar9 = "unsigned long"" identifier = (string_literal ""unsigned long"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 0x10:\n    uVar3 = FUN_0001ed20(param_8,0xc);\n    pcVar9 = "long double";" case number_literal : (expression_statement "uVar3 = FUN_0001ed20(param_8,0xc);" (assignment_expression "uVar3 = FUN_0001ed20(param_8,0xc)" identifier = (call_expression "FUN_0001ed20(param_8,0xc)" identifier (argument_list "(param_8,0xc)" ( identifier , number_literal )))) ;) (expression_statement "pcVar9 = "long double";" (assignment_expression "pcVar9 = "long double"" identifier = (string_literal ""long double"" " string_content ")) ;)) })) (expression_statement "iVar12 = FUN_0001f390(param_8,pcVar9,uVar3);" (assignment_expression "iVar12 = FUN_0001f390(param_8,pcVar9,uVar3)" identifier = (call_expression "FUN_0001f390(param_8,pcVar9,uVar3)" identifier (argument_list "(param_8,pcVar9,uVar3)" ( identifier , identifier , identifier )))) ;) (labeled_statement "code_r0x00027186:\n  *(int *)(param_3 + 4 + param_5 * 4) = iVar12;" statement_identifier : (expression_statement "*(int *)(param_3 + 4 + param_5 * 4) = iVar12;" (assignment_expression "*(int *)(param_3 + 4 + param_5 * 4) = iVar12" (pointer_expression "*(int *)(param_3 + 4 + param_5 * 4)" * (cast_expression "(int *)(param_3 + 4 + param_5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4 + param_5 * 4)" ( (binary_expression "param_3 + 4 + param_5 * 4" (binary_expression "param_3 + 4" identifier + number_literal) + (binary_expression "param_5 * 4" identifier * number_literal)) )))) = identifier) ;)) (return_statement "return iVar12;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\ndebug_type __regparm3\nparse_coff_type(bfd *abfd,coff_symbols *symbols,coff_types *types,long coff_symno,int ntype,\n               internal_auxent *pauxent,bfd_boolean useaux,void *dhandle)\n\n{\n  ushort uVar1;\n  coff_tdata *pcVar2;\n  int iVar3;\n  asymbol *paVar4;\n  debug_type pdVar5;\n  debug_type_conflict pdVar6;\n  debug_type_conflict *ppdVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  byte bVar10;\n  int iVar11;\n  debug_type_conflict *arg_types;\n  ushort *puVar12;\n  ushort *puVar13;\n  debug_type_conflict type;\n  uint uVar14;\n  uint uVar15;\n  bfd_signed_vma upper;\n  coff_types *types_00;\n  internal_auxent *pauxent_00;\n  internal_auxent *in_stack_ffffff94;\n  int local_5c;\n  bfd_signed_vma *local_50;\n  char **local_4c;\n  internal_syment syment;\n  \n  pcVar2 = (abfd->tdata).coff_obj_data;\n  if ((~pcVar2->local_n_btmask & ntype) != 0) {\n    uVar14 = ntype >> ((byte)pcVar2->local_n_tshift & 0x1f);\n    uVar14 = (ntype ^ uVar14) & pcVar2->local_n_btmask ^ uVar14;\n    uVar15 = pcVar2->local_n_tmask & ntype;\n    bVar10 = (byte)pcVar2->local_n_btshft;\n    if (uVar15 == 1 << (bVar10 & 0x1f)) {\n      pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,useaux,dhandle);\n      pdVar6 = debug_make_pointer_type(dhandle,pdVar5);\n      return pdVar6;\n    }\n    if (uVar15 == 2 << (bVar10 & 0x1f)) {\n      pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,useaux,dhandle);\n      pdVar6 = debug_make_function_type(pdVar5,type,arg_types,(bfd_boolean)dhandle);\n      return pdVar6;\n    }\n    if (uVar15 != 3 << (bVar10 & 0x1f)) {\n      pcVar8 = (char *)dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      non_fatal(pcVar8,ntype);\n      return (debug_type)0x0;\n    }\n    upper = -1;\n    if (pauxent != (internal_auxent *)0x0) {\n      uVar1 = (pauxent->x_tv).x_tvran[1];\n      puVar13 = (pauxent->x_tv).x_tvran + 1;\n      if (uVar1 != 0) {\n        iVar11 = 0;\n        puVar12 = puVar13;\n        do {\n          iVar11 = iVar11 + 1;\n          puVar13 = puVar12 + 1;\n          *puVar12 = puVar12[1];\n          if (puVar12[1] == 0) break;\n          puVar12 = puVar13;\n        } while (iVar11 != 3);\n      }\n      upper = uVar1 - 1;\n      *puVar13 = 0;\n    }\n    pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,0,dhandle);\n    pdVar6 = types->basic[4];\n    if (pdVar6 == (debug_type_conflict)0x0) {\n      pdVar6 = debug_make_int_type(dhandle,4,0);\n      pdVar6 = debug_name_type(dhandle,"int",pdVar6);\n      types->basic[4] = pdVar6;\n    }\n    pdVar6 = debug_make_array_type(dhandle,pdVar5,pdVar6,0,upper,0);\n    return pdVar6;\n  }\n  if ((pauxent != (internal_auxent *)0x0) && (0 < (pauxent->x_scn).x_scnlen)) {\n    ppdVar7 = coff_get_slot(types,(pauxent->x_scn).x_scnlen);\n    if (*ppdVar7 != (debug_type)0x0) {\n      return *ppdVar7;\n    }\n    pdVar6 = debug_make_indirect_type(dhandle,ppdVar7,(char *)0x0);\n    return pdVar6;\n  }\n  if (useaux == 0) {\n    pauxent = (internal_auxent *)0x0;\n  }\n  if (0x10 < (uint)ntype) {\n    pdVar6 = debug_make_void_type();\n    return pdVar6;\n  }\n  if (types->basic[ntype] != (debug_type)0x0) {\n    return types->basic[ntype];\n  }\n  switch(ntype) {\n  default:\n    pdVar6 = debug_make_void_type();\n    pcVar8 = "void";\n    break;\n  case 2:\n    pdVar6 = debug_make_int_type(dhandle,1,0);\n    pcVar8 = "char";\n    break;\n  case 3:\n    pdVar6 = debug_make_int_type(dhandle,2,0);\n    pcVar8 = "short";\n    break;\n  case 4:\n    pdVar6 = debug_make_int_type(dhandle,4,0);\n    pcVar8 = "int";\n    break;\n  case 5:\n    pdVar6 = debug_make_int_type(dhandle,4,0);\n    pcVar8 = "long";\n    break;\n  case 6:\n    pdVar6 = debug_make_float_type(4);\n    pcVar8 = "float";\n    break;\n  case 7:\n    pdVar6 = debug_make_float_type(8);\n    pcVar8 = "double";\n    break;\n  case 8:\n    if (pauxent == (internal_auxent *)0x0) {\n      pdVar5 = debug_make_struct_type(dhandle,1,0,(debug_field *)0x0);\n      goto LAB_00027300;\n    }\n    pauxent_00 = (internal_auxent *)(pauxent->x_csect).x_stab;\n    types_00 = (coff_types *)0x8;\n    goto LAB_00027330;\n  case 9:\n    if (pauxent == (internal_auxent *)0x0) {\n      pdVar5 = debug_make_struct_type(dhandle,0,0,(debug_field *)0x0);\n      goto LAB_00027300;\n    }\n    pauxent_00 = (internal_auxent *)(pauxent->x_csect).x_stab;\n    types_00 = (coff_types *)0x9;\nLAB_00027330:\n    pdVar5 = parse_coff_struct_type\n                       (abfd,symbols,types_00,(int)pauxent + 6,pauxent_00,dhandle,in_stack_ffffff94)\n    ;\nLAB_00027300:\n    ppdVar7 = coff_get_slot(types,coff_symno);\n    *ppdVar7 = pdVar5;\n    return pdVar5;\n  case 10:\n    if (pauxent == (internal_auxent *)0x0) {\n      pdVar5 = debug_make_enum_type(dhandle,(char **)0x0,(bfd_signed_vma *)0x0);\n    }\n    else {\n      iVar3 = (pauxent->x_csect).x_stab;\n      local_4c = (char **)xmalloc(0x28);\n      local_50 = (bfd_signed_vma *)xmalloc(0x28);\n      iVar11 = symbols->coff_symno;\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar3 <= iVar11) || (symbols->symcount <= symbols->symno)) goto LAB_000272d6;\n          paVar4 = symbols->syms[symbols->symno];\n          iVar11 = bfd_coff_get_syment(abfd,paVar4,&syment);\n          if (iVar11 == 0) {\n            uVar9 = bfd_get_error();\n            uVar9 = bfd_errmsg(uVar9);\n            pcVar8 = (char *)dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            non_fatal(pcVar8,uVar9);\n            pdVar5 = (debug_type)0x0;\n            goto LAB_00027300;\n          }\n          symbols->symno = symbols->symno + 1;\n          iVar11 = syment.n_numaux + 1 + symbols->coff_symno;\n          symbols->coff_symno = iVar11;\n          if (syment.n_sclass != '\x10') break;\n          if (ntype <= local_5c + 1) {\n            ntype = ntype + 10;\n            local_4c = (char **)xrealloc(local_4c,ntype * 4);\n            local_50 = (bfd_signed_vma *)xrealloc(local_50,ntype * 4);\n          }\n          local_4c[local_5c] = paVar4->name;\n          local_50[local_5c] = paVar4->value + paVar4->section->vma;\n          iVar11 = symbols->coff_symno;\n          local_5c = local_5c + 1;\n        }\n      } while (syment.n_sclass != 'f');\nLAB_000272d6:\n      local_4c[local_5c] = (char *)0x0;\n      pdVar5 = debug_make_enum_type(dhandle,local_4c,local_50);\n    }\n    goto LAB_00027300;\n  case 0xb:\n    pdVar6 = debug_make_void_type();\n    goto LAB_00027186;\n  case 0xc:\n    pdVar6 = debug_make_int_type(dhandle,1,1);\n    pcVar8 = "unsigned char";\n    break;\n  case 0xd:\n    pdVar6 = debug_make_int_type(dhandle,2,1);\n    pcVar8 = "unsigned short";\n    break;\n  case 0xe:\n    pdVar6 = debug_make_int_type(dhandle,4,1);\n    pcVar8 = "unsigned int";\n    break;\n  case 0xf:\n    pdVar6 = debug_make_int_type(dhandle,4,1);\n    pcVar8 = "unsigned long";\n    break;\n  case 0x10:\n    pdVar6 = debug_make_float_type(0xc);\n    pcVar8 = "long double";\n  }\n  pdVar6 = debug_name_type(dhandle,pcVar8,pdVar6);\nLAB_00027186:\n  types->basic[ntype] = pdVar6;\n  return pdVar6;\n}\n\n" comment (function_definition "debug_type __regparm3\nparse_coff_type(bfd *abfd,coff_symbols *symbols,coff_types *types,long coff_symno,int ntype,\n               internal_auxent *pauxent,bfd_boolean useaux,void *dhandle)\n\n{\n  ushort uVar1;\n  coff_tdata *pcVar2;\n  int iVar3;\n  asymbol *paVar4;\n  debug_type pdVar5;\n  debug_type_conflict pdVar6;\n  debug_type_conflict *ppdVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  byte bVar10;\n  int iVar11;\n  debug_type_conflict *arg_types;\n  ushort *puVar12;\n  ushort *puVar13;\n  debug_type_conflict type;\n  uint uVar14;\n  uint uVar15;\n  bfd_signed_vma upper;\n  coff_types *types_00;\n  internal_auxent *pauxent_00;\n  internal_auxent *in_stack_ffffff94;\n  int local_5c;\n  bfd_signed_vma *local_50;\n  char **local_4c;\n  internal_syment syment;\n  \n  pcVar2 = (abfd->tdata).coff_obj_data;\n  if ((~pcVar2->local_n_btmask & ntype) != 0) {\n    uVar14 = ntype >> ((byte)pcVar2->local_n_tshift & 0x1f);\n    uVar14 = (ntype ^ uVar14) & pcVar2->local_n_btmask ^ uVar14;\n    uVar15 = pcVar2->local_n_tmask & ntype;\n    bVar10 = (byte)pcVar2->local_n_btshft;\n    if (uVar15 == 1 << (bVar10 & 0x1f)) {\n      pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,useaux,dhandle);\n      pdVar6 = debug_make_pointer_type(dhandle,pdVar5);\n      return pdVar6;\n    }\n    if (uVar15 == 2 << (bVar10 & 0x1f)) {\n      pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,useaux,dhandle);\n      pdVar6 = debug_make_function_type(pdVar5,type,arg_types,(bfd_boolean)dhandle);\n      return pdVar6;\n    }\n    if (uVar15 != 3 << (bVar10 & 0x1f)) {\n      pcVar8 = (char *)dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      non_fatal(pcVar8,ntype);\n      return (debug_type)0x0;\n    }\n    upper = -1;\n    if (pauxent != (internal_auxent *)0x0) {\n      uVar1 = (pauxent->x_tv).x_tvran[1];\n      puVar13 = (pauxent->x_tv).x_tvran + 1;\n      if (uVar1 != 0) {\n        iVar11 = 0;\n        puVar12 = puVar13;\n        do {\n          iVar11 = iVar11 + 1;\n          puVar13 = puVar12 + 1;\n          *puVar12 = puVar12[1];\n          if (puVar12[1] == 0) break;\n          puVar12 = puVar13;\n        } while (iVar11 != 3);\n      }\n      upper = uVar1 - 1;\n      *puVar13 = 0;\n    }\n    pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,0,dhandle);\n    pdVar6 = types->basic[4];\n    if (pdVar6 == (debug_type_conflict)0x0) {\n      pdVar6 = debug_make_int_type(dhandle,4,0);\n      pdVar6 = debug_name_type(dhandle,"int",pdVar6);\n      types->basic[4] = pdVar6;\n    }\n    pdVar6 = debug_make_array_type(dhandle,pdVar5,pdVar6,0,upper,0);\n    return pdVar6;\n  }\n  if ((pauxent != (internal_auxent *)0x0) && (0 < (pauxent->x_scn).x_scnlen)) {\n    ppdVar7 = coff_get_slot(types,(pauxent->x_scn).x_scnlen);\n    if (*ppdVar7 != (debug_type)0x0) {\n      return *ppdVar7;\n    }\n    pdVar6 = debug_make_indirect_type(dhandle,ppdVar7,(char *)0x0);\n    return pdVar6;\n  }\n  if (useaux == 0) {\n    pauxent = (internal_auxent *)0x0;\n  }\n  if (0x10 < (uint)ntype) {\n    pdVar6 = debug_make_void_type();\n    return pdVar6;\n  }\n  if (types->basic[ntype] != (debug_type)0x0) {\n    return types->basic[ntype];\n  }\n  switch(ntype) {\n  default:\n    pdVar6 = debug_make_void_type();\n    pcVar8 = "void";\n    break;\n  case 2:\n    pdVar6 = debug_make_int_type(dhandle,1,0);\n    pcVar8 = "char";\n    break;\n  case 3:\n    pdVar6 = debug_make_int_type(dhandle,2,0);\n    pcVar8 = "short";\n    break;\n  case 4:\n    pdVar6 = debug_make_int_type(dhandle,4,0);\n    pcVar8 = "int";\n    break;\n  case 5:\n    pdVar6 = debug_make_int_type(dhandle,4,0);\n    pcVar8 = "long";\n    break;\n  case 6:\n    pdVar6 = debug_make_float_type(4);\n    pcVar8 = "float";\n    break;\n  case 7:\n    pdVar6 = debug_make_float_type(8);\n    pcVar8 = "double";\n    break;\n  case 8:\n    if (pauxent == (internal_auxent *)0x0) {\n      pdVar5 = debug_make_struct_type(dhandle,1,0,(debug_field *)0x0);\n      goto LAB_00027300;\n    }\n    pauxent_00 = (internal_auxent *)(pauxent->x_csect).x_stab;\n    types_00 = (coff_types *)0x8;\n    goto LAB_00027330;\n  case 9:\n    if (pauxent == (internal_auxent *)0x0) {\n      pdVar5 = debug_make_struct_type(dhandle,0,0,(debug_field *)0x0);\n      goto LAB_00027300;\n    }\n    pauxent_00 = (internal_auxent *)(pauxent->x_csect).x_stab;\n    types_00 = (coff_types *)0x9;\nLAB_00027330:\n    pdVar5 = parse_coff_struct_type\n                       (abfd,symbols,types_00,(int)pauxent + 6,pauxent_00,dhandle,in_stack_ffffff94)\n    ;\nLAB_00027300:\n    ppdVar7 = coff_get_slot(types,coff_symno);\n    *ppdVar7 = pdVar5;\n    return pdVar5;\n  case 10:\n    if (pauxent == (internal_auxent *)0x0) {\n      pdVar5 = debug_make_enum_type(dhandle,(char **)0x0,(bfd_signed_vma *)0x0);\n    }\n    else {\n      iVar3 = (pauxent->x_csect).x_stab;\n      local_4c = (char **)xmalloc(0x28);\n      local_50 = (bfd_signed_vma *)xmalloc(0x28);\n      iVar11 = symbols->coff_symno;\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar3 <= iVar11) || (symbols->symcount <= symbols->symno)) goto LAB_000272d6;\n          paVar4 = symbols->syms[symbols->symno];\n          iVar11 = bfd_coff_get_syment(abfd,paVar4,&syment);\n          if (iVar11 == 0) {\n            uVar9 = bfd_get_error();\n            uVar9 = bfd_errmsg(uVar9);\n            pcVar8 = (char *)dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            non_fatal(pcVar8,uVar9);\n            pdVar5 = (debug_type)0x0;\n            goto LAB_00027300;\n          }\n          symbols->symno = symbols->symno + 1;\n          iVar11 = syment.n_numaux + 1 + symbols->coff_symno;\n          symbols->coff_symno = iVar11;\n          if (syment.n_sclass != '\x10') break;\n          if (ntype <= local_5c + 1) {\n            ntype = ntype + 10;\n            local_4c = (char **)xrealloc(local_4c,ntype * 4);\n            local_50 = (bfd_signed_vma *)xrealloc(local_50,ntype * 4);\n          }\n          local_4c[local_5c] = paVar4->name;\n          local_50[local_5c] = paVar4->value + paVar4->section->vma;\n          iVar11 = symbols->coff_symno;\n          local_5c = local_5c + 1;\n        }\n      } while (syment.n_sclass != 'f');\nLAB_000272d6:\n      local_4c[local_5c] = (char *)0x0;\n      pdVar5 = debug_make_enum_type(dhandle,local_4c,local_50);\n    }\n    goto LAB_00027300;\n  case 0xb:\n    pdVar6 = debug_make_void_type();\n    goto LAB_00027186;\n  case 0xc:\n    pdVar6 = debug_make_int_type(dhandle,1,1);\n    pcVar8 = "unsigned char";\n    break;\n  case 0xd:\n    pdVar6 = debug_make_int_type(dhandle,2,1);\n    pcVar8 = "unsigned short";\n    break;\n  case 0xe:\n    pdVar6 = debug_make_int_type(dhandle,4,1);\n    pcVar8 = "unsigned int";\n    break;\n  case 0xf:\n    pdVar6 = debug_make_int_type(dhandle,4,1);\n    pcVar8 = "unsigned long";\n    break;\n  case 0x10:\n    pdVar6 = debug_make_float_type(0xc);\n    pcVar8 = "long double";\n  }\n  pdVar6 = debug_name_type(dhandle,pcVar8,pdVar6);\nLAB_00027186:\n  types->basic[ntype] = pdVar6;\n  return pdVar6;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "parse_coff_type(bfd *abfd,coff_symbols *symbols,coff_types *types,long coff_symno,int ntype,\n               internal_auxent *pauxent,bfd_boolean useaux,void *dhandle)" identifier (parameter_list "(bfd *abfd,coff_symbols *symbols,coff_types *types,long coff_symno,int ntype,\n               internal_auxent *pauxent,bfd_boolean useaux,void *dhandle)" ( (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 "long coff_symno" (sized_type_specifier "long" long) identifier) , (parameter_declaration "int ntype" primitive_type identifier) , (parameter_declaration "internal_auxent *pauxent" type_identifier (pointer_declarator "*pauxent" * identifier)) , (parameter_declaration "bfd_boolean useaux" type_identifier identifier) , (parameter_declaration "void *dhandle" primitive_type (pointer_declarator "*dhandle" * identifier)) ))) (compound_statement "{\n  ushort uVar1;\n  coff_tdata *pcVar2;\n  int iVar3;\n  asymbol *paVar4;\n  debug_type pdVar5;\n  debug_type_conflict pdVar6;\n  debug_type_conflict *ppdVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  byte bVar10;\n  int iVar11;\n  debug_type_conflict *arg_types;\n  ushort *puVar12;\n  ushort *puVar13;\n  debug_type_conflict type;\n  uint uVar14;\n  uint uVar15;\n  bfd_signed_vma upper;\n  coff_types *types_00;\n  internal_auxent *pauxent_00;\n  internal_auxent *in_stack_ffffff94;\n  int local_5c;\n  bfd_signed_vma *local_50;\n  char **local_4c;\n  internal_syment syment;\n  \n  pcVar2 = (abfd->tdata).coff_obj_data;\n  if ((~pcVar2->local_n_btmask & ntype) != 0) {\n    uVar14 = ntype >> ((byte)pcVar2->local_n_tshift & 0x1f);\n    uVar14 = (ntype ^ uVar14) & pcVar2->local_n_btmask ^ uVar14;\n    uVar15 = pcVar2->local_n_tmask & ntype;\n    bVar10 = (byte)pcVar2->local_n_btshft;\n    if (uVar15 == 1 << (bVar10 & 0x1f)) {\n      pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,useaux,dhandle);\n      pdVar6 = debug_make_pointer_type(dhandle,pdVar5);\n      return pdVar6;\n    }\n    if (uVar15 == 2 << (bVar10 & 0x1f)) {\n      pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,useaux,dhandle);\n      pdVar6 = debug_make_function_type(pdVar5,type,arg_types,(bfd_boolean)dhandle);\n      return pdVar6;\n    }\n    if (uVar15 != 3 << (bVar10 & 0x1f)) {\n      pcVar8 = (char *)dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      non_fatal(pcVar8,ntype);\n      return (debug_type)0x0;\n    }\n    upper = -1;\n    if (pauxent != (internal_auxent *)0x0) {\n      uVar1 = (pauxent->x_tv).x_tvran[1];\n      puVar13 = (pauxent->x_tv).x_tvran + 1;\n      if (uVar1 != 0) {\n        iVar11 = 0;\n        puVar12 = puVar13;\n        do {\n          iVar11 = iVar11 + 1;\n          puVar13 = puVar12 + 1;\n          *puVar12 = puVar12[1];\n          if (puVar12[1] == 0) break;\n          puVar12 = puVar13;\n        } while (iVar11 != 3);\n      }\n      upper = uVar1 - 1;\n      *puVar13 = 0;\n    }\n    pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,0,dhandle);\n    pdVar6 = types->basic[4];\n    if (pdVar6 == (debug_type_conflict)0x0) {\n      pdVar6 = debug_make_int_type(dhandle,4,0);\n      pdVar6 = debug_name_type(dhandle,"int",pdVar6);\n      types->basic[4] = pdVar6;\n    }\n    pdVar6 = debug_make_array_type(dhandle,pdVar5,pdVar6,0,upper,0);\n    return pdVar6;\n  }\n  if ((pauxent != (internal_auxent *)0x0) && (0 < (pauxent->x_scn).x_scnlen)) {\n    ppdVar7 = coff_get_slot(types,(pauxent->x_scn).x_scnlen);\n    if (*ppdVar7 != (debug_type)0x0) {\n      return *ppdVar7;\n    }\n    pdVar6 = debug_make_indirect_type(dhandle,ppdVar7,(char *)0x0);\n    return pdVar6;\n  }\n  if (useaux == 0) {\n    pauxent = (internal_auxent *)0x0;\n  }\n  if (0x10 < (uint)ntype) {\n    pdVar6 = debug_make_void_type();\n    return pdVar6;\n  }\n  if (types->basic[ntype] != (debug_type)0x0) {\n    return types->basic[ntype];\n  }\n  switch(ntype) {\n  default:\n    pdVar6 = debug_make_void_type();\n    pcVar8 = "void";\n    break;\n  case 2:\n    pdVar6 = debug_make_int_type(dhandle,1,0);\n    pcVar8 = "char";\n    break;\n  case 3:\n    pdVar6 = debug_make_int_type(dhandle,2,0);\n    pcVar8 = "short";\n    break;\n  case 4:\n    pdVar6 = debug_make_int_type(dhandle,4,0);\n    pcVar8 = "int";\n    break;\n  case 5:\n    pdVar6 = debug_make_int_type(dhandle,4,0);\n    pcVar8 = "long";\n    break;\n  case 6:\n    pdVar6 = debug_make_float_type(4);\n    pcVar8 = "float";\n    break;\n  case 7:\n    pdVar6 = debug_make_float_type(8);\n    pcVar8 = "double";\n    break;\n  case 8:\n    if (pauxent == (internal_auxent *)0x0) {\n      pdVar5 = debug_make_struct_type(dhandle,1,0,(debug_field *)0x0);\n      goto LAB_00027300;\n    }\n    pauxent_00 = (internal_auxent *)(pauxent->x_csect).x_stab;\n    types_00 = (coff_types *)0x8;\n    goto LAB_00027330;\n  case 9:\n    if (pauxent == (internal_auxent *)0x0) {\n      pdVar5 = debug_make_struct_type(dhandle,0,0,(debug_field *)0x0);\n      goto LAB_00027300;\n    }\n    pauxent_00 = (internal_auxent *)(pauxent->x_csect).x_stab;\n    types_00 = (coff_types *)0x9;\nLAB_00027330:\n    pdVar5 = parse_coff_struct_type\n                       (abfd,symbols,types_00,(int)pauxent + 6,pauxent_00,dhandle,in_stack_ffffff94)\n    ;\nLAB_00027300:\n    ppdVar7 = coff_get_slot(types,coff_symno);\n    *ppdVar7 = pdVar5;\n    return pdVar5;\n  case 10:\n    if (pauxent == (internal_auxent *)0x0) {\n      pdVar5 = debug_make_enum_type(dhandle,(char **)0x0,(bfd_signed_vma *)0x0);\n    }\n    else {\n      iVar3 = (pauxent->x_csect).x_stab;\n      local_4c = (char **)xmalloc(0x28);\n      local_50 = (bfd_signed_vma *)xmalloc(0x28);\n      iVar11 = symbols->coff_symno;\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar3 <= iVar11) || (symbols->symcount <= symbols->symno)) goto LAB_000272d6;\n          paVar4 = symbols->syms[symbols->symno];\n          iVar11 = bfd_coff_get_syment(abfd,paVar4,&syment);\n          if (iVar11 == 0) {\n            uVar9 = bfd_get_error();\n            uVar9 = bfd_errmsg(uVar9);\n            pcVar8 = (char *)dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            non_fatal(pcVar8,uVar9);\n            pdVar5 = (debug_type)0x0;\n            goto LAB_00027300;\n          }\n          symbols->symno = symbols->symno + 1;\n          iVar11 = syment.n_numaux + 1 + symbols->coff_symno;\n          symbols->coff_symno = iVar11;\n          if (syment.n_sclass != '\x10') break;\n          if (ntype <= local_5c + 1) {\n            ntype = ntype + 10;\n            local_4c = (char **)xrealloc(local_4c,ntype * 4);\n            local_50 = (bfd_signed_vma *)xrealloc(local_50,ntype * 4);\n          }\n          local_4c[local_5c] = paVar4->name;\n          local_50[local_5c] = paVar4->value + paVar4->section->vma;\n          iVar11 = symbols->coff_symno;\n          local_5c = local_5c + 1;\n        }\n      } while (syment.n_sclass != 'f');\nLAB_000272d6:\n      local_4c[local_5c] = (char *)0x0;\n      pdVar5 = debug_make_enum_type(dhandle,local_4c,local_50);\n    }\n    goto LAB_00027300;\n  case 0xb:\n    pdVar6 = debug_make_void_type();\n    goto LAB_00027186;\n  case 0xc:\n    pdVar6 = debug_make_int_type(dhandle,1,1);\n    pcVar8 = "unsigned char";\n    break;\n  case 0xd:\n    pdVar6 = debug_make_int_type(dhandle,2,1);\n    pcVar8 = "unsigned short";\n    break;\n  case 0xe:\n    pdVar6 = debug_make_int_type(dhandle,4,1);\n    pcVar8 = "unsigned int";\n    break;\n  case 0xf:\n    pdVar6 = debug_make_int_type(dhandle,4,1);\n    pcVar8 = "unsigned long";\n    break;\n  case 0x10:\n    pdVar6 = debug_make_float_type(0xc);\n    pcVar8 = "long double";\n  }\n  pdVar6 = debug_name_type(dhandle,pcVar8,pdVar6);\nLAB_00027186:\n  types->basic[ntype] = pdVar6;\n  return pdVar6;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "coff_tdata *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "asymbol *paVar4;" type_identifier (pointer_declarator "*paVar4" * identifier) ;) (declaration "debug_type pdVar5;" type_identifier identifier ;) (declaration "debug_type_conflict pdVar6;" type_identifier identifier ;) (declaration "debug_type_conflict *ppdVar7;" type_identifier (pointer_declarator "*ppdVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "debug_type_conflict *arg_types;" type_identifier (pointer_declarator "*arg_types" * identifier) ;) (declaration "ushort *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "ushort *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "debug_type_conflict type;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "bfd_signed_vma upper;" type_identifier identifier ;) (declaration "coff_types *types_00;" type_identifier (pointer_declarator "*types_00" * identifier) ;) (declaration "internal_auxent *pauxent_00;" type_identifier (pointer_declarator "*pauxent_00" * identifier) ;) (declaration "internal_auxent *in_stack_ffffff94;" type_identifier (pointer_declarator "*in_stack_ffffff94" * identifier) ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "bfd_signed_vma *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "char **local_4c;" primitive_type (pointer_declarator "**local_4c" * (pointer_declarator "*local_4c" * identifier)) ;) (declaration "internal_syment syment;" type_identifier identifier ;) (expression_statement "pcVar2 = (abfd->tdata).coff_obj_data;" (assignment_expression "pcVar2 = (abfd->tdata).coff_obj_data" identifier = (field_expression "(abfd->tdata).coff_obj_data" (parenthesized_expression "(abfd->tdata)" ( (field_expression "abfd->tdata" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((~pcVar2->local_n_btmask & ntype) != 0) {\n    uVar14 = ntype >> ((byte)pcVar2->local_n_tshift & 0x1f);\n    uVar14 = (ntype ^ uVar14) & pcVar2->local_n_btmask ^ uVar14;\n    uVar15 = pcVar2->local_n_tmask & ntype;\n    bVar10 = (byte)pcVar2->local_n_btshft;\n    if (uVar15 == 1 << (bVar10 & 0x1f)) {\n      pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,useaux,dhandle);\n      pdVar6 = debug_make_pointer_type(dhandle,pdVar5);\n      return pdVar6;\n    }\n    if (uVar15 == 2 << (bVar10 & 0x1f)) {\n      pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,useaux,dhandle);\n      pdVar6 = debug_make_function_type(pdVar5,type,arg_types,(bfd_boolean)dhandle);\n      return pdVar6;\n    }\n    if (uVar15 != 3 << (bVar10 & 0x1f)) {\n      pcVar8 = (char *)dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      non_fatal(pcVar8,ntype);\n      return (debug_type)0x0;\n    }\n    upper = -1;\n    if (pauxent != (internal_auxent *)0x0) {\n      uVar1 = (pauxent->x_tv).x_tvran[1];\n      puVar13 = (pauxent->x_tv).x_tvran + 1;\n      if (uVar1 != 0) {\n        iVar11 = 0;\n        puVar12 = puVar13;\n        do {\n          iVar11 = iVar11 + 1;\n          puVar13 = puVar12 + 1;\n          *puVar12 = puVar12[1];\n          if (puVar12[1] == 0) break;\n          puVar12 = puVar13;\n        } while (iVar11 != 3);\n      }\n      upper = uVar1 - 1;\n      *puVar13 = 0;\n    }\n    pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,0,dhandle);\n    pdVar6 = types->basic[4];\n    if (pdVar6 == (debug_type_conflict)0x0) {\n      pdVar6 = debug_make_int_type(dhandle,4,0);\n      pdVar6 = debug_name_type(dhandle,"int",pdVar6);\n      types->basic[4] = pdVar6;\n    }\n    pdVar6 = debug_make_array_type(dhandle,pdVar5,pdVar6,0,upper,0);\n    return pdVar6;\n  }" if (parenthesized_expression "((~pcVar2->local_n_btmask & ntype) != 0)" ( (binary_expression "(~pcVar2->local_n_btmask & ntype) != 0" (parenthesized_expression "(~pcVar2->local_n_btmask & ntype)" ( (binary_expression "~pcVar2->local_n_btmask & ntype" (unary_expression "~pcVar2->local_n_btmask" ~ (field_expression "pcVar2->local_n_btmask" identifier -> field_identifier)) & identifier) )) != number_literal) )) (compound_statement "{\n    uVar14 = ntype >> ((byte)pcVar2->local_n_tshift & 0x1f);\n    uVar14 = (ntype ^ uVar14) & pcVar2->local_n_btmask ^ uVar14;\n    uVar15 = pcVar2->local_n_tmask & ntype;\n    bVar10 = (byte)pcVar2->local_n_btshft;\n    if (uVar15 == 1 << (bVar10 & 0x1f)) {\n      pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,useaux,dhandle);\n      pdVar6 = debug_make_pointer_type(dhandle,pdVar5);\n      return pdVar6;\n    }\n    if (uVar15 == 2 << (bVar10 & 0x1f)) {\n      pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,useaux,dhandle);\n      pdVar6 = debug_make_function_type(pdVar5,type,arg_types,(bfd_boolean)dhandle);\n      return pdVar6;\n    }\n    if (uVar15 != 3 << (bVar10 & 0x1f)) {\n      pcVar8 = (char *)dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      non_fatal(pcVar8,ntype);\n      return (debug_type)0x0;\n    }\n    upper = -1;\n    if (pauxent != (internal_auxent *)0x0) {\n      uVar1 = (pauxent->x_tv).x_tvran[1];\n      puVar13 = (pauxent->x_tv).x_tvran + 1;\n      if (uVar1 != 0) {\n        iVar11 = 0;\n        puVar12 = puVar13;\n        do {\n          iVar11 = iVar11 + 1;\n          puVar13 = puVar12 + 1;\n          *puVar12 = puVar12[1];\n          if (puVar12[1] == 0) break;\n          puVar12 = puVar13;\n        } while (iVar11 != 3);\n      }\n      upper = uVar1 - 1;\n      *puVar13 = 0;\n    }\n    pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,0,dhandle);\n    pdVar6 = types->basic[4];\n    if (pdVar6 == (debug_type_conflict)0x0) {\n      pdVar6 = debug_make_int_type(dhandle,4,0);\n      pdVar6 = debug_name_type(dhandle,"int",pdVar6);\n      types->basic[4] = pdVar6;\n    }\n    pdVar6 = debug_make_array_type(dhandle,pdVar5,pdVar6,0,upper,0);\n    return pdVar6;\n  }" { (expression_statement "uVar14 = ntype >> ((byte)pcVar2->local_n_tshift & 0x1f);" (assignment_expression "uVar14 = ntype >> ((byte)pcVar2->local_n_tshift & 0x1f)" identifier = (binary_expression "ntype >> ((byte)pcVar2->local_n_tshift & 0x1f)" identifier >> (parenthesized_expression "((byte)pcVar2->local_n_tshift & 0x1f)" ( (binary_expression "(byte)pcVar2->local_n_tshift & 0x1f" (cast_expression "(byte)pcVar2->local_n_tshift" ( (type_descriptor "byte" type_identifier) ) (field_expression "pcVar2->local_n_tshift" identifier -> field_identifier)) & number_literal) )))) ;) (expression_statement "uVar14 = (ntype ^ uVar14) & pcVar2->local_n_btmask ^ uVar14;" (assignment_expression "uVar14 = (ntype ^ uVar14) & pcVar2->local_n_btmask ^ uVar14" identifier = (binary_expression "(ntype ^ uVar14) & pcVar2->local_n_btmask ^ uVar14" (binary_expression "(ntype ^ uVar14) & pcVar2->local_n_btmask" (parenthesized_expression "(ntype ^ uVar14)" ( (binary_expression "ntype ^ uVar14" identifier ^ identifier) )) & (field_expression "pcVar2->local_n_btmask" identifier -> field_identifier)) ^ identifier)) ;) (expression_statement "uVar15 = pcVar2->local_n_tmask & ntype;" (assignment_expression "uVar15 = pcVar2->local_n_tmask & ntype" identifier = (binary_expression "pcVar2->local_n_tmask & ntype" (field_expression "pcVar2->local_n_tmask" identifier -> field_identifier) & identifier)) ;) (expression_statement "bVar10 = (byte)pcVar2->local_n_btshft;" (assignment_expression "bVar10 = (byte)pcVar2->local_n_btshft" identifier = (cast_expression "(byte)pcVar2->local_n_btshft" ( (type_descriptor "byte" type_identifier) ) (field_expression "pcVar2->local_n_btshft" identifier -> field_identifier))) ;) (if_statement "if (uVar15 == 1 << (bVar10 & 0x1f)) {\n      pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,useaux,dhandle);\n      pdVar6 = debug_make_pointer_type(dhandle,pdVar5);\n      return pdVar6;\n    }" if (parenthesized_expression "(uVar15 == 1 << (bVar10 & 0x1f))" ( (binary_expression "uVar15 == 1 << (bVar10 & 0x1f)" identifier == (binary_expression "1 << (bVar10 & 0x1f)" number_literal << (parenthesized_expression "(bVar10 & 0x1f)" ( (binary_expression "bVar10 & 0x1f" identifier & number_literal) )))) )) (compound_statement "{\n      pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,useaux,dhandle);\n      pdVar6 = debug_make_pointer_type(dhandle,pdVar5);\n      return pdVar6;\n    }" { (expression_statement "pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,useaux,dhandle);" (assignment_expression "pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,useaux,dhandle)" identifier = (call_expression "parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,useaux,dhandle)" identifier (argument_list "(abfd,symbols,types,coff_symno,uVar14,pauxent,useaux,dhandle)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "pdVar6 = debug_make_pointer_type(dhandle,pdVar5);" (assignment_expression "pdVar6 = debug_make_pointer_type(dhandle,pdVar5)" identifier = (call_expression "debug_make_pointer_type(dhandle,pdVar5)" identifier (argument_list "(dhandle,pdVar5)" ( identifier , identifier )))) ;) (return_statement "return pdVar6;" return identifier ;) })) (if_statement "if (uVar15 == 2 << (bVar10 & 0x1f)) {\n      pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,useaux,dhandle);\n      pdVar6 = debug_make_function_type(pdVar5,type,arg_types,(bfd_boolean)dhandle);\n      return pdVar6;\n    }" if (parenthesized_expression "(uVar15 == 2 << (bVar10 & 0x1f))" ( (binary_expression "uVar15 == 2 << (bVar10 & 0x1f)" identifier == (binary_expression "2 << (bVar10 & 0x1f)" number_literal << (parenthesized_expression "(bVar10 & 0x1f)" ( (binary_expression "bVar10 & 0x1f" identifier & number_literal) )))) )) (compound_statement "{\n      pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,useaux,dhandle);\n      pdVar6 = debug_make_function_type(pdVar5,type,arg_types,(bfd_boolean)dhandle);\n      return pdVar6;\n    }" { (expression_statement "pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,useaux,dhandle);" (assignment_expression "pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,useaux,dhandle)" identifier = (call_expression "parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,useaux,dhandle)" identifier (argument_list "(abfd,symbols,types,coff_symno,uVar14,pauxent,useaux,dhandle)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "pdVar6 = debug_make_function_type(pdVar5,type,arg_types,(bfd_boolean)dhandle);" (assignment_expression "pdVar6 = debug_make_function_type(pdVar5,type,arg_types,(bfd_boolean)dhandle)" identifier = (call_expression "debug_make_function_type(pdVar5,type,arg_types,(bfd_boolean)dhandle)" identifier (argument_list "(pdVar5,type,arg_types,(bfd_boolean)dhandle)" ( identifier , identifier , identifier , (cast_expression "(bfd_boolean)dhandle" ( (type_descriptor "bfd_boolean" type_identifier) ) identifier) )))) ;) (return_statement "return pdVar6;" return identifier ;) })) (if_statement "if (uVar15 != 3 << (bVar10 & 0x1f)) {\n      pcVar8 = (char *)dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      non_fatal(pcVar8,ntype);\n      return (debug_type)0x0;\n    }" if (parenthesized_expression "(uVar15 != 3 << (bVar10 & 0x1f))" ( (binary_expression "uVar15 != 3 << (bVar10 & 0x1f)" identifier != (binary_expression "3 << (bVar10 & 0x1f)" number_literal << (parenthesized_expression "(bVar10 & 0x1f)" ( (binary_expression "bVar10 & 0x1f" identifier & number_literal) )))) )) (compound_statement "{\n      pcVar8 = (char *)dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      non_fatal(pcVar8,ntype);\n      return (debug_type)0x0;\n    }" { (expression_statement "pcVar8 = (char *)dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"parse_coff_type: Bad type code 0x%x",5)" identifier = (cast_expression "(char *)dcgettext(0,"parse_coff_type: Bad type code 0x%x",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"parse_coff_type: Bad type code 0x%x",5)" identifier (argument_list "(0,"parse_coff_type: Bad type code 0x%x",5)" ( number_literal , (string_literal ""parse_coff_type: Bad type code 0x%x"" " string_content ") , number_literal ))))) ;) (expression_statement "non_fatal(pcVar8,ntype);" (call_expression "non_fatal(pcVar8,ntype)" identifier (argument_list "(pcVar8,ntype)" ( identifier , identifier ))) ;) (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "upper = -1;" (assignment_expression "upper = -1" identifier = number_literal) ;) (if_statement "if (pauxent != (internal_auxent *)0x0) {\n      uVar1 = (pauxent->x_tv).x_tvran[1];\n      puVar13 = (pauxent->x_tv).x_tvran + 1;\n      if (uVar1 != 0) {\n        iVar11 = 0;\n        puVar12 = puVar13;\n        do {\n          iVar11 = iVar11 + 1;\n          puVar13 = puVar12 + 1;\n          *puVar12 = puVar12[1];\n          if (puVar12[1] == 0) break;\n          puVar12 = puVar13;\n        } while (iVar11 != 3);\n      }\n      upper = uVar1 - 1;\n      *puVar13 = 0;\n    }" if (parenthesized_expression "(pauxent != (internal_auxent *)0x0)" ( (binary_expression "pauxent != (internal_auxent *)0x0" identifier != (cast_expression "(internal_auxent *)0x0" ( (type_descriptor "internal_auxent *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar1 = (pauxent->x_tv).x_tvran[1];\n      puVar13 = (pauxent->x_tv).x_tvran + 1;\n      if (uVar1 != 0) {\n        iVar11 = 0;\n        puVar12 = puVar13;\n        do {\n          iVar11 = iVar11 + 1;\n          puVar13 = puVar12 + 1;\n          *puVar12 = puVar12[1];\n          if (puVar12[1] == 0) break;\n          puVar12 = puVar13;\n        } while (iVar11 != 3);\n      }\n      upper = uVar1 - 1;\n      *puVar13 = 0;\n    }" { (expression_statement "uVar1 = (pauxent->x_tv).x_tvran[1];" (assignment_expression "uVar1 = (pauxent->x_tv).x_tvran[1]" identifier = (subscript_expression "(pauxent->x_tv).x_tvran[1]" (field_expression "(pauxent->x_tv).x_tvran" (parenthesized_expression "(pauxent->x_tv)" ( (field_expression "pauxent->x_tv" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "puVar13 = (pauxent->x_tv).x_tvran + 1;" (assignment_expression "puVar13 = (pauxent->x_tv).x_tvran + 1" identifier = (binary_expression "(pauxent->x_tv).x_tvran + 1" (field_expression "(pauxent->x_tv).x_tvran" (parenthesized_expression "(pauxent->x_tv)" ( (field_expression "pauxent->x_tv" identifier -> field_identifier) )) . field_identifier) + number_literal)) ;) (if_statement "if (uVar1 != 0) {\n        iVar11 = 0;\n        puVar12 = puVar13;\n        do {\n          iVar11 = iVar11 + 1;\n          puVar13 = puVar12 + 1;\n          *puVar12 = puVar12[1];\n          if (puVar12[1] == 0) break;\n          puVar12 = puVar13;\n        } while (iVar11 != 3);\n      }" if (parenthesized_expression "(uVar1 != 0)" ( (binary_expression "uVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar11 = 0;\n        puVar12 = puVar13;\n        do {\n          iVar11 = iVar11 + 1;\n          puVar13 = puVar12 + 1;\n          *puVar12 = puVar12[1];\n          if (puVar12[1] == 0) break;\n          puVar12 = puVar13;\n        } while (iVar11 != 3);\n      }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" identifier = identifier) ;) (do_statement "do {\n          iVar11 = iVar11 + 1;\n          puVar13 = puVar12 + 1;\n          *puVar12 = puVar12[1];\n          if (puVar12[1] == 0) break;\n          puVar12 = puVar13;\n        } while (iVar11 != 3);" do (compound_statement "{\n          iVar11 = iVar11 + 1;\n          puVar13 = puVar12 + 1;\n          *puVar12 = puVar12[1];\n          if (puVar12[1] == 0) break;\n          puVar12 = puVar13;\n        }" { (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "puVar13 = puVar12 + 1;" (assignment_expression "puVar13 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) (expression_statement "*puVar12 = puVar12[1];" (assignment_expression "*puVar12 = puVar12[1]" (pointer_expression "*puVar12" * identifier) = (subscript_expression "puVar12[1]" identifier [ number_literal ])) ;) (if_statement "if (puVar12[1] == 0) break;" if (parenthesized_expression "(puVar12[1] == 0)" ( (binary_expression "puVar12[1] == 0" (subscript_expression "puVar12[1]" identifier [ number_literal ]) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" identifier = identifier) ;) }) while (parenthesized_expression "(iVar11 != 3)" ( (binary_expression "iVar11 != 3" identifier != number_literal) )) ;) })) (expression_statement "upper = uVar1 - 1;" (assignment_expression "upper = uVar1 - 1" identifier = (binary_expression "uVar1 - 1" identifier - number_literal)) ;) (expression_statement "*puVar13 = 0;" (assignment_expression "*puVar13 = 0" (pointer_expression "*puVar13" * identifier) = number_literal) ;) })) (expression_statement "pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,0,dhandle);" (assignment_expression "pdVar5 = parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,0,dhandle)" identifier = (call_expression "parse_coff_type(abfd,symbols,types,coff_symno,uVar14,pauxent,0,dhandle)" identifier (argument_list "(abfd,symbols,types,coff_symno,uVar14,pauxent,0,dhandle)" ( identifier , identifier , identifier , identifier , identifier , identifier , number_literal , identifier )))) ;) (expression_statement "pdVar6 = types->basic[4];" (assignment_expression "pdVar6 = types->basic[4]" identifier = (subscript_expression "types->basic[4]" (field_expression "types->basic" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (pdVar6 == (debug_type_conflict)0x0) {\n      pdVar6 = debug_make_int_type(dhandle,4,0);\n      pdVar6 = debug_name_type(dhandle,"int",pdVar6);\n      types->basic[4] = pdVar6;\n    }" if (parenthesized_expression "(pdVar6 == (debug_type_conflict)0x0)" ( (binary_expression "pdVar6 == (debug_type_conflict)0x0" identifier == (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) )) (compound_statement "{\n      pdVar6 = debug_make_int_type(dhandle,4,0);\n      pdVar6 = debug_name_type(dhandle,"int",pdVar6);\n      types->basic[4] = pdVar6;\n    }" { (expression_statement "pdVar6 = debug_make_int_type(dhandle,4,0);" (assignment_expression "pdVar6 = debug_make_int_type(dhandle,4,0)" identifier = (call_expression "debug_make_int_type(dhandle,4,0)" identifier (argument_list "(dhandle,4,0)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pdVar6 = debug_name_type(dhandle,"int",pdVar6);" (assignment_expression "pdVar6 = debug_name_type(dhandle,"int",pdVar6)" identifier = (call_expression "debug_name_type(dhandle,"int",pdVar6)" identifier (argument_list "(dhandle,"int",pdVar6)" ( identifier , (string_literal ""int"" " string_content ") , identifier )))) ;) (expression_statement "types->basic[4] = pdVar6;" (assignment_expression "types->basic[4] = pdVar6" (subscript_expression "types->basic[4]" (field_expression "types->basic" identifier -> field_identifier) [ number_literal ]) = identifier) ;) })) (expression_statement "pdVar6 = debug_make_array_type(dhandle,pdVar5,pdVar6,0,upper,0);" (assignment_expression "pdVar6 = debug_make_array_type(dhandle,pdVar5,pdVar6,0,upper,0)" identifier = (call_expression "debug_make_array_type(dhandle,pdVar5,pdVar6,0,upper,0)" identifier (argument_list "(dhandle,pdVar5,pdVar6,0,upper,0)" ( identifier , identifier , identifier , number_literal , identifier , number_literal )))) ;) (return_statement "return pdVar6;" return identifier ;) })) (if_statement "if ((pauxent != (internal_auxent *)0x0) && (0 < (pauxent->x_scn).x_scnlen)) {\n    ppdVar7 = coff_get_slot(types,(pauxent->x_scn).x_scnlen);\n    if (*ppdVar7 != (debug_type)0x0) {\n      return *ppdVar7;\n    }\n    pdVar6 = debug_make_indirect_type(dhandle,ppdVar7,(char *)0x0);\n    return pdVar6;\n  }" if (parenthesized_expression "((pauxent != (internal_auxent *)0x0) && (0 < (pauxent->x_scn).x_scnlen))" ( (binary_expression "(pauxent != (internal_auxent *)0x0) && (0 < (pauxent->x_scn).x_scnlen)" (parenthesized_expression "(pauxent != (internal_auxent *)0x0)" ( (binary_expression "pauxent != (internal_auxent *)0x0" identifier != (cast_expression "(internal_auxent *)0x0" ( (type_descriptor "internal_auxent *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(0 < (pauxent->x_scn).x_scnlen)" ( (binary_expression "0 < (pauxent->x_scn).x_scnlen" number_literal < (field_expression "(pauxent->x_scn).x_scnlen" (parenthesized_expression "(pauxent->x_scn)" ( (field_expression "pauxent->x_scn" identifier -> field_identifier) )) . field_identifier)) ))) )) (compound_statement "{\n    ppdVar7 = coff_get_slot(types,(pauxent->x_scn).x_scnlen);\n    if (*ppdVar7 != (debug_type)0x0) {\n      return *ppdVar7;\n    }\n    pdVar6 = debug_make_indirect_type(dhandle,ppdVar7,(char *)0x0);\n    return pdVar6;\n  }" { (expression_statement "ppdVar7 = coff_get_slot(types,(pauxent->x_scn).x_scnlen);" (assignment_expression "ppdVar7 = coff_get_slot(types,(pauxent->x_scn).x_scnlen)" identifier = (call_expression "coff_get_slot(types,(pauxent->x_scn).x_scnlen)" identifier (argument_list "(types,(pauxent->x_scn).x_scnlen)" ( identifier , (field_expression "(pauxent->x_scn).x_scnlen" (parenthesized_expression "(pauxent->x_scn)" ( (field_expression "pauxent->x_scn" identifier -> field_identifier) )) . field_identifier) )))) ;) (if_statement "if (*ppdVar7 != (debug_type)0x0) {\n      return *ppdVar7;\n    }" if (parenthesized_expression "(*ppdVar7 != (debug_type)0x0)" ( (binary_expression "*ppdVar7 != (debug_type)0x0" (pointer_expression "*ppdVar7" * identifier) != (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (compound_statement "{\n      return *ppdVar7;\n    }" { (return_statement "return *ppdVar7;" return (pointer_expression "*ppdVar7" * identifier) ;) })) (expression_statement "pdVar6 = debug_make_indirect_type(dhandle,ppdVar7,(char *)0x0);" (assignment_expression "pdVar6 = debug_make_indirect_type(dhandle,ppdVar7,(char *)0x0)" identifier = (call_expression "debug_make_indirect_type(dhandle,ppdVar7,(char *)0x0)" identifier (argument_list "(dhandle,ppdVar7,(char *)0x0)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (return_statement "return pdVar6;" return identifier ;) })) (if_statement "if (useaux == 0) {\n    pauxent = (internal_auxent *)0x0;\n  }" if (parenthesized_expression "(useaux == 0)" ( (binary_expression "useaux == 0" identifier == number_literal) )) (compound_statement "{\n    pauxent = (internal_auxent *)0x0;\n  }" { (expression_statement "pauxent = (internal_auxent *)0x0;" (assignment_expression "pauxent = (internal_auxent *)0x0" identifier = (cast_expression "(internal_auxent *)0x0" ( (type_descriptor "internal_auxent *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (if_statement "if (0x10 < (uint)ntype) {\n    pdVar6 = debug_make_void_type();\n    return pdVar6;\n  }" if (parenthesized_expression "(0x10 < (uint)ntype)" ( (binary_expression "0x10 < (uint)ntype" number_literal < (cast_expression "(uint)ntype" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n    pdVar6 = debug_make_void_type();\n    return pdVar6;\n  }" { (expression_statement "pdVar6 = debug_make_void_type();" (assignment_expression "pdVar6 = debug_make_void_type()" identifier = (call_expression "debug_make_void_type()" identifier (argument_list "()" ( )))) ;) (return_statement "return pdVar6;" return identifier ;) })) (if_statement "if (types->basic[ntype] != (debug_type)0x0) {\n    return types->basic[ntype];\n  }" if (parenthesized_expression "(types->basic[ntype] != (debug_type)0x0)" ( (binary_expression "types->basic[ntype] != (debug_type)0x0" (subscript_expression "types->basic[ntype]" (field_expression "types->basic" identifier -> field_identifier) [ identifier ]) != (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (compound_statement "{\n    return types->basic[ntype];\n  }" { (return_statement "return types->basic[ntype];" return (subscript_expression "types->basic[ntype]" (field_expression "types->basic" identifier -> field_identifier) [ identifier ]) ;) })) (switch_statement "switch(ntype) {\n  default:\n    pdVar6 = debug_make_void_type();\n    pcVar8 = "void";\n    break;\n  case 2:\n    pdVar6 = debug_make_int_type(dhandle,1,0);\n    pcVar8 = "char";\n    break;\n  case 3:\n    pdVar6 = debug_make_int_type(dhandle,2,0);\n    pcVar8 = "short";\n    break;\n  case 4:\n    pdVar6 = debug_make_int_type(dhandle,4,0);\n    pcVar8 = "int";\n    break;\n  case 5:\n    pdVar6 = debug_make_int_type(dhandle,4,0);\n    pcVar8 = "long";\n    break;\n  case 6:\n    pdVar6 = debug_make_float_type(4);\n    pcVar8 = "float";\n    break;\n  case 7:\n    pdVar6 = debug_make_float_type(8);\n    pcVar8 = "double";\n    break;\n  case 8:\n    if (pauxent == (internal_auxent *)0x0) {\n      pdVar5 = debug_make_struct_type(dhandle,1,0,(debug_field *)0x0);\n      goto LAB_00027300;\n    }\n    pauxent_00 = (internal_auxent *)(pauxent->x_csect).x_stab;\n    types_00 = (coff_types *)0x8;\n    goto LAB_00027330;\n  case 9:\n    if (pauxent == (internal_auxent *)0x0) {\n      pdVar5 = debug_make_struct_type(dhandle,0,0,(debug_field *)0x0);\n      goto LAB_00027300;\n    }\n    pauxent_00 = (internal_auxent *)(pauxent->x_csect).x_stab;\n    types_00 = (coff_types *)0x9;\nLAB_00027330:\n    pdVar5 = parse_coff_struct_type\n                       (abfd,symbols,types_00,(int)pauxent + 6,pauxent_00,dhandle,in_stack_ffffff94)\n    ;\nLAB_00027300:\n    ppdVar7 = coff_get_slot(types,coff_symno);\n    *ppdVar7 = pdVar5;\n    return pdVar5;\n  case 10:\n    if (pauxent == (internal_auxent *)0x0) {\n      pdVar5 = debug_make_enum_type(dhandle,(char **)0x0,(bfd_signed_vma *)0x0);\n    }\n    else {\n      iVar3 = (pauxent->x_csect).x_stab;\n      local_4c = (char **)xmalloc(0x28);\n      local_50 = (bfd_signed_vma *)xmalloc(0x28);\n      iVar11 = symbols->coff_symno;\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar3 <= iVar11) || (symbols->symcount <= symbols->symno)) goto LAB_000272d6;\n          paVar4 = symbols->syms[symbols->symno];\n          iVar11 = bfd_coff_get_syment(abfd,paVar4,&syment);\n          if (iVar11 == 0) {\n            uVar9 = bfd_get_error();\n            uVar9 = bfd_errmsg(uVar9);\n            pcVar8 = (char *)dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            non_fatal(pcVar8,uVar9);\n            pdVar5 = (debug_type)0x0;\n            goto LAB_00027300;\n          }\n          symbols->symno = symbols->symno + 1;\n          iVar11 = syment.n_numaux + 1 + symbols->coff_symno;\n          symbols->coff_symno = iVar11;\n          if (syment.n_sclass != '\x10') break;\n          if (ntype <= local_5c + 1) {\n            ntype = ntype + 10;\n            local_4c = (char **)xrealloc(local_4c,ntype * 4);\n            local_50 = (bfd_signed_vma *)xrealloc(local_50,ntype * 4);\n          }\n          local_4c[local_5c] = paVar4->name;\n          local_50[local_5c] = paVar4->value + paVar4->section->vma;\n          iVar11 = symbols->coff_symno;\n          local_5c = local_5c + 1;\n        }\n      } while (syment.n_sclass != 'f');\nLAB_000272d6:\n      local_4c[local_5c] = (char *)0x0;\n      pdVar5 = debug_make_enum_type(dhandle,local_4c,local_50);\n    }\n    goto LAB_00027300;\n  case 0xb:\n    pdVar6 = debug_make_void_type();\n    goto LAB_00027186;\n  case 0xc:\n    pdVar6 = debug_make_int_type(dhandle,1,1);\n    pcVar8 = "unsigned char";\n    break;\n  case 0xd:\n    pdVar6 = debug_make_int_type(dhandle,2,1);\n    pcVar8 = "unsigned short";\n    break;\n  case 0xe:\n    pdVar6 = debug_make_int_type(dhandle,4,1);\n    pcVar8 = "unsigned int";\n    break;\n  case 0xf:\n    pdVar6 = debug_make_int_type(dhandle,4,1);\n    pcVar8 = "unsigned long";\n    break;\n  case 0x10:\n    pdVar6 = debug_make_float_type(0xc);\n    pcVar8 = "long double";\n  }" switch (parenthesized_expression "(ntype)" ( identifier )) (compound_statement "{\n  default:\n    pdVar6 = debug_make_void_type();\n    pcVar8 = "void";\n    break;\n  case 2:\n    pdVar6 = debug_make_int_type(dhandle,1,0);\n    pcVar8 = "char";\n    break;\n  case 3:\n    pdVar6 = debug_make_int_type(dhandle,2,0);\n    pcVar8 = "short";\n    break;\n  case 4:\n    pdVar6 = debug_make_int_type(dhandle,4,0);\n    pcVar8 = "int";\n    break;\n  case 5:\n    pdVar6 = debug_make_int_type(dhandle,4,0);\n    pcVar8 = "long";\n    break;\n  case 6:\n    pdVar6 = debug_make_float_type(4);\n    pcVar8 = "float";\n    break;\n  case 7:\n    pdVar6 = debug_make_float_type(8);\n    pcVar8 = "double";\n    break;\n  case 8:\n    if (pauxent == (internal_auxent *)0x0) {\n      pdVar5 = debug_make_struct_type(dhandle,1,0,(debug_field *)0x0);\n      goto LAB_00027300;\n    }\n    pauxent_00 = (internal_auxent *)(pauxent->x_csect).x_stab;\n    types_00 = (coff_types *)0x8;\n    goto LAB_00027330;\n  case 9:\n    if (pauxent == (internal_auxent *)0x0) {\n      pdVar5 = debug_make_struct_type(dhandle,0,0,(debug_field *)0x0);\n      goto LAB_00027300;\n    }\n    pauxent_00 = (internal_auxent *)(pauxent->x_csect).x_stab;\n    types_00 = (coff_types *)0x9;\nLAB_00027330:\n    pdVar5 = parse_coff_struct_type\n                       (abfd,symbols,types_00,(int)pauxent + 6,pauxent_00,dhandle,in_stack_ffffff94)\n    ;\nLAB_00027300:\n    ppdVar7 = coff_get_slot(types,coff_symno);\n    *ppdVar7 = pdVar5;\n    return pdVar5;\n  case 10:\n    if (pauxent == (internal_auxent *)0x0) {\n      pdVar5 = debug_make_enum_type(dhandle,(char **)0x0,(bfd_signed_vma *)0x0);\n    }\n    else {\n      iVar3 = (pauxent->x_csect).x_stab;\n      local_4c = (char **)xmalloc(0x28);\n      local_50 = (bfd_signed_vma *)xmalloc(0x28);\n      iVar11 = symbols->coff_symno;\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar3 <= iVar11) || (symbols->symcount <= symbols->symno)) goto LAB_000272d6;\n          paVar4 = symbols->syms[symbols->symno];\n          iVar11 = bfd_coff_get_syment(abfd,paVar4,&syment);\n          if (iVar11 == 0) {\n            uVar9 = bfd_get_error();\n            uVar9 = bfd_errmsg(uVar9);\n            pcVar8 = (char *)dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            non_fatal(pcVar8,uVar9);\n            pdVar5 = (debug_type)0x0;\n            goto LAB_00027300;\n          }\n          symbols->symno = symbols->symno + 1;\n          iVar11 = syment.n_numaux + 1 + symbols->coff_symno;\n          symbols->coff_symno = iVar11;\n          if (syment.n_sclass != '\x10') break;\n          if (ntype <= local_5c + 1) {\n            ntype = ntype + 10;\n            local_4c = (char **)xrealloc(local_4c,ntype * 4);\n            local_50 = (bfd_signed_vma *)xrealloc(local_50,ntype * 4);\n          }\n          local_4c[local_5c] = paVar4->name;\n          local_50[local_5c] = paVar4->value + paVar4->section->vma;\n          iVar11 = symbols->coff_symno;\n          local_5c = local_5c + 1;\n        }\n      } while (syment.n_sclass != 'f');\nLAB_000272d6:\n      local_4c[local_5c] = (char *)0x0;\n      pdVar5 = debug_make_enum_type(dhandle,local_4c,local_50);\n    }\n    goto LAB_00027300;\n  case 0xb:\n    pdVar6 = debug_make_void_type();\n    goto LAB_00027186;\n  case 0xc:\n    pdVar6 = debug_make_int_type(dhandle,1,1);\n    pcVar8 = "unsigned char";\n    break;\n  case 0xd:\n    pdVar6 = debug_make_int_type(dhandle,2,1);\n    pcVar8 = "unsigned short";\n    break;\n  case 0xe:\n    pdVar6 = debug_make_int_type(dhandle,4,1);\n    pcVar8 = "unsigned int";\n    break;\n  case 0xf:\n    pdVar6 = debug_make_int_type(dhandle,4,1);\n    pcVar8 = "unsigned long";\n    break;\n  case 0x10:\n    pdVar6 = debug_make_float_type(0xc);\n    pcVar8 = "long double";\n  }" { (case_statement "default:\n    pdVar6 = debug_make_void_type();\n    pcVar8 = "void";\n    break;" default : (expression_statement "pdVar6 = debug_make_void_type();" (assignment_expression "pdVar6 = debug_make_void_type()" identifier = (call_expression "debug_make_void_type()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar8 = "void";" (assignment_expression "pcVar8 = "void"" identifier = (string_literal ""void"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n    pdVar6 = debug_make_int_type(dhandle,1,0);\n    pcVar8 = "char";\n    break;" case number_literal : (expression_statement "pdVar6 = debug_make_int_type(dhandle,1,0);" (assignment_expression "pdVar6 = debug_make_int_type(dhandle,1,0)" identifier = (call_expression "debug_make_int_type(dhandle,1,0)" identifier (argument_list "(dhandle,1,0)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar8 = "char";" (assignment_expression "pcVar8 = "char"" identifier = (string_literal ""char"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n    pdVar6 = debug_make_int_type(dhandle,2,0);\n    pcVar8 = "short";\n    break;" case number_literal : (expression_statement "pdVar6 = debug_make_int_type(dhandle,2,0);" (assignment_expression "pdVar6 = debug_make_int_type(dhandle,2,0)" identifier = (call_expression "debug_make_int_type(dhandle,2,0)" identifier (argument_list "(dhandle,2,0)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar8 = "short";" (assignment_expression "pcVar8 = "short"" identifier = (string_literal ""short"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    pdVar6 = debug_make_int_type(dhandle,4,0);\n    pcVar8 = "int";\n    break;" case number_literal : (expression_statement "pdVar6 = debug_make_int_type(dhandle,4,0);" (assignment_expression "pdVar6 = debug_make_int_type(dhandle,4,0)" identifier = (call_expression "debug_make_int_type(dhandle,4,0)" identifier (argument_list "(dhandle,4,0)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar8 = "int";" (assignment_expression "pcVar8 = "int"" identifier = (string_literal ""int"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n    pdVar6 = debug_make_int_type(dhandle,4,0);\n    pcVar8 = "long";\n    break;" case number_literal : (expression_statement "pdVar6 = debug_make_int_type(dhandle,4,0);" (assignment_expression "pdVar6 = debug_make_int_type(dhandle,4,0)" identifier = (call_expression "debug_make_int_type(dhandle,4,0)" identifier (argument_list "(dhandle,4,0)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar8 = "long";" (assignment_expression "pcVar8 = "long"" identifier = (string_literal ""long"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n    pdVar6 = debug_make_float_type(4);\n    pcVar8 = "float";\n    break;" case number_literal : (expression_statement "pdVar6 = debug_make_float_type(4);" (assignment_expression "pdVar6 = debug_make_float_type(4)" identifier = (call_expression "debug_make_float_type(4)" identifier (argument_list "(4)" ( number_literal )))) ;) (expression_statement "pcVar8 = "float";" (assignment_expression "pcVar8 = "float"" identifier = (string_literal ""float"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 7:\n    pdVar6 = debug_make_float_type(8);\n    pcVar8 = "double";\n    break;" case number_literal : (expression_statement "pdVar6 = debug_make_float_type(8);" (assignment_expression "pdVar6 = debug_make_float_type(8)" identifier = (call_expression "debug_make_float_type(8)" identifier (argument_list "(8)" ( number_literal )))) ;) (expression_statement "pcVar8 = "double";" (assignment_expression "pcVar8 = "double"" identifier = (string_literal ""double"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n    if (pauxent == (internal_auxent *)0x0) {\n      pdVar5 = debug_make_struct_type(dhandle,1,0,(debug_field *)0x0);\n      goto LAB_00027300;\n    }\n    pauxent_00 = (internal_auxent *)(pauxent->x_csect).x_stab;\n    types_00 = (coff_types *)0x8;\n    goto LAB_00027330;" case number_literal : (if_statement "if (pauxent == (internal_auxent *)0x0) {\n      pdVar5 = debug_make_struct_type(dhandle,1,0,(debug_field *)0x0);\n      goto LAB_00027300;\n    }" if (parenthesized_expression "(pauxent == (internal_auxent *)0x0)" ( (binary_expression "pauxent == (internal_auxent *)0x0" identifier == (cast_expression "(internal_auxent *)0x0" ( (type_descriptor "internal_auxent *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pdVar5 = debug_make_struct_type(dhandle,1,0,(debug_field *)0x0);\n      goto LAB_00027300;\n    }" { (expression_statement "pdVar5 = debug_make_struct_type(dhandle,1,0,(debug_field *)0x0);" (assignment_expression "pdVar5 = debug_make_struct_type(dhandle,1,0,(debug_field *)0x0)" identifier = (call_expression "debug_make_struct_type(dhandle,1,0,(debug_field *)0x0)" identifier (argument_list "(dhandle,1,0,(debug_field *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(debug_field *)0x0" ( (type_descriptor "debug_field *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (goto_statement "goto LAB_00027300;" goto statement_identifier ;) })) (expression_statement "pauxent_00 = (internal_auxent *)(pauxent->x_csect).x_stab;" (assignment_expression "pauxent_00 = (internal_auxent *)(pauxent->x_csect).x_stab" identifier = (cast_expression "(internal_auxent *)(pauxent->x_csect).x_stab" ( (type_descriptor "internal_auxent *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pauxent->x_csect).x_stab" (parenthesized_expression "(pauxent->x_csect)" ( (field_expression "pauxent->x_csect" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "types_00 = (coff_types *)0x8;" (assignment_expression "types_00 = (coff_types *)0x8" identifier = (cast_expression "(coff_types *)0x8" ( (type_descriptor "coff_types *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00027330;" goto statement_identifier ;)) (case_statement "case 9:\n    if (pauxent == (internal_auxent *)0x0) {\n      pdVar5 = debug_make_struct_type(dhandle,0,0,(debug_field *)0x0);\n      goto LAB_00027300;\n    }\n    pauxent_00 = (internal_auxent *)(pauxent->x_csect).x_stab;\n    types_00 = (coff_types *)0x9;\nLAB_00027330:\n    pdVar5 = parse_coff_struct_type\n                       (abfd,symbols,types_00,(int)pauxent + 6,pauxent_00,dhandle,in_stack_ffffff94)\n    ;\nLAB_00027300:\n    ppdVar7 = coff_get_slot(types,coff_symno);\n    *ppdVar7 = pdVar5;\n    return pdVar5;" case number_literal : (if_statement "if (pauxent == (internal_auxent *)0x0) {\n      pdVar5 = debug_make_struct_type(dhandle,0,0,(debug_field *)0x0);\n      goto LAB_00027300;\n    }" if (parenthesized_expression "(pauxent == (internal_auxent *)0x0)" ( (binary_expression "pauxent == (internal_auxent *)0x0" identifier == (cast_expression "(internal_auxent *)0x0" ( (type_descriptor "internal_auxent *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pdVar5 = debug_make_struct_type(dhandle,0,0,(debug_field *)0x0);\n      goto LAB_00027300;\n    }" { (expression_statement "pdVar5 = debug_make_struct_type(dhandle,0,0,(debug_field *)0x0);" (assignment_expression "pdVar5 = debug_make_struct_type(dhandle,0,0,(debug_field *)0x0)" identifier = (call_expression "debug_make_struct_type(dhandle,0,0,(debug_field *)0x0)" identifier (argument_list "(dhandle,0,0,(debug_field *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(debug_field *)0x0" ( (type_descriptor "debug_field *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (goto_statement "goto LAB_00027300;" goto statement_identifier ;) })) (expression_statement "pauxent_00 = (internal_auxent *)(pauxent->x_csect).x_stab;" (assignment_expression "pauxent_00 = (internal_auxent *)(pauxent->x_csect).x_stab" identifier = (cast_expression "(internal_auxent *)(pauxent->x_csect).x_stab" ( (type_descriptor "internal_auxent *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pauxent->x_csect).x_stab" (parenthesized_expression "(pauxent->x_csect)" ( (field_expression "pauxent->x_csect" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "types_00 = (coff_types *)0x9;" (assignment_expression "types_00 = (coff_types *)0x9" identifier = (cast_expression "(coff_types *)0x9" ( (type_descriptor "coff_types *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00027330:\n    pdVar5 = parse_coff_struct_type\n                       (abfd,symbols,types_00,(int)pauxent + 6,pauxent_00,dhandle,in_stack_ffffff94)\n    ;" statement_identifier : (expression_statement "pdVar5 = parse_coff_struct_type\n                       (abfd,symbols,types_00,(int)pauxent + 6,pauxent_00,dhandle,in_stack_ffffff94)\n    ;" (assignment_expression "pdVar5 = parse_coff_struct_type\n                       (abfd,symbols,types_00,(int)pauxent + 6,pauxent_00,dhandle,in_stack_ffffff94)" identifier = (call_expression "parse_coff_struct_type\n                       (abfd,symbols,types_00,(int)pauxent + 6,pauxent_00,dhandle,in_stack_ffffff94)" identifier (argument_list "(abfd,symbols,types_00,(int)pauxent + 6,pauxent_00,dhandle,in_stack_ffffff94)" ( identifier , identifier , identifier , (binary_expression "(int)pauxent + 6" (cast_expression "(int)pauxent" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , identifier , identifier , identifier )))) ;)) (labeled_statement "LAB_00027300:\n    ppdVar7 = coff_get_slot(types,coff_symno);" statement_identifier : (expression_statement "ppdVar7 = coff_get_slot(types,coff_symno);" (assignment_expression "ppdVar7 = coff_get_slot(types,coff_symno)" identifier = (call_expression "coff_get_slot(types,coff_symno)" identifier (argument_list "(types,coff_symno)" ( identifier , identifier )))) ;)) (expression_statement "*ppdVar7 = pdVar5;" (assignment_expression "*ppdVar7 = pdVar5" (pointer_expression "*ppdVar7" * identifier) = identifier) ;) (return_statement "return pdVar5;" return identifier ;)) (case_statement "case 10:\n    if (pauxent == (internal_auxent *)0x0) {\n      pdVar5 = debug_make_enum_type(dhandle,(char **)0x0,(bfd_signed_vma *)0x0);\n    }\n    else {\n      iVar3 = (pauxent->x_csect).x_stab;\n      local_4c = (char **)xmalloc(0x28);\n      local_50 = (bfd_signed_vma *)xmalloc(0x28);\n      iVar11 = symbols->coff_symno;\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar3 <= iVar11) || (symbols->symcount <= symbols->symno)) goto LAB_000272d6;\n          paVar4 = symbols->syms[symbols->symno];\n          iVar11 = bfd_coff_get_syment(abfd,paVar4,&syment);\n          if (iVar11 == 0) {\n            uVar9 = bfd_get_error();\n            uVar9 = bfd_errmsg(uVar9);\n            pcVar8 = (char *)dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            non_fatal(pcVar8,uVar9);\n            pdVar5 = (debug_type)0x0;\n            goto LAB_00027300;\n          }\n          symbols->symno = symbols->symno + 1;\n          iVar11 = syment.n_numaux + 1 + symbols->coff_symno;\n          symbols->coff_symno = iVar11;\n          if (syment.n_sclass != '\x10') break;\n          if (ntype <= local_5c + 1) {\n            ntype = ntype + 10;\n            local_4c = (char **)xrealloc(local_4c,ntype * 4);\n            local_50 = (bfd_signed_vma *)xrealloc(local_50,ntype * 4);\n          }\n          local_4c[local_5c] = paVar4->name;\n          local_50[local_5c] = paVar4->value + paVar4->section->vma;\n          iVar11 = symbols->coff_symno;\n          local_5c = local_5c + 1;\n        }\n      } while (syment.n_sclass != 'f');\nLAB_000272d6:\n      local_4c[local_5c] = (char *)0x0;\n      pdVar5 = debug_make_enum_type(dhandle,local_4c,local_50);\n    }\n    goto LAB_00027300;" case number_literal : (if_statement "if (pauxent == (internal_auxent *)0x0) {\n      pdVar5 = debug_make_enum_type(dhandle,(char **)0x0,(bfd_signed_vma *)0x0);\n    }\n    else {\n      iVar3 = (pauxent->x_csect).x_stab;\n      local_4c = (char **)xmalloc(0x28);\n      local_50 = (bfd_signed_vma *)xmalloc(0x28);\n      iVar11 = symbols->coff_symno;\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar3 <= iVar11) || (symbols->symcount <= symbols->symno)) goto LAB_000272d6;\n          paVar4 = symbols->syms[symbols->symno];\n          iVar11 = bfd_coff_get_syment(abfd,paVar4,&syment);\n          if (iVar11 == 0) {\n            uVar9 = bfd_get_error();\n            uVar9 = bfd_errmsg(uVar9);\n            pcVar8 = (char *)dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            non_fatal(pcVar8,uVar9);\n            pdVar5 = (debug_type)0x0;\n            goto LAB_00027300;\n          }\n          symbols->symno = symbols->symno + 1;\n          iVar11 = syment.n_numaux + 1 + symbols->coff_symno;\n          symbols->coff_symno = iVar11;\n          if (syment.n_sclass != '\x10') break;\n          if (ntype <= local_5c + 1) {\n            ntype = ntype + 10;\n            local_4c = (char **)xrealloc(local_4c,ntype * 4);\n            local_50 = (bfd_signed_vma *)xrealloc(local_50,ntype * 4);\n          }\n          local_4c[local_5c] = paVar4->name;\n          local_50[local_5c] = paVar4->value + paVar4->section->vma;\n          iVar11 = symbols->coff_symno;\n          local_5c = local_5c + 1;\n        }\n      } while (syment.n_sclass != 'f');\nLAB_000272d6:\n      local_4c[local_5c] = (char *)0x0;\n      pdVar5 = debug_make_enum_type(dhandle,local_4c,local_50);\n    }" if (parenthesized_expression "(pauxent == (internal_auxent *)0x0)" ( (binary_expression "pauxent == (internal_auxent *)0x0" identifier == (cast_expression "(internal_auxent *)0x0" ( (type_descriptor "internal_auxent *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pdVar5 = debug_make_enum_type(dhandle,(char **)0x0,(bfd_signed_vma *)0x0);\n    }" { (expression_statement "pdVar5 = debug_make_enum_type(dhandle,(char **)0x0,(bfd_signed_vma *)0x0);" (assignment_expression "pdVar5 = debug_make_enum_type(dhandle,(char **)0x0,(bfd_signed_vma *)0x0)" identifier = (call_expression "debug_make_enum_type(dhandle,(char **)0x0,(bfd_signed_vma *)0x0)" identifier (argument_list "(dhandle,(char **)0x0,(bfd_signed_vma *)0x0)" ( identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(bfd_signed_vma *)0x0" ( (type_descriptor "bfd_signed_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) }) (else_clause "else {\n      iVar3 = (pauxent->x_csect).x_stab;\n      local_4c = (char **)xmalloc(0x28);\n      local_50 = (bfd_signed_vma *)xmalloc(0x28);\n      iVar11 = symbols->coff_symno;\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar3 <= iVar11) || (symbols->symcount <= symbols->symno)) goto LAB_000272d6;\n          paVar4 = symbols->syms[symbols->symno];\n          iVar11 = bfd_coff_get_syment(abfd,paVar4,&syment);\n          if (iVar11 == 0) {\n            uVar9 = bfd_get_error();\n            uVar9 = bfd_errmsg(uVar9);\n            pcVar8 = (char *)dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            non_fatal(pcVar8,uVar9);\n            pdVar5 = (debug_type)0x0;\n            goto LAB_00027300;\n          }\n          symbols->symno = symbols->symno + 1;\n          iVar11 = syment.n_numaux + 1 + symbols->coff_symno;\n          symbols->coff_symno = iVar11;\n          if (syment.n_sclass != '\x10') break;\n          if (ntype <= local_5c + 1) {\n            ntype = ntype + 10;\n            local_4c = (char **)xrealloc(local_4c,ntype * 4);\n            local_50 = (bfd_signed_vma *)xrealloc(local_50,ntype * 4);\n          }\n          local_4c[local_5c] = paVar4->name;\n          local_50[local_5c] = paVar4->value + paVar4->section->vma;\n          iVar11 = symbols->coff_symno;\n          local_5c = local_5c + 1;\n        }\n      } while (syment.n_sclass != 'f');\nLAB_000272d6:\n      local_4c[local_5c] = (char *)0x0;\n      pdVar5 = debug_make_enum_type(dhandle,local_4c,local_50);\n    }" else (compound_statement "{\n      iVar3 = (pauxent->x_csect).x_stab;\n      local_4c = (char **)xmalloc(0x28);\n      local_50 = (bfd_signed_vma *)xmalloc(0x28);\n      iVar11 = symbols->coff_symno;\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar3 <= iVar11) || (symbols->symcount <= symbols->symno)) goto LAB_000272d6;\n          paVar4 = symbols->syms[symbols->symno];\n          iVar11 = bfd_coff_get_syment(abfd,paVar4,&syment);\n          if (iVar11 == 0) {\n            uVar9 = bfd_get_error();\n            uVar9 = bfd_errmsg(uVar9);\n            pcVar8 = (char *)dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            non_fatal(pcVar8,uVar9);\n            pdVar5 = (debug_type)0x0;\n            goto LAB_00027300;\n          }\n          symbols->symno = symbols->symno + 1;\n          iVar11 = syment.n_numaux + 1 + symbols->coff_symno;\n          symbols->coff_symno = iVar11;\n          if (syment.n_sclass != '\x10') break;\n          if (ntype <= local_5c + 1) {\n            ntype = ntype + 10;\n            local_4c = (char **)xrealloc(local_4c,ntype * 4);\n            local_50 = (bfd_signed_vma *)xrealloc(local_50,ntype * 4);\n          }\n          local_4c[local_5c] = paVar4->name;\n          local_50[local_5c] = paVar4->value + paVar4->section->vma;\n          iVar11 = symbols->coff_symno;\n          local_5c = local_5c + 1;\n        }\n      } while (syment.n_sclass != 'f');\nLAB_000272d6:\n      local_4c[local_5c] = (char *)0x0;\n      pdVar5 = debug_make_enum_type(dhandle,local_4c,local_50);\n    }" { (expression_statement "iVar3 = (pauxent->x_csect).x_stab;" (assignment_expression "iVar3 = (pauxent->x_csect).x_stab" identifier = (field_expression "(pauxent->x_csect).x_stab" (parenthesized_expression "(pauxent->x_csect)" ( (field_expression "pauxent->x_csect" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "local_4c = (char **)xmalloc(0x28);" (assignment_expression "local_4c = (char **)xmalloc(0x28)" identifier = (cast_expression "(char **)xmalloc(0x28)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "xmalloc(0x28)" identifier (argument_list "(0x28)" ( number_literal ))))) ;) (expression_statement "local_50 = (bfd_signed_vma *)xmalloc(0x28);" (assignment_expression "local_50 = (bfd_signed_vma *)xmalloc(0x28)" identifier = (cast_expression "(bfd_signed_vma *)xmalloc(0x28)" ( (type_descriptor "bfd_signed_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x28)" identifier (argument_list "(0x28)" ( number_literal ))))) ;) (expression_statement "iVar11 = symbols->coff_symno;" (assignment_expression "iVar11 = symbols->coff_symno" identifier = (field_expression "symbols->coff_symno" identifier -> field_identifier)) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (do_statement "do {\n        while( true ) {\n          if ((iVar3 <= iVar11) || (symbols->symcount <= symbols->symno)) goto LAB_000272d6;\n          paVar4 = symbols->syms[symbols->symno];\n          iVar11 = bfd_coff_get_syment(abfd,paVar4,&syment);\n          if (iVar11 == 0) {\n            uVar9 = bfd_get_error();\n            uVar9 = bfd_errmsg(uVar9);\n            pcVar8 = (char *)dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            non_fatal(pcVar8,uVar9);\n            pdVar5 = (debug_type)0x0;\n            goto LAB_00027300;\n          }\n          symbols->symno = symbols->symno + 1;\n          iVar11 = syment.n_numaux + 1 + symbols->coff_symno;\n          symbols->coff_symno = iVar11;\n          if (syment.n_sclass != '\x10') break;\n          if (ntype <= local_5c + 1) {\n            ntype = ntype + 10;\n            local_4c = (char **)xrealloc(local_4c,ntype * 4);\n            local_50 = (bfd_signed_vma *)xrealloc(local_50,ntype * 4);\n          }\n          local_4c[local_5c] = paVar4->name;\n          local_50[local_5c] = paVar4->value + paVar4->section->vma;\n          iVar11 = symbols->coff_symno;\n          local_5c = local_5c + 1;\n        }\n      } while (syment.n_sclass != 'f');" do (compound_statement "{\n        while( true ) {\n          if ((iVar3 <= iVar11) || (symbols->symcount <= symbols->symno)) goto LAB_000272d6;\n          paVar4 = symbols->syms[symbols->symno];\n          iVar11 = bfd_coff_get_syment(abfd,paVar4,&syment);\n          if (iVar11 == 0) {\n            uVar9 = bfd_get_error();\n            uVar9 = bfd_errmsg(uVar9);\n            pcVar8 = (char *)dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            non_fatal(pcVar8,uVar9);\n            pdVar5 = (debug_type)0x0;\n            goto LAB_00027300;\n          }\n          symbols->symno = symbols->symno + 1;\n          iVar11 = syment.n_numaux + 1 + symbols->coff_symno;\n          symbols->coff_symno = iVar11;\n          if (syment.n_sclass != '\x10') break;\n          if (ntype <= local_5c + 1) {\n            ntype = ntype + 10;\n            local_4c = (char **)xrealloc(local_4c,ntype * 4);\n            local_50 = (bfd_signed_vma *)xrealloc(local_50,ntype * 4);\n          }\n          local_4c[local_5c] = paVar4->name;\n          local_50[local_5c] = paVar4->value + paVar4->section->vma;\n          iVar11 = symbols->coff_symno;\n          local_5c = local_5c + 1;\n        }\n      }" { (while_statement "while( true ) {\n          if ((iVar3 <= iVar11) || (symbols->symcount <= symbols->symno)) goto LAB_000272d6;\n          paVar4 = symbols->syms[symbols->symno];\n          iVar11 = bfd_coff_get_syment(abfd,paVar4,&syment);\n          if (iVar11 == 0) {\n            uVar9 = bfd_get_error();\n            uVar9 = bfd_errmsg(uVar9);\n            pcVar8 = (char *)dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            non_fatal(pcVar8,uVar9);\n            pdVar5 = (debug_type)0x0;\n            goto LAB_00027300;\n          }\n          symbols->symno = symbols->symno + 1;\n          iVar11 = syment.n_numaux + 1 + symbols->coff_symno;\n          symbols->coff_symno = iVar11;\n          if (syment.n_sclass != '\x10') break;\n          if (ntype <= local_5c + 1) {\n            ntype = ntype + 10;\n            local_4c = (char **)xrealloc(local_4c,ntype * 4);\n            local_50 = (bfd_signed_vma *)xrealloc(local_50,ntype * 4);\n          }\n          local_4c[local_5c] = paVar4->name;\n          local_50[local_5c] = paVar4->value + paVar4->section->vma;\n          iVar11 = symbols->coff_symno;\n          local_5c = local_5c + 1;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if ((iVar3 <= iVar11) || (symbols->symcount <= symbols->symno)) goto LAB_000272d6;\n          paVar4 = symbols->syms[symbols->symno];\n          iVar11 = bfd_coff_get_syment(abfd,paVar4,&syment);\n          if (iVar11 == 0) {\n            uVar9 = bfd_get_error();\n            uVar9 = bfd_errmsg(uVar9);\n            pcVar8 = (char *)dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            non_fatal(pcVar8,uVar9);\n            pdVar5 = (debug_type)0x0;\n            goto LAB_00027300;\n          }\n          symbols->symno = symbols->symno + 1;\n          iVar11 = syment.n_numaux + 1 + symbols->coff_symno;\n          symbols->coff_symno = iVar11;\n          if (syment.n_sclass != '\x10') break;\n          if (ntype <= local_5c + 1) {\n            ntype = ntype + 10;\n            local_4c = (char **)xrealloc(local_4c,ntype * 4);\n            local_50 = (bfd_signed_vma *)xrealloc(local_50,ntype * 4);\n          }\n          local_4c[local_5c] = paVar4->name;\n          local_50[local_5c] = paVar4->value + paVar4->section->vma;\n          iVar11 = symbols->coff_symno;\n          local_5c = local_5c + 1;\n        }" { (if_statement "if ((iVar3 <= iVar11) || (symbols->symcount <= symbols->symno)) goto LAB_000272d6;" if (parenthesized_expression "((iVar3 <= iVar11) || (symbols->symcount <= symbols->symno))" ( (binary_expression "(iVar3 <= iVar11) || (symbols->symcount <= symbols->symno)" (parenthesized_expression "(iVar3 <= iVar11)" ( (binary_expression "iVar3 <= iVar11" identifier <= identifier) )) || (parenthesized_expression "(symbols->symcount <= symbols->symno)" ( (binary_expression "symbols->symcount <= symbols->symno" (field_expression "symbols->symcount" identifier -> field_identifier) <= (field_expression "symbols->symno" identifier -> field_identifier)) ))) )) (goto_statement "goto LAB_000272d6;" goto statement_identifier ;)) (expression_statement "paVar4 = symbols->syms[symbols->symno];" (assignment_expression "paVar4 = 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 "iVar11 = bfd_coff_get_syment(abfd,paVar4,&syment);" (assignment_expression "iVar11 = bfd_coff_get_syment(abfd,paVar4,&syment)" identifier = (call_expression "bfd_coff_get_syment(abfd,paVar4,&syment)" identifier (argument_list "(abfd,paVar4,&syment)" ( identifier , identifier , (pointer_expression "&syment" & identifier) )))) ;) (if_statement "if (iVar11 == 0) {\n            uVar9 = bfd_get_error();\n            uVar9 = bfd_errmsg(uVar9);\n            pcVar8 = (char *)dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            non_fatal(pcVar8,uVar9);\n            pdVar5 = (debug_type)0x0;\n            goto LAB_00027300;\n          }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar9 = bfd_get_error();\n            uVar9 = bfd_errmsg(uVar9);\n            pcVar8 = (char *)dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            non_fatal(pcVar8,uVar9);\n            pdVar5 = (debug_type)0x0;\n            goto LAB_00027300;\n          }" { (expression_statement "uVar9 = bfd_get_error();" (assignment_expression "uVar9 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar9 = bfd_errmsg(uVar9);" (assignment_expression "uVar9 = bfd_errmsg(uVar9)" identifier = (call_expression "bfd_errmsg(uVar9)" identifier (argument_list "(uVar9)" ( identifier )))) ;) (expression_statement "pcVar8 = (char *)dcgettext(0,"bfd_coff_get_syment failed: %s",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"bfd_coff_get_syment failed: %s",5)" identifier = (cast_expression "(char *)dcgettext(0,"bfd_coff_get_syment failed: %s",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"bfd_coff_get_syment failed: %s",5)" identifier (argument_list "(0,"bfd_coff_get_syment failed: %s",5)" ( number_literal , (string_literal ""bfd_coff_get_syment failed: %s"" " string_content ") , number_literal ))))) ;) (expression_statement "non_fatal(pcVar8,uVar9);" (call_expression "non_fatal(pcVar8,uVar9)" identifier (argument_list "(pcVar8,uVar9)" ( identifier , identifier ))) ;) (expression_statement "pdVar5 = (debug_type)0x0;" (assignment_expression "pdVar5 = (debug_type)0x0" identifier = (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) (goto_statement "goto LAB_00027300;" goto statement_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 "iVar11 = syment.n_numaux + 1 + symbols->coff_symno;" (assignment_expression "iVar11 = syment.n_numaux + 1 + symbols->coff_symno" identifier = (binary_expression "syment.n_numaux + 1 + symbols->coff_symno" (binary_expression "syment.n_numaux + 1" (field_expression "syment.n_numaux" identifier . field_identifier) + number_literal) + (field_expression "symbols->coff_symno" identifier -> field_identifier))) ;) (expression_statement "symbols->coff_symno = iVar11;" (assignment_expression "symbols->coff_symno = iVar11" (field_expression "symbols->coff_symno" identifier -> field_identifier) = identifier) ;) (if_statement "if (syment.n_sclass != '\x10') break;" if (parenthesized_expression "(syment.n_sclass != '\x10')" ( (binary_expression "syment.n_sclass != '\x10'" (field_expression "syment.n_sclass" identifier . field_identifier) != (char_literal "'\x10'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (if_statement "if (ntype <= local_5c + 1) {\n            ntype = ntype + 10;\n            local_4c = (char **)xrealloc(local_4c,ntype * 4);\n            local_50 = (bfd_signed_vma *)xrealloc(local_50,ntype * 4);\n          }" if (parenthesized_expression "(ntype <= local_5c + 1)" ( (binary_expression "ntype <= local_5c + 1" identifier <= (binary_expression "local_5c + 1" identifier + number_literal)) )) (compound_statement "{\n            ntype = ntype + 10;\n            local_4c = (char **)xrealloc(local_4c,ntype * 4);\n            local_50 = (bfd_signed_vma *)xrealloc(local_50,ntype * 4);\n          }" { (expression_statement "ntype = ntype + 10;" (assignment_expression "ntype = ntype + 10" identifier = (binary_expression "ntype + 10" identifier + number_literal)) ;) (expression_statement "local_4c = (char **)xrealloc(local_4c,ntype * 4);" (assignment_expression "local_4c = (char **)xrealloc(local_4c,ntype * 4)" identifier = (cast_expression "(char **)xrealloc(local_4c,ntype * 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "xrealloc(local_4c,ntype * 4)" identifier (argument_list "(local_4c,ntype * 4)" ( identifier , (binary_expression "ntype * 4" identifier * number_literal) ))))) ;) (expression_statement "local_50 = (bfd_signed_vma *)xrealloc(local_50,ntype * 4);" (assignment_expression "local_50 = (bfd_signed_vma *)xrealloc(local_50,ntype * 4)" identifier = (cast_expression "(bfd_signed_vma *)xrealloc(local_50,ntype * 4)" ( (type_descriptor "bfd_signed_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(local_50,ntype * 4)" identifier (argument_list "(local_50,ntype * 4)" ( identifier , (binary_expression "ntype * 4" identifier * number_literal) ))))) ;) })) (expression_statement "local_4c[local_5c] = paVar4->name;" (assignment_expression "local_4c[local_5c] = paVar4->name" (subscript_expression "local_4c[local_5c]" identifier [ identifier ]) = (field_expression "paVar4->name" identifier -> field_identifier)) ;) (expression_statement "local_50[local_5c] = paVar4->value + paVar4->section->vma;" (assignment_expression "local_50[local_5c] = paVar4->value + paVar4->section->vma" (subscript_expression "local_50[local_5c]" identifier [ identifier ]) = (binary_expression "paVar4->value + paVar4->section->vma" (field_expression "paVar4->value" identifier -> field_identifier) + (field_expression "paVar4->section->vma" (field_expression "paVar4->section" identifier -> field_identifier) -> field_identifier))) ;) (expression_statement "iVar11 = symbols->coff_symno;" (assignment_expression "iVar11 = symbols->coff_symno" identifier = (field_expression "symbols->coff_symno" identifier -> field_identifier)) ;) (expression_statement "local_5c = local_5c + 1;" (assignment_expression "local_5c = local_5c + 1" identifier = (binary_expression "local_5c + 1" identifier + number_literal)) ;) })) }) while (parenthesized_expression "(syment.n_sclass != 'f')" ( (binary_expression "syment.n_sclass != 'f'" (field_expression "syment.n_sclass" identifier . field_identifier) != (char_literal "'f'" ' character ')) )) ;) (labeled_statement "LAB_000272d6:\n      local_4c[local_5c] = (char *)0x0;" statement_identifier : (expression_statement "local_4c[local_5c] = (char *)0x0;" (assignment_expression "local_4c[local_5c] = (char *)0x0" (subscript_expression "local_4c[local_5c]" identifier [ identifier ]) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pdVar5 = debug_make_enum_type(dhandle,local_4c,local_50);" (assignment_expression "pdVar5 = debug_make_enum_type(dhandle,local_4c,local_50)" identifier = (call_expression "debug_make_enum_type(dhandle,local_4c,local_50)" identifier (argument_list "(dhandle,local_4c,local_50)" ( identifier , identifier , identifier )))) ;) }))) (goto_statement "goto LAB_00027300;" goto statement_identifier ;)) (case_statement "case 0xb:\n    pdVar6 = debug_make_void_type();\n    goto LAB_00027186;" case number_literal : (expression_statement "pdVar6 = debug_make_void_type();" (assignment_expression "pdVar6 = debug_make_void_type()" identifier = (call_expression "debug_make_void_type()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_00027186;" goto statement_identifier ;)) (case_statement "case 0xc:\n    pdVar6 = debug_make_int_type(dhandle,1,1);\n    pcVar8 = "unsigned char";\n    break;" case number_literal : (expression_statement "pdVar6 = debug_make_int_type(dhandle,1,1);" (assignment_expression "pdVar6 = debug_make_int_type(dhandle,1,1)" identifier = (call_expression "debug_make_int_type(dhandle,1,1)" identifier (argument_list "(dhandle,1,1)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar8 = "unsigned char";" (assignment_expression "pcVar8 = "unsigned char"" identifier = (string_literal ""unsigned char"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xd:\n    pdVar6 = debug_make_int_type(dhandle,2,1);\n    pcVar8 = "unsigned short";\n    break;" case number_literal : (expression_statement "pdVar6 = debug_make_int_type(dhandle,2,1);" (assignment_expression "pdVar6 = debug_make_int_type(dhandle,2,1)" identifier = (call_expression "debug_make_int_type(dhandle,2,1)" identifier (argument_list "(dhandle,2,1)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar8 = "unsigned short";" (assignment_expression "pcVar8 = "unsigned short"" identifier = (string_literal ""unsigned short"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xe:\n    pdVar6 = debug_make_int_type(dhandle,4,1);\n    pcVar8 = "unsigned int";\n    break;" case number_literal : (expression_statement "pdVar6 = debug_make_int_type(dhandle,4,1);" (assignment_expression "pdVar6 = debug_make_int_type(dhandle,4,1)" identifier = (call_expression "debug_make_int_type(dhandle,4,1)" identifier (argument_list "(dhandle,4,1)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar8 = "unsigned int";" (assignment_expression "pcVar8 = "unsigned int"" identifier = (string_literal ""unsigned int"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xf:\n    pdVar6 = debug_make_int_type(dhandle,4,1);\n    pcVar8 = "unsigned long";\n    break;" case number_literal : (expression_statement "pdVar6 = debug_make_int_type(dhandle,4,1);" (assignment_expression "pdVar6 = debug_make_int_type(dhandle,4,1)" identifier = (call_expression "debug_make_int_type(dhandle,4,1)" identifier (argument_list "(dhandle,4,1)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar8 = "unsigned long";" (assignment_expression "pcVar8 = "unsigned long"" identifier = (string_literal ""unsigned long"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 0x10:\n    pdVar6 = debug_make_float_type(0xc);\n    pcVar8 = "long double";" case number_literal : (expression_statement "pdVar6 = debug_make_float_type(0xc);" (assignment_expression "pdVar6 = debug_make_float_type(0xc)" identifier = (call_expression "debug_make_float_type(0xc)" identifier (argument_list "(0xc)" ( number_literal )))) ;) (expression_statement "pcVar8 = "long double";" (assignment_expression "pcVar8 = "long double"" identifier = (string_literal ""long double"" " string_content ")) ;)) })) (expression_statement "pdVar6 = debug_name_type(dhandle,pcVar8,pdVar6);" (assignment_expression "pdVar6 = debug_name_type(dhandle,pcVar8,pdVar6)" identifier = (call_expression "debug_name_type(dhandle,pcVar8,pdVar6)" identifier (argument_list "(dhandle,pcVar8,pdVar6)" ( identifier , identifier , identifier )))) ;) (labeled_statement "LAB_00027186:\n  types->basic[ntype] = pdVar6;" statement_identifier : (expression_statement "types->basic[ntype] = pdVar6;" (assignment_expression "types->basic[ntype] = pdVar6" (subscript_expression "types->basic[ntype]" (field_expression "types->basic" identifier -> field_identifier) [ identifier ]) = identifier) ;)) (return_statement "return pdVar6;" return identifier ;) })))
(translation_unit "int __regparm3\nFUN_00026ea0(int param_1,int *param_2,int param_3,undefined4 param_4,uint param_5,int *param_6,\n            int param_7,undefined4 param_8)\n\n{\n  ushort uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  byte bVar6;\n  int *piVar7;\n  int *piVar8;\n  char *pcVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  int local_5c;\n  int iStack_50;\n  int iStack_4c;\n  undefined1 auStack_34 [20];\n  char cStack_20;\n  byte bStack_1f;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x26eab;\n  iVar12 = *(int *)(param_1 + 0x9c);\n  if ((~*(uint *)(iVar12 + 0x20) & param_5) != 0) {\n    uVar10 = (int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f);\n    uVar10 = (param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10;\n    uVar11 = *(uint *)(iVar12 + 0x28) & param_5;\n    bVar6 = (byte)*(undefined4 *)(iVar12 + 0x24);\n    if (uVar11 == 1 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001ee90(param_8,uVar3);\n      return iVar12;\n    }\n    if (uVar11 == 2 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001eee0(param_8,uVar3,0,0);\n      return iVar12;\n    }\n    if (uVar11 != 3 << (bVar6 & 0x1f)) {\n      uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      FUN_0002b6d0(uVar3,param_5);\n      return 0;\n    }\n    iVar12 = -1;\n    if (param_6 != (int *)0x0) {\n      uVar1 = *(ushort *)(param_6 + 2);\n      piVar8 = param_6 + 2;\n      if (uVar1 != 0) {\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }\n      iVar12 = uVar1 - 1;\n      *(short *)piVar8 = 0;\n    }\n    uVar3 = FUN_00026ea0(param_4,uVar10,param_6,0,param_8);\n    iVar5 = *(int *)(param_3 + 0x14);\n    if (iVar5 == 0) {\n      uVar4 = FUN_0001ed00(param_8,4,0);\n      iVar5 = FUN_0001f390(param_8,"int",uVar4);\n      *(int *)(param_3 + 0x14) = iVar5;\n    }\n    iVar12 = FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0);\n    return iVar12;\n  }\n  if ((param_6 != (int *)0x0) && (0 < *param_6)) {\n    piVar8 = (int *)FUN_00026be0();\n    if (*piVar8 != 0) {\n      return *piVar8;\n    }\n    iVar12 = FUN_0001eca0(param_8,piVar8,0);\n    return iVar12;\n  }\n  if (param_7 == 0) {\n    param_6 = (int *)0x0;\n  }\n  if (0x10 < param_5) {\n    iVar12 = FUN_0001ecf0(param_8);\n    return iVar12;\n  }\n  iVar12 = *(int *)(param_3 + 4 + param_5 * 4);\n  if (iVar12 != 0) {\n    return iVar12;\n  }\n  switch(param_5) {\n  default:\n    uVar3 = FUN_0001ecf0(param_8);\n    pcVar9 = "void";\n    break;\n  case 2:\n    uVar3 = FUN_0001ed00(param_8,1,0);\n    pcVar9 = "char";\n    break;\n  case 3:\n    uVar3 = FUN_0001ed00(param_8,2,0);\n    pcVar9 = "short";\n    break;\n  case 4:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "int";\n    break;\n  case 5:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "long";\n    break;\n  case 6:\n    uVar3 = FUN_0001ed20(param_8,4);\n    pcVar9 = "float";\n    break;\n  case 7:\n    uVar3 = FUN_0001ed20(param_8,8);\n    pcVar9 = "double";\n    break;\n  case 8:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,1,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 8;\n    goto code_r0x00027330;\n  case 9:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,0,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 9;\ncode_r0x00027330:\n    iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);\ncode_r0x00027300:\n    piVar8 = (int *)FUN_00026be0();\n    *piVar8 = iVar12;\n    return iVar12;\n  case 10:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ee40(param_8,0,0);\n    }\n    else {\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }\n    goto code_r0x00027300;\n  case 0xb:\n    iVar12 = FUN_0001ecf0(param_8);\n    goto code_r0x00027186;\n  case 0xc:\n    uVar3 = FUN_0001ed00(param_8,1,1);\n    pcVar9 = "unsigned char";\n    break;\n  case 0xd:\n    uVar3 = FUN_0001ed00(param_8,2,1);\n    pcVar9 = "unsigned short";\n    break;\n  case 0xe:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned int";\n    break;\n  case 0xf:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned long";\n    break;\n  case 0x10:\n    uVar3 = FUN_0001ed20(param_8,0xc);\n    pcVar9 = "long double";\n  }\n  iVar12 = FUN_0001f390(param_8,pcVar9,uVar3);\ncode_r0x00027186:\n  *(int *)(param_3 + 4 + param_5 * 4) = iVar12;\n  return iVar12;\n}\n\n" (function_definition "int __regparm3\nFUN_00026ea0(int param_1,int *param_2,int param_3,undefined4 param_4,uint param_5,int *param_6,\n            int param_7,undefined4 param_8)\n\n{\n  ushort uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  byte bVar6;\n  int *piVar7;\n  int *piVar8;\n  char *pcVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  int local_5c;\n  int iStack_50;\n  int iStack_4c;\n  undefined1 auStack_34 [20];\n  char cStack_20;\n  byte bStack_1f;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x26eab;\n  iVar12 = *(int *)(param_1 + 0x9c);\n  if ((~*(uint *)(iVar12 + 0x20) & param_5) != 0) {\n    uVar10 = (int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f);\n    uVar10 = (param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10;\n    uVar11 = *(uint *)(iVar12 + 0x28) & param_5;\n    bVar6 = (byte)*(undefined4 *)(iVar12 + 0x24);\n    if (uVar11 == 1 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001ee90(param_8,uVar3);\n      return iVar12;\n    }\n    if (uVar11 == 2 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001eee0(param_8,uVar3,0,0);\n      return iVar12;\n    }\n    if (uVar11 != 3 << (bVar6 & 0x1f)) {\n      uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      FUN_0002b6d0(uVar3,param_5);\n      return 0;\n    }\n    iVar12 = -1;\n    if (param_6 != (int *)0x0) {\n      uVar1 = *(ushort *)(param_6 + 2);\n      piVar8 = param_6 + 2;\n      if (uVar1 != 0) {\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }\n      iVar12 = uVar1 - 1;\n      *(short *)piVar8 = 0;\n    }\n    uVar3 = FUN_00026ea0(param_4,uVar10,param_6,0,param_8);\n    iVar5 = *(int *)(param_3 + 0x14);\n    if (iVar5 == 0) {\n      uVar4 = FUN_0001ed00(param_8,4,0);\n      iVar5 = FUN_0001f390(param_8,"int",uVar4);\n      *(int *)(param_3 + 0x14) = iVar5;\n    }\n    iVar12 = FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0);\n    return iVar12;\n  }\n  if ((param_6 != (int *)0x0) && (0 < *param_6)) {\n    piVar8 = (int *)FUN_00026be0();\n    if (*piVar8 != 0) {\n      return *piVar8;\n    }\n    iVar12 = FUN_0001eca0(param_8,piVar8,0);\n    return iVar12;\n  }\n  if (param_7 == 0) {\n    param_6 = (int *)0x0;\n  }\n  if (0x10 < param_5) {\n    iVar12 = FUN_0001ecf0(param_8);\n    return iVar12;\n  }\n  iVar12 = *(int *)(param_3 + 4 + param_5 * 4);\n  if (iVar12 != 0) {\n    return iVar12;\n  }\n  switch(param_5) {\n  default:\n    uVar3 = FUN_0001ecf0(param_8);\n    pcVar9 = "void";\n    break;\n  case 2:\n    uVar3 = FUN_0001ed00(param_8,1,0);\n    pcVar9 = "char";\n    break;\n  case 3:\n    uVar3 = FUN_0001ed00(param_8,2,0);\n    pcVar9 = "short";\n    break;\n  case 4:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "int";\n    break;\n  case 5:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "long";\n    break;\n  case 6:\n    uVar3 = FUN_0001ed20(param_8,4);\n    pcVar9 = "float";\n    break;\n  case 7:\n    uVar3 = FUN_0001ed20(param_8,8);\n    pcVar9 = "double";\n    break;\n  case 8:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,1,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 8;\n    goto code_r0x00027330;\n  case 9:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,0,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 9;\ncode_r0x00027330:\n    iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);\ncode_r0x00027300:\n    piVar8 = (int *)FUN_00026be0();\n    *piVar8 = iVar12;\n    return iVar12;\n  case 10:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ee40(param_8,0,0);\n    }\n    else {\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }\n    goto code_r0x00027300;\n  case 0xb:\n    iVar12 = FUN_0001ecf0(param_8);\n    goto code_r0x00027186;\n  case 0xc:\n    uVar3 = FUN_0001ed00(param_8,1,1);\n    pcVar9 = "unsigned char";\n    break;\n  case 0xd:\n    uVar3 = FUN_0001ed00(param_8,2,1);\n    pcVar9 = "unsigned short";\n    break;\n  case 0xe:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned int";\n    break;\n  case 0xf:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned long";\n    break;\n  case 0x10:\n    uVar3 = FUN_0001ed20(param_8,0xc);\n    pcVar9 = "long double";\n  }\n  iVar12 = FUN_0001f390(param_8,pcVar9,uVar3);\ncode_r0x00027186:\n  *(int *)(param_3 + 4 + param_5 * 4) = iVar12;\n  return iVar12;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00026ea0(int param_1,int *param_2,int param_3,undefined4 param_4,uint param_5,int *param_6,\n            int param_7,undefined4 param_8)" identifier (parameter_list "(int param_1,int *param_2,int param_3,undefined4 param_4,uint param_5,int *param_6,\n            int param_7,undefined4 param_8)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "int *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) ))) (compound_statement "{\n  ushort uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  byte bVar6;\n  int *piVar7;\n  int *piVar8;\n  char *pcVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  int local_5c;\n  int iStack_50;\n  int iStack_4c;\n  undefined1 auStack_34 [20];\n  char cStack_20;\n  byte bStack_1f;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x26eab;\n  iVar12 = *(int *)(param_1 + 0x9c);\n  if ((~*(uint *)(iVar12 + 0x20) & param_5) != 0) {\n    uVar10 = (int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f);\n    uVar10 = (param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10;\n    uVar11 = *(uint *)(iVar12 + 0x28) & param_5;\n    bVar6 = (byte)*(undefined4 *)(iVar12 + 0x24);\n    if (uVar11 == 1 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001ee90(param_8,uVar3);\n      return iVar12;\n    }\n    if (uVar11 == 2 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001eee0(param_8,uVar3,0,0);\n      return iVar12;\n    }\n    if (uVar11 != 3 << (bVar6 & 0x1f)) {\n      uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      FUN_0002b6d0(uVar3,param_5);\n      return 0;\n    }\n    iVar12 = -1;\n    if (param_6 != (int *)0x0) {\n      uVar1 = *(ushort *)(param_6 + 2);\n      piVar8 = param_6 + 2;\n      if (uVar1 != 0) {\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }\n      iVar12 = uVar1 - 1;\n      *(short *)piVar8 = 0;\n    }\n    uVar3 = FUN_00026ea0(param_4,uVar10,param_6,0,param_8);\n    iVar5 = *(int *)(param_3 + 0x14);\n    if (iVar5 == 0) {\n      uVar4 = FUN_0001ed00(param_8,4,0);\n      iVar5 = FUN_0001f390(param_8,"int",uVar4);\n      *(int *)(param_3 + 0x14) = iVar5;\n    }\n    iVar12 = FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0);\n    return iVar12;\n  }\n  if ((param_6 != (int *)0x0) && (0 < *param_6)) {\n    piVar8 = (int *)FUN_00026be0();\n    if (*piVar8 != 0) {\n      return *piVar8;\n    }\n    iVar12 = FUN_0001eca0(param_8,piVar8,0);\n    return iVar12;\n  }\n  if (param_7 == 0) {\n    param_6 = (int *)0x0;\n  }\n  if (0x10 < param_5) {\n    iVar12 = FUN_0001ecf0(param_8);\n    return iVar12;\n  }\n  iVar12 = *(int *)(param_3 + 4 + param_5 * 4);\n  if (iVar12 != 0) {\n    return iVar12;\n  }\n  switch(param_5) {\n  default:\n    uVar3 = FUN_0001ecf0(param_8);\n    pcVar9 = "void";\n    break;\n  case 2:\n    uVar3 = FUN_0001ed00(param_8,1,0);\n    pcVar9 = "char";\n    break;\n  case 3:\n    uVar3 = FUN_0001ed00(param_8,2,0);\n    pcVar9 = "short";\n    break;\n  case 4:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "int";\n    break;\n  case 5:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "long";\n    break;\n  case 6:\n    uVar3 = FUN_0001ed20(param_8,4);\n    pcVar9 = "float";\n    break;\n  case 7:\n    uVar3 = FUN_0001ed20(param_8,8);\n    pcVar9 = "double";\n    break;\n  case 8:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,1,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 8;\n    goto code_r0x00027330;\n  case 9:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,0,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 9;\ncode_r0x00027330:\n    iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);\ncode_r0x00027300:\n    piVar8 = (int *)FUN_00026be0();\n    *piVar8 = iVar12;\n    return iVar12;\n  case 10:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ee40(param_8,0,0);\n    }\n    else {\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }\n    goto code_r0x00027300;\n  case 0xb:\n    iVar12 = FUN_0001ecf0(param_8);\n    goto code_r0x00027186;\n  case 0xc:\n    uVar3 = FUN_0001ed00(param_8,1,1);\n    pcVar9 = "unsigned char";\n    break;\n  case 0xd:\n    uVar3 = FUN_0001ed00(param_8,2,1);\n    pcVar9 = "unsigned short";\n    break;\n  case 0xe:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned int";\n    break;\n  case 0xf:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned long";\n    break;\n  case 0x10:\n    uVar3 = FUN_0001ed20(param_8,0xc);\n    pcVar9 = "long double";\n  }\n  iVar12 = FUN_0001f390(param_8,pcVar9,uVar3);\ncode_r0x00027186:\n  *(int *)(param_3 + 4 + param_5 * 4) = iVar12;\n  return iVar12;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "int iStack_50;" primitive_type identifier ;) (declaration "int iStack_4c;" primitive_type identifier ;) (declaration "undefined1 auStack_34 [20];" type_identifier (array_declarator "auStack_34 [20]" identifier [ number_literal ]) ;) (declaration "char cStack_20;" primitive_type identifier ;) (declaration "byte bStack_1f;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x26eab;" (assignment_expression "uStack_14 = 0x26eab" identifier = number_literal) ;) (expression_statement "iVar12 = *(int *)(param_1 + 0x9c);" (assignment_expression "iVar12 = *(int *)(param_1 + 0x9c)" identifier = (pointer_expression "*(int *)(param_1 + 0x9c)" * (cast_expression "(int *)(param_1 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9c)" ( (binary_expression "param_1 + 0x9c" identifier + number_literal) ))))) ;) (if_statement "if ((~*(uint *)(iVar12 + 0x20) & param_5) != 0) {\n    uVar10 = (int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f);\n    uVar10 = (param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10;\n    uVar11 = *(uint *)(iVar12 + 0x28) & param_5;\n    bVar6 = (byte)*(undefined4 *)(iVar12 + 0x24);\n    if (uVar11 == 1 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001ee90(param_8,uVar3);\n      return iVar12;\n    }\n    if (uVar11 == 2 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001eee0(param_8,uVar3,0,0);\n      return iVar12;\n    }\n    if (uVar11 != 3 << (bVar6 & 0x1f)) {\n      uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      FUN_0002b6d0(uVar3,param_5);\n      return 0;\n    }\n    iVar12 = -1;\n    if (param_6 != (int *)0x0) {\n      uVar1 = *(ushort *)(param_6 + 2);\n      piVar8 = param_6 + 2;\n      if (uVar1 != 0) {\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }\n      iVar12 = uVar1 - 1;\n      *(short *)piVar8 = 0;\n    }\n    uVar3 = FUN_00026ea0(param_4,uVar10,param_6,0,param_8);\n    iVar5 = *(int *)(param_3 + 0x14);\n    if (iVar5 == 0) {\n      uVar4 = FUN_0001ed00(param_8,4,0);\n      iVar5 = FUN_0001f390(param_8,"int",uVar4);\n      *(int *)(param_3 + 0x14) = iVar5;\n    }\n    iVar12 = FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0);\n    return iVar12;\n  }" if (parenthesized_expression "((~*(uint *)(iVar12 + 0x20) & param_5) != 0)" ( (binary_expression "(~*(uint *)(iVar12 + 0x20) & param_5) != 0" (parenthesized_expression "(~*(uint *)(iVar12 + 0x20) & param_5)" ( (binary_expression "~*(uint *)(iVar12 + 0x20) & param_5" (unary_expression "~*(uint *)(iVar12 + 0x20)" ~ (pointer_expression "*(uint *)(iVar12 + 0x20)" * (cast_expression "(uint *)(iVar12 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) ))))) & identifier) )) != number_literal) )) (compound_statement "{\n    uVar10 = (int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f);\n    uVar10 = (param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10;\n    uVar11 = *(uint *)(iVar12 + 0x28) & param_5;\n    bVar6 = (byte)*(undefined4 *)(iVar12 + 0x24);\n    if (uVar11 == 1 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001ee90(param_8,uVar3);\n      return iVar12;\n    }\n    if (uVar11 == 2 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001eee0(param_8,uVar3,0,0);\n      return iVar12;\n    }\n    if (uVar11 != 3 << (bVar6 & 0x1f)) {\n      uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      FUN_0002b6d0(uVar3,param_5);\n      return 0;\n    }\n    iVar12 = -1;\n    if (param_6 != (int *)0x0) {\n      uVar1 = *(ushort *)(param_6 + 2);\n      piVar8 = param_6 + 2;\n      if (uVar1 != 0) {\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }\n      iVar12 = uVar1 - 1;\n      *(short *)piVar8 = 0;\n    }\n    uVar3 = FUN_00026ea0(param_4,uVar10,param_6,0,param_8);\n    iVar5 = *(int *)(param_3 + 0x14);\n    if (iVar5 == 0) {\n      uVar4 = FUN_0001ed00(param_8,4,0);\n      iVar5 = FUN_0001f390(param_8,"int",uVar4);\n      *(int *)(param_3 + 0x14) = iVar5;\n    }\n    iVar12 = FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0);\n    return iVar12;\n  }" { (expression_statement "uVar10 = (int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f);" (assignment_expression "uVar10 = (int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f)" identifier = (binary_expression "(int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f)" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f)" ( (binary_expression "(byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f" (binary_expression "(byte)*(undefined4 *)(iVar12 + 0x2c)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(undefined4 *)(iVar12 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c)" ( (binary_expression "iVar12 + 0x2c" identifier + number_literal) )))) & number_literal) )))) ;) (expression_statement "uVar10 = (param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10;" (assignment_expression "uVar10 = (param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10" identifier = (binary_expression "(param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10" (binary_expression "(param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20)" (parenthesized_expression "(param_5 ^ uVar10)" ( (binary_expression "param_5 ^ uVar10" identifier ^ identifier) )) & (pointer_expression "*(uint *)(iVar12 + 0x20)" * (cast_expression "(uint *)(iVar12 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) ))))) ^ identifier)) ;) (expression_statement "uVar11 = *(uint *)(iVar12 + 0x28) & param_5;" (assignment_expression "uVar11 = *(uint *)(iVar12 + 0x28) & param_5" identifier = (binary_expression "*(uint *)(iVar12 + 0x28) & param_5" (pointer_expression "*(uint *)(iVar12 + 0x28)" * (cast_expression "(uint *)(iVar12 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) )))) & identifier)) ;) (expression_statement "bVar6 = (byte)*(undefined4 *)(iVar12 + 0x24);" (assignment_expression "bVar6 = (byte)*(undefined4 *)(iVar12 + 0x24)" identifier = (binary_expression "(byte)*(undefined4 *)(iVar12 + 0x24)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(undefined4 *)(iVar12 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) ;) (if_statement "if (uVar11 == 1 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001ee90(param_8,uVar3);\n      return iVar12;\n    }" if (parenthesized_expression "(uVar11 == 1 << (bVar6 & 0x1f))" ( (binary_expression "uVar11 == 1 << (bVar6 & 0x1f)" identifier == (binary_expression "1 << (bVar6 & 0x1f)" number_literal << (parenthesized_expression "(bVar6 & 0x1f)" ( (binary_expression "bVar6 & 0x1f" identifier & number_literal) )))) )) (compound_statement "{\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001ee90(param_8,uVar3);\n      return iVar12;\n    }" { (expression_statement "uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);" (assignment_expression "uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8)" identifier = (call_expression "FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8)" identifier (argument_list "(param_4,uVar10,param_6,param_7,param_8)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar12 = FUN_0001ee90(param_8,uVar3);" (assignment_expression "iVar12 = FUN_0001ee90(param_8,uVar3)" identifier = (call_expression "FUN_0001ee90(param_8,uVar3)" identifier (argument_list "(param_8,uVar3)" ( identifier , identifier )))) ;) (return_statement "return iVar12;" return identifier ;) })) (if_statement "if (uVar11 == 2 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001eee0(param_8,uVar3,0,0);\n      return iVar12;\n    }" if (parenthesized_expression "(uVar11 == 2 << (bVar6 & 0x1f))" ( (binary_expression "uVar11 == 2 << (bVar6 & 0x1f)" identifier == (binary_expression "2 << (bVar6 & 0x1f)" number_literal << (parenthesized_expression "(bVar6 & 0x1f)" ( (binary_expression "bVar6 & 0x1f" identifier & number_literal) )))) )) (compound_statement "{\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001eee0(param_8,uVar3,0,0);\n      return iVar12;\n    }" { (expression_statement "uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);" (assignment_expression "uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8)" identifier = (call_expression "FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8)" identifier (argument_list "(param_4,uVar10,param_6,param_7,param_8)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar12 = FUN_0001eee0(param_8,uVar3,0,0);" (assignment_expression "iVar12 = FUN_0001eee0(param_8,uVar3,0,0)" identifier = (call_expression "FUN_0001eee0(param_8,uVar3,0,0)" identifier (argument_list "(param_8,uVar3,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (return_statement "return iVar12;" return identifier ;) })) (if_statement "if (uVar11 != 3 << (bVar6 & 0x1f)) {\n      uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      FUN_0002b6d0(uVar3,param_5);\n      return 0;\n    }" if (parenthesized_expression "(uVar11 != 3 << (bVar6 & 0x1f))" ( (binary_expression "uVar11 != 3 << (bVar6 & 0x1f)" identifier != (binary_expression "3 << (bVar6 & 0x1f)" number_literal << (parenthesized_expression "(bVar6 & 0x1f)" ( (binary_expression "bVar6 & 0x1f" identifier & number_literal) )))) )) (compound_statement "{\n      uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      FUN_0002b6d0(uVar3,param_5);\n      return 0;\n    }" { (expression_statement "uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);" (assignment_expression "uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5)" identifier = (call_expression "dcgettext(0,"parse_coff_type: Bad type code 0x%x",5)" identifier (argument_list "(0,"parse_coff_type: Bad type code 0x%x",5)" ( number_literal , (string_literal ""parse_coff_type: Bad type code 0x%x"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002b6d0(uVar3,param_5);" (call_expression "FUN_0002b6d0(uVar3,param_5)" identifier (argument_list "(uVar3,param_5)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar12 = -1;" (assignment_expression "iVar12 = -1" identifier = number_literal) ;) (if_statement "if (param_6 != (int *)0x0) {\n      uVar1 = *(ushort *)(param_6 + 2);\n      piVar8 = param_6 + 2;\n      if (uVar1 != 0) {\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }\n      iVar12 = uVar1 - 1;\n      *(short *)piVar8 = 0;\n    }" if (parenthesized_expression "(param_6 != (int *)0x0)" ( (binary_expression "param_6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar1 = *(ushort *)(param_6 + 2);\n      piVar8 = param_6 + 2;\n      if (uVar1 != 0) {\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }\n      iVar12 = uVar1 - 1;\n      *(short *)piVar8 = 0;\n    }" { (expression_statement "uVar1 = *(ushort *)(param_6 + 2);" (assignment_expression "uVar1 = *(ushort *)(param_6 + 2)" identifier = (pointer_expression "*(ushort *)(param_6 + 2)" * (cast_expression "(ushort *)(param_6 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 2)" ( (binary_expression "param_6 + 2" identifier + number_literal) ))))) ;) (expression_statement "piVar8 = param_6 + 2;" (assignment_expression "piVar8 = param_6 + 2" identifier = (binary_expression "param_6 + 2" identifier + number_literal)) ;) (if_statement "if (uVar1 != 0) {\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }" if (parenthesized_expression "(uVar1 != 0)" ( (binary_expression "uVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "piVar7 = piVar8;" (assignment_expression "piVar7 = piVar8" identifier = identifier) ;) (do_statement "do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);" do (compound_statement "{\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        }" { (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "piVar8 = (int *)((int)piVar7 + 2);" (assignment_expression "piVar8 = (int *)((int)piVar7 + 2)" identifier = (cast_expression "(int *)((int)piVar7 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar7 + 2)" ( (binary_expression "(int)piVar7 + 2" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(short *)piVar7 = *(short *)((int)piVar7 + 2);" (assignment_expression "*(short *)piVar7 = *(short *)((int)piVar7 + 2)" (pointer_expression "*(short *)piVar7" * (cast_expression "(short *)piVar7" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(short *)((int)piVar7 + 2)" * (cast_expression "(short *)((int)piVar7 + 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar7 + 2)" ( (binary_expression "(int)piVar7 + 2" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (*(short *)((int)piVar7 + 2) == 0) break;" if (parenthesized_expression "(*(short *)((int)piVar7 + 2) == 0)" ( (binary_expression "*(short *)((int)piVar7 + 2) == 0" (pointer_expression "*(short *)((int)piVar7 + 2)" * (cast_expression "(short *)((int)piVar7 + 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar7 + 2)" ( (binary_expression "(int)piVar7 + 2" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "piVar7 = piVar8;" (assignment_expression "piVar7 = piVar8" identifier = identifier) ;) }) while (parenthesized_expression "(iVar12 != 3)" ( (binary_expression "iVar12 != 3" identifier != number_literal) )) ;) })) (expression_statement "iVar12 = uVar1 - 1;" (assignment_expression "iVar12 = uVar1 - 1" identifier = (binary_expression "uVar1 - 1" identifier - number_literal)) ;) (expression_statement "*(short *)piVar8 = 0;" (assignment_expression "*(short *)piVar8 = 0" (pointer_expression "*(short *)piVar8" * (cast_expression "(short *)piVar8" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) })) (expression_statement "uVar3 = FUN_00026ea0(param_4,uVar10,param_6,0,param_8);" (assignment_expression "uVar3 = FUN_00026ea0(param_4,uVar10,param_6,0,param_8)" identifier = (call_expression "FUN_00026ea0(param_4,uVar10,param_6,0,param_8)" identifier (argument_list "(param_4,uVar10,param_6,0,param_8)" ( identifier , identifier , identifier , number_literal , identifier )))) ;) (expression_statement "iVar5 = *(int *)(param_3 + 0x14);" (assignment_expression "iVar5 = *(int *)(param_3 + 0x14)" identifier = (pointer_expression "*(int *)(param_3 + 0x14)" * (cast_expression "(int *)(param_3 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x14)" ( (binary_expression "param_3 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) {\n      uVar4 = FUN_0001ed00(param_8,4,0);\n      iVar5 = FUN_0001f390(param_8,"int",uVar4);\n      *(int *)(param_3 + 0x14) = iVar5;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar4 = FUN_0001ed00(param_8,4,0);\n      iVar5 = FUN_0001f390(param_8,"int",uVar4);\n      *(int *)(param_3 + 0x14) = iVar5;\n    }" { (expression_statement "uVar4 = FUN_0001ed00(param_8,4,0);" (assignment_expression "uVar4 = FUN_0001ed00(param_8,4,0)" identifier = (call_expression "FUN_0001ed00(param_8,4,0)" identifier (argument_list "(param_8,4,0)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "iVar5 = FUN_0001f390(param_8,"int",uVar4);" (assignment_expression "iVar5 = FUN_0001f390(param_8,"int",uVar4)" identifier = (call_expression "FUN_0001f390(param_8,"int",uVar4)" identifier (argument_list "(param_8,"int",uVar4)" ( identifier , (string_literal ""int"" " string_content ") , identifier )))) ;) (expression_statement "*(int *)(param_3 + 0x14) = iVar5;" (assignment_expression "*(int *)(param_3 + 0x14) = iVar5" (pointer_expression "*(int *)(param_3 + 0x14)" * (cast_expression "(int *)(param_3 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x14)" ( (binary_expression "param_3 + 0x14" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar12 = FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0);" (assignment_expression "iVar12 = FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0)" identifier = (call_expression "FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0)" identifier (argument_list "(param_8,uVar3,iVar5,0,iVar12,0)" ( identifier , identifier , identifier , number_literal , identifier , number_literal )))) ;) (return_statement "return iVar12;" return identifier ;) })) (if_statement "if ((param_6 != (int *)0x0) && (0 < *param_6)) {\n    piVar8 = (int *)FUN_00026be0();\n    if (*piVar8 != 0) {\n      return *piVar8;\n    }\n    iVar12 = FUN_0001eca0(param_8,piVar8,0);\n    return iVar12;\n  }" if (parenthesized_expression "((param_6 != (int *)0x0) && (0 < *param_6))" ( (binary_expression "(param_6 != (int *)0x0) && (0 < *param_6)" (parenthesized_expression "(param_6 != (int *)0x0)" ( (binary_expression "param_6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(0 < *param_6)" ( (binary_expression "0 < *param_6" number_literal < (pointer_expression "*param_6" * identifier)) ))) )) (compound_statement "{\n    piVar8 = (int *)FUN_00026be0();\n    if (*piVar8 != 0) {\n      return *piVar8;\n    }\n    iVar12 = FUN_0001eca0(param_8,piVar8,0);\n    return iVar12;\n  }" { (expression_statement "piVar8 = (int *)FUN_00026be0();" (assignment_expression "piVar8 = (int *)FUN_00026be0()" identifier = (cast_expression "(int *)FUN_00026be0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00026be0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (*piVar8 != 0) {\n      return *piVar8;\n    }" if (parenthesized_expression "(*piVar8 != 0)" ( (binary_expression "*piVar8 != 0" (pointer_expression "*piVar8" * identifier) != number_literal) )) (compound_statement "{\n      return *piVar8;\n    }" { (return_statement "return *piVar8;" return (pointer_expression "*piVar8" * identifier) ;) })) (expression_statement "iVar12 = FUN_0001eca0(param_8,piVar8,0);" (assignment_expression "iVar12 = FUN_0001eca0(param_8,piVar8,0)" identifier = (call_expression "FUN_0001eca0(param_8,piVar8,0)" identifier (argument_list "(param_8,piVar8,0)" ( identifier , identifier , number_literal )))) ;) (return_statement "return iVar12;" return identifier ;) })) (if_statement "if (param_7 == 0) {\n    param_6 = (int *)0x0;\n  }" if (parenthesized_expression "(param_7 == 0)" ( (binary_expression "param_7 == 0" identifier == number_literal) )) (compound_statement "{\n    param_6 = (int *)0x0;\n  }" { (expression_statement "param_6 = (int *)0x0;" (assignment_expression "param_6 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (if_statement "if (0x10 < param_5) {\n    iVar12 = FUN_0001ecf0(param_8);\n    return iVar12;\n  }" if (parenthesized_expression "(0x10 < param_5)" ( (binary_expression "0x10 < param_5" number_literal < identifier) )) (compound_statement "{\n    iVar12 = FUN_0001ecf0(param_8);\n    return iVar12;\n  }" { (expression_statement "iVar12 = FUN_0001ecf0(param_8);" (assignment_expression "iVar12 = FUN_0001ecf0(param_8)" identifier = (call_expression "FUN_0001ecf0(param_8)" identifier (argument_list "(param_8)" ( identifier )))) ;) (return_statement "return iVar12;" return identifier ;) })) (expression_statement "iVar12 = *(int *)(param_3 + 4 + param_5 * 4);" (assignment_expression "iVar12 = *(int *)(param_3 + 4 + param_5 * 4)" identifier = (pointer_expression "*(int *)(param_3 + 4 + param_5 * 4)" * (cast_expression "(int *)(param_3 + 4 + param_5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4 + param_5 * 4)" ( (binary_expression "param_3 + 4 + param_5 * 4" (binary_expression "param_3 + 4" identifier + number_literal) + (binary_expression "param_5 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (iVar12 != 0) {\n    return iVar12;\n  }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n    return iVar12;\n  }" { (return_statement "return iVar12;" return identifier ;) })) (switch_statement "switch(param_5) {\n  default:\n    uVar3 = FUN_0001ecf0(param_8);\n    pcVar9 = "void";\n    break;\n  case 2:\n    uVar3 = FUN_0001ed00(param_8,1,0);\n    pcVar9 = "char";\n    break;\n  case 3:\n    uVar3 = FUN_0001ed00(param_8,2,0);\n    pcVar9 = "short";\n    break;\n  case 4:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "int";\n    break;\n  case 5:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "long";\n    break;\n  case 6:\n    uVar3 = FUN_0001ed20(param_8,4);\n    pcVar9 = "float";\n    break;\n  case 7:\n    uVar3 = FUN_0001ed20(param_8,8);\n    pcVar9 = "double";\n    break;\n  case 8:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,1,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 8;\n    goto code_r0x00027330;\n  case 9:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,0,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 9;\ncode_r0x00027330:\n    iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);\ncode_r0x00027300:\n    piVar8 = (int *)FUN_00026be0();\n    *piVar8 = iVar12;\n    return iVar12;\n  case 10:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ee40(param_8,0,0);\n    }\n    else {\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }\n    goto code_r0x00027300;\n  case 0xb:\n    iVar12 = FUN_0001ecf0(param_8);\n    goto code_r0x00027186;\n  case 0xc:\n    uVar3 = FUN_0001ed00(param_8,1,1);\n    pcVar9 = "unsigned char";\n    break;\n  case 0xd:\n    uVar3 = FUN_0001ed00(param_8,2,1);\n    pcVar9 = "unsigned short";\n    break;\n  case 0xe:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned int";\n    break;\n  case 0xf:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned long";\n    break;\n  case 0x10:\n    uVar3 = FUN_0001ed20(param_8,0xc);\n    pcVar9 = "long double";\n  }" switch (parenthesized_expression "(param_5)" ( identifier )) (compound_statement "{\n  default:\n    uVar3 = FUN_0001ecf0(param_8);\n    pcVar9 = "void";\n    break;\n  case 2:\n    uVar3 = FUN_0001ed00(param_8,1,0);\n    pcVar9 = "char";\n    break;\n  case 3:\n    uVar3 = FUN_0001ed00(param_8,2,0);\n    pcVar9 = "short";\n    break;\n  case 4:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "int";\n    break;\n  case 5:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "long";\n    break;\n  case 6:\n    uVar3 = FUN_0001ed20(param_8,4);\n    pcVar9 = "float";\n    break;\n  case 7:\n    uVar3 = FUN_0001ed20(param_8,8);\n    pcVar9 = "double";\n    break;\n  case 8:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,1,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 8;\n    goto code_r0x00027330;\n  case 9:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,0,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 9;\ncode_r0x00027330:\n    iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);\ncode_r0x00027300:\n    piVar8 = (int *)FUN_00026be0();\n    *piVar8 = iVar12;\n    return iVar12;\n  case 10:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ee40(param_8,0,0);\n    }\n    else {\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }\n    goto code_r0x00027300;\n  case 0xb:\n    iVar12 = FUN_0001ecf0(param_8);\n    goto code_r0x00027186;\n  case 0xc:\n    uVar3 = FUN_0001ed00(param_8,1,1);\n    pcVar9 = "unsigned char";\n    break;\n  case 0xd:\n    uVar3 = FUN_0001ed00(param_8,2,1);\n    pcVar9 = "unsigned short";\n    break;\n  case 0xe:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned int";\n    break;\n  case 0xf:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned long";\n    break;\n  case 0x10:\n    uVar3 = FUN_0001ed20(param_8,0xc);\n    pcVar9 = "long double";\n  }" { (case_statement "default:\n    uVar3 = FUN_0001ecf0(param_8);\n    pcVar9 = "void";\n    break;" default : (expression_statement "uVar3 = FUN_0001ecf0(param_8);" (assignment_expression "uVar3 = FUN_0001ecf0(param_8)" identifier = (call_expression "FUN_0001ecf0(param_8)" identifier (argument_list "(param_8)" ( identifier )))) ;) (expression_statement "pcVar9 = "void";" (assignment_expression "pcVar9 = "void"" identifier = (string_literal ""void"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n    uVar3 = FUN_0001ed00(param_8,1,0);\n    pcVar9 = "char";\n    break;" case number_literal : (expression_statement "uVar3 = FUN_0001ed00(param_8,1,0);" (assignment_expression "uVar3 = FUN_0001ed00(param_8,1,0)" identifier = (call_expression "FUN_0001ed00(param_8,1,0)" identifier (argument_list "(param_8,1,0)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar9 = "char";" (assignment_expression "pcVar9 = "char"" identifier = (string_literal ""char"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n    uVar3 = FUN_0001ed00(param_8,2,0);\n    pcVar9 = "short";\n    break;" case number_literal : (expression_statement "uVar3 = FUN_0001ed00(param_8,2,0);" (assignment_expression "uVar3 = FUN_0001ed00(param_8,2,0)" identifier = (call_expression "FUN_0001ed00(param_8,2,0)" identifier (argument_list "(param_8,2,0)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar9 = "short";" (assignment_expression "pcVar9 = "short"" identifier = (string_literal ""short"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "int";\n    break;" case number_literal : (expression_statement "uVar3 = FUN_0001ed00(param_8,4,0);" (assignment_expression "uVar3 = FUN_0001ed00(param_8,4,0)" identifier = (call_expression "FUN_0001ed00(param_8,4,0)" identifier (argument_list "(param_8,4,0)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar9 = "int";" (assignment_expression "pcVar9 = "int"" identifier = (string_literal ""int"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "long";\n    break;" case number_literal : (expression_statement "uVar3 = FUN_0001ed00(param_8,4,0);" (assignment_expression "uVar3 = FUN_0001ed00(param_8,4,0)" identifier = (call_expression "FUN_0001ed00(param_8,4,0)" identifier (argument_list "(param_8,4,0)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar9 = "long";" (assignment_expression "pcVar9 = "long"" identifier = (string_literal ""long"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n    uVar3 = FUN_0001ed20(param_8,4);\n    pcVar9 = "float";\n    break;" case number_literal : (expression_statement "uVar3 = FUN_0001ed20(param_8,4);" (assignment_expression "uVar3 = FUN_0001ed20(param_8,4)" identifier = (call_expression "FUN_0001ed20(param_8,4)" identifier (argument_list "(param_8,4)" ( identifier , number_literal )))) ;) (expression_statement "pcVar9 = "float";" (assignment_expression "pcVar9 = "float"" identifier = (string_literal ""float"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 7:\n    uVar3 = FUN_0001ed20(param_8,8);\n    pcVar9 = "double";\n    break;" case number_literal : (expression_statement "uVar3 = FUN_0001ed20(param_8,8);" (assignment_expression "uVar3 = FUN_0001ed20(param_8,8)" identifier = (call_expression "FUN_0001ed20(param_8,8)" identifier (argument_list "(param_8,8)" ( identifier , number_literal )))) ;) (expression_statement "pcVar9 = "double";" (assignment_expression "pcVar9 = "double"" identifier = (string_literal ""double"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,1,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 8;\n    goto code_r0x00027330;" case number_literal : (if_statement "if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,1,0,0);\n      goto code_r0x00027300;\n    }" if (parenthesized_expression "(param_6 == (int *)0x0)" ( (binary_expression "param_6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar12 = FUN_0001ed50(param_8,1,0,0);\n      goto code_r0x00027300;\n    }" { (expression_statement "iVar12 = FUN_0001ed50(param_8,1,0,0);" (assignment_expression "iVar12 = FUN_0001ed50(param_8,1,0,0)" identifier = (call_expression "FUN_0001ed50(param_8,1,0,0)" identifier (argument_list "(param_8,1,0,0)" ( identifier , number_literal , number_literal , number_literal )))) ;) (goto_statement "goto code_r0x00027300;" goto statement_identifier ;) })) (expression_statement "iVar12 = param_6[3];" (assignment_expression "iVar12 = param_6[3]" identifier = (subscript_expression "param_6[3]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = 8;" (assignment_expression "uVar3 = 8" identifier = number_literal) ;) (goto_statement "goto code_r0x00027330;" goto statement_identifier ;)) (case_statement "case 9:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,0,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 9;\ncode_r0x00027330:\n    iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);\ncode_r0x00027300:\n    piVar8 = (int *)FUN_00026be0();\n    *piVar8 = iVar12;\n    return iVar12;" case number_literal : (if_statement "if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,0,0,0);\n      goto code_r0x00027300;\n    }" if (parenthesized_expression "(param_6 == (int *)0x0)" ( (binary_expression "param_6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar12 = FUN_0001ed50(param_8,0,0,0);\n      goto code_r0x00027300;\n    }" { (expression_statement "iVar12 = FUN_0001ed50(param_8,0,0,0);" (assignment_expression "iVar12 = FUN_0001ed50(param_8,0,0,0)" identifier = (call_expression "FUN_0001ed50(param_8,0,0,0)" identifier (argument_list "(param_8,0,0,0)" ( identifier , number_literal , number_literal , number_literal )))) ;) (goto_statement "goto code_r0x00027300;" goto statement_identifier ;) })) (expression_statement "iVar12 = param_6[3];" (assignment_expression "iVar12 = param_6[3]" identifier = (subscript_expression "param_6[3]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = 9;" (assignment_expression "uVar3 = 9" identifier = number_literal) ;) (labeled_statement "code_r0x00027330:\n    iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);" statement_identifier : (expression_statement "iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);" (assignment_expression "iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8)" identifier = (call_expression "FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8)" identifier (argument_list "(uVar3,(int)param_6 + 6,iVar12,param_8)" ( identifier , (binary_expression "(int)param_6 + 6" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , identifier , identifier )))) ;)) (labeled_statement "code_r0x00027300:\n    piVar8 = (int *)FUN_00026be0();" statement_identifier : (expression_statement "piVar8 = (int *)FUN_00026be0();" (assignment_expression "piVar8 = (int *)FUN_00026be0()" identifier = (cast_expression "(int *)FUN_00026be0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00026be0()" identifier (argument_list "()" ( ))))) ;)) (expression_statement "*piVar8 = iVar12;" (assignment_expression "*piVar8 = iVar12" (pointer_expression "*piVar8" * identifier) = identifier) ;) (return_statement "return iVar12;" return identifier ;)) (case_statement "case 10:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ee40(param_8,0,0);\n    }\n    else {\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }\n    goto code_r0x00027300;" case number_literal : (if_statement "if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ee40(param_8,0,0);\n    }\n    else {\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }" if (parenthesized_expression "(param_6 == (int *)0x0)" ( (binary_expression "param_6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar12 = FUN_0001ee40(param_8,0,0);\n    }" { (expression_statement "iVar12 = FUN_0001ee40(param_8,0,0);" (assignment_expression "iVar12 = FUN_0001ee40(param_8,0,0)" identifier = (call_expression "FUN_0001ee40(param_8,0,0)" identifier (argument_list "(param_8,0,0)" ( identifier , number_literal , number_literal )))) ;) }) (else_clause "else {\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }" else (compound_statement "{\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }" { (expression_statement "iVar5 = param_6[3];" (assignment_expression "iVar5 = param_6[3]" identifier = (subscript_expression "param_6[3]" identifier [ number_literal ])) ;) (expression_statement "iStack_4c = xmalloc(0x28);" (assignment_expression "iStack_4c = xmalloc(0x28)" identifier = (call_expression "xmalloc(0x28)" identifier (argument_list "(0x28)" ( number_literal )))) ;) (expression_statement "iStack_50 = xmalloc(0x28);" (assignment_expression "iStack_50 = xmalloc(0x28)" identifier = (call_expression "xmalloc(0x28)" identifier (argument_list "(0x28)" ( number_literal )))) ;) (expression_statement "iVar12 = param_2[3];" (assignment_expression "iVar12 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (do_statement "do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');" do (compound_statement "{\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      }" { (while_statement "while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }" { (if_statement "if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;" if (parenthesized_expression "((iVar5 <= iVar12) || (param_2[1] <= param_2[2]))" ( (binary_expression "(iVar5 <= iVar12) || (param_2[1] <= param_2[2])" (parenthesized_expression "(iVar5 <= iVar12)" ( (binary_expression "iVar5 <= iVar12" identifier <= identifier) )) || (parenthesized_expression "(param_2[1] <= param_2[2])" ( (binary_expression "param_2[1] <= param_2[2]" (subscript_expression "param_2[1]" identifier [ number_literal ]) <= (subscript_expression "param_2[2]" identifier [ number_literal ])) ))) )) (goto_statement "goto code_r0x000272d6;" goto statement_identifier ;)) (expression_statement "iVar2 = *(int *)(*param_2 + param_2[2] * 4);" (assignment_expression "iVar2 = *(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 "iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);" (assignment_expression "iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34)" identifier = (call_expression "bfd_coff_get_syment(param_1,iVar2,auStack_34)" identifier (argument_list "(param_1,iVar2,auStack_34)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\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 "uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);" (assignment_expression "uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5)" identifier = (call_expression "dcgettext(0,"bfd_coff_get_syment failed: %s",5)" identifier (argument_list "(0,"bfd_coff_get_syment failed: %s",5)" ( number_literal , (string_literal ""bfd_coff_get_syment failed: %s"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002b6d0(uVar4,uVar3);" (call_expression "FUN_0002b6d0(uVar4,uVar3)" identifier (argument_list "(uVar4,uVar3)" ( identifier , identifier ))) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (goto_statement "goto code_r0x00027300;" goto statement_identifier ;) })) (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 "iVar12 = bStack_1f + 1 + param_2[3];" (assignment_expression "iVar12 = bStack_1f + 1 + param_2[3]" identifier = (binary_expression "bStack_1f + 1 + param_2[3]" (binary_expression "bStack_1f + 1" identifier + number_literal) + (subscript_expression "param_2[3]" identifier [ number_literal ]))) ;) (expression_statement "param_2[3] = iVar12;" (assignment_expression "param_2[3] = iVar12" (subscript_expression "param_2[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (cStack_20 != '\x10') break;" if (parenthesized_expression "(cStack_20 != '\x10')" ( (binary_expression "cStack_20 != '\x10'" identifier != (char_literal "'\x10'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (if_statement "if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }" if (parenthesized_expression "((int)param_5 <= local_5c + 1)" ( (binary_expression "(int)param_5 <= local_5c + 1" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) <= (binary_expression "local_5c + 1" identifier + number_literal)) )) (compound_statement "{\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }" { (expression_statement "param_5 = param_5 + 10;" (assignment_expression "param_5 = param_5 + 10" identifier = (binary_expression "param_5 + 10" identifier + number_literal)) ;) (expression_statement "iStack_4c = xrealloc(iStack_4c,param_5 * 4);" (assignment_expression "iStack_4c = xrealloc(iStack_4c,param_5 * 4)" identifier = (call_expression "xrealloc(iStack_4c,param_5 * 4)" identifier (argument_list "(iStack_4c,param_5 * 4)" ( identifier , (binary_expression "param_5 * 4" identifier * number_literal) )))) ;) (expression_statement "iStack_50 = xrealloc(iStack_50,param_5 * 4);" (assignment_expression "iStack_50 = xrealloc(iStack_50,param_5 * 4)" identifier = (call_expression "xrealloc(iStack_50,param_5 * 4)" identifier (argument_list "(iStack_50,param_5 * 4)" ( identifier , (binary_expression "param_5 * 4" identifier * number_literal) )))) ;) })) (expression_statement "*(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);" (assignment_expression "*(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4)" (pointer_expression "*(undefined4 *)(iStack_4c + local_5c * 4)" * (cast_expression "(undefined4 *)(iStack_4c + local_5c * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_4c + local_5c * 4)" ( (binary_expression "iStack_4c + local_5c * 4" identifier + (binary_expression "local_5c * 4" identifier * number_literal)) )))) = (pointer_expression "*(undefined4 *)(iVar2 + 4)" * (cast_expression "(undefined4 *)(iVar2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);" (assignment_expression "*(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c)" (pointer_expression "*(int *)(iStack_50 + local_5c * 4)" * (cast_expression "(int *)(iStack_50 + local_5c * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_50 + local_5c * 4)" ( (binary_expression "iStack_50 + local_5c * 4" identifier + (binary_expression "local_5c * 4" identifier * number_literal)) )))) = (binary_expression "*(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c)" (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) + (pointer_expression "*(int *)(*(int *)(iVar2 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar2 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar2 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(iVar2 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar2 + 0x10)" * (cast_expression "(int *)(iVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "iVar12 = param_2[3];" (assignment_expression "iVar12 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "local_5c = local_5c + 1;" (assignment_expression "local_5c = local_5c + 1" identifier = (binary_expression "local_5c + 1" identifier + number_literal)) ;) })) }) while (parenthesized_expression "(cStack_20 != 'f')" ( (binary_expression "cStack_20 != 'f'" identifier != (char_literal "'f'" ' character ')) )) ;) (labeled_statement "code_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(iStack_4c + local_5c * 4) = 0;" (assignment_expression "*(undefined4 *)(iStack_4c + local_5c * 4) = 0" (pointer_expression "*(undefined4 *)(iStack_4c + local_5c * 4)" * (cast_expression "(undefined4 *)(iStack_4c + local_5c * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_4c + local_5c * 4)" ( (binary_expression "iStack_4c + local_5c * 4" identifier + (binary_expression "local_5c * 4" identifier * number_literal)) )))) = number_literal) ;)) (expression_statement "iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);" (assignment_expression "iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50)" identifier = (call_expression "FUN_0001ee40(param_8,iStack_4c,iStack_50)" identifier (argument_list "(param_8,iStack_4c,iStack_50)" ( identifier , identifier , identifier )))) ;) }))) (goto_statement "goto code_r0x00027300;" goto statement_identifier ;)) (case_statement "case 0xb:\n    iVar12 = FUN_0001ecf0(param_8);\n    goto code_r0x00027186;" case number_literal : (expression_statement "iVar12 = FUN_0001ecf0(param_8);" (assignment_expression "iVar12 = FUN_0001ecf0(param_8)" identifier = (call_expression "FUN_0001ecf0(param_8)" identifier (argument_list "(param_8)" ( identifier )))) ;) (goto_statement "goto code_r0x00027186;" goto statement_identifier ;)) (case_statement "case 0xc:\n    uVar3 = FUN_0001ed00(param_8,1,1);\n    pcVar9 = "unsigned char";\n    break;" case number_literal : (expression_statement "uVar3 = FUN_0001ed00(param_8,1,1);" (assignment_expression "uVar3 = FUN_0001ed00(param_8,1,1)" identifier = (call_expression "FUN_0001ed00(param_8,1,1)" identifier (argument_list "(param_8,1,1)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar9 = "unsigned char";" (assignment_expression "pcVar9 = "unsigned char"" identifier = (string_literal ""unsigned char"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xd:\n    uVar3 = FUN_0001ed00(param_8,2,1);\n    pcVar9 = "unsigned short";\n    break;" case number_literal : (expression_statement "uVar3 = FUN_0001ed00(param_8,2,1);" (assignment_expression "uVar3 = FUN_0001ed00(param_8,2,1)" identifier = (call_expression "FUN_0001ed00(param_8,2,1)" identifier (argument_list "(param_8,2,1)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar9 = "unsigned short";" (assignment_expression "pcVar9 = "unsigned short"" identifier = (string_literal ""unsigned short"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xe:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned int";\n    break;" case number_literal : (expression_statement "uVar3 = FUN_0001ed00(param_8,4,1);" (assignment_expression "uVar3 = FUN_0001ed00(param_8,4,1)" identifier = (call_expression "FUN_0001ed00(param_8,4,1)" identifier (argument_list "(param_8,4,1)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar9 = "unsigned int";" (assignment_expression "pcVar9 = "unsigned int"" identifier = (string_literal ""unsigned int"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xf:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned long";\n    break;" case number_literal : (expression_statement "uVar3 = FUN_0001ed00(param_8,4,1);" (assignment_expression "uVar3 = FUN_0001ed00(param_8,4,1)" identifier = (call_expression "FUN_0001ed00(param_8,4,1)" identifier (argument_list "(param_8,4,1)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "pcVar9 = "unsigned long";" (assignment_expression "pcVar9 = "unsigned long"" identifier = (string_literal ""unsigned long"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 0x10:\n    uVar3 = FUN_0001ed20(param_8,0xc);\n    pcVar9 = "long double";" case number_literal : (expression_statement "uVar3 = FUN_0001ed20(param_8,0xc);" (assignment_expression "uVar3 = FUN_0001ed20(param_8,0xc)" identifier = (call_expression "FUN_0001ed20(param_8,0xc)" identifier (argument_list "(param_8,0xc)" ( identifier , number_literal )))) ;) (expression_statement "pcVar9 = "long double";" (assignment_expression "pcVar9 = "long double"" identifier = (string_literal ""long double"" " string_content ")) ;)) })) (expression_statement "iVar12 = FUN_0001f390(param_8,pcVar9,uVar3);" (assignment_expression "iVar12 = FUN_0001f390(param_8,pcVar9,uVar3)" identifier = (call_expression "FUN_0001f390(param_8,pcVar9,uVar3)" identifier (argument_list "(param_8,pcVar9,uVar3)" ( identifier , identifier , identifier )))) ;) (labeled_statement "code_r0x00027186:\n  *(int *)(param_3 + 4 + param_5 * 4) = iVar12;" statement_identifier : (expression_statement "*(int *)(param_3 + 4 + param_5 * 4) = iVar12;" (assignment_expression "*(int *)(param_3 + 4 + param_5 * 4) = iVar12" (pointer_expression "*(int *)(param_3 + 4 + param_5 * 4)" * (cast_expression "(int *)(param_3 + 4 + param_5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4 + param_5 * 4)" ( (binary_expression "param_3 + 4 + param_5 * 4" (binary_expression "param_3 + 4" identifier + number_literal) + (binary_expression "param_5 * 4" identifier * number_literal)) )))) = identifier) ;)) (return_statement "return iVar12;" 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 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ~ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) & IDENT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ IDENT) )) & (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , IDENT , LIT )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression LIT < (pointer_expression * IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (return_statement return (pointer_expression * IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) })) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement default : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , LIT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , LIT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) , IDENT , IDENT )))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return IDENT ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= (subscript_expression IDENT [ LIT ])) ))) )) (goto_statement goto statement_identifier ;)) (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 = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression 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 IDENT + (binary_expression IDENT * LIT)) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = (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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) ;) (labeled_statement statement_identifier : (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 , IDENT , IDENT )))) ;) }))) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (labeled_statement statement_identifier : (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) ;)) (return_statement return IDENT ;) })))
(function_definition "int __regparm3\nFUN_00026ea0(int param_1,int *param_2,int param_3,undefined4 param_4,uint param_5,int *param_6,\n            int param_7,undefined4 param_8)\n\n{\n  ushort uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  byte bVar6;\n  int *piVar7;\n  int *piVar8;\n  char *pcVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  int local_5c;\n  int iStack_50;\n  int iStack_4c;\n  undefined1 auStack_34 [20];\n  char cStack_20;\n  byte bStack_1f;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x26eab;\n  iVar12 = *(int *)(param_1 + 0x9c);\n  if ((~*(uint *)(iVar12 + 0x20) & param_5) != 0) {\n    uVar10 = (int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f);\n    uVar10 = (param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10;\n    uVar11 = *(uint *)(iVar12 + 0x28) & param_5;\n    bVar6 = (byte)*(undefined4 *)(iVar12 + 0x24);\n    if (uVar11 == 1 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001ee90(param_8,uVar3);\n      return iVar12;\n    }\n    if (uVar11 == 2 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001eee0(param_8,uVar3,0,0);\n      return iVar12;\n    }\n    if (uVar11 != 3 << (bVar6 & 0x1f)) {\n      uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      FUN_0002b6d0(uVar3,param_5);\n      return 0;\n    }\n    iVar12 = -1;\n    if (param_6 != (int *)0x0) {\n      uVar1 = *(ushort *)(param_6 + 2);\n      piVar8 = param_6 + 2;\n      if (uVar1 != 0) {\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }\n      iVar12 = uVar1 - 1;\n      *(short *)piVar8 = 0;\n    }\n    uVar3 = FUN_00026ea0(param_4,uVar10,param_6,0,param_8);\n    iVar5 = *(int *)(param_3 + 0x14);\n    if (iVar5 == 0) {\n      uVar4 = FUN_0001ed00(param_8,4,0);\n      iVar5 = FUN_0001f390(param_8,"int",uVar4);\n      *(int *)(param_3 + 0x14) = iVar5;\n    }\n    iVar12 = FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0);\n    return iVar12;\n  }\n  if ((param_6 != (int *)0x0) && (0 < *param_6)) {\n    piVar8 = (int *)FUN_00026be0();\n    if (*piVar8 != 0) {\n      return *piVar8;\n    }\n    iVar12 = FUN_0001eca0(param_8,piVar8,0);\n    return iVar12;\n  }\n  if (param_7 == 0) {\n    param_6 = (int *)0x0;\n  }\n  if (0x10 < param_5) {\n    iVar12 = FUN_0001ecf0(param_8);\n    return iVar12;\n  }\n  iVar12 = *(int *)(param_3 + 4 + param_5 * 4);\n  if (iVar12 != 0) {\n    return iVar12;\n  }\n  switch(param_5) {\n  default:\n    uVar3 = FUN_0001ecf0(param_8);\n    pcVar9 = "void";\n    break;\n  case 2:\n    uVar3 = FUN_0001ed00(param_8,1,0);\n    pcVar9 = "char";\n    break;\n  case 3:\n    uVar3 = FUN_0001ed00(param_8,2,0);\n    pcVar9 = "short";\n    break;\n  case 4:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "int";\n    break;\n  case 5:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "long";\n    break;\n  case 6:\n    uVar3 = FUN_0001ed20(param_8,4);\n    pcVar9 = "float";\n    break;\n  case 7:\n    uVar3 = FUN_0001ed20(param_8,8);\n    pcVar9 = "double";\n    break;\n  case 8:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,1,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 8;\n    goto code_r0x00027330;\n  case 9:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,0,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 9;\ncode_r0x00027330:\n    iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);\ncode_r0x00027300:\n    piVar8 = (int *)FUN_00026be0();\n    *piVar8 = iVar12;\n    return iVar12;\n  case 10:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ee40(param_8,0,0);\n    }\n    else {\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }\n    goto code_r0x00027300;\n  case 0xb:\n    iVar12 = FUN_0001ecf0(param_8);\n    goto code_r0x00027186;\n  case 0xc:\n    uVar3 = FUN_0001ed00(param_8,1,1);\n    pcVar9 = "unsigned char";\n    break;\n  case 0xd:\n    uVar3 = FUN_0001ed00(param_8,2,1);\n    pcVar9 = "unsigned short";\n    break;\n  case 0xe:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned int";\n    break;\n  case 0xf:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned long";\n    break;\n  case 0x10:\n    uVar3 = FUN_0001ed20(param_8,0xc);\n    pcVar9 = "long double";\n  }\n  iVar12 = FUN_0001f390(param_8,pcVar9,uVar3);\ncode_r0x00027186:\n  *(int *)(param_3 + 4 + param_5 * 4) = iVar12;\n  return iVar12;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00026ea0(int param_1,int *param_2,int param_3,undefined4 param_4,uint param_5,int *param_6,\n            int param_7,undefined4 param_8)" (identifier "FUN_00026ea0") (parameter_list "(int param_1,int *param_2,int param_3,undefined4 param_4,uint param_5,int *param_6,\n            int param_7,undefined4 param_8)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (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 "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "uint param_5" (type_identifier "uint") (identifier "param_5")) (, ",") (parameter_declaration "int *param_6" (primitive_type "int") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) (, ",") (parameter_declaration "int param_7" (primitive_type "int") (identifier "param_7")) (, ",") (parameter_declaration "undefined4 param_8" (type_identifier "undefined4") (identifier "param_8")) () ")"))) (compound_statement "{\n  ushort uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  byte bVar6;\n  int *piVar7;\n  int *piVar8;\n  char *pcVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  int local_5c;\n  int iStack_50;\n  int iStack_4c;\n  undefined1 auStack_34 [20];\n  char cStack_20;\n  byte bStack_1f;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x26eab;\n  iVar12 = *(int *)(param_1 + 0x9c);\n  if ((~*(uint *)(iVar12 + 0x20) & param_5) != 0) {\n    uVar10 = (int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f);\n    uVar10 = (param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10;\n    uVar11 = *(uint *)(iVar12 + 0x28) & param_5;\n    bVar6 = (byte)*(undefined4 *)(iVar12 + 0x24);\n    if (uVar11 == 1 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001ee90(param_8,uVar3);\n      return iVar12;\n    }\n    if (uVar11 == 2 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001eee0(param_8,uVar3,0,0);\n      return iVar12;\n    }\n    if (uVar11 != 3 << (bVar6 & 0x1f)) {\n      uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      FUN_0002b6d0(uVar3,param_5);\n      return 0;\n    }\n    iVar12 = -1;\n    if (param_6 != (int *)0x0) {\n      uVar1 = *(ushort *)(param_6 + 2);\n      piVar8 = param_6 + 2;\n      if (uVar1 != 0) {\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }\n      iVar12 = uVar1 - 1;\n      *(short *)piVar8 = 0;\n    }\n    uVar3 = FUN_00026ea0(param_4,uVar10,param_6,0,param_8);\n    iVar5 = *(int *)(param_3 + 0x14);\n    if (iVar5 == 0) {\n      uVar4 = FUN_0001ed00(param_8,4,0);\n      iVar5 = FUN_0001f390(param_8,"int",uVar4);\n      *(int *)(param_3 + 0x14) = iVar5;\n    }\n    iVar12 = FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0);\n    return iVar12;\n  }\n  if ((param_6 != (int *)0x0) && (0 < *param_6)) {\n    piVar8 = (int *)FUN_00026be0();\n    if (*piVar8 != 0) {\n      return *piVar8;\n    }\n    iVar12 = FUN_0001eca0(param_8,piVar8,0);\n    return iVar12;\n  }\n  if (param_7 == 0) {\n    param_6 = (int *)0x0;\n  }\n  if (0x10 < param_5) {\n    iVar12 = FUN_0001ecf0(param_8);\n    return iVar12;\n  }\n  iVar12 = *(int *)(param_3 + 4 + param_5 * 4);\n  if (iVar12 != 0) {\n    return iVar12;\n  }\n  switch(param_5) {\n  default:\n    uVar3 = FUN_0001ecf0(param_8);\n    pcVar9 = "void";\n    break;\n  case 2:\n    uVar3 = FUN_0001ed00(param_8,1,0);\n    pcVar9 = "char";\n    break;\n  case 3:\n    uVar3 = FUN_0001ed00(param_8,2,0);\n    pcVar9 = "short";\n    break;\n  case 4:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "int";\n    break;\n  case 5:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "long";\n    break;\n  case 6:\n    uVar3 = FUN_0001ed20(param_8,4);\n    pcVar9 = "float";\n    break;\n  case 7:\n    uVar3 = FUN_0001ed20(param_8,8);\n    pcVar9 = "double";\n    break;\n  case 8:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,1,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 8;\n    goto code_r0x00027330;\n  case 9:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,0,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 9;\ncode_r0x00027330:\n    iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);\ncode_r0x00027300:\n    piVar8 = (int *)FUN_00026be0();\n    *piVar8 = iVar12;\n    return iVar12;\n  case 10:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ee40(param_8,0,0);\n    }\n    else {\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }\n    goto code_r0x00027300;\n  case 0xb:\n    iVar12 = FUN_0001ecf0(param_8);\n    goto code_r0x00027186;\n  case 0xc:\n    uVar3 = FUN_0001ed00(param_8,1,1);\n    pcVar9 = "unsigned char";\n    break;\n  case 0xd:\n    uVar3 = FUN_0001ed00(param_8,2,1);\n    pcVar9 = "unsigned short";\n    break;\n  case 0xe:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned int";\n    break;\n  case 0xf:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned long";\n    break;\n  case 0x10:\n    uVar3 = FUN_0001ed20(param_8,0xc);\n    pcVar9 = "long double";\n  }\n  iVar12 = FUN_0001f390(param_8,pcVar9,uVar3);\ncode_r0x00027186:\n  *(int *)(param_3 + 4 + param_5 * 4) = iVar12;\n  return iVar12;\n}" ({ "{") (declaration "ushort uVar1;" (type_identifier "ushort") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "byte bVar6;" (type_identifier "byte") (identifier "bVar6") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int local_5c;" (primitive_type "int") (identifier "local_5c") (; ";")) (declaration "int iStack_50;" (primitive_type "int") (identifier "iStack_50") (; ";")) (declaration "int iStack_4c;" (primitive_type "int") (identifier "iStack_4c") (; ";")) (declaration "undefined1 auStack_34 [20];" (type_identifier "undefined1") (array_declarator "auStack_34 [20]" (identifier "auStack_34") ([ "[") (number_literal "20") (] "]")) (; ";")) (declaration "char cStack_20;" (primitive_type "char") (identifier "cStack_20") (; ";")) (declaration "byte bStack_1f;" (type_identifier "byte") (identifier "bStack_1f") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x26eab;" (assignment_expression "uStack_14 = 0x26eab" (identifier "uStack_14") (= "=") (number_literal "0x26eab")) (; ";")) (expression_statement "iVar12 = *(int *)(param_1 + 0x9c);" (assignment_expression "iVar12 = *(int *)(param_1 + 0x9c)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(param_1 + 0x9c)" (* "*") (cast_expression "(int *)(param_1 + 0x9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x9c)" (( "(") (binary_expression "param_1 + 0x9c" (identifier "param_1") (+ "+") (number_literal "0x9c")) () ")"))))) (; ";")) (if_statement "if ((~*(uint *)(iVar12 + 0x20) & param_5) != 0) {\n    uVar10 = (int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f);\n    uVar10 = (param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10;\n    uVar11 = *(uint *)(iVar12 + 0x28) & param_5;\n    bVar6 = (byte)*(undefined4 *)(iVar12 + 0x24);\n    if (uVar11 == 1 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001ee90(param_8,uVar3);\n      return iVar12;\n    }\n    if (uVar11 == 2 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001eee0(param_8,uVar3,0,0);\n      return iVar12;\n    }\n    if (uVar11 != 3 << (bVar6 & 0x1f)) {\n      uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      FUN_0002b6d0(uVar3,param_5);\n      return 0;\n    }\n    iVar12 = -1;\n    if (param_6 != (int *)0x0) {\n      uVar1 = *(ushort *)(param_6 + 2);\n      piVar8 = param_6 + 2;\n      if (uVar1 != 0) {\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }\n      iVar12 = uVar1 - 1;\n      *(short *)piVar8 = 0;\n    }\n    uVar3 = FUN_00026ea0(param_4,uVar10,param_6,0,param_8);\n    iVar5 = *(int *)(param_3 + 0x14);\n    if (iVar5 == 0) {\n      uVar4 = FUN_0001ed00(param_8,4,0);\n      iVar5 = FUN_0001f390(param_8,"int",uVar4);\n      *(int *)(param_3 + 0x14) = iVar5;\n    }\n    iVar12 = FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0);\n    return iVar12;\n  }" (if "if") (parenthesized_expression "((~*(uint *)(iVar12 + 0x20) & param_5) != 0)" (( "(") (binary_expression "(~*(uint *)(iVar12 + 0x20) & param_5) != 0" (parenthesized_expression "(~*(uint *)(iVar12 + 0x20) & param_5)" (( "(") (binary_expression "~*(uint *)(iVar12 + 0x20) & param_5" (unary_expression "~*(uint *)(iVar12 + 0x20)" (~ "~") (pointer_expression "*(uint *)(iVar12 + 0x20)" (* "*") (cast_expression "(uint *)(iVar12 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x20)" (( "(") (binary_expression "iVar12 + 0x20" (identifier "iVar12") (+ "+") (number_literal "0x20")) () ")"))))) (& "&") (identifier "param_5")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar10 = (int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f);\n    uVar10 = (param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10;\n    uVar11 = *(uint *)(iVar12 + 0x28) & param_5;\n    bVar6 = (byte)*(undefined4 *)(iVar12 + 0x24);\n    if (uVar11 == 1 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001ee90(param_8,uVar3);\n      return iVar12;\n    }\n    if (uVar11 == 2 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001eee0(param_8,uVar3,0,0);\n      return iVar12;\n    }\n    if (uVar11 != 3 << (bVar6 & 0x1f)) {\n      uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      FUN_0002b6d0(uVar3,param_5);\n      return 0;\n    }\n    iVar12 = -1;\n    if (param_6 != (int *)0x0) {\n      uVar1 = *(ushort *)(param_6 + 2);\n      piVar8 = param_6 + 2;\n      if (uVar1 != 0) {\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }\n      iVar12 = uVar1 - 1;\n      *(short *)piVar8 = 0;\n    }\n    uVar3 = FUN_00026ea0(param_4,uVar10,param_6,0,param_8);\n    iVar5 = *(int *)(param_3 + 0x14);\n    if (iVar5 == 0) {\n      uVar4 = FUN_0001ed00(param_8,4,0);\n      iVar5 = FUN_0001f390(param_8,"int",uVar4);\n      *(int *)(param_3 + 0x14) = iVar5;\n    }\n    iVar12 = FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0);\n    return iVar12;\n  }" ({ "{") (expression_statement "uVar10 = (int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f);" (assignment_expression "uVar10 = (int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f)" (identifier "uVar10") (= "=") (binary_expression "(int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f)" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (>> ">>") (parenthesized_expression "((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f)" (( "(") (binary_expression "(byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f" (binary_expression "(byte)*(undefined4 *)(iVar12 + 0x2c)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (cast_expression "(undefined4 *)(iVar12 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x2c)" (( "(") (binary_expression "iVar12 + 0x2c" (identifier "iVar12") (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar10 = (param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10;" (assignment_expression "uVar10 = (param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10" (identifier "uVar10") (= "=") (binary_expression "(param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10" (binary_expression "(param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20)" (parenthesized_expression "(param_5 ^ uVar10)" (( "(") (binary_expression "param_5 ^ uVar10" (identifier "param_5") (^ "^") (identifier "uVar10")) () ")")) (& "&") (pointer_expression "*(uint *)(iVar12 + 0x20)" (* "*") (cast_expression "(uint *)(iVar12 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x20)" (( "(") (binary_expression "iVar12 + 0x20" (identifier "iVar12") (+ "+") (number_literal "0x20")) () ")"))))) (^ "^") (identifier "uVar10"))) (; ";")) (expression_statement "uVar11 = *(uint *)(iVar12 + 0x28) & param_5;" (assignment_expression "uVar11 = *(uint *)(iVar12 + 0x28) & param_5" (identifier "uVar11") (= "=") (binary_expression "*(uint *)(iVar12 + 0x28) & param_5" (pointer_expression "*(uint *)(iVar12 + 0x28)" (* "*") (cast_expression "(uint *)(iVar12 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x28)" (( "(") (binary_expression "iVar12 + 0x28" (identifier "iVar12") (+ "+") (number_literal "0x28")) () ")")))) (& "&") (identifier "param_5"))) (; ";")) (expression_statement "bVar6 = (byte)*(undefined4 *)(iVar12 + 0x24);" (assignment_expression "bVar6 = (byte)*(undefined4 *)(iVar12 + 0x24)" (identifier "bVar6") (= "=") (binary_expression "(byte)*(undefined4 *)(iVar12 + 0x24)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (cast_expression "(undefined4 *)(iVar12 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x24)" (( "(") (binary_expression "iVar12 + 0x24" (identifier "iVar12") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (if_statement "if (uVar11 == 1 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001ee90(param_8,uVar3);\n      return iVar12;\n    }" (if "if") (parenthesized_expression "(uVar11 == 1 << (bVar6 & 0x1f))" (( "(") (binary_expression "uVar11 == 1 << (bVar6 & 0x1f)" (identifier "uVar11") (== "==") (binary_expression "1 << (bVar6 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(bVar6 & 0x1f)" (( "(") (binary_expression "bVar6 & 0x1f" (identifier "bVar6") (& "&") (number_literal "0x1f")) () ")")))) () ")")) (compound_statement "{\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001ee90(param_8,uVar3);\n      return iVar12;\n    }" ({ "{") (expression_statement "uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);" (assignment_expression "uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8)" (identifier "uVar3") (= "=") (call_expression "FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8)" (identifier "FUN_00026ea0") (argument_list "(param_4,uVar10,param_6,param_7,param_8)" (( "(") (identifier "param_4") (, ",") (identifier "uVar10") (, ",") (identifier "param_6") (, ",") (identifier "param_7") (, ",") (identifier "param_8") () ")")))) (; ";")) (expression_statement "iVar12 = FUN_0001ee90(param_8,uVar3);" (assignment_expression "iVar12 = FUN_0001ee90(param_8,uVar3)" (identifier "iVar12") (= "=") (call_expression "FUN_0001ee90(param_8,uVar3)" (identifier "FUN_0001ee90") (argument_list "(param_8,uVar3)" (( "(") (identifier "param_8") (, ",") (identifier "uVar3") () ")")))) (; ";")) (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (} "}"))) (if_statement "if (uVar11 == 2 << (bVar6 & 0x1f)) {\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001eee0(param_8,uVar3,0,0);\n      return iVar12;\n    }" (if "if") (parenthesized_expression "(uVar11 == 2 << (bVar6 & 0x1f))" (( "(") (binary_expression "uVar11 == 2 << (bVar6 & 0x1f)" (identifier "uVar11") (== "==") (binary_expression "2 << (bVar6 & 0x1f)" (number_literal "2") (<< "<<") (parenthesized_expression "(bVar6 & 0x1f)" (( "(") (binary_expression "bVar6 & 0x1f" (identifier "bVar6") (& "&") (number_literal "0x1f")) () ")")))) () ")")) (compound_statement "{\n      uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);\n      iVar12 = FUN_0001eee0(param_8,uVar3,0,0);\n      return iVar12;\n    }" ({ "{") (expression_statement "uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8);" (assignment_expression "uVar3 = FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8)" (identifier "uVar3") (= "=") (call_expression "FUN_00026ea0(param_4,uVar10,param_6,param_7,param_8)" (identifier "FUN_00026ea0") (argument_list "(param_4,uVar10,param_6,param_7,param_8)" (( "(") (identifier "param_4") (, ",") (identifier "uVar10") (, ",") (identifier "param_6") (, ",") (identifier "param_7") (, ",") (identifier "param_8") () ")")))) (; ";")) (expression_statement "iVar12 = FUN_0001eee0(param_8,uVar3,0,0);" (assignment_expression "iVar12 = FUN_0001eee0(param_8,uVar3,0,0)" (identifier "iVar12") (= "=") (call_expression "FUN_0001eee0(param_8,uVar3,0,0)" (identifier "FUN_0001eee0") (argument_list "(param_8,uVar3,0,0)" (( "(") (identifier "param_8") (, ",") (identifier "uVar3") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (} "}"))) (if_statement "if (uVar11 != 3 << (bVar6 & 0x1f)) {\n      uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      FUN_0002b6d0(uVar3,param_5);\n      return 0;\n    }" (if "if") (parenthesized_expression "(uVar11 != 3 << (bVar6 & 0x1f))" (( "(") (binary_expression "uVar11 != 3 << (bVar6 & 0x1f)" (identifier "uVar11") (!= "!=") (binary_expression "3 << (bVar6 & 0x1f)" (number_literal "3") (<< "<<") (parenthesized_expression "(bVar6 & 0x1f)" (( "(") (binary_expression "bVar6 & 0x1f" (identifier "bVar6") (& "&") (number_literal "0x1f")) () ")")))) () ")")) (compound_statement "{\n      uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);\n      FUN_0002b6d0(uVar3,param_5);\n      return 0;\n    }" ({ "{") (expression_statement "uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);" (assignment_expression "uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"parse_coff_type: Bad type code 0x%x",5)" (identifier "dcgettext") (argument_list "(0,"parse_coff_type: Bad type code 0x%x",5)" (( "(") (number_literal "0") (, ",") (string_literal ""parse_coff_type: Bad type code 0x%x"" (" """) (string_content "parse_coff_type: Bad type code 0x%x") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002b6d0(uVar3,param_5);" (call_expression "FUN_0002b6d0(uVar3,param_5)" (identifier "FUN_0002b6d0") (argument_list "(uVar3,param_5)" (( "(") (identifier "uVar3") (, ",") (identifier "param_5") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar12 = -1;" (assignment_expression "iVar12 = -1" (identifier "iVar12") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (param_6 != (int *)0x0) {\n      uVar1 = *(ushort *)(param_6 + 2);\n      piVar8 = param_6 + 2;\n      if (uVar1 != 0) {\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }\n      iVar12 = uVar1 - 1;\n      *(short *)piVar8 = 0;\n    }" (if "if") (parenthesized_expression "(param_6 != (int *)0x0)" (( "(") (binary_expression "param_6 != (int *)0x0" (identifier "param_6") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      uVar1 = *(ushort *)(param_6 + 2);\n      piVar8 = param_6 + 2;\n      if (uVar1 != 0) {\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }\n      iVar12 = uVar1 - 1;\n      *(short *)piVar8 = 0;\n    }" ({ "{") (expression_statement "uVar1 = *(ushort *)(param_6 + 2);" (assignment_expression "uVar1 = *(ushort *)(param_6 + 2)" (identifier "uVar1") (= "=") (pointer_expression "*(ushort *)(param_6 + 2)" (* "*") (cast_expression "(ushort *)(param_6 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 2)" (( "(") (binary_expression "param_6 + 2" (identifier "param_6") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "piVar8 = param_6 + 2;" (assignment_expression "piVar8 = param_6 + 2" (identifier "piVar8") (= "=") (binary_expression "param_6 + 2" (identifier "param_6") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (uVar1 != 0) {\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }" (if "if") (parenthesized_expression "(uVar1 != 0)" (( "(") (binary_expression "uVar1 != 0" (identifier "uVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar12 = 0;\n        piVar7 = piVar8;\n        do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);\n      }" ({ "{") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar7 = piVar8;" (assignment_expression "piVar7 = piVar8" (identifier "piVar7") (= "=") (identifier "piVar8")) (; ";")) (do_statement "do {\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        } while (iVar12 != 3);" (do "do") (compound_statement "{\n          iVar12 = iVar12 + 1;\n          piVar8 = (int *)((int)piVar7 + 2);\n          *(short *)piVar7 = *(short *)((int)piVar7 + 2);\n          if (*(short *)((int)piVar7 + 2) == 0) break;\n          piVar7 = piVar8;\n        }" ({ "{") (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar8 = (int *)((int)piVar7 + 2);" (assignment_expression "piVar8 = (int *)((int)piVar7 + 2)" (identifier "piVar8") (= "=") (cast_expression "(int *)((int)piVar7 + 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar7 + 2)" (( "(") (binary_expression "(int)piVar7 + 2" (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "*(short *)piVar7 = *(short *)((int)piVar7 + 2);" (assignment_expression "*(short *)piVar7 = *(short *)((int)piVar7 + 2)" (pointer_expression "*(short *)piVar7" (* "*") (cast_expression "(short *)piVar7" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar7"))) (= "=") (pointer_expression "*(short *)((int)piVar7 + 2)" (* "*") (cast_expression "(short *)((int)piVar7 + 2)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar7 + 2)" (( "(") (binary_expression "(int)piVar7 + 2" (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7")) (+ "+") (number_literal "2")) () ")"))))) (; ";")) (if_statement "if (*(short *)((int)piVar7 + 2) == 0) break;" (if "if") (parenthesized_expression "(*(short *)((int)piVar7 + 2) == 0)" (( "(") (binary_expression "*(short *)((int)piVar7 + 2) == 0" (pointer_expression "*(short *)((int)piVar7 + 2)" (* "*") (cast_expression "(short *)((int)piVar7 + 2)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar7 + 2)" (( "(") (binary_expression "(int)piVar7 + 2" (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7")) (+ "+") (number_literal "2")) () ")")))) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "piVar7 = piVar8;" (assignment_expression "piVar7 = piVar8" (identifier "piVar7") (= "=") (identifier "piVar8")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar12 != 3)" (( "(") (binary_expression "iVar12 != 3" (identifier "iVar12") (!= "!=") (number_literal "3")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar12 = uVar1 - 1;" (assignment_expression "iVar12 = uVar1 - 1" (identifier "iVar12") (= "=") (binary_expression "uVar1 - 1" (identifier "uVar1") (- "-") (number_literal "1"))) (; ";")) (expression_statement "*(short *)piVar8 = 0;" (assignment_expression "*(short *)piVar8 = 0" (pointer_expression "*(short *)piVar8" (* "*") (cast_expression "(short *)piVar8" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar8"))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar3 = FUN_00026ea0(param_4,uVar10,param_6,0,param_8);" (assignment_expression "uVar3 = FUN_00026ea0(param_4,uVar10,param_6,0,param_8)" (identifier "uVar3") (= "=") (call_expression "FUN_00026ea0(param_4,uVar10,param_6,0,param_8)" (identifier "FUN_00026ea0") (argument_list "(param_4,uVar10,param_6,0,param_8)" (( "(") (identifier "param_4") (, ",") (identifier "uVar10") (, ",") (identifier "param_6") (, ",") (number_literal "0") (, ",") (identifier "param_8") () ")")))) (; ";")) (expression_statement "iVar5 = *(int *)(param_3 + 0x14);" (assignment_expression "iVar5 = *(int *)(param_3 + 0x14)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_3 + 0x14)" (* "*") (cast_expression "(int *)(param_3 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x14)" (( "(") (binary_expression "param_3 + 0x14" (identifier "param_3") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (iVar5 == 0) {\n      uVar4 = FUN_0001ed00(param_8,4,0);\n      iVar5 = FUN_0001f390(param_8,"int",uVar4);\n      *(int *)(param_3 + 0x14) = iVar5;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar4 = FUN_0001ed00(param_8,4,0);\n      iVar5 = FUN_0001f390(param_8,"int",uVar4);\n      *(int *)(param_3 + 0x14) = iVar5;\n    }" ({ "{") (expression_statement "uVar4 = FUN_0001ed00(param_8,4,0);" (assignment_expression "uVar4 = FUN_0001ed00(param_8,4,0)" (identifier "uVar4") (= "=") (call_expression "FUN_0001ed00(param_8,4,0)" (identifier "FUN_0001ed00") (argument_list "(param_8,4,0)" (( "(") (identifier "param_8") (, ",") (number_literal "4") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar5 = FUN_0001f390(param_8,"int",uVar4);" (assignment_expression "iVar5 = FUN_0001f390(param_8,"int",uVar4)" (identifier "iVar5") (= "=") (call_expression "FUN_0001f390(param_8,"int",uVar4)" (identifier "FUN_0001f390") (argument_list "(param_8,"int",uVar4)" (( "(") (identifier "param_8") (, ",") (string_literal ""int"" (" """) (string_content "int") (" """)) (, ",") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "*(int *)(param_3 + 0x14) = iVar5;" (assignment_expression "*(int *)(param_3 + 0x14) = iVar5" (pointer_expression "*(int *)(param_3 + 0x14)" (* "*") (cast_expression "(int *)(param_3 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x14)" (( "(") (binary_expression "param_3 + 0x14" (identifier "param_3") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (} "}"))) (expression_statement "iVar12 = FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0);" (assignment_expression "iVar12 = FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0)" (identifier "iVar12") (= "=") (call_expression "FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0)" (identifier "FUN_0001efd0") (argument_list "(param_8,uVar3,iVar5,0,iVar12,0)" (( "(") (identifier "param_8") (, ",") (identifier "uVar3") (, ",") (identifier "iVar5") (, ",") (number_literal "0") (, ",") (identifier "iVar12") (, ",") (number_literal "0") () ")")))) (; ";")) (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (} "}"))) (if_statement "if ((param_6 != (int *)0x0) && (0 < *param_6)) {\n    piVar8 = (int *)FUN_00026be0();\n    if (*piVar8 != 0) {\n      return *piVar8;\n    }\n    iVar12 = FUN_0001eca0(param_8,piVar8,0);\n    return iVar12;\n  }" (if "if") (parenthesized_expression "((param_6 != (int *)0x0) && (0 < *param_6))" (( "(") (binary_expression "(param_6 != (int *)0x0) && (0 < *param_6)" (parenthesized_expression "(param_6 != (int *)0x0)" (( "(") (binary_expression "param_6 != (int *)0x0" (identifier "param_6") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(0 < *param_6)" (( "(") (binary_expression "0 < *param_6" (number_literal "0") (< "<") (pointer_expression "*param_6" (* "*") (identifier "param_6"))) () ")"))) () ")")) (compound_statement "{\n    piVar8 = (int *)FUN_00026be0();\n    if (*piVar8 != 0) {\n      return *piVar8;\n    }\n    iVar12 = FUN_0001eca0(param_8,piVar8,0);\n    return iVar12;\n  }" ({ "{") (expression_statement "piVar8 = (int *)FUN_00026be0();" (assignment_expression "piVar8 = (int *)FUN_00026be0()" (identifier "piVar8") (= "=") (cast_expression "(int *)FUN_00026be0()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00026be0()" (identifier "FUN_00026be0") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (*piVar8 != 0) {\n      return *piVar8;\n    }" (if "if") (parenthesized_expression "(*piVar8 != 0)" (( "(") (binary_expression "*piVar8 != 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return *piVar8;\n    }" ({ "{") (return_statement "return *piVar8;" (return "return") (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (} "}"))) (expression_statement "iVar12 = FUN_0001eca0(param_8,piVar8,0);" (assignment_expression "iVar12 = FUN_0001eca0(param_8,piVar8,0)" (identifier "iVar12") (= "=") (call_expression "FUN_0001eca0(param_8,piVar8,0)" (identifier "FUN_0001eca0") (argument_list "(param_8,piVar8,0)" (( "(") (identifier "param_8") (, ",") (identifier "piVar8") (, ",") (number_literal "0") () ")")))) (; ";")) (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (} "}"))) (if_statement "if (param_7 == 0) {\n    param_6 = (int *)0x0;\n  }" (if "if") (parenthesized_expression "(param_7 == 0)" (( "(") (binary_expression "param_7 == 0" (identifier "param_7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    param_6 = (int *)0x0;\n  }" ({ "{") (expression_statement "param_6 = (int *)0x0;" (assignment_expression "param_6 = (int *)0x0" (identifier "param_6") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (if_statement "if (0x10 < param_5) {\n    iVar12 = FUN_0001ecf0(param_8);\n    return iVar12;\n  }" (if "if") (parenthesized_expression "(0x10 < param_5)" (( "(") (binary_expression "0x10 < param_5" (number_literal "0x10") (< "<") (identifier "param_5")) () ")")) (compound_statement "{\n    iVar12 = FUN_0001ecf0(param_8);\n    return iVar12;\n  }" ({ "{") (expression_statement "iVar12 = FUN_0001ecf0(param_8);" (assignment_expression "iVar12 = FUN_0001ecf0(param_8)" (identifier "iVar12") (= "=") (call_expression "FUN_0001ecf0(param_8)" (identifier "FUN_0001ecf0") (argument_list "(param_8)" (( "(") (identifier "param_8") () ")")))) (; ";")) (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (} "}"))) (expression_statement "iVar12 = *(int *)(param_3 + 4 + param_5 * 4);" (assignment_expression "iVar12 = *(int *)(param_3 + 4 + param_5 * 4)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(param_3 + 4 + param_5 * 4)" (* "*") (cast_expression "(int *)(param_3 + 4 + param_5 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 4 + param_5 * 4)" (( "(") (binary_expression "param_3 + 4 + param_5 * 4" (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) (+ "+") (binary_expression "param_5 * 4" (identifier "param_5") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (iVar12 != 0) {\n    return iVar12;\n  }" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return iVar12;\n  }" ({ "{") (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (} "}"))) (switch_statement "switch(param_5) {\n  default:\n    uVar3 = FUN_0001ecf0(param_8);\n    pcVar9 = "void";\n    break;\n  case 2:\n    uVar3 = FUN_0001ed00(param_8,1,0);\n    pcVar9 = "char";\n    break;\n  case 3:\n    uVar3 = FUN_0001ed00(param_8,2,0);\n    pcVar9 = "short";\n    break;\n  case 4:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "int";\n    break;\n  case 5:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "long";\n    break;\n  case 6:\n    uVar3 = FUN_0001ed20(param_8,4);\n    pcVar9 = "float";\n    break;\n  case 7:\n    uVar3 = FUN_0001ed20(param_8,8);\n    pcVar9 = "double";\n    break;\n  case 8:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,1,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 8;\n    goto code_r0x00027330;\n  case 9:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,0,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 9;\ncode_r0x00027330:\n    iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);\ncode_r0x00027300:\n    piVar8 = (int *)FUN_00026be0();\n    *piVar8 = iVar12;\n    return iVar12;\n  case 10:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ee40(param_8,0,0);\n    }\n    else {\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }\n    goto code_r0x00027300;\n  case 0xb:\n    iVar12 = FUN_0001ecf0(param_8);\n    goto code_r0x00027186;\n  case 0xc:\n    uVar3 = FUN_0001ed00(param_8,1,1);\n    pcVar9 = "unsigned char";\n    break;\n  case 0xd:\n    uVar3 = FUN_0001ed00(param_8,2,1);\n    pcVar9 = "unsigned short";\n    break;\n  case 0xe:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned int";\n    break;\n  case 0xf:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned long";\n    break;\n  case 0x10:\n    uVar3 = FUN_0001ed20(param_8,0xc);\n    pcVar9 = "long double";\n  }" (switch "switch") (parenthesized_expression "(param_5)" (( "(") (identifier "param_5") () ")")) (compound_statement "{\n  default:\n    uVar3 = FUN_0001ecf0(param_8);\n    pcVar9 = "void";\n    break;\n  case 2:\n    uVar3 = FUN_0001ed00(param_8,1,0);\n    pcVar9 = "char";\n    break;\n  case 3:\n    uVar3 = FUN_0001ed00(param_8,2,0);\n    pcVar9 = "short";\n    break;\n  case 4:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "int";\n    break;\n  case 5:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "long";\n    break;\n  case 6:\n    uVar3 = FUN_0001ed20(param_8,4);\n    pcVar9 = "float";\n    break;\n  case 7:\n    uVar3 = FUN_0001ed20(param_8,8);\n    pcVar9 = "double";\n    break;\n  case 8:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,1,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 8;\n    goto code_r0x00027330;\n  case 9:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,0,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 9;\ncode_r0x00027330:\n    iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);\ncode_r0x00027300:\n    piVar8 = (int *)FUN_00026be0();\n    *piVar8 = iVar12;\n    return iVar12;\n  case 10:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ee40(param_8,0,0);\n    }\n    else {\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }\n    goto code_r0x00027300;\n  case 0xb:\n    iVar12 = FUN_0001ecf0(param_8);\n    goto code_r0x00027186;\n  case 0xc:\n    uVar3 = FUN_0001ed00(param_8,1,1);\n    pcVar9 = "unsigned char";\n    break;\n  case 0xd:\n    uVar3 = FUN_0001ed00(param_8,2,1);\n    pcVar9 = "unsigned short";\n    break;\n  case 0xe:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned int";\n    break;\n  case 0xf:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned long";\n    break;\n  case 0x10:\n    uVar3 = FUN_0001ed20(param_8,0xc);\n    pcVar9 = "long double";\n  }" ({ "{") (case_statement "default:\n    uVar3 = FUN_0001ecf0(param_8);\n    pcVar9 = "void";\n    break;" (default "default") (: ":") (expression_statement "uVar3 = FUN_0001ecf0(param_8);" (assignment_expression "uVar3 = FUN_0001ecf0(param_8)" (identifier "uVar3") (= "=") (call_expression "FUN_0001ecf0(param_8)" (identifier "FUN_0001ecf0") (argument_list "(param_8)" (( "(") (identifier "param_8") () ")")))) (; ";")) (expression_statement "pcVar9 = "void";" (assignment_expression "pcVar9 = "void"" (identifier "pcVar9") (= "=") (string_literal ""void"" (" """) (string_content "void") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:\n    uVar3 = FUN_0001ed00(param_8,1,0);\n    pcVar9 = "char";\n    break;" (case "case") (number_literal "2") (: ":") (expression_statement "uVar3 = FUN_0001ed00(param_8,1,0);" (assignment_expression "uVar3 = FUN_0001ed00(param_8,1,0)" (identifier "uVar3") (= "=") (call_expression "FUN_0001ed00(param_8,1,0)" (identifier "FUN_0001ed00") (argument_list "(param_8,1,0)" (( "(") (identifier "param_8") (, ",") (number_literal "1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "pcVar9 = "char";" (assignment_expression "pcVar9 = "char"" (identifier "pcVar9") (= "=") (string_literal ""char"" (" """) (string_content "char") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 3:\n    uVar3 = FUN_0001ed00(param_8,2,0);\n    pcVar9 = "short";\n    break;" (case "case") (number_literal "3") (: ":") (expression_statement "uVar3 = FUN_0001ed00(param_8,2,0);" (assignment_expression "uVar3 = FUN_0001ed00(param_8,2,0)" (identifier "uVar3") (= "=") (call_expression "FUN_0001ed00(param_8,2,0)" (identifier "FUN_0001ed00") (argument_list "(param_8,2,0)" (( "(") (identifier "param_8") (, ",") (number_literal "2") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "pcVar9 = "short";" (assignment_expression "pcVar9 = "short"" (identifier "pcVar9") (= "=") (string_literal ""short"" (" """) (string_content "short") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "int";\n    break;" (case "case") (number_literal "4") (: ":") (expression_statement "uVar3 = FUN_0001ed00(param_8,4,0);" (assignment_expression "uVar3 = FUN_0001ed00(param_8,4,0)" (identifier "uVar3") (= "=") (call_expression "FUN_0001ed00(param_8,4,0)" (identifier "FUN_0001ed00") (argument_list "(param_8,4,0)" (( "(") (identifier "param_8") (, ",") (number_literal "4") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "pcVar9 = "int";" (assignment_expression "pcVar9 = "int"" (identifier "pcVar9") (= "=") (string_literal ""int"" (" """) (string_content "int") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 5:\n    uVar3 = FUN_0001ed00(param_8,4,0);\n    pcVar9 = "long";\n    break;" (case "case") (number_literal "5") (: ":") (expression_statement "uVar3 = FUN_0001ed00(param_8,4,0);" (assignment_expression "uVar3 = FUN_0001ed00(param_8,4,0)" (identifier "uVar3") (= "=") (call_expression "FUN_0001ed00(param_8,4,0)" (identifier "FUN_0001ed00") (argument_list "(param_8,4,0)" (( "(") (identifier "param_8") (, ",") (number_literal "4") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "pcVar9 = "long";" (assignment_expression "pcVar9 = "long"" (identifier "pcVar9") (= "=") (string_literal ""long"" (" """) (string_content "long") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n    uVar3 = FUN_0001ed20(param_8,4);\n    pcVar9 = "float";\n    break;" (case "case") (number_literal "6") (: ":") (expression_statement "uVar3 = FUN_0001ed20(param_8,4);" (assignment_expression "uVar3 = FUN_0001ed20(param_8,4)" (identifier "uVar3") (= "=") (call_expression "FUN_0001ed20(param_8,4)" (identifier "FUN_0001ed20") (argument_list "(param_8,4)" (( "(") (identifier "param_8") (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "pcVar9 = "float";" (assignment_expression "pcVar9 = "float"" (identifier "pcVar9") (= "=") (string_literal ""float"" (" """) (string_content "float") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 7:\n    uVar3 = FUN_0001ed20(param_8,8);\n    pcVar9 = "double";\n    break;" (case "case") (number_literal "7") (: ":") (expression_statement "uVar3 = FUN_0001ed20(param_8,8);" (assignment_expression "uVar3 = FUN_0001ed20(param_8,8)" (identifier "uVar3") (= "=") (call_expression "FUN_0001ed20(param_8,8)" (identifier "FUN_0001ed20") (argument_list "(param_8,8)" (( "(") (identifier "param_8") (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "pcVar9 = "double";" (assignment_expression "pcVar9 = "double"" (identifier "pcVar9") (= "=") (string_literal ""double"" (" """) (string_content "double") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 8:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,1,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 8;\n    goto code_r0x00027330;" (case "case") (number_literal "8") (: ":") (if_statement "if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,1,0,0);\n      goto code_r0x00027300;\n    }" (if "if") (parenthesized_expression "(param_6 == (int *)0x0)" (( "(") (binary_expression "param_6 == (int *)0x0" (identifier "param_6") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar12 = FUN_0001ed50(param_8,1,0,0);\n      goto code_r0x00027300;\n    }" ({ "{") (expression_statement "iVar12 = FUN_0001ed50(param_8,1,0,0);" (assignment_expression "iVar12 = FUN_0001ed50(param_8,1,0,0)" (identifier "iVar12") (= "=") (call_expression "FUN_0001ed50(param_8,1,0,0)" (identifier "FUN_0001ed50") (argument_list "(param_8,1,0,0)" (( "(") (identifier "param_8") (, ",") (number_literal "1") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (goto_statement "goto code_r0x00027300;" (goto "goto") (statement_identifier "code_r0x00027300") (; ";")) (} "}"))) (expression_statement "iVar12 = param_6[3];" (assignment_expression "iVar12 = param_6[3]" (identifier "iVar12") (= "=") (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar3 = 8;" (assignment_expression "uVar3 = 8" (identifier "uVar3") (= "=") (number_literal "8")) (; ";")) (goto_statement "goto code_r0x00027330;" (goto "goto") (statement_identifier "code_r0x00027330") (; ";"))) (case_statement "case 9:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,0,0,0);\n      goto code_r0x00027300;\n    }\n    iVar12 = param_6[3];\n    uVar3 = 9;\ncode_r0x00027330:\n    iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);\ncode_r0x00027300:\n    piVar8 = (int *)FUN_00026be0();\n    *piVar8 = iVar12;\n    return iVar12;" (case "case") (number_literal "9") (: ":") (if_statement "if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ed50(param_8,0,0,0);\n      goto code_r0x00027300;\n    }" (if "if") (parenthesized_expression "(param_6 == (int *)0x0)" (( "(") (binary_expression "param_6 == (int *)0x0" (identifier "param_6") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar12 = FUN_0001ed50(param_8,0,0,0);\n      goto code_r0x00027300;\n    }" ({ "{") (expression_statement "iVar12 = FUN_0001ed50(param_8,0,0,0);" (assignment_expression "iVar12 = FUN_0001ed50(param_8,0,0,0)" (identifier "iVar12") (= "=") (call_expression "FUN_0001ed50(param_8,0,0,0)" (identifier "FUN_0001ed50") (argument_list "(param_8,0,0,0)" (( "(") (identifier "param_8") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (goto_statement "goto code_r0x00027300;" (goto "goto") (statement_identifier "code_r0x00027300") (; ";")) (} "}"))) (expression_statement "iVar12 = param_6[3];" (assignment_expression "iVar12 = param_6[3]" (identifier "iVar12") (= "=") (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar3 = 9;" (assignment_expression "uVar3 = 9" (identifier "uVar3") (= "=") (number_literal "9")) (; ";")) (labeled_statement "code_r0x00027330:\n    iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);" (statement_identifier "code_r0x00027330") (: ":") (expression_statement "iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);" (assignment_expression "iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8)" (identifier "iVar12") (= "=") (call_expression "FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8)" (identifier "FUN_000275a0") (argument_list "(uVar3,(int)param_6 + 6,iVar12,param_8)" (( "(") (identifier "uVar3") (, ",") (binary_expression "(int)param_6 + 6" (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6")) (+ "+") (number_literal "6")) (, ",") (identifier "iVar12") (, ",") (identifier "param_8") () ")")))) (; ";"))) (labeled_statement "code_r0x00027300:\n    piVar8 = (int *)FUN_00026be0();" (statement_identifier "code_r0x00027300") (: ":") (expression_statement "piVar8 = (int *)FUN_00026be0();" (assignment_expression "piVar8 = (int *)FUN_00026be0()" (identifier "piVar8") (= "=") (cast_expression "(int *)FUN_00026be0()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00026be0()" (identifier "FUN_00026be0") (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "*piVar8 = iVar12;" (assignment_expression "*piVar8 = iVar12" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (identifier "iVar12")) (; ";")) (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";"))) (case_statement "case 10:\n    if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ee40(param_8,0,0);\n    }\n    else {\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }\n    goto code_r0x00027300;" (case "case") (number_literal "10") (: ":") (if_statement "if (param_6 == (int *)0x0) {\n      iVar12 = FUN_0001ee40(param_8,0,0);\n    }\n    else {\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }" (if "if") (parenthesized_expression "(param_6 == (int *)0x0)" (( "(") (binary_expression "param_6 == (int *)0x0" (identifier "param_6") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar12 = FUN_0001ee40(param_8,0,0);\n    }" ({ "{") (expression_statement "iVar12 = FUN_0001ee40(param_8,0,0);" (assignment_expression "iVar12 = FUN_0001ee40(param_8,0,0)" (identifier "iVar12") (= "=") (call_expression "FUN_0001ee40(param_8,0,0)" (identifier "FUN_0001ee40") (argument_list "(param_8,0,0)" (( "(") (identifier "param_8") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")) (else_clause "else {\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }" (else "else") (compound_statement "{\n      iVar5 = param_6[3];\n      iStack_4c = xmalloc(0x28);\n      iStack_50 = xmalloc(0x28);\n      iVar12 = param_2[3];\n      local_5c = 0;\n      do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');\ncode_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;\n      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);\n    }" ({ "{") (expression_statement "iVar5 = param_6[3];" (assignment_expression "iVar5 = param_6[3]" (identifier "iVar5") (= "=") (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iStack_4c = xmalloc(0x28);" (assignment_expression "iStack_4c = xmalloc(0x28)" (identifier "iStack_4c") (= "=") (call_expression "xmalloc(0x28)" (identifier "xmalloc") (argument_list "(0x28)" (( "(") (number_literal "0x28") () ")")))) (; ";")) (expression_statement "iStack_50 = xmalloc(0x28);" (assignment_expression "iStack_50 = xmalloc(0x28)" (identifier "iStack_50") (= "=") (call_expression "xmalloc(0x28)" (identifier "xmalloc") (argument_list "(0x28)" (( "(") (number_literal "0x28") () ")")))) (; ";")) (expression_statement "iVar12 = param_2[3];" (assignment_expression "iVar12 = param_2[3]" (identifier "iVar12") (= "=") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      } while (cStack_20 != 'f');" (do "do") (compound_statement "{\n        while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }\n      }" ({ "{") (while_statement "while( true ) {\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;\n          iVar2 = *(int *)(*param_2 + param_2[2] * 4);\n          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);\n          if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }\n          param_2[2] = param_2[2] + 1;\n          iVar12 = bStack_1f + 1 + param_2[3];\n          param_2[3] = iVar12;\n          if (cStack_20 != '\x10') break;\n          if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }\n          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);\n          *(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);\n          iVar12 = param_2[3];\n          local_5c = local_5c + 1;\n        }" ({ "{") (if_statement "if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;" (if "if") (parenthesized_expression "((iVar5 <= iVar12) || (param_2[1] <= param_2[2]))" (( "(") (binary_expression "(iVar5 <= iVar12) || (param_2[1] <= param_2[2])" (parenthesized_expression "(iVar5 <= iVar12)" (( "(") (binary_expression "iVar5 <= iVar12" (identifier "iVar5") (<= "<=") (identifier "iVar12")) () ")")) (|| "||") (parenthesized_expression "(param_2[1] <= param_2[2])" (( "(") (binary_expression "param_2[1] <= param_2[2]" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (<= "<=") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]"))) () ")"))) () ")")) (goto_statement "goto code_r0x000272d6;" (goto "goto") (statement_identifier "code_r0x000272d6") (; ";"))) (expression_statement "iVar2 = *(int *)(*param_2 + param_2[2] * 4);" (assignment_expression "iVar2 = *(int *)(*param_2 + param_2[2] * 4)" (identifier "iVar2") (= "=") (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 "iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);" (assignment_expression "iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34)" (identifier "iVar12") (= "=") (call_expression "bfd_coff_get_syment(param_1,iVar2,auStack_34)" (identifier "bfd_coff_get_syment") (argument_list "(param_1,iVar2,auStack_34)" (( "(") (identifier "param_1") (, ",") (identifier "iVar2") (, ",") (identifier "auStack_34") () ")")))) (; ";")) (if_statement "if (iVar12 == 0) {\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\n          }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar3 = bfd_get_error();\n            uVar3 = bfd_errmsg(uVar3);\n            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);\n            FUN_0002b6d0(uVar4,uVar3);\n            iVar12 = 0;\n            goto code_r0x00027300;\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 "uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);" (assignment_expression "uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"bfd_coff_get_syment failed: %s",5)" (identifier "dcgettext") (argument_list "(0,"bfd_coff_get_syment failed: %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""bfd_coff_get_syment failed: %s"" (" """) (string_content "bfd_coff_get_syment failed: %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002b6d0(uVar4,uVar3);" (call_expression "FUN_0002b6d0(uVar4,uVar3)" (identifier "FUN_0002b6d0") (argument_list "(uVar4,uVar3)" (( "(") (identifier "uVar4") (, ",") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto code_r0x00027300;" (goto "goto") (statement_identifier "code_r0x00027300") (; ";")) (} "}"))) (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 "iVar12 = bStack_1f + 1 + param_2[3];" (assignment_expression "iVar12 = bStack_1f + 1 + param_2[3]" (identifier "iVar12") (= "=") (binary_expression "bStack_1f + 1 + param_2[3]" (binary_expression "bStack_1f + 1" (identifier "bStack_1f") (+ "+") (number_literal "1")) (+ "+") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "param_2[3] = iVar12;" (assignment_expression "param_2[3] = iVar12" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar12")) (; ";")) (if_statement "if (cStack_20 != '\x10') break;" (if "if") (parenthesized_expression "(cStack_20 != '\x10')" (( "(") (binary_expression "cStack_20 != '\x10'" (identifier "cStack_20") (!= "!=") (char_literal "'\x10'" (' "'") (escape_sequence "\x10") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if ((int)param_5 <= local_5c + 1) {\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }" (if "if") (parenthesized_expression "((int)param_5 <= local_5c + 1)" (( "(") (binary_expression "(int)param_5 <= local_5c + 1" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (<= "<=") (binary_expression "local_5c + 1" (identifier "local_5c") (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\n            param_5 = param_5 + 10;\n            iStack_4c = xrealloc(iStack_4c,param_5 * 4);\n            iStack_50 = xrealloc(iStack_50,param_5 * 4);\n          }" ({ "{") (expression_statement "param_5 = param_5 + 10;" (assignment_expression "param_5 = param_5 + 10" (identifier "param_5") (= "=") (binary_expression "param_5 + 10" (identifier "param_5") (+ "+") (number_literal "10"))) (; ";")) (expression_statement "iStack_4c = xrealloc(iStack_4c,param_5 * 4);" (assignment_expression "iStack_4c = xrealloc(iStack_4c,param_5 * 4)" (identifier "iStack_4c") (= "=") (call_expression "xrealloc(iStack_4c,param_5 * 4)" (identifier "xrealloc") (argument_list "(iStack_4c,param_5 * 4)" (( "(") (identifier "iStack_4c") (, ",") (binary_expression "param_5 * 4" (identifier "param_5") (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "iStack_50 = xrealloc(iStack_50,param_5 * 4);" (assignment_expression "iStack_50 = xrealloc(iStack_50,param_5 * 4)" (identifier "iStack_50") (= "=") (call_expression "xrealloc(iStack_50,param_5 * 4)" (identifier "xrealloc") (argument_list "(iStack_50,param_5 * 4)" (( "(") (identifier "iStack_50") (, ",") (binary_expression "param_5 * 4" (identifier "param_5") (* "*") (number_literal "4")) () ")")))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);" (assignment_expression "*(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4)" (pointer_expression "*(undefined4 *)(iStack_4c + local_5c * 4)" (* "*") (cast_expression "(undefined4 *)(iStack_4c + local_5c * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_4c + local_5c * 4)" (( "(") (binary_expression "iStack_4c + local_5c * 4" (identifier "iStack_4c") (+ "+") (binary_expression "local_5c * 4" (identifier "local_5c") (* "*") (number_literal "4"))) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar2 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);" (assignment_expression "*(int *)(iStack_50 + local_5c * 4) =\n               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c)" (pointer_expression "*(int *)(iStack_50 + local_5c * 4)" (* "*") (cast_expression "(int *)(iStack_50 + local_5c * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_50 + local_5c * 4)" (( "(") (binary_expression "iStack_50 + local_5c * 4" (identifier "iStack_50") (+ "+") (binary_expression "local_5c * 4" (identifier "local_5c") (* "*") (number_literal "4"))) () ")")))) (= "=") (binary_expression "*(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c)" (pointer_expression "*(int *)(iVar2 + 8)" (* "*") (cast_expression "(int *)(iVar2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")")))) (+ "+") (pointer_expression "*(int *)(*(int *)(iVar2 + 0x10) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(iVar2 + 0x10) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar2 + 0x10) + 0x1c)" (( "(") (binary_expression "*(int *)(iVar2 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar2 + 0x10)" (* "*") (cast_expression "(int *)(iVar2 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x10)" (( "(") (binary_expression "iVar2 + 0x10" (identifier "iVar2") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (expression_statement "iVar12 = param_2[3];" (assignment_expression "iVar12 = param_2[3]" (identifier "iVar12") (= "=") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_5c = local_5c + 1;" (assignment_expression "local_5c = local_5c + 1" (identifier "local_5c") (= "=") (binary_expression "local_5c + 1" (identifier "local_5c") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(cStack_20 != 'f')" (( "(") (binary_expression "cStack_20 != 'f'" (identifier "cStack_20") (!= "!=") (char_literal "'f'" (' "'") (character "f") (' "'"))) () ")")) (; ";")) (labeled_statement "code_r0x000272d6:\n      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;" (statement_identifier "code_r0x000272d6") (: ":") (expression_statement "*(undefined4 *)(iStack_4c + local_5c * 4) = 0;" (assignment_expression "*(undefined4 *)(iStack_4c + local_5c * 4) = 0" (pointer_expression "*(undefined4 *)(iStack_4c + local_5c * 4)" (* "*") (cast_expression "(undefined4 *)(iStack_4c + local_5c * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_4c + local_5c * 4)" (( "(") (binary_expression "iStack_4c + local_5c * 4" (identifier "iStack_4c") (+ "+") (binary_expression "local_5c * 4" (identifier "local_5c") (* "*") (number_literal "4"))) () ")")))) (= "=") (number_literal "0")) (; ";"))) (expression_statement "iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);" (assignment_expression "iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50)" (identifier "iVar12") (= "=") (call_expression "FUN_0001ee40(param_8,iStack_4c,iStack_50)" (identifier "FUN_0001ee40") (argument_list "(param_8,iStack_4c,iStack_50)" (( "(") (identifier "param_8") (, ",") (identifier "iStack_4c") (, ",") (identifier "iStack_50") () ")")))) (; ";")) (} "}")))) (goto_statement "goto code_r0x00027300;" (goto "goto") (statement_identifier "code_r0x00027300") (; ";"))) (case_statement "case 0xb:\n    iVar12 = FUN_0001ecf0(param_8);\n    goto code_r0x00027186;" (case "case") (number_literal "0xb") (: ":") (expression_statement "iVar12 = FUN_0001ecf0(param_8);" (assignment_expression "iVar12 = FUN_0001ecf0(param_8)" (identifier "iVar12") (= "=") (call_expression "FUN_0001ecf0(param_8)" (identifier "FUN_0001ecf0") (argument_list "(param_8)" (( "(") (identifier "param_8") () ")")))) (; ";")) (goto_statement "goto code_r0x00027186;" (goto "goto") (statement_identifier "code_r0x00027186") (; ";"))) (case_statement "case 0xc:\n    uVar3 = FUN_0001ed00(param_8,1,1);\n    pcVar9 = "unsigned char";\n    break;" (case "case") (number_literal "0xc") (: ":") (expression_statement "uVar3 = FUN_0001ed00(param_8,1,1);" (assignment_expression "uVar3 = FUN_0001ed00(param_8,1,1)" (identifier "uVar3") (= "=") (call_expression "FUN_0001ed00(param_8,1,1)" (identifier "FUN_0001ed00") (argument_list "(param_8,1,1)" (( "(") (identifier "param_8") (, ",") (number_literal "1") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "pcVar9 = "unsigned char";" (assignment_expression "pcVar9 = "unsigned char"" (identifier "pcVar9") (= "=") (string_literal ""unsigned char"" (" """) (string_content "unsigned char") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xd:\n    uVar3 = FUN_0001ed00(param_8,2,1);\n    pcVar9 = "unsigned short";\n    break;" (case "case") (number_literal "0xd") (: ":") (expression_statement "uVar3 = FUN_0001ed00(param_8,2,1);" (assignment_expression "uVar3 = FUN_0001ed00(param_8,2,1)" (identifier "uVar3") (= "=") (call_expression "FUN_0001ed00(param_8,2,1)" (identifier "FUN_0001ed00") (argument_list "(param_8,2,1)" (( "(") (identifier "param_8") (, ",") (number_literal "2") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "pcVar9 = "unsigned short";" (assignment_expression "pcVar9 = "unsigned short"" (identifier "pcVar9") (= "=") (string_literal ""unsigned short"" (" """) (string_content "unsigned short") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xe:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned int";\n    break;" (case "case") (number_literal "0xe") (: ":") (expression_statement "uVar3 = FUN_0001ed00(param_8,4,1);" (assignment_expression "uVar3 = FUN_0001ed00(param_8,4,1)" (identifier "uVar3") (= "=") (call_expression "FUN_0001ed00(param_8,4,1)" (identifier "FUN_0001ed00") (argument_list "(param_8,4,1)" (( "(") (identifier "param_8") (, ",") (number_literal "4") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "pcVar9 = "unsigned int";" (assignment_expression "pcVar9 = "unsigned int"" (identifier "pcVar9") (= "=") (string_literal ""unsigned int"" (" """) (string_content "unsigned int") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xf:\n    uVar3 = FUN_0001ed00(param_8,4,1);\n    pcVar9 = "unsigned long";\n    break;" (case "case") (number_literal "0xf") (: ":") (expression_statement "uVar3 = FUN_0001ed00(param_8,4,1);" (assignment_expression "uVar3 = FUN_0001ed00(param_8,4,1)" (identifier "uVar3") (= "=") (call_expression "FUN_0001ed00(param_8,4,1)" (identifier "FUN_0001ed00") (argument_list "(param_8,4,1)" (( "(") (identifier "param_8") (, ",") (number_literal "4") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "pcVar9 = "unsigned long";" (assignment_expression "pcVar9 = "unsigned long"" (identifier "pcVar9") (= "=") (string_literal ""unsigned long"" (" """) (string_content "unsigned long") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x10:\n    uVar3 = FUN_0001ed20(param_8,0xc);\n    pcVar9 = "long double";" (case "case") (number_literal "0x10") (: ":") (expression_statement "uVar3 = FUN_0001ed20(param_8,0xc);" (assignment_expression "uVar3 = FUN_0001ed20(param_8,0xc)" (identifier "uVar3") (= "=") (call_expression "FUN_0001ed20(param_8,0xc)" (identifier "FUN_0001ed20") (argument_list "(param_8,0xc)" (( "(") (identifier "param_8") (, ",") (number_literal "0xc") () ")")))) (; ";")) (expression_statement "pcVar9 = "long double";" (assignment_expression "pcVar9 = "long double"" (identifier "pcVar9") (= "=") (string_literal ""long double"" (" """) (string_content "long double") (" """))) (; ";"))) (} "}"))) (expression_statement "iVar12 = FUN_0001f390(param_8,pcVar9,uVar3);" (assignment_expression "iVar12 = FUN_0001f390(param_8,pcVar9,uVar3)" (identifier "iVar12") (= "=") (call_expression "FUN_0001f390(param_8,pcVar9,uVar3)" (identifier "FUN_0001f390") (argument_list "(param_8,pcVar9,uVar3)" (( "(") (identifier "param_8") (, ",") (identifier "pcVar9") (, ",") (identifier "uVar3") () ")")))) (; ";")) (labeled_statement "code_r0x00027186:\n  *(int *)(param_3 + 4 + param_5 * 4) = iVar12;" (statement_identifier "code_r0x00027186") (: ":") (expression_statement "*(int *)(param_3 + 4 + param_5 * 4) = iVar12;" (assignment_expression "*(int *)(param_3 + 4 + param_5 * 4) = iVar12" (pointer_expression "*(int *)(param_3 + 4 + param_5 * 4)" (* "*") (cast_expression "(int *)(param_3 + 4 + param_5 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 4 + param_5 * 4)" (( "(") (binary_expression "param_3 + 4 + param_5 * 4" (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) (+ "+") (binary_expression "param_5 * 4" (identifier "param_5") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "iVar12")) (; ";"))) (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (} "}")))

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

type_1 __regparm3
function_1(type_2 *abfd,type_3 *symbols,type_4 *types,long coff_symno,int var_1,
               type_5 *var_9,type_6 var_19,void *dhandle)

{
  type_7 var_10;
  type_8 *pcVar2;
  int var_26;
  type_9 *paVar4;
  type_1 pdVar5;
  type_10 var_13;
  type_10 *ppdVar7;
  char *pcVar8;
  type_11 uVar9;
  type_12 var_4;
  int var_11;
  type_10 *arg_types;
  type_7 *var_12;
  type_7 *puVar13;
  type_10 type;
  type_13 var_2;
  type_13 var_3;
  type_14 upper;
  type_4 *types_00;
  type_5 *pauxent_00;
  type_5 *in_stack_ffffff94;
  int var_30;
  type_14 *local_50;
  char **local_4c;
  type_15 syment;
  
  pcVar2 = (abfd->tdata).coff_obj_data;
  if ((~pcVar2->local_n_btmask & var_1) != 0) {
    var_2 = var_1 >> ((type_12)pcVar2->local_n_tshift & 0x1f);
    var_2 = (var_1 ^ var_2) & pcVar2->local_n_btmask ^ var_2;
    var_3 = pcVar2->local_n_tmask & var_1;
    var_4 = (type_12)pcVar2->local_n_btshft;
    if (var_3 == 1 << (var_4 & 0x1f)) {
      pdVar5 = function_1(abfd,symbols,types,coff_symno,var_2,var_9,var_19,dhandle);
      var_13 = var_5(dhandle,pdVar5);
      return var_13;
    }
    if (var_3 == 2 << (var_4 & 0x1f)) {
      pdVar5 = function_1(abfd,symbols,types,coff_symno,var_2,var_9,var_19,dhandle);
      var_13 = var_6(pdVar5,type,arg_types,(type_6)dhandle);
      return var_13;
    }
    if (var_3 != 3 << (var_4 & 0x1f)) {
      pcVar8 = (char *)var_7(0,"parse_coff_type: Bad type code 0x%x",5);
      var_8(pcVar8,var_1);
      return (type_1)0x0;
    }
    upper = -1;
    if (var_9 != (type_5 *)0x0) {
      var_10 = (var_9->x_tv).x_tvran[1];
      puVar13 = (var_9->x_tv).x_tvran + 1;
      if (var_10 != 0) {
        var_11 = 0;
        var_12 = puVar13;
        do {
          var_11 = var_11 + 1;
          puVar13 = var_12 + 1;
          *var_12 = var_12[1];
          if (var_12[1] == 0) break;
          var_12 = puVar13;
        } while (var_11 != 3);
      }
      upper = var_10 - 1;
      *puVar13 = 0;
    }
    pdVar5 = function_1(abfd,symbols,types,coff_symno,var_2,var_9,0,dhandle);
    var_13 = types->basic[4];
    if (var_13 == (type_10)0x0) {
      var_13 = var_14(dhandle,4,0);
      var_13 = var_15(dhandle,"int",var_13);
      types->basic[4] = var_13;
    }
    var_13 = var_16(dhandle,pdVar5,var_13,0,upper,0);
    return var_13;
  }
  if ((var_9 != (type_5 *)0x0) && (0 < (var_9->x_scn).x_scnlen)) {
    ppdVar7 = var_17(types,(var_9->x_scn).x_scnlen);
    if (*ppdVar7 != (type_1)0x0) {
      return *ppdVar7;
    }
    var_13 = var_18(dhandle,ppdVar7,(char *)0x0);
    return var_13;
  }
  if (var_19 == 0) {
    var_9 = (type_5 *)0x0;
  }
  if (0x10 < (type_13)var_1) {
    var_13 = var_20();
    return var_13;
  }
  if (types->basic[var_1] != (type_1)0x0) {
    return types->basic[var_1];
  }
  switch(var_1) {
  default:
    var_13 = var_20();
    pcVar8 = "void";
    break;
  case 2:
    var_13 = var_14(dhandle,1,0);
    pcVar8 = "char";
    break;
  case 3:
    var_13 = var_14(dhandle,2,0);
    pcVar8 = "short";
    break;
  case 4:
    var_13 = var_14(dhandle,4,0);
    pcVar8 = "int";
    break;
  case 5:
    var_13 = var_14(dhandle,4,0);
    pcVar8 = "long";
    break;
  case 6:
    var_13 = var_21(4);
    pcVar8 = "float";
    break;
  case 7:
    var_13 = var_21(8);
    pcVar8 = "double";
    break;
  case 8:
    if (var_9 == (type_5 *)0x0) {
      pdVar5 = var_22(dhandle,1,0,(type_16 *)0x0);
      goto LAB_00027300;
    }
    pauxent_00 = (type_5 *)(var_9->x_csect).x_stab;
    types_00 = (type_4 *)0x8;
    goto LAB_00027330;
  case 9:
    if (var_9 == (type_5 *)0x0) {
      pdVar5 = var_22(dhandle,0,0,(type_16 *)0x0);
      goto LAB_00027300;
    }
    pauxent_00 = (type_5 *)(var_9->x_csect).x_stab;
    types_00 = (type_4 *)0x9;
LAB_00027330:
    pdVar5 = var_23
                       (abfd,symbols,types_00,(int)var_9 + 6,pauxent_00,dhandle,in_stack_ffffff94)
    ;
LAB_00027300:
    ppdVar7 = var_17(types,coff_symno);
    *ppdVar7 = pdVar5;
    return pdVar5;
  case 10:
    if (var_9 == (type_5 *)0x0) {
      pdVar5 = var_24(dhandle,(char **)0x0,(type_14 *)0x0);
    }
    else {
      var_26 = (var_9->x_csect).x_stab;
      local_4c = (char **)var_25(0x28);
      local_50 = (type_14 *)var_25(0x28);
      var_11 = symbols->coff_symno;
      var_30 = 0;
      do {
        while( true ) {
          if ((var_26 <= var_11) || (symbols->symcount <= symbols->symno)) goto LAB_000272d6;
          paVar4 = symbols->syms[symbols->symno];
          var_11 = var_27(abfd,paVar4,&syment);
          if (var_11 == 0) {
            uVar9 = var_28();
            uVar9 = var_29(uVar9);
            pcVar8 = (char *)var_7(0,"bfd_coff_get_syment failed: %s",5);
            var_8(pcVar8,uVar9);
            pdVar5 = (type_1)0x0;
            goto LAB_00027300;
          }
          symbols->symno = symbols->symno + 1;
          var_11 = syment.n_numaux + 1 + symbols->coff_symno;
          symbols->coff_symno = var_11;
          if (syment.n_sclass != '\x10') break;
          if (var_1 <= var_30 + 1) {
            var_1 = var_1 + 10;
            local_4c = (char **)var_31(local_4c,var_1 * 4);
            local_50 = (type_14 *)var_31(local_50,var_1 * 4);
          }
          local_4c[var_30] = paVar4->name;
          local_50[var_30] = paVar4->value + paVar4->section->vma;
          var_11 = symbols->coff_symno;
          var_30 = var_30 + 1;
        }
      } while (syment.n_sclass != 'f');
LAB_000272d6:
      local_4c[var_30] = (char *)0x0;
      pdVar5 = var_24(dhandle,local_4c,local_50);
    }
    goto LAB_00027300;
  case 0xb:
    var_13 = var_20();
    goto LAB_00027186;
  case 0xc:
    var_13 = var_14(dhandle,1,1);
    pcVar8 = "unsigned char";
    break;
  case 0xd:
    var_13 = var_14(dhandle,2,1);
    pcVar8 = "unsigned short";
    break;
  case 0xe:
    var_13 = var_14(dhandle,4,1);
    pcVar8 = "unsigned int";
    break;
  case 0xf:
    var_13 = var_14(dhandle,4,1);
    pcVar8 = "unsigned long";
    break;
  case 0x10:
    var_13 = var_21(0xc);
    pcVar8 = "long double";
  }
  var_13 = var_15(dhandle,pcVar8,var_13);
LAB_00027186:
  types->basic[var_1] = var_13;
  return var_13;
}


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

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

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

{
  ushort uVar1;
  int iVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  int iVar5;
  byte bVar6;
  int *piVar7;
  int *piVar8;
  char *pcVar9;
  uint uVar10;
  uint uVar11;
  int iVar12;
  int local_5c;
  int iStack_50;
  int iStack_4c;
  undefined1 auStack_34 [20];
  char cStack_20;
  byte bStack_1f;
  undefined4 uStack_14;
  
  uStack_14 = 0x26eab;
  iVar12 = *(int *)(param_1 + 0x9c);
  if ((~*(uint *)(iVar12 + 0x20) & param_5) != 0) {
    uVar10 = (int)param_5 >> ((byte)*(undefined4 *)(iVar12 + 0x2c) & 0x1f);
    uVar10 = (param_5 ^ uVar10) & *(uint *)(iVar12 + 0x20) ^ uVar10;
    uVar11 = *(uint *)(iVar12 + 0x28) & param_5;
    bVar6 = (byte)*(undefined4 *)(iVar12 + 0x24);
    if (uVar11 == 1 << (bVar6 & 0x1f)) {
      uVar3 = MASKED(param_4,uVar10,param_6,param_7,param_8);
      iVar12 = FUN_0001ee90(param_8,uVar3);
      return iVar12;
    }
    if (uVar11 == 2 << (bVar6 & 0x1f)) {
      uVar3 = MASKED(param_4,uVar10,param_6,param_7,param_8);
      iVar12 = FUN_0001eee0(param_8,uVar3,0,0);
      return iVar12;
    }
    if (uVar11 != 3 << (bVar6 & 0x1f)) {
      uVar3 = dcgettext(0,"parse_coff_type: Bad type code 0x%x",5);
      FUN_0002b6d0(uVar3,param_5);
      return 0;
    }
    iVar12 = -1;
    if (param_6 != (int *)0x0) {
      uVar1 = *(ushort *)(param_6 + 2);
      piVar8 = param_6 + 2;
      if (uVar1 != 0) {
        iVar12 = 0;
        piVar7 = piVar8;
        do {
          iVar12 = iVar12 + 1;
          piVar8 = (int *)((int)piVar7 + 2);
          *(short *)piVar7 = *(short *)((int)piVar7 + 2);
          if (*(short *)((int)piVar7 + 2) == 0) break;
          piVar7 = piVar8;
        } while (iVar12 != 3);
      }
      iVar12 = uVar1 - 1;
      *(short *)piVar8 = 0;
    }
    uVar3 = MASKED(param_4,uVar10,param_6,0,param_8);
    iVar5 = *(int *)(param_3 + 0x14);
    if (iVar5 == 0) {
      uVar4 = FUN_0001ed00(param_8,4,0);
      iVar5 = FUN_0001f390(param_8,"int",uVar4);
      *(int *)(param_3 + 0x14) = iVar5;
    }
    iVar12 = FUN_0001efd0(param_8,uVar3,iVar5,0,iVar12,0);
    return iVar12;
  }
  if ((param_6 != (int *)0x0) && (0 < *param_6)) {
    piVar8 = (int *)FUN_00026be0();
    if (*piVar8 != 0) {
      return *piVar8;
    }
    iVar12 = FUN_0001eca0(param_8,piVar8,0);
    return iVar12;
  }
  if (param_7 == 0) {
    param_6 = (int *)0x0;
  }
  if (0x10 < param_5) {
    iVar12 = FUN_0001ecf0(param_8);
    return iVar12;
  }
  iVar12 = *(int *)(param_3 + 4 + param_5 * 4);
  if (iVar12 != 0) {
    return iVar12;
  }
  switch(param_5) {
  default:
    uVar3 = FUN_0001ecf0(param_8);
    pcVar9 = "void";
    break;
  case 2:
    uVar3 = FUN_0001ed00(param_8,1,0);
    pcVar9 = "char";
    break;
  case 3:
    uVar3 = FUN_0001ed00(param_8,2,0);
    pcVar9 = "short";
    break;
  case 4:
    uVar3 = FUN_0001ed00(param_8,4,0);
    pcVar9 = "int";
    break;
  case 5:
    uVar3 = FUN_0001ed00(param_8,4,0);
    pcVar9 = "long";
    break;
  case 6:
    uVar3 = FUN_0001ed20(param_8,4);
    pcVar9 = "float";
    break;
  case 7:
    uVar3 = FUN_0001ed20(param_8,8);
    pcVar9 = "double";
    break;
  case 8:
    if (param_6 == (int *)0x0) {
      iVar12 = FUN_0001ed50(param_8,1,0,0);
      goto code_r0x00027300;
    }
    iVar12 = param_6[3];
    uVar3 = 8;
    goto code_r0x00027330;
  case 9:
    if (param_6 == (int *)0x0) {
      iVar12 = FUN_0001ed50(param_8,0,0,0);
      goto code_r0x00027300;
    }
    iVar12 = param_6[3];
    uVar3 = 9;
code_r0x00027330:
    iVar12 = FUN_000275a0(uVar3,(int)param_6 + 6,iVar12,param_8);
code_r0x00027300:
    piVar8 = (int *)FUN_00026be0();
    *piVar8 = iVar12;
    return iVar12;
  case 10:
    if (param_6 == (int *)0x0) {
      iVar12 = FUN_0001ee40(param_8,0,0);
    }
    else {
      iVar5 = param_6[3];
      iStack_4c = xmalloc(0x28);
      iStack_50 = xmalloc(0x28);
      iVar12 = param_2[3];
      local_5c = 0;
      do {
        while( true ) {
          if ((iVar5 <= iVar12) || (param_2[1] <= param_2[2])) goto code_r0x000272d6;
          iVar2 = *(int *)(*param_2 + param_2[2] * 4);
          iVar12 = bfd_coff_get_syment(param_1,iVar2,auStack_34);
          if (iVar12 == 0) {
            uVar3 = bfd_get_error();
            uVar3 = bfd_errmsg(uVar3);
            uVar4 = dcgettext(0,"bfd_coff_get_syment failed: %s",5);
            FUN_0002b6d0(uVar4,uVar3);
            iVar12 = 0;
            goto code_r0x00027300;
          }
          param_2[2] = param_2[2] + 1;
          iVar12 = bStack_1f + 1 + param_2[3];
          param_2[3] = iVar12;
          if (cStack_20 != '\x10') break;
          if ((int)param_5 <= local_5c + 1) {
            param_5 = param_5 + 10;
            iStack_4c = xrealloc(iStack_4c,param_5 * 4);
            iStack_50 = xrealloc(iStack_50,param_5 * 4);
          }
          *(undefined4 *)(iStack_4c + local_5c * 4) = *(undefined4 *)(iVar2 + 4);
          *(int *)(iStack_50 + local_5c * 4) =
               *(int *)(iVar2 + 8) + *(int *)(*(int *)(iVar2 + 0x10) + 0x1c);
          iVar12 = param_2[3];
          local_5c = local_5c + 1;
        }
      } while (cStack_20 != 'f');
code_r0x000272d6:
      *(undefined4 *)(iStack_4c + local_5c * 4) = 0;
      iVar12 = FUN_0001ee40(param_8,iStack_4c,iStack_50);
    }
    goto code_r0x00027300;
  case 0xb:
    iVar12 = FUN_0001ecf0(param_8);
    goto code_r0x00027186;
  case 0xc:
    uVar3 = FUN_0001ed00(param_8,1,1);
    pcVar9 = "unsigned char";
    break;
  case 0xd:
    uVar3 = FUN_0001ed00(param_8,2,1);
    pcVar9 = "unsigned short";
    break;
  case 0xe:
    uVar3 = FUN_0001ed00(param_8,4,1);
    pcVar9 = "unsigned int";
    break;
  case 0xf:
    uVar3 = FUN_0001ed00(param_8,4,1);
    pcVar9 = "unsigned long";
    break;
  case 0x10:
    uVar3 = FUN_0001ed20(param_8,0xc);
    pcVar9 = "long double";
  }
  iVar12 = FUN_0001f390(param_8,pcVar9,uVar3);
code_r0x00027186:
  *(int *)(param_3 + 4 + param_5 * 4) = iVar12;
  return iVar12;
}

