
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

bfd_boolean __regparm3
get_unwind_section_word
          (Filedata *filedata,arm_unw_aux_info *aux,arm_section *arm_sec,Elf_Internal_Shdr *sec,
          bfd_vma word_offset,uint *wordp,absaddr *addr,bfd_vma *sym_name)

{
  Elf_Internal_Rela **arm_sec_1;
  ushort uVar1;
  Elf_Internal_Shdr *pEVar2;
  ulong rel_offset;
  uint uVar3;
  uint uVar4;
  ulong uVar5;
  bool bVar6;
  bfd_vma bVar7;
  char *pcVar8;
  arm_section *arm_sec_00;
  int iVar9;
  Elf_Internal_Sym *pEVar10;
  byte *pbVar11;
  uint uVar12;
  int iVar13;
  Elf_Internal_Shdr *pEVar14;
  Elf_Internal_Rela *pEVar15;
  uint uVar16;
  uint uVar17;
  int iVar18;
  byte *pbVar19;
  byte *pbVar20;
  bool bVar21;
  bool bVar22;
  bool bVar23;
  byte bVar24;
  Elf_Internal_Rela *local_64;
  uint local_54;
  int local_50;
  ulong local_4c;
  uint local_44;
  elf_vma local_30;
  
  bVar24 = 0;
  addr->section = 0;
  *(undefined4 *)&addr->offset = 0;
  *(undefined4 *)((int)&addr->offset + 4) = 0;
  if (sym_name != (bfd_vma *)0x0) {
    *(undefined4 *)sym_name = 0xffffffff;
    *(undefined4 *)((int)sym_name + 4) = 0xffffffff;
  }
  arm_sec_00 = (arm_section *)arm_sec->data;
  if (arm_sec->sec != sec) {
    arm_sec_1 = &arm_sec->rela;
    arm_free_section(arm_sec_00,(arm_section *)arm_sec_1);
    arm_sec->sec = sec;
    pcVar8 = (char *)dcgettext(0,"unwind data",5);
    arm_sec_00 = (arm_section *)
                 get_data((void *)0x0,aux->filedata,(ulong)sec->sh_offset,1,sec->sh_size,pcVar8);
    arm_sec->rela = (Elf_Internal_Rela *)0x0;
    arm_sec->data = (uchar *)arm_sec_00;
    pEVar2 = filedata->section_headers;
    uVar12 = (filedata->file_header).e_shnum;
    arm_sec->nrelas = 0;
    pEVar14 = pEVar2;
    if (pEVar2 < pEVar2 + uVar12) {
      do {
        if (((pEVar14->sh_info < uVar12) && (sec == pEVar2 + pEVar14->sh_info)) &&
           ((uVar16 = pEVar14->sh_type, uVar16 == 9 || (uVar16 == 4)))) {
          uVar5 = (ulong)pEVar14->sh_size;
          arm_sec->rel_type = uVar16;
          rel_offset = (ulong)pEVar14->sh_offset;
          if (uVar16 == 9) {
            iVar9 = slurp_rel_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);
          }
          else {
            iVar9 = slurp_rela_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);
          }
          if (iVar9 == 0) {
            return 0;
          }
          pEVar15 = arm_sec->rela;
          arm_sec_00 = (arm_section *)arm_sec->data;
          goto LAB_000321d8;
        }
        pEVar14 = pEVar14 + 1;
      } while (pEVar14 < pEVar2 + uVar12);
      pEVar15 = (Elf_Internal_Rela *)0x0;
    }
    else {
      pEVar15 = (Elf_Internal_Rela *)0x0;
    }
LAB_000321d8:
    arm_sec->next_rela = pEVar15;
  }
  if (arm_sec_00 != (arm_section *)0x0) {
    uVar12 = (uint)sec->sh_size;
    iVar9 = *(int *)((int)&sec->sh_size + 4);
    if (((iVar9 != 0 || (uint)-iVar9 < (uint)(3 < uVar12)) &&
        (uVar16 = iVar9 + -1 + (uint)(3 < uVar12),
        word_offset._4_4_ <= uVar16 &&
        (uint)(uVar12 - 4 < (uint)word_offset) <= uVar16 - word_offset._4_4_)) &&
       (-1 < (longlong)word_offset)) {
      local_30._0_4_ = (*byte_get)((uchar *)((int)&arm_sec_00->data + (uint)word_offset),4);
      local_64 = arm_sec->rela;
      if (local_64 == (Elf_Internal_Rela *)0x0) {
                    /* WARNING: Store size is inaccurate */
        *(elf_vma *)wordp = (elf_vma)local_30;
        return 1;
      }
      local_4c = arm_sec->nrelas;
      pEVar15 = arm_sec->next_rela;
      if (pEVar15 == local_64 + local_4c) {
LAB_000322a3:
                    /* WARNING: Store size is inaccurate */
        *(elf_vma *)wordp = (elf_vma)local_30;
        arm_sec->next_rela = pEVar15;
        return 1;
      }
      bVar6 = false;
LAB_0003227f:
      uVar12 = (uint)pEVar15->r_offset;
      uVar16 = *(uint *)((int)&pEVar15->r_offset + 4);
      if (word_offset._4_4_ < uVar16 ||
          word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12)) {
        if (bVar6) goto LAB_000322a3;
        uVar12 = (uint)local_64->r_offset;
        uVar16 = *(uint *)((int)&local_64->r_offset + 4);
        pEVar15 = local_64;
        if (word_offset._4_4_ < uVar16 ||
            word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12)) goto LAB_000322a3;
        bVar6 = true;
      }
      if ((uVar12 & 3) == 0) {
        if ((word_offset._4_4_ <= uVar16 &&
             (uint)(uVar12 < (uint)word_offset) <= uVar16 - word_offset._4_4_) &&
           (aux->symtab != (Elf_Internal_Sym *)0x0)) {
          uVar16 = arm_sec->rel_type;
          if (uVar16 == 9) {
            local_50 = 0;
            local_54 = (uint)(elf_vma)local_30 & 0x7fffffff;
            if (((uint)(elf_vma)local_30 & 0x40000000) != 0) {
              local_50 = -1;
              local_54 = local_54 | 0x80000000;
            }
          }
          else {
            if (uVar16 != 4) {
              pcVar8 = (char *)dcgettext(0,"Unknown section relocation type %d encountered\n",5);
              error(pcVar8,uVar16);
              goto LAB_000322a3;
            }
            local_54 = (uint)pEVar15->r_addend;
            local_50 = *(int *)((int)&pEVar15->r_addend + 4);
          }
          uVar16 = *(uint *)((int)&pEVar15->r_info + 4);
          uVar3 = (uint)pEVar15->r_info;
          uVar4 = aux->nsyms;
          uVar17 = uVar3 >> 8 | uVar16 << 0x18;
          if ((uint)(uVar17 < uVar4) <= uVar16 >> 8) {
            pcVar8 = (char *)dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);
            error(pcVar8,uVar17,uVar4);
            goto LAB_000322a3;
          }
          pEVar10 = aux->symtab + uVar17;
          bVar7 = pEVar10->st_value;
          iVar18 = local_54 + (int)pEVar10->st_value;
          iVar9 = *(int *)((int)&pEVar10->st_value + 4);
          local_44 = iVar18 - (uVar12 + (int)arm_sec->sec->sh_addr);
          uVar1 = (filedata->file_header).e_machine;
          if (uVar1 == 0x28) {
            pbVar11 = (byte *)elf_arm_reloc_type(uVar3 & 0xff);
            bVar21 = false;
            bVar23 = pbVar11 == (byte *)0x0;
            if (!bVar23) {
              iVar13 = 0xb;
              pbVar19 = pbVar11;
              pbVar20 = (byte *)"R_ARM_NONE";
              do {
                if (iVar13 == 0) break;
                iVar13 = iVar13 + -1;
                bVar21 = *pbVar19 < *pbVar20;
                bVar23 = *pbVar19 == *pbVar20;
                pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;
                pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;
              } while (bVar23);
              bVar22 = false;
              bVar21 = (!bVar21 && !bVar23) == bVar21;
              if (!bVar21) {
                iVar13 = 0xd;
                pbVar19 = pbVar11;
                pbVar20 = (byte *)"R_ARM_PREL31";
                do {
                  if (iVar13 == 0) break;
                  iVar13 = iVar13 + -1;
                  bVar22 = *pbVar19 < *pbVar20;
                  bVar21 = *pbVar19 == *pbVar20;
                  pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;
                  pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;
                } while (bVar21);
                if ((!bVar22 && !bVar21) != bVar22) {
                  pcVar8 = (char *)dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);
                  warn(pcVar8,pbVar11);
                  local_64 = arm_sec->rela;
                  local_4c = arm_sec->nrelas;
                  goto LAB_00032500;
                }
LAB_0003245c:
                local_30._0_4_ =
                     (elf_vma)(local_44 & 0x7fffffff | (uint)(elf_vma)local_30 & 0x80000000);
                addr->section = (ushort)pEVar10->st_shndx;
                *(uint *)((int)&addr->offset + 4) =
                     local_50 + iVar9 + (uint)CARRY4(local_54,(uint)bVar7);
                *(int *)&addr->offset = iVar18;
                if (sym_name != (bfd_vma *)0x0) {
                  uVar5 = pEVar10->st_name;
                  *(undefined4 *)((int)sym_name + 4) = 0;
                  *(ulong *)sym_name = uVar5;
                }
                goto LAB_000322a3;
              }
              goto LAB_00032500;
            }
            pcVar8 = "Skipping unknown ARM relocation type: %d\n";
LAB_00032686:
            pbVar11 = (byte *)(uVar3 & 0xff);
            pcVar8 = (char *)dcgettext(0,pcVar8,5);
          }
          else {
            if (uVar1 != 0x8c) {
              pcVar8 = (char *)dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);
              warn(pcVar8);
              goto LAB_000322a3;
            }
            pbVar11 = (byte *)elf_tic6x_reloc_type(uVar3 & 0xff);
            bVar21 = false;
            bVar23 = pbVar11 == (byte *)0x0;
            if (bVar23) {
              pcVar8 = "Skipping unknown C6000 relocation type: %d\n";
              goto LAB_00032686;
            }
            iVar13 = 0xd;
            pbVar19 = pbVar11;
            pbVar20 = (byte *)"R_C6000_NONE";
            do {
              if (iVar13 == 0) break;
              iVar13 = iVar13 + -1;
              bVar21 = *pbVar19 < *pbVar20;
              bVar23 = *pbVar19 == *pbVar20;
              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;
              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;
            } while (bVar23);
            bVar22 = false;
            bVar21 = (!bVar21 && !bVar23) == bVar21;
            if (bVar21) goto LAB_00032500;
            iVar13 = 0xf;
            pbVar19 = pbVar11;
            pbVar20 = (byte *)"R_C6000_PREL31";
            do {
              if (iVar13 == 0) break;
              iVar13 = iVar13 + -1;
              bVar22 = *pbVar19 < *pbVar20;
              bVar21 = *pbVar19 == *pbVar20;
              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;
              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;
            } while (bVar21);
            if ((!bVar22 && !bVar21) == bVar22) {
              local_44 = local_44 >> 1;
              goto LAB_0003245c;
            }
            pcVar8 = (char *)dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);
          }
          warn(pcVar8,pbVar11);
          local_64 = arm_sec->rela;
          local_4c = arm_sec->nrelas;
        }
      }
      else {
        pcVar8 = (char *)dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);
        warn(pcVar8,uVar12);
        local_64 = arm_sec->rela;
        local_4c = arm_sec->nrelas;
      }
LAB_00032500:
      pEVar15 = pEVar15 + 1;
      if (pEVar15 == local_64 + local_4c) goto LAB_000322a3;
      goto LAB_0003227f;
    }
  }
  return 0;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

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

{
  uint uVar1;
  uint uVar2;
  bool bVar3;
  undefined4 uVar4;
  int iVar5;
  uint *puVar6;
  char *pcVar7;
  uint uVar8;
  uint uVar9;
  int iVar10;
  uint *puVar11;
  uint uVar12;
  byte *pbVar13;
  byte *pbVar14;
  byte *pbVar15;
  bool bVar16;
  bool bVar17;
  bool bVar18;
  byte bVar19;
  uint *local_64;
  uint local_54;
  uint local_50;
  int local_4c;
  uint local_44;
  uint local_30;
  
  bVar19 = 0;
  *param_8 = 0;
  *(undefined4 *)(param_8 + 2) = 0;
  *(undefined4 *)(param_8 + 4) = 0;
  if (param_9 != (uint *)0x0) {
    *param_9 = 0xffffffff;
    param_9[1] = 0xffffffff;
  }
  iVar5 = *param_3;
  if (param_3[1] != param_4) {
    FUN_00023e30();
    param_3[1] = param_4;
    uVar4 = dcgettext(0,"unwind data",5);
    iVar5 = FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4);
    param_3[2] = 0;
    *param_3 = iVar5;
    uVar12 = *(uint *)(param_1 + 0x5c);
    uVar1 = *(uint *)(param_1 + 0x54);
    param_3[3] = 0;
    uVar8 = uVar12 + uVar1 * 0x48;
    uVar9 = uVar12;
    if (uVar12 < uVar8) {
      do {
        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&
            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&
           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {
          param_3[4] = iVar10;
          if (iVar10 == 9) {
            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);
          }
          else {
            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);
          }
          if (iVar5 == 0) {
            return 0;
          }
          iVar10 = param_3[2];
          iVar5 = *param_3;
          goto LAB_000321d8;
        }
        uVar9 = uVar9 + 0x48;
      } while (uVar9 < uVar8);
      iVar10 = 0;
    }
    else {
      iVar10 = 0;
    }
LAB_000321d8:
    param_3[5] = iVar10;
  }
  if (iVar5 != 0) {
    uVar8 = *(uint *)(param_4 + 0x20);
    iVar10 = *(int *)(param_4 + 0x24);
    if (((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&
        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),
        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&
       (-1 < (int)param_6)) {
      local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);
      local_64 = (uint *)param_3[2];
      if (local_64 == (uint *)0x0) {
        *param_7 = local_30;
        return 1;
      }
      local_4c = param_3[3];
      puVar11 = (uint *)param_3[5];
      if (puVar11 == local_64 + local_4c * 6) {
LAB_000322a3:
        *param_7 = local_30;
        param_3[5] = (int)puVar11;
        return 1;
      }
      bVar3 = false;
LAB_0003227f:
      uVar8 = *puVar11;
      uVar12 = puVar11[1];
      if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {
        if (bVar3) goto LAB_000322a3;
        uVar8 = *local_64;
        uVar12 = local_64[1];
        puVar11 = local_64;
        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;
        bVar3 = true;
      }
      if ((uVar8 & 3) == 0) {
        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&
           (*(int *)(param_2 + 4) != 0)) {
          iVar5 = param_3[4];
          if (iVar5 == 9) {
            local_50 = 0;
            local_54 = local_30 & 0x7fffffff;
            if ((local_30 & 0x40000000) != 0) {
              local_50 = 0xffffffff;
              local_54 = local_54 | 0x80000000;
            }
          }
          else {
            if (iVar5 != 4) {
              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);
              error(uVar4,iVar5);
              goto LAB_000322a3;
            }
            local_54 = puVar11[4];
            local_50 = puVar11[5];
          }
          uVar12 = puVar11[2];
          uVar1 = *(uint *)(param_2 + 8);
          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;
          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {
            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);
            error(uVar4,uVar9,uVar1);
            goto LAB_000322a3;
          }
          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));
          uVar9 = *puVar6;
          uVar1 = *puVar6;
          uVar2 = puVar6[1];
          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));
          if (*(short *)(param_1 + 0x42) == 0x28) {
            pbVar13 = (byte *)FUN_00014aa0();
            bVar16 = false;
            bVar18 = pbVar13 == (byte *)0x0;
            if (!bVar18) {
              iVar5 = 0xb;
              pbVar14 = pbVar13;
              pbVar15 = (byte *)"R_ARM_NONE";
              do {
                if (iVar5 == 0) break;
                iVar5 = iVar5 + -1;
                bVar16 = *pbVar14 < *pbVar15;
                bVar18 = *pbVar14 == *pbVar15;
                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;
                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;
              } while (bVar18);
              bVar17 = false;
              bVar16 = (!bVar16 && !bVar18) == bVar16;
              if (!bVar16) {
                iVar5 = 0xd;
                pbVar14 = pbVar13;
                pbVar15 = (byte *)"R_ARM_PREL31";
                do {
                  if (iVar5 == 0) break;
                  iVar5 = iVar5 + -1;
                  bVar17 = *pbVar14 < *pbVar15;
                  bVar16 = *pbVar14 == *pbVar15;
                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;
                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;
                } while (bVar16);
                if ((!bVar17 && !bVar16) != bVar17) {
                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);
                  warn(uVar4,pbVar13);
                  local_64 = (uint *)param_3[2];
                  local_4c = param_3[3];
                  goto LAB_00032500;
                }
LAB_0003245c:
                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;
                *param_8 = (short)puVar6[6];
                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);
                *(uint *)(param_8 + 2) = local_54 + uVar1;
                if (param_9 != (uint *)0x0) {
                  uVar8 = puVar6[4];
                  param_9[1] = 0;
                  *param_9 = uVar8;
                }
                goto LAB_000322a3;
              }
              goto LAB_00032500;
            }
            pcVar7 = "Skipping unknown ARM relocation type: %d\n";
LAB_00032686:
            pbVar13 = (byte *)(uVar12 & 0xff);
            uVar4 = dcgettext(0,pcVar7,5);
          }
          else {
            if (*(short *)(param_1 + 0x42) != 0x8c) {
              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);
              warn(uVar4);
              goto LAB_000322a3;
            }
            pbVar13 = (byte *)FUN_00019be0();
            bVar16 = false;
            bVar18 = pbVar13 == (byte *)0x0;
            if (bVar18) {
              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";
              goto LAB_00032686;
            }
            iVar5 = 0xd;
            pbVar14 = pbVar13;
            pbVar15 = (byte *)"R_C6000_NONE";
            do {
              if (iVar5 == 0) break;
              iVar5 = iVar5 + -1;
              bVar16 = *pbVar14 < *pbVar15;
              bVar18 = *pbVar14 == *pbVar15;
              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;
              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;
            } while (bVar18);
            bVar17 = false;
            bVar16 = (!bVar16 && !bVar18) == bVar16;
            if (bVar16) goto LAB_00032500;
            iVar5 = 0xf;
            pbVar14 = pbVar13;
            pbVar15 = (byte *)"R_C6000_PREL31";
            do {
              if (iVar5 == 0) break;
              iVar5 = iVar5 + -1;
              bVar17 = *pbVar14 < *pbVar15;
              bVar16 = *pbVar14 == *pbVar15;
              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;
              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;
            } while (bVar16);
            if ((!bVar17 && !bVar16) == bVar17) {
              local_44 = local_44 >> 1;
              goto LAB_0003245c;
            }
            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);
          }
          warn(uVar4,pbVar13);
          local_64 = (uint *)param_3[2];
          local_4c = param_3[3];
        }
      }
      else {
        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);
        warn(uVar4,uVar8);
        local_64 = (uint *)param_3[2];
        local_4c = param_3[3];
      }
LAB_00032500:
      puVar11 = puVar11 + 6;
      if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;
      goto LAB_0003227f;
    }
  }
  return 0;
}


PUSH EBP
MOV EBP,ECX
XOR ECX,ECX
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00013f70
ADD EBX,0x81f83
SUB ESP,0x6c
MOV dword ptr [ESP + 0x20],EAX
MOV EAX,dword ptr [ESP + 0x84]
MOV dword ptr [ESP + 0x10],EDX
MOV ESI,dword ptr [ESP + 0x80]
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [ESP + 0x88]
MOV dword ptr [ESP + 0x14],EBX
MOV EBX,dword ptr [ESP + 0x94]
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x90]
MOV word ptr [EAX],CX
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x8],0x0
TEST EBX,EBX
JZ 0x000320e6
MOV EAX,dword ptr [ESP + 0x94]
MOV dword ptr [EAX],0xffffffff
MOV dword ptr [EAX + 0x4],0xffffffff
MOV EAX,dword ptr [EBP]
CMP dword ptr [EBP + 0x4],ESI
JZ 0x000321db
LEA EBX,[EBP + 0x8]
MOV EDX,EBX
MOV dword ptr [ESP + 0x18],EBX
CALL 0x00023e30
SUB ESP,0x4
MOV dword ptr [EBP + 0x4],ESI
PUSH 0x5
MOV EBX,dword ptr [ESP + 0x1c]
LEA EAX,[EBX + 0xfffc7b27]
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV ECX,dword ptr [ESI + 0x18]
MOV dword ptr [ESP],EAX
PUSH dword ptr [ESI + 0x24]
PUSH dword ptr [ESI + 0x20]
PUSH 0x0
PUSH 0x1
MOV EAX,dword ptr [ESP + 0x30]
MOV EDX,dword ptr [EAX]
XOR EAX,EAX
CALL 0x0001bf90
MOV EBX,dword ptr [ESP + 0x40]
ADD ESP,0x20
MOV dword ptr [EBP + 0x8],0x0
MOV dword ptr [EBP],EAX
MOV EDI,dword ptr [EBX + 0x5c]
MOV EBX,dword ptr [EBX + 0x54]
MOV dword ptr [EBP + 0xc],0x0
LEA EDX,[EBX + EBX*0x8]
LEA ECX,[EDI + EDX*0x8]
CMP EDI,ECX
JNC 0x00032670
MOV dword ptr [ESP + 0x24],EAX
MOV EDX,EDI
MOV EAX,ECX
MOV ECX,dword ptr [EDX + 0x2c]
CMP ECX,EBX
JNC 0x0003217c
LEA ECX,[ECX + ECX*0x8]
LEA ECX,[EDI + ECX*0x8]
CMP ESI,ECX
JZ 0x00032190
ADD EDX,0x48
CMP EDX,EAX
JC 0x0003216b
MOV EAX,dword ptr [ESP + 0x24]
XOR EDX,EDX
JMP 0x000321d8
MOV ECX,dword ptr [EDX + 0x4]
CMP ECX,0x9
JZ 0x0003219d
CMP ECX,0x4
JNZ 0x0003217c
MOV EAX,dword ptr [ESP + 0x10]
MOV EBX,dword ptr [EDX + 0x20]
MOV dword ptr [EBP + 0x10],ECX
LEA EDI,[EBP + 0xc]
MOV EDX,dword ptr [EDX + 0x18]
MOV EAX,dword ptr [EAX]
CMP ECX,0x9
JZ 0x000322c0
SUB ESP,0x8
MOV ECX,EBX
PUSH EDI
PUSH dword ptr [ESP + 0x24]
CALL 0x0001e360
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000322e0
MOV EDX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EBP]
MOV dword ptr [EBP + 0x14],EDX
TEST EAX,EAX
JZ 0x000322e0
MOV ECX,dword ptr [ESI + 0x20]
MOV EDX,0x3
MOV EBX,dword ptr [ESI + 0x24]
CMP EDX,ECX
MOV EDX,0x0
SBB EDX,EBX
JNC 0x000322e0
MOV ESI,dword ptr [ESP + 0x8]
ADD ECX,-0x4
MOV EDI,dword ptr [ESP + 0xc]
ADC EBX,-0x1
CMP ECX,ESI
SBB EBX,EDI
JC 0x000322e0
TEST EDI,EDI
JS 0x000322e0
SUB ESP,0x8
ADD EAX,ESI
PUSH 0x4
PUSH EAX
MOV EAX,dword ptr [ESP + 0x24]
LEA EAX,[EAX + 0x5dd8]
CALL dword ptr [EAX]
MOV dword ptr [ESP + 0x68],EAX
MOV dword ptr [ESP + 0x5c],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV dword ptr [ESP + 0x28],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00032610
MOV EAX,dword ptr [EBP + 0xc]
MOV EBX,dword ptr [ESP + 0x18]
MOV EDX,dword ptr [EBP + 0x14]
MOV dword ptr [ESP + 0x30],EAX
LEA EAX,[EAX + EAX*0x2]
LEA EAX,[EBX + EAX*0x8]
CMP EDX,EAX
JZ 0x000322a3
MOV EAX,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0x34],0x0
MOV dword ptr [ESP + 0x24],EBP
MOV EBP,EDX
LEA EAX,[EAX + 0xfffbfbc4]
MOV dword ptr [ESP + 0x5c],EAX
MOV ECX,dword ptr [EBP]
MOV EAX,dword ptr [ESP + 0x8]
MOV EDI,dword ptr [ESP + 0xc]
MOV EBX,dword ptr [EBP + 0x4]
CMP EAX,ECX
MOV ESI,EDI
SBB ESI,EBX
JNC 0x0003230c
MOV EDX,dword ptr [ESP + 0x34]
TEST EDX,EDX
JZ 0x000322f0
MOV EDX,EBP
MOV EBP,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [ESP + 0x8c]
MOV EBX,dword ptr [ESP + 0x4c]
MOV dword ptr [EAX],EBX
MOV EAX,0x1
MOV dword ptr [EBP + 0x14],EDX
ADD ESP,0x6c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x8
MOV ECX,EBX
PUSH EDI
PUSH dword ptr [ESP + 0x24]
CALL 0x0001d7b0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000321d2
LEA ESI,[ESI]
XOR EAX,EAX
ADD ESP,0x6c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EBP,dword ptr [ESP + 0x18]
MOV ECX,dword ptr [EBP]
MOV EBX,dword ptr [EBP + 0x4]
CMP EAX,ECX
SBB EDI,EBX
JC 0x00032757
MOV dword ptr [ESP + 0x34],0x1
MOV EAX,ECX
AND EAX,0x3
JNZ 0x00032520
CMP ECX,dword ptr [ESP + 0x8]
MOV EAX,EBX
SBB EAX,dword ptr [ESP + 0xc]
JC 0x00032500
MOV EAX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [EAX + 0x4]
TEST EDX,EDX
JZ 0x00032500
MOV EAX,dword ptr [ESP + 0x24]
MOV ESI,dword ptr [EAX + 0x10]
CMP ESI,0x9
JZ 0x00032570
CMP ESI,0x4
JNZ 0x000326ec
MOV ESI,dword ptr [EBP + 0x10]
MOV EDI,dword ptr [EBP + 0x14]
MOV dword ptr [ESP + 0x28],ESI
MOV dword ptr [ESP + 0x2c],EDI
MOV EAX,dword ptr [ESP + 0x10]
MOV EDI,dword ptr [EBP + 0xc]
MOV dword ptr [ESP + 0x3c],0x0
MOV ESI,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [ESP + 0x44],EDI
MOV dword ptr [ESP + 0x40],ESI
SHRD ESI,EDI,0x8
SHR EDI,0x8
MOV dword ptr [ESP + 0x50],EAX
CMP ESI,EAX
MOV dword ptr [ESP + 0x38],EAX
MOV EAX,EDI
SBB EAX,dword ptr [ESP + 0x3c]
MOV dword ptr [ESP + 0x48],ESI
JNC 0x000326a9
IMUL EAX,dword ptr [ESP + 0x48],0x1c
MOV ESI,dword ptr [ESP + 0x28]
MOV EDI,dword ptr [ESP + 0x2c]
ADD EAX,EDX
ADD ESI,dword ptr [EAX]
ADC EDI,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x48],EAX
MOV EAX,dword ptr [ESP + 0x24]
MOV dword ptr [ESP + 0x50],ESI
MOV dword ptr [ESP + 0x54],EDI
MOV EAX,dword ptr [EAX + 0x4]
ADD ECX,dword ptr [EAX + 0x10]
ADC EBX,dword ptr [EAX + 0x14]
MOV EAX,dword ptr [ESP + 0x20]
SUB ESI,ECX
SBB EDI,EBX
MOV dword ptr [ESP + 0x38],ESI
MOVZX EAX,word ptr [EAX + 0x42]
MOV dword ptr [ESP + 0x3c],EDI
CMP AX,0x28
JZ 0x000325b0
CMP AX,0x8c
JNZ 0x00032722
MOVZX ESI,byte ptr [ESP + 0x40]
MOV EAX,ESI
CALL 0x00019be0
MOV EDX,EAX
TEST EAX,EAX
JZ 0x00032677
MOV EDI,dword ptr [ESP + 0x5c]
MOV ESI,EAX
MOV ECX,0xd
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00032500
MOV EAX,dword ptr [ESP + 0x14]
MOV ECX,0xf
MOV ESI,EDX
LEA EDI,[EAX + 0xfffbfd62]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x000324c0
MOV ESI,dword ptr [ESP + 0x3c]
MOV EBX,dword ptr [ESP + 0x38]
MOV EDX,EBP
MOV EBP,dword ptr [ESP + 0x24]
SHRD EBX,ESI,0x1
SHR ESI,0x1
MOV dword ptr [ESP + 0x38],EBX
MOV dword ptr [ESP + 0x3c],ESI
MOV EAX,dword ptr [ESP + 0x58]
MOV ECX,dword ptr [ESP + 0x38]
MOV EDI,dword ptr [ESP + 0x48]
MOV EBX,dword ptr [ESP + 0x90]
AND EAX,0x80000000
AND ECX,0x7fffffff
MOV ESI,dword ptr [ESP + 0x54]
OR ECX,EAX
MOV EAX,dword ptr [EDI + 0x18]
MOV dword ptr [ESP + 0x4c],ECX
MOV word ptr [EBX],AX
MOV EAX,EBX
MOV EBX,dword ptr [ESP + 0x50]
MOV dword ptr [EAX + 0x8],ESI
MOV dword ptr [EAX + 0x4],EBX
MOV EAX,dword ptr [ESP + 0x94]
TEST EAX,EAX
JZ 0x000322a3
MOV EAX,dword ptr [ESP + 0x94]
MOV ESI,dword ptr [EDI + 0x10]
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX],ESI
JMP 0x000322a3
MOV dword ptr [ESP + 0x18],EDX
SUB ESP,0x4
PUSH 0x5
MOV ESI,dword ptr [ESP + 0x1c]
LEA EAX,[ESI + 0xfffcf774]
MOV EBX,ESI
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP ESI
POP EDI
MOV EDX,dword ptr [ESP + 0x20]
PUSH EDX
PUSH EAX
CALL 0x00066db0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x24]
MOV ESI,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [EAX + 0xc]
MOV dword ptr [ESP + 0x18],ESI
MOV dword ptr [ESP + 0x30],EAX
NOP
MOV EAX,dword ptr [ESP + 0x30]
MOV EDI,dword ptr [ESP + 0x18]
ADD EBP,0x18
LEA EAX,[EAX + EAX*0x2]
LEA EAX,[EDI + EAX*0x8]
CMP EBP,EAX
JNZ 0x0003227f
JMP 0x0003229d
MOV dword ptr [ESP + 0x1c],EBX
SUB ESP,0x4
MOV dword ptr [ESP + 0x1c],ECX
PUSH 0x5
MOV EDI,dword ptr [ESP + 0x1c]
LEA EAX,[EDI + 0xfffcf65c]
MOV EBX,EDI
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP EBX
POP ESI
MOV EBX,EDI
MOV ECX,dword ptr [ESP + 0x20]
PUSH ECX
PUSH EAX
CALL 0x00066db0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x24]
MOV EBX,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [EAX + 0xc]
MOV dword ptr [ESP + 0x18],EBX
MOV dword ptr [ESP + 0x30],EAX
JMP 0x00032500
MOV EDI,dword ptr [ESP + 0x58]
MOV dword ptr [ESP + 0x2c],0x0
MOV EAX,EDI
AND EAX,0x7fffffff
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,EDI
TEST EAX,0x40000000
JZ 0x0003235d
MOV EAX,dword ptr [ESP + 0x28]
MOV dword ptr [ESP + 0x2c],0xffffffff
OR EAX,0x80000000
MOV dword ptr [ESP + 0x28],EAX
JMP 0x0003235d
MOVZX ESI,byte ptr [ESP + 0x40]
MOV EAX,ESI
CALL 0x00014aa0
MOV EDX,EAX
TEST EAX,EAX
JZ 0x00032698
MOV EBX,dword ptr [ESP + 0x14]
MOV ESI,EAX
MOV ECX,0xb
LEA EDI,[EBX + 0xfffb8ea3]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00032500
MOV ECX,0xd
LEA EDI,[EBX + 0xfffb9111]
MOV ESI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00032627
MOV EDX,EBP
MOV EBP,dword ptr [ESP + 0x24]
JMP 0x0003245c
MOV EAX,dword ptr [ESP + 0x8c]
MOV EDI,dword ptr [ESP + 0x58]
MOV dword ptr [EAX],EDI
MOV EAX,0x1
JMP 0x000322e2
MOV dword ptr [ESP + 0x18],EDX
SUB ESP,0x4
PUSH 0x5
MOV ESI,dword ptr [ESP + 0x1c]
LEA EAX,[ESI + 0xfffcf71c]
MOV EBX,ESI
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP ESI
POP EDI
MOV EDX,dword ptr [ESP + 0x20]
PUSH EDX
PUSH EAX
CALL 0x00066db0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x24]
MOV EDX,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [EAX + 0xc]
MOV dword ptr [ESP + 0x18],EDX
MOV dword ptr [ESP + 0x30],EAX
JMP 0x00032500
XOR EDX,EDX
JMP 0x000321d8
SUB ESP,0x4
PUSH 0x5
MOV EDI,dword ptr [ESP + 0x1c]
LEA EAX,[EDI + 0xfffcf748]
PUSH EAX
MOV EBX,EDI
PUSH 0x0
CALL 0x000130f0
POP EDX
POP ECX
PUSH ESI
JMP 0x000324e4
SUB ESP,0x4
PUSH 0x5
MOV EDI,dword ptr [ESP + 0x1c]
LEA EAX,[EDI + 0xfffcf6f0]
JMP 0x00032686
MOV dword ptr [ESP + 0x8],EBP
MOV EBP,dword ptr [ESP + 0x24]
SUB ESP,0x4
PUSH 0x5
MOV EDX,dword ptr [ESP + 0x1c]
LEA EAX,[EDX + 0xfffcf6bc]
MOV EBX,EDX
PUSH EAX
PUSH 0x0
MOV dword ptr [ESP + 0x24],EDX
CALL 0x000130f0
ADD ESP,0xc
PUSH dword ptr [ESP + 0x54]
PUSH ESI
PUSH EAX
MOV EBX,dword ptr [ESP + 0x24]
CALL 0x00066870
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
JMP 0x000322a3
MOV dword ptr [ESP + 0x8],EBP
MOV EBP,dword ptr [ESP + 0x24]
SUB ESP,0x4
PUSH 0x5
MOV EDI,dword ptr [ESP + 0x1c]
LEA EAX,[EDI + 0xfffcf68c]
MOV EBX,EDI
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x00066870
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
JMP 0x000322a3
MOV dword ptr [ESP + 0x8],EBP
MOV EBP,dword ptr [ESP + 0x24]
SUB ESP,0x4
PUSH 0x5
MOV ESI,dword ptr [ESP + 0x1c]
LEA EAX,[ESI + 0xfffcf7a4]
MOV EBX,ESI
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00066db0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
JMP 0x000322a3
MOV EBP,dword ptr [ESP + 0x24]
MOV EDX,dword ptr [ESP + 0x18]
JMP 0x000322a3
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n\nundefined4 __regparm3\nFUN_00032070(int param_1,int param_2,int *param_3,int param_4,uint param_5,uint param_6,\n            uint *param_7,undefined2 *param_8,uint *param_9)\n\n{\n  uint uVar1;\n  uint uVar2;\n  bool bVar3;\n  undefined4 uVar4;\n  int iVar5;\n  uint *puVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint uVar9;\n  int iVar10;\n  uint *puVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  uint *local_64;\n  uint local_54;\n  uint local_50;\n  int local_4c;\n  uint local_44;\n  uint local_30;\n  \n  bVar19 = 0;\n  *param_8 = 0;\n  *(undefined4 *)(param_8 + 2) = 0;\n  *(undefined4 *)(param_8 + 4) = 0;\n  if (param_9 != (uint *)0x0) {\n    *param_9 = 0xffffffff;\n    param_9[1] = 0xffffffff;\n  }\n  iVar5 = *param_3;\n  if (param_3[1] != param_4) {\n    FUN_00023e30();\n    param_3[1] = param_4;\n    uVar4 = dcgettext(0,"unwind data",5);\n    iVar5 = FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4);\n    param_3[2] = 0;\n    *param_3 = iVar5;\n    uVar12 = *(uint *)(param_1 + 0x5c);\n    uVar1 = *(uint *)(param_1 + 0x54);\n    param_3[3] = 0;\n    uVar8 = uVar12 + uVar1 * 0x48;\n    uVar9 = uVar12;\n    if (uVar12 < uVar8) {\n      do {\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      } while (uVar9 < uVar8);\n      iVar10 = 0;\n    }\n    else {\n      iVar10 = 0;\n    }\nLAB_000321d8:\n    param_3[5] = iVar10;\n  }\n  if (iVar5 != 0) {\n    uVar8 = *(uint *)(param_4 + 0x20);\n    iVar10 = *(int *)(param_4 + 0x24);\n    if (((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&\n       (-1 < (int)param_6)) {\n      local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);\n      local_64 = (uint *)param_3[2];\n      if (local_64 == (uint *)0x0) {\n        *param_7 = local_30;\n        return 1;\n      }\n      local_4c = param_3[3];\n      puVar11 = (uint *)param_3[5];\n      if (puVar11 == local_64 + local_4c * 6) {\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }\n      bVar3 = false;\nLAB_0003227f:\n      uVar8 = *puVar11;\n      uVar12 = puVar11[1];\n      if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }\n      if ((uVar8 & 3) == 0) {\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }\nLAB_00032500:\n      puVar11 = puVar11 + 6;\n      if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }\n  }\n  return 0;\n}\n\n" comment comment (function_definition "undefined4 __regparm3\nFUN_00032070(int param_1,int param_2,int *param_3,int param_4,uint param_5,uint param_6,\n            uint *param_7,undefined2 *param_8,uint *param_9)\n\n{\n  uint uVar1;\n  uint uVar2;\n  bool bVar3;\n  undefined4 uVar4;\n  int iVar5;\n  uint *puVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint uVar9;\n  int iVar10;\n  uint *puVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  uint *local_64;\n  uint local_54;\n  uint local_50;\n  int local_4c;\n  uint local_44;\n  uint local_30;\n  \n  bVar19 = 0;\n  *param_8 = 0;\n  *(undefined4 *)(param_8 + 2) = 0;\n  *(undefined4 *)(param_8 + 4) = 0;\n  if (param_9 != (uint *)0x0) {\n    *param_9 = 0xffffffff;\n    param_9[1] = 0xffffffff;\n  }\n  iVar5 = *param_3;\n  if (param_3[1] != param_4) {\n    FUN_00023e30();\n    param_3[1] = param_4;\n    uVar4 = dcgettext(0,"unwind data",5);\n    iVar5 = FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4);\n    param_3[2] = 0;\n    *param_3 = iVar5;\n    uVar12 = *(uint *)(param_1 + 0x5c);\n    uVar1 = *(uint *)(param_1 + 0x54);\n    param_3[3] = 0;\n    uVar8 = uVar12 + uVar1 * 0x48;\n    uVar9 = uVar12;\n    if (uVar12 < uVar8) {\n      do {\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      } while (uVar9 < uVar8);\n      iVar10 = 0;\n    }\n    else {\n      iVar10 = 0;\n    }\nLAB_000321d8:\n    param_3[5] = iVar10;\n  }\n  if (iVar5 != 0) {\n    uVar8 = *(uint *)(param_4 + 0x20);\n    iVar10 = *(int *)(param_4 + 0x24);\n    if (((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&\n       (-1 < (int)param_6)) {\n      local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);\n      local_64 = (uint *)param_3[2];\n      if (local_64 == (uint *)0x0) {\n        *param_7 = local_30;\n        return 1;\n      }\n      local_4c = param_3[3];\n      puVar11 = (uint *)param_3[5];\n      if (puVar11 == local_64 + local_4c * 6) {\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }\n      bVar3 = false;\nLAB_0003227f:\n      uVar8 = *puVar11;\n      uVar12 = puVar11[1];\n      if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }\n      if ((uVar8 & 3) == 0) {\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }\nLAB_00032500:\n      puVar11 = puVar11 + 6;\n      if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }\n  }\n  return 0;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00032070(int param_1,int param_2,int *param_3,int param_4,uint param_5,uint param_6,\n            uint *param_7,undefined2 *param_8,uint *param_9)" identifier (parameter_list "(int param_1,int param_2,int *param_3,int param_4,uint param_5,uint param_6,\n            uint *param_7,undefined2 *param_8,uint *param_9)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "uint param_6" type_identifier identifier) , (parameter_declaration "uint *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "undefined2 *param_8" type_identifier (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "uint *param_9" type_identifier (pointer_declarator "*param_9" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  bool bVar3;\n  undefined4 uVar4;\n  int iVar5;\n  uint *puVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint uVar9;\n  int iVar10;\n  uint *puVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  uint *local_64;\n  uint local_54;\n  uint local_50;\n  int local_4c;\n  uint local_44;\n  uint local_30;\n  \n  bVar19 = 0;\n  *param_8 = 0;\n  *(undefined4 *)(param_8 + 2) = 0;\n  *(undefined4 *)(param_8 + 4) = 0;\n  if (param_9 != (uint *)0x0) {\n    *param_9 = 0xffffffff;\n    param_9[1] = 0xffffffff;\n  }\n  iVar5 = *param_3;\n  if (param_3[1] != param_4) {\n    FUN_00023e30();\n    param_3[1] = param_4;\n    uVar4 = dcgettext(0,"unwind data",5);\n    iVar5 = FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4);\n    param_3[2] = 0;\n    *param_3 = iVar5;\n    uVar12 = *(uint *)(param_1 + 0x5c);\n    uVar1 = *(uint *)(param_1 + 0x54);\n    param_3[3] = 0;\n    uVar8 = uVar12 + uVar1 * 0x48;\n    uVar9 = uVar12;\n    if (uVar12 < uVar8) {\n      do {\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      } while (uVar9 < uVar8);\n      iVar10 = 0;\n    }\n    else {\n      iVar10 = 0;\n    }\nLAB_000321d8:\n    param_3[5] = iVar10;\n  }\n  if (iVar5 != 0) {\n    uVar8 = *(uint *)(param_4 + 0x20);\n    iVar10 = *(int *)(param_4 + 0x24);\n    if (((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&\n       (-1 < (int)param_6)) {\n      local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);\n      local_64 = (uint *)param_3[2];\n      if (local_64 == (uint *)0x0) {\n        *param_7 = local_30;\n        return 1;\n      }\n      local_4c = param_3[3];\n      puVar11 = (uint *)param_3[5];\n      if (puVar11 == local_64 + local_4c * 6) {\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }\n      bVar3 = false;\nLAB_0003227f:\n      uVar8 = *puVar11;\n      uVar12 = puVar11[1];\n      if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }\n      if ((uVar8 & 3) == 0) {\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }\nLAB_00032500:\n      puVar11 = puVar11 + 6;\n      if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }\n  }\n  return 0;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "uint *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "*param_8 = 0;" (assignment_expression "*param_8 = 0" (pointer_expression "*param_8" * identifier) = number_literal) ;) (expression_statement "*(undefined4 *)(param_8 + 2) = 0;" (assignment_expression "*(undefined4 *)(param_8 + 2) = 0" (pointer_expression "*(undefined4 *)(param_8 + 2)" * (cast_expression "(undefined4 *)(param_8 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 2)" ( (binary_expression "param_8 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_8 + 4) = 0;" (assignment_expression "*(undefined4 *)(param_8 + 4) = 0" (pointer_expression "*(undefined4 *)(param_8 + 4)" * (cast_expression "(undefined4 *)(param_8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 4)" ( (binary_expression "param_8 + 4" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (param_9 != (uint *)0x0) {\n    *param_9 = 0xffffffff;\n    param_9[1] = 0xffffffff;\n  }" if (parenthesized_expression "(param_9 != (uint *)0x0)" ( (binary_expression "param_9 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_9 = 0xffffffff;\n    param_9[1] = 0xffffffff;\n  }" { (expression_statement "*param_9 = 0xffffffff;" (assignment_expression "*param_9 = 0xffffffff" (pointer_expression "*param_9" * identifier) = number_literal) ;) (expression_statement "param_9[1] = 0xffffffff;" (assignment_expression "param_9[1] = 0xffffffff" (subscript_expression "param_9[1]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "iVar5 = *param_3;" (assignment_expression "iVar5 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (param_3[1] != param_4) {\n    FUN_00023e30();\n    param_3[1] = param_4;\n    uVar4 = dcgettext(0,"unwind data",5);\n    iVar5 = FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4);\n    param_3[2] = 0;\n    *param_3 = iVar5;\n    uVar12 = *(uint *)(param_1 + 0x5c);\n    uVar1 = *(uint *)(param_1 + 0x54);\n    param_3[3] = 0;\n    uVar8 = uVar12 + uVar1 * 0x48;\n    uVar9 = uVar12;\n    if (uVar12 < uVar8) {\n      do {\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      } while (uVar9 < uVar8);\n      iVar10 = 0;\n    }\n    else {\n      iVar10 = 0;\n    }\nLAB_000321d8:\n    param_3[5] = iVar10;\n  }" if (parenthesized_expression "(param_3[1] != param_4)" ( (binary_expression "param_3[1] != param_4" (subscript_expression "param_3[1]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    FUN_00023e30();\n    param_3[1] = param_4;\n    uVar4 = dcgettext(0,"unwind data",5);\n    iVar5 = FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4);\n    param_3[2] = 0;\n    *param_3 = iVar5;\n    uVar12 = *(uint *)(param_1 + 0x5c);\n    uVar1 = *(uint *)(param_1 + 0x54);\n    param_3[3] = 0;\n    uVar8 = uVar12 + uVar1 * 0x48;\n    uVar9 = uVar12;\n    if (uVar12 < uVar8) {\n      do {\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      } while (uVar9 < uVar8);\n      iVar10 = 0;\n    }\n    else {\n      iVar10 = 0;\n    }\nLAB_000321d8:\n    param_3[5] = iVar10;\n  }" { (expression_statement "FUN_00023e30();" (call_expression "FUN_00023e30()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_3[1] = param_4;" (assignment_expression "param_3[1] = param_4" (subscript_expression "param_3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = dcgettext(0,"unwind data",5);" (assignment_expression "uVar4 = dcgettext(0,"unwind data",5)" identifier = (call_expression "dcgettext(0,"unwind data",5)" identifier (argument_list "(0,"unwind data",5)" ( number_literal , (string_literal ""unwind data"" " string_content ") , number_literal )))) ;) (expression_statement "iVar5 = FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4);" (assignment_expression "iVar5 = FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4)" identifier = (call_expression "FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4)" identifier (argument_list "(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4)" ( number_literal , number_literal , (pointer_expression "*(undefined4 *)(param_4 + 0x20)" * (cast_expression "(undefined4 *)(param_4 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x20)" ( (binary_expression "param_4 + 0x20" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_4 + 0x24)" * (cast_expression "(undefined4 *)(param_4 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x24)" ( (binary_expression "param_4 + 0x24" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "param_3[2] = 0;" (assignment_expression "param_3[2] = 0" (subscript_expression "param_3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_3 = iVar5;" (assignment_expression "*param_3 = iVar5" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "uVar12 = *(uint *)(param_1 + 0x5c);" (assignment_expression "uVar12 = *(uint *)(param_1 + 0x5c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x5c)" * (cast_expression "(uint *)(param_1 + 0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = *(uint *)(param_1 + 0x54);" (assignment_expression "uVar1 = *(uint *)(param_1 + 0x54)" identifier = (pointer_expression "*(uint *)(param_1 + 0x54)" * (cast_expression "(uint *)(param_1 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "param_3[3] = 0;" (assignment_expression "param_3[3] = 0" (subscript_expression "param_3[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar8 = uVar12 + uVar1 * 0x48;" (assignment_expression "uVar8 = uVar12 + uVar1 * 0x48" identifier = (binary_expression "uVar12 + uVar1 * 0x48" identifier + (binary_expression "uVar1 * 0x48" identifier * number_literal))) ;) (expression_statement "uVar9 = uVar12;" (assignment_expression "uVar9 = uVar12" identifier = identifier) ;) (if_statement "if (uVar12 < uVar8) {\n      do {\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      } while (uVar9 < uVar8);\n      iVar10 = 0;\n    }\n    else {\n      iVar10 = 0;\n    }" if (parenthesized_expression "(uVar12 < uVar8)" ( (binary_expression "uVar12 < uVar8" identifier < identifier) )) (compound_statement "{\n      do {\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      } while (uVar9 < uVar8);\n      iVar10 = 0;\n    }" { (do_statement "do {\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      } while (uVar9 < uVar8);" do (compound_statement "{\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      }" { (if_statement "if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }" if (parenthesized_expression "(((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4))))" ( (binary_expression "((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))" (parenthesized_expression "((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48))" ( (binary_expression "(*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)" (parenthesized_expression "(*(uint *)(uVar9 + 0x2c) < uVar1)" ( (binary_expression "*(uint *)(uVar9 + 0x2c) < uVar1" (pointer_expression "*(uint *)(uVar9 + 0x2c)" * (cast_expression "(uint *)(uVar9 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x2c)" ( (binary_expression "uVar9 + 0x2c" identifier + number_literal) )))) < identifier) )) && (parenthesized_expression "(param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)" ( (binary_expression "param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48" identifier == (binary_expression "uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48" identifier + (binary_expression "*(uint *)(uVar9 + 0x2c) * 0x48" (pointer_expression "*(uint *)(uVar9 + 0x2c)" * (cast_expression "(uint *)(uVar9 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x2c)" ( (binary_expression "uVar9 + 0x2c" identifier + number_literal) )))) * number_literal))) ))) )) && (parenthesized_expression "((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))" ( (parenthesized_expression "(iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4))" ( (comma_expression "iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)" (assignment_expression "iVar10 = *(int *)(uVar9 + 4)" identifier = (pointer_expression "*(int *)(uVar9 + 4)" * (cast_expression "(int *)(uVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 4)" ( (binary_expression "uVar9 + 4" identifier + number_literal) ))))) , (binary_expression "iVar10 == 9 || (iVar10 == 4)" (binary_expression "iVar10 == 9" identifier == number_literal) || (parenthesized_expression "(iVar10 == 4)" ( (binary_expression "iVar10 == 4" identifier == number_literal) )))) )) ))) )) (compound_statement "{\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }" { (expression_statement "param_3[4] = iVar10;" (assignment_expression "param_3[4] = iVar10" (subscript_expression "param_3[4]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }" if (parenthesized_expression "(iVar10 == 9)" ( (binary_expression "iVar10 == 9" identifier == number_literal) )) (compound_statement "{\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }" { (expression_statement "iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);" (assignment_expression "iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3)" identifier = (call_expression "FUN_0001d7b0(param_3 + 2,param_3 + 3)" identifier (argument_list "(param_3 + 2,param_3 + 3)" ( (binary_expression "param_3 + 2" identifier + number_literal) , (binary_expression "param_3 + 3" identifier + number_literal) )))) ;) }) (else_clause "else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }" else (compound_statement "{\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }" { (expression_statement "iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);" (assignment_expression "iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3)" identifier = (call_expression "FUN_0001e360(param_3 + 2,param_3 + 3)" identifier (argument_list "(param_3 + 2,param_3 + 3)" ( (binary_expression "param_3 + 2" identifier + number_literal) , (binary_expression "param_3 + 3" identifier + number_literal) )))) ;) }))) (if_statement "if (iVar5 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar10 = param_3[2];" (assignment_expression "iVar10 = param_3[2]" identifier = (subscript_expression "param_3[2]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = *param_3;" (assignment_expression "iVar5 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (goto_statement "goto LAB_000321d8;" goto statement_identifier ;) })) (expression_statement "uVar9 = uVar9 + 0x48;" (assignment_expression "uVar9 = uVar9 + 0x48" identifier = (binary_expression "uVar9 + 0x48" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar9 < uVar8)" ( (binary_expression "uVar9 < uVar8" identifier < identifier) )) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      iVar10 = 0;\n    }" else (compound_statement "{\n      iVar10 = 0;\n    }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_000321d8:\n    param_3[5] = iVar10;" statement_identifier : (expression_statement "param_3[5] = iVar10;" (assignment_expression "param_3[5] = iVar10" (subscript_expression "param_3[5]" identifier [ number_literal ]) = identifier) ;)) })) (if_statement "if (iVar5 != 0) {\n    uVar8 = *(uint *)(param_4 + 0x20);\n    iVar10 = *(int *)(param_4 + 0x24);\n    if (((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&\n       (-1 < (int)param_6)) {\n      local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);\n      local_64 = (uint *)param_3[2];\n      if (local_64 == (uint *)0x0) {\n        *param_7 = local_30;\n        return 1;\n      }\n      local_4c = param_3[3];\n      puVar11 = (uint *)param_3[5];\n      if (puVar11 == local_64 + local_4c * 6) {\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }\n      bVar3 = false;\nLAB_0003227f:\n      uVar8 = *puVar11;\n      uVar12 = puVar11[1];\n      if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }\n      if ((uVar8 & 3) == 0) {\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }\nLAB_00032500:\n      puVar11 = puVar11 + 6;\n      if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }\n  }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar8 = *(uint *)(param_4 + 0x20);\n    iVar10 = *(int *)(param_4 + 0x24);\n    if (((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&\n       (-1 < (int)param_6)) {\n      local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);\n      local_64 = (uint *)param_3[2];\n      if (local_64 == (uint *)0x0) {\n        *param_7 = local_30;\n        return 1;\n      }\n      local_4c = param_3[3];\n      puVar11 = (uint *)param_3[5];\n      if (puVar11 == local_64 + local_4c * 6) {\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }\n      bVar3 = false;\nLAB_0003227f:\n      uVar8 = *puVar11;\n      uVar12 = puVar11[1];\n      if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }\n      if ((uVar8 & 3) == 0) {\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }\nLAB_00032500:\n      puVar11 = puVar11 + 6;\n      if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }\n  }" { (expression_statement "uVar8 = *(uint *)(param_4 + 0x20);" (assignment_expression "uVar8 = *(uint *)(param_4 + 0x20)" identifier = (pointer_expression "*(uint *)(param_4 + 0x20)" * (cast_expression "(uint *)(param_4 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x20)" ( (binary_expression "param_4 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(param_4 + 0x24);" (assignment_expression "iVar10 = *(int *)(param_4 + 0x24)" identifier = (pointer_expression "*(int *)(param_4 + 0x24)" * (cast_expression "(int *)(param_4 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x24)" ( (binary_expression "param_4 + 0x24" identifier + number_literal) ))))) ;) (if_statement "if (((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&\n       (-1 < (int)param_6)) {\n      local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);\n      local_64 = (uint *)param_3[2];\n      if (local_64 == (uint *)0x0) {\n        *param_7 = local_30;\n        return 1;\n      }\n      local_4c = param_3[3];\n      puVar11 = (uint *)param_3[5];\n      if (puVar11 == local_64 + local_4c * 6) {\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }\n      bVar3 = false;\nLAB_0003227f:\n      uVar8 = *puVar11;\n      uVar12 = puVar11[1];\n      if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }\n      if ((uVar8 & 3) == 0) {\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }\nLAB_00032500:\n      puVar11 = puVar11 + 6;\n      if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }" if (parenthesized_expression "(((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&\n       (-1 < (int)param_6))" ( (binary_expression "((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&\n       (-1 < (int)param_6)" (parenthesized_expression "((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6))" ( (binary_expression "(iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)" (parenthesized_expression "(iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8))" ( (binary_expression "iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)" (binary_expression "iVar10 != 0" identifier != number_literal) || (binary_expression "(uint)-iVar10 < (uint)(3 < uVar8)" (binary_expression "(uint)-iVar10" (parenthesized_expression "(uint)" ( identifier )) - identifier) < (call_expression "(uint)(3 < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(3 < uVar8)" ( (binary_expression "3 < uVar8" number_literal < identifier) ))))) )) && (parenthesized_expression "(uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)" ( (comma_expression "uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6" (assignment_expression "uVar12 = iVar10 + -1 + (uint)(3 < uVar8)" identifier = (binary_expression "iVar10 + -1 + (uint)(3 < uVar8)" (binary_expression "iVar10 + -1" identifier + number_literal) + (call_expression "(uint)(3 < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(3 < uVar8)" ( (binary_expression "3 < uVar8" number_literal < identifier) ))))) , (binary_expression "param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6" (binary_expression "param_6 <= uVar12" identifier <= identifier) && (binary_expression "(uint)(uVar8 - 4 < param_5) <= uVar12 - param_6" (call_expression "(uint)(uVar8 - 4 < param_5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar8 - 4 < param_5)" ( (binary_expression "uVar8 - 4 < param_5" (binary_expression "uVar8 - 4" identifier - number_literal) < identifier) ))) <= (binary_expression "uVar12 - param_6" identifier - identifier)))) ))) )) && (parenthesized_expression "(-1 < (int)param_6)" ( (binary_expression "-1 < (int)param_6" number_literal < (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n      local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);\n      local_64 = (uint *)param_3[2];\n      if (local_64 == (uint *)0x0) {\n        *param_7 = local_30;\n        return 1;\n      }\n      local_4c = param_3[3];\n      puVar11 = (uint *)param_3[5];\n      if (puVar11 == local_64 + local_4c * 6) {\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }\n      bVar3 = false;\nLAB_0003227f:\n      uVar8 = *puVar11;\n      uVar12 = puVar11[1];\n      if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }\n      if ((uVar8 & 3) == 0) {\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }\nLAB_00032500:\n      puVar11 = puVar11 + 6;\n      if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }" { (expression_statement "local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);" (assignment_expression "local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4)" identifier = (call_expression "(*DAT_000b9dd8)(iVar5 + param_5,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "(iVar5 + param_5,4)" ( (binary_expression "iVar5 + param_5" identifier + identifier) , number_literal )))) ;) (expression_statement "local_64 = (uint *)param_3[2];" (assignment_expression "local_64 = (uint *)param_3[2]" identifier = (cast_expression "(uint *)param_3[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;) (if_statement "if (local_64 == (uint *)0x0) {\n        *param_7 = local_30;\n        return 1;\n      }" if (parenthesized_expression "(local_64 == (uint *)0x0)" ( (binary_expression "local_64 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *param_7 = local_30;\n        return 1;\n      }" { (expression_statement "*param_7 = local_30;" (assignment_expression "*param_7 = local_30" (pointer_expression "*param_7" * identifier) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "local_4c = param_3[3];" (assignment_expression "local_4c = param_3[3]" identifier = (subscript_expression "param_3[3]" identifier [ number_literal ])) ;) (expression_statement "puVar11 = (uint *)param_3[5];" (assignment_expression "puVar11 = (uint *)param_3[5]" identifier = (cast_expression "(uint *)param_3[5]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[5]" identifier [ number_literal ]))) ;) (if_statement "if (puVar11 == local_64 + local_4c * 6) {\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }" if (parenthesized_expression "(puVar11 == local_64 + local_4c * 6)" ( (binary_expression "puVar11 == local_64 + local_4c * 6" identifier == (binary_expression "local_64 + local_4c * 6" identifier + (binary_expression "local_4c * 6" identifier * number_literal))) )) (compound_statement "{\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }" { (labeled_statement "LAB_000322a3:\n        *param_7 = local_30;" statement_identifier : (expression_statement "*param_7 = local_30;" (assignment_expression "*param_7 = local_30" (pointer_expression "*param_7" * identifier) = identifier) ;)) (expression_statement "param_3[5] = (int)puVar11;" (assignment_expression "param_3[5] = (int)puVar11" (subscript_expression "param_3[5]" identifier [ number_literal ]) = (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (labeled_statement "LAB_0003227f:\n      uVar8 = *puVar11;" statement_identifier : (expression_statement "uVar8 = *puVar11;" (assignment_expression "uVar8 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;)) (expression_statement "uVar12 = puVar11[1];" (assignment_expression "uVar12 = puVar11[1]" identifier = (subscript_expression "puVar11[1]" identifier [ number_literal ])) ;) (if_statement "if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }" if (parenthesized_expression "(param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8))" ( (binary_expression "param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)" (binary_expression "param_6 < uVar12" identifier < identifier) || (binary_expression "param_6 - uVar12 < (uint)(param_5 < uVar8)" (binary_expression "param_6 - uVar12" identifier - identifier) < (call_expression "(uint)(param_5 < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_5 < uVar8)" ( (binary_expression "param_5 < uVar8" identifier < identifier) ))))) )) (compound_statement "{\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }" { (if_statement "if (bVar3) goto LAB_000322a3;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto LAB_000322a3;" goto statement_identifier ;)) (expression_statement "uVar8 = *local_64;" (assignment_expression "uVar8 = *local_64" identifier = (pointer_expression "*local_64" * identifier)) ;) (expression_statement "uVar12 = local_64[1];" (assignment_expression "uVar12 = local_64[1]" identifier = (subscript_expression "local_64[1]" identifier [ number_literal ])) ;) (expression_statement "puVar11 = local_64;" (assignment_expression "puVar11 = local_64" identifier = identifier) ;) (if_statement "if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;" if (parenthesized_expression "(param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8))" ( (binary_expression "param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)" (binary_expression "param_6 < uVar12" identifier < identifier) || (binary_expression "param_6 - uVar12 < (uint)(param_5 < uVar8)" (binary_expression "param_6 - uVar12" identifier - identifier) < (call_expression "(uint)(param_5 < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_5 < uVar8)" ( (binary_expression "param_5 < uVar8" identifier < identifier) ))))) )) (goto_statement "goto LAB_000322a3;" goto statement_identifier ;)) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) })) (if_statement "if ((uVar8 & 3) == 0) {\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }" if (parenthesized_expression "((uVar8 & 3) == 0)" ( (binary_expression "(uVar8 & 3) == 0" (parenthesized_expression "(uVar8 & 3)" ( (binary_expression "uVar8 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }" { (if_statement "if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }" if (parenthesized_expression "((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0))" ( (binary_expression "(param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)" (parenthesized_expression "(param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6)" ( (binary_expression "param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6" (binary_expression "param_6 <= uVar12" identifier <= identifier) && (binary_expression "(uint)(uVar8 < param_5) <= uVar12 - param_6" (call_expression "(uint)(uVar8 < param_5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar8 < param_5)" ( (binary_expression "uVar8 < param_5" identifier < identifier) ))) <= (binary_expression "uVar12 - param_6" identifier - identifier))) )) && (parenthesized_expression "(*(int *)(param_2 + 4) != 0)" ( (binary_expression "*(int *)(param_2 + 4) != 0" (pointer_expression "*(int *)(param_2 + 4)" * (cast_expression "(int *)(param_2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }" { (expression_statement "iVar5 = param_3[4];" (assignment_expression "iVar5 = param_3[4]" identifier = (subscript_expression "param_3[4]" identifier [ number_literal ])) ;) (if_statement "if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }" if (parenthesized_expression "(iVar5 == 9)" ( (binary_expression "iVar5 == 9" identifier == number_literal) )) (compound_statement "{\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }" { (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_54 = local_30 & 0x7fffffff;" (assignment_expression "local_54 = local_30 & 0x7fffffff" identifier = (binary_expression "local_30 & 0x7fffffff" identifier & number_literal)) ;) (if_statement "if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }" if (parenthesized_expression "((local_30 & 0x40000000) != 0)" ( (binary_expression "(local_30 & 0x40000000) != 0" (parenthesized_expression "(local_30 & 0x40000000)" ( (binary_expression "local_30 & 0x40000000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }" { (expression_statement "local_50 = 0xffffffff;" (assignment_expression "local_50 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_54 = local_54 | 0x80000000;" (assignment_expression "local_54 = local_54 | 0x80000000" identifier = (binary_expression "local_54 | 0x80000000" identifier | number_literal)) ;) })) }) (else_clause "else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }" else (compound_statement "{\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }" { (if_statement "if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }" if (parenthesized_expression "(iVar5 != 4)" ( (binary_expression "iVar5 != 4" identifier != number_literal) )) (compound_statement "{\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }" { (expression_statement "uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5)" identifier = (call_expression "dcgettext(0,"Unknown section relocation type %d encountered\n",5)" identifier (argument_list "(0,"Unknown section relocation type %d encountered\n",5)" ( number_literal , (string_literal ""Unknown section relocation type %d encountered\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar4,iVar5);" (call_expression "error(uVar4,iVar5)" identifier (argument_list "(uVar4,iVar5)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_000322a3;" goto statement_identifier ;) })) (expression_statement "local_54 = puVar11[4];" (assignment_expression "local_54 = puVar11[4]" identifier = (subscript_expression "puVar11[4]" identifier [ number_literal ])) ;) (expression_statement "local_50 = puVar11[5];" (assignment_expression "local_50 = puVar11[5]" identifier = (subscript_expression "puVar11[5]" identifier [ number_literal ])) ;) }))) (expression_statement "uVar12 = puVar11[2];" (assignment_expression "uVar12 = puVar11[2]" identifier = (subscript_expression "puVar11[2]" identifier [ number_literal ])) ;) (expression_statement "uVar1 = *(uint *)(param_2 + 8);" (assignment_expression "uVar1 = *(uint *)(param_2 + 8)" identifier = (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;" (assignment_expression "uVar9 = uVar12 >> 8 | puVar11[3] << 0x18" identifier = (binary_expression "uVar12 >> 8 | puVar11[3] << 0x18" (binary_expression "uVar12 >> 8" identifier >> number_literal) | (binary_expression "puVar11[3] << 0x18" (subscript_expression "puVar11[3]" identifier [ number_literal ]) << number_literal))) ;) (if_statement "if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }" if (parenthesized_expression "((uint)(uVar9 < uVar1) <= puVar11[3] >> 8)" ( (binary_expression "(uint)(uVar9 < uVar1) <= puVar11[3] >> 8" (call_expression "(uint)(uVar9 < uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 < uVar1)" ( (binary_expression "uVar9 < uVar1" identifier < identifier) ))) <= (binary_expression "puVar11[3] >> 8" (subscript_expression "puVar11[3]" identifier [ number_literal ]) >> number_literal)) )) (compound_statement "{\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }" { (expression_statement "uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5)" identifier = (call_expression "dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5)" identifier (argument_list "(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5)" ( number_literal , (string_literal ""Bad symbol index in unwind relocation (%lu > %lu)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar4,uVar9,uVar1);" (call_expression "error(uVar4,uVar9,uVar1)" identifier (argument_list "(uVar4,uVar9,uVar1)" ( identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_000322a3;" goto statement_identifier ;) })) (expression_statement "puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));" (assignment_expression "puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4))" identifier = (cast_expression "(uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 * 0x1c + *(int *)(param_2 + 4))" ( (binary_expression "uVar9 * 0x1c + *(int *)(param_2 + 4)" (binary_expression "uVar9 * 0x1c" identifier * number_literal) + (pointer_expression "*(int *)(param_2 + 4)" * (cast_expression "(int *)(param_2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) )))) ;) (expression_statement "uVar9 = *puVar6;" (assignment_expression "uVar9 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "uVar1 = *puVar6;" (assignment_expression "uVar1 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "uVar2 = puVar6[1];" (assignment_expression "uVar2 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));" (assignment_expression "local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10))" identifier = (binary_expression "(local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10))" (parenthesized_expression "(local_54 + uVar1)" ( (binary_expression "local_54 + uVar1" identifier + identifier) )) - (parenthesized_expression "(uVar8 + *(int *)(param_3[1] + 0x10))" ( (binary_expression "uVar8 + *(int *)(param_3[1] + 0x10)" identifier + (pointer_expression "*(int *)(param_3[1] + 0x10)" * (cast_expression "(int *)(param_3[1] + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3[1] + 0x10)" ( (binary_expression "param_3[1] + 0x10" (subscript_expression "param_3[1]" identifier [ number_literal ]) + number_literal) ))))) )))) ;) (if_statement "if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }" if (parenthesized_expression "(*(short *)(param_1 + 0x42) == 0x28)" ( (binary_expression "*(short *)(param_1 + 0x42) == 0x28" (pointer_expression "*(short *)(param_1 + 0x42)" * (cast_expression "(short *)(param_1 + 0x42)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x42)" ( (binary_expression "param_1 + 0x42" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }" { (expression_statement "pbVar13 = (byte *)FUN_00014aa0();" (assignment_expression "pbVar13 = (byte *)FUN_00014aa0()" identifier = (cast_expression "(byte *)FUN_00014aa0()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00014aa0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar18 = pbVar13 == (byte *)0x0;" (assignment_expression "bVar18 = pbVar13 == (byte *)0x0" identifier = (binary_expression "pbVar13 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }" if (parenthesized_expression "(!bVar18)" ( (unary_expression "!bVar18" ! identifier) )) (compound_statement "{\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }" { (expression_statement "iVar5 = 0xb;" (assignment_expression "iVar5 = 0xb" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar13;" (assignment_expression "pbVar14 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar15 = (byte *)"R_ARM_NONE";" (assignment_expression "pbVar15 = (byte *)"R_ARM_NONE"" identifier = (cast_expression "(byte *)"R_ARM_NONE"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""R_ARM_NONE"" " string_content "))) ;) (do_statement "do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);" do (compound_statement "{\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar14 < *pbVar15;" (assignment_expression "bVar16 = *pbVar14 < *pbVar15" identifier = (binary_expression "*pbVar14 < *pbVar15" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar18 = *pbVar14 == *pbVar15;" (assignment_expression "bVar18 = *pbVar14 == *pbVar15" identifier = (binary_expression "*pbVar14 == *pbVar15" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar16 && !bVar18) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar18) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar18) == bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" ( (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (compound_statement "{\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }" { (expression_statement "iVar5 = 0xd;" (assignment_expression "iVar5 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar13;" (assignment_expression "pbVar14 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar15 = (byte *)"R_ARM_PREL31";" (assignment_expression "pbVar15 = (byte *)"R_ARM_PREL31"" identifier = (cast_expression "(byte *)"R_ARM_PREL31"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""R_ARM_PREL31"" " string_content "))) ;) (do_statement "do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);" do (compound_statement "{\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar14 < *pbVar15;" (assignment_expression "bVar17 = *pbVar14 < *pbVar15" identifier = (binary_expression "*pbVar14 < *pbVar15" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar16 = *pbVar14 == *pbVar15;" (assignment_expression "bVar16 = *pbVar14 == *pbVar15" identifier = (binary_expression "*pbVar14 == *pbVar15" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }" if (parenthesized_expression "((!bVar17 && !bVar16) != bVar17)" ( (binary_expression "(!bVar17 && !bVar16) != bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) != identifier) )) (compound_statement "{\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }" { (expression_statement "uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5)" identifier = (call_expression "dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5)" identifier (argument_list "(0,"Skipping unexpected ARM relocation type %s\n",5)" ( number_literal , (string_literal ""Skipping unexpected ARM relocation type %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar4,pbVar13);" (call_expression "warn(uVar4,pbVar13)" identifier (argument_list "(uVar4,pbVar13)" ( identifier , identifier ))) ;) (expression_statement "local_64 = (uint *)param_3[2];" (assignment_expression "local_64 = (uint *)param_3[2]" identifier = (cast_expression "(uint *)param_3[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;) (expression_statement "local_4c = param_3[3];" (assignment_expression "local_4c = param_3[3]" identifier = (subscript_expression "param_3[3]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00032500;" goto statement_identifier ;) })) (labeled_statement "LAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;" statement_identifier : (expression_statement "local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;" (assignment_expression "local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000" identifier = (binary_expression "local_44 & 0x7fffffff | local_30 & 0x80000000" (binary_expression "local_44 & 0x7fffffff" identifier & number_literal) | (binary_expression "local_30 & 0x80000000" identifier & number_literal))) ;)) (expression_statement "*param_8 = (short)puVar6[6];" (assignment_expression "*param_8 = (short)puVar6[6]" (pointer_expression "*param_8" * identifier) = (cast_expression "(short)puVar6[6]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "puVar6[6]" identifier [ number_literal ]))) ;) (expression_statement "*(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);" (assignment_expression "*(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9)" (pointer_expression "*(uint *)(param_8 + 4)" * (cast_expression "(uint *)(param_8 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 4)" ( (binary_expression "param_8 + 4" identifier + number_literal) )))) = (binary_expression "local_50 + uVar2 + (uint)CARRY4(local_54,uVar9)" (binary_expression "local_50 + uVar2" identifier + identifier) + (cast_expression "(uint)CARRY4(local_54,uVar9)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_54,uVar9)" identifier (argument_list "(local_54,uVar9)" ( identifier , identifier )))))) ;) (expression_statement "*(uint *)(param_8 + 2) = local_54 + uVar1;" (assignment_expression "*(uint *)(param_8 + 2) = local_54 + uVar1" (pointer_expression "*(uint *)(param_8 + 2)" * (cast_expression "(uint *)(param_8 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 2)" ( (binary_expression "param_8 + 2" identifier + number_literal) )))) = (binary_expression "local_54 + uVar1" identifier + identifier)) ;) (if_statement "if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }" if (parenthesized_expression "(param_9 != (uint *)0x0)" ( (binary_expression "param_9 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }" { (expression_statement "uVar8 = puVar6[4];" (assignment_expression "uVar8 = puVar6[4]" identifier = (subscript_expression "puVar6[4]" identifier [ number_literal ])) ;) (expression_statement "param_9[1] = 0;" (assignment_expression "param_9[1] = 0" (subscript_expression "param_9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_9 = uVar8;" (assignment_expression "*param_9 = uVar8" (pointer_expression "*param_9" * identifier) = identifier) ;) })) (goto_statement "goto LAB_000322a3;" goto statement_identifier ;) })) (goto_statement "goto LAB_00032500;" goto statement_identifier ;) })) (expression_statement "pcVar7 = "Skipping unknown ARM relocation type: %d\n";" (assignment_expression "pcVar7 = "Skipping unknown ARM relocation type: %d\n"" identifier = (string_literal ""Skipping unknown ARM relocation type: %d\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);" statement_identifier : (expression_statement "pbVar13 = (byte *)(uVar12 & 0xff);" (assignment_expression "pbVar13 = (byte *)(uVar12 & 0xff)" identifier = (cast_expression "(byte *)(uVar12 & 0xff)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 & 0xff)" ( (binary_expression "uVar12 & 0xff" identifier & number_literal) )))) ;)) (expression_statement "uVar4 = dcgettext(0,pcVar7,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar7,5)" identifier = (call_expression "dcgettext(0,pcVar7,5)" identifier (argument_list "(0,pcVar7,5)" ( number_literal , identifier , number_literal )))) ;) }) (else_clause "else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }" else (compound_statement "{\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }" { (if_statement "if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }" if (parenthesized_expression "(*(short *)(param_1 + 0x42) != 0x8c)" ( (binary_expression "*(short *)(param_1 + 0x42) != 0x8c" (pointer_expression "*(short *)(param_1 + 0x42)" * (cast_expression "(short *)(param_1 + 0x42)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x42)" ( (binary_expression "param_1 + 0x42" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }" { (expression_statement "uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5)" identifier = (call_expression "dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5)" identifier (argument_list "(0,"Only TI and ARM unwinders are currently supported\n",5)" ( number_literal , (string_literal ""Only TI and ARM unwinders are currently supported\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar4);" (call_expression "warn(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (goto_statement "goto LAB_000322a3;" goto statement_identifier ;) })) (expression_statement "pbVar13 = (byte *)FUN_00019be0();" (assignment_expression "pbVar13 = (byte *)FUN_00019be0()" identifier = (cast_expression "(byte *)FUN_00019be0()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00019be0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar18 = pbVar13 == (byte *)0x0;" (assignment_expression "bVar18 = pbVar13 == (byte *)0x0" identifier = (binary_expression "pbVar13 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }" { (expression_statement "pcVar7 = "Skipping unknown C6000 relocation type: %d\n";" (assignment_expression "pcVar7 = "Skipping unknown C6000 relocation type: %d\n"" identifier = (string_literal ""Skipping unknown C6000 relocation type: %d\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00032686;" goto statement_identifier ;) })) (expression_statement "iVar5 = 0xd;" (assignment_expression "iVar5 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar13;" (assignment_expression "pbVar14 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar15 = (byte *)"R_C6000_NONE";" (assignment_expression "pbVar15 = (byte *)"R_C6000_NONE"" identifier = (cast_expression "(byte *)"R_C6000_NONE"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""R_C6000_NONE"" " string_content "))) ;) (do_statement "do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);" do (compound_statement "{\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar14 < *pbVar15;" (assignment_expression "bVar16 = *pbVar14 < *pbVar15" identifier = (binary_expression "*pbVar14 < *pbVar15" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar18 = *pbVar14 == *pbVar15;" (assignment_expression "bVar18 = *pbVar14 == *pbVar15" identifier = (binary_expression "*pbVar14 == *pbVar15" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar16 && !bVar18) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar18) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar18) == bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" ( (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar16) goto LAB_00032500;" if (parenthesized_expression "(bVar16)" ( identifier )) (goto_statement "goto LAB_00032500;" goto statement_identifier ;)) (expression_statement "iVar5 = 0xf;" (assignment_expression "iVar5 = 0xf" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar13;" (assignment_expression "pbVar14 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar15 = (byte *)"R_C6000_PREL31";" (assignment_expression "pbVar15 = (byte *)"R_C6000_PREL31"" identifier = (cast_expression "(byte *)"R_C6000_PREL31"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""R_C6000_PREL31"" " string_content "))) ;) (do_statement "do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);" do (compound_statement "{\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar14 < *pbVar15;" (assignment_expression "bVar17 = *pbVar14 < *pbVar15" identifier = (binary_expression "*pbVar14 < *pbVar15" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar16 = *pbVar14 == *pbVar15;" (assignment_expression "bVar16 = *pbVar14 == *pbVar15" identifier = (binary_expression "*pbVar14 == *pbVar15" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }" if (parenthesized_expression "((!bVar17 && !bVar16) == bVar17)" ( (binary_expression "(!bVar17 && !bVar16) == bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier) )) (compound_statement "{\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }" { (expression_statement "local_44 = local_44 >> 1;" (assignment_expression "local_44 = local_44 >> 1" identifier = (binary_expression "local_44 >> 1" identifier >> number_literal)) ;) (goto_statement "goto LAB_0003245c;" goto statement_identifier ;) })) (expression_statement "uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5)" identifier = (call_expression "dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5)" identifier (argument_list "(0,"Skipping unexpected C6000 relocation type %s\n",5)" ( number_literal , (string_literal ""Skipping unexpected C6000 relocation type %s\n"" " string_content escape_sequence ") , number_literal )))) ;) }))) (expression_statement "warn(uVar4,pbVar13);" (call_expression "warn(uVar4,pbVar13)" identifier (argument_list "(uVar4,pbVar13)" ( identifier , identifier ))) ;) (expression_statement "local_64 = (uint *)param_3[2];" (assignment_expression "local_64 = (uint *)param_3[2]" identifier = (cast_expression "(uint *)param_3[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;) (expression_statement "local_4c = param_3[3];" (assignment_expression "local_4c = param_3[3]" identifier = (subscript_expression "param_3[3]" identifier [ number_literal ])) ;) })) }) (else_clause "else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }" else (compound_statement "{\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }" { (expression_statement "uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5)" identifier = (call_expression "dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5)" identifier (argument_list "(0,"Skipping unexpected relocation at offset 0x%lx\n",5)" ( number_literal , (string_literal ""Skipping unexpected relocation at offset 0x%lx\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar4,uVar8);" (call_expression "warn(uVar4,uVar8)" identifier (argument_list "(uVar4,uVar8)" ( identifier , identifier ))) ;) (expression_statement "local_64 = (uint *)param_3[2];" (assignment_expression "local_64 = (uint *)param_3[2]" identifier = (cast_expression "(uint *)param_3[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;) (expression_statement "local_4c = param_3[3];" (assignment_expression "local_4c = param_3[3]" identifier = (subscript_expression "param_3[3]" identifier [ number_literal ])) ;) }))) (labeled_statement "LAB_00032500:\n      puVar11 = puVar11 + 6;" statement_identifier : (expression_statement "puVar11 = puVar11 + 6;" (assignment_expression "puVar11 = puVar11 + 6" identifier = (binary_expression "puVar11 + 6" identifier + number_literal)) ;)) (if_statement "if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;" if (parenthesized_expression "(puVar11 == local_64 + local_4c * 6)" ( (binary_expression "puVar11 == local_64 + local_4c * 6" identifier == (binary_expression "local_64 + local_4c * 6" identifier + (binary_expression "local_4c * 6" identifier * number_literal))) )) (goto_statement "goto LAB_000322a3;" goto statement_identifier ;)) (goto_statement "goto LAB_0003227f;" goto statement_identifier ;) })) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n\nbfd_boolean __regparm3\nget_unwind_section_word\n          (Filedata *filedata,arm_unw_aux_info *aux,arm_section *arm_sec,Elf_Internal_Shdr *sec,\n          bfd_vma word_offset,uint *wordp,absaddr *addr,bfd_vma *sym_name)\n\n{\n  Elf_Internal_Rela **arm_sec_1;\n  ushort uVar1;\n  Elf_Internal_Shdr *pEVar2;\n  ulong rel_offset;\n  uint uVar3;\n  uint uVar4;\n  ulong uVar5;\n  bool bVar6;\n  bfd_vma bVar7;\n  char *pcVar8;\n  arm_section *arm_sec_00;\n  int iVar9;\n  Elf_Internal_Sym *pEVar10;\n  byte *pbVar11;\n  uint uVar12;\n  int iVar13;\n  Elf_Internal_Shdr *pEVar14;\n  Elf_Internal_Rela *pEVar15;\n  uint uVar16;\n  uint uVar17;\n  int iVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  bool bVar21;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  Elf_Internal_Rela *local_64;\n  uint local_54;\n  int local_50;\n  ulong local_4c;\n  uint local_44;\n  elf_vma local_30;\n  \n  bVar24 = 0;\n  addr->section = 0;\n  *(undefined4 *)&addr->offset = 0;\n  *(undefined4 *)((int)&addr->offset + 4) = 0;\n  if (sym_name != (bfd_vma *)0x0) {\n    *(undefined4 *)sym_name = 0xffffffff;\n    *(undefined4 *)((int)sym_name + 4) = 0xffffffff;\n  }\n  arm_sec_00 = (arm_section *)arm_sec->data;\n  if (arm_sec->sec != sec) {\n    arm_sec_1 = &arm_sec->rela;\n    arm_free_section(arm_sec_00,(arm_section *)arm_sec_1);\n    arm_sec->sec = sec;\n    pcVar8 = (char *)dcgettext(0,"unwind data",5);\n    arm_sec_00 = (arm_section *)\n                 get_data((void *)0x0,aux->filedata,(ulong)sec->sh_offset,1,sec->sh_size,pcVar8);\n    arm_sec->rela = (Elf_Internal_Rela *)0x0;\n    arm_sec->data = (uchar *)arm_sec_00;\n    pEVar2 = filedata->section_headers;\n    uVar12 = (filedata->file_header).e_shnum;\n    arm_sec->nrelas = 0;\n    pEVar14 = pEVar2;\n    if (pEVar2 < pEVar2 + uVar12) {\n      do {\n        if (((pEVar14->sh_info < uVar12) && (sec == pEVar2 + pEVar14->sh_info)) &&\n           ((uVar16 = pEVar14->sh_type, uVar16 == 9 || (uVar16 == 4)))) {\n          uVar5 = (ulong)pEVar14->sh_size;\n          arm_sec->rel_type = uVar16;\n          rel_offset = (ulong)pEVar14->sh_offset;\n          if (uVar16 == 9) {\n            iVar9 = slurp_rel_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }\n          else {\n            iVar9 = slurp_rela_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }\n          if (iVar9 == 0) {\n            return 0;\n          }\n          pEVar15 = arm_sec->rela;\n          arm_sec_00 = (arm_section *)arm_sec->data;\n          goto LAB_000321d8;\n        }\n        pEVar14 = pEVar14 + 1;\n      } while (pEVar14 < pEVar2 + uVar12);\n      pEVar15 = (Elf_Internal_Rela *)0x0;\n    }\n    else {\n      pEVar15 = (Elf_Internal_Rela *)0x0;\n    }\nLAB_000321d8:\n    arm_sec->next_rela = pEVar15;\n  }\n  if (arm_sec_00 != (arm_section *)0x0) {\n    uVar12 = (uint)sec->sh_size;\n    iVar9 = *(int *)((int)&sec->sh_size + 4);\n    if (((iVar9 != 0 || (uint)-iVar9 < (uint)(3 < uVar12)) &&\n        (uVar16 = iVar9 + -1 + (uint)(3 < uVar12),\n        word_offset._4_4_ <= uVar16 &&\n        (uint)(uVar12 - 4 < (uint)word_offset) <= uVar16 - word_offset._4_4_)) &&\n       (-1 < (longlong)word_offset)) {\n      local_30._0_4_ = (*byte_get)((uchar *)((int)&arm_sec_00->data + (uint)word_offset),4);\n      local_64 = arm_sec->rela;\n      if (local_64 == (Elf_Internal_Rela *)0x0) {\n                    /* WARNING: Store size is inaccurate */\n        *(elf_vma *)wordp = (elf_vma)local_30;\n        return 1;\n      }\n      local_4c = arm_sec->nrelas;\n      pEVar15 = arm_sec->next_rela;\n      if (pEVar15 == local_64 + local_4c) {\nLAB_000322a3:\n                    /* WARNING: Store size is inaccurate */\n        *(elf_vma *)wordp = (elf_vma)local_30;\n        arm_sec->next_rela = pEVar15;\n        return 1;\n      }\n      bVar6 = false;\nLAB_0003227f:\n      uVar12 = (uint)pEVar15->r_offset;\n      uVar16 = *(uint *)((int)&pEVar15->r_offset + 4);\n      if (word_offset._4_4_ < uVar16 ||\n          word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12)) {\n        if (bVar6) goto LAB_000322a3;\n        uVar12 = (uint)local_64->r_offset;\n        uVar16 = *(uint *)((int)&local_64->r_offset + 4);\n        pEVar15 = local_64;\n        if (word_offset._4_4_ < uVar16 ||\n            word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12)) goto LAB_000322a3;\n        bVar6 = true;\n      }\n      if ((uVar12 & 3) == 0) {\n        if ((word_offset._4_4_ <= uVar16 &&\n             (uint)(uVar12 < (uint)word_offset) <= uVar16 - word_offset._4_4_) &&\n           (aux->symtab != (Elf_Internal_Sym *)0x0)) {\n          uVar16 = arm_sec->rel_type;\n          if (uVar16 == 9) {\n            local_50 = 0;\n            local_54 = (uint)(elf_vma)local_30 & 0x7fffffff;\n            if (((uint)(elf_vma)local_30 & 0x40000000) != 0) {\n              local_50 = -1;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (uVar16 != 4) {\n              pcVar8 = (char *)dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(pcVar8,uVar16);\n              goto LAB_000322a3;\n            }\n            local_54 = (uint)pEVar15->r_addend;\n            local_50 = *(int *)((int)&pEVar15->r_addend + 4);\n          }\n          uVar16 = *(uint *)((int)&pEVar15->r_info + 4);\n          uVar3 = (uint)pEVar15->r_info;\n          uVar4 = aux->nsyms;\n          uVar17 = uVar3 >> 8 | uVar16 << 0x18;\n          if ((uint)(uVar17 < uVar4) <= uVar16 >> 8) {\n            pcVar8 = (char *)dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(pcVar8,uVar17,uVar4);\n            goto LAB_000322a3;\n          }\n          pEVar10 = aux->symtab + uVar17;\n          bVar7 = pEVar10->st_value;\n          iVar18 = local_54 + (int)pEVar10->st_value;\n          iVar9 = *(int *)((int)&pEVar10->st_value + 4);\n          local_44 = iVar18 - (uVar12 + (int)arm_sec->sec->sh_addr);\n          uVar1 = (filedata->file_header).e_machine;\n          if (uVar1 == 0x28) {\n            pbVar11 = (byte *)elf_arm_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (!bVar23) {\n              iVar13 = 0xb;\n              pbVar19 = pbVar11;\n              pbVar20 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar13 == 0) break;\n                iVar13 = iVar13 + -1;\n                bVar21 = *pbVar19 < *pbVar20;\n                bVar23 = *pbVar19 == *pbVar20;\n                pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n              } while (bVar23);\n              bVar22 = false;\n              bVar21 = (!bVar21 && !bVar23) == bVar21;\n              if (!bVar21) {\n                iVar13 = 0xd;\n                pbVar19 = pbVar11;\n                pbVar20 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar13 == 0) break;\n                  iVar13 = iVar13 + -1;\n                  bVar22 = *pbVar19 < *pbVar20;\n                  bVar21 = *pbVar19 == *pbVar20;\n                  pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                  pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar22 && !bVar21) != bVar22) {\n                  pcVar8 = (char *)dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(pcVar8,pbVar11);\n                  local_64 = arm_sec->rela;\n                  local_4c = arm_sec->nrelas;\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30._0_4_ =\n                     (elf_vma)(local_44 & 0x7fffffff | (uint)(elf_vma)local_30 & 0x80000000);\n                addr->section = (ushort)pEVar10->st_shndx;\n                *(uint *)((int)&addr->offset + 4) =\n                     local_50 + iVar9 + (uint)CARRY4(local_54,(uint)bVar7);\n                *(int *)&addr->offset = iVar18;\n                if (sym_name != (bfd_vma *)0x0) {\n                  uVar5 = pEVar10->st_name;\n                  *(undefined4 *)((int)sym_name + 4) = 0;\n                  *(ulong *)sym_name = uVar5;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar8 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar11 = (byte *)(uVar3 & 0xff);\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n          }\n          else {\n            if (uVar1 != 0x8c) {\n              pcVar8 = (char *)dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(pcVar8);\n              goto LAB_000322a3;\n            }\n            pbVar11 = (byte *)elf_tic6x_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (bVar23) {\n              pcVar8 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar13 = 0xd;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar21 = *pbVar19 < *pbVar20;\n              bVar23 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar23);\n            bVar22 = false;\n            bVar21 = (!bVar21 && !bVar23) == bVar21;\n            if (bVar21) goto LAB_00032500;\n            iVar13 = 0xf;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar22 = *pbVar19 < *pbVar20;\n              bVar21 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar21);\n            if ((!bVar22 && !bVar21) == bVar22) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            pcVar8 = (char *)dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(pcVar8,pbVar11);\n          local_64 = arm_sec->rela;\n          local_4c = arm_sec->nrelas;\n        }\n      }\n      else {\n        pcVar8 = (char *)dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(pcVar8,uVar12);\n        local_64 = arm_sec->rela;\n        local_4c = arm_sec->nrelas;\n      }\nLAB_00032500:\n      pEVar15 = pEVar15 + 1;\n      if (pEVar15 == local_64 + local_4c) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }\n  }\n  return 0;\n}\n\n" comment comment (function_definition "bfd_boolean __regparm3\nget_unwind_section_word\n          (Filedata *filedata,arm_unw_aux_info *aux,arm_section *arm_sec,Elf_Internal_Shdr *sec,\n          bfd_vma word_offset,uint *wordp,absaddr *addr,bfd_vma *sym_name)\n\n{\n  Elf_Internal_Rela **arm_sec_1;\n  ushort uVar1;\n  Elf_Internal_Shdr *pEVar2;\n  ulong rel_offset;\n  uint uVar3;\n  uint uVar4;\n  ulong uVar5;\n  bool bVar6;\n  bfd_vma bVar7;\n  char *pcVar8;\n  arm_section *arm_sec_00;\n  int iVar9;\n  Elf_Internal_Sym *pEVar10;\n  byte *pbVar11;\n  uint uVar12;\n  int iVar13;\n  Elf_Internal_Shdr *pEVar14;\n  Elf_Internal_Rela *pEVar15;\n  uint uVar16;\n  uint uVar17;\n  int iVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  bool bVar21;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  Elf_Internal_Rela *local_64;\n  uint local_54;\n  int local_50;\n  ulong local_4c;\n  uint local_44;\n  elf_vma local_30;\n  \n  bVar24 = 0;\n  addr->section = 0;\n  *(undefined4 *)&addr->offset = 0;\n  *(undefined4 *)((int)&addr->offset + 4) = 0;\n  if (sym_name != (bfd_vma *)0x0) {\n    *(undefined4 *)sym_name = 0xffffffff;\n    *(undefined4 *)((int)sym_name + 4) = 0xffffffff;\n  }\n  arm_sec_00 = (arm_section *)arm_sec->data;\n  if (arm_sec->sec != sec) {\n    arm_sec_1 = &arm_sec->rela;\n    arm_free_section(arm_sec_00,(arm_section *)arm_sec_1);\n    arm_sec->sec = sec;\n    pcVar8 = (char *)dcgettext(0,"unwind data",5);\n    arm_sec_00 = (arm_section *)\n                 get_data((void *)0x0,aux->filedata,(ulong)sec->sh_offset,1,sec->sh_size,pcVar8);\n    arm_sec->rela = (Elf_Internal_Rela *)0x0;\n    arm_sec->data = (uchar *)arm_sec_00;\n    pEVar2 = filedata->section_headers;\n    uVar12 = (filedata->file_header).e_shnum;\n    arm_sec->nrelas = 0;\n    pEVar14 = pEVar2;\n    if (pEVar2 < pEVar2 + uVar12) {\n      do {\n        if (((pEVar14->sh_info < uVar12) && (sec == pEVar2 + pEVar14->sh_info)) &&\n           ((uVar16 = pEVar14->sh_type, uVar16 == 9 || (uVar16 == 4)))) {\n          uVar5 = (ulong)pEVar14->sh_size;\n          arm_sec->rel_type = uVar16;\n          rel_offset = (ulong)pEVar14->sh_offset;\n          if (uVar16 == 9) {\n            iVar9 = slurp_rel_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }\n          else {\n            iVar9 = slurp_rela_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }\n          if (iVar9 == 0) {\n            return 0;\n          }\n          pEVar15 = arm_sec->rela;\n          arm_sec_00 = (arm_section *)arm_sec->data;\n          goto LAB_000321d8;\n        }\n        pEVar14 = pEVar14 + 1;\n      } while (pEVar14 < pEVar2 + uVar12);\n      pEVar15 = (Elf_Internal_Rela *)0x0;\n    }\n    else {\n      pEVar15 = (Elf_Internal_Rela *)0x0;\n    }\nLAB_000321d8:\n    arm_sec->next_rela = pEVar15;\n  }\n  if (arm_sec_00 != (arm_section *)0x0) {\n    uVar12 = (uint)sec->sh_size;\n    iVar9 = *(int *)((int)&sec->sh_size + 4);\n    if (((iVar9 != 0 || (uint)-iVar9 < (uint)(3 < uVar12)) &&\n        (uVar16 = iVar9 + -1 + (uint)(3 < uVar12),\n        word_offset._4_4_ <= uVar16 &&\n        (uint)(uVar12 - 4 < (uint)word_offset) <= uVar16 - word_offset._4_4_)) &&\n       (-1 < (longlong)word_offset)) {\n      local_30._0_4_ = (*byte_get)((uchar *)((int)&arm_sec_00->data + (uint)word_offset),4);\n      local_64 = arm_sec->rela;\n      if (local_64 == (Elf_Internal_Rela *)0x0) {\n                    /* WARNING: Store size is inaccurate */\n        *(elf_vma *)wordp = (elf_vma)local_30;\n        return 1;\n      }\n      local_4c = arm_sec->nrelas;\n      pEVar15 = arm_sec->next_rela;\n      if (pEVar15 == local_64 + local_4c) {\nLAB_000322a3:\n                    /* WARNING: Store size is inaccurate */\n        *(elf_vma *)wordp = (elf_vma)local_30;\n        arm_sec->next_rela = pEVar15;\n        return 1;\n      }\n      bVar6 = false;\nLAB_0003227f:\n      uVar12 = (uint)pEVar15->r_offset;\n      uVar16 = *(uint *)((int)&pEVar15->r_offset + 4);\n      if (word_offset._4_4_ < uVar16 ||\n          word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12)) {\n        if (bVar6) goto LAB_000322a3;\n        uVar12 = (uint)local_64->r_offset;\n        uVar16 = *(uint *)((int)&local_64->r_offset + 4);\n        pEVar15 = local_64;\n        if (word_offset._4_4_ < uVar16 ||\n            word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12)) goto LAB_000322a3;\n        bVar6 = true;\n      }\n      if ((uVar12 & 3) == 0) {\n        if ((word_offset._4_4_ <= uVar16 &&\n             (uint)(uVar12 < (uint)word_offset) <= uVar16 - word_offset._4_4_) &&\n           (aux->symtab != (Elf_Internal_Sym *)0x0)) {\n          uVar16 = arm_sec->rel_type;\n          if (uVar16 == 9) {\n            local_50 = 0;\n            local_54 = (uint)(elf_vma)local_30 & 0x7fffffff;\n            if (((uint)(elf_vma)local_30 & 0x40000000) != 0) {\n              local_50 = -1;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (uVar16 != 4) {\n              pcVar8 = (char *)dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(pcVar8,uVar16);\n              goto LAB_000322a3;\n            }\n            local_54 = (uint)pEVar15->r_addend;\n            local_50 = *(int *)((int)&pEVar15->r_addend + 4);\n          }\n          uVar16 = *(uint *)((int)&pEVar15->r_info + 4);\n          uVar3 = (uint)pEVar15->r_info;\n          uVar4 = aux->nsyms;\n          uVar17 = uVar3 >> 8 | uVar16 << 0x18;\n          if ((uint)(uVar17 < uVar4) <= uVar16 >> 8) {\n            pcVar8 = (char *)dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(pcVar8,uVar17,uVar4);\n            goto LAB_000322a3;\n          }\n          pEVar10 = aux->symtab + uVar17;\n          bVar7 = pEVar10->st_value;\n          iVar18 = local_54 + (int)pEVar10->st_value;\n          iVar9 = *(int *)((int)&pEVar10->st_value + 4);\n          local_44 = iVar18 - (uVar12 + (int)arm_sec->sec->sh_addr);\n          uVar1 = (filedata->file_header).e_machine;\n          if (uVar1 == 0x28) {\n            pbVar11 = (byte *)elf_arm_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (!bVar23) {\n              iVar13 = 0xb;\n              pbVar19 = pbVar11;\n              pbVar20 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar13 == 0) break;\n                iVar13 = iVar13 + -1;\n                bVar21 = *pbVar19 < *pbVar20;\n                bVar23 = *pbVar19 == *pbVar20;\n                pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n              } while (bVar23);\n              bVar22 = false;\n              bVar21 = (!bVar21 && !bVar23) == bVar21;\n              if (!bVar21) {\n                iVar13 = 0xd;\n                pbVar19 = pbVar11;\n                pbVar20 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar13 == 0) break;\n                  iVar13 = iVar13 + -1;\n                  bVar22 = *pbVar19 < *pbVar20;\n                  bVar21 = *pbVar19 == *pbVar20;\n                  pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                  pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar22 && !bVar21) != bVar22) {\n                  pcVar8 = (char *)dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(pcVar8,pbVar11);\n                  local_64 = arm_sec->rela;\n                  local_4c = arm_sec->nrelas;\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30._0_4_ =\n                     (elf_vma)(local_44 & 0x7fffffff | (uint)(elf_vma)local_30 & 0x80000000);\n                addr->section = (ushort)pEVar10->st_shndx;\n                *(uint *)((int)&addr->offset + 4) =\n                     local_50 + iVar9 + (uint)CARRY4(local_54,(uint)bVar7);\n                *(int *)&addr->offset = iVar18;\n                if (sym_name != (bfd_vma *)0x0) {\n                  uVar5 = pEVar10->st_name;\n                  *(undefined4 *)((int)sym_name + 4) = 0;\n                  *(ulong *)sym_name = uVar5;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar8 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar11 = (byte *)(uVar3 & 0xff);\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n          }\n          else {\n            if (uVar1 != 0x8c) {\n              pcVar8 = (char *)dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(pcVar8);\n              goto LAB_000322a3;\n            }\n            pbVar11 = (byte *)elf_tic6x_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (bVar23) {\n              pcVar8 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar13 = 0xd;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar21 = *pbVar19 < *pbVar20;\n              bVar23 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar23);\n            bVar22 = false;\n            bVar21 = (!bVar21 && !bVar23) == bVar21;\n            if (bVar21) goto LAB_00032500;\n            iVar13 = 0xf;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar22 = *pbVar19 < *pbVar20;\n              bVar21 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar21);\n            if ((!bVar22 && !bVar21) == bVar22) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            pcVar8 = (char *)dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(pcVar8,pbVar11);\n          local_64 = arm_sec->rela;\n          local_4c = arm_sec->nrelas;\n        }\n      }\n      else {\n        pcVar8 = (char *)dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(pcVar8,uVar12);\n        local_64 = arm_sec->rela;\n        local_4c = arm_sec->nrelas;\n      }\nLAB_00032500:\n      pEVar15 = pEVar15 + 1;\n      if (pEVar15 == local_64 + local_4c) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }\n  }\n  return 0;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "get_unwind_section_word\n          (Filedata *filedata,arm_unw_aux_info *aux,arm_section *arm_sec,Elf_Internal_Shdr *sec,\n          bfd_vma word_offset,uint *wordp,absaddr *addr,bfd_vma *sym_name)" identifier (parameter_list "(Filedata *filedata,arm_unw_aux_info *aux,arm_section *arm_sec,Elf_Internal_Shdr *sec,\n          bfd_vma word_offset,uint *wordp,absaddr *addr,bfd_vma *sym_name)" ( (parameter_declaration "Filedata *filedata" type_identifier (pointer_declarator "*filedata" * identifier)) , (parameter_declaration "arm_unw_aux_info *aux" type_identifier (pointer_declarator "*aux" * identifier)) , (parameter_declaration "arm_section *arm_sec" type_identifier (pointer_declarator "*arm_sec" * identifier)) , (parameter_declaration "Elf_Internal_Shdr *sec" type_identifier (pointer_declarator "*sec" * identifier)) , (parameter_declaration "bfd_vma word_offset" type_identifier identifier) , (parameter_declaration "uint *wordp" type_identifier (pointer_declarator "*wordp" * identifier)) , (parameter_declaration "absaddr *addr" type_identifier (pointer_declarator "*addr" * identifier)) , (parameter_declaration "bfd_vma *sym_name" type_identifier (pointer_declarator "*sym_name" * identifier)) ))) (compound_statement "{\n  Elf_Internal_Rela **arm_sec_1;\n  ushort uVar1;\n  Elf_Internal_Shdr *pEVar2;\n  ulong rel_offset;\n  uint uVar3;\n  uint uVar4;\n  ulong uVar5;\n  bool bVar6;\n  bfd_vma bVar7;\n  char *pcVar8;\n  arm_section *arm_sec_00;\n  int iVar9;\n  Elf_Internal_Sym *pEVar10;\n  byte *pbVar11;\n  uint uVar12;\n  int iVar13;\n  Elf_Internal_Shdr *pEVar14;\n  Elf_Internal_Rela *pEVar15;\n  uint uVar16;\n  uint uVar17;\n  int iVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  bool bVar21;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  Elf_Internal_Rela *local_64;\n  uint local_54;\n  int local_50;\n  ulong local_4c;\n  uint local_44;\n  elf_vma local_30;\n  \n  bVar24 = 0;\n  addr->section = 0;\n  *(undefined4 *)&addr->offset = 0;\n  *(undefined4 *)((int)&addr->offset + 4) = 0;\n  if (sym_name != (bfd_vma *)0x0) {\n    *(undefined4 *)sym_name = 0xffffffff;\n    *(undefined4 *)((int)sym_name + 4) = 0xffffffff;\n  }\n  arm_sec_00 = (arm_section *)arm_sec->data;\n  if (arm_sec->sec != sec) {\n    arm_sec_1 = &arm_sec->rela;\n    arm_free_section(arm_sec_00,(arm_section *)arm_sec_1);\n    arm_sec->sec = sec;\n    pcVar8 = (char *)dcgettext(0,"unwind data",5);\n    arm_sec_00 = (arm_section *)\n                 get_data((void *)0x0,aux->filedata,(ulong)sec->sh_offset,1,sec->sh_size,pcVar8);\n    arm_sec->rela = (Elf_Internal_Rela *)0x0;\n    arm_sec->data = (uchar *)arm_sec_00;\n    pEVar2 = filedata->section_headers;\n    uVar12 = (filedata->file_header).e_shnum;\n    arm_sec->nrelas = 0;\n    pEVar14 = pEVar2;\n    if (pEVar2 < pEVar2 + uVar12) {\n      do {\n        if (((pEVar14->sh_info < uVar12) && (sec == pEVar2 + pEVar14->sh_info)) &&\n           ((uVar16 = pEVar14->sh_type, uVar16 == 9 || (uVar16 == 4)))) {\n          uVar5 = (ulong)pEVar14->sh_size;\n          arm_sec->rel_type = uVar16;\n          rel_offset = (ulong)pEVar14->sh_offset;\n          if (uVar16 == 9) {\n            iVar9 = slurp_rel_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }\n          else {\n            iVar9 = slurp_rela_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }\n          if (iVar9 == 0) {\n            return 0;\n          }\n          pEVar15 = arm_sec->rela;\n          arm_sec_00 = (arm_section *)arm_sec->data;\n          goto LAB_000321d8;\n        }\n        pEVar14 = pEVar14 + 1;\n      } while (pEVar14 < pEVar2 + uVar12);\n      pEVar15 = (Elf_Internal_Rela *)0x0;\n    }\n    else {\n      pEVar15 = (Elf_Internal_Rela *)0x0;\n    }\nLAB_000321d8:\n    arm_sec->next_rela = pEVar15;\n  }\n  if (arm_sec_00 != (arm_section *)0x0) {\n    uVar12 = (uint)sec->sh_size;\n    iVar9 = *(int *)((int)&sec->sh_size + 4);\n    if (((iVar9 != 0 || (uint)-iVar9 < (uint)(3 < uVar12)) &&\n        (uVar16 = iVar9 + -1 + (uint)(3 < uVar12),\n        word_offset._4_4_ <= uVar16 &&\n        (uint)(uVar12 - 4 < (uint)word_offset) <= uVar16 - word_offset._4_4_)) &&\n       (-1 < (longlong)word_offset)) {\n      local_30._0_4_ = (*byte_get)((uchar *)((int)&arm_sec_00->data + (uint)word_offset),4);\n      local_64 = arm_sec->rela;\n      if (local_64 == (Elf_Internal_Rela *)0x0) {\n                    /* WARNING: Store size is inaccurate */\n        *(elf_vma *)wordp = (elf_vma)local_30;\n        return 1;\n      }\n      local_4c = arm_sec->nrelas;\n      pEVar15 = arm_sec->next_rela;\n      if (pEVar15 == local_64 + local_4c) {\nLAB_000322a3:\n                    /* WARNING: Store size is inaccurate */\n        *(elf_vma *)wordp = (elf_vma)local_30;\n        arm_sec->next_rela = pEVar15;\n        return 1;\n      }\n      bVar6 = false;\nLAB_0003227f:\n      uVar12 = (uint)pEVar15->r_offset;\n      uVar16 = *(uint *)((int)&pEVar15->r_offset + 4);\n      if (word_offset._4_4_ < uVar16 ||\n          word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12)) {\n        if (bVar6) goto LAB_000322a3;\n        uVar12 = (uint)local_64->r_offset;\n        uVar16 = *(uint *)((int)&local_64->r_offset + 4);\n        pEVar15 = local_64;\n        if (word_offset._4_4_ < uVar16 ||\n            word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12)) goto LAB_000322a3;\n        bVar6 = true;\n      }\n      if ((uVar12 & 3) == 0) {\n        if ((word_offset._4_4_ <= uVar16 &&\n             (uint)(uVar12 < (uint)word_offset) <= uVar16 - word_offset._4_4_) &&\n           (aux->symtab != (Elf_Internal_Sym *)0x0)) {\n          uVar16 = arm_sec->rel_type;\n          if (uVar16 == 9) {\n            local_50 = 0;\n            local_54 = (uint)(elf_vma)local_30 & 0x7fffffff;\n            if (((uint)(elf_vma)local_30 & 0x40000000) != 0) {\n              local_50 = -1;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (uVar16 != 4) {\n              pcVar8 = (char *)dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(pcVar8,uVar16);\n              goto LAB_000322a3;\n            }\n            local_54 = (uint)pEVar15->r_addend;\n            local_50 = *(int *)((int)&pEVar15->r_addend + 4);\n          }\n          uVar16 = *(uint *)((int)&pEVar15->r_info + 4);\n          uVar3 = (uint)pEVar15->r_info;\n          uVar4 = aux->nsyms;\n          uVar17 = uVar3 >> 8 | uVar16 << 0x18;\n          if ((uint)(uVar17 < uVar4) <= uVar16 >> 8) {\n            pcVar8 = (char *)dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(pcVar8,uVar17,uVar4);\n            goto LAB_000322a3;\n          }\n          pEVar10 = aux->symtab + uVar17;\n          bVar7 = pEVar10->st_value;\n          iVar18 = local_54 + (int)pEVar10->st_value;\n          iVar9 = *(int *)((int)&pEVar10->st_value + 4);\n          local_44 = iVar18 - (uVar12 + (int)arm_sec->sec->sh_addr);\n          uVar1 = (filedata->file_header).e_machine;\n          if (uVar1 == 0x28) {\n            pbVar11 = (byte *)elf_arm_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (!bVar23) {\n              iVar13 = 0xb;\n              pbVar19 = pbVar11;\n              pbVar20 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar13 == 0) break;\n                iVar13 = iVar13 + -1;\n                bVar21 = *pbVar19 < *pbVar20;\n                bVar23 = *pbVar19 == *pbVar20;\n                pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n              } while (bVar23);\n              bVar22 = false;\n              bVar21 = (!bVar21 && !bVar23) == bVar21;\n              if (!bVar21) {\n                iVar13 = 0xd;\n                pbVar19 = pbVar11;\n                pbVar20 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar13 == 0) break;\n                  iVar13 = iVar13 + -1;\n                  bVar22 = *pbVar19 < *pbVar20;\n                  bVar21 = *pbVar19 == *pbVar20;\n                  pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                  pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar22 && !bVar21) != bVar22) {\n                  pcVar8 = (char *)dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(pcVar8,pbVar11);\n                  local_64 = arm_sec->rela;\n                  local_4c = arm_sec->nrelas;\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30._0_4_ =\n                     (elf_vma)(local_44 & 0x7fffffff | (uint)(elf_vma)local_30 & 0x80000000);\n                addr->section = (ushort)pEVar10->st_shndx;\n                *(uint *)((int)&addr->offset + 4) =\n                     local_50 + iVar9 + (uint)CARRY4(local_54,(uint)bVar7);\n                *(int *)&addr->offset = iVar18;\n                if (sym_name != (bfd_vma *)0x0) {\n                  uVar5 = pEVar10->st_name;\n                  *(undefined4 *)((int)sym_name + 4) = 0;\n                  *(ulong *)sym_name = uVar5;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar8 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar11 = (byte *)(uVar3 & 0xff);\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n          }\n          else {\n            if (uVar1 != 0x8c) {\n              pcVar8 = (char *)dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(pcVar8);\n              goto LAB_000322a3;\n            }\n            pbVar11 = (byte *)elf_tic6x_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (bVar23) {\n              pcVar8 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar13 = 0xd;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar21 = *pbVar19 < *pbVar20;\n              bVar23 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar23);\n            bVar22 = false;\n            bVar21 = (!bVar21 && !bVar23) == bVar21;\n            if (bVar21) goto LAB_00032500;\n            iVar13 = 0xf;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar22 = *pbVar19 < *pbVar20;\n              bVar21 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar21);\n            if ((!bVar22 && !bVar21) == bVar22) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            pcVar8 = (char *)dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(pcVar8,pbVar11);\n          local_64 = arm_sec->rela;\n          local_4c = arm_sec->nrelas;\n        }\n      }\n      else {\n        pcVar8 = (char *)dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(pcVar8,uVar12);\n        local_64 = arm_sec->rela;\n        local_4c = arm_sec->nrelas;\n      }\nLAB_00032500:\n      pEVar15 = pEVar15 + 1;\n      if (pEVar15 == local_64 + local_4c) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }\n  }\n  return 0;\n}" { (declaration "Elf_Internal_Rela **arm_sec_1;" type_identifier (pointer_declarator "**arm_sec_1" * (pointer_declarator "*arm_sec_1" * identifier)) ;) (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "Elf_Internal_Shdr *pEVar2;" type_identifier (pointer_declarator "*pEVar2" * identifier) ;) (declaration "ulong rel_offset;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "bfd_vma bVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "arm_section *arm_sec_00;" type_identifier (pointer_declarator "*arm_sec_00" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "Elf_Internal_Sym *pEVar10;" type_identifier (pointer_declarator "*pEVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "Elf_Internal_Shdr *pEVar14;" type_identifier (pointer_declarator "*pEVar14" * identifier) ;) (declaration "Elf_Internal_Rela *pEVar15;" type_identifier (pointer_declarator "*pEVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "byte bVar24;" type_identifier identifier ;) (declaration "Elf_Internal_Rela *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "ulong local_4c;" type_identifier identifier ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "elf_vma local_30;" type_identifier identifier ;) (expression_statement "bVar24 = 0;" (assignment_expression "bVar24 = 0" identifier = number_literal) ;) (expression_statement "addr->section = 0;" (assignment_expression "addr->section = 0" (field_expression "addr->section" identifier -> field_identifier) = number_literal) ;) (expression_statement "*(undefined4 *)&addr->offset = 0;" (assignment_expression "*(undefined4 *)&addr->offset = 0" (pointer_expression "*(undefined4 *)&addr->offset" * (cast_expression "(undefined4 *)&addr->offset" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&addr->offset" & (field_expression "addr->offset" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&addr->offset + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&addr->offset + 4) = 0" (pointer_expression "*(undefined4 *)((int)&addr->offset + 4)" * (cast_expression "(undefined4 *)((int)&addr->offset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&addr->offset + 4)" ( (binary_expression "(int)&addr->offset + 4" (cast_expression "(int)&addr->offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&addr->offset" & (field_expression "addr->offset" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (if_statement "if (sym_name != (bfd_vma *)0x0) {\n    *(undefined4 *)sym_name = 0xffffffff;\n    *(undefined4 *)((int)sym_name + 4) = 0xffffffff;\n  }" if (parenthesized_expression "(sym_name != (bfd_vma *)0x0)" ( (binary_expression "sym_name != (bfd_vma *)0x0" identifier != (cast_expression "(bfd_vma *)0x0" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(undefined4 *)sym_name = 0xffffffff;\n    *(undefined4 *)((int)sym_name + 4) = 0xffffffff;\n  }" { (expression_statement "*(undefined4 *)sym_name = 0xffffffff;" (assignment_expression "*(undefined4 *)sym_name = 0xffffffff" (pointer_expression "*(undefined4 *)sym_name" * (cast_expression "(undefined4 *)sym_name" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined4 *)((int)sym_name + 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)sym_name + 4) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)sym_name + 4)" * (cast_expression "(undefined4 *)((int)sym_name + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)sym_name + 4)" ( (binary_expression "(int)sym_name + 4" (cast_expression "(int)sym_name" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) (expression_statement "arm_sec_00 = (arm_section *)arm_sec->data;" (assignment_expression "arm_sec_00 = (arm_section *)arm_sec->data" identifier = (cast_expression "(arm_section *)arm_sec->data" ( (type_descriptor "arm_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "arm_sec->data" identifier -> field_identifier))) ;) (if_statement "if (arm_sec->sec != sec) {\n    arm_sec_1 = &arm_sec->rela;\n    arm_free_section(arm_sec_00,(arm_section *)arm_sec_1);\n    arm_sec->sec = sec;\n    pcVar8 = (char *)dcgettext(0,"unwind data",5);\n    arm_sec_00 = (arm_section *)\n                 get_data((void *)0x0,aux->filedata,(ulong)sec->sh_offset,1,sec->sh_size,pcVar8);\n    arm_sec->rela = (Elf_Internal_Rela *)0x0;\n    arm_sec->data = (uchar *)arm_sec_00;\n    pEVar2 = filedata->section_headers;\n    uVar12 = (filedata->file_header).e_shnum;\n    arm_sec->nrelas = 0;\n    pEVar14 = pEVar2;\n    if (pEVar2 < pEVar2 + uVar12) {\n      do {\n        if (((pEVar14->sh_info < uVar12) && (sec == pEVar2 + pEVar14->sh_info)) &&\n           ((uVar16 = pEVar14->sh_type, uVar16 == 9 || (uVar16 == 4)))) {\n          uVar5 = (ulong)pEVar14->sh_size;\n          arm_sec->rel_type = uVar16;\n          rel_offset = (ulong)pEVar14->sh_offset;\n          if (uVar16 == 9) {\n            iVar9 = slurp_rel_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }\n          else {\n            iVar9 = slurp_rela_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }\n          if (iVar9 == 0) {\n            return 0;\n          }\n          pEVar15 = arm_sec->rela;\n          arm_sec_00 = (arm_section *)arm_sec->data;\n          goto LAB_000321d8;\n        }\n        pEVar14 = pEVar14 + 1;\n      } while (pEVar14 < pEVar2 + uVar12);\n      pEVar15 = (Elf_Internal_Rela *)0x0;\n    }\n    else {\n      pEVar15 = (Elf_Internal_Rela *)0x0;\n    }\nLAB_000321d8:\n    arm_sec->next_rela = pEVar15;\n  }" if (parenthesized_expression "(arm_sec->sec != sec)" ( (binary_expression "arm_sec->sec != sec" (field_expression "arm_sec->sec" identifier -> field_identifier) != identifier) )) (compound_statement "{\n    arm_sec_1 = &arm_sec->rela;\n    arm_free_section(arm_sec_00,(arm_section *)arm_sec_1);\n    arm_sec->sec = sec;\n    pcVar8 = (char *)dcgettext(0,"unwind data",5);\n    arm_sec_00 = (arm_section *)\n                 get_data((void *)0x0,aux->filedata,(ulong)sec->sh_offset,1,sec->sh_size,pcVar8);\n    arm_sec->rela = (Elf_Internal_Rela *)0x0;\n    arm_sec->data = (uchar *)arm_sec_00;\n    pEVar2 = filedata->section_headers;\n    uVar12 = (filedata->file_header).e_shnum;\n    arm_sec->nrelas = 0;\n    pEVar14 = pEVar2;\n    if (pEVar2 < pEVar2 + uVar12) {\n      do {\n        if (((pEVar14->sh_info < uVar12) && (sec == pEVar2 + pEVar14->sh_info)) &&\n           ((uVar16 = pEVar14->sh_type, uVar16 == 9 || (uVar16 == 4)))) {\n          uVar5 = (ulong)pEVar14->sh_size;\n          arm_sec->rel_type = uVar16;\n          rel_offset = (ulong)pEVar14->sh_offset;\n          if (uVar16 == 9) {\n            iVar9 = slurp_rel_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }\n          else {\n            iVar9 = slurp_rela_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }\n          if (iVar9 == 0) {\n            return 0;\n          }\n          pEVar15 = arm_sec->rela;\n          arm_sec_00 = (arm_section *)arm_sec->data;\n          goto LAB_000321d8;\n        }\n        pEVar14 = pEVar14 + 1;\n      } while (pEVar14 < pEVar2 + uVar12);\n      pEVar15 = (Elf_Internal_Rela *)0x0;\n    }\n    else {\n      pEVar15 = (Elf_Internal_Rela *)0x0;\n    }\nLAB_000321d8:\n    arm_sec->next_rela = pEVar15;\n  }" { (expression_statement "arm_sec_1 = &arm_sec->rela;" (assignment_expression "arm_sec_1 = &arm_sec->rela" identifier = (pointer_expression "&arm_sec->rela" & (field_expression "arm_sec->rela" identifier -> field_identifier))) ;) (expression_statement "arm_free_section(arm_sec_00,(arm_section *)arm_sec_1);" (call_expression "arm_free_section(arm_sec_00,(arm_section *)arm_sec_1)" identifier (argument_list "(arm_sec_00,(arm_section *)arm_sec_1)" ( identifier , (cast_expression "(arm_section *)arm_sec_1" ( (type_descriptor "arm_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "arm_sec->sec = sec;" (assignment_expression "arm_sec->sec = sec" (field_expression "arm_sec->sec" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar8 = (char *)dcgettext(0,"unwind data",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"unwind data",5)" identifier = (cast_expression "(char *)dcgettext(0,"unwind data",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"unwind data",5)" identifier (argument_list "(0,"unwind data",5)" ( number_literal , (string_literal ""unwind data"" " string_content ") , number_literal ))))) ;) (expression_statement "arm_sec_00 = (arm_section *)\n                 get_data((void *)0x0,aux->filedata,(ulong)sec->sh_offset,1,sec->sh_size,pcVar8);" (assignment_expression "arm_sec_00 = (arm_section *)\n                 get_data((void *)0x0,aux->filedata,(ulong)sec->sh_offset,1,sec->sh_size,pcVar8)" identifier = (cast_expression "(arm_section *)\n                 get_data((void *)0x0,aux->filedata,(ulong)sec->sh_offset,1,sec->sh_size,pcVar8)" ( (type_descriptor "arm_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "get_data((void *)0x0,aux->filedata,(ulong)sec->sh_offset,1,sec->sh_size,pcVar8)" identifier (argument_list "((void *)0x0,aux->filedata,(ulong)sec->sh_offset,1,sec->sh_size,pcVar8)" ( (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (field_expression "aux->filedata" identifier -> field_identifier) , (cast_expression "(ulong)sec->sh_offset" ( (type_descriptor "ulong" type_identifier) ) (field_expression "sec->sh_offset" identifier -> field_identifier)) , number_literal , (field_expression "sec->sh_size" identifier -> field_identifier) , identifier ))))) ;) (expression_statement "arm_sec->rela = (Elf_Internal_Rela *)0x0;" (assignment_expression "arm_sec->rela = (Elf_Internal_Rela *)0x0" (field_expression "arm_sec->rela" identifier -> field_identifier) = (cast_expression "(Elf_Internal_Rela *)0x0" ( (type_descriptor "Elf_Internal_Rela *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "arm_sec->data = (uchar *)arm_sec_00;" (assignment_expression "arm_sec->data = (uchar *)arm_sec_00" (field_expression "arm_sec->data" identifier -> field_identifier) = (cast_expression "(uchar *)arm_sec_00" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pEVar2 = filedata->section_headers;" (assignment_expression "pEVar2 = filedata->section_headers" identifier = (field_expression "filedata->section_headers" identifier -> field_identifier)) ;) (expression_statement "uVar12 = (filedata->file_header).e_shnum;" (assignment_expression "uVar12 = (filedata->file_header).e_shnum" identifier = (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "arm_sec->nrelas = 0;" (assignment_expression "arm_sec->nrelas = 0" (field_expression "arm_sec->nrelas" identifier -> field_identifier) = number_literal) ;) (expression_statement "pEVar14 = pEVar2;" (assignment_expression "pEVar14 = pEVar2" identifier = identifier) ;) (if_statement "if (pEVar2 < pEVar2 + uVar12) {\n      do {\n        if (((pEVar14->sh_info < uVar12) && (sec == pEVar2 + pEVar14->sh_info)) &&\n           ((uVar16 = pEVar14->sh_type, uVar16 == 9 || (uVar16 == 4)))) {\n          uVar5 = (ulong)pEVar14->sh_size;\n          arm_sec->rel_type = uVar16;\n          rel_offset = (ulong)pEVar14->sh_offset;\n          if (uVar16 == 9) {\n            iVar9 = slurp_rel_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }\n          else {\n            iVar9 = slurp_rela_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }\n          if (iVar9 == 0) {\n            return 0;\n          }\n          pEVar15 = arm_sec->rela;\n          arm_sec_00 = (arm_section *)arm_sec->data;\n          goto LAB_000321d8;\n        }\n        pEVar14 = pEVar14 + 1;\n      } while (pEVar14 < pEVar2 + uVar12);\n      pEVar15 = (Elf_Internal_Rela *)0x0;\n    }\n    else {\n      pEVar15 = (Elf_Internal_Rela *)0x0;\n    }" if (parenthesized_expression "(pEVar2 < pEVar2 + uVar12)" ( (binary_expression "pEVar2 < pEVar2 + uVar12" identifier < (binary_expression "pEVar2 + uVar12" identifier + identifier)) )) (compound_statement "{\n      do {\n        if (((pEVar14->sh_info < uVar12) && (sec == pEVar2 + pEVar14->sh_info)) &&\n           ((uVar16 = pEVar14->sh_type, uVar16 == 9 || (uVar16 == 4)))) {\n          uVar5 = (ulong)pEVar14->sh_size;\n          arm_sec->rel_type = uVar16;\n          rel_offset = (ulong)pEVar14->sh_offset;\n          if (uVar16 == 9) {\n            iVar9 = slurp_rel_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }\n          else {\n            iVar9 = slurp_rela_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }\n          if (iVar9 == 0) {\n            return 0;\n          }\n          pEVar15 = arm_sec->rela;\n          arm_sec_00 = (arm_section *)arm_sec->data;\n          goto LAB_000321d8;\n        }\n        pEVar14 = pEVar14 + 1;\n      } while (pEVar14 < pEVar2 + uVar12);\n      pEVar15 = (Elf_Internal_Rela *)0x0;\n    }" { (do_statement "do {\n        if (((pEVar14->sh_info < uVar12) && (sec == pEVar2 + pEVar14->sh_info)) &&\n           ((uVar16 = pEVar14->sh_type, uVar16 == 9 || (uVar16 == 4)))) {\n          uVar5 = (ulong)pEVar14->sh_size;\n          arm_sec->rel_type = uVar16;\n          rel_offset = (ulong)pEVar14->sh_offset;\n          if (uVar16 == 9) {\n            iVar9 = slurp_rel_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }\n          else {\n            iVar9 = slurp_rela_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }\n          if (iVar9 == 0) {\n            return 0;\n          }\n          pEVar15 = arm_sec->rela;\n          arm_sec_00 = (arm_section *)arm_sec->data;\n          goto LAB_000321d8;\n        }\n        pEVar14 = pEVar14 + 1;\n      } while (pEVar14 < pEVar2 + uVar12);" do (compound_statement "{\n        if (((pEVar14->sh_info < uVar12) && (sec == pEVar2 + pEVar14->sh_info)) &&\n           ((uVar16 = pEVar14->sh_type, uVar16 == 9 || (uVar16 == 4)))) {\n          uVar5 = (ulong)pEVar14->sh_size;\n          arm_sec->rel_type = uVar16;\n          rel_offset = (ulong)pEVar14->sh_offset;\n          if (uVar16 == 9) {\n            iVar9 = slurp_rel_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }\n          else {\n            iVar9 = slurp_rela_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }\n          if (iVar9 == 0) {\n            return 0;\n          }\n          pEVar15 = arm_sec->rela;\n          arm_sec_00 = (arm_section *)arm_sec->data;\n          goto LAB_000321d8;\n        }\n        pEVar14 = pEVar14 + 1;\n      }" { (if_statement "if (((pEVar14->sh_info < uVar12) && (sec == pEVar2 + pEVar14->sh_info)) &&\n           ((uVar16 = pEVar14->sh_type, uVar16 == 9 || (uVar16 == 4)))) {\n          uVar5 = (ulong)pEVar14->sh_size;\n          arm_sec->rel_type = uVar16;\n          rel_offset = (ulong)pEVar14->sh_offset;\n          if (uVar16 == 9) {\n            iVar9 = slurp_rel_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }\n          else {\n            iVar9 = slurp_rela_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }\n          if (iVar9 == 0) {\n            return 0;\n          }\n          pEVar15 = arm_sec->rela;\n          arm_sec_00 = (arm_section *)arm_sec->data;\n          goto LAB_000321d8;\n        }" if (parenthesized_expression "(((pEVar14->sh_info < uVar12) && (sec == pEVar2 + pEVar14->sh_info)) &&\n           ((uVar16 = pEVar14->sh_type, uVar16 == 9 || (uVar16 == 4))))" ( (binary_expression "((pEVar14->sh_info < uVar12) && (sec == pEVar2 + pEVar14->sh_info)) &&\n           ((uVar16 = pEVar14->sh_type, uVar16 == 9 || (uVar16 == 4)))" (parenthesized_expression "((pEVar14->sh_info < uVar12) && (sec == pEVar2 + pEVar14->sh_info))" ( (binary_expression "(pEVar14->sh_info < uVar12) && (sec == pEVar2 + pEVar14->sh_info)" (parenthesized_expression "(pEVar14->sh_info < uVar12)" ( (binary_expression "pEVar14->sh_info < uVar12" (field_expression "pEVar14->sh_info" identifier -> field_identifier) < identifier) )) && (parenthesized_expression "(sec == pEVar2 + pEVar14->sh_info)" ( (binary_expression "sec == pEVar2 + pEVar14->sh_info" identifier == (binary_expression "pEVar2 + pEVar14->sh_info" identifier + (field_expression "pEVar14->sh_info" identifier -> field_identifier))) ))) )) && (parenthesized_expression "((uVar16 = pEVar14->sh_type, uVar16 == 9 || (uVar16 == 4)))" ( (parenthesized_expression "(uVar16 = pEVar14->sh_type, uVar16 == 9 || (uVar16 == 4))" ( (comma_expression "uVar16 = pEVar14->sh_type, uVar16 == 9 || (uVar16 == 4)" (assignment_expression "uVar16 = pEVar14->sh_type" identifier = (field_expression "pEVar14->sh_type" identifier -> field_identifier)) , (binary_expression "uVar16 == 9 || (uVar16 == 4)" (binary_expression "uVar16 == 9" identifier == number_literal) || (parenthesized_expression "(uVar16 == 4)" ( (binary_expression "uVar16 == 4" identifier == number_literal) )))) )) ))) )) (compound_statement "{\n          uVar5 = (ulong)pEVar14->sh_size;\n          arm_sec->rel_type = uVar16;\n          rel_offset = (ulong)pEVar14->sh_offset;\n          if (uVar16 == 9) {\n            iVar9 = slurp_rel_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }\n          else {\n            iVar9 = slurp_rela_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }\n          if (iVar9 == 0) {\n            return 0;\n          }\n          pEVar15 = arm_sec->rela;\n          arm_sec_00 = (arm_section *)arm_sec->data;\n          goto LAB_000321d8;\n        }" { (expression_statement "uVar5 = (ulong)pEVar14->sh_size;" (assignment_expression "uVar5 = (ulong)pEVar14->sh_size" identifier = (cast_expression "(ulong)pEVar14->sh_size" ( (type_descriptor "ulong" type_identifier) ) (field_expression "pEVar14->sh_size" identifier -> field_identifier))) ;) (expression_statement "arm_sec->rel_type = uVar16;" (assignment_expression "arm_sec->rel_type = uVar16" (field_expression "arm_sec->rel_type" identifier -> field_identifier) = identifier) ;) (expression_statement "rel_offset = (ulong)pEVar14->sh_offset;" (assignment_expression "rel_offset = (ulong)pEVar14->sh_offset" identifier = (cast_expression "(ulong)pEVar14->sh_offset" ( (type_descriptor "ulong" type_identifier) ) (field_expression "pEVar14->sh_offset" identifier -> field_identifier))) ;) (if_statement "if (uVar16 == 9) {\n            iVar9 = slurp_rel_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }\n          else {\n            iVar9 = slurp_rela_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }" if (parenthesized_expression "(uVar16 == 9)" ( (binary_expression "uVar16 == 9" identifier == number_literal) )) (compound_statement "{\n            iVar9 = slurp_rel_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }" { (expression_statement "iVar9 = slurp_rel_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);" (assignment_expression "iVar9 = slurp_rel_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas)" identifier = (call_expression "slurp_rel_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas)" identifier (argument_list "(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas)" ( (field_expression "aux->filedata" identifier -> field_identifier) , identifier , identifier , identifier , (pointer_expression "&arm_sec->nrelas" & (field_expression "arm_sec->nrelas" identifier -> field_identifier)) )))) ;) }) (else_clause "else {\n            iVar9 = slurp_rela_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }" else (compound_statement "{\n            iVar9 = slurp_rela_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);\n          }" { (expression_statement "iVar9 = slurp_rela_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);" (assignment_expression "iVar9 = slurp_rela_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas)" identifier = (call_expression "slurp_rela_relocs(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas)" identifier (argument_list "(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas)" ( (field_expression "aux->filedata" identifier -> field_identifier) , identifier , identifier , identifier , (pointer_expression "&arm_sec->nrelas" & (field_expression "arm_sec->nrelas" identifier -> field_identifier)) )))) ;) }))) (if_statement "if (iVar9 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pEVar15 = arm_sec->rela;" (assignment_expression "pEVar15 = arm_sec->rela" identifier = (field_expression "arm_sec->rela" identifier -> field_identifier)) ;) (expression_statement "arm_sec_00 = (arm_section *)arm_sec->data;" (assignment_expression "arm_sec_00 = (arm_section *)arm_sec->data" identifier = (cast_expression "(arm_section *)arm_sec->data" ( (type_descriptor "arm_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "arm_sec->data" identifier -> field_identifier))) ;) (goto_statement "goto LAB_000321d8;" goto statement_identifier ;) })) (expression_statement "pEVar14 = pEVar14 + 1;" (assignment_expression "pEVar14 = pEVar14 + 1" identifier = (binary_expression "pEVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pEVar14 < pEVar2 + uVar12)" ( (binary_expression "pEVar14 < pEVar2 + uVar12" identifier < (binary_expression "pEVar2 + uVar12" identifier + identifier)) )) ;) (expression_statement "pEVar15 = (Elf_Internal_Rela *)0x0;" (assignment_expression "pEVar15 = (Elf_Internal_Rela *)0x0" identifier = (cast_expression "(Elf_Internal_Rela *)0x0" ( (type_descriptor "Elf_Internal_Rela *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      pEVar15 = (Elf_Internal_Rela *)0x0;\n    }" else (compound_statement "{\n      pEVar15 = (Elf_Internal_Rela *)0x0;\n    }" { (expression_statement "pEVar15 = (Elf_Internal_Rela *)0x0;" (assignment_expression "pEVar15 = (Elf_Internal_Rela *)0x0" identifier = (cast_expression "(Elf_Internal_Rela *)0x0" ( (type_descriptor "Elf_Internal_Rela *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (labeled_statement "LAB_000321d8:\n    arm_sec->next_rela = pEVar15;" statement_identifier : (expression_statement "arm_sec->next_rela = pEVar15;" (assignment_expression "arm_sec->next_rela = pEVar15" (field_expression "arm_sec->next_rela" identifier -> field_identifier) = identifier) ;)) })) (if_statement "if (arm_sec_00 != (arm_section *)0x0) {\n    uVar12 = (uint)sec->sh_size;\n    iVar9 = *(int *)((int)&sec->sh_size + 4);\n    if (((iVar9 != 0 || (uint)-iVar9 < (uint)(3 < uVar12)) &&\n        (uVar16 = iVar9 + -1 + (uint)(3 < uVar12),\n        word_offset._4_4_ <= uVar16 &&\n        (uint)(uVar12 - 4 < (uint)word_offset) <= uVar16 - word_offset._4_4_)) &&\n       (-1 < (longlong)word_offset)) {\n      local_30._0_4_ = (*byte_get)((uchar *)((int)&arm_sec_00->data + (uint)word_offset),4);\n      local_64 = arm_sec->rela;\n      if (local_64 == (Elf_Internal_Rela *)0x0) {\n                    /* WARNING: Store size is inaccurate */\n        *(elf_vma *)wordp = (elf_vma)local_30;\n        return 1;\n      }\n      local_4c = arm_sec->nrelas;\n      pEVar15 = arm_sec->next_rela;\n      if (pEVar15 == local_64 + local_4c) {\nLAB_000322a3:\n                    /* WARNING: Store size is inaccurate */\n        *(elf_vma *)wordp = (elf_vma)local_30;\n        arm_sec->next_rela = pEVar15;\n        return 1;\n      }\n      bVar6 = false;\nLAB_0003227f:\n      uVar12 = (uint)pEVar15->r_offset;\n      uVar16 = *(uint *)((int)&pEVar15->r_offset + 4);\n      if (word_offset._4_4_ < uVar16 ||\n          word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12)) {\n        if (bVar6) goto LAB_000322a3;\n        uVar12 = (uint)local_64->r_offset;\n        uVar16 = *(uint *)((int)&local_64->r_offset + 4);\n        pEVar15 = local_64;\n        if (word_offset._4_4_ < uVar16 ||\n            word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12)) goto LAB_000322a3;\n        bVar6 = true;\n      }\n      if ((uVar12 & 3) == 0) {\n        if ((word_offset._4_4_ <= uVar16 &&\n             (uint)(uVar12 < (uint)word_offset) <= uVar16 - word_offset._4_4_) &&\n           (aux->symtab != (Elf_Internal_Sym *)0x0)) {\n          uVar16 = arm_sec->rel_type;\n          if (uVar16 == 9) {\n            local_50 = 0;\n            local_54 = (uint)(elf_vma)local_30 & 0x7fffffff;\n            if (((uint)(elf_vma)local_30 & 0x40000000) != 0) {\n              local_50 = -1;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (uVar16 != 4) {\n              pcVar8 = (char *)dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(pcVar8,uVar16);\n              goto LAB_000322a3;\n            }\n            local_54 = (uint)pEVar15->r_addend;\n            local_50 = *(int *)((int)&pEVar15->r_addend + 4);\n          }\n          uVar16 = *(uint *)((int)&pEVar15->r_info + 4);\n          uVar3 = (uint)pEVar15->r_info;\n          uVar4 = aux->nsyms;\n          uVar17 = uVar3 >> 8 | uVar16 << 0x18;\n          if ((uint)(uVar17 < uVar4) <= uVar16 >> 8) {\n            pcVar8 = (char *)dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(pcVar8,uVar17,uVar4);\n            goto LAB_000322a3;\n          }\n          pEVar10 = aux->symtab + uVar17;\n          bVar7 = pEVar10->st_value;\n          iVar18 = local_54 + (int)pEVar10->st_value;\n          iVar9 = *(int *)((int)&pEVar10->st_value + 4);\n          local_44 = iVar18 - (uVar12 + (int)arm_sec->sec->sh_addr);\n          uVar1 = (filedata->file_header).e_machine;\n          if (uVar1 == 0x28) {\n            pbVar11 = (byte *)elf_arm_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (!bVar23) {\n              iVar13 = 0xb;\n              pbVar19 = pbVar11;\n              pbVar20 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar13 == 0) break;\n                iVar13 = iVar13 + -1;\n                bVar21 = *pbVar19 < *pbVar20;\n                bVar23 = *pbVar19 == *pbVar20;\n                pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n              } while (bVar23);\n              bVar22 = false;\n              bVar21 = (!bVar21 && !bVar23) == bVar21;\n              if (!bVar21) {\n                iVar13 = 0xd;\n                pbVar19 = pbVar11;\n                pbVar20 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar13 == 0) break;\n                  iVar13 = iVar13 + -1;\n                  bVar22 = *pbVar19 < *pbVar20;\n                  bVar21 = *pbVar19 == *pbVar20;\n                  pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                  pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar22 && !bVar21) != bVar22) {\n                  pcVar8 = (char *)dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(pcVar8,pbVar11);\n                  local_64 = arm_sec->rela;\n                  local_4c = arm_sec->nrelas;\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30._0_4_ =\n                     (elf_vma)(local_44 & 0x7fffffff | (uint)(elf_vma)local_30 & 0x80000000);\n                addr->section = (ushort)pEVar10->st_shndx;\n                *(uint *)((int)&addr->offset + 4) =\n                     local_50 + iVar9 + (uint)CARRY4(local_54,(uint)bVar7);\n                *(int *)&addr->offset = iVar18;\n                if (sym_name != (bfd_vma *)0x0) {\n                  uVar5 = pEVar10->st_name;\n                  *(undefined4 *)((int)sym_name + 4) = 0;\n                  *(ulong *)sym_name = uVar5;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar8 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar11 = (byte *)(uVar3 & 0xff);\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n          }\n          else {\n            if (uVar1 != 0x8c) {\n              pcVar8 = (char *)dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(pcVar8);\n              goto LAB_000322a3;\n            }\n            pbVar11 = (byte *)elf_tic6x_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (bVar23) {\n              pcVar8 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar13 = 0xd;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar21 = *pbVar19 < *pbVar20;\n              bVar23 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar23);\n            bVar22 = false;\n            bVar21 = (!bVar21 && !bVar23) == bVar21;\n            if (bVar21) goto LAB_00032500;\n            iVar13 = 0xf;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar22 = *pbVar19 < *pbVar20;\n              bVar21 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar21);\n            if ((!bVar22 && !bVar21) == bVar22) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            pcVar8 = (char *)dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(pcVar8,pbVar11);\n          local_64 = arm_sec->rela;\n          local_4c = arm_sec->nrelas;\n        }\n      }\n      else {\n        pcVar8 = (char *)dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(pcVar8,uVar12);\n        local_64 = arm_sec->rela;\n        local_4c = arm_sec->nrelas;\n      }\nLAB_00032500:\n      pEVar15 = pEVar15 + 1;\n      if (pEVar15 == local_64 + local_4c) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }\n  }" if (parenthesized_expression "(arm_sec_00 != (arm_section *)0x0)" ( (binary_expression "arm_sec_00 != (arm_section *)0x0" identifier != (cast_expression "(arm_section *)0x0" ( (type_descriptor "arm_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar12 = (uint)sec->sh_size;\n    iVar9 = *(int *)((int)&sec->sh_size + 4);\n    if (((iVar9 != 0 || (uint)-iVar9 < (uint)(3 < uVar12)) &&\n        (uVar16 = iVar9 + -1 + (uint)(3 < uVar12),\n        word_offset._4_4_ <= uVar16 &&\n        (uint)(uVar12 - 4 < (uint)word_offset) <= uVar16 - word_offset._4_4_)) &&\n       (-1 < (longlong)word_offset)) {\n      local_30._0_4_ = (*byte_get)((uchar *)((int)&arm_sec_00->data + (uint)word_offset),4);\n      local_64 = arm_sec->rela;\n      if (local_64 == (Elf_Internal_Rela *)0x0) {\n                    /* WARNING: Store size is inaccurate */\n        *(elf_vma *)wordp = (elf_vma)local_30;\n        return 1;\n      }\n      local_4c = arm_sec->nrelas;\n      pEVar15 = arm_sec->next_rela;\n      if (pEVar15 == local_64 + local_4c) {\nLAB_000322a3:\n                    /* WARNING: Store size is inaccurate */\n        *(elf_vma *)wordp = (elf_vma)local_30;\n        arm_sec->next_rela = pEVar15;\n        return 1;\n      }\n      bVar6 = false;\nLAB_0003227f:\n      uVar12 = (uint)pEVar15->r_offset;\n      uVar16 = *(uint *)((int)&pEVar15->r_offset + 4);\n      if (word_offset._4_4_ < uVar16 ||\n          word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12)) {\n        if (bVar6) goto LAB_000322a3;\n        uVar12 = (uint)local_64->r_offset;\n        uVar16 = *(uint *)((int)&local_64->r_offset + 4);\n        pEVar15 = local_64;\n        if (word_offset._4_4_ < uVar16 ||\n            word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12)) goto LAB_000322a3;\n        bVar6 = true;\n      }\n      if ((uVar12 & 3) == 0) {\n        if ((word_offset._4_4_ <= uVar16 &&\n             (uint)(uVar12 < (uint)word_offset) <= uVar16 - word_offset._4_4_) &&\n           (aux->symtab != (Elf_Internal_Sym *)0x0)) {\n          uVar16 = arm_sec->rel_type;\n          if (uVar16 == 9) {\n            local_50 = 0;\n            local_54 = (uint)(elf_vma)local_30 & 0x7fffffff;\n            if (((uint)(elf_vma)local_30 & 0x40000000) != 0) {\n              local_50 = -1;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (uVar16 != 4) {\n              pcVar8 = (char *)dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(pcVar8,uVar16);\n              goto LAB_000322a3;\n            }\n            local_54 = (uint)pEVar15->r_addend;\n            local_50 = *(int *)((int)&pEVar15->r_addend + 4);\n          }\n          uVar16 = *(uint *)((int)&pEVar15->r_info + 4);\n          uVar3 = (uint)pEVar15->r_info;\n          uVar4 = aux->nsyms;\n          uVar17 = uVar3 >> 8 | uVar16 << 0x18;\n          if ((uint)(uVar17 < uVar4) <= uVar16 >> 8) {\n            pcVar8 = (char *)dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(pcVar8,uVar17,uVar4);\n            goto LAB_000322a3;\n          }\n          pEVar10 = aux->symtab + uVar17;\n          bVar7 = pEVar10->st_value;\n          iVar18 = local_54 + (int)pEVar10->st_value;\n          iVar9 = *(int *)((int)&pEVar10->st_value + 4);\n          local_44 = iVar18 - (uVar12 + (int)arm_sec->sec->sh_addr);\n          uVar1 = (filedata->file_header).e_machine;\n          if (uVar1 == 0x28) {\n            pbVar11 = (byte *)elf_arm_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (!bVar23) {\n              iVar13 = 0xb;\n              pbVar19 = pbVar11;\n              pbVar20 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar13 == 0) break;\n                iVar13 = iVar13 + -1;\n                bVar21 = *pbVar19 < *pbVar20;\n                bVar23 = *pbVar19 == *pbVar20;\n                pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n              } while (bVar23);\n              bVar22 = false;\n              bVar21 = (!bVar21 && !bVar23) == bVar21;\n              if (!bVar21) {\n                iVar13 = 0xd;\n                pbVar19 = pbVar11;\n                pbVar20 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar13 == 0) break;\n                  iVar13 = iVar13 + -1;\n                  bVar22 = *pbVar19 < *pbVar20;\n                  bVar21 = *pbVar19 == *pbVar20;\n                  pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                  pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar22 && !bVar21) != bVar22) {\n                  pcVar8 = (char *)dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(pcVar8,pbVar11);\n                  local_64 = arm_sec->rela;\n                  local_4c = arm_sec->nrelas;\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30._0_4_ =\n                     (elf_vma)(local_44 & 0x7fffffff | (uint)(elf_vma)local_30 & 0x80000000);\n                addr->section = (ushort)pEVar10->st_shndx;\n                *(uint *)((int)&addr->offset + 4) =\n                     local_50 + iVar9 + (uint)CARRY4(local_54,(uint)bVar7);\n                *(int *)&addr->offset = iVar18;\n                if (sym_name != (bfd_vma *)0x0) {\n                  uVar5 = pEVar10->st_name;\n                  *(undefined4 *)((int)sym_name + 4) = 0;\n                  *(ulong *)sym_name = uVar5;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar8 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar11 = (byte *)(uVar3 & 0xff);\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n          }\n          else {\n            if (uVar1 != 0x8c) {\n              pcVar8 = (char *)dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(pcVar8);\n              goto LAB_000322a3;\n            }\n            pbVar11 = (byte *)elf_tic6x_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (bVar23) {\n              pcVar8 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar13 = 0xd;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar21 = *pbVar19 < *pbVar20;\n              bVar23 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar23);\n            bVar22 = false;\n            bVar21 = (!bVar21 && !bVar23) == bVar21;\n            if (bVar21) goto LAB_00032500;\n            iVar13 = 0xf;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar22 = *pbVar19 < *pbVar20;\n              bVar21 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar21);\n            if ((!bVar22 && !bVar21) == bVar22) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            pcVar8 = (char *)dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(pcVar8,pbVar11);\n          local_64 = arm_sec->rela;\n          local_4c = arm_sec->nrelas;\n        }\n      }\n      else {\n        pcVar8 = (char *)dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(pcVar8,uVar12);\n        local_64 = arm_sec->rela;\n        local_4c = arm_sec->nrelas;\n      }\nLAB_00032500:\n      pEVar15 = pEVar15 + 1;\n      if (pEVar15 == local_64 + local_4c) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }\n  }" { (expression_statement "uVar12 = (uint)sec->sh_size;" (assignment_expression "uVar12 = (uint)sec->sh_size" identifier = (cast_expression "(uint)sec->sh_size" ( (type_descriptor "uint" type_identifier) ) (field_expression "sec->sh_size" identifier -> field_identifier))) ;) (expression_statement "iVar9 = *(int *)((int)&sec->sh_size + 4);" (assignment_expression "iVar9 = *(int *)((int)&sec->sh_size + 4)" identifier = (pointer_expression "*(int *)((int)&sec->sh_size + 4)" * (cast_expression "(int *)((int)&sec->sh_size + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&sec->sh_size + 4)" ( (binary_expression "(int)&sec->sh_size + 4" (cast_expression "(int)&sec->sh_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&sec->sh_size" & (field_expression "sec->sh_size" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if (((iVar9 != 0 || (uint)-iVar9 < (uint)(3 < uVar12)) &&\n        (uVar16 = iVar9 + -1 + (uint)(3 < uVar12),\n        word_offset._4_4_ <= uVar16 &&\n        (uint)(uVar12 - 4 < (uint)word_offset) <= uVar16 - word_offset._4_4_)) &&\n       (-1 < (longlong)word_offset)) {\n      local_30._0_4_ = (*byte_get)((uchar *)((int)&arm_sec_00->data + (uint)word_offset),4);\n      local_64 = arm_sec->rela;\n      if (local_64 == (Elf_Internal_Rela *)0x0) {\n                    /* WARNING: Store size is inaccurate */\n        *(elf_vma *)wordp = (elf_vma)local_30;\n        return 1;\n      }\n      local_4c = arm_sec->nrelas;\n      pEVar15 = arm_sec->next_rela;\n      if (pEVar15 == local_64 + local_4c) {\nLAB_000322a3:\n                    /* WARNING: Store size is inaccurate */\n        *(elf_vma *)wordp = (elf_vma)local_30;\n        arm_sec->next_rela = pEVar15;\n        return 1;\n      }\n      bVar6 = false;\nLAB_0003227f:\n      uVar12 = (uint)pEVar15->r_offset;\n      uVar16 = *(uint *)((int)&pEVar15->r_offset + 4);\n      if (word_offset._4_4_ < uVar16 ||\n          word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12)) {\n        if (bVar6) goto LAB_000322a3;\n        uVar12 = (uint)local_64->r_offset;\n        uVar16 = *(uint *)((int)&local_64->r_offset + 4);\n        pEVar15 = local_64;\n        if (word_offset._4_4_ < uVar16 ||\n            word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12)) goto LAB_000322a3;\n        bVar6 = true;\n      }\n      if ((uVar12 & 3) == 0) {\n        if ((word_offset._4_4_ <= uVar16 &&\n             (uint)(uVar12 < (uint)word_offset) <= uVar16 - word_offset._4_4_) &&\n           (aux->symtab != (Elf_Internal_Sym *)0x0)) {\n          uVar16 = arm_sec->rel_type;\n          if (uVar16 == 9) {\n            local_50 = 0;\n            local_54 = (uint)(elf_vma)local_30 & 0x7fffffff;\n            if (((uint)(elf_vma)local_30 & 0x40000000) != 0) {\n              local_50 = -1;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (uVar16 != 4) {\n              pcVar8 = (char *)dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(pcVar8,uVar16);\n              goto LAB_000322a3;\n            }\n            local_54 = (uint)pEVar15->r_addend;\n            local_50 = *(int *)((int)&pEVar15->r_addend + 4);\n          }\n          uVar16 = *(uint *)((int)&pEVar15->r_info + 4);\n          uVar3 = (uint)pEVar15->r_info;\n          uVar4 = aux->nsyms;\n          uVar17 = uVar3 >> 8 | uVar16 << 0x18;\n          if ((uint)(uVar17 < uVar4) <= uVar16 >> 8) {\n            pcVar8 = (char *)dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(pcVar8,uVar17,uVar4);\n            goto LAB_000322a3;\n          }\n          pEVar10 = aux->symtab + uVar17;\n          bVar7 = pEVar10->st_value;\n          iVar18 = local_54 + (int)pEVar10->st_value;\n          iVar9 = *(int *)((int)&pEVar10->st_value + 4);\n          local_44 = iVar18 - (uVar12 + (int)arm_sec->sec->sh_addr);\n          uVar1 = (filedata->file_header).e_machine;\n          if (uVar1 == 0x28) {\n            pbVar11 = (byte *)elf_arm_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (!bVar23) {\n              iVar13 = 0xb;\n              pbVar19 = pbVar11;\n              pbVar20 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar13 == 0) break;\n                iVar13 = iVar13 + -1;\n                bVar21 = *pbVar19 < *pbVar20;\n                bVar23 = *pbVar19 == *pbVar20;\n                pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n              } while (bVar23);\n              bVar22 = false;\n              bVar21 = (!bVar21 && !bVar23) == bVar21;\n              if (!bVar21) {\n                iVar13 = 0xd;\n                pbVar19 = pbVar11;\n                pbVar20 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar13 == 0) break;\n                  iVar13 = iVar13 + -1;\n                  bVar22 = *pbVar19 < *pbVar20;\n                  bVar21 = *pbVar19 == *pbVar20;\n                  pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                  pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar22 && !bVar21) != bVar22) {\n                  pcVar8 = (char *)dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(pcVar8,pbVar11);\n                  local_64 = arm_sec->rela;\n                  local_4c = arm_sec->nrelas;\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30._0_4_ =\n                     (elf_vma)(local_44 & 0x7fffffff | (uint)(elf_vma)local_30 & 0x80000000);\n                addr->section = (ushort)pEVar10->st_shndx;\n                *(uint *)((int)&addr->offset + 4) =\n                     local_50 + iVar9 + (uint)CARRY4(local_54,(uint)bVar7);\n                *(int *)&addr->offset = iVar18;\n                if (sym_name != (bfd_vma *)0x0) {\n                  uVar5 = pEVar10->st_name;\n                  *(undefined4 *)((int)sym_name + 4) = 0;\n                  *(ulong *)sym_name = uVar5;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar8 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar11 = (byte *)(uVar3 & 0xff);\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n          }\n          else {\n            if (uVar1 != 0x8c) {\n              pcVar8 = (char *)dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(pcVar8);\n              goto LAB_000322a3;\n            }\n            pbVar11 = (byte *)elf_tic6x_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (bVar23) {\n              pcVar8 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar13 = 0xd;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar21 = *pbVar19 < *pbVar20;\n              bVar23 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar23);\n            bVar22 = false;\n            bVar21 = (!bVar21 && !bVar23) == bVar21;\n            if (bVar21) goto LAB_00032500;\n            iVar13 = 0xf;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar22 = *pbVar19 < *pbVar20;\n              bVar21 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar21);\n            if ((!bVar22 && !bVar21) == bVar22) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            pcVar8 = (char *)dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(pcVar8,pbVar11);\n          local_64 = arm_sec->rela;\n          local_4c = arm_sec->nrelas;\n        }\n      }\n      else {\n        pcVar8 = (char *)dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(pcVar8,uVar12);\n        local_64 = arm_sec->rela;\n        local_4c = arm_sec->nrelas;\n      }\nLAB_00032500:\n      pEVar15 = pEVar15 + 1;\n      if (pEVar15 == local_64 + local_4c) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }" if (parenthesized_expression "(((iVar9 != 0 || (uint)-iVar9 < (uint)(3 < uVar12)) &&\n        (uVar16 = iVar9 + -1 + (uint)(3 < uVar12),\n        word_offset._4_4_ <= uVar16 &&\n        (uint)(uVar12 - 4 < (uint)word_offset) <= uVar16 - word_offset._4_4_)) &&\n       (-1 < (longlong)word_offset))" ( (binary_expression "((iVar9 != 0 || (uint)-iVar9 < (uint)(3 < uVar12)) &&\n        (uVar16 = iVar9 + -1 + (uint)(3 < uVar12),\n        word_offset._4_4_ <= uVar16 &&\n        (uint)(uVar12 - 4 < (uint)word_offset) <= uVar16 - word_offset._4_4_)) &&\n       (-1 < (longlong)word_offset)" (parenthesized_expression "((iVar9 != 0 || (uint)-iVar9 < (uint)(3 < uVar12)) &&\n        (uVar16 = iVar9 + -1 + (uint)(3 < uVar12),\n        word_offset._4_4_ <= uVar16 &&\n        (uint)(uVar12 - 4 < (uint)word_offset) <= uVar16 - word_offset._4_4_))" ( (binary_expression "(iVar9 != 0 || (uint)-iVar9 < (uint)(3 < uVar12)) &&\n        (uVar16 = iVar9 + -1 + (uint)(3 < uVar12),\n        word_offset._4_4_ <= uVar16 &&\n        (uint)(uVar12 - 4 < (uint)word_offset) <= uVar16 - word_offset._4_4_)" (parenthesized_expression "(iVar9 != 0 || (uint)-iVar9 < (uint)(3 < uVar12))" ( (binary_expression "iVar9 != 0 || (uint)-iVar9 < (uint)(3 < uVar12)" (binary_expression "iVar9 != 0" identifier != number_literal) || (binary_expression "(uint)-iVar9 < (uint)(3 < uVar12)" (binary_expression "(uint)-iVar9" (parenthesized_expression "(uint)" ( identifier )) - identifier) < (call_expression "(uint)(3 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(3 < uVar12)" ( (binary_expression "3 < uVar12" number_literal < identifier) ))))) )) && (parenthesized_expression "(uVar16 = iVar9 + -1 + (uint)(3 < uVar12),\n        word_offset._4_4_ <= uVar16 &&\n        (uint)(uVar12 - 4 < (uint)word_offset) <= uVar16 - word_offset._4_4_)" ( (comma_expression "uVar16 = iVar9 + -1 + (uint)(3 < uVar12),\n        word_offset._4_4_ <= uVar16 &&\n        (uint)(uVar12 - 4 < (uint)word_offset) <= uVar16 - word_offset._4_4_" (assignment_expression "uVar16 = iVar9 + -1 + (uint)(3 < uVar12)" identifier = (binary_expression "iVar9 + -1 + (uint)(3 < uVar12)" (binary_expression "iVar9 + -1" identifier + number_literal) + (call_expression "(uint)(3 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(3 < uVar12)" ( (binary_expression "3 < uVar12" number_literal < identifier) ))))) , (binary_expression "word_offset._4_4_ <= uVar16 &&\n        (uint)(uVar12 - 4 < (uint)word_offset) <= uVar16 - word_offset._4_4_" (binary_expression "word_offset._4_4_ <= uVar16" (field_expression "word_offset._4_4_" identifier . field_identifier) <= identifier) && (binary_expression "(uint)(uVar12 - 4 < (uint)word_offset) <= uVar16 - word_offset._4_4_" (call_expression "(uint)(uVar12 - 4 < (uint)word_offset)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 - 4 < (uint)word_offset)" ( (binary_expression "uVar12 - 4 < (uint)word_offset" (binary_expression "uVar12 - 4" identifier - number_literal) < (cast_expression "(uint)word_offset" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) <= (binary_expression "uVar16 - word_offset._4_4_" identifier - (field_expression "word_offset._4_4_" identifier . field_identifier))))) ))) )) && (parenthesized_expression "(-1 < (longlong)word_offset)" ( (binary_expression "-1 < (longlong)word_offset" number_literal < (cast_expression "(longlong)word_offset" ( (type_descriptor "longlong" type_identifier) ) identifier)) ))) )) (compound_statement "{\n      local_30._0_4_ = (*byte_get)((uchar *)((int)&arm_sec_00->data + (uint)word_offset),4);\n      local_64 = arm_sec->rela;\n      if (local_64 == (Elf_Internal_Rela *)0x0) {\n                    /* WARNING: Store size is inaccurate */\n        *(elf_vma *)wordp = (elf_vma)local_30;\n        return 1;\n      }\n      local_4c = arm_sec->nrelas;\n      pEVar15 = arm_sec->next_rela;\n      if (pEVar15 == local_64 + local_4c) {\nLAB_000322a3:\n                    /* WARNING: Store size is inaccurate */\n        *(elf_vma *)wordp = (elf_vma)local_30;\n        arm_sec->next_rela = pEVar15;\n        return 1;\n      }\n      bVar6 = false;\nLAB_0003227f:\n      uVar12 = (uint)pEVar15->r_offset;\n      uVar16 = *(uint *)((int)&pEVar15->r_offset + 4);\n      if (word_offset._4_4_ < uVar16 ||\n          word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12)) {\n        if (bVar6) goto LAB_000322a3;\n        uVar12 = (uint)local_64->r_offset;\n        uVar16 = *(uint *)((int)&local_64->r_offset + 4);\n        pEVar15 = local_64;\n        if (word_offset._4_4_ < uVar16 ||\n            word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12)) goto LAB_000322a3;\n        bVar6 = true;\n      }\n      if ((uVar12 & 3) == 0) {\n        if ((word_offset._4_4_ <= uVar16 &&\n             (uint)(uVar12 < (uint)word_offset) <= uVar16 - word_offset._4_4_) &&\n           (aux->symtab != (Elf_Internal_Sym *)0x0)) {\n          uVar16 = arm_sec->rel_type;\n          if (uVar16 == 9) {\n            local_50 = 0;\n            local_54 = (uint)(elf_vma)local_30 & 0x7fffffff;\n            if (((uint)(elf_vma)local_30 & 0x40000000) != 0) {\n              local_50 = -1;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (uVar16 != 4) {\n              pcVar8 = (char *)dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(pcVar8,uVar16);\n              goto LAB_000322a3;\n            }\n            local_54 = (uint)pEVar15->r_addend;\n            local_50 = *(int *)((int)&pEVar15->r_addend + 4);\n          }\n          uVar16 = *(uint *)((int)&pEVar15->r_info + 4);\n          uVar3 = (uint)pEVar15->r_info;\n          uVar4 = aux->nsyms;\n          uVar17 = uVar3 >> 8 | uVar16 << 0x18;\n          if ((uint)(uVar17 < uVar4) <= uVar16 >> 8) {\n            pcVar8 = (char *)dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(pcVar8,uVar17,uVar4);\n            goto LAB_000322a3;\n          }\n          pEVar10 = aux->symtab + uVar17;\n          bVar7 = pEVar10->st_value;\n          iVar18 = local_54 + (int)pEVar10->st_value;\n          iVar9 = *(int *)((int)&pEVar10->st_value + 4);\n          local_44 = iVar18 - (uVar12 + (int)arm_sec->sec->sh_addr);\n          uVar1 = (filedata->file_header).e_machine;\n          if (uVar1 == 0x28) {\n            pbVar11 = (byte *)elf_arm_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (!bVar23) {\n              iVar13 = 0xb;\n              pbVar19 = pbVar11;\n              pbVar20 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar13 == 0) break;\n                iVar13 = iVar13 + -1;\n                bVar21 = *pbVar19 < *pbVar20;\n                bVar23 = *pbVar19 == *pbVar20;\n                pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n              } while (bVar23);\n              bVar22 = false;\n              bVar21 = (!bVar21 && !bVar23) == bVar21;\n              if (!bVar21) {\n                iVar13 = 0xd;\n                pbVar19 = pbVar11;\n                pbVar20 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar13 == 0) break;\n                  iVar13 = iVar13 + -1;\n                  bVar22 = *pbVar19 < *pbVar20;\n                  bVar21 = *pbVar19 == *pbVar20;\n                  pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                  pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar22 && !bVar21) != bVar22) {\n                  pcVar8 = (char *)dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(pcVar8,pbVar11);\n                  local_64 = arm_sec->rela;\n                  local_4c = arm_sec->nrelas;\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30._0_4_ =\n                     (elf_vma)(local_44 & 0x7fffffff | (uint)(elf_vma)local_30 & 0x80000000);\n                addr->section = (ushort)pEVar10->st_shndx;\n                *(uint *)((int)&addr->offset + 4) =\n                     local_50 + iVar9 + (uint)CARRY4(local_54,(uint)bVar7);\n                *(int *)&addr->offset = iVar18;\n                if (sym_name != (bfd_vma *)0x0) {\n                  uVar5 = pEVar10->st_name;\n                  *(undefined4 *)((int)sym_name + 4) = 0;\n                  *(ulong *)sym_name = uVar5;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar8 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar11 = (byte *)(uVar3 & 0xff);\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n          }\n          else {\n            if (uVar1 != 0x8c) {\n              pcVar8 = (char *)dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(pcVar8);\n              goto LAB_000322a3;\n            }\n            pbVar11 = (byte *)elf_tic6x_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (bVar23) {\n              pcVar8 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar13 = 0xd;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar21 = *pbVar19 < *pbVar20;\n              bVar23 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar23);\n            bVar22 = false;\n            bVar21 = (!bVar21 && !bVar23) == bVar21;\n            if (bVar21) goto LAB_00032500;\n            iVar13 = 0xf;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar22 = *pbVar19 < *pbVar20;\n              bVar21 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar21);\n            if ((!bVar22 && !bVar21) == bVar22) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            pcVar8 = (char *)dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(pcVar8,pbVar11);\n          local_64 = arm_sec->rela;\n          local_4c = arm_sec->nrelas;\n        }\n      }\n      else {\n        pcVar8 = (char *)dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(pcVar8,uVar12);\n        local_64 = arm_sec->rela;\n        local_4c = arm_sec->nrelas;\n      }\nLAB_00032500:\n      pEVar15 = pEVar15 + 1;\n      if (pEVar15 == local_64 + local_4c) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }" { (expression_statement "local_30._0_4_ = (*byte_get)((uchar *)((int)&arm_sec_00->data + (uint)word_offset),4);" (assignment_expression "local_30._0_4_ = (*byte_get)((uchar *)((int)&arm_sec_00->data + (uint)word_offset),4)" (field_expression "local_30._0_4_" identifier . field_identifier) = (call_expression "(*byte_get)((uchar *)((int)&arm_sec_00->data + (uint)word_offset),4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "((uchar *)((int)&arm_sec_00->data + (uint)word_offset),4)" ( (cast_expression "(uchar *)((int)&arm_sec_00->data + (uint)word_offset)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&arm_sec_00->data + (uint)word_offset)" ( (binary_expression "(int)&arm_sec_00->data + (uint)word_offset" (cast_expression "(int)&arm_sec_00->data" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&arm_sec_00->data" & (field_expression "arm_sec_00->data" identifier -> field_identifier))) + (cast_expression "(uint)word_offset" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) , number_literal )))) ;) (expression_statement "local_64 = arm_sec->rela;" (assignment_expression "local_64 = arm_sec->rela" identifier = (field_expression "arm_sec->rela" identifier -> field_identifier)) ;) (if_statement "if (local_64 == (Elf_Internal_Rela *)0x0) {\n                    /* WARNING: Store size is inaccurate */\n        *(elf_vma *)wordp = (elf_vma)local_30;\n        return 1;\n      }" if (parenthesized_expression "(local_64 == (Elf_Internal_Rela *)0x0)" ( (binary_expression "local_64 == (Elf_Internal_Rela *)0x0" identifier == (cast_expression "(Elf_Internal_Rela *)0x0" ( (type_descriptor "Elf_Internal_Rela *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Store size is inaccurate */\n        *(elf_vma *)wordp = (elf_vma)local_30;\n        return 1;\n      }" { comment (expression_statement "*(elf_vma *)wordp = (elf_vma)local_30;" (assignment_expression "*(elf_vma *)wordp = (elf_vma)local_30" (pointer_expression "*(elf_vma *)wordp" * (cast_expression "(elf_vma *)wordp" ( (type_descriptor "elf_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(elf_vma)local_30" ( (type_descriptor "elf_vma" type_identifier) ) identifier)) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "local_4c = arm_sec->nrelas;" (assignment_expression "local_4c = arm_sec->nrelas" identifier = (field_expression "arm_sec->nrelas" identifier -> field_identifier)) ;) (expression_statement "pEVar15 = arm_sec->next_rela;" (assignment_expression "pEVar15 = arm_sec->next_rela" identifier = (field_expression "arm_sec->next_rela" identifier -> field_identifier)) ;) (if_statement "if (pEVar15 == local_64 + local_4c) {\nLAB_000322a3:\n                    /* WARNING: Store size is inaccurate */\n        *(elf_vma *)wordp = (elf_vma)local_30;\n        arm_sec->next_rela = pEVar15;\n        return 1;\n      }" if (parenthesized_expression "(pEVar15 == local_64 + local_4c)" ( (binary_expression "pEVar15 == local_64 + local_4c" identifier == (binary_expression "local_64 + local_4c" identifier + identifier)) )) (compound_statement "{\nLAB_000322a3:\n                    /* WARNING: Store size is inaccurate */\n        *(elf_vma *)wordp = (elf_vma)local_30;\n        arm_sec->next_rela = pEVar15;\n        return 1;\n      }" { (labeled_statement "LAB_000322a3:\n                    /* WARNING: Store size is inaccurate */\n        *(elf_vma *)wordp = (elf_vma)local_30;" statement_identifier : comment (expression_statement "*(elf_vma *)wordp = (elf_vma)local_30;" (assignment_expression "*(elf_vma *)wordp = (elf_vma)local_30" (pointer_expression "*(elf_vma *)wordp" * (cast_expression "(elf_vma *)wordp" ( (type_descriptor "elf_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(elf_vma)local_30" ( (type_descriptor "elf_vma" type_identifier) ) identifier)) ;)) (expression_statement "arm_sec->next_rela = pEVar15;" (assignment_expression "arm_sec->next_rela = pEVar15" (field_expression "arm_sec->next_rela" identifier -> field_identifier) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) (labeled_statement "LAB_0003227f:\n      uVar12 = (uint)pEVar15->r_offset;" statement_identifier : (expression_statement "uVar12 = (uint)pEVar15->r_offset;" (assignment_expression "uVar12 = (uint)pEVar15->r_offset" identifier = (cast_expression "(uint)pEVar15->r_offset" ( (type_descriptor "uint" type_identifier) ) (field_expression "pEVar15->r_offset" identifier -> field_identifier))) ;)) (expression_statement "uVar16 = *(uint *)((int)&pEVar15->r_offset + 4);" (assignment_expression "uVar16 = *(uint *)((int)&pEVar15->r_offset + 4)" identifier = (pointer_expression "*(uint *)((int)&pEVar15->r_offset + 4)" * (cast_expression "(uint *)((int)&pEVar15->r_offset + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar15->r_offset + 4)" ( (binary_expression "(int)&pEVar15->r_offset + 4" (cast_expression "(int)&pEVar15->r_offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar15->r_offset" & (field_expression "pEVar15->r_offset" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if (word_offset._4_4_ < uVar16 ||\n          word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12)) {\n        if (bVar6) goto LAB_000322a3;\n        uVar12 = (uint)local_64->r_offset;\n        uVar16 = *(uint *)((int)&local_64->r_offset + 4);\n        pEVar15 = local_64;\n        if (word_offset._4_4_ < uVar16 ||\n            word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12)) goto LAB_000322a3;\n        bVar6 = true;\n      }" if (parenthesized_expression "(word_offset._4_4_ < uVar16 ||\n          word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12))" ( (binary_expression "word_offset._4_4_ < uVar16 ||\n          word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12)" (binary_expression "word_offset._4_4_ < uVar16" (field_expression "word_offset._4_4_" identifier . field_identifier) < identifier) || (binary_expression "word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12)" (binary_expression "word_offset._4_4_ - uVar16" (field_expression "word_offset._4_4_" identifier . field_identifier) - identifier) < (call_expression "(uint)((uint)word_offset < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)word_offset < uVar12)" ( (binary_expression "(uint)word_offset < uVar12" (cast_expression "(uint)word_offset" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) ))))) )) (compound_statement "{\n        if (bVar6) goto LAB_000322a3;\n        uVar12 = (uint)local_64->r_offset;\n        uVar16 = *(uint *)((int)&local_64->r_offset + 4);\n        pEVar15 = local_64;\n        if (word_offset._4_4_ < uVar16 ||\n            word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12)) goto LAB_000322a3;\n        bVar6 = true;\n      }" { (if_statement "if (bVar6) goto LAB_000322a3;" if (parenthesized_expression "(bVar6)" ( identifier )) (goto_statement "goto LAB_000322a3;" goto statement_identifier ;)) (expression_statement "uVar12 = (uint)local_64->r_offset;" (assignment_expression "uVar12 = (uint)local_64->r_offset" identifier = (cast_expression "(uint)local_64->r_offset" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_64->r_offset" identifier -> field_identifier))) ;) (expression_statement "uVar16 = *(uint *)((int)&local_64->r_offset + 4);" (assignment_expression "uVar16 = *(uint *)((int)&local_64->r_offset + 4)" identifier = (pointer_expression "*(uint *)((int)&local_64->r_offset + 4)" * (cast_expression "(uint *)((int)&local_64->r_offset + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_64->r_offset + 4)" ( (binary_expression "(int)&local_64->r_offset + 4" (cast_expression "(int)&local_64->r_offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_64->r_offset" & (field_expression "local_64->r_offset" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "pEVar15 = local_64;" (assignment_expression "pEVar15 = local_64" identifier = identifier) ;) (if_statement "if (word_offset._4_4_ < uVar16 ||\n            word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12)) goto LAB_000322a3;" if (parenthesized_expression "(word_offset._4_4_ < uVar16 ||\n            word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12))" ( (binary_expression "word_offset._4_4_ < uVar16 ||\n            word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12)" (binary_expression "word_offset._4_4_ < uVar16" (field_expression "word_offset._4_4_" identifier . field_identifier) < identifier) || (binary_expression "word_offset._4_4_ - uVar16 < (uint)((uint)word_offset < uVar12)" (binary_expression "word_offset._4_4_ - uVar16" (field_expression "word_offset._4_4_" identifier . field_identifier) - identifier) < (call_expression "(uint)((uint)word_offset < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)word_offset < uVar12)" ( (binary_expression "(uint)word_offset < uVar12" (cast_expression "(uint)word_offset" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) ))))) )) (goto_statement "goto LAB_000322a3;" goto statement_identifier ;)) (expression_statement "bVar6 = true;" (assignment_expression "bVar6 = true" identifier = true) ;) })) (if_statement "if ((uVar12 & 3) == 0) {\n        if ((word_offset._4_4_ <= uVar16 &&\n             (uint)(uVar12 < (uint)word_offset) <= uVar16 - word_offset._4_4_) &&\n           (aux->symtab != (Elf_Internal_Sym *)0x0)) {\n          uVar16 = arm_sec->rel_type;\n          if (uVar16 == 9) {\n            local_50 = 0;\n            local_54 = (uint)(elf_vma)local_30 & 0x7fffffff;\n            if (((uint)(elf_vma)local_30 & 0x40000000) != 0) {\n              local_50 = -1;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (uVar16 != 4) {\n              pcVar8 = (char *)dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(pcVar8,uVar16);\n              goto LAB_000322a3;\n            }\n            local_54 = (uint)pEVar15->r_addend;\n            local_50 = *(int *)((int)&pEVar15->r_addend + 4);\n          }\n          uVar16 = *(uint *)((int)&pEVar15->r_info + 4);\n          uVar3 = (uint)pEVar15->r_info;\n          uVar4 = aux->nsyms;\n          uVar17 = uVar3 >> 8 | uVar16 << 0x18;\n          if ((uint)(uVar17 < uVar4) <= uVar16 >> 8) {\n            pcVar8 = (char *)dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(pcVar8,uVar17,uVar4);\n            goto LAB_000322a3;\n          }\n          pEVar10 = aux->symtab + uVar17;\n          bVar7 = pEVar10->st_value;\n          iVar18 = local_54 + (int)pEVar10->st_value;\n          iVar9 = *(int *)((int)&pEVar10->st_value + 4);\n          local_44 = iVar18 - (uVar12 + (int)arm_sec->sec->sh_addr);\n          uVar1 = (filedata->file_header).e_machine;\n          if (uVar1 == 0x28) {\n            pbVar11 = (byte *)elf_arm_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (!bVar23) {\n              iVar13 = 0xb;\n              pbVar19 = pbVar11;\n              pbVar20 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar13 == 0) break;\n                iVar13 = iVar13 + -1;\n                bVar21 = *pbVar19 < *pbVar20;\n                bVar23 = *pbVar19 == *pbVar20;\n                pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n              } while (bVar23);\n              bVar22 = false;\n              bVar21 = (!bVar21 && !bVar23) == bVar21;\n              if (!bVar21) {\n                iVar13 = 0xd;\n                pbVar19 = pbVar11;\n                pbVar20 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar13 == 0) break;\n                  iVar13 = iVar13 + -1;\n                  bVar22 = *pbVar19 < *pbVar20;\n                  bVar21 = *pbVar19 == *pbVar20;\n                  pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                  pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar22 && !bVar21) != bVar22) {\n                  pcVar8 = (char *)dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(pcVar8,pbVar11);\n                  local_64 = arm_sec->rela;\n                  local_4c = arm_sec->nrelas;\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30._0_4_ =\n                     (elf_vma)(local_44 & 0x7fffffff | (uint)(elf_vma)local_30 & 0x80000000);\n                addr->section = (ushort)pEVar10->st_shndx;\n                *(uint *)((int)&addr->offset + 4) =\n                     local_50 + iVar9 + (uint)CARRY4(local_54,(uint)bVar7);\n                *(int *)&addr->offset = iVar18;\n                if (sym_name != (bfd_vma *)0x0) {\n                  uVar5 = pEVar10->st_name;\n                  *(undefined4 *)((int)sym_name + 4) = 0;\n                  *(ulong *)sym_name = uVar5;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar8 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar11 = (byte *)(uVar3 & 0xff);\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n          }\n          else {\n            if (uVar1 != 0x8c) {\n              pcVar8 = (char *)dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(pcVar8);\n              goto LAB_000322a3;\n            }\n            pbVar11 = (byte *)elf_tic6x_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (bVar23) {\n              pcVar8 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar13 = 0xd;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar21 = *pbVar19 < *pbVar20;\n              bVar23 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar23);\n            bVar22 = false;\n            bVar21 = (!bVar21 && !bVar23) == bVar21;\n            if (bVar21) goto LAB_00032500;\n            iVar13 = 0xf;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar22 = *pbVar19 < *pbVar20;\n              bVar21 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar21);\n            if ((!bVar22 && !bVar21) == bVar22) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            pcVar8 = (char *)dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(pcVar8,pbVar11);\n          local_64 = arm_sec->rela;\n          local_4c = arm_sec->nrelas;\n        }\n      }\n      else {\n        pcVar8 = (char *)dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(pcVar8,uVar12);\n        local_64 = arm_sec->rela;\n        local_4c = arm_sec->nrelas;\n      }" if (parenthesized_expression "((uVar12 & 3) == 0)" ( (binary_expression "(uVar12 & 3) == 0" (parenthesized_expression "(uVar12 & 3)" ( (binary_expression "uVar12 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((word_offset._4_4_ <= uVar16 &&\n             (uint)(uVar12 < (uint)word_offset) <= uVar16 - word_offset._4_4_) &&\n           (aux->symtab != (Elf_Internal_Sym *)0x0)) {\n          uVar16 = arm_sec->rel_type;\n          if (uVar16 == 9) {\n            local_50 = 0;\n            local_54 = (uint)(elf_vma)local_30 & 0x7fffffff;\n            if (((uint)(elf_vma)local_30 & 0x40000000) != 0) {\n              local_50 = -1;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (uVar16 != 4) {\n              pcVar8 = (char *)dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(pcVar8,uVar16);\n              goto LAB_000322a3;\n            }\n            local_54 = (uint)pEVar15->r_addend;\n            local_50 = *(int *)((int)&pEVar15->r_addend + 4);\n          }\n          uVar16 = *(uint *)((int)&pEVar15->r_info + 4);\n          uVar3 = (uint)pEVar15->r_info;\n          uVar4 = aux->nsyms;\n          uVar17 = uVar3 >> 8 | uVar16 << 0x18;\n          if ((uint)(uVar17 < uVar4) <= uVar16 >> 8) {\n            pcVar8 = (char *)dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(pcVar8,uVar17,uVar4);\n            goto LAB_000322a3;\n          }\n          pEVar10 = aux->symtab + uVar17;\n          bVar7 = pEVar10->st_value;\n          iVar18 = local_54 + (int)pEVar10->st_value;\n          iVar9 = *(int *)((int)&pEVar10->st_value + 4);\n          local_44 = iVar18 - (uVar12 + (int)arm_sec->sec->sh_addr);\n          uVar1 = (filedata->file_header).e_machine;\n          if (uVar1 == 0x28) {\n            pbVar11 = (byte *)elf_arm_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (!bVar23) {\n              iVar13 = 0xb;\n              pbVar19 = pbVar11;\n              pbVar20 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar13 == 0) break;\n                iVar13 = iVar13 + -1;\n                bVar21 = *pbVar19 < *pbVar20;\n                bVar23 = *pbVar19 == *pbVar20;\n                pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n              } while (bVar23);\n              bVar22 = false;\n              bVar21 = (!bVar21 && !bVar23) == bVar21;\n              if (!bVar21) {\n                iVar13 = 0xd;\n                pbVar19 = pbVar11;\n                pbVar20 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar13 == 0) break;\n                  iVar13 = iVar13 + -1;\n                  bVar22 = *pbVar19 < *pbVar20;\n                  bVar21 = *pbVar19 == *pbVar20;\n                  pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                  pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar22 && !bVar21) != bVar22) {\n                  pcVar8 = (char *)dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(pcVar8,pbVar11);\n                  local_64 = arm_sec->rela;\n                  local_4c = arm_sec->nrelas;\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30._0_4_ =\n                     (elf_vma)(local_44 & 0x7fffffff | (uint)(elf_vma)local_30 & 0x80000000);\n                addr->section = (ushort)pEVar10->st_shndx;\n                *(uint *)((int)&addr->offset + 4) =\n                     local_50 + iVar9 + (uint)CARRY4(local_54,(uint)bVar7);\n                *(int *)&addr->offset = iVar18;\n                if (sym_name != (bfd_vma *)0x0) {\n                  uVar5 = pEVar10->st_name;\n                  *(undefined4 *)((int)sym_name + 4) = 0;\n                  *(ulong *)sym_name = uVar5;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar8 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar11 = (byte *)(uVar3 & 0xff);\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n          }\n          else {\n            if (uVar1 != 0x8c) {\n              pcVar8 = (char *)dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(pcVar8);\n              goto LAB_000322a3;\n            }\n            pbVar11 = (byte *)elf_tic6x_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (bVar23) {\n              pcVar8 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar13 = 0xd;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar21 = *pbVar19 < *pbVar20;\n              bVar23 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar23);\n            bVar22 = false;\n            bVar21 = (!bVar21 && !bVar23) == bVar21;\n            if (bVar21) goto LAB_00032500;\n            iVar13 = 0xf;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar22 = *pbVar19 < *pbVar20;\n              bVar21 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar21);\n            if ((!bVar22 && !bVar21) == bVar22) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            pcVar8 = (char *)dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(pcVar8,pbVar11);\n          local_64 = arm_sec->rela;\n          local_4c = arm_sec->nrelas;\n        }\n      }" { (if_statement "if ((word_offset._4_4_ <= uVar16 &&\n             (uint)(uVar12 < (uint)word_offset) <= uVar16 - word_offset._4_4_) &&\n           (aux->symtab != (Elf_Internal_Sym *)0x0)) {\n          uVar16 = arm_sec->rel_type;\n          if (uVar16 == 9) {\n            local_50 = 0;\n            local_54 = (uint)(elf_vma)local_30 & 0x7fffffff;\n            if (((uint)(elf_vma)local_30 & 0x40000000) != 0) {\n              local_50 = -1;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (uVar16 != 4) {\n              pcVar8 = (char *)dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(pcVar8,uVar16);\n              goto LAB_000322a3;\n            }\n            local_54 = (uint)pEVar15->r_addend;\n            local_50 = *(int *)((int)&pEVar15->r_addend + 4);\n          }\n          uVar16 = *(uint *)((int)&pEVar15->r_info + 4);\n          uVar3 = (uint)pEVar15->r_info;\n          uVar4 = aux->nsyms;\n          uVar17 = uVar3 >> 8 | uVar16 << 0x18;\n          if ((uint)(uVar17 < uVar4) <= uVar16 >> 8) {\n            pcVar8 = (char *)dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(pcVar8,uVar17,uVar4);\n            goto LAB_000322a3;\n          }\n          pEVar10 = aux->symtab + uVar17;\n          bVar7 = pEVar10->st_value;\n          iVar18 = local_54 + (int)pEVar10->st_value;\n          iVar9 = *(int *)((int)&pEVar10->st_value + 4);\n          local_44 = iVar18 - (uVar12 + (int)arm_sec->sec->sh_addr);\n          uVar1 = (filedata->file_header).e_machine;\n          if (uVar1 == 0x28) {\n            pbVar11 = (byte *)elf_arm_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (!bVar23) {\n              iVar13 = 0xb;\n              pbVar19 = pbVar11;\n              pbVar20 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar13 == 0) break;\n                iVar13 = iVar13 + -1;\n                bVar21 = *pbVar19 < *pbVar20;\n                bVar23 = *pbVar19 == *pbVar20;\n                pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n              } while (bVar23);\n              bVar22 = false;\n              bVar21 = (!bVar21 && !bVar23) == bVar21;\n              if (!bVar21) {\n                iVar13 = 0xd;\n                pbVar19 = pbVar11;\n                pbVar20 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar13 == 0) break;\n                  iVar13 = iVar13 + -1;\n                  bVar22 = *pbVar19 < *pbVar20;\n                  bVar21 = *pbVar19 == *pbVar20;\n                  pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                  pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar22 && !bVar21) != bVar22) {\n                  pcVar8 = (char *)dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(pcVar8,pbVar11);\n                  local_64 = arm_sec->rela;\n                  local_4c = arm_sec->nrelas;\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30._0_4_ =\n                     (elf_vma)(local_44 & 0x7fffffff | (uint)(elf_vma)local_30 & 0x80000000);\n                addr->section = (ushort)pEVar10->st_shndx;\n                *(uint *)((int)&addr->offset + 4) =\n                     local_50 + iVar9 + (uint)CARRY4(local_54,(uint)bVar7);\n                *(int *)&addr->offset = iVar18;\n                if (sym_name != (bfd_vma *)0x0) {\n                  uVar5 = pEVar10->st_name;\n                  *(undefined4 *)((int)sym_name + 4) = 0;\n                  *(ulong *)sym_name = uVar5;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar8 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar11 = (byte *)(uVar3 & 0xff);\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n          }\n          else {\n            if (uVar1 != 0x8c) {\n              pcVar8 = (char *)dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(pcVar8);\n              goto LAB_000322a3;\n            }\n            pbVar11 = (byte *)elf_tic6x_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (bVar23) {\n              pcVar8 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar13 = 0xd;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar21 = *pbVar19 < *pbVar20;\n              bVar23 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar23);\n            bVar22 = false;\n            bVar21 = (!bVar21 && !bVar23) == bVar21;\n            if (bVar21) goto LAB_00032500;\n            iVar13 = 0xf;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar22 = *pbVar19 < *pbVar20;\n              bVar21 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar21);\n            if ((!bVar22 && !bVar21) == bVar22) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            pcVar8 = (char *)dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(pcVar8,pbVar11);\n          local_64 = arm_sec->rela;\n          local_4c = arm_sec->nrelas;\n        }" if (parenthesized_expression "((word_offset._4_4_ <= uVar16 &&\n             (uint)(uVar12 < (uint)word_offset) <= uVar16 - word_offset._4_4_) &&\n           (aux->symtab != (Elf_Internal_Sym *)0x0))" ( (binary_expression "(word_offset._4_4_ <= uVar16 &&\n             (uint)(uVar12 < (uint)word_offset) <= uVar16 - word_offset._4_4_) &&\n           (aux->symtab != (Elf_Internal_Sym *)0x0)" (parenthesized_expression "(word_offset._4_4_ <= uVar16 &&\n             (uint)(uVar12 < (uint)word_offset) <= uVar16 - word_offset._4_4_)" ( (binary_expression "word_offset._4_4_ <= uVar16 &&\n             (uint)(uVar12 < (uint)word_offset) <= uVar16 - word_offset._4_4_" (binary_expression "word_offset._4_4_ <= uVar16" (field_expression "word_offset._4_4_" identifier . field_identifier) <= identifier) && (binary_expression "(uint)(uVar12 < (uint)word_offset) <= uVar16 - word_offset._4_4_" (call_expression "(uint)(uVar12 < (uint)word_offset)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 < (uint)word_offset)" ( (binary_expression "uVar12 < (uint)word_offset" identifier < (cast_expression "(uint)word_offset" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) <= (binary_expression "uVar16 - word_offset._4_4_" identifier - (field_expression "word_offset._4_4_" identifier . field_identifier)))) )) && (parenthesized_expression "(aux->symtab != (Elf_Internal_Sym *)0x0)" ( (binary_expression "aux->symtab != (Elf_Internal_Sym *)0x0" (field_expression "aux->symtab" identifier -> field_identifier) != (cast_expression "(Elf_Internal_Sym *)0x0" ( (type_descriptor "Elf_Internal_Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          uVar16 = arm_sec->rel_type;\n          if (uVar16 == 9) {\n            local_50 = 0;\n            local_54 = (uint)(elf_vma)local_30 & 0x7fffffff;\n            if (((uint)(elf_vma)local_30 & 0x40000000) != 0) {\n              local_50 = -1;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (uVar16 != 4) {\n              pcVar8 = (char *)dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(pcVar8,uVar16);\n              goto LAB_000322a3;\n            }\n            local_54 = (uint)pEVar15->r_addend;\n            local_50 = *(int *)((int)&pEVar15->r_addend + 4);\n          }\n          uVar16 = *(uint *)((int)&pEVar15->r_info + 4);\n          uVar3 = (uint)pEVar15->r_info;\n          uVar4 = aux->nsyms;\n          uVar17 = uVar3 >> 8 | uVar16 << 0x18;\n          if ((uint)(uVar17 < uVar4) <= uVar16 >> 8) {\n            pcVar8 = (char *)dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(pcVar8,uVar17,uVar4);\n            goto LAB_000322a3;\n          }\n          pEVar10 = aux->symtab + uVar17;\n          bVar7 = pEVar10->st_value;\n          iVar18 = local_54 + (int)pEVar10->st_value;\n          iVar9 = *(int *)((int)&pEVar10->st_value + 4);\n          local_44 = iVar18 - (uVar12 + (int)arm_sec->sec->sh_addr);\n          uVar1 = (filedata->file_header).e_machine;\n          if (uVar1 == 0x28) {\n            pbVar11 = (byte *)elf_arm_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (!bVar23) {\n              iVar13 = 0xb;\n              pbVar19 = pbVar11;\n              pbVar20 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar13 == 0) break;\n                iVar13 = iVar13 + -1;\n                bVar21 = *pbVar19 < *pbVar20;\n                bVar23 = *pbVar19 == *pbVar20;\n                pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n              } while (bVar23);\n              bVar22 = false;\n              bVar21 = (!bVar21 && !bVar23) == bVar21;\n              if (!bVar21) {\n                iVar13 = 0xd;\n                pbVar19 = pbVar11;\n                pbVar20 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar13 == 0) break;\n                  iVar13 = iVar13 + -1;\n                  bVar22 = *pbVar19 < *pbVar20;\n                  bVar21 = *pbVar19 == *pbVar20;\n                  pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                  pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar22 && !bVar21) != bVar22) {\n                  pcVar8 = (char *)dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(pcVar8,pbVar11);\n                  local_64 = arm_sec->rela;\n                  local_4c = arm_sec->nrelas;\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30._0_4_ =\n                     (elf_vma)(local_44 & 0x7fffffff | (uint)(elf_vma)local_30 & 0x80000000);\n                addr->section = (ushort)pEVar10->st_shndx;\n                *(uint *)((int)&addr->offset + 4) =\n                     local_50 + iVar9 + (uint)CARRY4(local_54,(uint)bVar7);\n                *(int *)&addr->offset = iVar18;\n                if (sym_name != (bfd_vma *)0x0) {\n                  uVar5 = pEVar10->st_name;\n                  *(undefined4 *)((int)sym_name + 4) = 0;\n                  *(ulong *)sym_name = uVar5;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar8 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar11 = (byte *)(uVar3 & 0xff);\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n          }\n          else {\n            if (uVar1 != 0x8c) {\n              pcVar8 = (char *)dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(pcVar8);\n              goto LAB_000322a3;\n            }\n            pbVar11 = (byte *)elf_tic6x_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (bVar23) {\n              pcVar8 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar13 = 0xd;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar21 = *pbVar19 < *pbVar20;\n              bVar23 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar23);\n            bVar22 = false;\n            bVar21 = (!bVar21 && !bVar23) == bVar21;\n            if (bVar21) goto LAB_00032500;\n            iVar13 = 0xf;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar22 = *pbVar19 < *pbVar20;\n              bVar21 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar21);\n            if ((!bVar22 && !bVar21) == bVar22) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            pcVar8 = (char *)dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(pcVar8,pbVar11);\n          local_64 = arm_sec->rela;\n          local_4c = arm_sec->nrelas;\n        }" { (expression_statement "uVar16 = arm_sec->rel_type;" (assignment_expression "uVar16 = arm_sec->rel_type" identifier = (field_expression "arm_sec->rel_type" identifier -> field_identifier)) ;) (if_statement "if (uVar16 == 9) {\n            local_50 = 0;\n            local_54 = (uint)(elf_vma)local_30 & 0x7fffffff;\n            if (((uint)(elf_vma)local_30 & 0x40000000) != 0) {\n              local_50 = -1;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (uVar16 != 4) {\n              pcVar8 = (char *)dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(pcVar8,uVar16);\n              goto LAB_000322a3;\n            }\n            local_54 = (uint)pEVar15->r_addend;\n            local_50 = *(int *)((int)&pEVar15->r_addend + 4);\n          }" if (parenthesized_expression "(uVar16 == 9)" ( (binary_expression "uVar16 == 9" identifier == number_literal) )) (compound_statement "{\n            local_50 = 0;\n            local_54 = (uint)(elf_vma)local_30 & 0x7fffffff;\n            if (((uint)(elf_vma)local_30 & 0x40000000) != 0) {\n              local_50 = -1;\n              local_54 = local_54 | 0x80000000;\n            }\n          }" { (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_54 = (uint)(elf_vma)local_30 & 0x7fffffff;" (assignment_expression "local_54 = (uint)(elf_vma)local_30 & 0x7fffffff" identifier = (binary_expression "(uint)(elf_vma)local_30 & 0x7fffffff" (cast_expression "(uint)(elf_vma)local_30" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(elf_vma)local_30" ( (type_descriptor "elf_vma" type_identifier) ) identifier)) & number_literal)) ;) (if_statement "if (((uint)(elf_vma)local_30 & 0x40000000) != 0) {\n              local_50 = -1;\n              local_54 = local_54 | 0x80000000;\n            }" if (parenthesized_expression "(((uint)(elf_vma)local_30 & 0x40000000) != 0)" ( (binary_expression "((uint)(elf_vma)local_30 & 0x40000000) != 0" (parenthesized_expression "((uint)(elf_vma)local_30 & 0x40000000)" ( (binary_expression "(uint)(elf_vma)local_30 & 0x40000000" (cast_expression "(uint)(elf_vma)local_30" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(elf_vma)local_30" ( (type_descriptor "elf_vma" type_identifier) ) identifier)) & number_literal) )) != number_literal) )) (compound_statement "{\n              local_50 = -1;\n              local_54 = local_54 | 0x80000000;\n            }" { (expression_statement "local_50 = -1;" (assignment_expression "local_50 = -1" identifier = number_literal) ;) (expression_statement "local_54 = local_54 | 0x80000000;" (assignment_expression "local_54 = local_54 | 0x80000000" identifier = (binary_expression "local_54 | 0x80000000" identifier | number_literal)) ;) })) }) (else_clause "else {\n            if (uVar16 != 4) {\n              pcVar8 = (char *)dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(pcVar8,uVar16);\n              goto LAB_000322a3;\n            }\n            local_54 = (uint)pEVar15->r_addend;\n            local_50 = *(int *)((int)&pEVar15->r_addend + 4);\n          }" else (compound_statement "{\n            if (uVar16 != 4) {\n              pcVar8 = (char *)dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(pcVar8,uVar16);\n              goto LAB_000322a3;\n            }\n            local_54 = (uint)pEVar15->r_addend;\n            local_50 = *(int *)((int)&pEVar15->r_addend + 4);\n          }" { (if_statement "if (uVar16 != 4) {\n              pcVar8 = (char *)dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(pcVar8,uVar16);\n              goto LAB_000322a3;\n            }" if (parenthesized_expression "(uVar16 != 4)" ( (binary_expression "uVar16 != 4" identifier != number_literal) )) (compound_statement "{\n              pcVar8 = (char *)dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(pcVar8,uVar16);\n              goto LAB_000322a3;\n            }" { (expression_statement "pcVar8 = (char *)dcgettext(0,"Unknown section relocation type %d encountered\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"Unknown section relocation type %d encountered\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Unknown section relocation type %d encountered\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Unknown section relocation type %d encountered\n",5)" identifier (argument_list "(0,"Unknown section relocation type %d encountered\n",5)" ( number_literal , (string_literal ""Unknown section relocation type %d encountered\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar8,uVar16);" (call_expression "error(pcVar8,uVar16)" identifier (argument_list "(pcVar8,uVar16)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_000322a3;" goto statement_identifier ;) })) (expression_statement "local_54 = (uint)pEVar15->r_addend;" (assignment_expression "local_54 = (uint)pEVar15->r_addend" identifier = (cast_expression "(uint)pEVar15->r_addend" ( (type_descriptor "uint" type_identifier) ) (field_expression "pEVar15->r_addend" identifier -> field_identifier))) ;) (expression_statement "local_50 = *(int *)((int)&pEVar15->r_addend + 4);" (assignment_expression "local_50 = *(int *)((int)&pEVar15->r_addend + 4)" identifier = (pointer_expression "*(int *)((int)&pEVar15->r_addend + 4)" * (cast_expression "(int *)((int)&pEVar15->r_addend + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar15->r_addend + 4)" ( (binary_expression "(int)&pEVar15->r_addend + 4" (cast_expression "(int)&pEVar15->r_addend" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar15->r_addend" & (field_expression "pEVar15->r_addend" identifier -> field_identifier))) + number_literal) ))))) ;) }))) (expression_statement "uVar16 = *(uint *)((int)&pEVar15->r_info + 4);" (assignment_expression "uVar16 = *(uint *)((int)&pEVar15->r_info + 4)" identifier = (pointer_expression "*(uint *)((int)&pEVar15->r_info + 4)" * (cast_expression "(uint *)((int)&pEVar15->r_info + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar15->r_info + 4)" ( (binary_expression "(int)&pEVar15->r_info + 4" (cast_expression "(int)&pEVar15->r_info" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar15->r_info" & (field_expression "pEVar15->r_info" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar3 = (uint)pEVar15->r_info;" (assignment_expression "uVar3 = (uint)pEVar15->r_info" identifier = (cast_expression "(uint)pEVar15->r_info" ( (type_descriptor "uint" type_identifier) ) (field_expression "pEVar15->r_info" identifier -> field_identifier))) ;) (expression_statement "uVar4 = aux->nsyms;" (assignment_expression "uVar4 = aux->nsyms" identifier = (field_expression "aux->nsyms" identifier -> field_identifier)) ;) (expression_statement "uVar17 = uVar3 >> 8 | uVar16 << 0x18;" (assignment_expression "uVar17 = uVar3 >> 8 | uVar16 << 0x18" identifier = (binary_expression "uVar3 >> 8 | uVar16 << 0x18" (binary_expression "uVar3 >> 8" identifier >> number_literal) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (if_statement "if ((uint)(uVar17 < uVar4) <= uVar16 >> 8) {\n            pcVar8 = (char *)dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(pcVar8,uVar17,uVar4);\n            goto LAB_000322a3;\n          }" if (parenthesized_expression "((uint)(uVar17 < uVar4) <= uVar16 >> 8)" ( (binary_expression "(uint)(uVar17 < uVar4) <= uVar16 >> 8" (call_expression "(uint)(uVar17 < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 < uVar4)" ( (binary_expression "uVar17 < uVar4" identifier < identifier) ))) <= (binary_expression "uVar16 >> 8" identifier >> number_literal)) )) (compound_statement "{\n            pcVar8 = (char *)dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(pcVar8,uVar17,uVar4);\n            goto LAB_000322a3;\n          }" { (expression_statement "pcVar8 = (char *)dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5)" identifier (argument_list "(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5)" ( number_literal , (string_literal ""Bad symbol index in unwind relocation (%lu > %lu)\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar8,uVar17,uVar4);" (call_expression "error(pcVar8,uVar17,uVar4)" identifier (argument_list "(pcVar8,uVar17,uVar4)" ( identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_000322a3;" goto statement_identifier ;) })) (expression_statement "pEVar10 = aux->symtab + uVar17;" (assignment_expression "pEVar10 = aux->symtab + uVar17" identifier = (binary_expression "aux->symtab + uVar17" (field_expression "aux->symtab" identifier -> field_identifier) + identifier)) ;) (expression_statement "bVar7 = pEVar10->st_value;" (assignment_expression "bVar7 = pEVar10->st_value" identifier = (field_expression "pEVar10->st_value" identifier -> field_identifier)) ;) (expression_statement "iVar18 = local_54 + (int)pEVar10->st_value;" (assignment_expression "iVar18 = local_54 + (int)pEVar10->st_value" identifier = (binary_expression "local_54 + (int)pEVar10->st_value" identifier + (cast_expression "(int)pEVar10->st_value" ( (type_descriptor "int" primitive_type) ) (field_expression "pEVar10->st_value" identifier -> field_identifier)))) ;) (expression_statement "iVar9 = *(int *)((int)&pEVar10->st_value + 4);" (assignment_expression "iVar9 = *(int *)((int)&pEVar10->st_value + 4)" identifier = (pointer_expression "*(int *)((int)&pEVar10->st_value + 4)" * (cast_expression "(int *)((int)&pEVar10->st_value + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar10->st_value + 4)" ( (binary_expression "(int)&pEVar10->st_value + 4" (cast_expression "(int)&pEVar10->st_value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar10->st_value" & (field_expression "pEVar10->st_value" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "local_44 = iVar18 - (uVar12 + (int)arm_sec->sec->sh_addr);" (assignment_expression "local_44 = iVar18 - (uVar12 + (int)arm_sec->sec->sh_addr)" identifier = (binary_expression "iVar18 - (uVar12 + (int)arm_sec->sec->sh_addr)" identifier - (parenthesized_expression "(uVar12 + (int)arm_sec->sec->sh_addr)" ( (binary_expression "uVar12 + (int)arm_sec->sec->sh_addr" identifier + (cast_expression "(int)arm_sec->sec->sh_addr" ( (type_descriptor "int" primitive_type) ) (field_expression "arm_sec->sec->sh_addr" (field_expression "arm_sec->sec" identifier -> field_identifier) -> field_identifier))) )))) ;) (expression_statement "uVar1 = (filedata->file_header).e_machine;" (assignment_expression "uVar1 = (filedata->file_header).e_machine" identifier = (field_expression "(filedata->file_header).e_machine" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (uVar1 == 0x28) {\n            pbVar11 = (byte *)elf_arm_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (!bVar23) {\n              iVar13 = 0xb;\n              pbVar19 = pbVar11;\n              pbVar20 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar13 == 0) break;\n                iVar13 = iVar13 + -1;\n                bVar21 = *pbVar19 < *pbVar20;\n                bVar23 = *pbVar19 == *pbVar20;\n                pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n              } while (bVar23);\n              bVar22 = false;\n              bVar21 = (!bVar21 && !bVar23) == bVar21;\n              if (!bVar21) {\n                iVar13 = 0xd;\n                pbVar19 = pbVar11;\n                pbVar20 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar13 == 0) break;\n                  iVar13 = iVar13 + -1;\n                  bVar22 = *pbVar19 < *pbVar20;\n                  bVar21 = *pbVar19 == *pbVar20;\n                  pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                  pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar22 && !bVar21) != bVar22) {\n                  pcVar8 = (char *)dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(pcVar8,pbVar11);\n                  local_64 = arm_sec->rela;\n                  local_4c = arm_sec->nrelas;\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30._0_4_ =\n                     (elf_vma)(local_44 & 0x7fffffff | (uint)(elf_vma)local_30 & 0x80000000);\n                addr->section = (ushort)pEVar10->st_shndx;\n                *(uint *)((int)&addr->offset + 4) =\n                     local_50 + iVar9 + (uint)CARRY4(local_54,(uint)bVar7);\n                *(int *)&addr->offset = iVar18;\n                if (sym_name != (bfd_vma *)0x0) {\n                  uVar5 = pEVar10->st_name;\n                  *(undefined4 *)((int)sym_name + 4) = 0;\n                  *(ulong *)sym_name = uVar5;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar8 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar11 = (byte *)(uVar3 & 0xff);\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n          }\n          else {\n            if (uVar1 != 0x8c) {\n              pcVar8 = (char *)dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(pcVar8);\n              goto LAB_000322a3;\n            }\n            pbVar11 = (byte *)elf_tic6x_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (bVar23) {\n              pcVar8 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar13 = 0xd;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar21 = *pbVar19 < *pbVar20;\n              bVar23 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar23);\n            bVar22 = false;\n            bVar21 = (!bVar21 && !bVar23) == bVar21;\n            if (bVar21) goto LAB_00032500;\n            iVar13 = 0xf;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar22 = *pbVar19 < *pbVar20;\n              bVar21 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar21);\n            if ((!bVar22 && !bVar21) == bVar22) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            pcVar8 = (char *)dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }" if (parenthesized_expression "(uVar1 == 0x28)" ( (binary_expression "uVar1 == 0x28" identifier == number_literal) )) (compound_statement "{\n            pbVar11 = (byte *)elf_arm_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (!bVar23) {\n              iVar13 = 0xb;\n              pbVar19 = pbVar11;\n              pbVar20 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar13 == 0) break;\n                iVar13 = iVar13 + -1;\n                bVar21 = *pbVar19 < *pbVar20;\n                bVar23 = *pbVar19 == *pbVar20;\n                pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n              } while (bVar23);\n              bVar22 = false;\n              bVar21 = (!bVar21 && !bVar23) == bVar21;\n              if (!bVar21) {\n                iVar13 = 0xd;\n                pbVar19 = pbVar11;\n                pbVar20 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar13 == 0) break;\n                  iVar13 = iVar13 + -1;\n                  bVar22 = *pbVar19 < *pbVar20;\n                  bVar21 = *pbVar19 == *pbVar20;\n                  pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                  pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar22 && !bVar21) != bVar22) {\n                  pcVar8 = (char *)dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(pcVar8,pbVar11);\n                  local_64 = arm_sec->rela;\n                  local_4c = arm_sec->nrelas;\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30._0_4_ =\n                     (elf_vma)(local_44 & 0x7fffffff | (uint)(elf_vma)local_30 & 0x80000000);\n                addr->section = (ushort)pEVar10->st_shndx;\n                *(uint *)((int)&addr->offset + 4) =\n                     local_50 + iVar9 + (uint)CARRY4(local_54,(uint)bVar7);\n                *(int *)&addr->offset = iVar18;\n                if (sym_name != (bfd_vma *)0x0) {\n                  uVar5 = pEVar10->st_name;\n                  *(undefined4 *)((int)sym_name + 4) = 0;\n                  *(ulong *)sym_name = uVar5;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar8 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar11 = (byte *)(uVar3 & 0xff);\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n          }" { (expression_statement "pbVar11 = (byte *)elf_arm_reloc_type(uVar3 & 0xff);" (assignment_expression "pbVar11 = (byte *)elf_arm_reloc_type(uVar3 & 0xff)" identifier = (cast_expression "(byte *)elf_arm_reloc_type(uVar3 & 0xff)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "elf_arm_reloc_type(uVar3 & 0xff)" identifier (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))))) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar23 = pbVar11 == (byte *)0x0;" (assignment_expression "bVar23 = pbVar11 == (byte *)0x0" identifier = (binary_expression "pbVar11 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (!bVar23) {\n              iVar13 = 0xb;\n              pbVar19 = pbVar11;\n              pbVar20 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar13 == 0) break;\n                iVar13 = iVar13 + -1;\n                bVar21 = *pbVar19 < *pbVar20;\n                bVar23 = *pbVar19 == *pbVar20;\n                pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n              } while (bVar23);\n              bVar22 = false;\n              bVar21 = (!bVar21 && !bVar23) == bVar21;\n              if (!bVar21) {\n                iVar13 = 0xd;\n                pbVar19 = pbVar11;\n                pbVar20 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar13 == 0) break;\n                  iVar13 = iVar13 + -1;\n                  bVar22 = *pbVar19 < *pbVar20;\n                  bVar21 = *pbVar19 == *pbVar20;\n                  pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                  pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar22 && !bVar21) != bVar22) {\n                  pcVar8 = (char *)dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(pcVar8,pbVar11);\n                  local_64 = arm_sec->rela;\n                  local_4c = arm_sec->nrelas;\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30._0_4_ =\n                     (elf_vma)(local_44 & 0x7fffffff | (uint)(elf_vma)local_30 & 0x80000000);\n                addr->section = (ushort)pEVar10->st_shndx;\n                *(uint *)((int)&addr->offset + 4) =\n                     local_50 + iVar9 + (uint)CARRY4(local_54,(uint)bVar7);\n                *(int *)&addr->offset = iVar18;\n                if (sym_name != (bfd_vma *)0x0) {\n                  uVar5 = pEVar10->st_name;\n                  *(undefined4 *)((int)sym_name + 4) = 0;\n                  *(ulong *)sym_name = uVar5;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n              iVar13 = 0xb;\n              pbVar19 = pbVar11;\n              pbVar20 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar13 == 0) break;\n                iVar13 = iVar13 + -1;\n                bVar21 = *pbVar19 < *pbVar20;\n                bVar23 = *pbVar19 == *pbVar20;\n                pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n              } while (bVar23);\n              bVar22 = false;\n              bVar21 = (!bVar21 && !bVar23) == bVar21;\n              if (!bVar21) {\n                iVar13 = 0xd;\n                pbVar19 = pbVar11;\n                pbVar20 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar13 == 0) break;\n                  iVar13 = iVar13 + -1;\n                  bVar22 = *pbVar19 < *pbVar20;\n                  bVar21 = *pbVar19 == *pbVar20;\n                  pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                  pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar22 && !bVar21) != bVar22) {\n                  pcVar8 = (char *)dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(pcVar8,pbVar11);\n                  local_64 = arm_sec->rela;\n                  local_4c = arm_sec->nrelas;\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30._0_4_ =\n                     (elf_vma)(local_44 & 0x7fffffff | (uint)(elf_vma)local_30 & 0x80000000);\n                addr->section = (ushort)pEVar10->st_shndx;\n                *(uint *)((int)&addr->offset + 4) =\n                     local_50 + iVar9 + (uint)CARRY4(local_54,(uint)bVar7);\n                *(int *)&addr->offset = iVar18;\n                if (sym_name != (bfd_vma *)0x0) {\n                  uVar5 = pEVar10->st_name;\n                  *(undefined4 *)((int)sym_name + 4) = 0;\n                  *(ulong *)sym_name = uVar5;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }" { (expression_statement "iVar13 = 0xb;" (assignment_expression "iVar13 = 0xb" identifier = number_literal) ;) (expression_statement "pbVar19 = pbVar11;" (assignment_expression "pbVar19 = pbVar11" identifier = identifier) ;) (expression_statement "pbVar20 = (byte *)"R_ARM_NONE";" (assignment_expression "pbVar20 = (byte *)"R_ARM_NONE"" identifier = (cast_expression "(byte *)"R_ARM_NONE"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""R_ARM_NONE"" " string_content "))) ;) (do_statement "do {\n                if (iVar13 == 0) break;\n                iVar13 = iVar13 + -1;\n                bVar21 = *pbVar19 < *pbVar20;\n                bVar23 = *pbVar19 == *pbVar20;\n                pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n              } while (bVar23);" do (compound_statement "{\n                if (iVar13 == 0) break;\n                iVar13 = iVar13 + -1;\n                bVar21 = *pbVar19 < *pbVar20;\n                bVar23 = *pbVar19 == *pbVar20;\n                pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n              }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar19 < *pbVar20;" (assignment_expression "bVar21 = *pbVar19 < *pbVar20" identifier = (binary_expression "*pbVar19 < *pbVar20" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar23 = *pbVar19 == *pbVar20;" (assignment_expression "bVar23 = *pbVar19 == *pbVar20" identifier = (binary_expression "*pbVar19 == *pbVar20" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar21 = (!bVar21 && !bVar23) == bVar21;" (assignment_expression "bVar21 = (!bVar21 && !bVar23) == bVar21" identifier = (binary_expression "(!bVar21 && !bVar23) == bVar21" (parenthesized_expression "(!bVar21 && !bVar23)" ( (binary_expression "!bVar21 && !bVar23" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar21) {\n                iVar13 = 0xd;\n                pbVar19 = pbVar11;\n                pbVar20 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar13 == 0) break;\n                  iVar13 = iVar13 + -1;\n                  bVar22 = *pbVar19 < *pbVar20;\n                  bVar21 = *pbVar19 == *pbVar20;\n                  pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                  pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar22 && !bVar21) != bVar22) {\n                  pcVar8 = (char *)dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(pcVar8,pbVar11);\n                  local_64 = arm_sec->rela;\n                  local_4c = arm_sec->nrelas;\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30._0_4_ =\n                     (elf_vma)(local_44 & 0x7fffffff | (uint)(elf_vma)local_30 & 0x80000000);\n                addr->section = (ushort)pEVar10->st_shndx;\n                *(uint *)((int)&addr->offset + 4) =\n                     local_50 + iVar9 + (uint)CARRY4(local_54,(uint)bVar7);\n                *(int *)&addr->offset = iVar18;\n                if (sym_name != (bfd_vma *)0x0) {\n                  uVar5 = pEVar10->st_name;\n                  *(undefined4 *)((int)sym_name + 4) = 0;\n                  *(ulong *)sym_name = uVar5;\n                }\n                goto LAB_000322a3;\n              }" if (parenthesized_expression "(!bVar21)" ( (unary_expression "!bVar21" ! identifier) )) (compound_statement "{\n                iVar13 = 0xd;\n                pbVar19 = pbVar11;\n                pbVar20 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar13 == 0) break;\n                  iVar13 = iVar13 + -1;\n                  bVar22 = *pbVar19 < *pbVar20;\n                  bVar21 = *pbVar19 == *pbVar20;\n                  pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                  pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                } while (bVar21);\n                if ((!bVar22 && !bVar21) != bVar22) {\n                  pcVar8 = (char *)dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(pcVar8,pbVar11);\n                  local_64 = arm_sec->rela;\n                  local_4c = arm_sec->nrelas;\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30._0_4_ =\n                     (elf_vma)(local_44 & 0x7fffffff | (uint)(elf_vma)local_30 & 0x80000000);\n                addr->section = (ushort)pEVar10->st_shndx;\n                *(uint *)((int)&addr->offset + 4) =\n                     local_50 + iVar9 + (uint)CARRY4(local_54,(uint)bVar7);\n                *(int *)&addr->offset = iVar18;\n                if (sym_name != (bfd_vma *)0x0) {\n                  uVar5 = pEVar10->st_name;\n                  *(undefined4 *)((int)sym_name + 4) = 0;\n                  *(ulong *)sym_name = uVar5;\n                }\n                goto LAB_000322a3;\n              }" { (expression_statement "iVar13 = 0xd;" (assignment_expression "iVar13 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar19 = pbVar11;" (assignment_expression "pbVar19 = pbVar11" identifier = identifier) ;) (expression_statement "pbVar20 = (byte *)"R_ARM_PREL31";" (assignment_expression "pbVar20 = (byte *)"R_ARM_PREL31"" identifier = (cast_expression "(byte *)"R_ARM_PREL31"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""R_ARM_PREL31"" " string_content "))) ;) (do_statement "do {\n                  if (iVar13 == 0) break;\n                  iVar13 = iVar13 + -1;\n                  bVar22 = *pbVar19 < *pbVar20;\n                  bVar21 = *pbVar19 == *pbVar20;\n                  pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                  pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                } while (bVar21);" do (compound_statement "{\n                  if (iVar13 == 0) break;\n                  iVar13 = iVar13 + -1;\n                  bVar22 = *pbVar19 < *pbVar20;\n                  bVar21 = *pbVar19 == *pbVar20;\n                  pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n                  pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n                }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar19 < *pbVar20;" (assignment_expression "bVar22 = *pbVar19 < *pbVar20" identifier = (binary_expression "*pbVar19 < *pbVar20" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar21 = *pbVar19 == *pbVar20;" (assignment_expression "bVar21 = *pbVar19 == *pbVar20" identifier = (binary_expression "*pbVar19 == *pbVar20" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar21)" ( identifier )) ;) (if_statement "if ((!bVar22 && !bVar21) != bVar22) {\n                  pcVar8 = (char *)dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(pcVar8,pbVar11);\n                  local_64 = arm_sec->rela;\n                  local_4c = arm_sec->nrelas;\n                  goto LAB_00032500;\n                }" if (parenthesized_expression "((!bVar22 && !bVar21) != bVar22)" ( (binary_expression "(!bVar22 && !bVar21) != bVar22" (parenthesized_expression "(!bVar22 && !bVar21)" ( (binary_expression "!bVar22 && !bVar21" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar21" ! identifier)) )) != identifier) )) (compound_statement "{\n                  pcVar8 = (char *)dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(pcVar8,pbVar11);\n                  local_64 = arm_sec->rela;\n                  local_4c = arm_sec->nrelas;\n                  goto LAB_00032500;\n                }" { (expression_statement "pcVar8 = (char *)dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5)" identifier (argument_list "(0,"Skipping unexpected ARM relocation type %s\n",5)" ( number_literal , (string_literal ""Skipping unexpected ARM relocation type %s\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar8,pbVar11);" (call_expression "warn(pcVar8,pbVar11)" identifier (argument_list "(pcVar8,pbVar11)" ( identifier , identifier ))) ;) (expression_statement "local_64 = arm_sec->rela;" (assignment_expression "local_64 = arm_sec->rela" identifier = (field_expression "arm_sec->rela" identifier -> field_identifier)) ;) (expression_statement "local_4c = arm_sec->nrelas;" (assignment_expression "local_4c = arm_sec->nrelas" identifier = (field_expression "arm_sec->nrelas" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00032500;" goto statement_identifier ;) })) (labeled_statement "LAB_0003245c:\n                local_30._0_4_ =\n                     (elf_vma)(local_44 & 0x7fffffff | (uint)(elf_vma)local_30 & 0x80000000);" statement_identifier : (expression_statement "local_30._0_4_ =\n                     (elf_vma)(local_44 & 0x7fffffff | (uint)(elf_vma)local_30 & 0x80000000);" (assignment_expression "local_30._0_4_ =\n                     (elf_vma)(local_44 & 0x7fffffff | (uint)(elf_vma)local_30 & 0x80000000)" (field_expression "local_30._0_4_" identifier . field_identifier) = (call_expression "(elf_vma)(local_44 & 0x7fffffff | (uint)(elf_vma)local_30 & 0x80000000)" (parenthesized_expression "(elf_vma)" ( identifier )) (argument_list "(local_44 & 0x7fffffff | (uint)(elf_vma)local_30 & 0x80000000)" ( (binary_expression "local_44 & 0x7fffffff | (uint)(elf_vma)local_30 & 0x80000000" (binary_expression "local_44 & 0x7fffffff" identifier & number_literal) | (binary_expression "(uint)(elf_vma)local_30 & 0x80000000" (cast_expression "(uint)(elf_vma)local_30" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(elf_vma)local_30" ( (type_descriptor "elf_vma" type_identifier) ) identifier)) & number_literal)) )))) ;)) (expression_statement "addr->section = (ushort)pEVar10->st_shndx;" (assignment_expression "addr->section = (ushort)pEVar10->st_shndx" (field_expression "addr->section" identifier -> field_identifier) = (cast_expression "(ushort)pEVar10->st_shndx" ( (type_descriptor "ushort" type_identifier) ) (field_expression "pEVar10->st_shndx" identifier -> field_identifier))) ;) (expression_statement "*(uint *)((int)&addr->offset + 4) =\n                     local_50 + iVar9 + (uint)CARRY4(local_54,(uint)bVar7);" (assignment_expression "*(uint *)((int)&addr->offset + 4) =\n                     local_50 + iVar9 + (uint)CARRY4(local_54,(uint)bVar7)" (pointer_expression "*(uint *)((int)&addr->offset + 4)" * (cast_expression "(uint *)((int)&addr->offset + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&addr->offset + 4)" ( (binary_expression "(int)&addr->offset + 4" (cast_expression "(int)&addr->offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&addr->offset" & (field_expression "addr->offset" identifier -> field_identifier))) + number_literal) )))) = (binary_expression "local_50 + iVar9 + (uint)CARRY4(local_54,(uint)bVar7)" (binary_expression "local_50 + iVar9" identifier + identifier) + (cast_expression "(uint)CARRY4(local_54,(uint)bVar7)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_54,(uint)bVar7)" identifier (argument_list "(local_54,(uint)bVar7)" ( identifier , (cast_expression "(uint)bVar7" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (expression_statement "*(int *)&addr->offset = iVar18;" (assignment_expression "*(int *)&addr->offset = iVar18" (pointer_expression "*(int *)&addr->offset" * (cast_expression "(int *)&addr->offset" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&addr->offset" & (field_expression "addr->offset" identifier -> field_identifier)))) = identifier) ;) (if_statement "if (sym_name != (bfd_vma *)0x0) {\n                  uVar5 = pEVar10->st_name;\n                  *(undefined4 *)((int)sym_name + 4) = 0;\n                  *(ulong *)sym_name = uVar5;\n                }" if (parenthesized_expression "(sym_name != (bfd_vma *)0x0)" ( (binary_expression "sym_name != (bfd_vma *)0x0" identifier != (cast_expression "(bfd_vma *)0x0" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  uVar5 = pEVar10->st_name;\n                  *(undefined4 *)((int)sym_name + 4) = 0;\n                  *(ulong *)sym_name = uVar5;\n                }" { (expression_statement "uVar5 = pEVar10->st_name;" (assignment_expression "uVar5 = pEVar10->st_name" identifier = (field_expression "pEVar10->st_name" identifier -> field_identifier)) ;) (expression_statement "*(undefined4 *)((int)sym_name + 4) = 0;" (assignment_expression "*(undefined4 *)((int)sym_name + 4) = 0" (pointer_expression "*(undefined4 *)((int)sym_name + 4)" * (cast_expression "(undefined4 *)((int)sym_name + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)sym_name + 4)" ( (binary_expression "(int)sym_name + 4" (cast_expression "(int)sym_name" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(ulong *)sym_name = uVar5;" (assignment_expression "*(ulong *)sym_name = uVar5" (pointer_expression "*(ulong *)sym_name" * (cast_expression "(ulong *)sym_name" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) })) (goto_statement "goto LAB_000322a3;" goto statement_identifier ;) })) (goto_statement "goto LAB_00032500;" goto statement_identifier ;) })) (expression_statement "pcVar8 = "Skipping unknown ARM relocation type: %d\n";" (assignment_expression "pcVar8 = "Skipping unknown ARM relocation type: %d\n"" identifier = (string_literal ""Skipping unknown ARM relocation type: %d\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_00032686:\n            pbVar11 = (byte *)(uVar3 & 0xff);" statement_identifier : (expression_statement "pbVar11 = (byte *)(uVar3 & 0xff);" (assignment_expression "pbVar11 = (byte *)(uVar3 & 0xff)" identifier = (cast_expression "(byte *)(uVar3 & 0xff)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) )))) ;)) (expression_statement "pcVar8 = (char *)dcgettext(0,pcVar8,5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,pcVar8,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar8,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar8,5)" identifier (argument_list "(0,pcVar8,5)" ( number_literal , identifier , number_literal ))))) ;) }) (else_clause "else {\n            if (uVar1 != 0x8c) {\n              pcVar8 = (char *)dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(pcVar8);\n              goto LAB_000322a3;\n            }\n            pbVar11 = (byte *)elf_tic6x_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (bVar23) {\n              pcVar8 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar13 = 0xd;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar21 = *pbVar19 < *pbVar20;\n              bVar23 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar23);\n            bVar22 = false;\n            bVar21 = (!bVar21 && !bVar23) == bVar21;\n            if (bVar21) goto LAB_00032500;\n            iVar13 = 0xf;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar22 = *pbVar19 < *pbVar20;\n              bVar21 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar21);\n            if ((!bVar22 && !bVar21) == bVar22) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            pcVar8 = (char *)dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }" else (compound_statement "{\n            if (uVar1 != 0x8c) {\n              pcVar8 = (char *)dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(pcVar8);\n              goto LAB_000322a3;\n            }\n            pbVar11 = (byte *)elf_tic6x_reloc_type(uVar3 & 0xff);\n            bVar21 = false;\n            bVar23 = pbVar11 == (byte *)0x0;\n            if (bVar23) {\n              pcVar8 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar13 = 0xd;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar21 = *pbVar19 < *pbVar20;\n              bVar23 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar23);\n            bVar22 = false;\n            bVar21 = (!bVar21 && !bVar23) == bVar21;\n            if (bVar21) goto LAB_00032500;\n            iVar13 = 0xf;\n            pbVar19 = pbVar11;\n            pbVar20 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar22 = *pbVar19 < *pbVar20;\n              bVar21 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar21);\n            if ((!bVar22 && !bVar21) == bVar22) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            pcVar8 = (char *)dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }" { (if_statement "if (uVar1 != 0x8c) {\n              pcVar8 = (char *)dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(pcVar8);\n              goto LAB_000322a3;\n            }" if (parenthesized_expression "(uVar1 != 0x8c)" ( (binary_expression "uVar1 != 0x8c" identifier != number_literal) )) (compound_statement "{\n              pcVar8 = (char *)dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(pcVar8);\n              goto LAB_000322a3;\n            }" { (expression_statement "pcVar8 = (char *)dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5)" identifier (argument_list "(0,"Only TI and ARM unwinders are currently supported\n",5)" ( number_literal , (string_literal ""Only TI and ARM unwinders are currently supported\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar8);" (call_expression "warn(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (goto_statement "goto LAB_000322a3;" goto statement_identifier ;) })) (expression_statement "pbVar11 = (byte *)elf_tic6x_reloc_type(uVar3 & 0xff);" (assignment_expression "pbVar11 = (byte *)elf_tic6x_reloc_type(uVar3 & 0xff)" identifier = (cast_expression "(byte *)elf_tic6x_reloc_type(uVar3 & 0xff)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "elf_tic6x_reloc_type(uVar3 & 0xff)" identifier (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))))) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar23 = pbVar11 == (byte *)0x0;" (assignment_expression "bVar23 = pbVar11 == (byte *)0x0" identifier = (binary_expression "pbVar11 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar23) {\n              pcVar8 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }" if (parenthesized_expression "(bVar23)" ( identifier )) (compound_statement "{\n              pcVar8 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }" { (expression_statement "pcVar8 = "Skipping unknown C6000 relocation type: %d\n";" (assignment_expression "pcVar8 = "Skipping unknown C6000 relocation type: %d\n"" identifier = (string_literal ""Skipping unknown C6000 relocation type: %d\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00032686;" goto statement_identifier ;) })) (expression_statement "iVar13 = 0xd;" (assignment_expression "iVar13 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar19 = pbVar11;" (assignment_expression "pbVar19 = pbVar11" identifier = identifier) ;) (expression_statement "pbVar20 = (byte *)"R_C6000_NONE";" (assignment_expression "pbVar20 = (byte *)"R_C6000_NONE"" identifier = (cast_expression "(byte *)"R_C6000_NONE"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""R_C6000_NONE"" " string_content "))) ;) (do_statement "do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar21 = *pbVar19 < *pbVar20;\n              bVar23 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar23);" do (compound_statement "{\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar21 = *pbVar19 < *pbVar20;\n              bVar23 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar19 < *pbVar20;" (assignment_expression "bVar21 = *pbVar19 < *pbVar20" identifier = (binary_expression "*pbVar19 < *pbVar20" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar23 = *pbVar19 == *pbVar20;" (assignment_expression "bVar23 = *pbVar19 == *pbVar20" identifier = (binary_expression "*pbVar19 == *pbVar20" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar21 = (!bVar21 && !bVar23) == bVar21;" (assignment_expression "bVar21 = (!bVar21 && !bVar23) == bVar21" identifier = (binary_expression "(!bVar21 && !bVar23) == bVar21" (parenthesized_expression "(!bVar21 && !bVar23)" ( (binary_expression "!bVar21 && !bVar23" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar21) goto LAB_00032500;" if (parenthesized_expression "(bVar21)" ( identifier )) (goto_statement "goto LAB_00032500;" goto statement_identifier ;)) (expression_statement "iVar13 = 0xf;" (assignment_expression "iVar13 = 0xf" identifier = number_literal) ;) (expression_statement "pbVar19 = pbVar11;" (assignment_expression "pbVar19 = pbVar11" identifier = identifier) ;) (expression_statement "pbVar20 = (byte *)"R_C6000_PREL31";" (assignment_expression "pbVar20 = (byte *)"R_C6000_PREL31"" identifier = (cast_expression "(byte *)"R_C6000_PREL31"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""R_C6000_PREL31"" " string_content "))) ;) (do_statement "do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar22 = *pbVar19 < *pbVar20;\n              bVar21 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            } while (bVar21);" do (compound_statement "{\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar22 = *pbVar19 < *pbVar20;\n              bVar21 = *pbVar19 == *pbVar20;\n              pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;\n            }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar19 < *pbVar20;" (assignment_expression "bVar22 = *pbVar19 < *pbVar20" identifier = (binary_expression "*pbVar19 < *pbVar20" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar21 = *pbVar19 == *pbVar20;" (assignment_expression "bVar21 = *pbVar19 == *pbVar20" identifier = (binary_expression "*pbVar19 == *pbVar20" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar24 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar24 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar24 * -2" identifier + (binary_expression "(uint)bVar24 * -2" (cast_expression "(uint)bVar24" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar21)" ( identifier )) ;) (if_statement "if ((!bVar22 && !bVar21) == bVar22) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }" if (parenthesized_expression "((!bVar22 && !bVar21) == bVar22)" ( (binary_expression "(!bVar22 && !bVar21) == bVar22" (parenthesized_expression "(!bVar22 && !bVar21)" ( (binary_expression "!bVar22 && !bVar21" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar21" ! identifier)) )) == identifier) )) (compound_statement "{\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }" { (expression_statement "local_44 = local_44 >> 1;" (assignment_expression "local_44 = local_44 >> 1" identifier = (binary_expression "local_44 >> 1" identifier >> number_literal)) ;) (goto_statement "goto LAB_0003245c;" goto statement_identifier ;) })) (expression_statement "pcVar8 = (char *)dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5)" identifier (argument_list "(0,"Skipping unexpected C6000 relocation type %s\n",5)" ( number_literal , (string_literal ""Skipping unexpected C6000 relocation type %s\n"" " string_content escape_sequence ") , number_literal ))))) ;) }))) (expression_statement "warn(pcVar8,pbVar11);" (call_expression "warn(pcVar8,pbVar11)" identifier (argument_list "(pcVar8,pbVar11)" ( identifier , identifier ))) ;) (expression_statement "local_64 = arm_sec->rela;" (assignment_expression "local_64 = arm_sec->rela" identifier = (field_expression "arm_sec->rela" identifier -> field_identifier)) ;) (expression_statement "local_4c = arm_sec->nrelas;" (assignment_expression "local_4c = arm_sec->nrelas" identifier = (field_expression "arm_sec->nrelas" identifier -> field_identifier)) ;) })) }) (else_clause "else {\n        pcVar8 = (char *)dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(pcVar8,uVar12);\n        local_64 = arm_sec->rela;\n        local_4c = arm_sec->nrelas;\n      }" else (compound_statement "{\n        pcVar8 = (char *)dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(pcVar8,uVar12);\n        local_64 = arm_sec->rela;\n        local_4c = arm_sec->nrelas;\n      }" { (expression_statement "pcVar8 = (char *)dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5)" identifier (argument_list "(0,"Skipping unexpected relocation at offset 0x%lx\n",5)" ( number_literal , (string_literal ""Skipping unexpected relocation at offset 0x%lx\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar8,uVar12);" (call_expression "warn(pcVar8,uVar12)" identifier (argument_list "(pcVar8,uVar12)" ( identifier , identifier ))) ;) (expression_statement "local_64 = arm_sec->rela;" (assignment_expression "local_64 = arm_sec->rela" identifier = (field_expression "arm_sec->rela" identifier -> field_identifier)) ;) (expression_statement "local_4c = arm_sec->nrelas;" (assignment_expression "local_4c = arm_sec->nrelas" identifier = (field_expression "arm_sec->nrelas" identifier -> field_identifier)) ;) }))) (labeled_statement "LAB_00032500:\n      pEVar15 = pEVar15 + 1;" statement_identifier : (expression_statement "pEVar15 = pEVar15 + 1;" (assignment_expression "pEVar15 = pEVar15 + 1" identifier = (binary_expression "pEVar15 + 1" identifier + number_literal)) ;)) (if_statement "if (pEVar15 == local_64 + local_4c) goto LAB_000322a3;" if (parenthesized_expression "(pEVar15 == local_64 + local_4c)" ( (binary_expression "pEVar15 == local_64 + local_4c" identifier == (binary_expression "local_64 + local_4c" identifier + identifier)) )) (goto_statement "goto LAB_000322a3;" goto statement_identifier ;)) (goto_statement "goto LAB_0003227f;" goto statement_identifier ;) })) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "undefined4 __regparm3\nFUN_00032070(int param_1,int param_2,int *param_3,int param_4,uint param_5,uint param_6,\n            uint *param_7,undefined2 *param_8,uint *param_9)\n\n{\n  uint uVar1;\n  uint uVar2;\n  bool bVar3;\n  undefined4 uVar4;\n  int iVar5;\n  uint *puVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint uVar9;\n  int iVar10;\n  uint *puVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  uint *local_64;\n  uint local_54;\n  uint local_50;\n  int local_4c;\n  uint local_44;\n  uint local_30;\n  \n  bVar19 = 0;\n  *param_8 = 0;\n  *(undefined4 *)(param_8 + 2) = 0;\n  *(undefined4 *)(param_8 + 4) = 0;\n  if (param_9 != (uint *)0x0) {\n    *param_9 = 0xffffffff;\n    param_9[1] = 0xffffffff;\n  }\n  iVar5 = *param_3;\n  if (param_3[1] != param_4) {\n    FUN_00023e30();\n    param_3[1] = param_4;\n    uVar4 = dcgettext(0,"unwind data",5);\n    iVar5 = FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4);\n    param_3[2] = 0;\n    *param_3 = iVar5;\n    uVar12 = *(uint *)(param_1 + 0x5c);\n    uVar1 = *(uint *)(param_1 + 0x54);\n    param_3[3] = 0;\n    uVar8 = uVar12 + uVar1 * 0x48;\n    uVar9 = uVar12;\n    if (uVar12 < uVar8) {\n      do {\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      } while (uVar9 < uVar8);\n      iVar10 = 0;\n    }\n    else {\n      iVar10 = 0;\n    }\nLAB_000321d8:\n    param_3[5] = iVar10;\n  }\n  if (iVar5 != 0) {\n    uVar8 = *(uint *)(param_4 + 0x20);\n    iVar10 = *(int *)(param_4 + 0x24);\n    if (((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&\n       (-1 < (int)param_6)) {\n      local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);\n      local_64 = (uint *)param_3[2];\n      if (local_64 == (uint *)0x0) {\n        *param_7 = local_30;\n        return 1;\n      }\n      local_4c = param_3[3];\n      puVar11 = (uint *)param_3[5];\n      if (puVar11 == local_64 + local_4c * 6) {\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }\n      bVar3 = false;\nLAB_0003227f:\n      uVar8 = *puVar11;\n      uVar12 = puVar11[1];\n      if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }\n      if ((uVar8 & 3) == 0) {\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }\nLAB_00032500:\n      puVar11 = puVar11 + 6;\n      if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }\n  }\n  return 0;\n}\n\n" (function_definition "undefined4 __regparm3\nFUN_00032070(int param_1,int param_2,int *param_3,int param_4,uint param_5,uint param_6,\n            uint *param_7,undefined2 *param_8,uint *param_9)\n\n{\n  uint uVar1;\n  uint uVar2;\n  bool bVar3;\n  undefined4 uVar4;\n  int iVar5;\n  uint *puVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint uVar9;\n  int iVar10;\n  uint *puVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  uint *local_64;\n  uint local_54;\n  uint local_50;\n  int local_4c;\n  uint local_44;\n  uint local_30;\n  \n  bVar19 = 0;\n  *param_8 = 0;\n  *(undefined4 *)(param_8 + 2) = 0;\n  *(undefined4 *)(param_8 + 4) = 0;\n  if (param_9 != (uint *)0x0) {\n    *param_9 = 0xffffffff;\n    param_9[1] = 0xffffffff;\n  }\n  iVar5 = *param_3;\n  if (param_3[1] != param_4) {\n    FUN_00023e30();\n    param_3[1] = param_4;\n    uVar4 = dcgettext(0,"unwind data",5);\n    iVar5 = FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4);\n    param_3[2] = 0;\n    *param_3 = iVar5;\n    uVar12 = *(uint *)(param_1 + 0x5c);\n    uVar1 = *(uint *)(param_1 + 0x54);\n    param_3[3] = 0;\n    uVar8 = uVar12 + uVar1 * 0x48;\n    uVar9 = uVar12;\n    if (uVar12 < uVar8) {\n      do {\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      } while (uVar9 < uVar8);\n      iVar10 = 0;\n    }\n    else {\n      iVar10 = 0;\n    }\nLAB_000321d8:\n    param_3[5] = iVar10;\n  }\n  if (iVar5 != 0) {\n    uVar8 = *(uint *)(param_4 + 0x20);\n    iVar10 = *(int *)(param_4 + 0x24);\n    if (((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&\n       (-1 < (int)param_6)) {\n      local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);\n      local_64 = (uint *)param_3[2];\n      if (local_64 == (uint *)0x0) {\n        *param_7 = local_30;\n        return 1;\n      }\n      local_4c = param_3[3];\n      puVar11 = (uint *)param_3[5];\n      if (puVar11 == local_64 + local_4c * 6) {\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }\n      bVar3 = false;\nLAB_0003227f:\n      uVar8 = *puVar11;\n      uVar12 = puVar11[1];\n      if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }\n      if ((uVar8 & 3) == 0) {\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }\nLAB_00032500:\n      puVar11 = puVar11 + 6;\n      if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }\n  }\n  return 0;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00032070(int param_1,int param_2,int *param_3,int param_4,uint param_5,uint param_6,\n            uint *param_7,undefined2 *param_8,uint *param_9)" identifier (parameter_list "(int param_1,int param_2,int *param_3,int param_4,uint param_5,uint param_6,\n            uint *param_7,undefined2 *param_8,uint *param_9)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "uint param_6" type_identifier identifier) , (parameter_declaration "uint *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "undefined2 *param_8" type_identifier (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "uint *param_9" type_identifier (pointer_declarator "*param_9" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  bool bVar3;\n  undefined4 uVar4;\n  int iVar5;\n  uint *puVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint uVar9;\n  int iVar10;\n  uint *puVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  uint *local_64;\n  uint local_54;\n  uint local_50;\n  int local_4c;\n  uint local_44;\n  uint local_30;\n  \n  bVar19 = 0;\n  *param_8 = 0;\n  *(undefined4 *)(param_8 + 2) = 0;\n  *(undefined4 *)(param_8 + 4) = 0;\n  if (param_9 != (uint *)0x0) {\n    *param_9 = 0xffffffff;\n    param_9[1] = 0xffffffff;\n  }\n  iVar5 = *param_3;\n  if (param_3[1] != param_4) {\n    FUN_00023e30();\n    param_3[1] = param_4;\n    uVar4 = dcgettext(0,"unwind data",5);\n    iVar5 = FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4);\n    param_3[2] = 0;\n    *param_3 = iVar5;\n    uVar12 = *(uint *)(param_1 + 0x5c);\n    uVar1 = *(uint *)(param_1 + 0x54);\n    param_3[3] = 0;\n    uVar8 = uVar12 + uVar1 * 0x48;\n    uVar9 = uVar12;\n    if (uVar12 < uVar8) {\n      do {\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      } while (uVar9 < uVar8);\n      iVar10 = 0;\n    }\n    else {\n      iVar10 = 0;\n    }\nLAB_000321d8:\n    param_3[5] = iVar10;\n  }\n  if (iVar5 != 0) {\n    uVar8 = *(uint *)(param_4 + 0x20);\n    iVar10 = *(int *)(param_4 + 0x24);\n    if (((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&\n       (-1 < (int)param_6)) {\n      local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);\n      local_64 = (uint *)param_3[2];\n      if (local_64 == (uint *)0x0) {\n        *param_7 = local_30;\n        return 1;\n      }\n      local_4c = param_3[3];\n      puVar11 = (uint *)param_3[5];\n      if (puVar11 == local_64 + local_4c * 6) {\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }\n      bVar3 = false;\nLAB_0003227f:\n      uVar8 = *puVar11;\n      uVar12 = puVar11[1];\n      if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }\n      if ((uVar8 & 3) == 0) {\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }\nLAB_00032500:\n      puVar11 = puVar11 + 6;\n      if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }\n  }\n  return 0;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "uint *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "*param_8 = 0;" (assignment_expression "*param_8 = 0" (pointer_expression "*param_8" * identifier) = number_literal) ;) (expression_statement "*(undefined4 *)(param_8 + 2) = 0;" (assignment_expression "*(undefined4 *)(param_8 + 2) = 0" (pointer_expression "*(undefined4 *)(param_8 + 2)" * (cast_expression "(undefined4 *)(param_8 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 2)" ( (binary_expression "param_8 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_8 + 4) = 0;" (assignment_expression "*(undefined4 *)(param_8 + 4) = 0" (pointer_expression "*(undefined4 *)(param_8 + 4)" * (cast_expression "(undefined4 *)(param_8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 4)" ( (binary_expression "param_8 + 4" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (param_9 != (uint *)0x0) {\n    *param_9 = 0xffffffff;\n    param_9[1] = 0xffffffff;\n  }" if (parenthesized_expression "(param_9 != (uint *)0x0)" ( (binary_expression "param_9 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_9 = 0xffffffff;\n    param_9[1] = 0xffffffff;\n  }" { (expression_statement "*param_9 = 0xffffffff;" (assignment_expression "*param_9 = 0xffffffff" (pointer_expression "*param_9" * identifier) = number_literal) ;) (expression_statement "param_9[1] = 0xffffffff;" (assignment_expression "param_9[1] = 0xffffffff" (subscript_expression "param_9[1]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "iVar5 = *param_3;" (assignment_expression "iVar5 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (param_3[1] != param_4) {\n    FUN_00023e30();\n    param_3[1] = param_4;\n    uVar4 = dcgettext(0,"unwind data",5);\n    iVar5 = FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4);\n    param_3[2] = 0;\n    *param_3 = iVar5;\n    uVar12 = *(uint *)(param_1 + 0x5c);\n    uVar1 = *(uint *)(param_1 + 0x54);\n    param_3[3] = 0;\n    uVar8 = uVar12 + uVar1 * 0x48;\n    uVar9 = uVar12;\n    if (uVar12 < uVar8) {\n      do {\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      } while (uVar9 < uVar8);\n      iVar10 = 0;\n    }\n    else {\n      iVar10 = 0;\n    }\nLAB_000321d8:\n    param_3[5] = iVar10;\n  }" if (parenthesized_expression "(param_3[1] != param_4)" ( (binary_expression "param_3[1] != param_4" (subscript_expression "param_3[1]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    FUN_00023e30();\n    param_3[1] = param_4;\n    uVar4 = dcgettext(0,"unwind data",5);\n    iVar5 = FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4);\n    param_3[2] = 0;\n    *param_3 = iVar5;\n    uVar12 = *(uint *)(param_1 + 0x5c);\n    uVar1 = *(uint *)(param_1 + 0x54);\n    param_3[3] = 0;\n    uVar8 = uVar12 + uVar1 * 0x48;\n    uVar9 = uVar12;\n    if (uVar12 < uVar8) {\n      do {\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      } while (uVar9 < uVar8);\n      iVar10 = 0;\n    }\n    else {\n      iVar10 = 0;\n    }\nLAB_000321d8:\n    param_3[5] = iVar10;\n  }" { (expression_statement "FUN_00023e30();" (call_expression "FUN_00023e30()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_3[1] = param_4;" (assignment_expression "param_3[1] = param_4" (subscript_expression "param_3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = dcgettext(0,"unwind data",5);" (assignment_expression "uVar4 = dcgettext(0,"unwind data",5)" identifier = (call_expression "dcgettext(0,"unwind data",5)" identifier (argument_list "(0,"unwind data",5)" ( number_literal , (string_literal ""unwind data"" " string_content ") , number_literal )))) ;) (expression_statement "iVar5 = FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4);" (assignment_expression "iVar5 = FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4)" identifier = (call_expression "FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4)" identifier (argument_list "(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4)" ( number_literal , number_literal , (pointer_expression "*(undefined4 *)(param_4 + 0x20)" * (cast_expression "(undefined4 *)(param_4 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x20)" ( (binary_expression "param_4 + 0x20" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_4 + 0x24)" * (cast_expression "(undefined4 *)(param_4 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x24)" ( (binary_expression "param_4 + 0x24" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "param_3[2] = 0;" (assignment_expression "param_3[2] = 0" (subscript_expression "param_3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_3 = iVar5;" (assignment_expression "*param_3 = iVar5" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "uVar12 = *(uint *)(param_1 + 0x5c);" (assignment_expression "uVar12 = *(uint *)(param_1 + 0x5c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x5c)" * (cast_expression "(uint *)(param_1 + 0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = *(uint *)(param_1 + 0x54);" (assignment_expression "uVar1 = *(uint *)(param_1 + 0x54)" identifier = (pointer_expression "*(uint *)(param_1 + 0x54)" * (cast_expression "(uint *)(param_1 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "param_3[3] = 0;" (assignment_expression "param_3[3] = 0" (subscript_expression "param_3[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar8 = uVar12 + uVar1 * 0x48;" (assignment_expression "uVar8 = uVar12 + uVar1 * 0x48" identifier = (binary_expression "uVar12 + uVar1 * 0x48" identifier + (binary_expression "uVar1 * 0x48" identifier * number_literal))) ;) (expression_statement "uVar9 = uVar12;" (assignment_expression "uVar9 = uVar12" identifier = identifier) ;) (if_statement "if (uVar12 < uVar8) {\n      do {\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      } while (uVar9 < uVar8);\n      iVar10 = 0;\n    }\n    else {\n      iVar10 = 0;\n    }" if (parenthesized_expression "(uVar12 < uVar8)" ( (binary_expression "uVar12 < uVar8" identifier < identifier) )) (compound_statement "{\n      do {\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      } while (uVar9 < uVar8);\n      iVar10 = 0;\n    }" { (do_statement "do {\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      } while (uVar9 < uVar8);" do (compound_statement "{\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      }" { (if_statement "if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }" if (parenthesized_expression "(((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4))))" ( (binary_expression "((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))" (parenthesized_expression "((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48))" ( (binary_expression "(*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)" (parenthesized_expression "(*(uint *)(uVar9 + 0x2c) < uVar1)" ( (binary_expression "*(uint *)(uVar9 + 0x2c) < uVar1" (pointer_expression "*(uint *)(uVar9 + 0x2c)" * (cast_expression "(uint *)(uVar9 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x2c)" ( (binary_expression "uVar9 + 0x2c" identifier + number_literal) )))) < identifier) )) && (parenthesized_expression "(param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)" ( (binary_expression "param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48" identifier == (binary_expression "uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48" identifier + (binary_expression "*(uint *)(uVar9 + 0x2c) * 0x48" (pointer_expression "*(uint *)(uVar9 + 0x2c)" * (cast_expression "(uint *)(uVar9 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x2c)" ( (binary_expression "uVar9 + 0x2c" identifier + number_literal) )))) * number_literal))) ))) )) && (parenthesized_expression "((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))" ( (parenthesized_expression "(iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4))" ( (comma_expression "iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)" (assignment_expression "iVar10 = *(int *)(uVar9 + 4)" identifier = (pointer_expression "*(int *)(uVar9 + 4)" * (cast_expression "(int *)(uVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 4)" ( (binary_expression "uVar9 + 4" identifier + number_literal) ))))) , (binary_expression "iVar10 == 9 || (iVar10 == 4)" (binary_expression "iVar10 == 9" identifier == number_literal) || (parenthesized_expression "(iVar10 == 4)" ( (binary_expression "iVar10 == 4" identifier == number_literal) )))) )) ))) )) (compound_statement "{\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }" { (expression_statement "param_3[4] = iVar10;" (assignment_expression "param_3[4] = iVar10" (subscript_expression "param_3[4]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }" if (parenthesized_expression "(iVar10 == 9)" ( (binary_expression "iVar10 == 9" identifier == number_literal) )) (compound_statement "{\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }" { (expression_statement "iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);" (assignment_expression "iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3)" identifier = (call_expression "FUN_0001d7b0(param_3 + 2,param_3 + 3)" identifier (argument_list "(param_3 + 2,param_3 + 3)" ( (binary_expression "param_3 + 2" identifier + number_literal) , (binary_expression "param_3 + 3" identifier + number_literal) )))) ;) }) (else_clause "else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }" else (compound_statement "{\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }" { (expression_statement "iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);" (assignment_expression "iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3)" identifier = (call_expression "FUN_0001e360(param_3 + 2,param_3 + 3)" identifier (argument_list "(param_3 + 2,param_3 + 3)" ( (binary_expression "param_3 + 2" identifier + number_literal) , (binary_expression "param_3 + 3" identifier + number_literal) )))) ;) }))) (if_statement "if (iVar5 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar10 = param_3[2];" (assignment_expression "iVar10 = param_3[2]" identifier = (subscript_expression "param_3[2]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = *param_3;" (assignment_expression "iVar5 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (goto_statement "goto LAB_000321d8;" goto statement_identifier ;) })) (expression_statement "uVar9 = uVar9 + 0x48;" (assignment_expression "uVar9 = uVar9 + 0x48" identifier = (binary_expression "uVar9 + 0x48" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar9 < uVar8)" ( (binary_expression "uVar9 < uVar8" identifier < identifier) )) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      iVar10 = 0;\n    }" else (compound_statement "{\n      iVar10 = 0;\n    }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_000321d8:\n    param_3[5] = iVar10;" statement_identifier : (expression_statement "param_3[5] = iVar10;" (assignment_expression "param_3[5] = iVar10" (subscript_expression "param_3[5]" identifier [ number_literal ]) = identifier) ;)) })) (if_statement "if (iVar5 != 0) {\n    uVar8 = *(uint *)(param_4 + 0x20);\n    iVar10 = *(int *)(param_4 + 0x24);\n    if (((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&\n       (-1 < (int)param_6)) {\n      local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);\n      local_64 = (uint *)param_3[2];\n      if (local_64 == (uint *)0x0) {\n        *param_7 = local_30;\n        return 1;\n      }\n      local_4c = param_3[3];\n      puVar11 = (uint *)param_3[5];\n      if (puVar11 == local_64 + local_4c * 6) {\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }\n      bVar3 = false;\nLAB_0003227f:\n      uVar8 = *puVar11;\n      uVar12 = puVar11[1];\n      if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }\n      if ((uVar8 & 3) == 0) {\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }\nLAB_00032500:\n      puVar11 = puVar11 + 6;\n      if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }\n  }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar8 = *(uint *)(param_4 + 0x20);\n    iVar10 = *(int *)(param_4 + 0x24);\n    if (((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&\n       (-1 < (int)param_6)) {\n      local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);\n      local_64 = (uint *)param_3[2];\n      if (local_64 == (uint *)0x0) {\n        *param_7 = local_30;\n        return 1;\n      }\n      local_4c = param_3[3];\n      puVar11 = (uint *)param_3[5];\n      if (puVar11 == local_64 + local_4c * 6) {\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }\n      bVar3 = false;\nLAB_0003227f:\n      uVar8 = *puVar11;\n      uVar12 = puVar11[1];\n      if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }\n      if ((uVar8 & 3) == 0) {\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }\nLAB_00032500:\n      puVar11 = puVar11 + 6;\n      if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }\n  }" { (expression_statement "uVar8 = *(uint *)(param_4 + 0x20);" (assignment_expression "uVar8 = *(uint *)(param_4 + 0x20)" identifier = (pointer_expression "*(uint *)(param_4 + 0x20)" * (cast_expression "(uint *)(param_4 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x20)" ( (binary_expression "param_4 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(param_4 + 0x24);" (assignment_expression "iVar10 = *(int *)(param_4 + 0x24)" identifier = (pointer_expression "*(int *)(param_4 + 0x24)" * (cast_expression "(int *)(param_4 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x24)" ( (binary_expression "param_4 + 0x24" identifier + number_literal) ))))) ;) (if_statement "if (((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&\n       (-1 < (int)param_6)) {\n      local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);\n      local_64 = (uint *)param_3[2];\n      if (local_64 == (uint *)0x0) {\n        *param_7 = local_30;\n        return 1;\n      }\n      local_4c = param_3[3];\n      puVar11 = (uint *)param_3[5];\n      if (puVar11 == local_64 + local_4c * 6) {\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }\n      bVar3 = false;\nLAB_0003227f:\n      uVar8 = *puVar11;\n      uVar12 = puVar11[1];\n      if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }\n      if ((uVar8 & 3) == 0) {\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }\nLAB_00032500:\n      puVar11 = puVar11 + 6;\n      if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }" if (parenthesized_expression "(((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&\n       (-1 < (int)param_6))" ( (binary_expression "((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&\n       (-1 < (int)param_6)" (parenthesized_expression "((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6))" ( (binary_expression "(iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)" (parenthesized_expression "(iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8))" ( (binary_expression "iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)" (binary_expression "iVar10 != 0" identifier != number_literal) || (binary_expression "(uint)-iVar10 < (uint)(3 < uVar8)" (binary_expression "(uint)-iVar10" (parenthesized_expression "(uint)" ( identifier )) - identifier) < (call_expression "(uint)(3 < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(3 < uVar8)" ( (binary_expression "3 < uVar8" number_literal < identifier) ))))) )) && (parenthesized_expression "(uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)" ( (comma_expression "uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6" (assignment_expression "uVar12 = iVar10 + -1 + (uint)(3 < uVar8)" identifier = (binary_expression "iVar10 + -1 + (uint)(3 < uVar8)" (binary_expression "iVar10 + -1" identifier + number_literal) + (call_expression "(uint)(3 < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(3 < uVar8)" ( (binary_expression "3 < uVar8" number_literal < identifier) ))))) , (binary_expression "param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6" (binary_expression "param_6 <= uVar12" identifier <= identifier) && (binary_expression "(uint)(uVar8 - 4 < param_5) <= uVar12 - param_6" (call_expression "(uint)(uVar8 - 4 < param_5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar8 - 4 < param_5)" ( (binary_expression "uVar8 - 4 < param_5" (binary_expression "uVar8 - 4" identifier - number_literal) < identifier) ))) <= (binary_expression "uVar12 - param_6" identifier - identifier)))) ))) )) && (parenthesized_expression "(-1 < (int)param_6)" ( (binary_expression "-1 < (int)param_6" number_literal < (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n      local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);\n      local_64 = (uint *)param_3[2];\n      if (local_64 == (uint *)0x0) {\n        *param_7 = local_30;\n        return 1;\n      }\n      local_4c = param_3[3];\n      puVar11 = (uint *)param_3[5];\n      if (puVar11 == local_64 + local_4c * 6) {\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }\n      bVar3 = false;\nLAB_0003227f:\n      uVar8 = *puVar11;\n      uVar12 = puVar11[1];\n      if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }\n      if ((uVar8 & 3) == 0) {\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }\nLAB_00032500:\n      puVar11 = puVar11 + 6;\n      if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }" { (expression_statement "local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);" (assignment_expression "local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4)" identifier = (call_expression "(*DAT_000b9dd8)(iVar5 + param_5,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "(iVar5 + param_5,4)" ( (binary_expression "iVar5 + param_5" identifier + identifier) , number_literal )))) ;) (expression_statement "local_64 = (uint *)param_3[2];" (assignment_expression "local_64 = (uint *)param_3[2]" identifier = (cast_expression "(uint *)param_3[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;) (if_statement "if (local_64 == (uint *)0x0) {\n        *param_7 = local_30;\n        return 1;\n      }" if (parenthesized_expression "(local_64 == (uint *)0x0)" ( (binary_expression "local_64 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *param_7 = local_30;\n        return 1;\n      }" { (expression_statement "*param_7 = local_30;" (assignment_expression "*param_7 = local_30" (pointer_expression "*param_7" * identifier) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "local_4c = param_3[3];" (assignment_expression "local_4c = param_3[3]" identifier = (subscript_expression "param_3[3]" identifier [ number_literal ])) ;) (expression_statement "puVar11 = (uint *)param_3[5];" (assignment_expression "puVar11 = (uint *)param_3[5]" identifier = (cast_expression "(uint *)param_3[5]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[5]" identifier [ number_literal ]))) ;) (if_statement "if (puVar11 == local_64 + local_4c * 6) {\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }" if (parenthesized_expression "(puVar11 == local_64 + local_4c * 6)" ( (binary_expression "puVar11 == local_64 + local_4c * 6" identifier == (binary_expression "local_64 + local_4c * 6" identifier + (binary_expression "local_4c * 6" identifier * number_literal))) )) (compound_statement "{\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }" { (labeled_statement "LAB_000322a3:\n        *param_7 = local_30;" statement_identifier : (expression_statement "*param_7 = local_30;" (assignment_expression "*param_7 = local_30" (pointer_expression "*param_7" * identifier) = identifier) ;)) (expression_statement "param_3[5] = (int)puVar11;" (assignment_expression "param_3[5] = (int)puVar11" (subscript_expression "param_3[5]" identifier [ number_literal ]) = (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (labeled_statement "LAB_0003227f:\n      uVar8 = *puVar11;" statement_identifier : (expression_statement "uVar8 = *puVar11;" (assignment_expression "uVar8 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;)) (expression_statement "uVar12 = puVar11[1];" (assignment_expression "uVar12 = puVar11[1]" identifier = (subscript_expression "puVar11[1]" identifier [ number_literal ])) ;) (if_statement "if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }" if (parenthesized_expression "(param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8))" ( (binary_expression "param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)" (binary_expression "param_6 < uVar12" identifier < identifier) || (binary_expression "param_6 - uVar12 < (uint)(param_5 < uVar8)" (binary_expression "param_6 - uVar12" identifier - identifier) < (call_expression "(uint)(param_5 < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_5 < uVar8)" ( (binary_expression "param_5 < uVar8" identifier < identifier) ))))) )) (compound_statement "{\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }" { (if_statement "if (bVar3) goto LAB_000322a3;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto LAB_000322a3;" goto statement_identifier ;)) (expression_statement "uVar8 = *local_64;" (assignment_expression "uVar8 = *local_64" identifier = (pointer_expression "*local_64" * identifier)) ;) (expression_statement "uVar12 = local_64[1];" (assignment_expression "uVar12 = local_64[1]" identifier = (subscript_expression "local_64[1]" identifier [ number_literal ])) ;) (expression_statement "puVar11 = local_64;" (assignment_expression "puVar11 = local_64" identifier = identifier) ;) (if_statement "if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;" if (parenthesized_expression "(param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8))" ( (binary_expression "param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)" (binary_expression "param_6 < uVar12" identifier < identifier) || (binary_expression "param_6 - uVar12 < (uint)(param_5 < uVar8)" (binary_expression "param_6 - uVar12" identifier - identifier) < (call_expression "(uint)(param_5 < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_5 < uVar8)" ( (binary_expression "param_5 < uVar8" identifier < identifier) ))))) )) (goto_statement "goto LAB_000322a3;" goto statement_identifier ;)) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) })) (if_statement "if ((uVar8 & 3) == 0) {\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }" if (parenthesized_expression "((uVar8 & 3) == 0)" ( (binary_expression "(uVar8 & 3) == 0" (parenthesized_expression "(uVar8 & 3)" ( (binary_expression "uVar8 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }" { (if_statement "if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }" if (parenthesized_expression "((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0))" ( (binary_expression "(param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)" (parenthesized_expression "(param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6)" ( (binary_expression "param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6" (binary_expression "param_6 <= uVar12" identifier <= identifier) && (binary_expression "(uint)(uVar8 < param_5) <= uVar12 - param_6" (call_expression "(uint)(uVar8 < param_5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar8 < param_5)" ( (binary_expression "uVar8 < param_5" identifier < identifier) ))) <= (binary_expression "uVar12 - param_6" identifier - identifier))) )) && (parenthesized_expression "(*(int *)(param_2 + 4) != 0)" ( (binary_expression "*(int *)(param_2 + 4) != 0" (pointer_expression "*(int *)(param_2 + 4)" * (cast_expression "(int *)(param_2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }" { (expression_statement "iVar5 = param_3[4];" (assignment_expression "iVar5 = param_3[4]" identifier = (subscript_expression "param_3[4]" identifier [ number_literal ])) ;) (if_statement "if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }" if (parenthesized_expression "(iVar5 == 9)" ( (binary_expression "iVar5 == 9" identifier == number_literal) )) (compound_statement "{\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }" { (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_54 = local_30 & 0x7fffffff;" (assignment_expression "local_54 = local_30 & 0x7fffffff" identifier = (binary_expression "local_30 & 0x7fffffff" identifier & number_literal)) ;) (if_statement "if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }" if (parenthesized_expression "((local_30 & 0x40000000) != 0)" ( (binary_expression "(local_30 & 0x40000000) != 0" (parenthesized_expression "(local_30 & 0x40000000)" ( (binary_expression "local_30 & 0x40000000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }" { (expression_statement "local_50 = 0xffffffff;" (assignment_expression "local_50 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_54 = local_54 | 0x80000000;" (assignment_expression "local_54 = local_54 | 0x80000000" identifier = (binary_expression "local_54 | 0x80000000" identifier | number_literal)) ;) })) }) (else_clause "else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }" else (compound_statement "{\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }" { (if_statement "if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }" if (parenthesized_expression "(iVar5 != 4)" ( (binary_expression "iVar5 != 4" identifier != number_literal) )) (compound_statement "{\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }" { (expression_statement "uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5)" identifier = (call_expression "dcgettext(0,"Unknown section relocation type %d encountered\n",5)" identifier (argument_list "(0,"Unknown section relocation type %d encountered\n",5)" ( number_literal , (string_literal ""Unknown section relocation type %d encountered\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar4,iVar5);" (call_expression "error(uVar4,iVar5)" identifier (argument_list "(uVar4,iVar5)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_000322a3;" goto statement_identifier ;) })) (expression_statement "local_54 = puVar11[4];" (assignment_expression "local_54 = puVar11[4]" identifier = (subscript_expression "puVar11[4]" identifier [ number_literal ])) ;) (expression_statement "local_50 = puVar11[5];" (assignment_expression "local_50 = puVar11[5]" identifier = (subscript_expression "puVar11[5]" identifier [ number_literal ])) ;) }))) (expression_statement "uVar12 = puVar11[2];" (assignment_expression "uVar12 = puVar11[2]" identifier = (subscript_expression "puVar11[2]" identifier [ number_literal ])) ;) (expression_statement "uVar1 = *(uint *)(param_2 + 8);" (assignment_expression "uVar1 = *(uint *)(param_2 + 8)" identifier = (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;" (assignment_expression "uVar9 = uVar12 >> 8 | puVar11[3] << 0x18" identifier = (binary_expression "uVar12 >> 8 | puVar11[3] << 0x18" (binary_expression "uVar12 >> 8" identifier >> number_literal) | (binary_expression "puVar11[3] << 0x18" (subscript_expression "puVar11[3]" identifier [ number_literal ]) << number_literal))) ;) (if_statement "if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }" if (parenthesized_expression "((uint)(uVar9 < uVar1) <= puVar11[3] >> 8)" ( (binary_expression "(uint)(uVar9 < uVar1) <= puVar11[3] >> 8" (call_expression "(uint)(uVar9 < uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 < uVar1)" ( (binary_expression "uVar9 < uVar1" identifier < identifier) ))) <= (binary_expression "puVar11[3] >> 8" (subscript_expression "puVar11[3]" identifier [ number_literal ]) >> number_literal)) )) (compound_statement "{\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }" { (expression_statement "uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5)" identifier = (call_expression "dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5)" identifier (argument_list "(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5)" ( number_literal , (string_literal ""Bad symbol index in unwind relocation (%lu > %lu)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar4,uVar9,uVar1);" (call_expression "error(uVar4,uVar9,uVar1)" identifier (argument_list "(uVar4,uVar9,uVar1)" ( identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_000322a3;" goto statement_identifier ;) })) (expression_statement "puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));" (assignment_expression "puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4))" identifier = (cast_expression "(uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 * 0x1c + *(int *)(param_2 + 4))" ( (binary_expression "uVar9 * 0x1c + *(int *)(param_2 + 4)" (binary_expression "uVar9 * 0x1c" identifier * number_literal) + (pointer_expression "*(int *)(param_2 + 4)" * (cast_expression "(int *)(param_2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) )))) ;) (expression_statement "uVar9 = *puVar6;" (assignment_expression "uVar9 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "uVar1 = *puVar6;" (assignment_expression "uVar1 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "uVar2 = puVar6[1];" (assignment_expression "uVar2 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));" (assignment_expression "local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10))" identifier = (binary_expression "(local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10))" (parenthesized_expression "(local_54 + uVar1)" ( (binary_expression "local_54 + uVar1" identifier + identifier) )) - (parenthesized_expression "(uVar8 + *(int *)(param_3[1] + 0x10))" ( (binary_expression "uVar8 + *(int *)(param_3[1] + 0x10)" identifier + (pointer_expression "*(int *)(param_3[1] + 0x10)" * (cast_expression "(int *)(param_3[1] + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3[1] + 0x10)" ( (binary_expression "param_3[1] + 0x10" (subscript_expression "param_3[1]" identifier [ number_literal ]) + number_literal) ))))) )))) ;) (if_statement "if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }" if (parenthesized_expression "(*(short *)(param_1 + 0x42) == 0x28)" ( (binary_expression "*(short *)(param_1 + 0x42) == 0x28" (pointer_expression "*(short *)(param_1 + 0x42)" * (cast_expression "(short *)(param_1 + 0x42)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x42)" ( (binary_expression "param_1 + 0x42" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }" { (expression_statement "pbVar13 = (byte *)FUN_00014aa0();" (assignment_expression "pbVar13 = (byte *)FUN_00014aa0()" identifier = (cast_expression "(byte *)FUN_00014aa0()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00014aa0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar18 = pbVar13 == (byte *)0x0;" (assignment_expression "bVar18 = pbVar13 == (byte *)0x0" identifier = (binary_expression "pbVar13 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }" if (parenthesized_expression "(!bVar18)" ( (unary_expression "!bVar18" ! identifier) )) (compound_statement "{\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }" { (expression_statement "iVar5 = 0xb;" (assignment_expression "iVar5 = 0xb" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar13;" (assignment_expression "pbVar14 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar15 = (byte *)"R_ARM_NONE";" (assignment_expression "pbVar15 = (byte *)"R_ARM_NONE"" identifier = (cast_expression "(byte *)"R_ARM_NONE"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""R_ARM_NONE"" " string_content "))) ;) (do_statement "do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);" do (compound_statement "{\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar14 < *pbVar15;" (assignment_expression "bVar16 = *pbVar14 < *pbVar15" identifier = (binary_expression "*pbVar14 < *pbVar15" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar18 = *pbVar14 == *pbVar15;" (assignment_expression "bVar18 = *pbVar14 == *pbVar15" identifier = (binary_expression "*pbVar14 == *pbVar15" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar16 && !bVar18) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar18) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar18) == bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" ( (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (compound_statement "{\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }" { (expression_statement "iVar5 = 0xd;" (assignment_expression "iVar5 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar13;" (assignment_expression "pbVar14 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar15 = (byte *)"R_ARM_PREL31";" (assignment_expression "pbVar15 = (byte *)"R_ARM_PREL31"" identifier = (cast_expression "(byte *)"R_ARM_PREL31"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""R_ARM_PREL31"" " string_content "))) ;) (do_statement "do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);" do (compound_statement "{\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar14 < *pbVar15;" (assignment_expression "bVar17 = *pbVar14 < *pbVar15" identifier = (binary_expression "*pbVar14 < *pbVar15" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar16 = *pbVar14 == *pbVar15;" (assignment_expression "bVar16 = *pbVar14 == *pbVar15" identifier = (binary_expression "*pbVar14 == *pbVar15" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }" if (parenthesized_expression "((!bVar17 && !bVar16) != bVar17)" ( (binary_expression "(!bVar17 && !bVar16) != bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) != identifier) )) (compound_statement "{\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }" { (expression_statement "uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5)" identifier = (call_expression "dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5)" identifier (argument_list "(0,"Skipping unexpected ARM relocation type %s\n",5)" ( number_literal , (string_literal ""Skipping unexpected ARM relocation type %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar4,pbVar13);" (call_expression "warn(uVar4,pbVar13)" identifier (argument_list "(uVar4,pbVar13)" ( identifier , identifier ))) ;) (expression_statement "local_64 = (uint *)param_3[2];" (assignment_expression "local_64 = (uint *)param_3[2]" identifier = (cast_expression "(uint *)param_3[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;) (expression_statement "local_4c = param_3[3];" (assignment_expression "local_4c = param_3[3]" identifier = (subscript_expression "param_3[3]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00032500;" goto statement_identifier ;) })) (labeled_statement "LAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;" statement_identifier : (expression_statement "local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;" (assignment_expression "local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000" identifier = (binary_expression "local_44 & 0x7fffffff | local_30 & 0x80000000" (binary_expression "local_44 & 0x7fffffff" identifier & number_literal) | (binary_expression "local_30 & 0x80000000" identifier & number_literal))) ;)) (expression_statement "*param_8 = (short)puVar6[6];" (assignment_expression "*param_8 = (short)puVar6[6]" (pointer_expression "*param_8" * identifier) = (cast_expression "(short)puVar6[6]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "puVar6[6]" identifier [ number_literal ]))) ;) (expression_statement "*(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);" (assignment_expression "*(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9)" (pointer_expression "*(uint *)(param_8 + 4)" * (cast_expression "(uint *)(param_8 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 4)" ( (binary_expression "param_8 + 4" identifier + number_literal) )))) = (binary_expression "local_50 + uVar2 + (uint)CARRY4(local_54,uVar9)" (binary_expression "local_50 + uVar2" identifier + identifier) + (cast_expression "(uint)CARRY4(local_54,uVar9)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_54,uVar9)" identifier (argument_list "(local_54,uVar9)" ( identifier , identifier )))))) ;) (expression_statement "*(uint *)(param_8 + 2) = local_54 + uVar1;" (assignment_expression "*(uint *)(param_8 + 2) = local_54 + uVar1" (pointer_expression "*(uint *)(param_8 + 2)" * (cast_expression "(uint *)(param_8 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 2)" ( (binary_expression "param_8 + 2" identifier + number_literal) )))) = (binary_expression "local_54 + uVar1" identifier + identifier)) ;) (if_statement "if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }" if (parenthesized_expression "(param_9 != (uint *)0x0)" ( (binary_expression "param_9 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }" { (expression_statement "uVar8 = puVar6[4];" (assignment_expression "uVar8 = puVar6[4]" identifier = (subscript_expression "puVar6[4]" identifier [ number_literal ])) ;) (expression_statement "param_9[1] = 0;" (assignment_expression "param_9[1] = 0" (subscript_expression "param_9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_9 = uVar8;" (assignment_expression "*param_9 = uVar8" (pointer_expression "*param_9" * identifier) = identifier) ;) })) (goto_statement "goto LAB_000322a3;" goto statement_identifier ;) })) (goto_statement "goto LAB_00032500;" goto statement_identifier ;) })) (expression_statement "pcVar7 = "Skipping unknown ARM relocation type: %d\n";" (assignment_expression "pcVar7 = "Skipping unknown ARM relocation type: %d\n"" identifier = (string_literal ""Skipping unknown ARM relocation type: %d\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);" statement_identifier : (expression_statement "pbVar13 = (byte *)(uVar12 & 0xff);" (assignment_expression "pbVar13 = (byte *)(uVar12 & 0xff)" identifier = (cast_expression "(byte *)(uVar12 & 0xff)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 & 0xff)" ( (binary_expression "uVar12 & 0xff" identifier & number_literal) )))) ;)) (expression_statement "uVar4 = dcgettext(0,pcVar7,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar7,5)" identifier = (call_expression "dcgettext(0,pcVar7,5)" identifier (argument_list "(0,pcVar7,5)" ( number_literal , identifier , number_literal )))) ;) }) (else_clause "else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }" else (compound_statement "{\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }" { (if_statement "if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }" if (parenthesized_expression "(*(short *)(param_1 + 0x42) != 0x8c)" ( (binary_expression "*(short *)(param_1 + 0x42) != 0x8c" (pointer_expression "*(short *)(param_1 + 0x42)" * (cast_expression "(short *)(param_1 + 0x42)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x42)" ( (binary_expression "param_1 + 0x42" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }" { (expression_statement "uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5)" identifier = (call_expression "dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5)" identifier (argument_list "(0,"Only TI and ARM unwinders are currently supported\n",5)" ( number_literal , (string_literal ""Only TI and ARM unwinders are currently supported\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar4);" (call_expression "warn(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (goto_statement "goto LAB_000322a3;" goto statement_identifier ;) })) (expression_statement "pbVar13 = (byte *)FUN_00019be0();" (assignment_expression "pbVar13 = (byte *)FUN_00019be0()" identifier = (cast_expression "(byte *)FUN_00019be0()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00019be0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar18 = pbVar13 == (byte *)0x0;" (assignment_expression "bVar18 = pbVar13 == (byte *)0x0" identifier = (binary_expression "pbVar13 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }" { (expression_statement "pcVar7 = "Skipping unknown C6000 relocation type: %d\n";" (assignment_expression "pcVar7 = "Skipping unknown C6000 relocation type: %d\n"" identifier = (string_literal ""Skipping unknown C6000 relocation type: %d\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00032686;" goto statement_identifier ;) })) (expression_statement "iVar5 = 0xd;" (assignment_expression "iVar5 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar13;" (assignment_expression "pbVar14 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar15 = (byte *)"R_C6000_NONE";" (assignment_expression "pbVar15 = (byte *)"R_C6000_NONE"" identifier = (cast_expression "(byte *)"R_C6000_NONE"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""R_C6000_NONE"" " string_content "))) ;) (do_statement "do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);" do (compound_statement "{\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar14 < *pbVar15;" (assignment_expression "bVar16 = *pbVar14 < *pbVar15" identifier = (binary_expression "*pbVar14 < *pbVar15" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar18 = *pbVar14 == *pbVar15;" (assignment_expression "bVar18 = *pbVar14 == *pbVar15" identifier = (binary_expression "*pbVar14 == *pbVar15" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar16 && !bVar18) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar18) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar18) == bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" ( (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar16) goto LAB_00032500;" if (parenthesized_expression "(bVar16)" ( identifier )) (goto_statement "goto LAB_00032500;" goto statement_identifier ;)) (expression_statement "iVar5 = 0xf;" (assignment_expression "iVar5 = 0xf" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar13;" (assignment_expression "pbVar14 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar15 = (byte *)"R_C6000_PREL31";" (assignment_expression "pbVar15 = (byte *)"R_C6000_PREL31"" identifier = (cast_expression "(byte *)"R_C6000_PREL31"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""R_C6000_PREL31"" " string_content "))) ;) (do_statement "do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);" do (compound_statement "{\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar14 < *pbVar15;" (assignment_expression "bVar17 = *pbVar14 < *pbVar15" identifier = (binary_expression "*pbVar14 < *pbVar15" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar16 = *pbVar14 == *pbVar15;" (assignment_expression "bVar16 = *pbVar14 == *pbVar15" identifier = (binary_expression "*pbVar14 == *pbVar15" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }" if (parenthesized_expression "((!bVar17 && !bVar16) == bVar17)" ( (binary_expression "(!bVar17 && !bVar16) == bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier) )) (compound_statement "{\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }" { (expression_statement "local_44 = local_44 >> 1;" (assignment_expression "local_44 = local_44 >> 1" identifier = (binary_expression "local_44 >> 1" identifier >> number_literal)) ;) (goto_statement "goto LAB_0003245c;" goto statement_identifier ;) })) (expression_statement "uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5)" identifier = (call_expression "dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5)" identifier (argument_list "(0,"Skipping unexpected C6000 relocation type %s\n",5)" ( number_literal , (string_literal ""Skipping unexpected C6000 relocation type %s\n"" " string_content escape_sequence ") , number_literal )))) ;) }))) (expression_statement "warn(uVar4,pbVar13);" (call_expression "warn(uVar4,pbVar13)" identifier (argument_list "(uVar4,pbVar13)" ( identifier , identifier ))) ;) (expression_statement "local_64 = (uint *)param_3[2];" (assignment_expression "local_64 = (uint *)param_3[2]" identifier = (cast_expression "(uint *)param_3[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;) (expression_statement "local_4c = param_3[3];" (assignment_expression "local_4c = param_3[3]" identifier = (subscript_expression "param_3[3]" identifier [ number_literal ])) ;) })) }) (else_clause "else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }" else (compound_statement "{\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }" { (expression_statement "uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5)" identifier = (call_expression "dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5)" identifier (argument_list "(0,"Skipping unexpected relocation at offset 0x%lx\n",5)" ( number_literal , (string_literal ""Skipping unexpected relocation at offset 0x%lx\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar4,uVar8);" (call_expression "warn(uVar4,uVar8)" identifier (argument_list "(uVar4,uVar8)" ( identifier , identifier ))) ;) (expression_statement "local_64 = (uint *)param_3[2];" (assignment_expression "local_64 = (uint *)param_3[2]" identifier = (cast_expression "(uint *)param_3[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;) (expression_statement "local_4c = param_3[3];" (assignment_expression "local_4c = param_3[3]" identifier = (subscript_expression "param_3[3]" identifier [ number_literal ])) ;) }))) (labeled_statement "LAB_00032500:\n      puVar11 = puVar11 + 6;" statement_identifier : (expression_statement "puVar11 = puVar11 + 6;" (assignment_expression "puVar11 = puVar11 + 6" identifier = (binary_expression "puVar11 + 6" identifier + number_literal)) ;)) (if_statement "if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;" if (parenthesized_expression "(puVar11 == local_64 + local_4c * 6)" ( (binary_expression "puVar11 == local_64 + local_4c * 6" identifier == (binary_expression "local_64 + local_4c * 6" identifier + (binary_expression "local_4c * 6" identifier * number_literal))) )) (goto_statement "goto LAB_000322a3;" goto statement_identifier ;)) (goto_statement "goto LAB_0003227f;" goto statement_identifier ;) })) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (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 (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , (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 IDENT + LIT) )))) , IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) )) && (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (binary_expression IDENT == LIT) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression (binary_expression (parenthesized_expression ( IDENT )) - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) , (binary_expression (binary_expression IDENT <= IDENT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT - LIT) < IDENT) ))) <= (binary_expression IDENT - IDENT)))) ))) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 (pointer_expression * IDENT) = IDENT) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + (binary_expression IDENT * LIT))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT <= IDENT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) <= (binary_expression IDENT - IDENT))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_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 = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 (binary_expression IDENT >> LIT) | (binary_expression (subscript_expression IDENT [ LIT ]) << LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) <= (binary_expression (subscript_expression IDENT [ LIT ]) >> LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) - (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + 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 IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) | (binary_expression IDENT & LIT))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + (binary_expression IDENT * LIT))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) })) (return_statement return LIT ;) })))
(function_definition "undefined4 __regparm3\nFUN_00032070(int param_1,int param_2,int *param_3,int param_4,uint param_5,uint param_6,\n            uint *param_7,undefined2 *param_8,uint *param_9)\n\n{\n  uint uVar1;\n  uint uVar2;\n  bool bVar3;\n  undefined4 uVar4;\n  int iVar5;\n  uint *puVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint uVar9;\n  int iVar10;\n  uint *puVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  uint *local_64;\n  uint local_54;\n  uint local_50;\n  int local_4c;\n  uint local_44;\n  uint local_30;\n  \n  bVar19 = 0;\n  *param_8 = 0;\n  *(undefined4 *)(param_8 + 2) = 0;\n  *(undefined4 *)(param_8 + 4) = 0;\n  if (param_9 != (uint *)0x0) {\n    *param_9 = 0xffffffff;\n    param_9[1] = 0xffffffff;\n  }\n  iVar5 = *param_3;\n  if (param_3[1] != param_4) {\n    FUN_00023e30();\n    param_3[1] = param_4;\n    uVar4 = dcgettext(0,"unwind data",5);\n    iVar5 = FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4);\n    param_3[2] = 0;\n    *param_3 = iVar5;\n    uVar12 = *(uint *)(param_1 + 0x5c);\n    uVar1 = *(uint *)(param_1 + 0x54);\n    param_3[3] = 0;\n    uVar8 = uVar12 + uVar1 * 0x48;\n    uVar9 = uVar12;\n    if (uVar12 < uVar8) {\n      do {\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      } while (uVar9 < uVar8);\n      iVar10 = 0;\n    }\n    else {\n      iVar10 = 0;\n    }\nLAB_000321d8:\n    param_3[5] = iVar10;\n  }\n  if (iVar5 != 0) {\n    uVar8 = *(uint *)(param_4 + 0x20);\n    iVar10 = *(int *)(param_4 + 0x24);\n    if (((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&\n       (-1 < (int)param_6)) {\n      local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);\n      local_64 = (uint *)param_3[2];\n      if (local_64 == (uint *)0x0) {\n        *param_7 = local_30;\n        return 1;\n      }\n      local_4c = param_3[3];\n      puVar11 = (uint *)param_3[5];\n      if (puVar11 == local_64 + local_4c * 6) {\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }\n      bVar3 = false;\nLAB_0003227f:\n      uVar8 = *puVar11;\n      uVar12 = puVar11[1];\n      if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }\n      if ((uVar8 & 3) == 0) {\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }\nLAB_00032500:\n      puVar11 = puVar11 + 6;\n      if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }\n  }\n  return 0;\n}" (type_identifier "undefined4") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00032070(int param_1,int param_2,int *param_3,int param_4,uint param_5,uint param_6,\n            uint *param_7,undefined2 *param_8,uint *param_9)" (identifier "FUN_00032070") (parameter_list "(int param_1,int param_2,int *param_3,int param_4,uint param_5,uint param_6,\n            uint *param_7,undefined2 *param_8,uint *param_9)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "uint param_5" (type_identifier "uint") (identifier "param_5")) (, ",") (parameter_declaration "uint param_6" (type_identifier "uint") (identifier "param_6")) (, ",") (parameter_declaration "uint *param_7" (type_identifier "uint") (pointer_declarator "*param_7" (* "*") (identifier "param_7"))) (, ",") (parameter_declaration "undefined2 *param_8" (type_identifier "undefined2") (pointer_declarator "*param_8" (* "*") (identifier "param_8"))) (, ",") (parameter_declaration "uint *param_9" (type_identifier "uint") (pointer_declarator "*param_9" (* "*") (identifier "param_9"))) () ")"))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  bool bVar3;\n  undefined4 uVar4;\n  int iVar5;\n  uint *puVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint uVar9;\n  int iVar10;\n  uint *puVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  uint *local_64;\n  uint local_54;\n  uint local_50;\n  int local_4c;\n  uint local_44;\n  uint local_30;\n  \n  bVar19 = 0;\n  *param_8 = 0;\n  *(undefined4 *)(param_8 + 2) = 0;\n  *(undefined4 *)(param_8 + 4) = 0;\n  if (param_9 != (uint *)0x0) {\n    *param_9 = 0xffffffff;\n    param_9[1] = 0xffffffff;\n  }\n  iVar5 = *param_3;\n  if (param_3[1] != param_4) {\n    FUN_00023e30();\n    param_3[1] = param_4;\n    uVar4 = dcgettext(0,"unwind data",5);\n    iVar5 = FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4);\n    param_3[2] = 0;\n    *param_3 = iVar5;\n    uVar12 = *(uint *)(param_1 + 0x5c);\n    uVar1 = *(uint *)(param_1 + 0x54);\n    param_3[3] = 0;\n    uVar8 = uVar12 + uVar1 * 0x48;\n    uVar9 = uVar12;\n    if (uVar12 < uVar8) {\n      do {\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      } while (uVar9 < uVar8);\n      iVar10 = 0;\n    }\n    else {\n      iVar10 = 0;\n    }\nLAB_000321d8:\n    param_3[5] = iVar10;\n  }\n  if (iVar5 != 0) {\n    uVar8 = *(uint *)(param_4 + 0x20);\n    iVar10 = *(int *)(param_4 + 0x24);\n    if (((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&\n       (-1 < (int)param_6)) {\n      local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);\n      local_64 = (uint *)param_3[2];\n      if (local_64 == (uint *)0x0) {\n        *param_7 = local_30;\n        return 1;\n      }\n      local_4c = param_3[3];\n      puVar11 = (uint *)param_3[5];\n      if (puVar11 == local_64 + local_4c * 6) {\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }\n      bVar3 = false;\nLAB_0003227f:\n      uVar8 = *puVar11;\n      uVar12 = puVar11[1];\n      if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }\n      if ((uVar8 & 3) == 0) {\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }\nLAB_00032500:\n      puVar11 = puVar11 + 6;\n      if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }\n  }\n  return 0;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "bool bVar3;" (primitive_type "bool") (identifier "bVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint *puVar6;" (type_identifier "uint") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "uint *puVar11;" (type_identifier "uint") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "byte *pbVar14;" (type_identifier "byte") (pointer_declarator "*pbVar14" (* "*") (identifier "pbVar14")) (; ";")) (declaration "byte *pbVar15;" (type_identifier "byte") (pointer_declarator "*pbVar15" (* "*") (identifier "pbVar15")) (; ";")) (declaration "bool bVar16;" (primitive_type "bool") (identifier "bVar16") (; ";")) (declaration "bool bVar17;" (primitive_type "bool") (identifier "bVar17") (; ";")) (declaration "bool bVar18;" (primitive_type "bool") (identifier "bVar18") (; ";")) (declaration "byte bVar19;" (type_identifier "byte") (identifier "bVar19") (; ";")) (declaration "uint *local_64;" (type_identifier "uint") (pointer_declarator "*local_64" (* "*") (identifier "local_64")) (; ";")) (declaration "uint local_54;" (type_identifier "uint") (identifier "local_54") (; ";")) (declaration "uint local_50;" (type_identifier "uint") (identifier "local_50") (; ";")) (declaration "int local_4c;" (primitive_type "int") (identifier "local_4c") (; ";")) (declaration "uint local_44;" (type_identifier "uint") (identifier "local_44") (; ";")) (declaration "uint local_30;" (type_identifier "uint") (identifier "local_30") (; ";")) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" (identifier "bVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_8 = 0;" (assignment_expression "*param_8 = 0" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_8 + 2) = 0;" (assignment_expression "*(undefined4 *)(param_8 + 2) = 0" (pointer_expression "*(undefined4 *)(param_8 + 2)" (* "*") (cast_expression "(undefined4 *)(param_8 + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_8 + 2)" (( "(") (binary_expression "param_8 + 2" (identifier "param_8") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_8 + 4) = 0;" (assignment_expression "*(undefined4 *)(param_8 + 4) = 0" (pointer_expression "*(undefined4 *)(param_8 + 4)" (* "*") (cast_expression "(undefined4 *)(param_8 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_8 + 4)" (( "(") (binary_expression "param_8 + 4" (identifier "param_8") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_9 != (uint *)0x0) {\n    *param_9 = 0xffffffff;\n    param_9[1] = 0xffffffff;\n  }" (if "if") (parenthesized_expression "(param_9 != (uint *)0x0)" (( "(") (binary_expression "param_9 != (uint *)0x0" (identifier "param_9") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *param_9 = 0xffffffff;\n    param_9[1] = 0xffffffff;\n  }" ({ "{") (expression_statement "*param_9 = 0xffffffff;" (assignment_expression "*param_9 = 0xffffffff" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "param_9[1] = 0xffffffff;" (assignment_expression "param_9[1] = 0xffffffff" (subscript_expression "param_9[1]" (identifier "param_9") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (} "}"))) (expression_statement "iVar5 = *param_3;" (assignment_expression "iVar5 = *param_3" (identifier "iVar5") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (if_statement "if (param_3[1] != param_4) {\n    FUN_00023e30();\n    param_3[1] = param_4;\n    uVar4 = dcgettext(0,"unwind data",5);\n    iVar5 = FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4);\n    param_3[2] = 0;\n    *param_3 = iVar5;\n    uVar12 = *(uint *)(param_1 + 0x5c);\n    uVar1 = *(uint *)(param_1 + 0x54);\n    param_3[3] = 0;\n    uVar8 = uVar12 + uVar1 * 0x48;\n    uVar9 = uVar12;\n    if (uVar12 < uVar8) {\n      do {\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      } while (uVar9 < uVar8);\n      iVar10 = 0;\n    }\n    else {\n      iVar10 = 0;\n    }\nLAB_000321d8:\n    param_3[5] = iVar10;\n  }" (if "if") (parenthesized_expression "(param_3[1] != param_4)" (( "(") (binary_expression "param_3[1] != param_4" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (!= "!=") (identifier "param_4")) () ")")) (compound_statement "{\n    FUN_00023e30();\n    param_3[1] = param_4;\n    uVar4 = dcgettext(0,"unwind data",5);\n    iVar5 = FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4);\n    param_3[2] = 0;\n    *param_3 = iVar5;\n    uVar12 = *(uint *)(param_1 + 0x5c);\n    uVar1 = *(uint *)(param_1 + 0x54);\n    param_3[3] = 0;\n    uVar8 = uVar12 + uVar1 * 0x48;\n    uVar9 = uVar12;\n    if (uVar12 < uVar8) {\n      do {\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      } while (uVar9 < uVar8);\n      iVar10 = 0;\n    }\n    else {\n      iVar10 = 0;\n    }\nLAB_000321d8:\n    param_3[5] = iVar10;\n  }" ({ "{") (expression_statement "FUN_00023e30();" (call_expression "FUN_00023e30()" (identifier "FUN_00023e30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "param_3[1] = param_4;" (assignment_expression "param_3[1] = param_4" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_4")) (; ";")) (expression_statement "uVar4 = dcgettext(0,"unwind data",5);" (assignment_expression "uVar4 = dcgettext(0,"unwind data",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"unwind data",5)" (identifier "dcgettext") (argument_list "(0,"unwind data",5)" (( "(") (number_literal "0") (, ",") (string_literal ""unwind data"" (" """) (string_content "unwind data") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "iVar5 = FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4);" (assignment_expression "iVar5 = FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4)" (identifier "iVar5") (= "=") (call_expression "FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4)" (identifier "FUN_0001bf90") (argument_list "(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4)" (( "(") (number_literal "1") (, ",") (number_literal "0") (, ",") (pointer_expression "*(undefined4 *)(param_4 + 0x20)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x20)" (( "(") (binary_expression "param_4 + 0x20" (identifier "param_4") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_4 + 0x24)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x24)" (( "(") (binary_expression "param_4 + 0x24" (identifier "param_4") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "param_3[2] = 0;" (assignment_expression "param_3[2] = 0" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_3 = iVar5;" (assignment_expression "*param_3 = iVar5" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "uVar12 = *(uint *)(param_1 + 0x5c);" (assignment_expression "uVar12 = *(uint *)(param_1 + 0x5c)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(param_1 + 0x5c)" (* "*") (cast_expression "(uint *)(param_1 + 0x5c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (expression_statement "uVar1 = *(uint *)(param_1 + 0x54);" (assignment_expression "uVar1 = *(uint *)(param_1 + 0x54)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(param_1 + 0x54)" (* "*") (cast_expression "(uint *)(param_1 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (expression_statement "param_3[3] = 0;" (assignment_expression "param_3[3] = 0" (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = uVar12 + uVar1 * 0x48;" (assignment_expression "uVar8 = uVar12 + uVar1 * 0x48" (identifier "uVar8") (= "=") (binary_expression "uVar12 + uVar1 * 0x48" (identifier "uVar12") (+ "+") (binary_expression "uVar1 * 0x48" (identifier "uVar1") (* "*") (number_literal "0x48")))) (; ";")) (expression_statement "uVar9 = uVar12;" (assignment_expression "uVar9 = uVar12" (identifier "uVar9") (= "=") (identifier "uVar12")) (; ";")) (if_statement "if (uVar12 < uVar8) {\n      do {\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      } while (uVar9 < uVar8);\n      iVar10 = 0;\n    }\n    else {\n      iVar10 = 0;\n    }" (if "if") (parenthesized_expression "(uVar12 < uVar8)" (( "(") (binary_expression "uVar12 < uVar8" (identifier "uVar12") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n      do {\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      } while (uVar9 < uVar8);\n      iVar10 = 0;\n    }" ({ "{") (do_statement "do {\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      } while (uVar9 < uVar8);" (do "do") (compound_statement "{\n        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }\n        uVar9 = uVar9 + 0x48;\n      }" ({ "{") (if_statement "if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }" (if "if") (parenthesized_expression "(((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4))))" (( "(") (binary_expression "((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&\n           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))" (parenthesized_expression "((*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48))" (( "(") (binary_expression "(*(uint *)(uVar9 + 0x2c) < uVar1) &&\n            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)" (parenthesized_expression "(*(uint *)(uVar9 + 0x2c) < uVar1)" (( "(") (binary_expression "*(uint *)(uVar9 + 0x2c) < uVar1" (pointer_expression "*(uint *)(uVar9 + 0x2c)" (* "*") (cast_expression "(uint *)(uVar9 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 0x2c)" (( "(") (binary_expression "uVar9 + 0x2c" (identifier "uVar9") (+ "+") (number_literal "0x2c")) () ")")))) (< "<") (identifier "uVar1")) () ")")) (&& "&&") (parenthesized_expression "(param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)" (( "(") (binary_expression "param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48" (identifier "param_4") (== "==") (binary_expression "uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48" (identifier "uVar12") (+ "+") (binary_expression "*(uint *)(uVar9 + 0x2c) * 0x48" (pointer_expression "*(uint *)(uVar9 + 0x2c)" (* "*") (cast_expression "(uint *)(uVar9 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 0x2c)" (( "(") (binary_expression "uVar9 + 0x2c" (identifier "uVar9") (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "0x48")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))" (( "(") (parenthesized_expression "(iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4))" (( "(") (comma_expression "iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)" (assignment_expression "iVar10 = *(int *)(uVar9 + 4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(uVar9 + 4)" (* "*") (cast_expression "(int *)(uVar9 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 4)" (( "(") (binary_expression "uVar9 + 4" (identifier "uVar9") (+ "+") (number_literal "4")) () ")"))))) (, ",") (binary_expression "iVar10 == 9 || (iVar10 == 4)" (binary_expression "iVar10 == 9" (identifier "iVar10") (== "==") (number_literal "9")) (|| "||") (parenthesized_expression "(iVar10 == 4)" (( "(") (binary_expression "iVar10 == 4" (identifier "iVar10") (== "==") (number_literal "4")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n          param_3[4] = iVar10;\n          if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar10 = param_3[2];\n          iVar5 = *param_3;\n          goto LAB_000321d8;\n        }" ({ "{") (expression_statement "param_3[4] = iVar10;" (assignment_expression "param_3[4] = iVar10" (subscript_expression "param_3[4]" (identifier "param_3") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "iVar10")) (; ";")) (if_statement "if (iVar10 == 9) {\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }\n          else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }" (if "if") (parenthesized_expression "(iVar10 == 9)" (( "(") (binary_expression "iVar10 == 9" (identifier "iVar10") (== "==") (number_literal "9")) () ")")) (compound_statement "{\n            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);\n          }" ({ "{") (expression_statement "iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);" (assignment_expression "iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3)" (identifier "iVar5") (= "=") (call_expression "FUN_0001d7b0(param_3 + 2,param_3 + 3)" (identifier "FUN_0001d7b0") (argument_list "(param_3 + 2,param_3 + 3)" (( "(") (binary_expression "param_3 + 2" (identifier "param_3") (+ "+") (number_literal "2")) (, ",") (binary_expression "param_3 + 3" (identifier "param_3") (+ "+") (number_literal "3")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }" (else "else") (compound_statement "{\n            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);\n          }" ({ "{") (expression_statement "iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);" (assignment_expression "iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3)" (identifier "iVar5") (= "=") (call_expression "FUN_0001e360(param_3 + 2,param_3 + 3)" (identifier "FUN_0001e360") (argument_list "(param_3 + 2,param_3 + 3)" (( "(") (binary_expression "param_3 + 2" (identifier "param_3") (+ "+") (number_literal "2")) (, ",") (binary_expression "param_3 + 3" (identifier "param_3") (+ "+") (number_literal "3")) () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar5 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar10 = param_3[2];" (assignment_expression "iVar10 = param_3[2]" (identifier "iVar10") (= "=") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar5 = *param_3;" (assignment_expression "iVar5 = *param_3" (identifier "iVar5") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (goto_statement "goto LAB_000321d8;" (goto "goto") (statement_identifier "LAB_000321d8") (; ";")) (} "}"))) (expression_statement "uVar9 = uVar9 + 0x48;" (assignment_expression "uVar9 = uVar9 + 0x48" (identifier "uVar9") (= "=") (binary_expression "uVar9 + 0x48" (identifier "uVar9") (+ "+") (number_literal "0x48"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar9 < uVar8)" (( "(") (binary_expression "uVar9 < uVar8" (identifier "uVar9") (< "<") (identifier "uVar8")) () ")")) (; ";")) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      iVar10 = 0;\n    }" (else "else") (compound_statement "{\n      iVar10 = 0;\n    }" ({ "{") (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_000321d8:\n    param_3[5] = iVar10;" (statement_identifier "LAB_000321d8") (: ":") (expression_statement "param_3[5] = iVar10;" (assignment_expression "param_3[5] = iVar10" (subscript_expression "param_3[5]" (identifier "param_3") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "iVar10")) (; ";"))) (} "}"))) (if_statement "if (iVar5 != 0) {\n    uVar8 = *(uint *)(param_4 + 0x20);\n    iVar10 = *(int *)(param_4 + 0x24);\n    if (((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&\n       (-1 < (int)param_6)) {\n      local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);\n      local_64 = (uint *)param_3[2];\n      if (local_64 == (uint *)0x0) {\n        *param_7 = local_30;\n        return 1;\n      }\n      local_4c = param_3[3];\n      puVar11 = (uint *)param_3[5];\n      if (puVar11 == local_64 + local_4c * 6) {\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }\n      bVar3 = false;\nLAB_0003227f:\n      uVar8 = *puVar11;\n      uVar12 = puVar11[1];\n      if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }\n      if ((uVar8 & 3) == 0) {\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }\nLAB_00032500:\n      puVar11 = puVar11 + 6;\n      if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }\n  }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar8 = *(uint *)(param_4 + 0x20);\n    iVar10 = *(int *)(param_4 + 0x24);\n    if (((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&\n       (-1 < (int)param_6)) {\n      local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);\n      local_64 = (uint *)param_3[2];\n      if (local_64 == (uint *)0x0) {\n        *param_7 = local_30;\n        return 1;\n      }\n      local_4c = param_3[3];\n      puVar11 = (uint *)param_3[5];\n      if (puVar11 == local_64 + local_4c * 6) {\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }\n      bVar3 = false;\nLAB_0003227f:\n      uVar8 = *puVar11;\n      uVar12 = puVar11[1];\n      if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }\n      if ((uVar8 & 3) == 0) {\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }\nLAB_00032500:\n      puVar11 = puVar11 + 6;\n      if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }\n  }" ({ "{") (expression_statement "uVar8 = *(uint *)(param_4 + 0x20);" (assignment_expression "uVar8 = *(uint *)(param_4 + 0x20)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(param_4 + 0x20)" (* "*") (cast_expression "(uint *)(param_4 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x20)" (( "(") (binary_expression "param_4 + 0x20" (identifier "param_4") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "iVar10 = *(int *)(param_4 + 0x24);" (assignment_expression "iVar10 = *(int *)(param_4 + 0x24)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_4 + 0x24)" (* "*") (cast_expression "(int *)(param_4 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x24)" (( "(") (binary_expression "param_4 + 0x24" (identifier "param_4") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (if_statement "if (((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&\n       (-1 < (int)param_6)) {\n      local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);\n      local_64 = (uint *)param_3[2];\n      if (local_64 == (uint *)0x0) {\n        *param_7 = local_30;\n        return 1;\n      }\n      local_4c = param_3[3];\n      puVar11 = (uint *)param_3[5];\n      if (puVar11 == local_64 + local_4c * 6) {\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }\n      bVar3 = false;\nLAB_0003227f:\n      uVar8 = *puVar11;\n      uVar12 = puVar11[1];\n      if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }\n      if ((uVar8 & 3) == 0) {\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }\nLAB_00032500:\n      puVar11 = puVar11 + 6;\n      if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }" (if "if") (parenthesized_expression "(((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&\n       (-1 < (int)param_6))" (( "(") (binary_expression "((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&\n       (-1 < (int)param_6)" (parenthesized_expression "((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6))" (( "(") (binary_expression "(iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&\n        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)" (parenthesized_expression "(iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8))" (( "(") (binary_expression "iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)" (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "(uint)-iVar10 < (uint)(3 < uVar8)" (binary_expression "(uint)-iVar10" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (- "-") (identifier "iVar10")) (< "<") (call_expression "(uint)(3 < uVar8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(3 < uVar8)" (( "(") (binary_expression "3 < uVar8" (number_literal "3") (< "<") (identifier "uVar8")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)" (( "(") (comma_expression "uVar12 = iVar10 + -1 + (uint)(3 < uVar8),\n        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6" (assignment_expression "uVar12 = iVar10 + -1 + (uint)(3 < uVar8)" (identifier "uVar12") (= "=") (binary_expression "iVar10 + -1 + (uint)(3 < uVar8)" (binary_expression "iVar10 + -1" (identifier "iVar10") (+ "+") (number_literal "-1")) (+ "+") (call_expression "(uint)(3 < uVar8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(3 < uVar8)" (( "(") (binary_expression "3 < uVar8" (number_literal "3") (< "<") (identifier "uVar8")) () ")"))))) (, ",") (binary_expression "param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6" (binary_expression "param_6 <= uVar12" (identifier "param_6") (<= "<=") (identifier "uVar12")) (&& "&&") (binary_expression "(uint)(uVar8 - 4 < param_5) <= uVar12 - param_6" (call_expression "(uint)(uVar8 - 4 < param_5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar8 - 4 < param_5)" (( "(") (binary_expression "uVar8 - 4 < param_5" (binary_expression "uVar8 - 4" (identifier "uVar8") (- "-") (number_literal "4")) (< "<") (identifier "param_5")) () ")"))) (<= "<=") (binary_expression "uVar12 - param_6" (identifier "uVar12") (- "-") (identifier "param_6"))))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(-1 < (int)param_6)" (( "(") (binary_expression "-1 < (int)param_6" (number_literal "-1") (< "<") (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6"))) () ")"))) () ")")) (compound_statement "{\n      local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);\n      local_64 = (uint *)param_3[2];\n      if (local_64 == (uint *)0x0) {\n        *param_7 = local_30;\n        return 1;\n      }\n      local_4c = param_3[3];\n      puVar11 = (uint *)param_3[5];\n      if (puVar11 == local_64 + local_4c * 6) {\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }\n      bVar3 = false;\nLAB_0003227f:\n      uVar8 = *puVar11;\n      uVar12 = puVar11[1];\n      if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }\n      if ((uVar8 & 3) == 0) {\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }\nLAB_00032500:\n      puVar11 = puVar11 + 6;\n      if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;\n      goto LAB_0003227f;\n    }" ({ "{") (expression_statement "local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);" (assignment_expression "local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4)" (identifier "local_30") (= "=") (call_expression "(*DAT_000b9dd8)(iVar5 + param_5,4)" (parenthesized_expression "(*DAT_000b9dd8)" (( "(") (pointer_expression "*DAT_000b9dd8" (* "*") (identifier "DAT_000b9dd8")) () ")")) (argument_list "(iVar5 + param_5,4)" (( "(") (binary_expression "iVar5 + param_5" (identifier "iVar5") (+ "+") (identifier "param_5")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "local_64 = (uint *)param_3[2];" (assignment_expression "local_64 = (uint *)param_3[2]" (identifier "local_64") (= "=") (cast_expression "(uint *)param_3[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (local_64 == (uint *)0x0) {\n        *param_7 = local_30;\n        return 1;\n      }" (if "if") (parenthesized_expression "(local_64 == (uint *)0x0)" (( "(") (binary_expression "local_64 == (uint *)0x0" (identifier "local_64") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *param_7 = local_30;\n        return 1;\n      }" ({ "{") (expression_statement "*param_7 = local_30;" (assignment_expression "*param_7 = local_30" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (identifier "local_30")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "local_4c = param_3[3];" (assignment_expression "local_4c = param_3[3]" (identifier "local_4c") (= "=") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar11 = (uint *)param_3[5];" (assignment_expression "puVar11 = (uint *)param_3[5]" (identifier "puVar11") (= "=") (cast_expression "(uint *)param_3[5]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[5]" (identifier "param_3") ([ "[") (number_literal "5") (] "]")))) (; ";")) (if_statement "if (puVar11 == local_64 + local_4c * 6) {\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }" (if "if") (parenthesized_expression "(puVar11 == local_64 + local_4c * 6)" (( "(") (binary_expression "puVar11 == local_64 + local_4c * 6" (identifier "puVar11") (== "==") (binary_expression "local_64 + local_4c * 6" (identifier "local_64") (+ "+") (binary_expression "local_4c * 6" (identifier "local_4c") (* "*") (number_literal "6")))) () ")")) (compound_statement "{\nLAB_000322a3:\n        *param_7 = local_30;\n        param_3[5] = (int)puVar11;\n        return 1;\n      }" ({ "{") (labeled_statement "LAB_000322a3:\n        *param_7 = local_30;" (statement_identifier "LAB_000322a3") (: ":") (expression_statement "*param_7 = local_30;" (assignment_expression "*param_7 = local_30" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (identifier "local_30")) (; ";"))) (expression_statement "param_3[5] = (int)puVar11;" (assignment_expression "param_3[5] = (int)puVar11" (subscript_expression "param_3[5]" (identifier "param_3") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";")) (labeled_statement "LAB_0003227f:\n      uVar8 = *puVar11;" (statement_identifier "LAB_0003227f") (: ":") (expression_statement "uVar8 = *puVar11;" (assignment_expression "uVar8 = *puVar11" (identifier "uVar8") (= "=") (pointer_expression "*puVar11" (* "*") (identifier "puVar11"))) (; ";"))) (expression_statement "uVar12 = puVar11[1];" (assignment_expression "uVar12 = puVar11[1]" (identifier "uVar12") (= "=") (subscript_expression "puVar11[1]" (identifier "puVar11") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }" (if "if") (parenthesized_expression "(param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8))" (( "(") (binary_expression "param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)" (binary_expression "param_6 < uVar12" (identifier "param_6") (< "<") (identifier "uVar12")) (|| "||") (binary_expression "param_6 - uVar12 < (uint)(param_5 < uVar8)" (binary_expression "param_6 - uVar12" (identifier "param_6") (- "-") (identifier "uVar12")) (< "<") (call_expression "(uint)(param_5 < uVar8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_5 < uVar8)" (( "(") (binary_expression "param_5 < uVar8" (identifier "param_5") (< "<") (identifier "uVar8")) () ")"))))) () ")")) (compound_statement "{\n        if (bVar3) goto LAB_000322a3;\n        uVar8 = *local_64;\n        uVar12 = local_64[1];\n        puVar11 = local_64;\n        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;\n        bVar3 = true;\n      }" ({ "{") (if_statement "if (bVar3) goto LAB_000322a3;" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (goto_statement "goto LAB_000322a3;" (goto "goto") (statement_identifier "LAB_000322a3") (; ";"))) (expression_statement "uVar8 = *local_64;" (assignment_expression "uVar8 = *local_64" (identifier "uVar8") (= "=") (pointer_expression "*local_64" (* "*") (identifier "local_64"))) (; ";")) (expression_statement "uVar12 = local_64[1];" (assignment_expression "uVar12 = local_64[1]" (identifier "uVar12") (= "=") (subscript_expression "local_64[1]" (identifier "local_64") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar11 = local_64;" (assignment_expression "puVar11 = local_64" (identifier "puVar11") (= "=") (identifier "local_64")) (; ";")) (if_statement "if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;" (if "if") (parenthesized_expression "(param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8))" (( "(") (binary_expression "param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)" (binary_expression "param_6 < uVar12" (identifier "param_6") (< "<") (identifier "uVar12")) (|| "||") (binary_expression "param_6 - uVar12 < (uint)(param_5 < uVar8)" (binary_expression "param_6 - uVar12" (identifier "param_6") (- "-") (identifier "uVar12")) (< "<") (call_expression "(uint)(param_5 < uVar8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_5 < uVar8)" (( "(") (binary_expression "param_5 < uVar8" (identifier "param_5") (< "<") (identifier "uVar8")) () ")"))))) () ")")) (goto_statement "goto LAB_000322a3;" (goto "goto") (statement_identifier "LAB_000322a3") (; ";"))) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (; ";")) (} "}"))) (if_statement "if ((uVar8 & 3) == 0) {\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }\n      else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }" (if "if") (parenthesized_expression "((uVar8 & 3) == 0)" (( "(") (binary_expression "(uVar8 & 3) == 0" (parenthesized_expression "(uVar8 & 3)" (( "(") (binary_expression "uVar8 & 3" (identifier "uVar8") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }\n      }" ({ "{") (if_statement "if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)) {\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }" (if "if") (parenthesized_expression "((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0))" (( "(") (binary_expression "(param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&\n           (*(int *)(param_2 + 4) != 0)" (parenthesized_expression "(param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6)" (( "(") (binary_expression "param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6" (binary_expression "param_6 <= uVar12" (identifier "param_6") (<= "<=") (identifier "uVar12")) (&& "&&") (binary_expression "(uint)(uVar8 < param_5) <= uVar12 - param_6" (call_expression "(uint)(uVar8 < param_5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar8 < param_5)" (( "(") (binary_expression "uVar8 < param_5" (identifier "uVar8") (< "<") (identifier "param_5")) () ")"))) (<= "<=") (binary_expression "uVar12 - param_6" (identifier "uVar12") (- "-") (identifier "param_6")))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_2 + 4) != 0)" (( "(") (binary_expression "*(int *)(param_2 + 4) != 0" (pointer_expression "*(int *)(param_2 + 4)" (* "*") (cast_expression "(int *)(param_2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          iVar5 = param_3[4];\n          if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }\n          uVar12 = puVar11[2];\n          uVar1 = *(uint *)(param_2 + 8);\n          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;\n          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }\n          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));\n          uVar9 = *puVar6;\n          uVar1 = *puVar6;\n          uVar2 = puVar6[1];\n          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));\n          if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }\n          warn(uVar4,pbVar13);\n          local_64 = (uint *)param_3[2];\n          local_4c = param_3[3];\n        }" ({ "{") (expression_statement "iVar5 = param_3[4];" (assignment_expression "iVar5 = param_3[4]" (identifier "iVar5") (= "=") (subscript_expression "param_3[4]" (identifier "param_3") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if (iVar5 == 9) {\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }\n          else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }" (if "if") (parenthesized_expression "(iVar5 == 9)" (( "(") (binary_expression "iVar5 == 9" (identifier "iVar5") (== "==") (number_literal "9")) () ")")) (compound_statement "{\n            local_50 = 0;\n            local_54 = local_30 & 0x7fffffff;\n            if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }\n          }" ({ "{") (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_54 = local_30 & 0x7fffffff;" (assignment_expression "local_54 = local_30 & 0x7fffffff" (identifier "local_54") (= "=") (binary_expression "local_30 & 0x7fffffff" (identifier "local_30") (& "&") (number_literal "0x7fffffff"))) (; ";")) (if_statement "if ((local_30 & 0x40000000) != 0) {\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }" (if "if") (parenthesized_expression "((local_30 & 0x40000000) != 0)" (( "(") (binary_expression "(local_30 & 0x40000000) != 0" (parenthesized_expression "(local_30 & 0x40000000)" (( "(") (binary_expression "local_30 & 0x40000000" (identifier "local_30") (& "&") (number_literal "0x40000000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              local_50 = 0xffffffff;\n              local_54 = local_54 | 0x80000000;\n            }" ({ "{") (expression_statement "local_50 = 0xffffffff;" (assignment_expression "local_50 = 0xffffffff" (identifier "local_50") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_54 = local_54 | 0x80000000;" (assignment_expression "local_54 = local_54 | 0x80000000" (identifier "local_54") (= "=") (binary_expression "local_54 | 0x80000000" (identifier "local_54") (| "|") (number_literal "0x80000000"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }" (else "else") (compound_statement "{\n            if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }\n            local_54 = puVar11[4];\n            local_50 = puVar11[5];\n          }" ({ "{") (if_statement "if (iVar5 != 4) {\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }" (if "if") (parenthesized_expression "(iVar5 != 4)" (( "(") (binary_expression "iVar5 != 4" (identifier "iVar5") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);\n              error(uVar4,iVar5);\n              goto LAB_000322a3;\n            }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"Unknown section relocation type %d encountered\n",5)" (identifier "dcgettext") (argument_list "(0,"Unknown section relocation type %d encountered\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Unknown section relocation type %d encountered\n"" (" """) (string_content "Unknown section relocation type %d encountered") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(uVar4,iVar5);" (call_expression "error(uVar4,iVar5)" (identifier "error") (argument_list "(uVar4,iVar5)" (( "(") (identifier "uVar4") (, ",") (identifier "iVar5") () ")"))) (; ";")) (goto_statement "goto LAB_000322a3;" (goto "goto") (statement_identifier "LAB_000322a3") (; ";")) (} "}"))) (expression_statement "local_54 = puVar11[4];" (assignment_expression "local_54 = puVar11[4]" (identifier "local_54") (= "=") (subscript_expression "puVar11[4]" (identifier "puVar11") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "local_50 = puVar11[5];" (assignment_expression "local_50 = puVar11[5]" (identifier "local_50") (= "=") (subscript_expression "puVar11[5]" (identifier "puVar11") ([ "[") (number_literal "5") (] "]"))) (; ";")) (} "}")))) (expression_statement "uVar12 = puVar11[2];" (assignment_expression "uVar12 = puVar11[2]" (identifier "uVar12") (= "=") (subscript_expression "puVar11[2]" (identifier "puVar11") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar1 = *(uint *)(param_2 + 8);" (assignment_expression "uVar1 = *(uint *)(param_2 + 8)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(param_2 + 8)" (* "*") (cast_expression "(uint *)(param_2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;" (assignment_expression "uVar9 = uVar12 >> 8 | puVar11[3] << 0x18" (identifier "uVar9") (= "=") (binary_expression "uVar12 >> 8 | puVar11[3] << 0x18" (binary_expression "uVar12 >> 8" (identifier "uVar12") (>> ">>") (number_literal "8")) (| "|") (binary_expression "puVar11[3] << 0x18" (subscript_expression "puVar11[3]" (identifier "puVar11") ([ "[") (number_literal "3") (] "]")) (<< "<<") (number_literal "0x18")))) (; ";")) (if_statement "if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }" (if "if") (parenthesized_expression "((uint)(uVar9 < uVar1) <= puVar11[3] >> 8)" (( "(") (binary_expression "(uint)(uVar9 < uVar1) <= puVar11[3] >> 8" (call_expression "(uint)(uVar9 < uVar1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar9 < uVar1)" (( "(") (binary_expression "uVar9 < uVar1" (identifier "uVar9") (< "<") (identifier "uVar1")) () ")"))) (<= "<=") (binary_expression "puVar11[3] >> 8" (subscript_expression "puVar11[3]" (identifier "puVar11") ([ "[") (number_literal "3") (] "]")) (>> ">>") (number_literal "8"))) () ")")) (compound_statement "{\n            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);\n            error(uVar4,uVar9,uVar1);\n            goto LAB_000322a3;\n          }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5)" (identifier "dcgettext") (argument_list "(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Bad symbol index in unwind relocation (%lu > %lu)\n"" (" """) (string_content "Bad symbol index in unwind relocation (%lu > %lu)") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(uVar4,uVar9,uVar1);" (call_expression "error(uVar4,uVar9,uVar1)" (identifier "error") (argument_list "(uVar4,uVar9,uVar1)" (( "(") (identifier "uVar4") (, ",") (identifier "uVar9") (, ",") (identifier "uVar1") () ")"))) (; ";")) (goto_statement "goto LAB_000322a3;" (goto "goto") (statement_identifier "LAB_000322a3") (; ";")) (} "}"))) (expression_statement "puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));" (assignment_expression "puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4))" (identifier "puVar6") (= "=") (cast_expression "(uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 * 0x1c + *(int *)(param_2 + 4))" (( "(") (binary_expression "uVar9 * 0x1c + *(int *)(param_2 + 4)" (binary_expression "uVar9 * 0x1c" (identifier "uVar9") (* "*") (number_literal "0x1c")) (+ "+") (pointer_expression "*(int *)(param_2 + 4)" (* "*") (cast_expression "(int *)(param_2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")"))))) () ")")))) (; ";")) (expression_statement "uVar9 = *puVar6;" (assignment_expression "uVar9 = *puVar6" (identifier "uVar9") (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (expression_statement "uVar1 = *puVar6;" (assignment_expression "uVar1 = *puVar6" (identifier "uVar1") (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (expression_statement "uVar2 = puVar6[1];" (assignment_expression "uVar2 = puVar6[1]" (identifier "uVar2") (= "=") (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));" (assignment_expression "local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10))" (identifier "local_44") (= "=") (binary_expression "(local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10))" (parenthesized_expression "(local_54 + uVar1)" (( "(") (binary_expression "local_54 + uVar1" (identifier "local_54") (+ "+") (identifier "uVar1")) () ")")) (- "-") (parenthesized_expression "(uVar8 + *(int *)(param_3[1] + 0x10))" (( "(") (binary_expression "uVar8 + *(int *)(param_3[1] + 0x10)" (identifier "uVar8") (+ "+") (pointer_expression "*(int *)(param_3[1] + 0x10)" (* "*") (cast_expression "(int *)(param_3[1] + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3[1] + 0x10)" (( "(") (binary_expression "param_3[1] + 0x10" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x10")) () ")"))))) () ")")))) (; ";")) (if_statement "if (*(short *)(param_1 + 0x42) == 0x28) {\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }\n          else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }" (if "if") (parenthesized_expression "(*(short *)(param_1 + 0x42) == 0x28)" (( "(") (binary_expression "*(short *)(param_1 + 0x42) == 0x28" (pointer_expression "*(short *)(param_1 + 0x42)" (* "*") (cast_expression "(short *)(param_1 + 0x42)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x42)" (( "(") (binary_expression "param_1 + 0x42" (identifier "param_1") (+ "+") (number_literal "0x42")) () ")")))) (== "==") (number_literal "0x28")) () ")")) (compound_statement "{\n            pbVar13 = (byte *)FUN_00014aa0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }\n            pcVar7 = "Skipping unknown ARM relocation type: %d\n";\nLAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);\n            uVar4 = dcgettext(0,pcVar7,5);\n          }" ({ "{") (expression_statement "pbVar13 = (byte *)FUN_00014aa0();" (assignment_expression "pbVar13 = (byte *)FUN_00014aa0()" (identifier "pbVar13") (= "=") (cast_expression "(byte *)FUN_00014aa0()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00014aa0()" (identifier "FUN_00014aa0") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" (identifier "bVar16") (= "=") (false "false")) (; ";")) (expression_statement "bVar18 = pbVar13 == (byte *)0x0;" (assignment_expression "bVar18 = pbVar13 == (byte *)0x0" (identifier "bVar18") (= "=") (binary_expression "pbVar13 == (byte *)0x0" (identifier "pbVar13") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (if_statement "if (!bVar18) {\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }" (if "if") (parenthesized_expression "(!bVar18)" (( "(") (unary_expression "!bVar18" (! "!") (identifier "bVar18")) () ")")) (compound_statement "{\n              iVar5 = 0xb;\n              pbVar14 = pbVar13;\n              pbVar15 = (byte *)"R_ARM_NONE";\n              do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);\n              bVar17 = false;\n              bVar16 = (!bVar16 && !bVar18) == bVar16;\n              if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }\n              goto LAB_00032500;\n            }" ({ "{") (expression_statement "iVar5 = 0xb;" (assignment_expression "iVar5 = 0xb" (identifier "iVar5") (= "=") (number_literal "0xb")) (; ";")) (expression_statement "pbVar14 = pbVar13;" (assignment_expression "pbVar14 = pbVar13" (identifier "pbVar14") (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "pbVar15 = (byte *)"R_ARM_NONE";" (assignment_expression "pbVar15 = (byte *)"R_ARM_NONE"" (identifier "pbVar15") (= "=") (cast_expression "(byte *)"R_ARM_NONE"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""R_ARM_NONE"" (" """) (string_content "R_ARM_NONE") (" """)))) (; ";")) (do_statement "do {\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              } while (bVar18);" (do "do") (compound_statement "{\n                if (iVar5 == 0) break;\n                iVar5 = iVar5 + -1;\n                bVar16 = *pbVar14 < *pbVar15;\n                bVar18 = *pbVar14 == *pbVar15;\n                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n              }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar16 = *pbVar14 < *pbVar15;" (assignment_expression "bVar16 = *pbVar14 < *pbVar15" (identifier "bVar16") (= "=") (binary_expression "*pbVar14 < *pbVar15" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (< "<") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "bVar18 = *pbVar14 == *pbVar15;" (assignment_expression "bVar18 = *pbVar14 == *pbVar15" (identifier "bVar18") (= "=") (binary_expression "*pbVar14 == *pbVar15" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (== "==") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar19 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar19 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar18)" (( "(") (identifier "bVar18") () ")")) (; ";")) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" (identifier "bVar17") (= "=") (false "false")) (; ";")) (expression_statement "bVar16 = (!bVar16 && !bVar18) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar18) == bVar16" (identifier "bVar16") (= "=") (binary_expression "(!bVar16 && !bVar18) == bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" (( "(") (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" (! "!") (identifier "bVar16")) (&& "&&") (unary_expression "!bVar18" (! "!") (identifier "bVar18"))) () ")")) (== "==") (identifier "bVar16"))) (; ";")) (if_statement "if (!bVar16) {\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }" (if "if") (parenthesized_expression "(!bVar16)" (( "(") (unary_expression "!bVar16" (! "!") (identifier "bVar16")) () ")")) (compound_statement "{\n                iVar5 = 0xd;\n                pbVar14 = pbVar13;\n                pbVar15 = (byte *)"R_ARM_PREL31";\n                do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);\n                if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }\nLAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;\n                *param_8 = (short)puVar6[6];\n                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);\n                *(uint *)(param_8 + 2) = local_54 + uVar1;\n                if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }\n                goto LAB_000322a3;\n              }" ({ "{") (expression_statement "iVar5 = 0xd;" (assignment_expression "iVar5 = 0xd" (identifier "iVar5") (= "=") (number_literal "0xd")) (; ";")) (expression_statement "pbVar14 = pbVar13;" (assignment_expression "pbVar14 = pbVar13" (identifier "pbVar14") (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "pbVar15 = (byte *)"R_ARM_PREL31";" (assignment_expression "pbVar15 = (byte *)"R_ARM_PREL31"" (identifier "pbVar15") (= "=") (cast_expression "(byte *)"R_ARM_PREL31"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""R_ARM_PREL31"" (" """) (string_content "R_ARM_PREL31") (" """)))) (; ";")) (do_statement "do {\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                } while (bVar16);" (do "do") (compound_statement "{\n                  if (iVar5 == 0) break;\n                  iVar5 = iVar5 + -1;\n                  bVar17 = *pbVar14 < *pbVar15;\n                  bVar16 = *pbVar14 == *pbVar15;\n                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n                }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar17 = *pbVar14 < *pbVar15;" (assignment_expression "bVar17 = *pbVar14 < *pbVar15" (identifier "bVar17") (= "=") (binary_expression "*pbVar14 < *pbVar15" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (< "<") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "bVar16 = *pbVar14 == *pbVar15;" (assignment_expression "bVar16 = *pbVar14 == *pbVar15" (identifier "bVar16") (= "=") (binary_expression "*pbVar14 == *pbVar15" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (== "==") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar19 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar19 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (; ";")) (if_statement "if ((!bVar17 && !bVar16) != bVar17) {\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }" (if "if") (parenthesized_expression "((!bVar17 && !bVar16) != bVar17)" (( "(") (binary_expression "(!bVar17 && !bVar16) != bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" (( "(") (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" (! "!") (identifier "bVar17")) (&& "&&") (unary_expression "!bVar16" (! "!") (identifier "bVar16"))) () ")")) (!= "!=") (identifier "bVar17")) () ")")) (compound_statement "{\n                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);\n                  warn(uVar4,pbVar13);\n                  local_64 = (uint *)param_3[2];\n                  local_4c = param_3[3];\n                  goto LAB_00032500;\n                }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5)" (identifier "dcgettext") (argument_list "(0,"Skipping unexpected ARM relocation type %s\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Skipping unexpected ARM relocation type %s\n"" (" """) (string_content "Skipping unexpected ARM relocation type %s") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar4,pbVar13);" (call_expression "warn(uVar4,pbVar13)" (identifier "warn") (argument_list "(uVar4,pbVar13)" (( "(") (identifier "uVar4") (, ",") (identifier "pbVar13") () ")"))) (; ";")) (expression_statement "local_64 = (uint *)param_3[2];" (assignment_expression "local_64 = (uint *)param_3[2]" (identifier "local_64") (= "=") (cast_expression "(uint *)param_3[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "local_4c = param_3[3];" (assignment_expression "local_4c = param_3[3]" (identifier "local_4c") (= "=") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]"))) (; ";")) (goto_statement "goto LAB_00032500;" (goto "goto") (statement_identifier "LAB_00032500") (; ";")) (} "}"))) (labeled_statement "LAB_0003245c:\n                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;" (statement_identifier "LAB_0003245c") (: ":") (expression_statement "local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;" (assignment_expression "local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000" (identifier "local_30") (= "=") (binary_expression "local_44 & 0x7fffffff | local_30 & 0x80000000" (binary_expression "local_44 & 0x7fffffff" (identifier "local_44") (& "&") (number_literal "0x7fffffff")) (| "|") (binary_expression "local_30 & 0x80000000" (identifier "local_30") (& "&") (number_literal "0x80000000")))) (; ";"))) (expression_statement "*param_8 = (short)puVar6[6];" (assignment_expression "*param_8 = (short)puVar6[6]" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (cast_expression "(short)puVar6[6]" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (subscript_expression "puVar6[6]" (identifier "puVar6") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "*(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);" (assignment_expression "*(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9)" (pointer_expression "*(uint *)(param_8 + 4)" (* "*") (cast_expression "(uint *)(param_8 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_8 + 4)" (( "(") (binary_expression "param_8 + 4" (identifier "param_8") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "local_50 + uVar2 + (uint)CARRY4(local_54,uVar9)" (binary_expression "local_50 + uVar2" (identifier "local_50") (+ "+") (identifier "uVar2")) (+ "+") (cast_expression "(uint)CARRY4(local_54,uVar9)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(local_54,uVar9)" (identifier "CARRY4") (argument_list "(local_54,uVar9)" (( "(") (identifier "local_54") (, ",") (identifier "uVar9") () ")")))))) (; ";")) (expression_statement "*(uint *)(param_8 + 2) = local_54 + uVar1;" (assignment_expression "*(uint *)(param_8 + 2) = local_54 + uVar1" (pointer_expression "*(uint *)(param_8 + 2)" (* "*") (cast_expression "(uint *)(param_8 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_8 + 2)" (( "(") (binary_expression "param_8 + 2" (identifier "param_8") (+ "+") (number_literal "2")) () ")")))) (= "=") (binary_expression "local_54 + uVar1" (identifier "local_54") (+ "+") (identifier "uVar1"))) (; ";")) (if_statement "if (param_9 != (uint *)0x0) {\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }" (if "if") (parenthesized_expression "(param_9 != (uint *)0x0)" (( "(") (binary_expression "param_9 != (uint *)0x0" (identifier "param_9") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  uVar8 = puVar6[4];\n                  param_9[1] = 0;\n                  *param_9 = uVar8;\n                }" ({ "{") (expression_statement "uVar8 = puVar6[4];" (assignment_expression "uVar8 = puVar6[4]" (identifier "uVar8") (= "=") (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "param_9[1] = 0;" (assignment_expression "param_9[1] = 0" (subscript_expression "param_9[1]" (identifier "param_9") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_9 = uVar8;" (assignment_expression "*param_9 = uVar8" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (= "=") (identifier "uVar8")) (; ";")) (} "}"))) (goto_statement "goto LAB_000322a3;" (goto "goto") (statement_identifier "LAB_000322a3") (; ";")) (} "}"))) (goto_statement "goto LAB_00032500;" (goto "goto") (statement_identifier "LAB_00032500") (; ";")) (} "}"))) (expression_statement "pcVar7 = "Skipping unknown ARM relocation type: %d\n";" (assignment_expression "pcVar7 = "Skipping unknown ARM relocation type: %d\n"" (identifier "pcVar7") (= "=") (string_literal ""Skipping unknown ARM relocation type: %d\n"" (" """) (string_content "Skipping unknown ARM relocation type: %d") (escape_sequence "\n") (" """))) (; ";")) (labeled_statement "LAB_00032686:\n            pbVar13 = (byte *)(uVar12 & 0xff);" (statement_identifier "LAB_00032686") (: ":") (expression_statement "pbVar13 = (byte *)(uVar12 & 0xff);" (assignment_expression "pbVar13 = (byte *)(uVar12 & 0xff)" (identifier "pbVar13") (= "=") (cast_expression "(byte *)(uVar12 & 0xff)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 & 0xff)" (( "(") (binary_expression "uVar12 & 0xff" (identifier "uVar12") (& "&") (number_literal "0xff")) () ")")))) (; ";"))) (expression_statement "uVar4 = dcgettext(0,pcVar7,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar7,5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,pcVar7,5)" (identifier "dcgettext") (argument_list "(0,pcVar7,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar7") (, ",") (number_literal "5") () ")")))) (; ";")) (} "}")) (else_clause "else {\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }" (else "else") (compound_statement "{\n            if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }\n            pbVar13 = (byte *)FUN_00019be0();\n            bVar16 = false;\n            bVar18 = pbVar13 == (byte *)0x0;\n            if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }\n            iVar5 = 0xd;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_NONE";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);\n            bVar17 = false;\n            bVar16 = (!bVar16 && !bVar18) == bVar16;\n            if (bVar16) goto LAB_00032500;\n            iVar5 = 0xf;\n            pbVar14 = pbVar13;\n            pbVar15 = (byte *)"R_C6000_PREL31";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }\n            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);\n          }" ({ "{") (if_statement "if (*(short *)(param_1 + 0x42) != 0x8c) {\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }" (if "if") (parenthesized_expression "(*(short *)(param_1 + 0x42) != 0x8c)" (( "(") (binary_expression "*(short *)(param_1 + 0x42) != 0x8c" (pointer_expression "*(short *)(param_1 + 0x42)" (* "*") (cast_expression "(short *)(param_1 + 0x42)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x42)" (( "(") (binary_expression "param_1 + 0x42" (identifier "param_1") (+ "+") (number_literal "0x42")) () ")")))) (!= "!=") (number_literal "0x8c")) () ")")) (compound_statement "{\n              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);\n              warn(uVar4);\n              goto LAB_000322a3;\n            }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5)" (identifier "dcgettext") (argument_list "(0,"Only TI and ARM unwinders are currently supported\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Only TI and ARM unwinders are currently supported\n"" (" """) (string_content "Only TI and ARM unwinders are currently supported") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar4);" (call_expression "warn(uVar4)" (identifier "warn") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (goto_statement "goto LAB_000322a3;" (goto "goto") (statement_identifier "LAB_000322a3") (; ";")) (} "}"))) (expression_statement "pbVar13 = (byte *)FUN_00019be0();" (assignment_expression "pbVar13 = (byte *)FUN_00019be0()" (identifier "pbVar13") (= "=") (cast_expression "(byte *)FUN_00019be0()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00019be0()" (identifier "FUN_00019be0") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" (identifier "bVar16") (= "=") (false "false")) (; ";")) (expression_statement "bVar18 = pbVar13 == (byte *)0x0;" (assignment_expression "bVar18 = pbVar13 == (byte *)0x0" (identifier "bVar18") (= "=") (binary_expression "pbVar13 == (byte *)0x0" (identifier "pbVar13") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (if_statement "if (bVar18) {\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }" (if "if") (parenthesized_expression "(bVar18)" (( "(") (identifier "bVar18") () ")")) (compound_statement "{\n              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";\n              goto LAB_00032686;\n            }" ({ "{") (expression_statement "pcVar7 = "Skipping unknown C6000 relocation type: %d\n";" (assignment_expression "pcVar7 = "Skipping unknown C6000 relocation type: %d\n"" (identifier "pcVar7") (= "=") (string_literal ""Skipping unknown C6000 relocation type: %d\n"" (" """) (string_content "Skipping unknown C6000 relocation type: %d") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_00032686;" (goto "goto") (statement_identifier "LAB_00032686") (; ";")) (} "}"))) (expression_statement "iVar5 = 0xd;" (assignment_expression "iVar5 = 0xd" (identifier "iVar5") (= "=") (number_literal "0xd")) (; ";")) (expression_statement "pbVar14 = pbVar13;" (assignment_expression "pbVar14 = pbVar13" (identifier "pbVar14") (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "pbVar15 = (byte *)"R_C6000_NONE";" (assignment_expression "pbVar15 = (byte *)"R_C6000_NONE"" (identifier "pbVar15") (= "=") (cast_expression "(byte *)"R_C6000_NONE"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""R_C6000_NONE"" (" """) (string_content "R_C6000_NONE") (" """)))) (; ";")) (do_statement "do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar18);" (do "do") (compound_statement "{\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar16 = *pbVar14 < *pbVar15;\n              bVar18 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar16 = *pbVar14 < *pbVar15;" (assignment_expression "bVar16 = *pbVar14 < *pbVar15" (identifier "bVar16") (= "=") (binary_expression "*pbVar14 < *pbVar15" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (< "<") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "bVar18 = *pbVar14 == *pbVar15;" (assignment_expression "bVar18 = *pbVar14 == *pbVar15" (identifier "bVar18") (= "=") (binary_expression "*pbVar14 == *pbVar15" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (== "==") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar19 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar19 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar18)" (( "(") (identifier "bVar18") () ")")) (; ";")) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" (identifier "bVar17") (= "=") (false "false")) (; ";")) (expression_statement "bVar16 = (!bVar16 && !bVar18) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar18) == bVar16" (identifier "bVar16") (= "=") (binary_expression "(!bVar16 && !bVar18) == bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" (( "(") (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" (! "!") (identifier "bVar16")) (&& "&&") (unary_expression "!bVar18" (! "!") (identifier "bVar18"))) () ")")) (== "==") (identifier "bVar16"))) (; ";")) (if_statement "if (bVar16) goto LAB_00032500;" (if "if") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (goto_statement "goto LAB_00032500;" (goto "goto") (statement_identifier "LAB_00032500") (; ";"))) (expression_statement "iVar5 = 0xf;" (assignment_expression "iVar5 = 0xf" (identifier "iVar5") (= "=") (number_literal "0xf")) (; ";")) (expression_statement "pbVar14 = pbVar13;" (assignment_expression "pbVar14 = pbVar13" (identifier "pbVar14") (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "pbVar15 = (byte *)"R_C6000_PREL31";" (assignment_expression "pbVar15 = (byte *)"R_C6000_PREL31"" (identifier "pbVar15") (= "=") (cast_expression "(byte *)"R_C6000_PREL31"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""R_C6000_PREL31"" (" """) (string_content "R_C6000_PREL31") (" """)))) (; ";")) (do_statement "do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            } while (bVar16);" (do "do") (compound_statement "{\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar17 = *pbVar14 < *pbVar15;\n              bVar16 = *pbVar14 == *pbVar15;\n              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar17 = *pbVar14 < *pbVar15;" (assignment_expression "bVar17 = *pbVar14 < *pbVar15" (identifier "bVar17") (= "=") (binary_expression "*pbVar14 < *pbVar15" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (< "<") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "bVar16 = *pbVar14 == *pbVar15;" (assignment_expression "bVar16 = *pbVar14 == *pbVar15" (identifier "bVar16") (= "=") (binary_expression "*pbVar14 == *pbVar15" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (== "==") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar19 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar19 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (; ";")) (if_statement "if ((!bVar17 && !bVar16) == bVar17) {\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }" (if "if") (parenthesized_expression "((!bVar17 && !bVar16) == bVar17)" (( "(") (binary_expression "(!bVar17 && !bVar16) == bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" (( "(") (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" (! "!") (identifier "bVar17")) (&& "&&") (unary_expression "!bVar16" (! "!") (identifier "bVar16"))) () ")")) (== "==") (identifier "bVar17")) () ")")) (compound_statement "{\n              local_44 = local_44 >> 1;\n              goto LAB_0003245c;\n            }" ({ "{") (expression_statement "local_44 = local_44 >> 1;" (assignment_expression "local_44 = local_44 >> 1" (identifier "local_44") (= "=") (binary_expression "local_44 >> 1" (identifier "local_44") (>> ">>") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_0003245c;" (goto "goto") (statement_identifier "LAB_0003245c") (; ";")) (} "}"))) (expression_statement "uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5)" (identifier "dcgettext") (argument_list "(0,"Skipping unexpected C6000 relocation type %s\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Skipping unexpected C6000 relocation type %s\n"" (" """) (string_content "Skipping unexpected C6000 relocation type %s") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (} "}")))) (expression_statement "warn(uVar4,pbVar13);" (call_expression "warn(uVar4,pbVar13)" (identifier "warn") (argument_list "(uVar4,pbVar13)" (( "(") (identifier "uVar4") (, ",") (identifier "pbVar13") () ")"))) (; ";")) (expression_statement "local_64 = (uint *)param_3[2];" (assignment_expression "local_64 = (uint *)param_3[2]" (identifier "local_64") (= "=") (cast_expression "(uint *)param_3[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "local_4c = param_3[3];" (assignment_expression "local_4c = param_3[3]" (identifier "local_4c") (= "=") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }" (else "else") (compound_statement "{\n        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);\n        warn(uVar4,uVar8);\n        local_64 = (uint *)param_3[2];\n        local_4c = param_3[3];\n      }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);" (assignment_expression "uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5)" (identifier "dcgettext") (argument_list "(0,"Skipping unexpected relocation at offset 0x%lx\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Skipping unexpected relocation at offset 0x%lx\n"" (" """) (string_content "Skipping unexpected relocation at offset 0x%lx") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar4,uVar8);" (call_expression "warn(uVar4,uVar8)" (identifier "warn") (argument_list "(uVar4,uVar8)" (( "(") (identifier "uVar4") (, ",") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "local_64 = (uint *)param_3[2];" (assignment_expression "local_64 = (uint *)param_3[2]" (identifier "local_64") (= "=") (cast_expression "(uint *)param_3[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "local_4c = param_3[3];" (assignment_expression "local_4c = param_3[3]" (identifier "local_4c") (= "=") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]"))) (; ";")) (} "}")))) (labeled_statement "LAB_00032500:\n      puVar11 = puVar11 + 6;" (statement_identifier "LAB_00032500") (: ":") (expression_statement "puVar11 = puVar11 + 6;" (assignment_expression "puVar11 = puVar11 + 6" (identifier "puVar11") (= "=") (binary_expression "puVar11 + 6" (identifier "puVar11") (+ "+") (number_literal "6"))) (; ";"))) (if_statement "if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;" (if "if") (parenthesized_expression "(puVar11 == local_64 + local_4c * 6)" (( "(") (binary_expression "puVar11 == local_64 + local_4c * 6" (identifier "puVar11") (== "==") (binary_expression "local_64 + local_4c * 6" (identifier "local_64") (+ "+") (binary_expression "local_4c * 6" (identifier "local_4c") (* "*") (number_literal "6")))) () ")")) (goto_statement "goto LAB_000322a3;" (goto "goto") (statement_identifier "LAB_000322a3") (; ";"))) (goto_statement "goto LAB_0003227f;" (goto "goto") (statement_identifier "LAB_0003227f") (; ";")) (} "}"))) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

type_1 __regparm3
function_1
          (type_2 *filedata,type_3 *aux,type_4 *arm_sec,type_5 *var_2,
          type_6 word_offset,type_7 *wordp,type_8 *addr,type_6 *var_1)

{
  type_9 **arm_sec_1;
  type_10 var_23;
  type_5 *var_6;
  type_11 rel_offset;
  type_7 var_19;
  type_7 var_21;
  type_11 uVar5;
  bool bVar6;
  type_6 bVar7;
  char *pcVar8;
  type_4 *var_13;
  int var_11;
  type_12 *pEVar10;
  type_13 *var_25;
  type_7 var_7;
  int var_26;
  type_5 *var_12;
  type_9 *var_15;
  type_7 var_8;
  type_7 var_20;
  int var_22;
  type_13 *var_27;
  type_13 *var_28;
  bool var_29;
  bool var_30;
  bool bVar23;
  type_13 bVar24;
  type_9 *var_14;
  type_7 var_17;
  int var_33;
  type_11 var_16;
  type_7 var_32;
  type_14 local_30;
  
  bVar24 = 0;
  addr->section = 0;
  *(type_15 *)&addr->offset = 0;
  *(type_15 *)((int)&addr->offset + 4) = 0;
  if (var_1 != (type_6 *)0x0) {
    *(type_15 *)var_1 = 0xffffffff;
    *(type_15 *)((int)var_1 + 4) = 0xffffffff;
  }
  var_13 = (type_4 *)arm_sec->data;
  if (arm_sec->var_2 != var_2) {
    arm_sec_1 = &arm_sec->rela;
    var_3(var_13,(type_4 *)arm_sec_1);
    arm_sec->var_2 = var_2;
    pcVar8 = (char *)var_4(0,"unwind data",5);
    var_13 = (type_4 *)
                 var_5((void *)0x0,aux->filedata,(type_11)var_2->sh_offset,1,var_2->sh_size,pcVar8);
    arm_sec->rela = (type_9 *)0x0;
    arm_sec->data = (type_16 *)var_13;
    var_6 = filedata->section_headers;
    var_7 = (filedata->file_header).e_shnum;
    arm_sec->nrelas = 0;
    var_12 = var_6;
    if (var_6 < var_6 + var_7) {
      do {
        if (((var_12->sh_info < var_7) && (var_2 == var_6 + var_12->sh_info)) &&
           ((var_8 = var_12->sh_type, var_8 == 9 || (var_8 == 4)))) {
          uVar5 = (type_11)var_12->sh_size;
          arm_sec->rel_type = var_8;
          rel_offset = (type_11)var_12->sh_offset;
          if (var_8 == 9) {
            var_11 = var_9(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);
          }
          else {
            var_11 = var_10(aux->filedata,rel_offset,uVar5,arm_sec_1,&arm_sec->nrelas);
          }
          if (var_11 == 0) {
            return 0;
          }
          var_15 = arm_sec->rela;
          var_13 = (type_4 *)arm_sec->data;
          goto LAB_000321d8;
        }
        var_12 = var_12 + 1;
      } while (var_12 < var_6 + var_7);
      var_15 = (type_9 *)0x0;
    }
    else {
      var_15 = (type_9 *)0x0;
    }
LAB_000321d8:
    arm_sec->next_rela = var_15;
  }
  if (var_13 != (type_4 *)0x0) {
    var_7 = (type_7)var_2->sh_size;
    var_11 = *(int *)((int)&var_2->sh_size + 4);
    if (((var_11 != 0 || (type_7)-var_11 < (type_7)(3 < var_7)) &&
        (var_8 = var_11 + -1 + (type_7)(3 < var_7),
        word_offset._4_4_ <= var_8 &&
        (type_7)(var_7 - 4 < (type_7)word_offset) <= var_8 - word_offset._4_4_)) &&
       (-1 < (type_17)word_offset)) {
      local_30._0_4_ = (*byte_get)((type_16 *)((int)&var_13->data + (type_7)word_offset),4);
      var_14 = arm_sec->rela;
      if (var_14 == (type_9 *)0x0) {
                    /* WARNING: Store size is inaccurate */
        *(type_14 *)wordp = (type_14)local_30;
        return 1;
      }
      var_16 = arm_sec->nrelas;
      var_15 = arm_sec->next_rela;
      if (var_15 == var_14 + var_16) {
LAB_000322a3:
                    /* WARNING: Store size is inaccurate */
        *(type_14 *)wordp = (type_14)local_30;
        arm_sec->next_rela = var_15;
        return 1;
      }
      bVar6 = false;
LAB_0003227f:
      var_7 = (type_7)var_15->r_offset;
      var_8 = *(type_7 *)((int)&var_15->r_offset + 4);
      if (word_offset._4_4_ < var_8 ||
          word_offset._4_4_ - var_8 < (type_7)((type_7)word_offset < var_7)) {
        if (bVar6) goto LAB_000322a3;
        var_7 = (type_7)var_14->r_offset;
        var_8 = *(type_7 *)((int)&var_14->r_offset + 4);
        var_15 = var_14;
        if (word_offset._4_4_ < var_8 ||
            word_offset._4_4_ - var_8 < (type_7)((type_7)word_offset < var_7)) goto LAB_000322a3;
        bVar6 = true;
      }
      if ((var_7 & 3) == 0) {
        if ((word_offset._4_4_ <= var_8 &&
             (type_7)(var_7 < (type_7)word_offset) <= var_8 - word_offset._4_4_) &&
           (aux->symtab != (type_12 *)0x0)) {
          var_8 = arm_sec->rel_type;
          if (var_8 == 9) {
            var_33 = 0;
            var_17 = (type_7)(type_14)local_30 & 0x7fffffff;
            if (((type_7)(type_14)local_30 & 0x40000000) != 0) {
              var_33 = -1;
              var_17 = var_17 | 0x80000000;
            }
          }
          else {
            if (var_8 != 4) {
              pcVar8 = (char *)var_4(0,"Unknown section relocation type %d encountered\n",5);
              var_18(pcVar8,var_8);
              goto LAB_000322a3;
            }
            var_17 = (type_7)var_15->r_addend;
            var_33 = *(int *)((int)&var_15->r_addend + 4);
          }
          var_8 = *(type_7 *)((int)&var_15->r_info + 4);
          var_19 = (type_7)var_15->r_info;
          var_21 = aux->nsyms;
          var_20 = var_19 >> 8 | var_8 << 0x18;
          if ((type_7)(var_20 < var_21) <= var_8 >> 8) {
            pcVar8 = (char *)var_4(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);
            var_18(pcVar8,var_20,var_21);
            goto LAB_000322a3;
          }
          pEVar10 = aux->symtab + var_20;
          bVar7 = pEVar10->st_value;
          var_22 = var_17 + (int)pEVar10->st_value;
          var_11 = *(int *)((int)&pEVar10->st_value + 4);
          var_32 = var_22 - (var_7 + (int)arm_sec->var_2->sh_addr);
          var_23 = (filedata->file_header).e_machine;
          if (var_23 == 0x28) {
            var_25 = (type_13 *)var_24(var_19 & 0xff);
            var_29 = false;
            bVar23 = var_25 == (type_13 *)0x0;
            if (!bVar23) {
              var_26 = 0xb;
              var_27 = var_25;
              var_28 = (type_13 *)"R_ARM_NONE";
              do {
                if (var_26 == 0) break;
                var_26 = var_26 + -1;
                var_29 = *var_27 < *var_28;
                bVar23 = *var_27 == *var_28;
                var_27 = var_27 + (type_7)bVar24 * -2 + 1;
                var_28 = var_28 + (type_7)bVar24 * -2 + 1;
              } while (bVar23);
              var_30 = false;
              var_29 = (!var_29 && !bVar23) == var_29;
              if (!var_29) {
                var_26 = 0xd;
                var_27 = var_25;
                var_28 = (type_13 *)"R_ARM_PREL31";
                do {
                  if (var_26 == 0) break;
                  var_26 = var_26 + -1;
                  var_30 = *var_27 < *var_28;
                  var_29 = *var_27 == *var_28;
                  var_27 = var_27 + (type_7)bVar24 * -2 + 1;
                  var_28 = var_28 + (type_7)bVar24 * -2 + 1;
                } while (var_29);
                if ((!var_30 && !var_29) != var_30) {
                  pcVar8 = (char *)var_4(0,"Skipping unexpected ARM relocation type %s\n",5);
                  var_31(pcVar8,var_25);
                  var_14 = arm_sec->rela;
                  var_16 = arm_sec->nrelas;
                  goto LAB_00032500;
                }
LAB_0003245c:
                local_30._0_4_ =
                     (type_14)(var_32 & 0x7fffffff | (type_7)(type_14)local_30 & 0x80000000);
                addr->section = (type_10)pEVar10->st_shndx;
                *(type_7 *)((int)&addr->offset + 4) =
                     var_33 + var_11 + (type_7)var_34(var_17,(type_7)bVar7);
                *(int *)&addr->offset = var_22;
                if (var_1 != (type_6 *)0x0) {
                  uVar5 = pEVar10->st_name;
                  *(type_15 *)((int)var_1 + 4) = 0;
                  *(type_11 *)var_1 = uVar5;
                }
                goto LAB_000322a3;
              }
              goto LAB_00032500;
            }
            pcVar8 = "Skipping unknown ARM relocation type: %d\n";
LAB_00032686:
            var_25 = (type_13 *)(var_19 & 0xff);
            pcVar8 = (char *)var_4(0,pcVar8,5);
          }
          else {
            if (var_23 != 0x8c) {
              pcVar8 = (char *)var_4(0,"Only TI and ARM unwinders are currently supported\n",5);
              var_31(pcVar8);
              goto LAB_000322a3;
            }
            var_25 = (type_13 *)var_35(var_19 & 0xff);
            var_29 = false;
            bVar23 = var_25 == (type_13 *)0x0;
            if (bVar23) {
              pcVar8 = "Skipping unknown C6000 relocation type: %d\n";
              goto LAB_00032686;
            }
            var_26 = 0xd;
            var_27 = var_25;
            var_28 = (type_13 *)"R_C6000_NONE";
            do {
              if (var_26 == 0) break;
              var_26 = var_26 + -1;
              var_29 = *var_27 < *var_28;
              bVar23 = *var_27 == *var_28;
              var_27 = var_27 + (type_7)bVar24 * -2 + 1;
              var_28 = var_28 + (type_7)bVar24 * -2 + 1;
            } while (bVar23);
            var_30 = false;
            var_29 = (!var_29 && !bVar23) == var_29;
            if (var_29) goto LAB_00032500;
            var_26 = 0xf;
            var_27 = var_25;
            var_28 = (type_13 *)"R_C6000_PREL31";
            do {
              if (var_26 == 0) break;
              var_26 = var_26 + -1;
              var_30 = *var_27 < *var_28;
              var_29 = *var_27 == *var_28;
              var_27 = var_27 + (type_7)bVar24 * -2 + 1;
              var_28 = var_28 + (type_7)bVar24 * -2 + 1;
            } while (var_29);
            if ((!var_30 && !var_29) == var_30) {
              var_32 = var_32 >> 1;
              goto LAB_0003245c;
            }
            pcVar8 = (char *)var_4(0,"Skipping unexpected C6000 relocation type %s\n",5);
          }
          var_31(pcVar8,var_25);
          var_14 = arm_sec->rela;
          var_16 = arm_sec->nrelas;
        }
      }
      else {
        pcVar8 = (char *)var_4(0,"Skipping unexpected relocation at offset 0x%lx\n",5);
        var_31(pcVar8,var_7);
        var_14 = arm_sec->rela;
        var_16 = arm_sec->nrelas;
      }
LAB_00032500:
      var_15 = var_15 + 1;
      if (var_15 == var_14 + var_16) goto LAB_000322a3;
      goto LAB_0003227f;
    }
  }
  return 0;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

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

{
  uint uVar1;
  uint uVar2;
  bool bVar3;
  undefined4 uVar4;
  int iVar5;
  uint *puVar6;
  char *pcVar7;
  uint uVar8;
  uint uVar9;
  int iVar10;
  uint *puVar11;
  uint uVar12;
  byte *pbVar13;
  byte *pbVar14;
  byte *pbVar15;
  bool bVar16;
  bool bVar17;
  bool bVar18;
  byte bVar19;
  uint *local_64;
  uint local_54;
  uint local_50;
  int local_4c;
  uint local_44;
  uint local_30;
  
  bVar19 = 0;
  *param_8 = 0;
  *(undefined4 *)(param_8 + 2) = 0;
  *(undefined4 *)(param_8 + 4) = 0;
  if (param_9 != (uint *)0x0) {
    *param_9 = 0xffffffff;
    param_9[1] = 0xffffffff;
  }
  iVar5 = *param_3;
  if (param_3[1] != param_4) {
    FUN_00023e30();
    param_3[1] = param_4;
    uVar4 = dcgettext(0,"unwind data",5);
    iVar5 = FUN_0001bf90(1,0,*(undefined4 *)(param_4 + 0x20),*(undefined4 *)(param_4 + 0x24),uVar4);
    param_3[2] = 0;
    *param_3 = iVar5;
    uVar12 = *(uint *)(param_1 + 0x5c);
    uVar1 = *(uint *)(param_1 + 0x54);
    param_3[3] = 0;
    uVar8 = uVar12 + uVar1 * 0x48;
    uVar9 = uVar12;
    if (uVar12 < uVar8) {
      do {
        if (((*(uint *)(uVar9 + 0x2c) < uVar1) &&
            (param_4 == uVar12 + *(uint *)(uVar9 + 0x2c) * 0x48)) &&
           ((iVar10 = *(int *)(uVar9 + 4), iVar10 == 9 || (iVar10 == 4)))) {
          param_3[4] = iVar10;
          if (iVar10 == 9) {
            iVar5 = FUN_0001d7b0(param_3 + 2,param_3 + 3);
          }
          else {
            iVar5 = FUN_0001e360(param_3 + 2,param_3 + 3);
          }
          if (iVar5 == 0) {
            return 0;
          }
          iVar10 = param_3[2];
          iVar5 = *param_3;
          goto LAB_000321d8;
        }
        uVar9 = uVar9 + 0x48;
      } while (uVar9 < uVar8);
      iVar10 = 0;
    }
    else {
      iVar10 = 0;
    }
LAB_000321d8:
    param_3[5] = iVar10;
  }
  if (iVar5 != 0) {
    uVar8 = *(uint *)(param_4 + 0x20);
    iVar10 = *(int *)(param_4 + 0x24);
    if (((iVar10 != 0 || (uint)-iVar10 < (uint)(3 < uVar8)) &&
        (uVar12 = iVar10 + -1 + (uint)(3 < uVar8),
        param_6 <= uVar12 && (uint)(uVar8 - 4 < param_5) <= uVar12 - param_6)) &&
       (-1 < (int)param_6)) {
      local_30 = (*DAT_000b9dd8)(iVar5 + param_5,4);
      local_64 = (uint *)param_3[2];
      if (local_64 == (uint *)0x0) {
        *param_7 = local_30;
        return 1;
      }
      local_4c = param_3[3];
      puVar11 = (uint *)param_3[5];
      if (puVar11 == local_64 + local_4c * 6) {
LAB_000322a3:
        *param_7 = local_30;
        param_3[5] = (int)puVar11;
        return 1;
      }
      bVar3 = false;
LAB_0003227f:
      uVar8 = *puVar11;
      uVar12 = puVar11[1];
      if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) {
        if (bVar3) goto LAB_000322a3;
        uVar8 = *local_64;
        uVar12 = local_64[1];
        puVar11 = local_64;
        if (param_6 < uVar12 || param_6 - uVar12 < (uint)(param_5 < uVar8)) goto LAB_000322a3;
        bVar3 = true;
      }
      if ((uVar8 & 3) == 0) {
        if ((param_6 <= uVar12 && (uint)(uVar8 < param_5) <= uVar12 - param_6) &&
           (*(int *)(param_2 + 4) != 0)) {
          iVar5 = param_3[4];
          if (iVar5 == 9) {
            local_50 = 0;
            local_54 = local_30 & 0x7fffffff;
            if ((local_30 & 0x40000000) != 0) {
              local_50 = 0xffffffff;
              local_54 = local_54 | 0x80000000;
            }
          }
          else {
            if (iVar5 != 4) {
              uVar4 = dcgettext(0,"Unknown section relocation type %d encountered\n",5);
              error(uVar4,iVar5);
              goto LAB_000322a3;
            }
            local_54 = puVar11[4];
            local_50 = puVar11[5];
          }
          uVar12 = puVar11[2];
          uVar1 = *(uint *)(param_2 + 8);
          uVar9 = uVar12 >> 8 | puVar11[3] << 0x18;
          if ((uint)(uVar9 < uVar1) <= puVar11[3] >> 8) {
            uVar4 = dcgettext(0,"Bad symbol index in unwind relocation (%lu > %lu)\n",5);
            error(uVar4,uVar9,uVar1);
            goto LAB_000322a3;
          }
          puVar6 = (uint *)(uVar9 * 0x1c + *(int *)(param_2 + 4));
          uVar9 = *puVar6;
          uVar1 = *puVar6;
          uVar2 = puVar6[1];
          local_44 = (local_54 + uVar1) - (uVar8 + *(int *)(param_3[1] + 0x10));
          if (*(short *)(param_1 + 0x42) == 0x28) {
            pbVar13 = (byte *)FUN_00014aa0();
            bVar16 = false;
            bVar18 = pbVar13 == (byte *)0x0;
            if (!bVar18) {
              iVar5 = 0xb;
              pbVar14 = pbVar13;
              pbVar15 = (byte *)"R_ARM_NONE";
              do {
                if (iVar5 == 0) break;
                iVar5 = iVar5 + -1;
                bVar16 = *pbVar14 < *pbVar15;
                bVar18 = *pbVar14 == *pbVar15;
                pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;
                pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;
              } while (bVar18);
              bVar17 = false;
              bVar16 = (!bVar16 && !bVar18) == bVar16;
              if (!bVar16) {
                iVar5 = 0xd;
                pbVar14 = pbVar13;
                pbVar15 = (byte *)"R_ARM_PREL31";
                do {
                  if (iVar5 == 0) break;
                  iVar5 = iVar5 + -1;
                  bVar17 = *pbVar14 < *pbVar15;
                  bVar16 = *pbVar14 == *pbVar15;
                  pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;
                  pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;
                } while (bVar16);
                if ((!bVar17 && !bVar16) != bVar17) {
                  uVar4 = dcgettext(0,"Skipping unexpected ARM relocation type %s\n",5);
                  warn(uVar4,pbVar13);
                  local_64 = (uint *)param_3[2];
                  local_4c = param_3[3];
                  goto LAB_00032500;
                }
LAB_0003245c:
                local_30 = local_44 & 0x7fffffff | local_30 & 0x80000000;
                *param_8 = (short)puVar6[6];
                *(uint *)(param_8 + 4) = local_50 + uVar2 + (uint)CARRY4(local_54,uVar9);
                *(uint *)(param_8 + 2) = local_54 + uVar1;
                if (param_9 != (uint *)0x0) {
                  uVar8 = puVar6[4];
                  param_9[1] = 0;
                  *param_9 = uVar8;
                }
                goto LAB_000322a3;
              }
              goto LAB_00032500;
            }
            pcVar7 = "Skipping unknown ARM relocation type: %d\n";
LAB_00032686:
            pbVar13 = (byte *)(uVar12 & 0xff);
            uVar4 = dcgettext(0,pcVar7,5);
          }
          else {
            if (*(short *)(param_1 + 0x42) != 0x8c) {
              uVar4 = dcgettext(0,"Only TI and ARM unwinders are currently supported\n",5);
              warn(uVar4);
              goto LAB_000322a3;
            }
            pbVar13 = (byte *)FUN_00019be0();
            bVar16 = false;
            bVar18 = pbVar13 == (byte *)0x0;
            if (bVar18) {
              pcVar7 = "Skipping unknown C6000 relocation type: %d\n";
              goto LAB_00032686;
            }
            iVar5 = 0xd;
            pbVar14 = pbVar13;
            pbVar15 = (byte *)"R_C6000_NONE";
            do {
              if (iVar5 == 0) break;
              iVar5 = iVar5 + -1;
              bVar16 = *pbVar14 < *pbVar15;
              bVar18 = *pbVar14 == *pbVar15;
              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;
              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;
            } while (bVar18);
            bVar17 = false;
            bVar16 = (!bVar16 && !bVar18) == bVar16;
            if (bVar16) goto LAB_00032500;
            iVar5 = 0xf;
            pbVar14 = pbVar13;
            pbVar15 = (byte *)"R_C6000_PREL31";
            do {
              if (iVar5 == 0) break;
              iVar5 = iVar5 + -1;
              bVar17 = *pbVar14 < *pbVar15;
              bVar16 = *pbVar14 == *pbVar15;
              pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;
              pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;
            } while (bVar16);
            if ((!bVar17 && !bVar16) == bVar17) {
              local_44 = local_44 >> 1;
              goto LAB_0003245c;
            }
            uVar4 = dcgettext(0,"Skipping unexpected C6000 relocation type %s\n",5);
          }
          warn(uVar4,pbVar13);
          local_64 = (uint *)param_3[2];
          local_4c = param_3[3];
        }
      }
      else {
        uVar4 = dcgettext(0,"Skipping unexpected relocation at offset 0x%lx\n",5);
        warn(uVar4,uVar8);
        local_64 = (uint *)param_3[2];
        local_4c = param_3[3];
      }
LAB_00032500:
      puVar11 = puVar11 + 6;
      if (puVar11 == local_64 + local_4c * 6) goto LAB_000322a3;
      goto LAB_0003227f;
    }
  }
  return 0;
}

